diff options
author | Cody Northrop <cnorthrop@google.com> | 2018-10-19 09:38:28 -0700 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2018-10-19 09:38:28 -0700 |
commit | a5561298a6bded0ae54c60f4585afbd2f047c8a3 (patch) | |
tree | a023f05e6e718aec86f9e28cdb61b0c087308de2 | |
parent | 471c1018b9a015d211bb9ac4afc093fef18b0685 (diff) | |
parent | 3e9ca0ceb816bbda028d2e6faaa14db38fa718ba (diff) | |
download | vulkan-headers-a5561298a6bded0ae54c60f4585afbd2f047c8a3.tar.gz |
Merge "Merge remote-tracking branch 'aosp/refs/heads/upstream-master' into 20181018-merge-vulkan_headers_to_master" am: cec51312d7
am: 3e9ca0ceb8
Change-Id: I2067dca9720877edd2d1fc838905e1dff0c71122
-rw-r--r-- | .cmake-format.py | 2 | ||||
-rw-r--r-- | .gitattributes | 16 | ||||
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | CMakeLists.txt | 18 | ||||
-rw-r--r-- | CODE_OF_CONDUCT.md | 1 | ||||
-rw-r--r-- | LICENSE.txt | 370 | ||||
-rw-r--r-- | README.md | 15 | ||||
-rw-r--r-- | include/vulkan/vulkan.h | 4 | ||||
-rw-r--r-- | include/vulkan/vulkan.hpp | 9064 | ||||
-rw-r--r-- | include/vulkan/vulkan_core.h | 964 | ||||
-rw-r--r-- | include/vulkan/vulkan_fuchsia.h | 58 | ||||
-rw-r--r-- | registry/genvk.py | 1 | ||||
-rw-r--r-- | registry/reg.py | 15 | ||||
-rw-r--r-- | registry/validusage.json | 4184 | ||||
-rw-r--r-- | registry/vk.xml | 1382 |
15 files changed, 14004 insertions, 2091 deletions
diff --git a/.cmake-format.py b/.cmake-format.py index 9c173ac..07d2f99 100644 --- a/.cmake-format.py +++ b/.cmake-format.py @@ -1,4 +1,4 @@ -# Configuration for cmake-format (v0.3.6, circa Apr 2018) +# Configuration for cmake-format (v0.4.1, circa Jul 2018) # https://github.com/cheshirekow/cmake_format # How wide to allow formatted cmake files diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..ca85b46 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,16 @@ +# See https://git-scm.com/docs/gitattributes +# See https://help.github.com/articles/dealing-with-line-endings/ + +# Default behavior, if core.autocrlf is unset. +* text=auto + +# Files to be converted to native line endings on checkout. +*.cpp text +*.h text + +# Text files to always have CRLF (dos) line endings on checkout. +*.bat text eol=crlf + +# Text files to always have LF (unix) line endings on checkout. +*.sh text eol=lf + @@ -3,3 +3,4 @@ __pycache__ *.pyc build .vscode/ +**/.*.swp diff --git a/CMakeLists.txt b/CMakeLists.txt index fb95d64..5529e60 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,22 +15,34 @@ # limitations under the License. # ~~~ +# CMake project initialization --------------------------------------------------------------------------------------------------- +# This section contains pre-project() initialization, and ends with the project() command. + cmake_minimum_required(VERSION 2.8.11) +# NONE = this project has no language toolchain requirement. project(Vulkan-Headers NONE) +# User-interface declarations ---------------------------------------------------------------------------------------------------- +# This section contains variables that affect development GUIs (e.g. CMake GUI and IDEs), such as option(), folders, and variables +# with the CACHE property. + include(GNUInstallDirs) -# Set a better default install location for Windows only if the user did not provide one. -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT AND WIN32) + +if(WIN32 AND CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + # Windows: if install locations not set by user, set install prefix to "<build_dir>\install". set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "default install path" FORCE) endif() +# -------------------------------------------------------------------------------------------------------------------------------- + install(DIRECTORY "${CMAKE_SOURCE_DIR}/include/vulkan" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(DIRECTORY "${CMAKE_SOURCE_DIR}/registry" DESTINATION ${CMAKE_INSTALL_DATADIR}/vulkan) # uninstall target if(NOT TARGET uninstall) - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..a11610b --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1 @@ +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/LICENSE.txt b/LICENSE.txt index 3c65815..d645695 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,170 +1,202 @@ -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: - -You must give any other recipients of the Work or Derivative Works a copy of this -License; and -You must cause any modified files to carry prominent notices stating that You changed -the files; and -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 -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. + 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. @@ -1,3 +1,18 @@ # Vulkan-Headers Vulkan Header files and API registry + +## Repository Content + +The contents of this repository are largely obtained from other repositories and are +collected, coordinated, and curated here. + +The projects for these repositories are: + +- [KhronosGroup/Vulkan-Docs](https://github.com/KhronosGroup/Vulkan-Docs) + - Core Vulkan headers and Registry +- [KhronosGroup/Vulkan-Hpp](https://github.com/KhronosGroup/Vulkan-Hpp) + - C++ Bindings for Vulkan + +Please visit the appropriate project in the above list for obtaining additional information, +asking questions, or opening issues. diff --git a/include/vulkan/vulkan.h b/include/vulkan/vulkan.h index d05c849..cf9d85a 100644 --- a/include/vulkan/vulkan.h +++ b/include/vulkan/vulkan.h @@ -24,6 +24,10 @@ #include "vulkan_android.h" #endif +#ifdef VK_USE_PLATFORM_FUCHSIA +#include <zircon/types.h> +#include "vulkan_fuchsia.h" +#endif #ifdef VK_USE_PLATFORM_IOS_MVK #include "vulkan_ios.h" diff --git a/include/vulkan/vulkan.hpp b/include/vulkan/vulkan.hpp index df24587..a52db9e 100644 --- a/include/vulkan/vulkan.hpp +++ b/include/vulkan/vulkan.hpp @@ -53,7 +53,24 @@ # include <cassert> # define VULKAN_HPP_ASSERT assert #endif -static_assert( VK_HEADER_VERSION == 79 , "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) +// which is an expression in a constructor initializer list. +#if defined(major) + #undef major +#endif +#if defined(minor) + #undef minor +#endif + +// Windows defines MemoryBarrier which is deprecated and collides +// with the vk::MemoryBarrier struct. +#ifdef MemoryBarrier + #undef MemoryBarrier +#endif + +static_assert( VK_HEADER_VERSION == 87 , "Wrong VK_HEADER_VERSION!" ); // 32-bit vulkan is not typesafe for 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 @@ -90,7 +107,7 @@ static_assert( VK_HEADER_VERSION == 79 , "Wrong VK_HEADER_VERSION!" ); # elif defined(__GNUC__) # define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__ # elif defined(_MSC_VER) -# define VULKAN_HPP_INLINE __forceinline +# define VULKAN_HPP_INLINE inline # else # define VULKAN_HPP_INLINE inline # endif @@ -359,13 +376,13 @@ namespace VULKAN_HPP_NAMESPACE #ifndef VULKAN_HPP_NO_SMART_HANDLE - template <typename Type> class UniqueHandleTraits; + template <typename Type, typename Dispatch> class UniqueHandleTraits; - template <typename Type> - class UniqueHandle : public UniqueHandleTraits<Type>::deleter + template <typename Type, typename Dispatch> + class UniqueHandle : public UniqueHandleTraits<Type,Dispatch>::deleter { private: - using Deleter = typename UniqueHandleTraits<Type>::deleter; + using Deleter = typename UniqueHandleTraits<Type,Dispatch>::deleter; public: explicit UniqueHandle( Type const& value = Type(), Deleter const& deleter = Deleter() ) : Deleter( deleter) @@ -444,7 +461,7 @@ namespace VULKAN_HPP_NAMESPACE return value; } - void swap( UniqueHandle<Type> & rhs ) + void swap( UniqueHandle<Type,Dispatch> & rhs ) { std::swap(m_value, rhs.m_value); std::swap(static_cast<Deleter&>(*this), static_cast<Deleter&>(rhs)); @@ -454,16 +471,42 @@ namespace VULKAN_HPP_NAMESPACE Type m_value; }; - template <typename Type> - VULKAN_HPP_INLINE void swap( UniqueHandle<Type> & lhs, UniqueHandle<Type> & rhs ) + template <typename Type, typename Dispatch> + VULKAN_HPP_INLINE void swap( UniqueHandle<Type,Dispatch> & lhs, UniqueHandle<Type,Dispatch> & rhs ) { lhs.swap( rhs ); } #endif + template <typename X, typename Y> struct isStructureChainValid { enum { value = false }; }; + template <typename P, typename T> + struct TypeList + { + using list = P; + using last = T; + }; + + template <typename List, typename X> + struct extendCheck + { + static const bool valid = isStructureChainValid<typename List::last, X>::value || extendCheck<typename List::list,X>::valid; + }; + + template <typename T, typename X> + struct extendCheck<TypeList<void,T>,X> + { + static const bool valid = isStructureChainValid<T, X>::value; + }; + + template <typename X> + struct extendCheck<void,X> + { + static const bool valid = true; + }; + template <class Element> class StructureChainElement { @@ -480,75 +523,78 @@ namespace VULKAN_HPP_NAMESPACE public: StructureChain() { - link<StructureElements...>(); + link<void, StructureElements...>(); } StructureChain(StructureChain const &rhs) { - linkAndCopy<StructureElements...>(rhs); + linkAndCopy<void, StructureElements...>(rhs); } StructureChain(StructureElements const &... elems) { - linkAndCopyElements<StructureElements...>(elems...); + linkAndCopyElements<void, StructureElements...>(elems...); } StructureChain& operator=(StructureChain const &rhs) { - linkAndCopy<StructureElements...>(rhs); + linkAndCopy<void, StructureElements...>(rhs); return *this; } template<typename ClassType> ClassType& get() { return static_cast<ClassType&>(*this);} private: - template<typename X> + template<typename List, typename X> void link() { + static_assert(extendCheck<List, X>::valid, "The structure chain is not valid!"); } - template<typename X, typename Y, typename ...Z> + template<typename List, typename X, typename Y, typename ...Z> void link() { - static_assert(isStructureChainValid<X,Y>::value, "The structure chain is not valid!"); + static_assert(extendCheck<List,X>::valid, "The structure chain is not valid!"); X& x = static_cast<X&>(*this); Y& y = static_cast<Y&>(*this); x.pNext = &y; - link<Y, Z...>(); + link<TypeList<List, X>, Y, Z...>(); } - template<typename X> + template<typename List, typename X> void linkAndCopy(StructureChain const &rhs) { + static_assert(extendCheck<List, X>::valid, "The structure chain is not valid!"); static_cast<X&>(*this) = static_cast<X const &>(rhs); } - template<typename X, typename Y, typename ...Z> + template<typename List, typename X, typename Y, typename ...Z> void linkAndCopy(StructureChain const &rhs) { - static_assert(isStructureChainValid<X,Y>::value, "The structure chain is not valid!"); + static_assert(extendCheck<List, X>::valid, "The structure chain is not valid!"); X& x = static_cast<X&>(*this); Y& y = static_cast<Y&>(*this); x = static_cast<X const &>(rhs); x.pNext = &y; - linkAndCopy<Y, Z...>(rhs); + linkAndCopy<TypeList<List, X>, Y, Z...>(rhs); } - template<typename X> + template<typename List, typename X> void linkAndCopyElements(X const &xelem) { + static_assert(extendCheck<List, X>::valid, "The structure chain is not valid!"); static_cast<X&>(*this) = xelem; } - template<typename X, typename Y, typename ...Z> + template<typename List, typename X, typename Y, typename ...Z> void linkAndCopyElements(X const &xelem, Y const &yelem, Z const &... zelem) { - static_assert(isStructureChainValid<X,Y>::value, "The structure chain is not valid!"); + static_assert(extendCheck<List, X>::valid, "The structure chain is not valid!"); X& x = static_cast<X&>(*this); Y& y = static_cast<Y&>(*this); x = xelem; x.pNext = &y; - linkAndCopyElements<Y, Z...>(yelem, zelem...); + linkAndCopyElements<TypeList<List, X>, Y, Z...>(yelem, zelem...); } }; @@ -1018,120 +1064,22 @@ namespace VULKAN_HPP_NAMESPACE } #ifndef VULKAN_HPP_NO_SMART_HANDLE - template <typename T> - VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<T>>::type createResultValue( Result result, T & data, char const * message, typename UniqueHandleTraits<T>::deleter const& deleter ) + template <typename T, typename D> + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<T,D>>::type createResultValue( Result result, T & data, char const * message, typename UniqueHandleTraits<T,D>::deleter const& deleter ) { #ifdef VULKAN_HPP_NO_EXCEPTIONS VULKAN_HPP_ASSERT( result == Result::eSuccess ); - return ResultValue<UniqueHandle<T>>( result, UniqueHandle<T>(data, deleter) ); + return ResultValue<UniqueHandle<T,D>>( result, UniqueHandle<T,D>(data, deleter) ); #else if ( result != Result::eSuccess ) { throwResultException( result, message ); } - return UniqueHandle<T>(data, deleter); + return UniqueHandle<T,D>(data, deleter); #endif } #endif - - struct AllocationCallbacks; - - template <typename OwnerType> - class ObjectDestroy - { - public: - ObjectDestroy(OwnerType owner = OwnerType(), Optional<const AllocationCallbacks> allocator = nullptr) - : m_owner(owner) - , m_allocator(allocator) - {} - - OwnerType getOwner() const { return m_owner; } - Optional<const AllocationCallbacks> getAllocator() const { return m_allocator; } - - protected: - template <typename T> - void destroy(T t) - { - m_owner.destroy(t, m_allocator); - } - - private: - OwnerType m_owner; - Optional<const AllocationCallbacks> m_allocator; - }; - - class NoParent; - - template <> - class ObjectDestroy<NoParent> - { - public: - ObjectDestroy( Optional<const AllocationCallbacks> allocator = nullptr ) - : m_allocator( allocator ) - {} - - Optional<const AllocationCallbacks> getAllocator() const { return m_allocator; } - - protected: - template <typename T> - void destroy(T t) - { - t.destroy( m_allocator ); - } - - private: - Optional<const AllocationCallbacks> m_allocator; - }; - - template <typename OwnerType> - class ObjectFree - { - public: - ObjectFree(OwnerType owner = OwnerType(), Optional<const AllocationCallbacks> allocator = nullptr) - : m_owner(owner) - , m_allocator(allocator) - {} - - OwnerType getOwner() const { return m_owner; } - Optional<const AllocationCallbacks> getAllocator() const { return m_allocator; } - - protected: - template <typename T> - void destroy(T t) - { - m_owner.free(t, m_allocator); - } - - private: - OwnerType m_owner; - Optional<const AllocationCallbacks> m_allocator; - }; - - template <typename OwnerType, typename PoolType> - class PoolFree - { - public: - PoolFree(OwnerType owner = OwnerType(), PoolType pool = PoolType()) - : m_owner(owner) - , m_pool(pool) - {} - - OwnerType getOwner() const { return m_owner; } - PoolType getPool() const { return m_pool; } - - protected: - template <typename T> - void destroy(T t) - { - m_owner.free(m_pool, t); - } - - private: - OwnerType m_owner; - PoolType m_pool; - }; - class DispatchLoaderStatic { public: @@ -1165,6 +1113,10 @@ public: { return ::vkBeginCommandBuffer( commandBuffer, pBeginInfo); } + VkResult vkBindAccelerationStructureMemoryNVX( VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNVX* pBindInfos ) const + { + return ::vkBindAccelerationStructureMemoryNVX( device, bindInfoCount, pBindInfos); + } VkResult vkBindBufferMemory( VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const { return ::vkBindBufferMemory( device, buffer, memory, memoryOffset); @@ -1189,6 +1141,10 @@ public: { return ::vkBindImageMemory2KHR( device, bindInfoCount, pBindInfos); } + void vkCmdBeginConditionalRenderingEXT( VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin ) const + { + return ::vkCmdBeginConditionalRenderingEXT( commandBuffer, pConditionalRenderingBegin); + } void vkCmdBeginDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo ) const { return ::vkCmdBeginDebugUtilsLabelEXT( commandBuffer, pLabelInfo); @@ -1201,6 +1157,10 @@ public: { return ::vkCmdBeginRenderPass( commandBuffer, pRenderPassBegin, contents); } + void vkCmdBeginRenderPass2KHR( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfoKHR* pSubpassBeginInfo ) const + { + return ::vkCmdBeginRenderPass2KHR( commandBuffer, pRenderPassBegin, pSubpassBeginInfo); + } void vkCmdBindDescriptorSets( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets ) const { return ::vkCmdBindDescriptorSets( commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets); @@ -1213,6 +1173,10 @@ public: { return ::vkCmdBindPipeline( commandBuffer, pipelineBindPoint, pipeline); } + void vkCmdBindShadingRateImageNV( VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout ) const + { + return ::vkCmdBindShadingRateImageNV( commandBuffer, imageView, imageLayout); + } void vkCmdBindVertexBuffers( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets ) const { return ::vkCmdBindVertexBuffers( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets); @@ -1221,6 +1185,10 @@ public: { return ::vkCmdBlitImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter); } + void vkCmdBuildAccelerationStructureNVX( VkCommandBuffer commandBuffer, VkAccelerationStructureTypeNVX type, uint32_t instanceCount, VkBuffer instanceData, VkDeviceSize instanceOffset, uint32_t geometryCount, const VkGeometryNVX* pGeometries, VkBuildAccelerationStructureFlagsNVX flags, VkBool32 update, VkAccelerationStructureNVX dst, VkAccelerationStructureNVX src, VkBuffer scratch, VkDeviceSize scratchOffset ) const + { + return ::vkCmdBuildAccelerationStructureNVX( commandBuffer, type, instanceCount, instanceData, instanceOffset, geometryCount, pGeometries, flags, update, dst, src, scratch, scratchOffset); + } void vkCmdClearAttachments( VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects ) const { return ::vkCmdClearAttachments( commandBuffer, attachmentCount, pAttachments, rectCount, pRects); @@ -1233,6 +1201,10 @@ public: { return ::vkCmdClearDepthStencilImage( commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges); } + void vkCmdCopyAccelerationStructureNVX( VkCommandBuffer commandBuffer, VkAccelerationStructureNVX dst, VkAccelerationStructureNVX src, VkCopyAccelerationStructureModeNVX mode ) const + { + return ::vkCmdCopyAccelerationStructureNVX( commandBuffer, dst, src, mode); + } void vkCmdCopyBuffer( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions ) const { return ::vkCmdCopyBuffer( commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions); @@ -1313,6 +1285,22 @@ public: { return ::vkCmdDrawIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); } + void vkCmdDrawMeshTasksIndirectCountNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const + { + return ::vkCmdDrawMeshTasksIndirectCountNV( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); + } + void vkCmdDrawMeshTasksIndirectNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const + { + return ::vkCmdDrawMeshTasksIndirectNV( commandBuffer, buffer, offset, drawCount, stride); + } + void vkCmdDrawMeshTasksNV( VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask ) const + { + return ::vkCmdDrawMeshTasksNV( commandBuffer, taskCount, firstTask); + } + void vkCmdEndConditionalRenderingEXT( VkCommandBuffer commandBuffer ) const + { + return ::vkCmdEndConditionalRenderingEXT( commandBuffer); + } void vkCmdEndDebugUtilsLabelEXT( VkCommandBuffer commandBuffer ) const { return ::vkCmdEndDebugUtilsLabelEXT( commandBuffer); @@ -1325,6 +1313,10 @@ public: { return ::vkCmdEndRenderPass( commandBuffer); } + void vkCmdEndRenderPass2KHR( VkCommandBuffer commandBuffer, const VkSubpassEndInfoKHR* pSubpassEndInfo ) const + { + return ::vkCmdEndRenderPass2KHR( commandBuffer, pSubpassEndInfo); + } void vkCmdExecuteCommands( VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers ) const { return ::vkCmdExecuteCommands( commandBuffer, commandBufferCount, pCommandBuffers); @@ -1341,6 +1333,10 @@ public: { return ::vkCmdNextSubpass( commandBuffer, contents); } + void vkCmdNextSubpass2KHR( VkCommandBuffer commandBuffer, const VkSubpassBeginInfoKHR* pSubpassBeginInfo, const VkSubpassEndInfoKHR* pSubpassEndInfo ) const + { + return ::vkCmdNextSubpass2KHR( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo); + } void vkCmdPipelineBarrier( VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers ) const { return ::vkCmdPipelineBarrier( commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); @@ -1381,6 +1377,14 @@ public: { return ::vkCmdSetBlendConstants( commandBuffer, blendConstants); } + void vkCmdSetCheckpointNV( VkCommandBuffer commandBuffer, const void* pCheckpointMarker ) const + { + return ::vkCmdSetCheckpointNV( commandBuffer, pCheckpointMarker); + } + void vkCmdSetCoarseSampleOrderNV( VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders ) const + { + return ::vkCmdSetCoarseSampleOrderNV( commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders); + } void vkCmdSetDepthBias( VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor ) const { return ::vkCmdSetDepthBias( commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor); @@ -1405,6 +1409,10 @@ public: { return ::vkCmdSetEvent( commandBuffer, event, stageMask); } + void vkCmdSetExclusiveScissorNV( VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors ) const + { + return ::vkCmdSetExclusiveScissorNV( commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors); + } void vkCmdSetLineWidth( VkCommandBuffer commandBuffer, float lineWidth ) const { return ::vkCmdSetLineWidth( commandBuffer, lineWidth); @@ -1433,10 +1441,18 @@ public: { return ::vkCmdSetViewport( commandBuffer, firstViewport, viewportCount, pViewports); } + void vkCmdSetViewportShadingRatePaletteNV( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes ) const + { + return ::vkCmdSetViewportShadingRatePaletteNV( commandBuffer, firstViewport, viewportCount, pShadingRatePalettes); + } void vkCmdSetViewportWScalingNV( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings ) const { return ::vkCmdSetViewportWScalingNV( commandBuffer, firstViewport, viewportCount, pViewportWScalings); } + void vkCmdTraceRaysNVX( VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, uint32_t width, uint32_t height ) const + { + return ::vkCmdTraceRaysNVX( commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, width, height); + } void vkCmdUpdateBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData ) const { return ::vkCmdUpdateBuffer( commandBuffer, dstBuffer, dstOffset, dataSize, pData); @@ -1445,6 +1461,10 @@ public: { return ::vkCmdWaitEvents( commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); } + void vkCmdWriteAccelerationStructurePropertiesNVX( VkCommandBuffer commandBuffer, VkAccelerationStructureNVX accelerationStructure, VkQueryType queryType, VkQueryPool queryPool, uint32_t query ) const + { + return ::vkCmdWriteAccelerationStructurePropertiesNVX( commandBuffer, accelerationStructure, queryType, queryPool, query); + } void vkCmdWriteBufferMarkerAMD( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker ) const { return ::vkCmdWriteBufferMarkerAMD( commandBuffer, pipelineStage, dstBuffer, dstOffset, marker); @@ -1453,6 +1473,14 @@ public: { return ::vkCmdWriteTimestamp( commandBuffer, pipelineStage, queryPool, query); } + VkResult vkCompileDeferredNVX( VkDevice device, VkPipeline pipeline, uint32_t shader ) const + { + return ::vkCompileDeferredNVX( device, pipeline, shader); + } + VkResult vkCreateAccelerationStructureNVX( VkDevice device, const VkAccelerationStructureCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNVX* pAccelerationStructure ) const + { + return ::vkCreateAccelerationStructureNVX( device, pCreateInfo, pAllocator, pAccelerationStructure); + } #ifdef VK_USE_PLATFORM_ANDROID_KHR VkResult vkCreateAndroidSurfaceKHR( VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const { @@ -1537,6 +1565,12 @@ public: { return ::vkCreateImage( device, pCreateInfo, pAllocator, pImage); } +#ifdef VK_USE_PLATFORM_FUCHSIA_FUCHSIA + VkResult vkCreateImagePipeSurfaceFUCHSIA( VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const + { + return ::vkCreateImagePipeSurfaceFUCHSIA( instance, pCreateInfo, pAllocator, pSurface); + } +#endif /*VK_USE_PLATFORM_FUCHSIA_FUCHSIA*/ VkResult vkCreateImageView( VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView ) const { return ::vkCreateImageView( device, pCreateInfo, pAllocator, pView); @@ -1577,10 +1611,18 @@ public: { return ::vkCreateQueryPool( device, pCreateInfo, pAllocator, pQueryPool); } + VkResult vkCreateRaytracingPipelinesNVX( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRaytracingPipelineCreateInfoNVX* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const + { + return ::vkCreateRaytracingPipelinesNVX( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines); + } VkResult vkCreateRenderPass( VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const { return ::vkCreateRenderPass( device, pCreateInfo, pAllocator, pRenderPass); } + VkResult vkCreateRenderPass2KHR( VkDevice device, const VkRenderPassCreateInfo2KHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const + { + return ::vkCreateRenderPass2KHR( device, pCreateInfo, pAllocator, pRenderPass); + } VkResult vkCreateSampler( VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler ) const { return ::vkCreateSampler( device, pCreateInfo, pAllocator, pSampler); @@ -1655,6 +1697,10 @@ public: { return ::vkDebugReportMessageEXT( instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage); } + void vkDestroyAccelerationStructureNVX( VkDevice device, VkAccelerationStructureNVX accelerationStructure, const VkAllocationCallbacks* pAllocator ) const + { + return ::vkDestroyAccelerationStructureNVX( device, accelerationStructure, pAllocator); + } void vkDestroyBuffer( VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator ) const { return ::vkDestroyBuffer( device, buffer, pAllocator); @@ -1839,6 +1885,18 @@ public: { return ::vkFreeMemory( device, memory, pAllocator); } + VkResult vkGetAccelerationStructureHandleNVX( VkDevice device, VkAccelerationStructureNVX accelerationStructure, size_t dataSize, void* pData ) const + { + return ::vkGetAccelerationStructureHandleNVX( device, accelerationStructure, dataSize, pData); + } + void vkGetAccelerationStructureMemoryRequirementsNVX( VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements ) const + { + return ::vkGetAccelerationStructureMemoryRequirementsNVX( device, pInfo, pMemoryRequirements); + } + void vkGetAccelerationStructureScratchMemoryRequirementsNVX( VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements ) const + { + return ::vkGetAccelerationStructureScratchMemoryRequirementsNVX( device, pInfo, pMemoryRequirements); + } #ifdef VK_USE_PLATFORM_ANDROID_ANDROID VkResult vkGetAndroidHardwareBufferPropertiesANDROID( VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties ) const { @@ -2213,12 +2271,20 @@ public: { return ::vkGetQueryPoolResults( device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags); } + void vkGetQueueCheckpointDataNV( VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData ) const + { + return ::vkGetQueueCheckpointDataNV( queue, pCheckpointDataCount, pCheckpointData); + } #ifdef VK_USE_PLATFORM_XLIB_XRANDR_NV VkResult vkGetRandROutputDisplayEXT( VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay ) const { return ::vkGetRandROutputDisplayEXT( physicalDevice, dpy, rrOutput, pDisplay); } #endif /*VK_USE_PLATFORM_XLIB_XRANDR_NV*/ + VkResult vkGetRaytracingShaderHandlesNVX( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const + { + return ::vkGetRaytracingShaderHandlesNVX( device, pipeline, firstGroup, groupCount, dataSize, pData); + } VkResult vkGetRefreshCycleDurationGOOGLE( VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties ) const { return ::vkGetRefreshCycleDurationGOOGLE( device, swapchain, pDisplayTimingProperties); @@ -2410,6 +2476,112 @@ public: return ::vkWaitForFences( device, fenceCount, pFences, waitAll, timeout); } }; + + struct AllocationCallbacks; + + template <typename OwnerType, typename Dispatch> + class ObjectDestroy + { + public: + ObjectDestroy( OwnerType owner = OwnerType(), Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &dispatch = Dispatch() ) + : m_owner( owner ) + , m_allocator( allocator ) + , m_dispatch( &dispatch ) + {} + + OwnerType getOwner() const { return m_owner; } + Optional<const AllocationCallbacks> getAllocator() const { return m_allocator; } + + protected: + template <typename T> + void destroy(T t) + { + m_owner.destroy( t, m_allocator, *m_dispatch ); + } + + private: + OwnerType m_owner; + Optional<const AllocationCallbacks> m_allocator; + Dispatch const* m_dispatch; + }; + + class NoParent; + + template <typename Dispatch> + class ObjectDestroy<NoParent,Dispatch> + { + public: + ObjectDestroy( Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &dispatch = Dispatch() ) + : m_allocator( allocator ) + , m_dispatch( &dispatch ) + {} + + Optional<const AllocationCallbacks> getAllocator() const { return m_allocator; } + + protected: + template <typename T> + void destroy(T t) + { + t.destroy( m_allocator, *m_dispatch ); + } + + private: + Optional<const AllocationCallbacks> m_allocator; + Dispatch const* m_dispatch; + }; + + template <typename OwnerType, typename Dispatch> + class ObjectFree + { + public: + ObjectFree( OwnerType owner = OwnerType(), Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &dispatch = Dispatch() ) + : m_owner( owner ) + , m_allocator( allocator ) + , m_dispatch( &dispatch ) + {} + + OwnerType getOwner() const { return m_owner; } + Optional<const AllocationCallbacks> getAllocator() const { return m_allocator; } + + protected: + template <typename T> + void destroy(T t) + { + m_owner.free( t, m_allocator, *m_dispatch ); + } + + private: + OwnerType m_owner; + Optional<const AllocationCallbacks> m_allocator; + Dispatch const* m_dispatch; + }; + + template <typename OwnerType, typename PoolType, typename Dispatch> + class PoolFree + { + public: + PoolFree( OwnerType owner = OwnerType(), PoolType pool = PoolType(), Dispatch const &dispatch = Dispatch() ) + : m_owner( owner ) + , m_pool( pool ) + , m_dispatch( &dispatch ) + {} + + OwnerType getOwner() const { return m_owner; } + PoolType getPool() const { return m_pool; } + + protected: + template <typename T> + void destroy(T t) + { + m_owner.free( m_pool, t, *m_dispatch ); + } + + private: + OwnerType m_owner; + PoolType m_pool; + Dispatch const* m_dispatch; + }; + using SampleMask = uint32_t; using Bool32 = uint32_t; @@ -2676,6 +2848,16 @@ public: using MacOSSurfaceCreateFlagsMVK = Flags<MacOSSurfaceCreateFlagBitsMVK, VkMacOSSurfaceCreateFlagsMVK>; #endif /*VK_USE_PLATFORM_MACOS_MVK*/ +#ifdef VK_USE_PLATFORM_FUCHSIA_FUCHSIA + enum class ImagePipeSurfaceCreateFlagBitsFUCHSIA + { + }; +#endif /*VK_USE_PLATFORM_FUCHSIA_FUCHSIA*/ + +#ifdef VK_USE_PLATFORM_FUCHSIA_FUCHSIA + using ImagePipeSurfaceCreateFlagsFUCHSIA = Flags<ImagePipeSurfaceCreateFlagBitsFUCHSIA, VkImagePipeSurfaceCreateFlagsFUCHSIA>; +#endif /*VK_USE_PLATFORM_FUCHSIA_FUCHSIA*/ + enum class CommandPoolTrimFlagBits { }; @@ -4411,6 +4593,73 @@ public: static_assert( sizeof( ValidationCacheEXT ) == sizeof( VkValidationCacheEXT ), "handle and wrapper have different size!" ); + class AccelerationStructureNVX + { + public: + VULKAN_HPP_CONSTEXPR AccelerationStructureNVX() + : m_accelerationStructureNVX(VK_NULL_HANDLE) + {} + + VULKAN_HPP_CONSTEXPR AccelerationStructureNVX( std::nullptr_t ) + : m_accelerationStructureNVX(VK_NULL_HANDLE) + {} + + VULKAN_HPP_TYPESAFE_EXPLICIT AccelerationStructureNVX( VkAccelerationStructureNVX accelerationStructureNVX ) + : m_accelerationStructureNVX( accelerationStructureNVX ) + {} + +#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) + AccelerationStructureNVX & operator=(VkAccelerationStructureNVX accelerationStructureNVX) + { + m_accelerationStructureNVX = accelerationStructureNVX; + return *this; + } +#endif + + AccelerationStructureNVX & operator=( std::nullptr_t ) + { + m_accelerationStructureNVX = VK_NULL_HANDLE; + return *this; + } + + bool operator==( AccelerationStructureNVX const & rhs ) const + { + return m_accelerationStructureNVX == rhs.m_accelerationStructureNVX; + } + + bool operator!=(AccelerationStructureNVX const & rhs ) const + { + return m_accelerationStructureNVX != rhs.m_accelerationStructureNVX; + } + + bool operator<(AccelerationStructureNVX const & rhs ) const + { + return m_accelerationStructureNVX < rhs.m_accelerationStructureNVX; + } + + + + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkAccelerationStructureNVX() const + { + return m_accelerationStructureNVX; + } + + explicit operator bool() const + { + return m_accelerationStructureNVX != VK_NULL_HANDLE; + } + + bool operator!() const + { + return m_accelerationStructureNVX == VK_NULL_HANDLE; + } + + private: + VkAccelerationStructureNVX m_accelerationStructureNVX; + }; + + static_assert( sizeof( AccelerationStructureNVX ) == sizeof( VkAccelerationStructureNVX ), "handle and wrapper have different size!" ); + class DisplayKHR { public: @@ -4844,11 +5093,16 @@ public: return *this; } - operator const VkOffset2D&() const + operator VkOffset2D const&() const { return *reinterpret_cast<const VkOffset2D*>(this); } + operator VkOffset2D &() + { + return *reinterpret_cast<VkOffset2D*>(this); + } + bool operator==( Offset2D const& rhs ) const { return ( x == rhs.x ) @@ -4911,11 +5165,16 @@ public: return *this; } - operator const VkOffset3D&() const + operator VkOffset3D const&() const { return *reinterpret_cast<const VkOffset3D*>(this); } + operator VkOffset3D &() + { + return *reinterpret_cast<VkOffset3D*>(this); + } + bool operator==( Offset3D const& rhs ) const { return ( x == rhs.x ) @@ -4965,11 +5224,16 @@ public: return *this; } - operator const VkExtent2D&() const + operator VkExtent2D const&() const { return *reinterpret_cast<const VkExtent2D*>(this); } + operator VkExtent2D &() + { + return *reinterpret_cast<VkExtent2D*>(this); + } + bool operator==( Extent2D const& rhs ) const { return ( width == rhs.width ) @@ -5032,11 +5296,16 @@ public: return *this; } - operator const VkExtent3D&() const + operator VkExtent3D const&() const { return *reinterpret_cast<const VkExtent3D*>(this); } + operator VkExtent3D &() + { + return *reinterpret_cast<VkExtent3D*>(this); + } + bool operator==( Extent3D const& rhs ) const { return ( width == rhs.width ) @@ -5118,11 +5387,16 @@ public: return *this; } - operator const VkViewport&() const + operator VkViewport const&() const { return *reinterpret_cast<const VkViewport*>(this); } + operator VkViewport &() + { + return *reinterpret_cast<VkViewport*>(this); + } + bool operator==( Viewport const& rhs ) const { return ( x == rhs.x ) @@ -5178,11 +5452,16 @@ public: return *this; } - operator const VkRect2D&() const + operator VkRect2D const&() const { return *reinterpret_cast<const VkRect2D*>(this); } + operator VkRect2D &() + { + return *reinterpret_cast<VkRect2D*>(this); + } + bool operator==( Rect2D const& rhs ) const { return ( offset == rhs.offset ) @@ -5238,11 +5517,16 @@ public: return *this; } - operator const VkClearRect&() const + operator VkClearRect const&() const { return *reinterpret_cast<const VkClearRect*>(this); } + operator VkClearRect &() + { + return *reinterpret_cast<VkClearRect*>(this); + } + bool operator==( ClearRect const& rhs ) const { return ( rect == rhs.rect ) @@ -5263,11 +5547,16 @@ public: struct ExtensionProperties { - operator const VkExtensionProperties&() const + operator VkExtensionProperties const&() const { return *reinterpret_cast<const VkExtensionProperties*>(this); } + operator VkExtensionProperties &() + { + return *reinterpret_cast<VkExtensionProperties*>(this); + } + bool operator==( ExtensionProperties const& rhs ) const { return ( memcmp( extensionName, rhs.extensionName, VK_MAX_EXTENSION_NAME_SIZE * sizeof( char ) ) == 0 ) @@ -5286,11 +5575,16 @@ public: struct LayerProperties { - operator const VkLayerProperties&() const + operator VkLayerProperties const&() const { return *reinterpret_cast<const VkLayerProperties*>(this); } + operator VkLayerProperties &() + { + return *reinterpret_cast<VkLayerProperties*>(this); + } + bool operator==( LayerProperties const& rhs ) const { return ( memcmp( layerName, rhs.layerName, VK_MAX_EXTENSION_NAME_SIZE * sizeof( char ) ) == 0 ) @@ -5374,11 +5668,16 @@ public: return *this; } - operator const VkAllocationCallbacks&() const + operator VkAllocationCallbacks const&() const { return *reinterpret_cast<const VkAllocationCallbacks*>(this); } + operator VkAllocationCallbacks &() + { + return *reinterpret_cast<VkAllocationCallbacks*>(this); + } + bool operator==( AllocationCallbacks const& rhs ) const { return ( pUserData == rhs.pUserData ) @@ -5405,11 +5704,16 @@ public: struct MemoryRequirements { - operator const VkMemoryRequirements&() const + operator VkMemoryRequirements const&() const { return *reinterpret_cast<const VkMemoryRequirements*>(this); } + operator VkMemoryRequirements &() + { + return *reinterpret_cast<VkMemoryRequirements*>(this); + } + bool operator==( MemoryRequirements const& rhs ) const { return ( size == rhs.size ) @@ -5467,11 +5771,16 @@ public: return *this; } - operator const VkDescriptorBufferInfo&() const + operator VkDescriptorBufferInfo const&() const { return *reinterpret_cast<const VkDescriptorBufferInfo*>(this); } + operator VkDescriptorBufferInfo &() + { + return *reinterpret_cast<VkDescriptorBufferInfo*>(this); + } + bool operator==( DescriptorBufferInfo const& rhs ) const { return ( buffer == rhs.buffer ) @@ -5492,11 +5801,16 @@ public: struct SubresourceLayout { - operator const VkSubresourceLayout&() const + operator VkSubresourceLayout const&() const { return *reinterpret_cast<const VkSubresourceLayout*>(this); } + operator VkSubresourceLayout &() + { + return *reinterpret_cast<VkSubresourceLayout*>(this); + } + bool operator==( SubresourceLayout const& rhs ) const { return ( offset == rhs.offset ) @@ -5558,11 +5872,16 @@ public: return *this; } - operator const VkBufferCopy&() const + operator VkBufferCopy const&() const { return *reinterpret_cast<const VkBufferCopy*>(this); } + operator VkBufferCopy &() + { + return *reinterpret_cast<VkBufferCopy*>(this); + } + bool operator==( BufferCopy const& rhs ) const { return ( srcOffset == rhs.srcOffset ) @@ -5620,11 +5939,16 @@ public: return *this; } - operator const VkSpecializationMapEntry&() const + operator VkSpecializationMapEntry const&() const { return *reinterpret_cast<const VkSpecializationMapEntry*>(this); } + operator VkSpecializationMapEntry &() + { + return *reinterpret_cast<VkSpecializationMapEntry*>(this); + } + bool operator==( SpecializationMapEntry const& rhs ) const { return ( constantID == rhs.constantID ) @@ -5690,11 +6014,16 @@ public: return *this; } - operator const VkSpecializationInfo&() const + operator VkSpecializationInfo const&() const { return *reinterpret_cast<const VkSpecializationInfo*>(this); } + operator VkSpecializationInfo &() + { + return *reinterpret_cast<VkSpecializationInfo*>(this); + } + bool operator==( SpecializationInfo const& rhs ) const { return ( mapEntryCount == rhs.mapEntryCount ) @@ -5750,11 +6079,16 @@ public: return *this; } - operator VkClearColorValue const& () const + operator VkClearColorValue const&() const { return *reinterpret_cast<const VkClearColorValue*>(this); } + operator VkClearColorValue &() + { + return *reinterpret_cast<VkClearColorValue*>(this); + } + float float32[4]; int32_t int32[4]; uint32_t uint32[4]; @@ -5791,11 +6125,16 @@ public: return *this; } - operator const VkClearDepthStencilValue&() const + operator VkClearDepthStencilValue const&() const { return *reinterpret_cast<const VkClearDepthStencilValue*>(this); } + operator VkClearDepthStencilValue &() + { + return *reinterpret_cast<VkClearDepthStencilValue*>(this); + } + bool operator==( ClearDepthStencilValue const& rhs ) const { return ( depth == rhs.depth ) @@ -5836,11 +6175,16 @@ public: return *this; } - operator VkClearValue const& () const + operator VkClearValue const&() const { return *reinterpret_cast<const VkClearValue*>(this); } + operator VkClearValue &() + { + return *reinterpret_cast<VkClearValue*>(this); + } + #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS ClearColorValue color; ClearDepthStencilValue depthStencil; @@ -6305,11 +6649,16 @@ public: return *this; } - operator const VkPhysicalDeviceFeatures&() const + operator VkPhysicalDeviceFeatures const&() const { return *reinterpret_cast<const VkPhysicalDeviceFeatures*>(this); } + operator VkPhysicalDeviceFeatures &() + { + return *reinterpret_cast<VkPhysicalDeviceFeatures*>(this); + } + bool operator==( PhysicalDeviceFeatures const& rhs ) const { return ( robustBufferAccess == rhs.robustBufferAccess ) @@ -6434,11 +6783,16 @@ public: struct PhysicalDeviceSparseProperties { - operator const VkPhysicalDeviceSparseProperties&() const + operator VkPhysicalDeviceSparseProperties const&() const { return *reinterpret_cast<const VkPhysicalDeviceSparseProperties*>(this); } + operator VkPhysicalDeviceSparseProperties &() + { + return *reinterpret_cast<VkPhysicalDeviceSparseProperties*>(this); + } + bool operator==( PhysicalDeviceSparseProperties const& rhs ) const { return ( residencyStandard2DBlockShape == rhs.residencyStandard2DBlockShape ) @@ -6508,11 +6862,16 @@ public: return *this; } - operator const VkDrawIndirectCommand&() const + operator VkDrawIndirectCommand const&() const { return *reinterpret_cast<const VkDrawIndirectCommand*>(this); } + operator VkDrawIndirectCommand &() + { + return *reinterpret_cast<VkDrawIndirectCommand*>(this); + } + bool operator==( DrawIndirectCommand const& rhs ) const { return ( vertexCount == rhs.vertexCount ) @@ -6588,11 +6947,16 @@ public: return *this; } - operator const VkDrawIndexedIndirectCommand&() const + operator VkDrawIndexedIndirectCommand const&() const { return *reinterpret_cast<const VkDrawIndexedIndirectCommand*>(this); } + operator VkDrawIndexedIndirectCommand &() + { + return *reinterpret_cast<VkDrawIndexedIndirectCommand*>(this); + } + bool operator==( DrawIndexedIndirectCommand const& rhs ) const { return ( indexCount == rhs.indexCount ) @@ -6654,11 +7018,16 @@ public: return *this; } - operator const VkDispatchIndirectCommand&() const + operator VkDispatchIndirectCommand const&() const { return *reinterpret_cast<const VkDispatchIndirectCommand*>(this); } + operator VkDispatchIndirectCommand &() + { + return *reinterpret_cast<VkDispatchIndirectCommand*>(this); + } + bool operator==( DispatchIndirectCommand const& rhs ) const { return ( x == rhs.x ) @@ -6679,11 +7048,16 @@ public: struct DisplayPlanePropertiesKHR { - operator const VkDisplayPlanePropertiesKHR&() const + operator VkDisplayPlanePropertiesKHR const&() const { return *reinterpret_cast<const VkDisplayPlanePropertiesKHR*>(this); } + operator VkDisplayPlanePropertiesKHR &() + { + return *reinterpret_cast<VkDisplayPlanePropertiesKHR*>(this); + } + bool operator==( DisplayPlanePropertiesKHR const& rhs ) const { return ( currentDisplay == rhs.currentDisplay ) @@ -6731,11 +7105,16 @@ public: return *this; } - operator const VkDisplayModeParametersKHR&() const + operator VkDisplayModeParametersKHR const&() const { return *reinterpret_cast<const VkDisplayModeParametersKHR*>(this); } + operator VkDisplayModeParametersKHR &() + { + return *reinterpret_cast<VkDisplayModeParametersKHR*>(this); + } + bool operator==( DisplayModeParametersKHR const& rhs ) const { return ( visibleRegion == rhs.visibleRegion ) @@ -6754,11 +7133,16 @@ public: struct DisplayModePropertiesKHR { - operator const VkDisplayModePropertiesKHR&() const + operator VkDisplayModePropertiesKHR const&() const { return *reinterpret_cast<const VkDisplayModePropertiesKHR*>(this); } + operator VkDisplayModePropertiesKHR &() + { + return *reinterpret_cast<VkDisplayModePropertiesKHR*>(this); + } + bool operator==( DisplayModePropertiesKHR const& rhs ) const { return ( displayMode == rhs.displayMode ) @@ -6775,6 +7159,83 @@ public: }; static_assert( sizeof( DisplayModePropertiesKHR ) == sizeof( VkDisplayModePropertiesKHR ), "struct and wrapper have different size!" ); + struct ConformanceVersionKHR + { + ConformanceVersionKHR( uint8_t major_ = 0, + uint8_t minor_ = 0, + uint8_t subminor_ = 0, + uint8_t patch_ = 0 ) + : major( major_ ) + , minor( minor_ ) + , subminor( subminor_ ) + , patch( patch_ ) + { + } + + ConformanceVersionKHR( VkConformanceVersionKHR const & rhs ) + { + memcpy( this, &rhs, sizeof( ConformanceVersionKHR ) ); + } + + ConformanceVersionKHR& operator=( VkConformanceVersionKHR const & rhs ) + { + memcpy( this, &rhs, sizeof( ConformanceVersionKHR ) ); + return *this; + } + ConformanceVersionKHR& setMajor( uint8_t major_ ) + { + major = major_; + return *this; + } + + ConformanceVersionKHR& setMinor( uint8_t minor_ ) + { + minor = minor_; + return *this; + } + + ConformanceVersionKHR& setSubminor( uint8_t subminor_ ) + { + subminor = subminor_; + return *this; + } + + ConformanceVersionKHR& setPatch( uint8_t patch_ ) + { + patch = patch_; + return *this; + } + + operator VkConformanceVersionKHR const&() const + { + return *reinterpret_cast<const VkConformanceVersionKHR*>(this); + } + + operator VkConformanceVersionKHR &() + { + return *reinterpret_cast<VkConformanceVersionKHR*>(this); + } + + bool operator==( ConformanceVersionKHR const& rhs ) const + { + return ( major == rhs.major ) + && ( minor == rhs.minor ) + && ( subminor == rhs.subminor ) + && ( patch == rhs.patch ); + } + + bool operator!=( ConformanceVersionKHR const& rhs ) const + { + return !operator==( rhs ); + } + + uint8_t major; + uint8_t minor; + uint8_t subminor; + uint8_t patch; + }; + static_assert( sizeof( ConformanceVersionKHR ) == sizeof( VkConformanceVersionKHR ), "struct and wrapper have different size!" ); + struct RectLayerKHR { RectLayerKHR( Offset2D offset_ = Offset2D(), @@ -6821,11 +7282,16 @@ public: return *this; } - operator const VkRectLayerKHR&() const + operator VkRectLayerKHR const&() const { return *reinterpret_cast<const VkRectLayerKHR*>(this); } + operator VkRectLayerKHR &() + { + return *reinterpret_cast<VkRectLayerKHR*>(this); + } + bool operator==( RectLayerKHR const& rhs ) const { return ( offset == rhs.offset ) @@ -6875,11 +7341,16 @@ public: return *this; } - operator const VkPresentRegionKHR&() const + operator VkPresentRegionKHR const&() const { return *reinterpret_cast<const VkPresentRegionKHR*>(this); } + operator VkPresentRegionKHR &() + { + return *reinterpret_cast<VkPresentRegionKHR*>(this); + } + bool operator==( PresentRegionKHR const& rhs ) const { return ( rectangleCount == rhs.rectangleCount ) @@ -6927,11 +7398,16 @@ public: return *this; } - operator const VkXYColorEXT&() const + operator VkXYColorEXT const&() const { return *reinterpret_cast<const VkXYColorEXT*>(this); } + operator VkXYColorEXT &() + { + return *reinterpret_cast<VkXYColorEXT*>(this); + } + bool operator==( XYColorEXT const& rhs ) const { return ( x == rhs.x ) @@ -6950,30 +7426,14 @@ public: struct RefreshCycleDurationGOOGLE { - RefreshCycleDurationGOOGLE( uint64_t refreshDuration_ = 0 ) - : refreshDuration( refreshDuration_ ) + operator VkRefreshCycleDurationGOOGLE const&() const { + return *reinterpret_cast<const VkRefreshCycleDurationGOOGLE*>(this); } - RefreshCycleDurationGOOGLE( VkRefreshCycleDurationGOOGLE const & rhs ) - { - memcpy( this, &rhs, sizeof( RefreshCycleDurationGOOGLE ) ); - } - - RefreshCycleDurationGOOGLE& operator=( VkRefreshCycleDurationGOOGLE const & rhs ) - { - memcpy( this, &rhs, sizeof( RefreshCycleDurationGOOGLE ) ); - return *this; - } - RefreshCycleDurationGOOGLE& setRefreshDuration( uint64_t refreshDuration_ ) - { - refreshDuration = refreshDuration_; - return *this; - } - - operator const VkRefreshCycleDurationGOOGLE&() const + operator VkRefreshCycleDurationGOOGLE &() { - return *reinterpret_cast<const VkRefreshCycleDurationGOOGLE*>(this); + return *reinterpret_cast<VkRefreshCycleDurationGOOGLE*>(this); } bool operator==( RefreshCycleDurationGOOGLE const& rhs ) const @@ -6992,62 +7452,14 @@ public: struct PastPresentationTimingGOOGLE { - PastPresentationTimingGOOGLE( uint32_t presentID_ = 0, - uint64_t desiredPresentTime_ = 0, - uint64_t actualPresentTime_ = 0, - uint64_t earliestPresentTime_ = 0, - uint64_t presentMargin_ = 0 ) - : presentID( presentID_ ) - , desiredPresentTime( desiredPresentTime_ ) - , actualPresentTime( actualPresentTime_ ) - , earliestPresentTime( earliestPresentTime_ ) - , presentMargin( presentMargin_ ) + operator VkPastPresentationTimingGOOGLE const&() const { + return *reinterpret_cast<const VkPastPresentationTimingGOOGLE*>(this); } - PastPresentationTimingGOOGLE( VkPastPresentationTimingGOOGLE const & rhs ) - { - memcpy( this, &rhs, sizeof( PastPresentationTimingGOOGLE ) ); - } - - PastPresentationTimingGOOGLE& operator=( VkPastPresentationTimingGOOGLE const & rhs ) - { - memcpy( this, &rhs, sizeof( PastPresentationTimingGOOGLE ) ); - return *this; - } - PastPresentationTimingGOOGLE& setPresentID( uint32_t presentID_ ) - { - presentID = presentID_; - return *this; - } - - PastPresentationTimingGOOGLE& setDesiredPresentTime( uint64_t desiredPresentTime_ ) - { - desiredPresentTime = desiredPresentTime_; - return *this; - } - - PastPresentationTimingGOOGLE& setActualPresentTime( uint64_t actualPresentTime_ ) - { - actualPresentTime = actualPresentTime_; - return *this; - } - - PastPresentationTimingGOOGLE& setEarliestPresentTime( uint64_t earliestPresentTime_ ) - { - earliestPresentTime = earliestPresentTime_; - return *this; - } - - PastPresentationTimingGOOGLE& setPresentMargin( uint64_t presentMargin_ ) - { - presentMargin = presentMargin_; - return *this; - } - - operator const VkPastPresentationTimingGOOGLE&() const + operator VkPastPresentationTimingGOOGLE &() { - return *reinterpret_cast<const VkPastPresentationTimingGOOGLE*>(this); + return *reinterpret_cast<VkPastPresentationTimingGOOGLE*>(this); } bool operator==( PastPresentationTimingGOOGLE const& rhs ) const @@ -7103,11 +7515,16 @@ public: return *this; } - operator const VkPresentTimeGOOGLE&() const + operator VkPresentTimeGOOGLE const&() const { return *reinterpret_cast<const VkPresentTimeGOOGLE*>(this); } + operator VkPresentTimeGOOGLE &() + { + return *reinterpret_cast<VkPresentTimeGOOGLE*>(this); + } + bool operator==( PresentTimeGOOGLE const& rhs ) const { return ( presentID == rhs.presentID ) @@ -7155,11 +7572,16 @@ public: return *this; } - operator const VkViewportWScalingNV&() const + operator VkViewportWScalingNV const&() const { return *reinterpret_cast<const VkViewportWScalingNV*>(this); } + operator VkViewportWScalingNV &() + { + return *reinterpret_cast<VkViewportWScalingNV*>(this); + } + bool operator==( ViewportWScalingNV const& rhs ) const { return ( xcoeff == rhs.xcoeff ) @@ -7207,11 +7629,16 @@ public: return *this; } - operator const VkSampleLocationEXT&() const + operator VkSampleLocationEXT const&() const { return *reinterpret_cast<const VkSampleLocationEXT*>(this); } + operator VkSampleLocationEXT &() + { + return *reinterpret_cast<VkSampleLocationEXT*>(this); + } + bool operator==( SampleLocationEXT const& rhs ) const { return ( x == rhs.x ) @@ -7230,11 +7657,16 @@ public: struct ShaderResourceUsageAMD { - operator const VkShaderResourceUsageAMD&() const + operator VkShaderResourceUsageAMD const&() const { return *reinterpret_cast<const VkShaderResourceUsageAMD*>(this); } + operator VkShaderResourceUsageAMD &() + { + return *reinterpret_cast<VkShaderResourceUsageAMD*>(this); + } + bool operator==( ShaderResourceUsageAMD const& rhs ) const { return ( numUsedVgprs == rhs.numUsedVgprs ) @@ -7288,11 +7720,16 @@ public: return *this; } - operator const VkVertexInputBindingDivisorDescriptionEXT&() const + operator VkVertexInputBindingDivisorDescriptionEXT const&() const { return *reinterpret_cast<const VkVertexInputBindingDivisorDescriptionEXT*>(this); } + operator VkVertexInputBindingDivisorDescriptionEXT &() + { + return *reinterpret_cast<VkVertexInputBindingDivisorDescriptionEXT*>(this); + } + bool operator==( VertexInputBindingDivisorDescriptionEXT const& rhs ) const { return ( binding == rhs.binding ) @@ -7309,6 +7746,130 @@ public: }; static_assert( sizeof( VertexInputBindingDivisorDescriptionEXT ) == sizeof( VkVertexInputBindingDivisorDescriptionEXT ), "struct and wrapper have different size!" ); + struct CoarseSampleLocationNV + { + CoarseSampleLocationNV( uint32_t pixelX_ = 0, + uint32_t pixelY_ = 0, + uint32_t sample_ = 0 ) + : pixelX( pixelX_ ) + , pixelY( pixelY_ ) + , sample( sample_ ) + { + } + + CoarseSampleLocationNV( VkCoarseSampleLocationNV const & rhs ) + { + memcpy( this, &rhs, sizeof( CoarseSampleLocationNV ) ); + } + + CoarseSampleLocationNV& operator=( VkCoarseSampleLocationNV const & rhs ) + { + memcpy( this, &rhs, sizeof( CoarseSampleLocationNV ) ); + return *this; + } + CoarseSampleLocationNV& setPixelX( uint32_t pixelX_ ) + { + pixelX = pixelX_; + return *this; + } + + CoarseSampleLocationNV& setPixelY( uint32_t pixelY_ ) + { + pixelY = pixelY_; + return *this; + } + + CoarseSampleLocationNV& setSample( uint32_t sample_ ) + { + sample = sample_; + return *this; + } + + operator VkCoarseSampleLocationNV const&() const + { + return *reinterpret_cast<const VkCoarseSampleLocationNV*>(this); + } + + operator VkCoarseSampleLocationNV &() + { + return *reinterpret_cast<VkCoarseSampleLocationNV*>(this); + } + + bool operator==( CoarseSampleLocationNV const& rhs ) const + { + return ( pixelX == rhs.pixelX ) + && ( pixelY == rhs.pixelY ) + && ( sample == rhs.sample ); + } + + bool operator!=( CoarseSampleLocationNV const& rhs ) const + { + return !operator==( rhs ); + } + + uint32_t pixelX; + uint32_t pixelY; + uint32_t sample; + }; + static_assert( sizeof( CoarseSampleLocationNV ) == sizeof( VkCoarseSampleLocationNV ), "struct and wrapper have different size!" ); + + struct DrawMeshTasksIndirectCommandNV + { + DrawMeshTasksIndirectCommandNV( uint32_t taskCount_ = 0, + uint32_t firstTask_ = 0 ) + : taskCount( taskCount_ ) + , firstTask( firstTask_ ) + { + } + + DrawMeshTasksIndirectCommandNV( VkDrawMeshTasksIndirectCommandNV const & rhs ) + { + memcpy( this, &rhs, sizeof( DrawMeshTasksIndirectCommandNV ) ); + } + + DrawMeshTasksIndirectCommandNV& operator=( VkDrawMeshTasksIndirectCommandNV const & rhs ) + { + memcpy( this, &rhs, sizeof( DrawMeshTasksIndirectCommandNV ) ); + return *this; + } + DrawMeshTasksIndirectCommandNV& setTaskCount( uint32_t taskCount_ ) + { + taskCount = taskCount_; + return *this; + } + + DrawMeshTasksIndirectCommandNV& setFirstTask( uint32_t firstTask_ ) + { + firstTask = firstTask_; + return *this; + } + + operator VkDrawMeshTasksIndirectCommandNV const&() const + { + return *reinterpret_cast<const VkDrawMeshTasksIndirectCommandNV*>(this); + } + + operator VkDrawMeshTasksIndirectCommandNV &() + { + return *reinterpret_cast<VkDrawMeshTasksIndirectCommandNV*>(this); + } + + bool operator==( DrawMeshTasksIndirectCommandNV const& rhs ) const + { + return ( taskCount == rhs.taskCount ) + && ( firstTask == rhs.firstTask ); + } + + bool operator!=( DrawMeshTasksIndirectCommandNV const& rhs ) const + { + return !operator==( rhs ); + } + + uint32_t taskCount; + uint32_t firstTask; + }; + static_assert( sizeof( DrawMeshTasksIndirectCommandNV ) == sizeof( VkDrawMeshTasksIndirectCommandNV ), "struct and wrapper have different size!" ); + enum class ImageLayout { eUndefined = VK_IMAGE_LAYOUT_UNDEFINED, @@ -7325,7 +7886,8 @@ public: eDepthAttachmentStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, eDepthAttachmentStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, ePresentSrcKHR = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, - eSharedPresentKHR = VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR + eSharedPresentKHR = VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, + eShadingRateOptimalNV = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV }; struct DescriptorImageInfo @@ -7367,11 +7929,16 @@ public: return *this; } - operator const VkDescriptorImageInfo&() const + operator VkDescriptorImageInfo const&() const { return *reinterpret_cast<const VkDescriptorImageInfo*>(this); } + operator VkDescriptorImageInfo &() + { + return *reinterpret_cast<VkDescriptorImageInfo*>(this); + } + bool operator==( DescriptorImageInfo const& rhs ) const { return ( sampler == rhs.sampler ) @@ -7421,11 +7988,16 @@ public: return *this; } - operator const VkAttachmentReference&() const + operator VkAttachmentReference const&() const { return *reinterpret_cast<const VkAttachmentReference*>(this); } + operator VkAttachmentReference &() + { + return *reinterpret_cast<VkAttachmentReference*>(this); + } + bool operator==( AttachmentReference const& rhs ) const { return ( attachment == rhs.attachment ) @@ -7543,11 +8115,16 @@ public: return *this; } - operator const VkComponentMapping&() const + operator VkComponentMapping const&() const { return *reinterpret_cast<const VkComponentMapping*>(this); } + operator VkComponentMapping &() + { + return *reinterpret_cast<VkComponentMapping*>(this); + } + bool operator==( ComponentMapping const& rhs ) const { return ( r == rhs.r ) @@ -7580,7 +8157,9 @@ public: eStorageBuffer = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, eUniformBufferDynamic = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, eStorageBufferDynamic = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, - eInputAttachment = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT + eInputAttachment = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, + eInlineUniformBlockEXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, + eAccelerationStructureNVX = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NVX }; struct DescriptorPoolSize @@ -7614,11 +8193,16 @@ public: return *this; } - operator const VkDescriptorPoolSize&() const + operator VkDescriptorPoolSize const&() const { return *reinterpret_cast<const VkDescriptorPoolSize*>(this); } + operator VkDescriptorPoolSize &() + { + return *reinterpret_cast<VkDescriptorPoolSize*>(this); + } + bool operator==( DescriptorPoolSize const& rhs ) const { return ( type == rhs.type ) @@ -7698,11 +8282,16 @@ public: return *this; } - operator const VkDescriptorUpdateTemplateEntry&() const + operator VkDescriptorUpdateTemplateEntry const&() const { return *reinterpret_cast<const VkDescriptorUpdateTemplateEntry*>(this); } + operator VkDescriptorUpdateTemplateEntry &() + { + return *reinterpret_cast<VkDescriptorUpdateTemplateEntry*>(this); + } + bool operator==( DescriptorUpdateTemplateEntry const& rhs ) const { return ( dstBinding == rhs.dstBinding ) @@ -7733,7 +8322,8 @@ public: { eOcclusion = VK_QUERY_TYPE_OCCLUSION, ePipelineStatistics = VK_QUERY_TYPE_PIPELINE_STATISTICS, - eTimestamp = VK_QUERY_TYPE_TIMESTAMP + eTimestamp = VK_QUERY_TYPE_TIMESTAMP, + eCompactedSizeNVX = VK_QUERY_TYPE_COMPACTED_SIZE_NVX }; enum class BorderColor @@ -7749,7 +8339,8 @@ public: enum class PipelineBindPoint { eGraphics = VK_PIPELINE_BIND_POINT_GRAPHICS, - eCompute = VK_PIPELINE_BIND_POINT_COMPUTE + eCompute = VK_PIPELINE_BIND_POINT_COMPUTE, + eRaytracingNVX = VK_PIPELINE_BIND_POINT_RAYTRACING_NVX }; enum class PipelineCacheHeaderVersion @@ -8021,11 +8612,16 @@ public: return *this; } - operator const VkStencilOpState&() const + operator VkStencilOpState const&() const { return *reinterpret_cast<const VkStencilOpState*>(this); } + operator VkStencilOpState &() + { + return *reinterpret_cast<VkStencilOpState*>(this); + } + bool operator==( StencilOpState const& rhs ) const { return ( failOp == rhs.failOp ) @@ -8140,11 +8736,16 @@ public: return *this; } - operator const VkVertexInputBindingDescription&() const + operator VkVertexInputBindingDescription const&() const { return *reinterpret_cast<const VkVertexInputBindingDescription*>(this); } + operator VkVertexInputBindingDescription &() + { + return *reinterpret_cast<VkVertexInputBindingDescription*>(this); + } + bool operator==( VertexInputBindingDescription const& rhs ) const { return ( binding == rhs.binding ) @@ -8475,11 +9076,16 @@ public: return *this; } - operator const VkVertexInputAttributeDescription&() const + operator VkVertexInputAttributeDescription const&() const { return *reinterpret_cast<const VkVertexInputAttributeDescription*>(this); } + operator VkVertexInputAttributeDescription &() + { + return *reinterpret_cast<VkVertexInputAttributeDescription*>(this); + } + bool operator==( VertexInputAttributeDescription const& rhs ) const { return ( location == rhs.location ) @@ -8693,6 +9299,7 @@ public: eAndroidSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR, eWin32SurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR, eDebugReportCallbackCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, + eDebugReportCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_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, @@ -8701,6 +9308,7 @@ public: eDedicatedAllocationBufferCreateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV, eDedicatedAllocationMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV, eTextureLodGatherFormatPropertiesAMD = VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD, + ePhysicalDeviceCornerSampledImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV, eExternalMemoryImageCreateInfoNV = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV, eExportMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV, eImportMemoryWin32HandleInfoNV = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV, @@ -8708,6 +9316,8 @@ public: eWin32KeyedMutexAcquireReleaseInfoNV = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV, eValidationFlagsEXT = VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT, eViSurfaceCreateInfoNN = VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN, + eImageViewAstcDecodeModeEXT = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT, + ePhysicalDeviceAstcDecodeFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT, eImportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR, eExportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR, eMemoryWin32HandlePropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR, @@ -8723,6 +9333,9 @@ public: eImportSemaphoreFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR, eSemaphoreGetFdInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR, ePhysicalDevicePushDescriptorPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR, + 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, ePresentRegionsKHR = VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR, eObjectTableCreateInfoNVX = VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX, eIndirectCommandsLayoutCreateInfoNVX = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX, @@ -8744,6 +9357,13 @@ public: ePhysicalDeviceConservativeRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT, ePipelineRasterizationConservativeStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT, eHdrMetadataEXT = VK_STRUCTURE_TYPE_HDR_METADATA_EXT, + 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, eSharedPresentSurfaceCapabilitiesKHR = VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR, eImportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR, eExportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR, @@ -8773,6 +9393,10 @@ public: eExternalFormatANDROID = VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID, ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT, eSamplerReductionModeCreateInfoEXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT, + 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, @@ -8791,13 +9415,45 @@ public: 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, + 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, + eRaytracingPipelineCreateInfoNVX = VK_STRUCTURE_TYPE_RAYTRACING_PIPELINE_CREATE_INFO_NVX, + eAccelerationStructureCreateInfoNVX = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NVX, + eGeometryInstanceNVX = VK_STRUCTURE_TYPE_GEOMETRY_INSTANCE_NVX, + eGeometryNVX = VK_STRUCTURE_TYPE_GEOMETRY_NVX, + eGeometryTrianglesNVX = VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NVX, + eGeometryAabbNVX = VK_STRUCTURE_TYPE_GEOMETRY_AABB_NVX, + eBindAccelerationStructureMemoryInfoNVX = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NVX, + eDescriptorAccelerationStructureInfoNVX = VK_STRUCTURE_TYPE_DESCRIPTOR_ACCELERATION_STRUCTURE_INFO_NVX, + eAccelerationStructureMemoryRequirementsInfoNVX = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NVX, + ePhysicalDeviceRaytracingPropertiesNVX = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAYTRACING_PROPERTIES_NVX, + eHitShaderModuleCreateInfoNVX = VK_STRUCTURE_TYPE_HIT_SHADER_MODULE_CREATE_INFO_NVX, + ePhysicalDeviceRepresentativeFragmentTestFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV, + ePipelineRepresentativeFragmentTestStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV, eDeviceQueueGlobalPriorityCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT, + 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, ePhysicalDeviceShaderCorePropertiesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD, ePhysicalDeviceVertexAttributeDivisorPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT, - ePipelineVertexInputDivisorStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT + ePipelineVertexInputDivisorStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT, + ePhysicalDeviceVertexAttributeDivisorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT, + ePhysicalDeviceDriverPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_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, + ePhysicalDeviceVulkanMemoryModelFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR, + eImagepipeSurfaceCreateInfoFUCHSIA = VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA }; struct ApplicationInfo @@ -8861,11 +9517,16 @@ public: return *this; } - operator const VkApplicationInfo&() const + operator VkApplicationInfo const&() const { return *reinterpret_cast<const VkApplicationInfo*>(this); } + operator VkApplicationInfo &() + { + return *reinterpret_cast<VkApplicationInfo*>(this); + } + bool operator==( ApplicationInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -8964,11 +9625,16 @@ public: return *this; } - operator const VkInstanceCreateInfo&() const + operator VkInstanceCreateInfo const&() const { return *reinterpret_cast<const VkInstanceCreateInfo*>(this); } + operator VkInstanceCreateInfo &() + { + return *reinterpret_cast<VkInstanceCreateInfo*>(this); + } + bool operator==( InstanceCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -9037,11 +9703,16 @@ public: return *this; } - operator const VkMemoryAllocateInfo&() const + operator VkMemoryAllocateInfo const&() const { return *reinterpret_cast<const VkMemoryAllocateInfo*>(this); } + operator VkMemoryAllocateInfo &() + { + return *reinterpret_cast<VkMemoryAllocateInfo*>(this); + } + bool operator==( MemoryAllocateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -9110,11 +9781,16 @@ public: return *this; } - operator const VkMappedMemoryRange&() const + operator VkMappedMemoryRange const&() const { return *reinterpret_cast<const VkMappedMemoryRange*>(this); } + operator VkMappedMemoryRange &() + { + return *reinterpret_cast<VkMappedMemoryRange*>(this); + } + bool operator==( MappedMemoryRange const& rhs ) const { return ( sType == rhs.sType ) @@ -9225,11 +9901,16 @@ public: return *this; } - operator const VkWriteDescriptorSet&() const + operator VkWriteDescriptorSet const&() const { return *reinterpret_cast<const VkWriteDescriptorSet*>(this); } + operator VkWriteDescriptorSet &() + { + return *reinterpret_cast<VkWriteDescriptorSet*>(this); + } + bool operator==( WriteDescriptorSet const& rhs ) const { return ( sType == rhs.sType ) @@ -9342,11 +10023,16 @@ public: return *this; } - operator const VkCopyDescriptorSet&() const + operator VkCopyDescriptorSet const&() const { return *reinterpret_cast<const VkCopyDescriptorSet*>(this); } + operator VkCopyDescriptorSet &() + { + return *reinterpret_cast<VkCopyDescriptorSet*>(this); + } + bool operator==( CopyDescriptorSet const& rhs ) const { return ( sType == rhs.sType ) @@ -9441,11 +10127,16 @@ public: return *this; } - operator const VkBufferViewCreateInfo&() const + operator VkBufferViewCreateInfo const&() const { return *reinterpret_cast<const VkBufferViewCreateInfo*>(this); } + operator VkBufferViewCreateInfo &() + { + return *reinterpret_cast<VkBufferViewCreateInfo*>(this); + } + bool operator==( BufferViewCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -9520,11 +10211,16 @@ public: return *this; } - operator const VkShaderModuleCreateInfo&() const + operator VkShaderModuleCreateInfo const&() const { return *reinterpret_cast<const VkShaderModuleCreateInfo*>(this); } + operator VkShaderModuleCreateInfo &() + { + return *reinterpret_cast<VkShaderModuleCreateInfo*>(this); + } + bool operator==( ShaderModuleCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -9595,11 +10291,16 @@ public: return *this; } - operator const VkDescriptorSetAllocateInfo&() const + operator VkDescriptorSetAllocateInfo const&() const { return *reinterpret_cast<const VkDescriptorSetAllocateInfo*>(this); } + operator VkDescriptorSetAllocateInfo &() + { + return *reinterpret_cast<VkDescriptorSetAllocateInfo*>(this); + } + bool operator==( DescriptorSetAllocateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -9686,11 +10387,16 @@ public: return *this; } - operator const VkPipelineVertexInputStateCreateInfo&() const + operator VkPipelineVertexInputStateCreateInfo const&() const { return *reinterpret_cast<const VkPipelineVertexInputStateCreateInfo*>(this); } + operator VkPipelineVertexInputStateCreateInfo &() + { + return *reinterpret_cast<VkPipelineVertexInputStateCreateInfo*>(this); + } + bool operator==( PipelineVertexInputStateCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -9765,11 +10471,16 @@ public: return *this; } - operator const VkPipelineInputAssemblyStateCreateInfo&() const + operator VkPipelineInputAssemblyStateCreateInfo const&() const { return *reinterpret_cast<const VkPipelineInputAssemblyStateCreateInfo*>(this); } + operator VkPipelineInputAssemblyStateCreateInfo &() + { + return *reinterpret_cast<VkPipelineInputAssemblyStateCreateInfo*>(this); + } + bool operator==( PipelineInputAssemblyStateCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -9832,11 +10543,16 @@ public: return *this; } - operator const VkPipelineTessellationStateCreateInfo&() const + operator VkPipelineTessellationStateCreateInfo const&() const { return *reinterpret_cast<const VkPipelineTessellationStateCreateInfo*>(this); } + operator VkPipelineTessellationStateCreateInfo &() + { + return *reinterpret_cast<VkPipelineTessellationStateCreateInfo*>(this); + } + bool operator==( PipelineTessellationStateCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -9921,11 +10637,16 @@ public: return *this; } - operator const VkPipelineViewportStateCreateInfo&() const + operator VkPipelineViewportStateCreateInfo const&() const { return *reinterpret_cast<const VkPipelineViewportStateCreateInfo*>(this); } + operator VkPipelineViewportStateCreateInfo &() + { + return *reinterpret_cast<VkPipelineViewportStateCreateInfo*>(this); + } + bool operator==( PipelineViewportStateCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -10064,11 +10785,16 @@ public: return *this; } - operator const VkPipelineRasterizationStateCreateInfo&() const + operator VkPipelineRasterizationStateCreateInfo const&() const { return *reinterpret_cast<const VkPipelineRasterizationStateCreateInfo*>(this); } + operator VkPipelineRasterizationStateCreateInfo &() + { + return *reinterpret_cast<VkPipelineRasterizationStateCreateInfo*>(this); + } + bool operator==( PipelineRasterizationStateCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -10211,11 +10937,16 @@ public: return *this; } - operator const VkPipelineDepthStencilStateCreateInfo&() const + operator VkPipelineDepthStencilStateCreateInfo const&() const { return *reinterpret_cast<const VkPipelineDepthStencilStateCreateInfo*>(this); } + operator VkPipelineDepthStencilStateCreateInfo &() + { + return *reinterpret_cast<VkPipelineDepthStencilStateCreateInfo*>(this); + } + bool operator==( PipelineDepthStencilStateCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -10300,11 +11031,16 @@ public: return *this; } - operator const VkPipelineCacheCreateInfo&() const + operator VkPipelineCacheCreateInfo const&() const { return *reinterpret_cast<const VkPipelineCacheCreateInfo*>(this); } + operator VkPipelineCacheCreateInfo &() + { + return *reinterpret_cast<VkPipelineCacheCreateInfo*>(this); + } + bool operator==( PipelineCacheCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -10479,11 +11215,16 @@ public: return *this; } - operator const VkSamplerCreateInfo&() const + operator VkSamplerCreateInfo const&() const { return *reinterpret_cast<const VkSamplerCreateInfo*>(this); } + operator VkSamplerCreateInfo &() + { + return *reinterpret_cast<VkSamplerCreateInfo*>(this); + } + bool operator==( SamplerCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -10580,11 +11321,16 @@ public: return *this; } - operator const VkCommandBufferAllocateInfo&() const + operator VkCommandBufferAllocateInfo const&() const { return *reinterpret_cast<const VkCommandBufferAllocateInfo*>(this); } + operator VkCommandBufferAllocateInfo &() + { + return *reinterpret_cast<VkCommandBufferAllocateInfo*>(this); + } + bool operator==( CommandBufferAllocateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -10671,11 +11417,16 @@ public: return *this; } - operator const VkRenderPassBeginInfo&() const + operator VkRenderPassBeginInfo const&() const { return *reinterpret_cast<const VkRenderPassBeginInfo*>(this); } + operator VkRenderPassBeginInfo &() + { + return *reinterpret_cast<VkRenderPassBeginInfo*>(this); + } + bool operator==( RenderPassBeginInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -10734,11 +11485,16 @@ public: return *this; } - operator const VkEventCreateInfo&() const + operator VkEventCreateInfo const&() const { return *reinterpret_cast<const VkEventCreateInfo*>(this); } + operator VkEventCreateInfo &() + { + return *reinterpret_cast<VkEventCreateInfo*>(this); + } + bool operator==( EventCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -10789,11 +11545,16 @@ public: return *this; } - operator const VkSemaphoreCreateInfo&() const + operator VkSemaphoreCreateInfo const&() const { return *reinterpret_cast<const VkSemaphoreCreateInfo*>(this); } + operator VkSemaphoreCreateInfo &() + { + return *reinterpret_cast<VkSemaphoreCreateInfo*>(this); + } + bool operator==( SemaphoreCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -10892,11 +11653,16 @@ public: return *this; } - operator const VkFramebufferCreateInfo&() const + operator VkFramebufferCreateInfo const&() const { return *reinterpret_cast<const VkFramebufferCreateInfo*>(this); } + operator VkFramebufferCreateInfo &() + { + return *reinterpret_cast<VkFramebufferCreateInfo*>(this); + } + bool operator==( FramebufferCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -10967,11 +11733,16 @@ public: return *this; } - operator const VkDisplayModeCreateInfoKHR&() const + operator VkDisplayModeCreateInfoKHR const&() const { return *reinterpret_cast<const VkDisplayModeCreateInfoKHR*>(this); } + operator VkDisplayModeCreateInfoKHR &() + { + return *reinterpret_cast<VkDisplayModeCreateInfoKHR*>(this); + } + bool operator==( DisplayModeCreateInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -11040,11 +11811,16 @@ public: return *this; } - operator const VkDisplayPresentInfoKHR&() const + operator VkDisplayPresentInfoKHR const&() const { return *reinterpret_cast<const VkDisplayPresentInfoKHR*>(this); } + operator VkDisplayPresentInfoKHR &() + { + return *reinterpret_cast<VkDisplayPresentInfoKHR*>(this); + } + bool operator==( DisplayPresentInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -11108,11 +11884,16 @@ public: return *this; } - operator const VkAndroidSurfaceCreateInfoKHR&() const + operator VkAndroidSurfaceCreateInfoKHR const&() const { return *reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR*>(this); } + operator VkAndroidSurfaceCreateInfoKHR &() + { + return *reinterpret_cast<VkAndroidSurfaceCreateInfoKHR*>(this); + } + bool operator==( AndroidSurfaceCreateInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -11183,11 +11964,16 @@ public: return *this; } - operator const VkMirSurfaceCreateInfoKHR&() const + operator VkMirSurfaceCreateInfoKHR const&() const { return *reinterpret_cast<const VkMirSurfaceCreateInfoKHR*>(this); } + operator VkMirSurfaceCreateInfoKHR &() + { + return *reinterpret_cast<VkMirSurfaceCreateInfoKHR*>(this); + } + bool operator==( MirSurfaceCreateInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -11252,11 +12038,16 @@ public: return *this; } - operator const VkViSurfaceCreateInfoNN&() const + operator VkViSurfaceCreateInfoNN const&() const { return *reinterpret_cast<const VkViSurfaceCreateInfoNN*>(this); } + operator VkViSurfaceCreateInfoNN &() + { + return *reinterpret_cast<VkViSurfaceCreateInfoNN*>(this); + } + bool operator==( ViSurfaceCreateInfoNN const& rhs ) const { return ( sType == rhs.sType ) @@ -11327,11 +12118,16 @@ public: return *this; } - operator const VkWaylandSurfaceCreateInfoKHR&() const + operator VkWaylandSurfaceCreateInfoKHR const&() const { return *reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR*>(this); } + operator VkWaylandSurfaceCreateInfoKHR &() + { + return *reinterpret_cast<VkWaylandSurfaceCreateInfoKHR*>(this); + } + bool operator==( WaylandSurfaceCreateInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -11404,11 +12200,16 @@ public: return *this; } - operator const VkWin32SurfaceCreateInfoKHR&() const + operator VkWin32SurfaceCreateInfoKHR const&() const { return *reinterpret_cast<const VkWin32SurfaceCreateInfoKHR*>(this); } + operator VkWin32SurfaceCreateInfoKHR &() + { + return *reinterpret_cast<VkWin32SurfaceCreateInfoKHR*>(this); + } + bool operator==( Win32SurfaceCreateInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -11481,11 +12282,16 @@ public: return *this; } - operator const VkXlibSurfaceCreateInfoKHR&() const + operator VkXlibSurfaceCreateInfoKHR const&() const { return *reinterpret_cast<const VkXlibSurfaceCreateInfoKHR*>(this); } + operator VkXlibSurfaceCreateInfoKHR &() + { + return *reinterpret_cast<VkXlibSurfaceCreateInfoKHR*>(this); + } + bool operator==( XlibSurfaceCreateInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -11558,11 +12364,16 @@ public: return *this; } - operator const VkXcbSurfaceCreateInfoKHR&() const + operator VkXcbSurfaceCreateInfoKHR const&() const { return *reinterpret_cast<const VkXcbSurfaceCreateInfoKHR*>(this); } + operator VkXcbSurfaceCreateInfoKHR &() + { + return *reinterpret_cast<VkXcbSurfaceCreateInfoKHR*>(this); + } + bool operator==( XcbSurfaceCreateInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -11589,6 +12400,78 @@ public: static_assert( sizeof( XcbSurfaceCreateInfoKHR ) == sizeof( VkXcbSurfaceCreateInfoKHR ), "struct and wrapper have different size!" ); #endif /*VK_USE_PLATFORM_XCB_KHR*/ +#ifdef VK_USE_PLATFORM_FUCHSIA_FUCHSIA + struct ImagePipeSurfaceCreateInfoFUCHSIA + { + ImagePipeSurfaceCreateInfoFUCHSIA( ImagePipeSurfaceCreateFlagsFUCHSIA flags_ = ImagePipeSurfaceCreateFlagsFUCHSIA(), + zx_handle_t imagePipeHandle_ = 0 ) + : flags( flags_ ) + , imagePipeHandle( imagePipeHandle_ ) + { + } + + ImagePipeSurfaceCreateInfoFUCHSIA( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) + { + memcpy( this, &rhs, sizeof( ImagePipeSurfaceCreateInfoFUCHSIA ) ); + } + + ImagePipeSurfaceCreateInfoFUCHSIA& operator=( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) + { + memcpy( this, &rhs, sizeof( ImagePipeSurfaceCreateInfoFUCHSIA ) ); + return *this; + } + ImagePipeSurfaceCreateInfoFUCHSIA& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + ImagePipeSurfaceCreateInfoFUCHSIA& setFlags( ImagePipeSurfaceCreateFlagsFUCHSIA flags_ ) + { + flags = flags_; + return *this; + } + + ImagePipeSurfaceCreateInfoFUCHSIA& setImagePipeHandle( zx_handle_t imagePipeHandle_ ) + { + imagePipeHandle = imagePipeHandle_; + return *this; + } + + operator VkImagePipeSurfaceCreateInfoFUCHSIA const&() const + { + return *reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA*>(this); + } + + operator VkImagePipeSurfaceCreateInfoFUCHSIA &() + { + return *reinterpret_cast<VkImagePipeSurfaceCreateInfoFUCHSIA*>(this); + } + + bool operator==( ImagePipeSurfaceCreateInfoFUCHSIA const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( flags == rhs.flags ) + && ( imagePipeHandle == rhs.imagePipeHandle ); + } + + bool operator!=( ImagePipeSurfaceCreateInfoFUCHSIA const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA; + + public: + const void* pNext = nullptr; + ImagePipeSurfaceCreateFlagsFUCHSIA flags; + zx_handle_t imagePipeHandle; + }; + static_assert( sizeof( ImagePipeSurfaceCreateInfoFUCHSIA ) == sizeof( VkImagePipeSurfaceCreateInfoFUCHSIA ), "struct and wrapper have different size!" ); +#endif /*VK_USE_PLATFORM_FUCHSIA_FUCHSIA*/ + struct DebugMarkerMarkerInfoEXT { DebugMarkerMarkerInfoEXT( const char* pMarkerName_ = nullptr, @@ -11626,11 +12509,16 @@ public: return *this; } - operator const VkDebugMarkerMarkerInfoEXT&() const + operator VkDebugMarkerMarkerInfoEXT const&() const { return *reinterpret_cast<const VkDebugMarkerMarkerInfoEXT*>(this); } + operator VkDebugMarkerMarkerInfoEXT &() + { + return *reinterpret_cast<VkDebugMarkerMarkerInfoEXT*>(this); + } + bool operator==( DebugMarkerMarkerInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -11683,11 +12571,16 @@ public: return *this; } - operator const VkDedicatedAllocationImageCreateInfoNV&() const + operator VkDedicatedAllocationImageCreateInfoNV const&() const { return *reinterpret_cast<const VkDedicatedAllocationImageCreateInfoNV*>(this); } + operator VkDedicatedAllocationImageCreateInfoNV &() + { + return *reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV*>(this); + } + bool operator==( DedicatedAllocationImageCreateInfoNV const& rhs ) const { return ( sType == rhs.sType ) @@ -11738,11 +12631,16 @@ public: return *this; } - operator const VkDedicatedAllocationBufferCreateInfoNV&() const + operator VkDedicatedAllocationBufferCreateInfoNV const&() const { return *reinterpret_cast<const VkDedicatedAllocationBufferCreateInfoNV*>(this); } + operator VkDedicatedAllocationBufferCreateInfoNV &() + { + return *reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV*>(this); + } + bool operator==( DedicatedAllocationBufferCreateInfoNV const& rhs ) const { return ( sType == rhs.sType ) @@ -11801,11 +12699,16 @@ public: return *this; } - operator const VkDedicatedAllocationMemoryAllocateInfoNV&() const + operator VkDedicatedAllocationMemoryAllocateInfoNV const&() const { return *reinterpret_cast<const VkDedicatedAllocationMemoryAllocateInfoNV*>(this); } + operator VkDedicatedAllocationMemoryAllocateInfoNV &() + { + return *reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV*>(this); + } + bool operator==( DedicatedAllocationMemoryAllocateInfoNV const& rhs ) const { return ( sType == rhs.sType ) @@ -11867,11 +12770,16 @@ public: return *this; } - operator const VkExportMemoryWin32HandleInfoNV&() const + operator VkExportMemoryWin32HandleInfoNV const&() const { return *reinterpret_cast<const VkExportMemoryWin32HandleInfoNV*>(this); } + operator VkExportMemoryWin32HandleInfoNV &() + { + return *reinterpret_cast<VkExportMemoryWin32HandleInfoNV*>(this); + } + bool operator==( ExportMemoryWin32HandleInfoNV const& rhs ) const { return ( sType == rhs.sType ) @@ -11974,11 +12882,16 @@ public: return *this; } - operator const VkWin32KeyedMutexAcquireReleaseInfoNV&() const + operator VkWin32KeyedMutexAcquireReleaseInfoNV const&() const { return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoNV*>(this); } + operator VkWin32KeyedMutexAcquireReleaseInfoNV &() + { + return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV*>(this); + } + bool operator==( Win32KeyedMutexAcquireReleaseInfoNV const& rhs ) const { return ( sType == rhs.sType ) @@ -12042,11 +12955,16 @@ public: return *this; } - operator const VkDeviceGeneratedCommandsFeaturesNVX&() const + operator VkDeviceGeneratedCommandsFeaturesNVX const&() const { return *reinterpret_cast<const VkDeviceGeneratedCommandsFeaturesNVX*>(this); } + operator VkDeviceGeneratedCommandsFeaturesNVX &() + { + return *reinterpret_cast<VkDeviceGeneratedCommandsFeaturesNVX*>(this); + } + bool operator==( DeviceGeneratedCommandsFeaturesNVX const& rhs ) const { return ( sType == rhs.sType ) @@ -12129,11 +13047,16 @@ public: return *this; } - operator const VkDeviceGeneratedCommandsLimitsNVX&() const + operator VkDeviceGeneratedCommandsLimitsNVX const&() const { return *reinterpret_cast<const VkDeviceGeneratedCommandsLimitsNVX*>(this); } + operator VkDeviceGeneratedCommandsLimitsNVX &() + { + return *reinterpret_cast<VkDeviceGeneratedCommandsLimitsNVX*>(this); + } + bool operator==( DeviceGeneratedCommandsLimitsNVX const& rhs ) const { return ( sType == rhs.sType ) @@ -12208,11 +13131,16 @@ public: return *this; } - operator const VkCmdReserveSpaceForCommandsInfoNVX&() const + operator VkCmdReserveSpaceForCommandsInfoNVX const&() const { return *reinterpret_cast<const VkCmdReserveSpaceForCommandsInfoNVX*>(this); } + operator VkCmdReserveSpaceForCommandsInfoNVX &() + { + return *reinterpret_cast<VkCmdReserveSpaceForCommandsInfoNVX*>(this); + } + bool operator==( CmdReserveSpaceForCommandsInfoNVX const& rhs ) const { return ( sType == rhs.sType ) @@ -12267,11 +13195,16 @@ public: return *this; } - operator const VkPhysicalDeviceFeatures2&() const + operator VkPhysicalDeviceFeatures2 const&() const { return *reinterpret_cast<const VkPhysicalDeviceFeatures2*>(this); } + operator VkPhysicalDeviceFeatures2 &() + { + return *reinterpret_cast<VkPhysicalDeviceFeatures2*>(this); + } + bool operator==( PhysicalDeviceFeatures2 const& rhs ) const { return ( sType == rhs.sType ) @@ -12324,11 +13257,16 @@ public: return *this; } - operator const VkPhysicalDevicePushDescriptorPropertiesKHR&() const + operator VkPhysicalDevicePushDescriptorPropertiesKHR const&() const { return *reinterpret_cast<const VkPhysicalDevicePushDescriptorPropertiesKHR*>(this); } + operator VkPhysicalDevicePushDescriptorPropertiesKHR &() + { + return *reinterpret_cast<VkPhysicalDevicePushDescriptorPropertiesKHR*>(this); + } + bool operator==( PhysicalDevicePushDescriptorPropertiesKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -12350,6 +13288,45 @@ public: }; static_assert( sizeof( PhysicalDevicePushDescriptorPropertiesKHR ) == sizeof( VkPhysicalDevicePushDescriptorPropertiesKHR ), "struct and wrapper have different size!" ); + struct PhysicalDeviceDriverPropertiesKHR + { + operator VkPhysicalDeviceDriverPropertiesKHR const&() const + { + return *reinterpret_cast<const VkPhysicalDeviceDriverPropertiesKHR*>(this); + } + + operator VkPhysicalDeviceDriverPropertiesKHR &() + { + return *reinterpret_cast<VkPhysicalDeviceDriverPropertiesKHR*>(this); + } + + bool operator==( PhysicalDeviceDriverPropertiesKHR const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( driverID == rhs.driverID ) + && ( memcmp( driverName, rhs.driverName, VK_MAX_DRIVER_NAME_SIZE_KHR * sizeof( char ) ) == 0 ) + && ( memcmp( driverInfo, rhs.driverInfo, VK_MAX_DRIVER_INFO_SIZE_KHR * sizeof( char ) ) == 0 ) + && ( conformanceVersion == rhs.conformanceVersion ); + } + + bool operator!=( PhysicalDeviceDriverPropertiesKHR const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePhysicalDeviceDriverPropertiesKHR; + + public: + void* pNext = nullptr; + uint32_t driverID; + char driverName[VK_MAX_DRIVER_NAME_SIZE_KHR]; + char driverInfo[VK_MAX_DRIVER_INFO_SIZE_KHR]; + ConformanceVersionKHR conformanceVersion; + }; + static_assert( sizeof( PhysicalDeviceDriverPropertiesKHR ) == sizeof( VkPhysicalDeviceDriverPropertiesKHR ), "struct and wrapper have different size!" ); + struct PresentRegionsKHR { PresentRegionsKHR( uint32_t swapchainCount_ = 0, @@ -12387,11 +13364,16 @@ public: return *this; } - operator const VkPresentRegionsKHR&() const + operator VkPresentRegionsKHR const&() const { return *reinterpret_cast<const VkPresentRegionsKHR*>(this); } + operator VkPresentRegionsKHR &() + { + return *reinterpret_cast<VkPresentRegionsKHR*>(this); + } + bool operator==( PresentRegionsKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -12452,11 +13434,16 @@ public: return *this; } - operator const VkPhysicalDeviceVariablePointerFeatures&() const + operator VkPhysicalDeviceVariablePointerFeatures const&() const { return *reinterpret_cast<const VkPhysicalDeviceVariablePointerFeatures*>(this); } + operator VkPhysicalDeviceVariablePointerFeatures &() + { + return *reinterpret_cast<VkPhysicalDeviceVariablePointerFeatures*>(this); + } + bool operator==( PhysicalDeviceVariablePointerFeatures const& rhs ) const { return ( sType == rhs.sType ) @@ -12484,11 +13471,16 @@ public: struct PhysicalDeviceIDProperties { - operator const VkPhysicalDeviceIDProperties&() const + operator VkPhysicalDeviceIDProperties const&() const { return *reinterpret_cast<const VkPhysicalDeviceIDProperties*>(this); } + operator VkPhysicalDeviceIDProperties &() + { + return *reinterpret_cast<VkPhysicalDeviceIDProperties*>(this); + } + bool operator==( PhysicalDeviceIDProperties const& rhs ) const { return ( sType == rhs.sType ) @@ -12566,11 +13558,16 @@ public: return *this; } - operator const VkExportMemoryWin32HandleInfoKHR&() const + operator VkExportMemoryWin32HandleInfoKHR const&() const { return *reinterpret_cast<const VkExportMemoryWin32HandleInfoKHR*>(this); } + operator VkExportMemoryWin32HandleInfoKHR &() + { + return *reinterpret_cast<VkExportMemoryWin32HandleInfoKHR*>(this); + } + bool operator==( ExportMemoryWin32HandleInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -12600,11 +13597,16 @@ public: #ifdef VK_USE_PLATFORM_WIN32_KHR struct MemoryWin32HandlePropertiesKHR { - operator const VkMemoryWin32HandlePropertiesKHR&() const + operator VkMemoryWin32HandlePropertiesKHR const&() const { return *reinterpret_cast<const VkMemoryWin32HandlePropertiesKHR*>(this); } + operator VkMemoryWin32HandlePropertiesKHR &() + { + return *reinterpret_cast<VkMemoryWin32HandlePropertiesKHR*>(this); + } + bool operator==( MemoryWin32HandlePropertiesKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -12629,11 +13631,16 @@ public: struct MemoryFdPropertiesKHR { - operator const VkMemoryFdPropertiesKHR&() const + operator VkMemoryFdPropertiesKHR const&() const { return *reinterpret_cast<const VkMemoryFdPropertiesKHR*>(this); } + operator VkMemoryFdPropertiesKHR &() + { + return *reinterpret_cast<VkMemoryFdPropertiesKHR*>(this); + } + bool operator==( MemoryFdPropertiesKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -12733,11 +13740,16 @@ public: return *this; } - operator const VkWin32KeyedMutexAcquireReleaseInfoKHR&() const + operator VkWin32KeyedMutexAcquireReleaseInfoKHR const&() const { return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoKHR*>(this); } + operator VkWin32KeyedMutexAcquireReleaseInfoKHR &() + { + return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR*>(this); + } + bool operator==( Win32KeyedMutexAcquireReleaseInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -12818,11 +13830,16 @@ public: return *this; } - operator const VkExportSemaphoreWin32HandleInfoKHR&() const + operator VkExportSemaphoreWin32HandleInfoKHR const&() const { return *reinterpret_cast<const VkExportSemaphoreWin32HandleInfoKHR*>(this); } + operator VkExportSemaphoreWin32HandleInfoKHR &() + { + return *reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR*>(this); + } + bool operator==( ExportSemaphoreWin32HandleInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -12903,11 +13920,16 @@ public: return *this; } - operator const VkD3D12FenceSubmitInfoKHR&() const + operator VkD3D12FenceSubmitInfoKHR const&() const { return *reinterpret_cast<const VkD3D12FenceSubmitInfoKHR*>(this); } + operator VkD3D12FenceSubmitInfoKHR &() + { + return *reinterpret_cast<VkD3D12FenceSubmitInfoKHR*>(this); + } + bool operator==( D3D12FenceSubmitInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -12982,11 +14004,16 @@ public: return *this; } - operator const VkExportFenceWin32HandleInfoKHR&() const + operator VkExportFenceWin32HandleInfoKHR const&() const { return *reinterpret_cast<const VkExportFenceWin32HandleInfoKHR*>(this); } + operator VkExportFenceWin32HandleInfoKHR &() + { + return *reinterpret_cast<VkExportFenceWin32HandleInfoKHR*>(this); + } + bool operator==( ExportFenceWin32HandleInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -13058,11 +14085,16 @@ public: return *this; } - operator const VkPhysicalDeviceMultiviewFeatures&() const + operator VkPhysicalDeviceMultiviewFeatures const&() const { return *reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>(this); } + operator VkPhysicalDeviceMultiviewFeatures &() + { + return *reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>(this); + } + bool operator==( PhysicalDeviceMultiviewFeatures const& rhs ) const { return ( sType == rhs.sType ) @@ -13092,11 +14124,16 @@ public: struct PhysicalDeviceMultiviewProperties { - operator const VkPhysicalDeviceMultiviewProperties&() const + operator VkPhysicalDeviceMultiviewProperties const&() const { return *reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>(this); } + operator VkPhysicalDeviceMultiviewProperties &() + { + return *reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>(this); + } + bool operator==( PhysicalDeviceMultiviewProperties const& rhs ) const { return ( sType == rhs.sType ) @@ -13191,11 +14228,16 @@ public: return *this; } - operator const VkRenderPassMultiviewCreateInfo&() const + operator VkRenderPassMultiviewCreateInfo const&() const { return *reinterpret_cast<const VkRenderPassMultiviewCreateInfo*>(this); } + operator VkRenderPassMultiviewCreateInfo &() + { + return *reinterpret_cast<VkRenderPassMultiviewCreateInfo*>(this); + } + bool operator==( RenderPassMultiviewCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -13274,11 +14316,16 @@ public: return *this; } - operator const VkBindBufferMemoryInfo&() const + operator VkBindBufferMemoryInfo const&() const { return *reinterpret_cast<const VkBindBufferMemoryInfo*>(this); } + operator VkBindBufferMemoryInfo &() + { + return *reinterpret_cast<VkBindBufferMemoryInfo*>(this); + } + bool operator==( BindBufferMemoryInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -13343,11 +14390,16 @@ public: return *this; } - operator const VkBindBufferMemoryDeviceGroupInfo&() const + operator VkBindBufferMemoryDeviceGroupInfo const&() const { return *reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo*>(this); } + operator VkBindBufferMemoryDeviceGroupInfo &() + { + return *reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>(this); + } + bool operator==( BindBufferMemoryDeviceGroupInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -13418,11 +14470,16 @@ public: return *this; } - operator const VkBindImageMemoryInfo&() const + operator VkBindImageMemoryInfo const&() const { return *reinterpret_cast<const VkBindImageMemoryInfo*>(this); } + operator VkBindImageMemoryInfo &() + { + return *reinterpret_cast<VkBindImageMemoryInfo*>(this); + } + bool operator==( BindImageMemoryInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -13503,11 +14560,16 @@ public: return *this; } - operator const VkBindImageMemoryDeviceGroupInfo&() const + operator VkBindImageMemoryDeviceGroupInfo const&() const { return *reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo*>(this); } + operator VkBindImageMemoryDeviceGroupInfo &() + { + return *reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>(this); + } + bool operator==( BindImageMemoryDeviceGroupInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -13582,11 +14644,16 @@ public: return *this; } - operator const VkDeviceGroupRenderPassBeginInfo&() const + operator VkDeviceGroupRenderPassBeginInfo const&() const { return *reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo*>(this); } + operator VkDeviceGroupRenderPassBeginInfo &() + { + return *reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>(this); + } + bool operator==( DeviceGroupRenderPassBeginInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -13643,11 +14710,16 @@ public: return *this; } - operator const VkDeviceGroupCommandBufferBeginInfo&() const + operator VkDeviceGroupCommandBufferBeginInfo const&() const { return *reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo*>(this); } + operator VkDeviceGroupCommandBufferBeginInfo &() + { + return *reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>(this); + } + bool operator==( DeviceGroupCommandBufferBeginInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -13740,11 +14812,16 @@ public: return *this; } - operator const VkDeviceGroupSubmitInfo&() const + operator VkDeviceGroupSubmitInfo const&() const { return *reinterpret_cast<const VkDeviceGroupSubmitInfo*>(this); } + operator VkDeviceGroupSubmitInfo &() + { + return *reinterpret_cast<VkDeviceGroupSubmitInfo*>(this); + } + bool operator==( DeviceGroupSubmitInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -13815,11 +14892,16 @@ public: return *this; } - operator const VkDeviceGroupBindSparseInfo&() const + operator VkDeviceGroupBindSparseInfo const&() const { return *reinterpret_cast<const VkDeviceGroupBindSparseInfo*>(this); } + operator VkDeviceGroupBindSparseInfo &() + { + return *reinterpret_cast<VkDeviceGroupBindSparseInfo*>(this); + } + bool operator==( DeviceGroupBindSparseInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -13874,11 +14956,16 @@ public: return *this; } - operator const VkImageSwapchainCreateInfoKHR&() const + operator VkImageSwapchainCreateInfoKHR const&() const { return *reinterpret_cast<const VkImageSwapchainCreateInfoKHR*>(this); } + operator VkImageSwapchainCreateInfoKHR &() + { + return *reinterpret_cast<VkImageSwapchainCreateInfoKHR*>(this); + } + bool operator==( ImageSwapchainCreateInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -13937,11 +15024,16 @@ public: return *this; } - operator const VkBindImageMemorySwapchainInfoKHR&() const + operator VkBindImageMemorySwapchainInfoKHR const&() const { return *reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR*>(this); } + operator VkBindImageMemorySwapchainInfoKHR &() + { + return *reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>(this); + } + bool operator==( BindImageMemorySwapchainInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -14026,11 +15118,16 @@ public: return *this; } - operator const VkAcquireNextImageInfoKHR&() const + operator VkAcquireNextImageInfoKHR const&() const { return *reinterpret_cast<const VkAcquireNextImageInfoKHR*>(this); } + operator VkAcquireNextImageInfoKHR &() + { + return *reinterpret_cast<VkAcquireNextImageInfoKHR*>(this); + } + bool operator==( AcquireNextImageInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -14145,11 +15242,16 @@ public: return *this; } - operator const VkHdrMetadataEXT&() const + operator VkHdrMetadataEXT const&() const { return *reinterpret_cast<const VkHdrMetadataEXT*>(this); } + operator VkHdrMetadataEXT &() + { + return *reinterpret_cast<VkHdrMetadataEXT*>(this); + } + bool operator==( HdrMetadataEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -14222,11 +15324,16 @@ public: return *this; } - operator const VkPresentTimesInfoGOOGLE&() const + operator VkPresentTimesInfoGOOGLE const&() const { return *reinterpret_cast<const VkPresentTimesInfoGOOGLE*>(this); } + operator VkPresentTimesInfoGOOGLE &() + { + return *reinterpret_cast<VkPresentTimesInfoGOOGLE*>(this); + } + bool operator==( PresentTimesInfoGOOGLE const& rhs ) const { return ( sType == rhs.sType ) @@ -14288,11 +15395,16 @@ public: return *this; } - operator const VkIOSSurfaceCreateInfoMVK&() const + operator VkIOSSurfaceCreateInfoMVK const&() const { return *reinterpret_cast<const VkIOSSurfaceCreateInfoMVK*>(this); } + operator VkIOSSurfaceCreateInfoMVK &() + { + return *reinterpret_cast<VkIOSSurfaceCreateInfoMVK*>(this); + } + bool operator==( IOSSurfaceCreateInfoMVK const& rhs ) const { return ( sType == rhs.sType ) @@ -14355,11 +15467,16 @@ public: return *this; } - operator const VkMacOSSurfaceCreateInfoMVK&() const + operator VkMacOSSurfaceCreateInfoMVK const&() const { return *reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK*>(this); } + operator VkMacOSSurfaceCreateInfoMVK &() + { + return *reinterpret_cast<VkMacOSSurfaceCreateInfoMVK*>(this); + } + bool operator==( MacOSSurfaceCreateInfoMVK const& rhs ) const { return ( sType == rhs.sType ) @@ -14429,11 +15546,16 @@ public: return *this; } - operator const VkPipelineViewportWScalingStateCreateInfoNV&() const + operator VkPipelineViewportWScalingStateCreateInfoNV const&() const { return *reinterpret_cast<const VkPipelineViewportWScalingStateCreateInfoNV*>(this); } + operator VkPipelineViewportWScalingStateCreateInfoNV &() + { + return *reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV*>(this); + } + bool operator==( PipelineViewportWScalingStateCreateInfoNV const& rhs ) const { return ( sType == rhs.sType ) @@ -14488,11 +15610,16 @@ public: return *this; } - operator const VkPhysicalDeviceDiscardRectanglePropertiesEXT&() const + operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const&() const { return *reinterpret_cast<const VkPhysicalDeviceDiscardRectanglePropertiesEXT*>(this); } + operator VkPhysicalDeviceDiscardRectanglePropertiesEXT &() + { + return *reinterpret_cast<VkPhysicalDeviceDiscardRectanglePropertiesEXT*>(this); + } + bool operator==( PhysicalDeviceDiscardRectanglePropertiesEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -14516,11 +15643,16 @@ public: struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { - operator const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX&() const + operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const&() const { return *reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>(this); } + operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX &() + { + return *reinterpret_cast<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>(this); + } + bool operator==( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& rhs ) const { return ( sType == rhs.sType ) @@ -14571,11 +15703,16 @@ public: return *this; } - operator const VkPhysicalDeviceSurfaceInfo2KHR&() const + operator VkPhysicalDeviceSurfaceInfo2KHR const&() const { return *reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>(this); } + operator VkPhysicalDeviceSurfaceInfo2KHR &() + { + return *reinterpret_cast<VkPhysicalDeviceSurfaceInfo2KHR*>(this); + } + bool operator==( PhysicalDeviceSurfaceInfo2KHR const& rhs ) const { return ( sType == rhs.sType ) @@ -14599,11 +15736,16 @@ public: struct DisplayPlaneProperties2KHR { - operator const VkDisplayPlaneProperties2KHR&() const + operator VkDisplayPlaneProperties2KHR const&() const { return *reinterpret_cast<const VkDisplayPlaneProperties2KHR*>(this); } + operator VkDisplayPlaneProperties2KHR &() + { + return *reinterpret_cast<VkDisplayPlaneProperties2KHR*>(this); + } + bool operator==( DisplayPlaneProperties2KHR const& rhs ) const { return ( sType == rhs.sType ) @@ -14627,11 +15769,16 @@ public: struct DisplayModeProperties2KHR { - operator const VkDisplayModeProperties2KHR&() const + operator VkDisplayModeProperties2KHR const&() const { return *reinterpret_cast<const VkDisplayModeProperties2KHR*>(this); } + operator VkDisplayModeProperties2KHR &() + { + return *reinterpret_cast<VkDisplayModeProperties2KHR*>(this); + } + bool operator==( DisplayModeProperties2KHR const& rhs ) const { return ( sType == rhs.sType ) @@ -14690,11 +15837,16 @@ public: return *this; } - operator const VkDisplayPlaneInfo2KHR&() const + operator VkDisplayPlaneInfo2KHR const&() const { return *reinterpret_cast<const VkDisplayPlaneInfo2KHR*>(this); } + operator VkDisplayPlaneInfo2KHR &() + { + return *reinterpret_cast<VkDisplayPlaneInfo2KHR*>(this); + } + bool operator==( DisplayPlaneInfo2KHR const& rhs ) const { return ( sType == rhs.sType ) @@ -14771,11 +15923,16 @@ public: return *this; } - operator const VkPhysicalDevice16BitStorageFeatures&() const + operator VkPhysicalDevice16BitStorageFeatures const&() const { return *reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>(this); } + operator VkPhysicalDevice16BitStorageFeatures &() + { + return *reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>(this); + } + bool operator==( PhysicalDevice16BitStorageFeatures const& rhs ) const { return ( sType == rhs.sType ) @@ -14834,11 +15991,16 @@ public: return *this; } - operator const VkBufferMemoryRequirementsInfo2&() const + operator VkBufferMemoryRequirementsInfo2 const&() const { return *reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>(this); } + operator VkBufferMemoryRequirementsInfo2 &() + { + return *reinterpret_cast<VkBufferMemoryRequirementsInfo2*>(this); + } + bool operator==( BufferMemoryRequirementsInfo2 const& rhs ) const { return ( sType == rhs.sType ) @@ -14891,11 +16053,16 @@ public: return *this; } - operator const VkImageMemoryRequirementsInfo2&() const + operator VkImageMemoryRequirementsInfo2 const&() const { return *reinterpret_cast<const VkImageMemoryRequirementsInfo2*>(this); } + operator VkImageMemoryRequirementsInfo2 &() + { + return *reinterpret_cast<VkImageMemoryRequirementsInfo2*>(this); + } + bool operator==( ImageMemoryRequirementsInfo2 const& rhs ) const { return ( sType == rhs.sType ) @@ -14948,11 +16115,16 @@ public: return *this; } - operator const VkImageSparseMemoryRequirementsInfo2&() const + operator VkImageSparseMemoryRequirementsInfo2 const&() const { return *reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>(this); } + operator VkImageSparseMemoryRequirementsInfo2 &() + { + return *reinterpret_cast<VkImageSparseMemoryRequirementsInfo2*>(this); + } + bool operator==( ImageSparseMemoryRequirementsInfo2 const& rhs ) const { return ( sType == rhs.sType ) @@ -14978,11 +16150,16 @@ public: struct MemoryRequirements2 { - operator const VkMemoryRequirements2&() const + operator VkMemoryRequirements2 const&() const { return *reinterpret_cast<const VkMemoryRequirements2*>(this); } + operator VkMemoryRequirements2 &() + { + return *reinterpret_cast<VkMemoryRequirements2*>(this); + } + bool operator==( MemoryRequirements2 const& rhs ) const { return ( sType == rhs.sType ) @@ -15008,11 +16185,16 @@ public: struct MemoryDedicatedRequirements { - operator const VkMemoryDedicatedRequirements&() const + operator VkMemoryDedicatedRequirements const&() const { return *reinterpret_cast<const VkMemoryDedicatedRequirements*>(this); } + operator VkMemoryDedicatedRequirements &() + { + return *reinterpret_cast<VkMemoryDedicatedRequirements*>(this); + } + bool operator==( MemoryDedicatedRequirements const& rhs ) const { return ( sType == rhs.sType ) @@ -15075,11 +16257,16 @@ public: return *this; } - operator const VkMemoryDedicatedAllocateInfo&() const + operator VkMemoryDedicatedAllocateInfo const&() const { return *reinterpret_cast<const VkMemoryDedicatedAllocateInfo*>(this); } + operator VkMemoryDedicatedAllocateInfo &() + { + return *reinterpret_cast<VkMemoryDedicatedAllocateInfo*>(this); + } + bool operator==( MemoryDedicatedAllocateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -15134,11 +16321,16 @@ public: return *this; } - operator const VkSamplerYcbcrConversionInfo&() const + operator VkSamplerYcbcrConversionInfo const&() const { return *reinterpret_cast<const VkSamplerYcbcrConversionInfo*>(this); } + operator VkSamplerYcbcrConversionInfo &() + { + return *reinterpret_cast<VkSamplerYcbcrConversionInfo*>(this); + } + bool operator==( SamplerYcbcrConversionInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -15191,11 +16383,16 @@ public: return *this; } - operator const VkPhysicalDeviceSamplerYcbcrConversionFeatures&() const + operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const&() const { return *reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(this); } + operator VkPhysicalDeviceSamplerYcbcrConversionFeatures &() + { + return *reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(this); + } + bool operator==( PhysicalDeviceSamplerYcbcrConversionFeatures const& rhs ) const { return ( sType == rhs.sType ) @@ -15221,11 +16418,16 @@ public: struct SamplerYcbcrConversionImageFormatProperties { - operator const VkSamplerYcbcrConversionImageFormatProperties&() const + operator VkSamplerYcbcrConversionImageFormatProperties const&() const { return *reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties*>(this); } + operator VkSamplerYcbcrConversionImageFormatProperties &() + { + return *reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties*>(this); + } + bool operator==( SamplerYcbcrConversionImageFormatProperties const& rhs ) const { return ( sType == rhs.sType ) @@ -15251,11 +16453,16 @@ public: struct TextureLODGatherFormatPropertiesAMD { - operator const VkTextureLODGatherFormatPropertiesAMD&() const + operator VkTextureLODGatherFormatPropertiesAMD const&() const { return *reinterpret_cast<const VkTextureLODGatherFormatPropertiesAMD*>(this); } + operator VkTextureLODGatherFormatPropertiesAMD &() + { + return *reinterpret_cast<VkTextureLODGatherFormatPropertiesAMD*>(this); + } + bool operator==( TextureLODGatherFormatPropertiesAMD const& rhs ) const { return ( sType == rhs.sType ) @@ -15306,11 +16513,16 @@ public: return *this; } - operator const VkProtectedSubmitInfo&() const + operator VkProtectedSubmitInfo const&() const { return *reinterpret_cast<const VkProtectedSubmitInfo*>(this); } + operator VkProtectedSubmitInfo &() + { + return *reinterpret_cast<VkProtectedSubmitInfo*>(this); + } + bool operator==( ProtectedSubmitInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -15361,11 +16573,16 @@ public: return *this; } - operator const VkPhysicalDeviceProtectedMemoryFeatures&() const + operator VkPhysicalDeviceProtectedMemoryFeatures const&() const { return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>(this); } + operator VkPhysicalDeviceProtectedMemoryFeatures &() + { + return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>(this); + } + bool operator==( PhysicalDeviceProtectedMemoryFeatures const& rhs ) const { return ( sType == rhs.sType ) @@ -15416,11 +16633,16 @@ public: return *this; } - operator const VkPhysicalDeviceProtectedMemoryProperties&() const + operator VkPhysicalDeviceProtectedMemoryProperties const&() const { return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties*>(this); } + operator VkPhysicalDeviceProtectedMemoryProperties &() + { + return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties*>(this); + } + bool operator==( PhysicalDeviceProtectedMemoryProperties const& rhs ) const { return ( sType == rhs.sType ) @@ -15487,11 +16709,16 @@ public: return *this; } - operator const VkPipelineCoverageToColorStateCreateInfoNV&() const + operator VkPipelineCoverageToColorStateCreateInfoNV const&() const { return *reinterpret_cast<const VkPipelineCoverageToColorStateCreateInfoNV*>(this); } + operator VkPipelineCoverageToColorStateCreateInfoNV &() + { + return *reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV*>(this); + } + bool operator==( PipelineCoverageToColorStateCreateInfoNV const& rhs ) const { return ( sType == rhs.sType ) @@ -15519,11 +16746,16 @@ public: struct PhysicalDeviceSamplerFilterMinmaxPropertiesEXT { - operator const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT&() const + operator VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT const&() const { return *reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(this); } + operator VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT &() + { + return *reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(this); + } + bool operator==( PhysicalDeviceSamplerFilterMinmaxPropertiesEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -15549,11 +16781,16 @@ public: struct MultisamplePropertiesEXT { - operator const VkMultisamplePropertiesEXT&() const + operator VkMultisamplePropertiesEXT const&() const { return *reinterpret_cast<const VkMultisamplePropertiesEXT*>(this); } + operator VkMultisamplePropertiesEXT &() + { + return *reinterpret_cast<VkMultisamplePropertiesEXT*>(this); + } + bool operator==( MultisamplePropertiesEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -15604,11 +16841,16 @@ public: return *this; } - operator const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT&() const + operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const&() const { return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(this); } + operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT &() + { + return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(this); + } + bool operator==( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -15632,11 +16874,16 @@ public: struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT { - operator const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT&() const + operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const&() const { return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>(this); } + operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT &() + { + return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>(this); + } + bool operator==( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -15668,6 +16915,212 @@ public: }; static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedPropertiesEXT ) == sizeof( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT ), "struct and wrapper have different size!" ); + struct PhysicalDeviceInlineUniformBlockFeaturesEXT + { + operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT const&() const + { + return *reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>(this); + } + + operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT &() + { + return *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>(this); + } + + bool operator==( PhysicalDeviceInlineUniformBlockFeaturesEXT const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( inlineUniformBlock == rhs.inlineUniformBlock ) + && ( descriptorBindingInlineUniformBlockUpdateAfterBind == rhs.descriptorBindingInlineUniformBlockUpdateAfterBind ); + } + + bool operator!=( PhysicalDeviceInlineUniformBlockFeaturesEXT const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT; + + public: + void* pNext = nullptr; + Bool32 inlineUniformBlock; + Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind; + }; + static_assert( sizeof( PhysicalDeviceInlineUniformBlockFeaturesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockFeaturesEXT ), "struct and wrapper have different size!" ); + + struct PhysicalDeviceInlineUniformBlockPropertiesEXT + { + operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT const&() const + { + return *reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>(this); + } + + operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT &() + { + return *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>(this); + } + + bool operator==( PhysicalDeviceInlineUniformBlockPropertiesEXT const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( maxInlineUniformBlockSize == rhs.maxInlineUniformBlockSize ) + && ( maxPerStageDescriptorInlineUniformBlocks == rhs.maxPerStageDescriptorInlineUniformBlocks ) + && ( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks == rhs.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks ) + && ( maxDescriptorSetInlineUniformBlocks == rhs.maxDescriptorSetInlineUniformBlocks ) + && ( maxDescriptorSetUpdateAfterBindInlineUniformBlocks == rhs.maxDescriptorSetUpdateAfterBindInlineUniformBlocks ); + } + + bool operator!=( PhysicalDeviceInlineUniformBlockPropertiesEXT const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT; + + public: + void* pNext = nullptr; + uint32_t maxInlineUniformBlockSize; + uint32_t maxPerStageDescriptorInlineUniformBlocks; + uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks; + uint32_t maxDescriptorSetInlineUniformBlocks; + uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks; + }; + static_assert( sizeof( PhysicalDeviceInlineUniformBlockPropertiesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockPropertiesEXT ), "struct and wrapper have different size!" ); + + struct WriteDescriptorSetInlineUniformBlockEXT + { + WriteDescriptorSetInlineUniformBlockEXT( uint32_t dataSize_ = 0, + const void* pData_ = nullptr ) + : dataSize( dataSize_ ) + , pData( pData_ ) + { + } + + WriteDescriptorSetInlineUniformBlockEXT( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs ) + { + memcpy( this, &rhs, sizeof( WriteDescriptorSetInlineUniformBlockEXT ) ); + } + + WriteDescriptorSetInlineUniformBlockEXT& operator=( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs ) + { + memcpy( this, &rhs, sizeof( WriteDescriptorSetInlineUniformBlockEXT ) ); + return *this; + } + WriteDescriptorSetInlineUniformBlockEXT& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + WriteDescriptorSetInlineUniformBlockEXT& setDataSize( uint32_t dataSize_ ) + { + dataSize = dataSize_; + return *this; + } + + WriteDescriptorSetInlineUniformBlockEXT& setPData( const void* pData_ ) + { + pData = pData_; + return *this; + } + + operator VkWriteDescriptorSetInlineUniformBlockEXT const&() const + { + return *reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlockEXT*>(this); + } + + operator VkWriteDescriptorSetInlineUniformBlockEXT &() + { + return *reinterpret_cast<VkWriteDescriptorSetInlineUniformBlockEXT*>(this); + } + + bool operator==( WriteDescriptorSetInlineUniformBlockEXT const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( dataSize == rhs.dataSize ) + && ( pData == rhs.pData ); + } + + bool operator!=( WriteDescriptorSetInlineUniformBlockEXT const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::eWriteDescriptorSetInlineUniformBlockEXT; + + public: + const void* pNext = nullptr; + uint32_t dataSize; + const void* pData; + }; + static_assert( sizeof( WriteDescriptorSetInlineUniformBlockEXT ) == sizeof( VkWriteDescriptorSetInlineUniformBlockEXT ), "struct and wrapper have different size!" ); + + struct DescriptorPoolInlineUniformBlockCreateInfoEXT + { + DescriptorPoolInlineUniformBlockCreateInfoEXT( uint32_t maxInlineUniformBlockBindings_ = 0 ) + : maxInlineUniformBlockBindings( maxInlineUniformBlockBindings_ ) + { + } + + DescriptorPoolInlineUniformBlockCreateInfoEXT( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) + { + memcpy( this, &rhs, sizeof( DescriptorPoolInlineUniformBlockCreateInfoEXT ) ); + } + + DescriptorPoolInlineUniformBlockCreateInfoEXT& operator=( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) + { + memcpy( this, &rhs, sizeof( DescriptorPoolInlineUniformBlockCreateInfoEXT ) ); + return *this; + } + DescriptorPoolInlineUniformBlockCreateInfoEXT& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + DescriptorPoolInlineUniformBlockCreateInfoEXT& setMaxInlineUniformBlockBindings( uint32_t maxInlineUniformBlockBindings_ ) + { + maxInlineUniformBlockBindings = maxInlineUniformBlockBindings_; + return *this; + } + + operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT const&() const + { + return *reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>(this); + } + + operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT &() + { + return *reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>(this); + } + + bool operator==( DescriptorPoolInlineUniformBlockCreateInfoEXT const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( maxInlineUniformBlockBindings == rhs.maxInlineUniformBlockBindings ); + } + + bool operator!=( DescriptorPoolInlineUniformBlockCreateInfoEXT const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT; + + public: + const void* pNext = nullptr; + uint32_t maxInlineUniformBlockBindings; + }; + static_assert( sizeof( DescriptorPoolInlineUniformBlockCreateInfoEXT ) == sizeof( VkDescriptorPoolInlineUniformBlockCreateInfoEXT ), "struct and wrapper have different size!" ); + struct ImageFormatListCreateInfoKHR { ImageFormatListCreateInfoKHR( uint32_t viewFormatCount_ = 0, @@ -15705,11 +17158,16 @@ public: return *this; } - operator const VkImageFormatListCreateInfoKHR&() const + operator VkImageFormatListCreateInfoKHR const&() const { return *reinterpret_cast<const VkImageFormatListCreateInfoKHR*>(this); } + operator VkImageFormatListCreateInfoKHR &() + { + return *reinterpret_cast<VkImageFormatListCreateInfoKHR*>(this); + } + bool operator==( ImageFormatListCreateInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -15778,11 +17236,16 @@ public: return *this; } - operator const VkValidationCacheCreateInfoEXT&() const + operator VkValidationCacheCreateInfoEXT const&() const { return *reinterpret_cast<const VkValidationCacheCreateInfoEXT*>(this); } + operator VkValidationCacheCreateInfoEXT &() + { + return *reinterpret_cast<VkValidationCacheCreateInfoEXT*>(this); + } + bool operator==( ValidationCacheCreateInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -15837,11 +17300,16 @@ public: return *this; } - operator const VkShaderModuleValidationCacheCreateInfoEXT&() const + operator VkShaderModuleValidationCacheCreateInfoEXT const&() const { return *reinterpret_cast<const VkShaderModuleValidationCacheCreateInfoEXT*>(this); } + operator VkShaderModuleValidationCacheCreateInfoEXT &() + { + return *reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT*>(this); + } + bool operator==( ShaderModuleValidationCacheCreateInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -15865,11 +17333,16 @@ public: struct PhysicalDeviceMaintenance3Properties { - operator const VkPhysicalDeviceMaintenance3Properties&() const + operator VkPhysicalDeviceMaintenance3Properties const&() const { return *reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>(this); } + operator VkPhysicalDeviceMaintenance3Properties &() + { + return *reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>(this); + } + bool operator==( PhysicalDeviceMaintenance3Properties const& rhs ) const { return ( sType == rhs.sType ) @@ -15897,11 +17370,16 @@ public: struct DescriptorSetLayoutSupport { - operator const VkDescriptorSetLayoutSupport&() const + operator VkDescriptorSetLayoutSupport const&() const { return *reinterpret_cast<const VkDescriptorSetLayoutSupport*>(this); } + operator VkDescriptorSetLayoutSupport &() + { + return *reinterpret_cast<VkDescriptorSetLayoutSupport*>(this); + } + bool operator==( DescriptorSetLayoutSupport const& rhs ) const { return ( sType == rhs.sType ) @@ -15954,11 +17432,16 @@ public: return *this; } - operator const VkPhysicalDeviceShaderDrawParameterFeatures&() const + operator VkPhysicalDeviceShaderDrawParameterFeatures const&() const { return *reinterpret_cast<const VkPhysicalDeviceShaderDrawParameterFeatures*>(this); } + operator VkPhysicalDeviceShaderDrawParameterFeatures &() + { + return *reinterpret_cast<VkPhysicalDeviceShaderDrawParameterFeatures*>(this); + } + bool operator==( PhysicalDeviceShaderDrawParameterFeatures const& rhs ) const { return ( sType == rhs.sType ) @@ -16017,11 +17500,16 @@ public: return *this; } - operator const VkDebugUtilsLabelEXT&() const + operator VkDebugUtilsLabelEXT const&() const { return *reinterpret_cast<const VkDebugUtilsLabelEXT*>(this); } + operator VkDebugUtilsLabelEXT &() + { + return *reinterpret_cast<VkDebugUtilsLabelEXT*>(this); + } + bool operator==( DebugUtilsLabelEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -16074,11 +17562,16 @@ public: return *this; } - operator const VkMemoryHostPointerPropertiesEXT&() const + operator VkMemoryHostPointerPropertiesEXT const&() const { return *reinterpret_cast<const VkMemoryHostPointerPropertiesEXT*>(this); } + operator VkMemoryHostPointerPropertiesEXT &() + { + return *reinterpret_cast<VkMemoryHostPointerPropertiesEXT*>(this); + } + bool operator==( MemoryHostPointerPropertiesEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -16129,11 +17622,16 @@ public: return *this; } - operator const VkPhysicalDeviceExternalMemoryHostPropertiesEXT&() const + operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const&() const { return *reinterpret_cast<const VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>(this); } + operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT &() + { + return *reinterpret_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>(this); + } + bool operator==( PhysicalDeviceExternalMemoryHostPropertiesEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -16248,11 +17746,16 @@ public: return *this; } - operator const VkPhysicalDeviceConservativeRasterizationPropertiesEXT&() const + operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const&() const { return *reinterpret_cast<const VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>(this); } + operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT &() + { + return *reinterpret_cast<VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>(this); + } + bool operator==( PhysicalDeviceConservativeRasterizationPropertiesEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -16292,11 +17795,16 @@ public: struct PhysicalDeviceShaderCorePropertiesAMD { - operator const VkPhysicalDeviceShaderCorePropertiesAMD&() const + operator VkPhysicalDeviceShaderCorePropertiesAMD const&() const { return *reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesAMD*>(this); } + operator VkPhysicalDeviceShaderCorePropertiesAMD &() + { + return *reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesAMD*>(this); + } + bool operator==( PhysicalDeviceShaderCorePropertiesAMD const& rhs ) const { return ( sType == rhs.sType ) @@ -16525,11 +18033,16 @@ public: return *this; } - operator const VkPhysicalDeviceDescriptorIndexingFeaturesEXT&() const + operator VkPhysicalDeviceDescriptorIndexingFeaturesEXT const&() const { return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(this); } + operator VkPhysicalDeviceDescriptorIndexingFeaturesEXT &() + { + return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(this); + } + bool operator==( PhysicalDeviceDescriptorIndexingFeaturesEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -16591,11 +18104,16 @@ public: struct PhysicalDeviceDescriptorIndexingPropertiesEXT { - operator const VkPhysicalDeviceDescriptorIndexingPropertiesEXT&() const + operator VkPhysicalDeviceDescriptorIndexingPropertiesEXT const&() const { return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(this); } + operator VkPhysicalDeviceDescriptorIndexingPropertiesEXT &() + { + return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(this); + } + bool operator==( PhysicalDeviceDescriptorIndexingPropertiesEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -16698,11 +18216,16 @@ public: return *this; } - operator const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT&() const + operator VkDescriptorSetVariableDescriptorCountAllocateInfoEXT const&() const { return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(this); } + operator VkDescriptorSetVariableDescriptorCountAllocateInfoEXT &() + { + return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(this); + } + bool operator==( DescriptorSetVariableDescriptorCountAllocateInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -16728,11 +18251,16 @@ public: struct DescriptorSetVariableDescriptorCountLayoutSupportEXT { - operator const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT&() const + operator VkDescriptorSetVariableDescriptorCountLayoutSupportEXT const&() const { return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(this); } + operator VkDescriptorSetVariableDescriptorCountLayoutSupportEXT &() + { + return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(this); + } + bool operator==( DescriptorSetVariableDescriptorCountLayoutSupportEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -16754,6 +18282,57 @@ public: }; static_assert( sizeof( DescriptorSetVariableDescriptorCountLayoutSupportEXT ) == sizeof( VkDescriptorSetVariableDescriptorCountLayoutSupportEXT ), "struct and wrapper have different size!" ); + struct SubpassEndInfoKHR + { + SubpassEndInfoKHR( ) + { + } + + SubpassEndInfoKHR( VkSubpassEndInfoKHR const & rhs ) + { + memcpy( this, &rhs, sizeof( SubpassEndInfoKHR ) ); + } + + SubpassEndInfoKHR& operator=( VkSubpassEndInfoKHR const & rhs ) + { + memcpy( this, &rhs, sizeof( SubpassEndInfoKHR ) ); + return *this; + } + SubpassEndInfoKHR& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + operator VkSubpassEndInfoKHR const&() const + { + return *reinterpret_cast<const VkSubpassEndInfoKHR*>(this); + } + + operator VkSubpassEndInfoKHR &() + { + return *reinterpret_cast<VkSubpassEndInfoKHR*>(this); + } + + bool operator==( SubpassEndInfoKHR const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ); + } + + bool operator!=( SubpassEndInfoKHR const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::eSubpassEndInfoKHR; + + public: + const void* pNext = nullptr; + }; + static_assert( sizeof( SubpassEndInfoKHR ) == sizeof( VkSubpassEndInfoKHR ), "struct and wrapper have different size!" ); + struct PipelineVertexInputDivisorStateCreateInfoEXT { PipelineVertexInputDivisorStateCreateInfoEXT( uint32_t vertexBindingDivisorCount_ = 0, @@ -16791,11 +18370,16 @@ public: return *this; } - operator const VkPipelineVertexInputDivisorStateCreateInfoEXT&() const + operator VkPipelineVertexInputDivisorStateCreateInfoEXT const&() const { return *reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoEXT*>(this); } + operator VkPipelineVertexInputDivisorStateCreateInfoEXT &() + { + return *reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>(this); + } + bool operator==( PipelineVertexInputDivisorStateCreateInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -16848,11 +18432,16 @@ public: return *this; } - operator const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT&() const + operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const&() const { return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(this); } + operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT &() + { + return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(this); + } + bool operator==( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -16904,11 +18493,16 @@ public: return *this; } - operator const VkImportAndroidHardwareBufferInfoANDROID&() const + operator VkImportAndroidHardwareBufferInfoANDROID const&() const { return *reinterpret_cast<const VkImportAndroidHardwareBufferInfoANDROID*>(this); } + operator VkImportAndroidHardwareBufferInfoANDROID &() + { + return *reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID*>(this); + } + bool operator==( ImportAndroidHardwareBufferInfoANDROID const& rhs ) const { return ( sType == rhs.sType ) @@ -16934,11 +18528,16 @@ public: #ifdef VK_USE_PLATFORM_ANDROID_ANDROID struct AndroidHardwareBufferUsageANDROID { - operator const VkAndroidHardwareBufferUsageANDROID&() const + operator VkAndroidHardwareBufferUsageANDROID const&() const { return *reinterpret_cast<const VkAndroidHardwareBufferUsageANDROID*>(this); } + operator VkAndroidHardwareBufferUsageANDROID &() + { + return *reinterpret_cast<VkAndroidHardwareBufferUsageANDROID*>(this); + } + bool operator==( AndroidHardwareBufferUsageANDROID const& rhs ) const { return ( sType == rhs.sType ) @@ -16964,11 +18563,16 @@ public: #ifdef VK_USE_PLATFORM_ANDROID_ANDROID struct AndroidHardwareBufferPropertiesANDROID { - operator const VkAndroidHardwareBufferPropertiesANDROID&() const + operator VkAndroidHardwareBufferPropertiesANDROID const&() const { return *reinterpret_cast<const VkAndroidHardwareBufferPropertiesANDROID*>(this); } + operator VkAndroidHardwareBufferPropertiesANDROID &() + { + return *reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>(this); + } + bool operator==( AndroidHardwareBufferPropertiesANDROID const& rhs ) const { return ( sType == rhs.sType ) @@ -17023,11 +18627,16 @@ public: return *this; } - operator const VkMemoryGetAndroidHardwareBufferInfoANDROID&() const + operator VkMemoryGetAndroidHardwareBufferInfoANDROID const&() const { return *reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID*>(this); } + operator VkMemoryGetAndroidHardwareBufferInfoANDROID &() + { + return *reinterpret_cast<VkMemoryGetAndroidHardwareBufferInfoANDROID*>(this); + } + bool operator==( MemoryGetAndroidHardwareBufferInfoANDROID const& rhs ) const { return ( sType == rhs.sType ) @@ -17050,6 +18659,66 @@ public: static_assert( sizeof( MemoryGetAndroidHardwareBufferInfoANDROID ) == sizeof( VkMemoryGetAndroidHardwareBufferInfoANDROID ), "struct and wrapper have different size!" ); #endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/ + struct CommandBufferInheritanceConditionalRenderingInfoEXT + { + CommandBufferInheritanceConditionalRenderingInfoEXT( Bool32 conditionalRenderingEnable_ = 0 ) + : conditionalRenderingEnable( conditionalRenderingEnable_ ) + { + } + + CommandBufferInheritanceConditionalRenderingInfoEXT( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) + { + memcpy( this, &rhs, sizeof( CommandBufferInheritanceConditionalRenderingInfoEXT ) ); + } + + CommandBufferInheritanceConditionalRenderingInfoEXT& operator=( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) + { + memcpy( this, &rhs, sizeof( CommandBufferInheritanceConditionalRenderingInfoEXT ) ); + return *this; + } + CommandBufferInheritanceConditionalRenderingInfoEXT& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + CommandBufferInheritanceConditionalRenderingInfoEXT& setConditionalRenderingEnable( Bool32 conditionalRenderingEnable_ ) + { + conditionalRenderingEnable = conditionalRenderingEnable_; + return *this; + } + + operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const&() const + { + return *reinterpret_cast<const VkCommandBufferInheritanceConditionalRenderingInfoEXT*>(this); + } + + operator VkCommandBufferInheritanceConditionalRenderingInfoEXT &() + { + return *reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT*>(this); + } + + bool operator==( CommandBufferInheritanceConditionalRenderingInfoEXT const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( conditionalRenderingEnable == rhs.conditionalRenderingEnable ); + } + + bool operator!=( CommandBufferInheritanceConditionalRenderingInfoEXT const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT; + + public: + const void* pNext = nullptr; + Bool32 conditionalRenderingEnable; + }; + static_assert( sizeof( CommandBufferInheritanceConditionalRenderingInfoEXT ) == sizeof( VkCommandBufferInheritanceConditionalRenderingInfoEXT ), "struct and wrapper have different size!" ); + #ifdef VK_USE_PLATFORM_ANDROID_ANDROID struct ExternalFormatANDROID { @@ -17080,11 +18749,16 @@ public: return *this; } - operator const VkExternalFormatANDROID&() const + operator VkExternalFormatANDROID const&() const { return *reinterpret_cast<const VkExternalFormatANDROID*>(this); } + operator VkExternalFormatANDROID &() + { + return *reinterpret_cast<VkExternalFormatANDROID*>(this); + } + bool operator==( ExternalFormatANDROID const& rhs ) const { return ( sType == rhs.sType ) @@ -17107,12 +18781,1991 @@ public: static_assert( sizeof( ExternalFormatANDROID ) == sizeof( VkExternalFormatANDROID ), "struct and wrapper have different size!" ); #endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/ + struct PhysicalDevice8BitStorageFeaturesKHR + { + PhysicalDevice8BitStorageFeaturesKHR( Bool32 storageBuffer8BitAccess_ = 0, + Bool32 uniformAndStorageBuffer8BitAccess_ = 0, + Bool32 storagePushConstant8_ = 0 ) + : storageBuffer8BitAccess( storageBuffer8BitAccess_ ) + , uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ ) + , storagePushConstant8( storagePushConstant8_ ) + { + } + + PhysicalDevice8BitStorageFeaturesKHR( VkPhysicalDevice8BitStorageFeaturesKHR const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDevice8BitStorageFeaturesKHR ) ); + } + + PhysicalDevice8BitStorageFeaturesKHR& operator=( VkPhysicalDevice8BitStorageFeaturesKHR const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDevice8BitStorageFeaturesKHR ) ); + return *this; + } + PhysicalDevice8BitStorageFeaturesKHR& setPNext( void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + PhysicalDevice8BitStorageFeaturesKHR& setStorageBuffer8BitAccess( Bool32 storageBuffer8BitAccess_ ) + { + storageBuffer8BitAccess = storageBuffer8BitAccess_; + return *this; + } + + PhysicalDevice8BitStorageFeaturesKHR& setUniformAndStorageBuffer8BitAccess( Bool32 uniformAndStorageBuffer8BitAccess_ ) + { + uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_; + return *this; + } + + PhysicalDevice8BitStorageFeaturesKHR& setStoragePushConstant8( Bool32 storagePushConstant8_ ) + { + storagePushConstant8 = storagePushConstant8_; + return *this; + } + + operator VkPhysicalDevice8BitStorageFeaturesKHR const&() const + { + return *reinterpret_cast<const VkPhysicalDevice8BitStorageFeaturesKHR*>(this); + } + + operator VkPhysicalDevice8BitStorageFeaturesKHR &() + { + return *reinterpret_cast<VkPhysicalDevice8BitStorageFeaturesKHR*>(this); + } + + bool operator==( PhysicalDevice8BitStorageFeaturesKHR const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess ) + && ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess ) + && ( storagePushConstant8 == rhs.storagePushConstant8 ); + } + + bool operator!=( PhysicalDevice8BitStorageFeaturesKHR const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePhysicalDevice8BitStorageFeaturesKHR; + + public: + void* pNext = nullptr; + Bool32 storageBuffer8BitAccess; + Bool32 uniformAndStorageBuffer8BitAccess; + Bool32 storagePushConstant8; + }; + static_assert( sizeof( PhysicalDevice8BitStorageFeaturesKHR ) == sizeof( VkPhysicalDevice8BitStorageFeaturesKHR ), "struct and wrapper have different size!" ); + + struct PhysicalDeviceConditionalRenderingFeaturesEXT + { + PhysicalDeviceConditionalRenderingFeaturesEXT( Bool32 conditionalRendering_ = 0, + Bool32 inheritedConditionalRendering_ = 0 ) + : conditionalRendering( conditionalRendering_ ) + , inheritedConditionalRendering( inheritedConditionalRendering_ ) + { + } + + PhysicalDeviceConditionalRenderingFeaturesEXT( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceConditionalRenderingFeaturesEXT ) ); + } + + PhysicalDeviceConditionalRenderingFeaturesEXT& operator=( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceConditionalRenderingFeaturesEXT ) ); + return *this; + } + PhysicalDeviceConditionalRenderingFeaturesEXT& setPNext( void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + PhysicalDeviceConditionalRenderingFeaturesEXT& setConditionalRendering( Bool32 conditionalRendering_ ) + { + conditionalRendering = conditionalRendering_; + return *this; + } + + PhysicalDeviceConditionalRenderingFeaturesEXT& setInheritedConditionalRendering( Bool32 inheritedConditionalRendering_ ) + { + inheritedConditionalRendering = inheritedConditionalRendering_; + return *this; + } + + operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const&() const + { + return *reinterpret_cast<const VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(this); + } + + operator VkPhysicalDeviceConditionalRenderingFeaturesEXT &() + { + return *reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(this); + } + + bool operator==( PhysicalDeviceConditionalRenderingFeaturesEXT const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( conditionalRendering == rhs.conditionalRendering ) + && ( inheritedConditionalRendering == rhs.inheritedConditionalRendering ); + } + + bool operator!=( PhysicalDeviceConditionalRenderingFeaturesEXT const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT; + + public: + void* pNext = nullptr; + Bool32 conditionalRendering; + Bool32 inheritedConditionalRendering; + }; + static_assert( sizeof( PhysicalDeviceConditionalRenderingFeaturesEXT ) == sizeof( VkPhysicalDeviceConditionalRenderingFeaturesEXT ), "struct and wrapper have different size!" ); + + struct PhysicalDeviceVulkanMemoryModelFeaturesKHR + { + operator VkPhysicalDeviceVulkanMemoryModelFeaturesKHR const&() const + { + return *reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR*>(this); + } + + operator VkPhysicalDeviceVulkanMemoryModelFeaturesKHR &() + { + return *reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeaturesKHR*>(this); + } + + bool operator==( PhysicalDeviceVulkanMemoryModelFeaturesKHR const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( vulkanMemoryModel == rhs.vulkanMemoryModel ) + && ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope ); + } + + bool operator!=( PhysicalDeviceVulkanMemoryModelFeaturesKHR const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePhysicalDeviceVulkanMemoryModelFeaturesKHR; + + public: + void* pNext = nullptr; + Bool32 vulkanMemoryModel; + Bool32 vulkanMemoryModelDeviceScope; + }; + static_assert( sizeof( PhysicalDeviceVulkanMemoryModelFeaturesKHR ) == sizeof( VkPhysicalDeviceVulkanMemoryModelFeaturesKHR ), "struct and wrapper have different size!" ); + + struct PhysicalDeviceShaderAtomicInt64FeaturesKHR + { + PhysicalDeviceShaderAtomicInt64FeaturesKHR( Bool32 shaderBufferInt64Atomics_ = 0, + Bool32 shaderSharedInt64Atomics_ = 0 ) + : shaderBufferInt64Atomics( shaderBufferInt64Atomics_ ) + , shaderSharedInt64Atomics( shaderSharedInt64Atomics_ ) + { + } + + PhysicalDeviceShaderAtomicInt64FeaturesKHR( VkPhysicalDeviceShaderAtomicInt64FeaturesKHR const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceShaderAtomicInt64FeaturesKHR ) ); + } + + PhysicalDeviceShaderAtomicInt64FeaturesKHR& operator=( VkPhysicalDeviceShaderAtomicInt64FeaturesKHR const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceShaderAtomicInt64FeaturesKHR ) ); + return *this; + } + PhysicalDeviceShaderAtomicInt64FeaturesKHR& setPNext( void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + PhysicalDeviceShaderAtomicInt64FeaturesKHR& setShaderBufferInt64Atomics( Bool32 shaderBufferInt64Atomics_ ) + { + shaderBufferInt64Atomics = shaderBufferInt64Atomics_; + return *this; + } + + PhysicalDeviceShaderAtomicInt64FeaturesKHR& setShaderSharedInt64Atomics( Bool32 shaderSharedInt64Atomics_ ) + { + shaderSharedInt64Atomics = shaderSharedInt64Atomics_; + return *this; + } + + operator VkPhysicalDeviceShaderAtomicInt64FeaturesKHR const&() const + { + return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR*>(this); + } + + operator VkPhysicalDeviceShaderAtomicInt64FeaturesKHR &() + { + return *reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64FeaturesKHR*>(this); + } + + bool operator==( PhysicalDeviceShaderAtomicInt64FeaturesKHR const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics ) + && ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics ); + } + + bool operator!=( PhysicalDeviceShaderAtomicInt64FeaturesKHR const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePhysicalDeviceShaderAtomicInt64FeaturesKHR; + + public: + void* pNext = nullptr; + Bool32 shaderBufferInt64Atomics; + Bool32 shaderSharedInt64Atomics; + }; + static_assert( sizeof( PhysicalDeviceShaderAtomicInt64FeaturesKHR ) == sizeof( VkPhysicalDeviceShaderAtomicInt64FeaturesKHR ), "struct and wrapper have different size!" ); + + struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT + { + PhysicalDeviceVertexAttributeDivisorFeaturesEXT( Bool32 vertexAttributeInstanceRateDivisor_ = 0, + Bool32 vertexAttributeInstanceRateZeroDivisor_ = 0 ) + : vertexAttributeInstanceRateDivisor( vertexAttributeInstanceRateDivisor_ ) + , vertexAttributeInstanceRateZeroDivisor( vertexAttributeInstanceRateZeroDivisor_ ) + { + } + + PhysicalDeviceVertexAttributeDivisorFeaturesEXT( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceVertexAttributeDivisorFeaturesEXT ) ); + } + + PhysicalDeviceVertexAttributeDivisorFeaturesEXT& operator=( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceVertexAttributeDivisorFeaturesEXT ) ); + return *this; + } + PhysicalDeviceVertexAttributeDivisorFeaturesEXT& setPNext( void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + PhysicalDeviceVertexAttributeDivisorFeaturesEXT& setVertexAttributeInstanceRateDivisor( Bool32 vertexAttributeInstanceRateDivisor_ ) + { + vertexAttributeInstanceRateDivisor = vertexAttributeInstanceRateDivisor_; + return *this; + } + + PhysicalDeviceVertexAttributeDivisorFeaturesEXT& setVertexAttributeInstanceRateZeroDivisor( Bool32 vertexAttributeInstanceRateZeroDivisor_ ) + { + vertexAttributeInstanceRateZeroDivisor = vertexAttributeInstanceRateZeroDivisor_; + return *this; + } + + operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const&() const + { + return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(this); + } + + operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT &() + { + return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(this); + } + + bool operator==( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( vertexAttributeInstanceRateDivisor == rhs.vertexAttributeInstanceRateDivisor ) + && ( vertexAttributeInstanceRateZeroDivisor == rhs.vertexAttributeInstanceRateZeroDivisor ); + } + + bool operator!=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT; + + public: + void* pNext = nullptr; + Bool32 vertexAttributeInstanceRateDivisor; + Bool32 vertexAttributeInstanceRateZeroDivisor; + }; + static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorFeaturesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT ), "struct and wrapper have different size!" ); + + struct ImageViewASTCDecodeModeEXT + { + ImageViewASTCDecodeModeEXT( Format decodeMode_ = Format::eUndefined ) + : decodeMode( decodeMode_ ) + { + } + + ImageViewASTCDecodeModeEXT( VkImageViewASTCDecodeModeEXT const & rhs ) + { + memcpy( this, &rhs, sizeof( ImageViewASTCDecodeModeEXT ) ); + } + + ImageViewASTCDecodeModeEXT& operator=( VkImageViewASTCDecodeModeEXT const & rhs ) + { + memcpy( this, &rhs, sizeof( ImageViewASTCDecodeModeEXT ) ); + return *this; + } + ImageViewASTCDecodeModeEXT& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + ImageViewASTCDecodeModeEXT& setDecodeMode( Format decodeMode_ ) + { + decodeMode = decodeMode_; + return *this; + } + + operator VkImageViewASTCDecodeModeEXT const&() const + { + return *reinterpret_cast<const VkImageViewASTCDecodeModeEXT*>(this); + } + + operator VkImageViewASTCDecodeModeEXT &() + { + return *reinterpret_cast<VkImageViewASTCDecodeModeEXT*>(this); + } + + bool operator==( ImageViewASTCDecodeModeEXT const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( decodeMode == rhs.decodeMode ); + } + + bool operator!=( ImageViewASTCDecodeModeEXT const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::eImageViewAstcDecodeModeEXT; + + public: + const void* pNext = nullptr; + Format decodeMode; + }; + static_assert( sizeof( ImageViewASTCDecodeModeEXT ) == sizeof( VkImageViewASTCDecodeModeEXT ), "struct and wrapper have different size!" ); + + struct PhysicalDeviceASTCDecodeFeaturesEXT + { + PhysicalDeviceASTCDecodeFeaturesEXT( Bool32 decodeModeSharedExponent_ = 0 ) + : decodeModeSharedExponent( decodeModeSharedExponent_ ) + { + } + + PhysicalDeviceASTCDecodeFeaturesEXT( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceASTCDecodeFeaturesEXT ) ); + } + + PhysicalDeviceASTCDecodeFeaturesEXT& operator=( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceASTCDecodeFeaturesEXT ) ); + return *this; + } + PhysicalDeviceASTCDecodeFeaturesEXT& setPNext( void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + PhysicalDeviceASTCDecodeFeaturesEXT& setDecodeModeSharedExponent( Bool32 decodeModeSharedExponent_ ) + { + decodeModeSharedExponent = decodeModeSharedExponent_; + return *this; + } + + operator VkPhysicalDeviceASTCDecodeFeaturesEXT const&() const + { + return *reinterpret_cast<const VkPhysicalDeviceASTCDecodeFeaturesEXT*>(this); + } + + operator VkPhysicalDeviceASTCDecodeFeaturesEXT &() + { + return *reinterpret_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT*>(this); + } + + bool operator==( PhysicalDeviceASTCDecodeFeaturesEXT const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( decodeModeSharedExponent == rhs.decodeModeSharedExponent ); + } + + bool operator!=( PhysicalDeviceASTCDecodeFeaturesEXT const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT; + + public: + void* pNext = nullptr; + Bool32 decodeModeSharedExponent; + }; + static_assert( sizeof( PhysicalDeviceASTCDecodeFeaturesEXT ) == sizeof( VkPhysicalDeviceASTCDecodeFeaturesEXT ), "struct and wrapper have different size!" ); + + struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV + { + PhysicalDeviceRepresentativeFragmentTestFeaturesNV( Bool32 representativeFragmentTest_ = 0 ) + : representativeFragmentTest( representativeFragmentTest_ ) + { + } + + PhysicalDeviceRepresentativeFragmentTestFeaturesNV( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceRepresentativeFragmentTestFeaturesNV ) ); + } + + PhysicalDeviceRepresentativeFragmentTestFeaturesNV& operator=( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceRepresentativeFragmentTestFeaturesNV ) ); + return *this; + } + PhysicalDeviceRepresentativeFragmentTestFeaturesNV& setPNext( void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + PhysicalDeviceRepresentativeFragmentTestFeaturesNV& setRepresentativeFragmentTest( Bool32 representativeFragmentTest_ ) + { + representativeFragmentTest = representativeFragmentTest_; + return *this; + } + + operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const&() const + { + return *reinterpret_cast<const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>(this); + } + + operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV &() + { + return *reinterpret_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>(this); + } + + bool operator==( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( representativeFragmentTest == rhs.representativeFragmentTest ); + } + + bool operator!=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV; + + public: + void* pNext = nullptr; + Bool32 representativeFragmentTest; + }; + static_assert( sizeof( PhysicalDeviceRepresentativeFragmentTestFeaturesNV ) == sizeof( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV ), "struct and wrapper have different size!" ); + + struct PipelineRepresentativeFragmentTestStateCreateInfoNV + { + PipelineRepresentativeFragmentTestStateCreateInfoNV( Bool32 representativeFragmentTestEnable_ = 0 ) + : representativeFragmentTestEnable( representativeFragmentTestEnable_ ) + { + } + + PipelineRepresentativeFragmentTestStateCreateInfoNV( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PipelineRepresentativeFragmentTestStateCreateInfoNV ) ); + } + + PipelineRepresentativeFragmentTestStateCreateInfoNV& operator=( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PipelineRepresentativeFragmentTestStateCreateInfoNV ) ); + return *this; + } + PipelineRepresentativeFragmentTestStateCreateInfoNV& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + PipelineRepresentativeFragmentTestStateCreateInfoNV& setRepresentativeFragmentTestEnable( Bool32 representativeFragmentTestEnable_ ) + { + representativeFragmentTestEnable = representativeFragmentTestEnable_; + return *this; + } + + operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const&() const + { + return *reinterpret_cast<const VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>(this); + } + + operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV &() + { + return *reinterpret_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>(this); + } + + bool operator==( PipelineRepresentativeFragmentTestStateCreateInfoNV const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( representativeFragmentTestEnable == rhs.representativeFragmentTestEnable ); + } + + bool operator!=( PipelineRepresentativeFragmentTestStateCreateInfoNV const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV; + + public: + const void* pNext = nullptr; + Bool32 representativeFragmentTestEnable; + }; + static_assert( sizeof( PipelineRepresentativeFragmentTestStateCreateInfoNV ) == sizeof( VkPipelineRepresentativeFragmentTestStateCreateInfoNV ), "struct and wrapper have different size!" ); + + struct PhysicalDeviceExclusiveScissorFeaturesNV + { + PhysicalDeviceExclusiveScissorFeaturesNV( Bool32 exclusiveScissor_ = 0 ) + : exclusiveScissor( exclusiveScissor_ ) + { + } + + PhysicalDeviceExclusiveScissorFeaturesNV( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceExclusiveScissorFeaturesNV ) ); + } + + PhysicalDeviceExclusiveScissorFeaturesNV& operator=( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceExclusiveScissorFeaturesNV ) ); + return *this; + } + PhysicalDeviceExclusiveScissorFeaturesNV& setPNext( void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + PhysicalDeviceExclusiveScissorFeaturesNV& setExclusiveScissor( Bool32 exclusiveScissor_ ) + { + exclusiveScissor = exclusiveScissor_; + return *this; + } + + operator VkPhysicalDeviceExclusiveScissorFeaturesNV const&() const + { + return *reinterpret_cast<const VkPhysicalDeviceExclusiveScissorFeaturesNV*>(this); + } + + operator VkPhysicalDeviceExclusiveScissorFeaturesNV &() + { + return *reinterpret_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV*>(this); + } + + bool operator==( PhysicalDeviceExclusiveScissorFeaturesNV const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( exclusiveScissor == rhs.exclusiveScissor ); + } + + bool operator!=( PhysicalDeviceExclusiveScissorFeaturesNV const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV; + + public: + void* pNext = nullptr; + Bool32 exclusiveScissor; + }; + static_assert( sizeof( PhysicalDeviceExclusiveScissorFeaturesNV ) == sizeof( VkPhysicalDeviceExclusiveScissorFeaturesNV ), "struct and wrapper have different size!" ); + + struct PipelineViewportExclusiveScissorStateCreateInfoNV + { + PipelineViewportExclusiveScissorStateCreateInfoNV( uint32_t exclusiveScissorCount_ = 0, + const Rect2D* pExclusiveScissors_ = nullptr ) + : exclusiveScissorCount( exclusiveScissorCount_ ) + , pExclusiveScissors( pExclusiveScissors_ ) + { + } + + PipelineViewportExclusiveScissorStateCreateInfoNV( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PipelineViewportExclusiveScissorStateCreateInfoNV ) ); + } + + PipelineViewportExclusiveScissorStateCreateInfoNV& operator=( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PipelineViewportExclusiveScissorStateCreateInfoNV ) ); + return *this; + } + PipelineViewportExclusiveScissorStateCreateInfoNV& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + PipelineViewportExclusiveScissorStateCreateInfoNV& setExclusiveScissorCount( uint32_t exclusiveScissorCount_ ) + { + exclusiveScissorCount = exclusiveScissorCount_; + return *this; + } + + PipelineViewportExclusiveScissorStateCreateInfoNV& setPExclusiveScissors( const Rect2D* pExclusiveScissors_ ) + { + pExclusiveScissors = pExclusiveScissors_; + return *this; + } + + operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const&() const + { + return *reinterpret_cast<const VkPipelineViewportExclusiveScissorStateCreateInfoNV*>(this); + } + + operator VkPipelineViewportExclusiveScissorStateCreateInfoNV &() + { + return *reinterpret_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV*>(this); + } + + bool operator==( PipelineViewportExclusiveScissorStateCreateInfoNV const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( exclusiveScissorCount == rhs.exclusiveScissorCount ) + && ( pExclusiveScissors == rhs.pExclusiveScissors ); + } + + bool operator!=( PipelineViewportExclusiveScissorStateCreateInfoNV const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV; + + public: + const void* pNext = nullptr; + uint32_t exclusiveScissorCount; + const Rect2D* pExclusiveScissors; + }; + static_assert( sizeof( PipelineViewportExclusiveScissorStateCreateInfoNV ) == sizeof( VkPipelineViewportExclusiveScissorStateCreateInfoNV ), "struct and wrapper have different size!" ); + + struct PhysicalDeviceCornerSampledImageFeaturesNV + { + PhysicalDeviceCornerSampledImageFeaturesNV( Bool32 cornerSampledImage_ = 0 ) + : cornerSampledImage( cornerSampledImage_ ) + { + } + + PhysicalDeviceCornerSampledImageFeaturesNV( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceCornerSampledImageFeaturesNV ) ); + } + + PhysicalDeviceCornerSampledImageFeaturesNV& operator=( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceCornerSampledImageFeaturesNV ) ); + return *this; + } + PhysicalDeviceCornerSampledImageFeaturesNV& setPNext( void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + PhysicalDeviceCornerSampledImageFeaturesNV& setCornerSampledImage( Bool32 cornerSampledImage_ ) + { + cornerSampledImage = cornerSampledImage_; + return *this; + } + + operator VkPhysicalDeviceCornerSampledImageFeaturesNV const&() const + { + return *reinterpret_cast<const VkPhysicalDeviceCornerSampledImageFeaturesNV*>(this); + } + + operator VkPhysicalDeviceCornerSampledImageFeaturesNV &() + { + return *reinterpret_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV*>(this); + } + + bool operator==( PhysicalDeviceCornerSampledImageFeaturesNV const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( cornerSampledImage == rhs.cornerSampledImage ); + } + + bool operator!=( PhysicalDeviceCornerSampledImageFeaturesNV const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV; + + public: + void* pNext = nullptr; + Bool32 cornerSampledImage; + }; + static_assert( sizeof( PhysicalDeviceCornerSampledImageFeaturesNV ) == sizeof( VkPhysicalDeviceCornerSampledImageFeaturesNV ), "struct and wrapper have different size!" ); + + struct PhysicalDeviceComputeShaderDerivativesFeaturesNV + { + PhysicalDeviceComputeShaderDerivativesFeaturesNV( Bool32 computeDerivativeGroupQuads_ = 0, + Bool32 computeDerivativeGroupLinear_ = 0 ) + : computeDerivativeGroupQuads( computeDerivativeGroupQuads_ ) + , computeDerivativeGroupLinear( computeDerivativeGroupLinear_ ) + { + } + + PhysicalDeviceComputeShaderDerivativesFeaturesNV( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceComputeShaderDerivativesFeaturesNV ) ); + } + + PhysicalDeviceComputeShaderDerivativesFeaturesNV& operator=( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceComputeShaderDerivativesFeaturesNV ) ); + return *this; + } + PhysicalDeviceComputeShaderDerivativesFeaturesNV& setPNext( void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + PhysicalDeviceComputeShaderDerivativesFeaturesNV& setComputeDerivativeGroupQuads( Bool32 computeDerivativeGroupQuads_ ) + { + computeDerivativeGroupQuads = computeDerivativeGroupQuads_; + return *this; + } + + PhysicalDeviceComputeShaderDerivativesFeaturesNV& setComputeDerivativeGroupLinear( Bool32 computeDerivativeGroupLinear_ ) + { + computeDerivativeGroupLinear = computeDerivativeGroupLinear_; + return *this; + } + + operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const&() const + { + return *reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>(this); + } + + operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV &() + { + return *reinterpret_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>(this); + } + + bool operator==( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( computeDerivativeGroupQuads == rhs.computeDerivativeGroupQuads ) + && ( computeDerivativeGroupLinear == rhs.computeDerivativeGroupLinear ); + } + + bool operator!=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV; + + public: + void* pNext = nullptr; + Bool32 computeDerivativeGroupQuads; + Bool32 computeDerivativeGroupLinear; + }; + static_assert( sizeof( PhysicalDeviceComputeShaderDerivativesFeaturesNV ) == sizeof( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV ), "struct and wrapper have different size!" ); + + struct PhysicalDeviceFragmentShaderBarycentricFeaturesNV + { + PhysicalDeviceFragmentShaderBarycentricFeaturesNV( Bool32 fragmentShaderBarycentric_ = 0 ) + : fragmentShaderBarycentric( fragmentShaderBarycentric_ ) + { + } + + PhysicalDeviceFragmentShaderBarycentricFeaturesNV( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceFragmentShaderBarycentricFeaturesNV ) ); + } + + PhysicalDeviceFragmentShaderBarycentricFeaturesNV& operator=( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceFragmentShaderBarycentricFeaturesNV ) ); + return *this; + } + PhysicalDeviceFragmentShaderBarycentricFeaturesNV& setPNext( void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + PhysicalDeviceFragmentShaderBarycentricFeaturesNV& setFragmentShaderBarycentric( Bool32 fragmentShaderBarycentric_ ) + { + fragmentShaderBarycentric = fragmentShaderBarycentric_; + return *this; + } + + operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const&() const + { + return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>(this); + } + + operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV &() + { + return *reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>(this); + } + + bool operator==( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( fragmentShaderBarycentric == rhs.fragmentShaderBarycentric ); + } + + bool operator!=( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV; + + public: + void* pNext = nullptr; + Bool32 fragmentShaderBarycentric; + }; + static_assert( sizeof( PhysicalDeviceFragmentShaderBarycentricFeaturesNV ) == sizeof( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV ), "struct and wrapper have different size!" ); + + struct PhysicalDeviceShaderImageFootprintFeaturesNV + { + PhysicalDeviceShaderImageFootprintFeaturesNV( Bool32 imageFootprint_ = 0 ) + : imageFootprint( imageFootprint_ ) + { + } + + PhysicalDeviceShaderImageFootprintFeaturesNV( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceShaderImageFootprintFeaturesNV ) ); + } + + PhysicalDeviceShaderImageFootprintFeaturesNV& operator=( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceShaderImageFootprintFeaturesNV ) ); + return *this; + } + PhysicalDeviceShaderImageFootprintFeaturesNV& setPNext( void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + PhysicalDeviceShaderImageFootprintFeaturesNV& setImageFootprint( Bool32 imageFootprint_ ) + { + imageFootprint = imageFootprint_; + return *this; + } + + operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const&() const + { + return *reinterpret_cast<const VkPhysicalDeviceShaderImageFootprintFeaturesNV*>(this); + } + + operator VkPhysicalDeviceShaderImageFootprintFeaturesNV &() + { + return *reinterpret_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV*>(this); + } + + bool operator==( PhysicalDeviceShaderImageFootprintFeaturesNV const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( imageFootprint == rhs.imageFootprint ); + } + + bool operator!=( PhysicalDeviceShaderImageFootprintFeaturesNV const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV; + + public: + void* pNext = nullptr; + Bool32 imageFootprint; + }; + static_assert( sizeof( PhysicalDeviceShaderImageFootprintFeaturesNV ) == sizeof( VkPhysicalDeviceShaderImageFootprintFeaturesNV ), "struct and wrapper have different size!" ); + + struct PhysicalDeviceShadingRateImageFeaturesNV + { + PhysicalDeviceShadingRateImageFeaturesNV( Bool32 shadingRateImage_ = 0, + Bool32 shadingRateCoarseSampleOrder_ = 0 ) + : shadingRateImage( shadingRateImage_ ) + , shadingRateCoarseSampleOrder( shadingRateCoarseSampleOrder_ ) + { + } + + PhysicalDeviceShadingRateImageFeaturesNV( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceShadingRateImageFeaturesNV ) ); + } + + PhysicalDeviceShadingRateImageFeaturesNV& operator=( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceShadingRateImageFeaturesNV ) ); + return *this; + } + PhysicalDeviceShadingRateImageFeaturesNV& setPNext( void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + PhysicalDeviceShadingRateImageFeaturesNV& setShadingRateImage( Bool32 shadingRateImage_ ) + { + shadingRateImage = shadingRateImage_; + return *this; + } + + PhysicalDeviceShadingRateImageFeaturesNV& setShadingRateCoarseSampleOrder( Bool32 shadingRateCoarseSampleOrder_ ) + { + shadingRateCoarseSampleOrder = shadingRateCoarseSampleOrder_; + return *this; + } + + operator VkPhysicalDeviceShadingRateImageFeaturesNV const&() const + { + return *reinterpret_cast<const VkPhysicalDeviceShadingRateImageFeaturesNV*>(this); + } + + operator VkPhysicalDeviceShadingRateImageFeaturesNV &() + { + return *reinterpret_cast<VkPhysicalDeviceShadingRateImageFeaturesNV*>(this); + } + + bool operator==( PhysicalDeviceShadingRateImageFeaturesNV const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( shadingRateImage == rhs.shadingRateImage ) + && ( shadingRateCoarseSampleOrder == rhs.shadingRateCoarseSampleOrder ); + } + + bool operator!=( PhysicalDeviceShadingRateImageFeaturesNV const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV; + + public: + void* pNext = nullptr; + Bool32 shadingRateImage; + Bool32 shadingRateCoarseSampleOrder; + }; + static_assert( sizeof( PhysicalDeviceShadingRateImageFeaturesNV ) == sizeof( VkPhysicalDeviceShadingRateImageFeaturesNV ), "struct and wrapper have different size!" ); + + struct PhysicalDeviceShadingRateImagePropertiesNV + { + operator VkPhysicalDeviceShadingRateImagePropertiesNV const&() const + { + return *reinterpret_cast<const VkPhysicalDeviceShadingRateImagePropertiesNV*>(this); + } + + operator VkPhysicalDeviceShadingRateImagePropertiesNV &() + { + return *reinterpret_cast<VkPhysicalDeviceShadingRateImagePropertiesNV*>(this); + } + + bool operator==( PhysicalDeviceShadingRateImagePropertiesNV const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( shadingRateTexelSize == rhs.shadingRateTexelSize ) + && ( shadingRatePaletteSize == rhs.shadingRatePaletteSize ) + && ( shadingRateMaxCoarseSamples == rhs.shadingRateMaxCoarseSamples ); + } + + bool operator!=( PhysicalDeviceShadingRateImagePropertiesNV const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV; + + public: + void* pNext = nullptr; + Extent2D shadingRateTexelSize; + uint32_t shadingRatePaletteSize; + uint32_t shadingRateMaxCoarseSamples; + }; + static_assert( sizeof( PhysicalDeviceShadingRateImagePropertiesNV ) == sizeof( VkPhysicalDeviceShadingRateImagePropertiesNV ), "struct and wrapper have different size!" ); + + struct PhysicalDeviceMeshShaderFeaturesNV + { + PhysicalDeviceMeshShaderFeaturesNV( Bool32 taskShader_ = 0, + Bool32 meshShader_ = 0 ) + : taskShader( taskShader_ ) + , meshShader( meshShader_ ) + { + } + + PhysicalDeviceMeshShaderFeaturesNV( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceMeshShaderFeaturesNV ) ); + } + + PhysicalDeviceMeshShaderFeaturesNV& operator=( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceMeshShaderFeaturesNV ) ); + return *this; + } + PhysicalDeviceMeshShaderFeaturesNV& setPNext( void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + PhysicalDeviceMeshShaderFeaturesNV& setTaskShader( Bool32 taskShader_ ) + { + taskShader = taskShader_; + return *this; + } + + PhysicalDeviceMeshShaderFeaturesNV& setMeshShader( Bool32 meshShader_ ) + { + meshShader = meshShader_; + return *this; + } + + operator VkPhysicalDeviceMeshShaderFeaturesNV const&() const + { + return *reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesNV*>(this); + } + + operator VkPhysicalDeviceMeshShaderFeaturesNV &() + { + return *reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesNV*>(this); + } + + bool operator==( PhysicalDeviceMeshShaderFeaturesNV const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( taskShader == rhs.taskShader ) + && ( meshShader == rhs.meshShader ); + } + + bool operator!=( PhysicalDeviceMeshShaderFeaturesNV const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV; + + public: + void* pNext = nullptr; + Bool32 taskShader; + Bool32 meshShader; + }; + static_assert( sizeof( PhysicalDeviceMeshShaderFeaturesNV ) == sizeof( VkPhysicalDeviceMeshShaderFeaturesNV ), "struct and wrapper have different size!" ); + + struct PhysicalDeviceMeshShaderPropertiesNV + { + PhysicalDeviceMeshShaderPropertiesNV( uint32_t maxDrawMeshTasksCount_ = 0, + uint32_t maxTaskWorkGroupInvocations_ = 0, + std::array<uint32_t,3> const& maxTaskWorkGroupSize_ = { { 0, 0, 0 } }, + uint32_t maxTaskTotalMemorySize_ = 0, + uint32_t maxTaskOutputCount_ = 0, + uint32_t maxMeshWorkGroupInvocations_ = 0, + std::array<uint32_t,3> const& maxMeshWorkGroupSize_ = { { 0, 0, 0 } }, + uint32_t maxMeshTotalMemorySize_ = 0, + uint32_t maxMeshOutputVertices_ = 0, + uint32_t maxMeshOutputPrimitives_ = 0, + uint32_t maxMeshMultiviewViewCount_ = 0, + uint32_t meshOutputPerVertexGranularity_ = 0, + uint32_t meshOutputPerPrimitiveGranularity_ = 0 ) + : maxDrawMeshTasksCount( maxDrawMeshTasksCount_ ) + , maxTaskWorkGroupInvocations( maxTaskWorkGroupInvocations_ ) + , maxTaskTotalMemorySize( maxTaskTotalMemorySize_ ) + , maxTaskOutputCount( maxTaskOutputCount_ ) + , maxMeshWorkGroupInvocations( maxMeshWorkGroupInvocations_ ) + , maxMeshTotalMemorySize( maxMeshTotalMemorySize_ ) + , maxMeshOutputVertices( maxMeshOutputVertices_ ) + , maxMeshOutputPrimitives( maxMeshOutputPrimitives_ ) + , maxMeshMultiviewViewCount( maxMeshMultiviewViewCount_ ) + , meshOutputPerVertexGranularity( meshOutputPerVertexGranularity_ ) + , meshOutputPerPrimitiveGranularity( meshOutputPerPrimitiveGranularity_ ) + { + memcpy( &maxTaskWorkGroupSize, maxTaskWorkGroupSize_.data(), 3 * sizeof( uint32_t ) ); + memcpy( &maxMeshWorkGroupSize, maxMeshWorkGroupSize_.data(), 3 * sizeof( uint32_t ) ); + } + + PhysicalDeviceMeshShaderPropertiesNV( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceMeshShaderPropertiesNV ) ); + } + + PhysicalDeviceMeshShaderPropertiesNV& operator=( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceMeshShaderPropertiesNV ) ); + return *this; + } + PhysicalDeviceMeshShaderPropertiesNV& setPNext( void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + PhysicalDeviceMeshShaderPropertiesNV& setMaxDrawMeshTasksCount( uint32_t maxDrawMeshTasksCount_ ) + { + maxDrawMeshTasksCount = maxDrawMeshTasksCount_; + return *this; + } + + PhysicalDeviceMeshShaderPropertiesNV& setMaxTaskWorkGroupInvocations( uint32_t maxTaskWorkGroupInvocations_ ) + { + maxTaskWorkGroupInvocations = maxTaskWorkGroupInvocations_; + return *this; + } + + PhysicalDeviceMeshShaderPropertiesNV& setMaxTaskWorkGroupSize( std::array<uint32_t,3> maxTaskWorkGroupSize_ ) + { + memcpy( &maxTaskWorkGroupSize, maxTaskWorkGroupSize_.data(), 3 * sizeof( uint32_t ) ); + return *this; + } + + PhysicalDeviceMeshShaderPropertiesNV& setMaxTaskTotalMemorySize( uint32_t maxTaskTotalMemorySize_ ) + { + maxTaskTotalMemorySize = maxTaskTotalMemorySize_; + return *this; + } + + PhysicalDeviceMeshShaderPropertiesNV& setMaxTaskOutputCount( uint32_t maxTaskOutputCount_ ) + { + maxTaskOutputCount = maxTaskOutputCount_; + return *this; + } + + PhysicalDeviceMeshShaderPropertiesNV& setMaxMeshWorkGroupInvocations( uint32_t maxMeshWorkGroupInvocations_ ) + { + maxMeshWorkGroupInvocations = maxMeshWorkGroupInvocations_; + return *this; + } + + PhysicalDeviceMeshShaderPropertiesNV& setMaxMeshWorkGroupSize( std::array<uint32_t,3> maxMeshWorkGroupSize_ ) + { + memcpy( &maxMeshWorkGroupSize, maxMeshWorkGroupSize_.data(), 3 * sizeof( uint32_t ) ); + return *this; + } + + PhysicalDeviceMeshShaderPropertiesNV& setMaxMeshTotalMemorySize( uint32_t maxMeshTotalMemorySize_ ) + { + maxMeshTotalMemorySize = maxMeshTotalMemorySize_; + return *this; + } + + PhysicalDeviceMeshShaderPropertiesNV& setMaxMeshOutputVertices( uint32_t maxMeshOutputVertices_ ) + { + maxMeshOutputVertices = maxMeshOutputVertices_; + return *this; + } + + PhysicalDeviceMeshShaderPropertiesNV& setMaxMeshOutputPrimitives( uint32_t maxMeshOutputPrimitives_ ) + { + maxMeshOutputPrimitives = maxMeshOutputPrimitives_; + return *this; + } + + PhysicalDeviceMeshShaderPropertiesNV& setMaxMeshMultiviewViewCount( uint32_t maxMeshMultiviewViewCount_ ) + { + maxMeshMultiviewViewCount = maxMeshMultiviewViewCount_; + return *this; + } + + PhysicalDeviceMeshShaderPropertiesNV& setMeshOutputPerVertexGranularity( uint32_t meshOutputPerVertexGranularity_ ) + { + meshOutputPerVertexGranularity = meshOutputPerVertexGranularity_; + return *this; + } + + PhysicalDeviceMeshShaderPropertiesNV& setMeshOutputPerPrimitiveGranularity( uint32_t meshOutputPerPrimitiveGranularity_ ) + { + meshOutputPerPrimitiveGranularity = meshOutputPerPrimitiveGranularity_; + return *this; + } + + operator VkPhysicalDeviceMeshShaderPropertiesNV const&() const + { + return *reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesNV*>(this); + } + + operator VkPhysicalDeviceMeshShaderPropertiesNV &() + { + return *reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesNV*>(this); + } + + bool operator==( PhysicalDeviceMeshShaderPropertiesNV const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( maxDrawMeshTasksCount == rhs.maxDrawMeshTasksCount ) + && ( maxTaskWorkGroupInvocations == rhs.maxTaskWorkGroupInvocations ) + && ( memcmp( maxTaskWorkGroupSize, rhs.maxTaskWorkGroupSize, 3 * sizeof( uint32_t ) ) == 0 ) + && ( maxTaskTotalMemorySize == rhs.maxTaskTotalMemorySize ) + && ( maxTaskOutputCount == rhs.maxTaskOutputCount ) + && ( maxMeshWorkGroupInvocations == rhs.maxMeshWorkGroupInvocations ) + && ( memcmp( maxMeshWorkGroupSize, rhs.maxMeshWorkGroupSize, 3 * sizeof( uint32_t ) ) == 0 ) + && ( maxMeshTotalMemorySize == rhs.maxMeshTotalMemorySize ) + && ( maxMeshOutputVertices == rhs.maxMeshOutputVertices ) + && ( maxMeshOutputPrimitives == rhs.maxMeshOutputPrimitives ) + && ( maxMeshMultiviewViewCount == rhs.maxMeshMultiviewViewCount ) + && ( meshOutputPerVertexGranularity == rhs.meshOutputPerVertexGranularity ) + && ( meshOutputPerPrimitiveGranularity == rhs.meshOutputPerPrimitiveGranularity ); + } + + bool operator!=( PhysicalDeviceMeshShaderPropertiesNV const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV; + + public: + void* pNext = nullptr; + uint32_t maxDrawMeshTasksCount; + uint32_t maxTaskWorkGroupInvocations; + uint32_t maxTaskWorkGroupSize[3]; + uint32_t maxTaskTotalMemorySize; + uint32_t maxTaskOutputCount; + uint32_t maxMeshWorkGroupInvocations; + uint32_t maxMeshWorkGroupSize[3]; + uint32_t maxMeshTotalMemorySize; + uint32_t maxMeshOutputVertices; + uint32_t maxMeshOutputPrimitives; + uint32_t maxMeshMultiviewViewCount; + uint32_t meshOutputPerVertexGranularity; + uint32_t meshOutputPerPrimitiveGranularity; + }; + static_assert( sizeof( PhysicalDeviceMeshShaderPropertiesNV ) == sizeof( VkPhysicalDeviceMeshShaderPropertiesNV ), "struct and wrapper have different size!" ); + + struct GeometryTrianglesNVX + { + GeometryTrianglesNVX( Buffer vertexData_ = Buffer(), + DeviceSize vertexOffset_ = 0, + uint32_t vertexCount_ = 0, + DeviceSize vertexStride_ = 0, + Format vertexFormat_ = Format::eUndefined, + Buffer indexData_ = Buffer(), + DeviceSize indexOffset_ = 0, + uint32_t indexCount_ = 0, + IndexType indexType_ = IndexType::eUint16, + Buffer transformData_ = Buffer(), + DeviceSize transformOffset_ = 0 ) + : vertexData( vertexData_ ) + , vertexOffset( vertexOffset_ ) + , vertexCount( vertexCount_ ) + , vertexStride( vertexStride_ ) + , vertexFormat( vertexFormat_ ) + , indexData( indexData_ ) + , indexOffset( indexOffset_ ) + , indexCount( indexCount_ ) + , indexType( indexType_ ) + , transformData( transformData_ ) + , transformOffset( transformOffset_ ) + { + } + + GeometryTrianglesNVX( VkGeometryTrianglesNVX const & rhs ) + { + memcpy( this, &rhs, sizeof( GeometryTrianglesNVX ) ); + } + + GeometryTrianglesNVX& operator=( VkGeometryTrianglesNVX const & rhs ) + { + memcpy( this, &rhs, sizeof( GeometryTrianglesNVX ) ); + return *this; + } + GeometryTrianglesNVX& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + GeometryTrianglesNVX& setVertexData( Buffer vertexData_ ) + { + vertexData = vertexData_; + return *this; + } + + GeometryTrianglesNVX& setVertexOffset( DeviceSize vertexOffset_ ) + { + vertexOffset = vertexOffset_; + return *this; + } + + GeometryTrianglesNVX& setVertexCount( uint32_t vertexCount_ ) + { + vertexCount = vertexCount_; + return *this; + } + + GeometryTrianglesNVX& setVertexStride( DeviceSize vertexStride_ ) + { + vertexStride = vertexStride_; + return *this; + } + + GeometryTrianglesNVX& setVertexFormat( Format vertexFormat_ ) + { + vertexFormat = vertexFormat_; + return *this; + } + + GeometryTrianglesNVX& setIndexData( Buffer indexData_ ) + { + indexData = indexData_; + return *this; + } + + GeometryTrianglesNVX& setIndexOffset( DeviceSize indexOffset_ ) + { + indexOffset = indexOffset_; + return *this; + } + + GeometryTrianglesNVX& setIndexCount( uint32_t indexCount_ ) + { + indexCount = indexCount_; + return *this; + } + + GeometryTrianglesNVX& setIndexType( IndexType indexType_ ) + { + indexType = indexType_; + return *this; + } + + GeometryTrianglesNVX& setTransformData( Buffer transformData_ ) + { + transformData = transformData_; + return *this; + } + + GeometryTrianglesNVX& setTransformOffset( DeviceSize transformOffset_ ) + { + transformOffset = transformOffset_; + return *this; + } + + operator VkGeometryTrianglesNVX const&() const + { + return *reinterpret_cast<const VkGeometryTrianglesNVX*>(this); + } + + operator VkGeometryTrianglesNVX &() + { + return *reinterpret_cast<VkGeometryTrianglesNVX*>(this); + } + + bool operator==( GeometryTrianglesNVX const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( vertexData == rhs.vertexData ) + && ( vertexOffset == rhs.vertexOffset ) + && ( vertexCount == rhs.vertexCount ) + && ( vertexStride == rhs.vertexStride ) + && ( vertexFormat == rhs.vertexFormat ) + && ( indexData == rhs.indexData ) + && ( indexOffset == rhs.indexOffset ) + && ( indexCount == rhs.indexCount ) + && ( indexType == rhs.indexType ) + && ( transformData == rhs.transformData ) + && ( transformOffset == rhs.transformOffset ); + } + + bool operator!=( GeometryTrianglesNVX const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::eGeometryTrianglesNVX; + + public: + const void* pNext = nullptr; + Buffer vertexData; + DeviceSize vertexOffset; + uint32_t vertexCount; + DeviceSize vertexStride; + Format vertexFormat; + Buffer indexData; + DeviceSize indexOffset; + uint32_t indexCount; + IndexType indexType; + Buffer transformData; + DeviceSize transformOffset; + }; + static_assert( sizeof( GeometryTrianglesNVX ) == sizeof( VkGeometryTrianglesNVX ), "struct and wrapper have different size!" ); + + struct GeometryAABBNVX + { + GeometryAABBNVX( Buffer aabbData_ = Buffer(), + uint32_t numAABBs_ = 0, + uint32_t stride_ = 0, + DeviceSize offset_ = 0 ) + : aabbData( aabbData_ ) + , numAABBs( numAABBs_ ) + , stride( stride_ ) + , offset( offset_ ) + { + } + + GeometryAABBNVX( VkGeometryAABBNVX const & rhs ) + { + memcpy( this, &rhs, sizeof( GeometryAABBNVX ) ); + } + + GeometryAABBNVX& operator=( VkGeometryAABBNVX const & rhs ) + { + memcpy( this, &rhs, sizeof( GeometryAABBNVX ) ); + return *this; + } + GeometryAABBNVX& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + GeometryAABBNVX& setAabbData( Buffer aabbData_ ) + { + aabbData = aabbData_; + return *this; + } + + GeometryAABBNVX& setNumAABBs( uint32_t numAABBs_ ) + { + numAABBs = numAABBs_; + return *this; + } + + GeometryAABBNVX& setStride( uint32_t stride_ ) + { + stride = stride_; + return *this; + } + + GeometryAABBNVX& setOffset( DeviceSize offset_ ) + { + offset = offset_; + return *this; + } + + operator VkGeometryAABBNVX const&() const + { + return *reinterpret_cast<const VkGeometryAABBNVX*>(this); + } + + operator VkGeometryAABBNVX &() + { + return *reinterpret_cast<VkGeometryAABBNVX*>(this); + } + + bool operator==( GeometryAABBNVX const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( aabbData == rhs.aabbData ) + && ( numAABBs == rhs.numAABBs ) + && ( stride == rhs.stride ) + && ( offset == rhs.offset ); + } + + bool operator!=( GeometryAABBNVX const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::eGeometryAabbNVX; + + public: + const void* pNext = nullptr; + Buffer aabbData; + uint32_t numAABBs; + uint32_t stride; + DeviceSize offset; + }; + static_assert( sizeof( GeometryAABBNVX ) == sizeof( VkGeometryAABBNVX ), "struct and wrapper have different size!" ); + + struct GeometryDataNVX + { + GeometryDataNVX( GeometryTrianglesNVX triangles_ = GeometryTrianglesNVX(), + GeometryAABBNVX aabbs_ = GeometryAABBNVX() ) + : triangles( triangles_ ) + , aabbs( aabbs_ ) + { + } + + GeometryDataNVX( VkGeometryDataNVX const & rhs ) + { + memcpy( this, &rhs, sizeof( GeometryDataNVX ) ); + } + + GeometryDataNVX& operator=( VkGeometryDataNVX const & rhs ) + { + memcpy( this, &rhs, sizeof( GeometryDataNVX ) ); + return *this; + } + GeometryDataNVX& setTriangles( GeometryTrianglesNVX triangles_ ) + { + triangles = triangles_; + return *this; + } + + GeometryDataNVX& setAabbs( GeometryAABBNVX aabbs_ ) + { + aabbs = aabbs_; + return *this; + } + + operator VkGeometryDataNVX const&() const + { + return *reinterpret_cast<const VkGeometryDataNVX*>(this); + } + + operator VkGeometryDataNVX &() + { + return *reinterpret_cast<VkGeometryDataNVX*>(this); + } + + bool operator==( GeometryDataNVX const& rhs ) const + { + return ( triangles == rhs.triangles ) + && ( aabbs == rhs.aabbs ); + } + + bool operator!=( GeometryDataNVX const& rhs ) const + { + return !operator==( rhs ); + } + + GeometryTrianglesNVX triangles; + GeometryAABBNVX aabbs; + }; + static_assert( sizeof( GeometryDataNVX ) == sizeof( VkGeometryDataNVX ), "struct and wrapper have different size!" ); + + struct BindAccelerationStructureMemoryInfoNVX + { + BindAccelerationStructureMemoryInfoNVX( AccelerationStructureNVX accelerationStructure_ = AccelerationStructureNVX(), + DeviceMemory memory_ = DeviceMemory(), + DeviceSize memoryOffset_ = 0, + uint32_t deviceIndexCount_ = 0, + const uint32_t* pDeviceIndices_ = nullptr ) + : accelerationStructure( accelerationStructure_ ) + , memory( memory_ ) + , memoryOffset( memoryOffset_ ) + , deviceIndexCount( deviceIndexCount_ ) + , pDeviceIndices( pDeviceIndices_ ) + { + } + + BindAccelerationStructureMemoryInfoNVX( VkBindAccelerationStructureMemoryInfoNVX const & rhs ) + { + memcpy( this, &rhs, sizeof( BindAccelerationStructureMemoryInfoNVX ) ); + } + + BindAccelerationStructureMemoryInfoNVX& operator=( VkBindAccelerationStructureMemoryInfoNVX const & rhs ) + { + memcpy( this, &rhs, sizeof( BindAccelerationStructureMemoryInfoNVX ) ); + return *this; + } + BindAccelerationStructureMemoryInfoNVX& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + BindAccelerationStructureMemoryInfoNVX& setAccelerationStructure( AccelerationStructureNVX accelerationStructure_ ) + { + accelerationStructure = accelerationStructure_; + return *this; + } + + BindAccelerationStructureMemoryInfoNVX& setMemory( DeviceMemory memory_ ) + { + memory = memory_; + return *this; + } + + BindAccelerationStructureMemoryInfoNVX& setMemoryOffset( DeviceSize memoryOffset_ ) + { + memoryOffset = memoryOffset_; + return *this; + } + + BindAccelerationStructureMemoryInfoNVX& setDeviceIndexCount( uint32_t deviceIndexCount_ ) + { + deviceIndexCount = deviceIndexCount_; + return *this; + } + + BindAccelerationStructureMemoryInfoNVX& setPDeviceIndices( const uint32_t* pDeviceIndices_ ) + { + pDeviceIndices = pDeviceIndices_; + return *this; + } + + operator VkBindAccelerationStructureMemoryInfoNVX const&() const + { + return *reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNVX*>(this); + } + + operator VkBindAccelerationStructureMemoryInfoNVX &() + { + return *reinterpret_cast<VkBindAccelerationStructureMemoryInfoNVX*>(this); + } + + bool operator==( BindAccelerationStructureMemoryInfoNVX const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( accelerationStructure == rhs.accelerationStructure ) + && ( memory == rhs.memory ) + && ( memoryOffset == rhs.memoryOffset ) + && ( deviceIndexCount == rhs.deviceIndexCount ) + && ( pDeviceIndices == rhs.pDeviceIndices ); + } + + bool operator!=( BindAccelerationStructureMemoryInfoNVX const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::eBindAccelerationStructureMemoryInfoNVX; + + public: + const void* pNext = nullptr; + AccelerationStructureNVX accelerationStructure; + DeviceMemory memory; + DeviceSize memoryOffset; + uint32_t deviceIndexCount; + const uint32_t* pDeviceIndices; + }; + static_assert( sizeof( BindAccelerationStructureMemoryInfoNVX ) == sizeof( VkBindAccelerationStructureMemoryInfoNVX ), "struct and wrapper have different size!" ); + + struct DescriptorAccelerationStructureInfoNVX + { + DescriptorAccelerationStructureInfoNVX( uint32_t accelerationStructureCount_ = 0, + const AccelerationStructureNVX* pAccelerationStructures_ = nullptr ) + : accelerationStructureCount( accelerationStructureCount_ ) + , pAccelerationStructures( pAccelerationStructures_ ) + { + } + + DescriptorAccelerationStructureInfoNVX( VkDescriptorAccelerationStructureInfoNVX const & rhs ) + { + memcpy( this, &rhs, sizeof( DescriptorAccelerationStructureInfoNVX ) ); + } + + DescriptorAccelerationStructureInfoNVX& operator=( VkDescriptorAccelerationStructureInfoNVX const & rhs ) + { + memcpy( this, &rhs, sizeof( DescriptorAccelerationStructureInfoNVX ) ); + return *this; + } + DescriptorAccelerationStructureInfoNVX& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + DescriptorAccelerationStructureInfoNVX& setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) + { + accelerationStructureCount = accelerationStructureCount_; + return *this; + } + + DescriptorAccelerationStructureInfoNVX& setPAccelerationStructures( const AccelerationStructureNVX* pAccelerationStructures_ ) + { + pAccelerationStructures = pAccelerationStructures_; + return *this; + } + + operator VkDescriptorAccelerationStructureInfoNVX const&() const + { + return *reinterpret_cast<const VkDescriptorAccelerationStructureInfoNVX*>(this); + } + + operator VkDescriptorAccelerationStructureInfoNVX &() + { + return *reinterpret_cast<VkDescriptorAccelerationStructureInfoNVX*>(this); + } + + bool operator==( DescriptorAccelerationStructureInfoNVX const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( accelerationStructureCount == rhs.accelerationStructureCount ) + && ( pAccelerationStructures == rhs.pAccelerationStructures ); + } + + bool operator!=( DescriptorAccelerationStructureInfoNVX const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::eDescriptorAccelerationStructureInfoNVX; + + public: + const void* pNext = nullptr; + uint32_t accelerationStructureCount; + const AccelerationStructureNVX* pAccelerationStructures; + }; + static_assert( sizeof( DescriptorAccelerationStructureInfoNVX ) == sizeof( VkDescriptorAccelerationStructureInfoNVX ), "struct and wrapper have different size!" ); + + struct AccelerationStructureMemoryRequirementsInfoNVX + { + AccelerationStructureMemoryRequirementsInfoNVX( AccelerationStructureNVX accelerationStructure_ = AccelerationStructureNVX() ) + : accelerationStructure( accelerationStructure_ ) + { + } + + AccelerationStructureMemoryRequirementsInfoNVX( VkAccelerationStructureMemoryRequirementsInfoNVX const & rhs ) + { + memcpy( this, &rhs, sizeof( AccelerationStructureMemoryRequirementsInfoNVX ) ); + } + + AccelerationStructureMemoryRequirementsInfoNVX& operator=( VkAccelerationStructureMemoryRequirementsInfoNVX const & rhs ) + { + memcpy( this, &rhs, sizeof( AccelerationStructureMemoryRequirementsInfoNVX ) ); + return *this; + } + AccelerationStructureMemoryRequirementsInfoNVX& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + AccelerationStructureMemoryRequirementsInfoNVX& setAccelerationStructure( AccelerationStructureNVX accelerationStructure_ ) + { + accelerationStructure = accelerationStructure_; + return *this; + } + + operator VkAccelerationStructureMemoryRequirementsInfoNVX const&() const + { + return *reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNVX*>(this); + } + + operator VkAccelerationStructureMemoryRequirementsInfoNVX &() + { + return *reinterpret_cast<VkAccelerationStructureMemoryRequirementsInfoNVX*>(this); + } + + bool operator==( AccelerationStructureMemoryRequirementsInfoNVX const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( accelerationStructure == rhs.accelerationStructure ); + } + + bool operator!=( AccelerationStructureMemoryRequirementsInfoNVX const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::eAccelerationStructureMemoryRequirementsInfoNVX; + + public: + const void* pNext = nullptr; + AccelerationStructureNVX accelerationStructure; + }; + static_assert( sizeof( AccelerationStructureMemoryRequirementsInfoNVX ) == sizeof( VkAccelerationStructureMemoryRequirementsInfoNVX ), "struct and wrapper have different size!" ); + + struct PhysicalDeviceRaytracingPropertiesNVX + { + PhysicalDeviceRaytracingPropertiesNVX( uint32_t shaderHeaderSize_ = 0, + uint32_t maxRecursionDepth_ = 0, + uint32_t maxGeometryCount_ = 0 ) + : shaderHeaderSize( shaderHeaderSize_ ) + , maxRecursionDepth( maxRecursionDepth_ ) + , maxGeometryCount( maxGeometryCount_ ) + { + } + + PhysicalDeviceRaytracingPropertiesNVX( VkPhysicalDeviceRaytracingPropertiesNVX const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceRaytracingPropertiesNVX ) ); + } + + PhysicalDeviceRaytracingPropertiesNVX& operator=( VkPhysicalDeviceRaytracingPropertiesNVX const & rhs ) + { + memcpy( this, &rhs, sizeof( PhysicalDeviceRaytracingPropertiesNVX ) ); + return *this; + } + PhysicalDeviceRaytracingPropertiesNVX& setPNext( void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + PhysicalDeviceRaytracingPropertiesNVX& setShaderHeaderSize( uint32_t shaderHeaderSize_ ) + { + shaderHeaderSize = shaderHeaderSize_; + return *this; + } + + PhysicalDeviceRaytracingPropertiesNVX& setMaxRecursionDepth( uint32_t maxRecursionDepth_ ) + { + maxRecursionDepth = maxRecursionDepth_; + return *this; + } + + PhysicalDeviceRaytracingPropertiesNVX& setMaxGeometryCount( uint32_t maxGeometryCount_ ) + { + maxGeometryCount = maxGeometryCount_; + return *this; + } + + operator VkPhysicalDeviceRaytracingPropertiesNVX const&() const + { + return *reinterpret_cast<const VkPhysicalDeviceRaytracingPropertiesNVX*>(this); + } + + operator VkPhysicalDeviceRaytracingPropertiesNVX &() + { + return *reinterpret_cast<VkPhysicalDeviceRaytracingPropertiesNVX*>(this); + } + + bool operator==( PhysicalDeviceRaytracingPropertiesNVX const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( shaderHeaderSize == rhs.shaderHeaderSize ) + && ( maxRecursionDepth == rhs.maxRecursionDepth ) + && ( maxGeometryCount == rhs.maxGeometryCount ); + } + + bool operator!=( PhysicalDeviceRaytracingPropertiesNVX const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePhysicalDeviceRaytracingPropertiesNVX; + + public: + void* pNext = nullptr; + uint32_t shaderHeaderSize; + uint32_t maxRecursionDepth; + uint32_t maxGeometryCount; + }; + static_assert( sizeof( PhysicalDeviceRaytracingPropertiesNVX ) == sizeof( VkPhysicalDeviceRaytracingPropertiesNVX ), "struct and wrapper have different size!" ); + enum class SubpassContents { eInline = VK_SUBPASS_CONTENTS_INLINE, eSecondaryCommandBuffers = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS }; + struct SubpassBeginInfoKHR + { + SubpassBeginInfoKHR( SubpassContents contents_ = SubpassContents::eInline ) + : contents( contents_ ) + { + } + + SubpassBeginInfoKHR( VkSubpassBeginInfoKHR const & rhs ) + { + memcpy( this, &rhs, sizeof( SubpassBeginInfoKHR ) ); + } + + SubpassBeginInfoKHR& operator=( VkSubpassBeginInfoKHR const & rhs ) + { + memcpy( this, &rhs, sizeof( SubpassBeginInfoKHR ) ); + return *this; + } + SubpassBeginInfoKHR& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + SubpassBeginInfoKHR& setContents( SubpassContents contents_ ) + { + contents = contents_; + return *this; + } + + operator VkSubpassBeginInfoKHR const&() const + { + return *reinterpret_cast<const VkSubpassBeginInfoKHR*>(this); + } + + operator VkSubpassBeginInfoKHR &() + { + return *reinterpret_cast<VkSubpassBeginInfoKHR*>(this); + } + + bool operator==( SubpassBeginInfoKHR const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( contents == rhs.contents ); + } + + bool operator!=( SubpassBeginInfoKHR const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::eSubpassBeginInfoKHR; + + public: + const void* pNext = nullptr; + SubpassContents contents; + }; + static_assert( sizeof( SubpassBeginInfoKHR ) == sizeof( VkSubpassBeginInfoKHR ), "struct and wrapper have different size!" ); + struct PresentInfoKHR { PresentInfoKHR( uint32_t waitSemaphoreCount_ = 0, @@ -17182,11 +20835,16 @@ public: return *this; } - operator const VkPresentInfoKHR&() const + operator VkPresentInfoKHR const&() const { return *reinterpret_cast<const VkPresentInfoKHR*>(this); } + operator VkPresentInfoKHR &() + { + return *reinterpret_cast<VkPresentInfoKHR*>(this); + } + bool operator==( PresentInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -17231,7 +20889,10 @@ public: eStencilReference = VK_DYNAMIC_STATE_STENCIL_REFERENCE, eViewportWScalingNV = VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV, eDiscardRectangleEXT = VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT, - eSampleLocationsEXT = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT + eSampleLocationsEXT = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, + eViewportShadingRatePaletteNV = VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV, + eViewportCoarseSampleOrderNV = VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV, + eExclusiveScissorNV = VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV }; struct PipelineDynamicStateCreateInfo @@ -17279,11 +20940,16 @@ public: return *this; } - operator const VkPipelineDynamicStateCreateInfo&() const + operator VkPipelineDynamicStateCreateInfo const&() const { return *reinterpret_cast<const VkPipelineDynamicStateCreateInfo*>(this); } + operator VkPipelineDynamicStateCreateInfo &() + { + return *reinterpret_cast<VkPipelineDynamicStateCreateInfo*>(this); + } + bool operator==( PipelineDynamicStateCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -17401,11 +21067,16 @@ public: return *this; } - operator const VkDescriptorUpdateTemplateCreateInfo&() const + operator VkDescriptorUpdateTemplateCreateInfo const&() const { return *reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>(this); } + operator VkDescriptorUpdateTemplateCreateInfo &() + { + return *reinterpret_cast<VkDescriptorUpdateTemplateCreateInfo*>(this); + } + bool operator==( DescriptorUpdateTemplateCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -17483,7 +21154,8 @@ public: eObjectTableNVX = VK_OBJECT_TYPE_OBJECT_TABLE_NVX, eIndirectCommandsLayoutNVX = VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX, eDebugUtilsMessengerEXT = VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT, - eValidationCacheEXT = VK_OBJECT_TYPE_VALIDATION_CACHE_EXT + eValidationCacheEXT = VK_OBJECT_TYPE_VALIDATION_CACHE_EXT, + eAccelerationStructureNVX = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NVX }; struct DebugUtilsObjectNameInfoEXT @@ -17531,11 +21203,16 @@ public: return *this; } - operator const VkDebugUtilsObjectNameInfoEXT&() const + operator VkDebugUtilsObjectNameInfoEXT const&() const { return *reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT*>(this); } + operator VkDebugUtilsObjectNameInfoEXT &() + { + return *reinterpret_cast<VkDebugUtilsObjectNameInfoEXT*>(this); + } + bool operator==( DebugUtilsObjectNameInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -17622,11 +21299,16 @@ public: return *this; } - operator const VkDebugUtilsObjectTagInfoEXT&() const + operator VkDebugUtilsObjectTagInfoEXT const&() const { return *reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT*>(this); } + operator VkDebugUtilsObjectTagInfoEXT &() + { + return *reinterpret_cast<VkDebugUtilsObjectTagInfoEXT*>(this); + } + bool operator==( DebugUtilsObjectTagInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -17757,11 +21439,16 @@ public: return *this; } - operator const VkDebugUtilsMessengerCallbackDataEXT&() const + operator VkDebugUtilsMessengerCallbackDataEXT const&() const { return *reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT*>(this); } + operator VkDebugUtilsMessengerCallbackDataEXT &() + { + return *reinterpret_cast<VkDebugUtilsMessengerCallbackDataEXT*>(this); + } + bool operator==( DebugUtilsMessengerCallbackDataEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -17832,11 +21519,16 @@ public: struct QueueFamilyProperties { - operator const VkQueueFamilyProperties&() const + operator VkQueueFamilyProperties const&() const { return *reinterpret_cast<const VkQueueFamilyProperties*>(this); } + operator VkQueueFamilyProperties &() + { + return *reinterpret_cast<VkQueueFamilyProperties*>(this); + } + bool operator==( QueueFamilyProperties const& rhs ) const { return ( queueFlags == rhs.queueFlags ) @@ -17859,11 +21551,16 @@ public: struct QueueFamilyProperties2 { - operator const VkQueueFamilyProperties2&() const + operator VkQueueFamilyProperties2 const&() const { return *reinterpret_cast<const VkQueueFamilyProperties2*>(this); } + operator VkQueueFamilyProperties2 &() + { + return *reinterpret_cast<VkQueueFamilyProperties2*>(this); + } + bool operator==( QueueFamilyProperties2 const& rhs ) const { return ( sType == rhs.sType ) @@ -17965,11 +21662,16 @@ public: return *this; } - operator const VkDeviceQueueCreateInfo&() const + operator VkDeviceQueueCreateInfo const&() const { return *reinterpret_cast<const VkDeviceQueueCreateInfo*>(this); } + operator VkDeviceQueueCreateInfo &() + { + return *reinterpret_cast<VkDeviceQueueCreateInfo*>(this); + } + bool operator==( DeviceQueueCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -18082,11 +21784,16 @@ public: return *this; } - operator const VkDeviceCreateInfo&() const + operator VkDeviceCreateInfo const&() const { return *reinterpret_cast<const VkDeviceCreateInfo*>(this); } + operator VkDeviceCreateInfo &() + { + return *reinterpret_cast<VkDeviceCreateInfo*>(this); + } + bool operator==( DeviceCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -18167,11 +21874,16 @@ public: return *this; } - operator const VkDeviceQueueInfo2&() const + operator VkDeviceQueueInfo2 const&() const { return *reinterpret_cast<const VkDeviceQueueInfo2*>(this); } + operator VkDeviceQueueInfo2 &() + { + return *reinterpret_cast<VkDeviceQueueInfo2*>(this); + } + bool operator==( DeviceQueueInfo2 const& rhs ) const { return ( sType == rhs.sType ) @@ -18229,11 +21941,16 @@ public: struct MemoryType { - operator const VkMemoryType&() const + operator VkMemoryType const&() const { return *reinterpret_cast<const VkMemoryType*>(this); } + operator VkMemoryType &() + { + return *reinterpret_cast<VkMemoryType*>(this); + } + bool operator==( MemoryType const& rhs ) const { return ( propertyFlags == rhs.propertyFlags ) @@ -18279,11 +21996,16 @@ public: struct MemoryHeap { - operator const VkMemoryHeap&() const + operator VkMemoryHeap const&() const { return *reinterpret_cast<const VkMemoryHeap*>(this); } + operator VkMemoryHeap &() + { + return *reinterpret_cast<VkMemoryHeap*>(this); + } + bool operator==( MemoryHeap const& rhs ) const { return ( size == rhs.size ) @@ -18302,11 +22024,16 @@ public: struct PhysicalDeviceMemoryProperties { - operator const VkPhysicalDeviceMemoryProperties&() const + operator VkPhysicalDeviceMemoryProperties const&() const { return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties*>(this); } + operator VkPhysicalDeviceMemoryProperties &() + { + return *reinterpret_cast<VkPhysicalDeviceMemoryProperties*>(this); + } + bool operator==( PhysicalDeviceMemoryProperties const& rhs ) const { return ( memoryTypeCount == rhs.memoryTypeCount ) @@ -18329,11 +22056,16 @@ public: struct PhysicalDeviceMemoryProperties2 { - operator const VkPhysicalDeviceMemoryProperties2&() const + operator VkPhysicalDeviceMemoryProperties2 const&() const { return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties2*>(this); } + operator VkPhysicalDeviceMemoryProperties2 &() + { + return *reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>(this); + } + bool operator==( PhysicalDeviceMemoryProperties2 const& rhs ) const { return ( sType == rhs.sType ) @@ -18376,9 +22108,13 @@ public: eHostWrite = VK_ACCESS_HOST_WRITE_BIT, eMemoryRead = VK_ACCESS_MEMORY_READ_BIT, eMemoryWrite = VK_ACCESS_MEMORY_WRITE_BIT, + eConditionalRenderingReadEXT = VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT, eCommandProcessReadNVX = VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX, eCommandProcessWriteNVX = VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX, - eColorAttachmentReadNoncoherentEXT = VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT + eColorAttachmentReadNoncoherentEXT = VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, + eShadingRateImageReadNV = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV, + eAccelerationStructureReadNVX = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NVX, + eAccelerationStructureWriteNVX = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NVX }; using AccessFlags = Flags<AccessFlagBits, VkAccessFlags>; @@ -18397,7 +22133,7 @@ public: { enum { - allFlags = VkFlags(AccessFlagBits::eIndirectCommandRead) | VkFlags(AccessFlagBits::eIndexRead) | VkFlags(AccessFlagBits::eVertexAttributeRead) | VkFlags(AccessFlagBits::eUniformRead) | VkFlags(AccessFlagBits::eInputAttachmentRead) | VkFlags(AccessFlagBits::eShaderRead) | VkFlags(AccessFlagBits::eShaderWrite) | VkFlags(AccessFlagBits::eColorAttachmentRead) | VkFlags(AccessFlagBits::eColorAttachmentWrite) | VkFlags(AccessFlagBits::eDepthStencilAttachmentRead) | VkFlags(AccessFlagBits::eDepthStencilAttachmentWrite) | VkFlags(AccessFlagBits::eTransferRead) | VkFlags(AccessFlagBits::eTransferWrite) | VkFlags(AccessFlagBits::eHostRead) | VkFlags(AccessFlagBits::eHostWrite) | VkFlags(AccessFlagBits::eMemoryRead) | VkFlags(AccessFlagBits::eMemoryWrite) | VkFlags(AccessFlagBits::eCommandProcessReadNVX) | VkFlags(AccessFlagBits::eCommandProcessWriteNVX) | VkFlags(AccessFlagBits::eColorAttachmentReadNoncoherentEXT) + allFlags = VkFlags(AccessFlagBits::eIndirectCommandRead) | VkFlags(AccessFlagBits::eIndexRead) | VkFlags(AccessFlagBits::eVertexAttributeRead) | VkFlags(AccessFlagBits::eUniformRead) | VkFlags(AccessFlagBits::eInputAttachmentRead) | VkFlags(AccessFlagBits::eShaderRead) | VkFlags(AccessFlagBits::eShaderWrite) | VkFlags(AccessFlagBits::eColorAttachmentRead) | VkFlags(AccessFlagBits::eColorAttachmentWrite) | VkFlags(AccessFlagBits::eDepthStencilAttachmentRead) | VkFlags(AccessFlagBits::eDepthStencilAttachmentWrite) | VkFlags(AccessFlagBits::eTransferRead) | VkFlags(AccessFlagBits::eTransferWrite) | VkFlags(AccessFlagBits::eHostRead) | VkFlags(AccessFlagBits::eHostWrite) | VkFlags(AccessFlagBits::eMemoryRead) | VkFlags(AccessFlagBits::eMemoryWrite) | VkFlags(AccessFlagBits::eConditionalRenderingReadEXT) | VkFlags(AccessFlagBits::eCommandProcessReadNVX) | VkFlags(AccessFlagBits::eCommandProcessWriteNVX) | VkFlags(AccessFlagBits::eColorAttachmentReadNoncoherentEXT) | VkFlags(AccessFlagBits::eShadingRateImageReadNV) | VkFlags(AccessFlagBits::eAccelerationStructureReadNVX) | VkFlags(AccessFlagBits::eAccelerationStructureWriteNVX) }; }; @@ -18438,11 +22174,16 @@ public: return *this; } - operator const VkMemoryBarrier&() const + operator VkMemoryBarrier const&() const { return *reinterpret_cast<const VkMemoryBarrier*>(this); } + operator VkMemoryBarrier &() + { + return *reinterpret_cast<VkMemoryBarrier*>(this); + } + bool operator==( MemoryBarrier const& rhs ) const { return ( sType == rhs.sType ) @@ -18543,11 +22284,16 @@ public: return *this; } - operator const VkBufferMemoryBarrier&() const + operator VkBufferMemoryBarrier const&() const { return *reinterpret_cast<const VkBufferMemoryBarrier*>(this); } + operator VkBufferMemoryBarrier &() + { + return *reinterpret_cast<VkBufferMemoryBarrier*>(this); + } + bool operator==( BufferMemoryBarrier const& rhs ) const { return ( sType == rhs.sType ) @@ -18591,7 +22337,9 @@ public: 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 + eIndirectBuffer = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, + eConditionalRenderingEXT = VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT, + eRaytracingNVX = VK_BUFFER_USAGE_RAYTRACING_BIT_NVX }; using BufferUsageFlags = Flags<BufferUsageFlagBits, VkBufferUsageFlags>; @@ -18610,7 +22358,7 @@ public: { enum { - allFlags = VkFlags(BufferUsageFlagBits::eTransferSrc) | VkFlags(BufferUsageFlagBits::eTransferDst) | VkFlags(BufferUsageFlagBits::eUniformTexelBuffer) | VkFlags(BufferUsageFlagBits::eStorageTexelBuffer) | VkFlags(BufferUsageFlagBits::eUniformBuffer) | VkFlags(BufferUsageFlagBits::eStorageBuffer) | VkFlags(BufferUsageFlagBits::eIndexBuffer) | VkFlags(BufferUsageFlagBits::eVertexBuffer) | VkFlags(BufferUsageFlagBits::eIndirectBuffer) + allFlags = VkFlags(BufferUsageFlagBits::eTransferSrc) | VkFlags(BufferUsageFlagBits::eTransferDst) | VkFlags(BufferUsageFlagBits::eUniformTexelBuffer) | VkFlags(BufferUsageFlagBits::eStorageTexelBuffer) | VkFlags(BufferUsageFlagBits::eUniformBuffer) | VkFlags(BufferUsageFlagBits::eStorageBuffer) | VkFlags(BufferUsageFlagBits::eIndexBuffer) | VkFlags(BufferUsageFlagBits::eVertexBuffer) | VkFlags(BufferUsageFlagBits::eIndirectBuffer) | VkFlags(BufferUsageFlagBits::eConditionalRenderingEXT) | VkFlags(BufferUsageFlagBits::eRaytracingNVX) }; }; @@ -18711,11 +22459,16 @@ public: return *this; } - operator const VkBufferCreateInfo&() const + operator VkBufferCreateInfo const&() const { return *reinterpret_cast<const VkBufferCreateInfo*>(this); } + operator VkBufferCreateInfo &() + { + return *reinterpret_cast<VkBufferCreateInfo*>(this); + } + bool operator==( BufferCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -18756,7 +22509,15 @@ public: eFragment = VK_SHADER_STAGE_FRAGMENT_BIT, eCompute = VK_SHADER_STAGE_COMPUTE_BIT, eAllGraphics = VK_SHADER_STAGE_ALL_GRAPHICS, - eAll = VK_SHADER_STAGE_ALL + eAll = VK_SHADER_STAGE_ALL, + eRaygenNVX = VK_SHADER_STAGE_RAYGEN_BIT_NVX, + eAnyHitNVX = VK_SHADER_STAGE_ANY_HIT_BIT_NVX, + eClosestHitNVX = VK_SHADER_STAGE_CLOSEST_HIT_BIT_NVX, + eMissNVX = VK_SHADER_STAGE_MISS_BIT_NVX, + eIntersectionNVX = VK_SHADER_STAGE_INTERSECTION_BIT_NVX, + eCallableNVX = VK_SHADER_STAGE_CALLABLE_BIT_NVX, + eTaskNV = VK_SHADER_STAGE_TASK_BIT_NV, + eMeshNV = VK_SHADER_STAGE_MESH_BIT_NV }; using ShaderStageFlags = Flags<ShaderStageFlagBits, VkShaderStageFlags>; @@ -18775,7 +22536,7 @@ public: { enum { - allFlags = VkFlags(ShaderStageFlagBits::eVertex) | VkFlags(ShaderStageFlagBits::eTessellationControl) | VkFlags(ShaderStageFlagBits::eTessellationEvaluation) | VkFlags(ShaderStageFlagBits::eGeometry) | VkFlags(ShaderStageFlagBits::eFragment) | VkFlags(ShaderStageFlagBits::eCompute) | VkFlags(ShaderStageFlagBits::eAllGraphics) | VkFlags(ShaderStageFlagBits::eAll) + allFlags = VkFlags(ShaderStageFlagBits::eVertex) | VkFlags(ShaderStageFlagBits::eTessellationControl) | VkFlags(ShaderStageFlagBits::eTessellationEvaluation) | VkFlags(ShaderStageFlagBits::eGeometry) | VkFlags(ShaderStageFlagBits::eFragment) | VkFlags(ShaderStageFlagBits::eCompute) | VkFlags(ShaderStageFlagBits::eAllGraphics) | VkFlags(ShaderStageFlagBits::eAll) | VkFlags(ShaderStageFlagBits::eRaygenNVX) | VkFlags(ShaderStageFlagBits::eAnyHitNVX) | VkFlags(ShaderStageFlagBits::eClosestHitNVX) | VkFlags(ShaderStageFlagBits::eMissNVX) | VkFlags(ShaderStageFlagBits::eIntersectionNVX) | VkFlags(ShaderStageFlagBits::eCallableNVX) | VkFlags(ShaderStageFlagBits::eTaskNV) | VkFlags(ShaderStageFlagBits::eMeshNV) }; }; @@ -18834,11 +22595,16 @@ public: return *this; } - operator const VkDescriptorSetLayoutBinding&() const + operator VkDescriptorSetLayoutBinding const&() const { return *reinterpret_cast<const VkDescriptorSetLayoutBinding*>(this); } + operator VkDescriptorSetLayoutBinding &() + { + return *reinterpret_cast<VkDescriptorSetLayoutBinding*>(this); + } + bool operator==( DescriptorSetLayoutBinding const& rhs ) const { return ( binding == rhs.binding ) @@ -18922,11 +22688,16 @@ public: return *this; } - operator const VkPipelineShaderStageCreateInfo&() const + operator VkPipelineShaderStageCreateInfo const&() const { return *reinterpret_cast<const VkPipelineShaderStageCreateInfo*>(this); } + operator VkPipelineShaderStageCreateInfo &() + { + return *reinterpret_cast<VkPipelineShaderStageCreateInfo*>(this); + } + bool operator==( PipelineShaderStageCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -18995,11 +22766,16 @@ public: return *this; } - operator const VkPushConstantRange&() const + operator VkPushConstantRange const&() const { return *reinterpret_cast<const VkPushConstantRange*>(this); } + operator VkPushConstantRange &() + { + return *reinterpret_cast<VkPushConstantRange*>(this); + } + bool operator==( PushConstantRange const& rhs ) const { return ( stageFlags == rhs.stageFlags ) @@ -19079,11 +22855,16 @@ public: return *this; } - operator const VkPipelineLayoutCreateInfo&() const + operator VkPipelineLayoutCreateInfo const&() const { return *reinterpret_cast<const VkPipelineLayoutCreateInfo*>(this); } + operator VkPipelineLayoutCreateInfo &() + { + return *reinterpret_cast<VkPipelineLayoutCreateInfo*>(this); + } + bool operator==( PipelineLayoutCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -19115,11 +22896,16 @@ public: struct ShaderStatisticsInfoAMD { - operator const VkShaderStatisticsInfoAMD&() const + operator VkShaderStatisticsInfoAMD const&() const { return *reinterpret_cast<const VkShaderStatisticsInfoAMD*>(this); } + operator VkShaderStatisticsInfoAMD &() + { + return *reinterpret_cast<VkShaderStatisticsInfoAMD*>(this); + } + bool operator==( ShaderStatisticsInfoAMD const& rhs ) const { return ( shaderStageMask == rhs.shaderStageMask ) @@ -19155,7 +22941,8 @@ public: 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 + eInputAttachment = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, + eShadingRateImageNV = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV }; using ImageUsageFlags = Flags<ImageUsageFlagBits, VkImageUsageFlags>; @@ -19174,17 +22961,22 @@ public: { enum { - allFlags = VkFlags(ImageUsageFlagBits::eTransferSrc) | VkFlags(ImageUsageFlagBits::eTransferDst) | VkFlags(ImageUsageFlagBits::eSampled) | VkFlags(ImageUsageFlagBits::eStorage) | VkFlags(ImageUsageFlagBits::eColorAttachment) | VkFlags(ImageUsageFlagBits::eDepthStencilAttachment) | VkFlags(ImageUsageFlagBits::eTransientAttachment) | VkFlags(ImageUsageFlagBits::eInputAttachment) + allFlags = VkFlags(ImageUsageFlagBits::eTransferSrc) | VkFlags(ImageUsageFlagBits::eTransferDst) | VkFlags(ImageUsageFlagBits::eSampled) | VkFlags(ImageUsageFlagBits::eStorage) | VkFlags(ImageUsageFlagBits::eColorAttachment) | VkFlags(ImageUsageFlagBits::eDepthStencilAttachment) | VkFlags(ImageUsageFlagBits::eTransientAttachment) | VkFlags(ImageUsageFlagBits::eInputAttachment) | VkFlags(ImageUsageFlagBits::eShadingRateImageNV) }; }; struct SharedPresentSurfaceCapabilitiesKHR { - operator const VkSharedPresentSurfaceCapabilitiesKHR&() const + operator VkSharedPresentSurfaceCapabilitiesKHR const&() const { return *reinterpret_cast<const VkSharedPresentSurfaceCapabilitiesKHR*>(this); } + operator VkSharedPresentSurfaceCapabilitiesKHR &() + { + return *reinterpret_cast<VkSharedPresentSurfaceCapabilitiesKHR*>(this); + } + bool operator==( SharedPresentSurfaceCapabilitiesKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -19235,11 +23027,16 @@ public: return *this; } - operator const VkImageViewUsageCreateInfo&() const + operator VkImageViewUsageCreateInfo const&() const { return *reinterpret_cast<const VkImageViewUsageCreateInfo*>(this); } + operator VkImageViewUsageCreateInfo &() + { + return *reinterpret_cast<VkImageViewUsageCreateInfo*>(this); + } + bool operator==( ImageViewUsageCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -19283,6 +23080,7 @@ public: eProtected = VK_IMAGE_CREATE_PROTECTED_BIT, eDisjoint = VK_IMAGE_CREATE_DISJOINT_BIT, eDisjointKHR = VK_IMAGE_CREATE_DISJOINT_BIT, + eCornerSampledNV = VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, eSampleLocationsCompatibleDepthEXT = VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT }; @@ -19302,7 +23100,7 @@ public: { enum { - allFlags = VkFlags(ImageCreateFlagBits::eSparseBinding) | VkFlags(ImageCreateFlagBits::eSparseResidency) | VkFlags(ImageCreateFlagBits::eSparseAliased) | VkFlags(ImageCreateFlagBits::eMutableFormat) | VkFlags(ImageCreateFlagBits::eCubeCompatible) | VkFlags(ImageCreateFlagBits::eAlias) | VkFlags(ImageCreateFlagBits::eSplitInstanceBindRegions) | VkFlags(ImageCreateFlagBits::e2DArrayCompatible) | VkFlags(ImageCreateFlagBits::eBlockTexelViewCompatible) | VkFlags(ImageCreateFlagBits::eExtendedUsage) | VkFlags(ImageCreateFlagBits::eProtected) | VkFlags(ImageCreateFlagBits::eDisjoint) | VkFlags(ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT) + allFlags = VkFlags(ImageCreateFlagBits::eSparseBinding) | VkFlags(ImageCreateFlagBits::eSparseResidency) | VkFlags(ImageCreateFlagBits::eSparseAliased) | VkFlags(ImageCreateFlagBits::eMutableFormat) | VkFlags(ImageCreateFlagBits::eCubeCompatible) | VkFlags(ImageCreateFlagBits::eAlias) | VkFlags(ImageCreateFlagBits::eSplitInstanceBindRegions) | VkFlags(ImageCreateFlagBits::e2DArrayCompatible) | VkFlags(ImageCreateFlagBits::eBlockTexelViewCompatible) | VkFlags(ImageCreateFlagBits::eExtendedUsage) | VkFlags(ImageCreateFlagBits::eProtected) | VkFlags(ImageCreateFlagBits::eDisjoint) | VkFlags(ImageCreateFlagBits::eCornerSampledNV) | VkFlags(ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT) }; }; @@ -19367,11 +23165,16 @@ public: return *this; } - operator const VkPhysicalDeviceImageFormatInfo2&() const + operator VkPhysicalDeviceImageFormatInfo2 const&() const { return *reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>(this); } + operator VkPhysicalDeviceImageFormatInfo2 &() + { + return *reinterpret_cast<VkPhysicalDeviceImageFormatInfo2*>(this); + } + bool operator==( PhysicalDeviceImageFormatInfo2 const& rhs ) const { return ( sType == rhs.sType ) @@ -19411,7 +23214,8 @@ public: eViewIndexFromDeviceIndex = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, eViewIndexFromDeviceIndexKHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, eDispatchBase = VK_PIPELINE_CREATE_DISPATCH_BASE, - eDispatchBaseKHR = VK_PIPELINE_CREATE_DISPATCH_BASE + eDispatchBaseKHR = VK_PIPELINE_CREATE_DISPATCH_BASE, + eDeferCompileNVX = VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NVX }; using PipelineCreateFlags = Flags<PipelineCreateFlagBits, VkPipelineCreateFlags>; @@ -19430,7 +23234,7 @@ public: { enum { - allFlags = VkFlags(PipelineCreateFlagBits::eDisableOptimization) | VkFlags(PipelineCreateFlagBits::eAllowDerivatives) | VkFlags(PipelineCreateFlagBits::eDerivative) | VkFlags(PipelineCreateFlagBits::eViewIndexFromDeviceIndex) | VkFlags(PipelineCreateFlagBits::eDispatchBase) + allFlags = VkFlags(PipelineCreateFlagBits::eDisableOptimization) | VkFlags(PipelineCreateFlagBits::eAllowDerivatives) | VkFlags(PipelineCreateFlagBits::eDerivative) | VkFlags(PipelineCreateFlagBits::eViewIndexFromDeviceIndex) | VkFlags(PipelineCreateFlagBits::eDispatchBase) | VkFlags(PipelineCreateFlagBits::eDeferCompileNVX) }; }; @@ -19495,11 +23299,16 @@ public: return *this; } - operator const VkComputePipelineCreateInfo&() const + operator VkComputePipelineCreateInfo const&() const { return *reinterpret_cast<const VkComputePipelineCreateInfo*>(this); } + operator VkComputePipelineCreateInfo &() + { + return *reinterpret_cast<VkComputePipelineCreateInfo*>(this); + } + bool operator==( ComputePipelineCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -19529,6 +23338,136 @@ public: }; static_assert( sizeof( ComputePipelineCreateInfo ) == sizeof( VkComputePipelineCreateInfo ), "struct and wrapper have different size!" ); + struct RaytracingPipelineCreateInfoNVX + { + RaytracingPipelineCreateInfoNVX( PipelineCreateFlags flags_ = PipelineCreateFlags(), + uint32_t stageCount_ = 0, + const PipelineShaderStageCreateInfo* pStages_ = nullptr, + const uint32_t* pGroupNumbers_ = nullptr, + uint32_t maxRecursionDepth_ = 0, + PipelineLayout layout_ = PipelineLayout(), + Pipeline basePipelineHandle_ = Pipeline(), + int32_t basePipelineIndex_ = 0 ) + : flags( flags_ ) + , stageCount( stageCount_ ) + , pStages( pStages_ ) + , pGroupNumbers( pGroupNumbers_ ) + , maxRecursionDepth( maxRecursionDepth_ ) + , layout( layout_ ) + , basePipelineHandle( basePipelineHandle_ ) + , basePipelineIndex( basePipelineIndex_ ) + { + } + + RaytracingPipelineCreateInfoNVX( VkRaytracingPipelineCreateInfoNVX const & rhs ) + { + memcpy( this, &rhs, sizeof( RaytracingPipelineCreateInfoNVX ) ); + } + + RaytracingPipelineCreateInfoNVX& operator=( VkRaytracingPipelineCreateInfoNVX const & rhs ) + { + memcpy( this, &rhs, sizeof( RaytracingPipelineCreateInfoNVX ) ); + return *this; + } + RaytracingPipelineCreateInfoNVX& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + RaytracingPipelineCreateInfoNVX& setFlags( PipelineCreateFlags flags_ ) + { + flags = flags_; + return *this; + } + + RaytracingPipelineCreateInfoNVX& setStageCount( uint32_t stageCount_ ) + { + stageCount = stageCount_; + return *this; + } + + RaytracingPipelineCreateInfoNVX& setPStages( const PipelineShaderStageCreateInfo* pStages_ ) + { + pStages = pStages_; + return *this; + } + + RaytracingPipelineCreateInfoNVX& setPGroupNumbers( const uint32_t* pGroupNumbers_ ) + { + pGroupNumbers = pGroupNumbers_; + return *this; + } + + RaytracingPipelineCreateInfoNVX& setMaxRecursionDepth( uint32_t maxRecursionDepth_ ) + { + maxRecursionDepth = maxRecursionDepth_; + return *this; + } + + RaytracingPipelineCreateInfoNVX& setLayout( PipelineLayout layout_ ) + { + layout = layout_; + return *this; + } + + RaytracingPipelineCreateInfoNVX& setBasePipelineHandle( Pipeline basePipelineHandle_ ) + { + basePipelineHandle = basePipelineHandle_; + return *this; + } + + RaytracingPipelineCreateInfoNVX& setBasePipelineIndex( int32_t basePipelineIndex_ ) + { + basePipelineIndex = basePipelineIndex_; + return *this; + } + + operator VkRaytracingPipelineCreateInfoNVX const&() const + { + return *reinterpret_cast<const VkRaytracingPipelineCreateInfoNVX*>(this); + } + + operator VkRaytracingPipelineCreateInfoNVX &() + { + return *reinterpret_cast<VkRaytracingPipelineCreateInfoNVX*>(this); + } + + bool operator==( RaytracingPipelineCreateInfoNVX const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( flags == rhs.flags ) + && ( stageCount == rhs.stageCount ) + && ( pStages == rhs.pStages ) + && ( pGroupNumbers == rhs.pGroupNumbers ) + && ( maxRecursionDepth == rhs.maxRecursionDepth ) + && ( layout == rhs.layout ) + && ( basePipelineHandle == rhs.basePipelineHandle ) + && ( basePipelineIndex == rhs.basePipelineIndex ); + } + + bool operator!=( RaytracingPipelineCreateInfoNVX const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::eRaytracingPipelineCreateInfoNVX; + + public: + const void* pNext = nullptr; + PipelineCreateFlags flags; + uint32_t stageCount; + const PipelineShaderStageCreateInfo* pStages; + const uint32_t* pGroupNumbers; + uint32_t maxRecursionDepth; + PipelineLayout layout; + Pipeline basePipelineHandle; + int32_t basePipelineIndex; + }; + static_assert( sizeof( RaytracingPipelineCreateInfoNVX ) == sizeof( VkRaytracingPipelineCreateInfoNVX ), "struct and wrapper have different size!" ); + enum class ColorComponentFlagBits { eR = VK_COLOR_COMPONENT_R_BIT, @@ -19636,11 +23575,16 @@ public: return *this; } - operator const VkPipelineColorBlendAttachmentState&() const + operator VkPipelineColorBlendAttachmentState const&() const { return *reinterpret_cast<const VkPipelineColorBlendAttachmentState*>(this); } + operator VkPipelineColorBlendAttachmentState &() + { + return *reinterpret_cast<VkPipelineColorBlendAttachmentState*>(this); + } + bool operator==( PipelineColorBlendAttachmentState const& rhs ) const { return ( blendEnable == rhs.blendEnable ) @@ -19738,11 +23682,16 @@ public: return *this; } - operator const VkPipelineColorBlendStateCreateInfo&() const + operator VkPipelineColorBlendStateCreateInfo const&() const { return *reinterpret_cast<const VkPipelineColorBlendStateCreateInfo*>(this); } + operator VkPipelineColorBlendStateCreateInfo &() + { + return *reinterpret_cast<VkPipelineColorBlendStateCreateInfo*>(this); + } + bool operator==( PipelineColorBlendStateCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -19828,11 +23777,16 @@ public: return *this; } - operator const VkFenceCreateInfo&() const + operator VkFenceCreateInfo const&() const { return *reinterpret_cast<const VkFenceCreateInfo*>(this); } + operator VkFenceCreateInfo &() + { + return *reinterpret_cast<VkFenceCreateInfo*>(this); + } + bool operator==( FenceCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -19913,11 +23867,16 @@ public: struct FormatProperties { - operator const VkFormatProperties&() const + operator VkFormatProperties const&() const { return *reinterpret_cast<const VkFormatProperties*>(this); } + operator VkFormatProperties &() + { + return *reinterpret_cast<VkFormatProperties*>(this); + } + bool operator==( FormatProperties const& rhs ) const { return ( linearTilingFeatures == rhs.linearTilingFeatures ) @@ -19938,11 +23897,16 @@ public: struct FormatProperties2 { - operator const VkFormatProperties2&() const + operator VkFormatProperties2 const&() const { return *reinterpret_cast<const VkFormatProperties2*>(this); } + operator VkFormatProperties2 &() + { + return *reinterpret_cast<VkFormatProperties2*>(this); + } + bool operator==( FormatProperties2 const& rhs ) const { return ( sType == rhs.sType ) @@ -20150,11 +24114,16 @@ public: return *this; } - operator const VkCommandBufferInheritanceInfo&() const + operator VkCommandBufferInheritanceInfo const&() const { return *reinterpret_cast<const VkCommandBufferInheritanceInfo*>(this); } + operator VkCommandBufferInheritanceInfo &() + { + return *reinterpret_cast<VkCommandBufferInheritanceInfo*>(this); + } + bool operator==( CommandBufferInheritanceInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -20223,11 +24192,16 @@ public: return *this; } - operator const VkCommandBufferBeginInfo&() const + operator VkCommandBufferBeginInfo const&() const { return *reinterpret_cast<const VkCommandBufferBeginInfo*>(this); } + operator VkCommandBufferBeginInfo &() + { + return *reinterpret_cast<VkCommandBufferBeginInfo*>(this); + } + bool operator==( CommandBufferBeginInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -20304,11 +24278,16 @@ public: return *this; } - operator const VkQueryPoolCreateInfo&() const + operator VkQueryPoolCreateInfo const&() const { return *reinterpret_cast<const VkQueryPoolCreateInfo*>(this); } + operator VkQueryPoolCreateInfo &() + { + return *reinterpret_cast<VkQueryPoolCreateInfo*>(this); + } + bool operator==( QueryPoolCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -20409,11 +24388,16 @@ public: return *this; } - operator const VkImageSubresource&() const + operator VkImageSubresource const&() const { return *reinterpret_cast<const VkImageSubresource*>(this); } + operator VkImageSubresource &() + { + return *reinterpret_cast<VkImageSubresource*>(this); + } + bool operator==( ImageSubresource const& rhs ) const { return ( aspectMask == rhs.aspectMask ) @@ -20479,11 +24463,16 @@ public: return *this; } - operator const VkImageSubresourceLayers&() const + operator VkImageSubresourceLayers const&() const { return *reinterpret_cast<const VkImageSubresourceLayers*>(this); } + operator VkImageSubresourceLayers &() + { + return *reinterpret_cast<VkImageSubresourceLayers*>(this); + } + bool operator==( ImageSubresourceLayers const& rhs ) const { return ( aspectMask == rhs.aspectMask ) @@ -20559,11 +24548,16 @@ public: return *this; } - operator const VkImageSubresourceRange&() const + operator VkImageSubresourceRange const&() const { return *reinterpret_cast<const VkImageSubresourceRange*>(this); } + operator VkImageSubresourceRange &() + { + return *reinterpret_cast<VkImageSubresourceRange*>(this); + } + bool operator==( ImageSubresourceRange const& rhs ) const { return ( aspectMask == rhs.aspectMask ) @@ -20671,11 +24665,16 @@ public: return *this; } - operator const VkImageMemoryBarrier&() const + operator VkImageMemoryBarrier const&() const { return *reinterpret_cast<const VkImageMemoryBarrier*>(this); } + operator VkImageMemoryBarrier &() + { + return *reinterpret_cast<VkImageMemoryBarrier*>(this); + } + bool operator==( ImageMemoryBarrier const& rhs ) const { return ( sType == rhs.sType ) @@ -20780,11 +24779,16 @@ public: return *this; } - operator const VkImageViewCreateInfo&() const + operator VkImageViewCreateInfo const&() const { return *reinterpret_cast<const VkImageViewCreateInfo*>(this); } + operator VkImageViewCreateInfo &() + { + return *reinterpret_cast<VkImageViewCreateInfo*>(this); + } + bool operator==( ImageViewCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -20871,11 +24875,16 @@ public: return *this; } - operator const VkImageCopy&() const + operator VkImageCopy const&() const { return *reinterpret_cast<const VkImageCopy*>(this); } + operator VkImageCopy &() + { + return *reinterpret_cast<VkImageCopy*>(this); + } + bool operator==( ImageCopy const& rhs ) const { return ( srcSubresource == rhs.srcSubresource ) @@ -20945,11 +24954,16 @@ public: return *this; } - operator const VkImageBlit&() const + operator VkImageBlit const&() const { return *reinterpret_cast<const VkImageBlit*>(this); } + operator VkImageBlit &() + { + return *reinterpret_cast<VkImageBlit*>(this); + } + bool operator==( ImageBlit const& rhs ) const { return ( srcSubresource == rhs.srcSubresource ) @@ -21033,11 +25047,16 @@ public: return *this; } - operator const VkBufferImageCopy&() const + operator VkBufferImageCopy const&() const { return *reinterpret_cast<const VkBufferImageCopy*>(this); } + operator VkBufferImageCopy &() + { + return *reinterpret_cast<VkBufferImageCopy*>(this); + } + bool operator==( BufferImageCopy const& rhs ) const { return ( bufferOffset == rhs.bufferOffset ) @@ -21117,11 +25136,16 @@ public: return *this; } - operator const VkImageResolve&() const + operator VkImageResolve const&() const { return *reinterpret_cast<const VkImageResolve*>(this); } + operator VkImageResolve &() + { + return *reinterpret_cast<VkImageResolve*>(this); + } + bool operator==( ImageResolve const& rhs ) const { return ( srcSubresource == rhs.srcSubresource ) @@ -21183,11 +25207,16 @@ public: return *this; } - operator const VkClearAttachment&() const + operator VkClearAttachment const&() const { return *reinterpret_cast<const VkClearAttachment*>(this); } + operator VkClearAttachment &() + { + return *reinterpret_cast<VkClearAttachment*>(this); + } + ImageAspectFlags aspectMask; uint32_t colorAttachment; ClearValue clearValue; @@ -21233,11 +25262,16 @@ public: return *this; } - operator const VkInputAttachmentAspectReference&() const + operator VkInputAttachmentAspectReference const&() const { return *reinterpret_cast<const VkInputAttachmentAspectReference*>(this); } + operator VkInputAttachmentAspectReference &() + { + return *reinterpret_cast<VkInputAttachmentAspectReference*>(this); + } + bool operator==( InputAttachmentAspectReference const& rhs ) const { return ( subpass == rhs.subpass ) @@ -21295,11 +25329,16 @@ public: return *this; } - operator const VkRenderPassInputAttachmentAspectCreateInfo&() const + operator VkRenderPassInputAttachmentAspectCreateInfo const&() const { return *reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo*>(this); } + operator VkRenderPassInputAttachmentAspectCreateInfo &() + { + return *reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>(this); + } + bool operator==( RenderPassInputAttachmentAspectCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -21354,11 +25393,16 @@ public: return *this; } - operator const VkBindImagePlaneMemoryInfo&() const + operator VkBindImagePlaneMemoryInfo const&() const { return *reinterpret_cast<const VkBindImagePlaneMemoryInfo*>(this); } + operator VkBindImagePlaneMemoryInfo &() + { + return *reinterpret_cast<VkBindImagePlaneMemoryInfo*>(this); + } + bool operator==( BindImagePlaneMemoryInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -21411,11 +25455,16 @@ public: return *this; } - operator const VkImagePlaneMemoryRequirementsInfo&() const + operator VkImagePlaneMemoryRequirementsInfo const&() const { return *reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo*>(this); } + operator VkImagePlaneMemoryRequirementsInfo &() + { + return *reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>(this); + } + bool operator==( ImagePlaneMemoryRequirementsInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -21439,6 +25488,86 @@ public: using ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo; + struct AttachmentReference2KHR + { + AttachmentReference2KHR( uint32_t attachment_ = 0, + ImageLayout layout_ = ImageLayout::eUndefined, + ImageAspectFlags aspectMask_ = ImageAspectFlags() ) + : attachment( attachment_ ) + , layout( layout_ ) + , aspectMask( aspectMask_ ) + { + } + + AttachmentReference2KHR( VkAttachmentReference2KHR const & rhs ) + { + memcpy( this, &rhs, sizeof( AttachmentReference2KHR ) ); + } + + AttachmentReference2KHR& operator=( VkAttachmentReference2KHR const & rhs ) + { + memcpy( this, &rhs, sizeof( AttachmentReference2KHR ) ); + return *this; + } + AttachmentReference2KHR& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + AttachmentReference2KHR& setAttachment( uint32_t attachment_ ) + { + attachment = attachment_; + return *this; + } + + AttachmentReference2KHR& setLayout( ImageLayout layout_ ) + { + layout = layout_; + return *this; + } + + AttachmentReference2KHR& setAspectMask( ImageAspectFlags aspectMask_ ) + { + aspectMask = aspectMask_; + return *this; + } + + operator VkAttachmentReference2KHR const&() const + { + return *reinterpret_cast<const VkAttachmentReference2KHR*>(this); + } + + operator VkAttachmentReference2KHR &() + { + return *reinterpret_cast<VkAttachmentReference2KHR*>(this); + } + + bool operator==( AttachmentReference2KHR const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( attachment == rhs.attachment ) + && ( layout == rhs.layout ) + && ( aspectMask == rhs.aspectMask ); + } + + bool operator!=( AttachmentReference2KHR const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::eAttachmentReference2KHR; + + public: + const void* pNext = nullptr; + uint32_t attachment; + ImageLayout layout; + ImageAspectFlags aspectMask; + }; + static_assert( sizeof( AttachmentReference2KHR ) == sizeof( VkAttachmentReference2KHR ), "struct and wrapper have different size!" ); + enum class SparseImageFormatFlagBits { eSingleMiptail = VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT, @@ -21468,11 +25597,16 @@ public: struct SparseImageFormatProperties { - operator const VkSparseImageFormatProperties&() const + operator VkSparseImageFormatProperties const&() const { return *reinterpret_cast<const VkSparseImageFormatProperties*>(this); } + operator VkSparseImageFormatProperties &() + { + return *reinterpret_cast<VkSparseImageFormatProperties*>(this); + } + bool operator==( SparseImageFormatProperties const& rhs ) const { return ( aspectMask == rhs.aspectMask ) @@ -21493,11 +25627,16 @@ public: struct SparseImageMemoryRequirements { - operator const VkSparseImageMemoryRequirements&() const + operator VkSparseImageMemoryRequirements const&() const { return *reinterpret_cast<const VkSparseImageMemoryRequirements*>(this); } + operator VkSparseImageMemoryRequirements &() + { + return *reinterpret_cast<VkSparseImageMemoryRequirements*>(this); + } + bool operator==( SparseImageMemoryRequirements const& rhs ) const { return ( formatProperties == rhs.formatProperties ) @@ -21522,11 +25661,16 @@ public: struct SparseImageFormatProperties2 { - operator const VkSparseImageFormatProperties2&() const + operator VkSparseImageFormatProperties2 const&() const { return *reinterpret_cast<const VkSparseImageFormatProperties2*>(this); } + operator VkSparseImageFormatProperties2 &() + { + return *reinterpret_cast<VkSparseImageFormatProperties2*>(this); + } + bool operator==( SparseImageFormatProperties2 const& rhs ) const { return ( sType == rhs.sType ) @@ -21552,11 +25696,16 @@ public: struct SparseImageMemoryRequirements2 { - operator const VkSparseImageMemoryRequirements2&() const + operator VkSparseImageMemoryRequirements2 const&() const { return *reinterpret_cast<const VkSparseImageMemoryRequirements2*>(this); } + operator VkSparseImageMemoryRequirements2 &() + { + return *reinterpret_cast<VkSparseImageMemoryRequirements2*>(this); + } + bool operator==( SparseImageMemoryRequirements2 const& rhs ) const { return ( sType == rhs.sType ) @@ -21660,11 +25809,16 @@ public: return *this; } - operator const VkSparseMemoryBind&() const + operator VkSparseMemoryBind const&() const { return *reinterpret_cast<const VkSparseMemoryBind*>(this); } + operator VkSparseMemoryBind &() + { + return *reinterpret_cast<VkSparseMemoryBind*>(this); + } + bool operator==( SparseMemoryBind const& rhs ) const { return ( resourceOffset == rhs.resourceOffset ) @@ -21750,11 +25904,16 @@ public: return *this; } - operator const VkSparseImageMemoryBind&() const + operator VkSparseImageMemoryBind const&() const { return *reinterpret_cast<const VkSparseImageMemoryBind*>(this); } + operator VkSparseImageMemoryBind &() + { + return *reinterpret_cast<VkSparseImageMemoryBind*>(this); + } + bool operator==( SparseImageMemoryBind const& rhs ) const { return ( subresource == rhs.subresource ) @@ -21818,11 +25977,16 @@ public: return *this; } - operator const VkSparseBufferMemoryBindInfo&() const + operator VkSparseBufferMemoryBindInfo const&() const { return *reinterpret_cast<const VkSparseBufferMemoryBindInfo*>(this); } + operator VkSparseBufferMemoryBindInfo &() + { + return *reinterpret_cast<VkSparseBufferMemoryBindInfo*>(this); + } + bool operator==( SparseBufferMemoryBindInfo const& rhs ) const { return ( buffer == rhs.buffer ) @@ -21880,11 +26044,16 @@ public: return *this; } - operator const VkSparseImageOpaqueMemoryBindInfo&() const + operator VkSparseImageOpaqueMemoryBindInfo const&() const { return *reinterpret_cast<const VkSparseImageOpaqueMemoryBindInfo*>(this); } + operator VkSparseImageOpaqueMemoryBindInfo &() + { + return *reinterpret_cast<VkSparseImageOpaqueMemoryBindInfo*>(this); + } + bool operator==( SparseImageOpaqueMemoryBindInfo const& rhs ) const { return ( image == rhs.image ) @@ -21942,11 +26111,16 @@ public: return *this; } - operator const VkSparseImageMemoryBindInfo&() const + operator VkSparseImageMemoryBindInfo const&() const { return *reinterpret_cast<const VkSparseImageMemoryBindInfo*>(this); } + operator VkSparseImageMemoryBindInfo &() + { + return *reinterpret_cast<VkSparseImageMemoryBindInfo*>(this); + } + bool operator==( SparseImageMemoryBindInfo const& rhs ) const { return ( image == rhs.image ) @@ -22066,11 +26240,16 @@ public: return *this; } - operator const VkBindSparseInfo&() const + operator VkBindSparseInfo const&() const { return *reinterpret_cast<const VkBindSparseInfo*>(this); } + operator VkBindSparseInfo &() + { + return *reinterpret_cast<VkBindSparseInfo*>(this); + } + bool operator==( BindSparseInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -22129,7 +26308,12 @@ public: eHost = VK_PIPELINE_STAGE_HOST_BIT, eAllGraphics = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, eAllCommands = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, - eCommandProcessNVX = VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX + eConditionalRenderingEXT = VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT, + eCommandProcessNVX = VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX, + eShadingRateImageNV = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV, + eRaytracingNVX = VK_PIPELINE_STAGE_RAYTRACING_BIT_NVX, + eTaskShaderNV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV, + eMeshShaderNV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV }; using PipelineStageFlags = Flags<PipelineStageFlagBits, VkPipelineStageFlags>; @@ -22148,10 +26332,78 @@ public: { enum { - allFlags = VkFlags(PipelineStageFlagBits::eTopOfPipe) | VkFlags(PipelineStageFlagBits::eDrawIndirect) | VkFlags(PipelineStageFlagBits::eVertexInput) | VkFlags(PipelineStageFlagBits::eVertexShader) | VkFlags(PipelineStageFlagBits::eTessellationControlShader) | VkFlags(PipelineStageFlagBits::eTessellationEvaluationShader) | VkFlags(PipelineStageFlagBits::eGeometryShader) | VkFlags(PipelineStageFlagBits::eFragmentShader) | VkFlags(PipelineStageFlagBits::eEarlyFragmentTests) | VkFlags(PipelineStageFlagBits::eLateFragmentTests) | VkFlags(PipelineStageFlagBits::eColorAttachmentOutput) | VkFlags(PipelineStageFlagBits::eComputeShader) | VkFlags(PipelineStageFlagBits::eTransfer) | VkFlags(PipelineStageFlagBits::eBottomOfPipe) | VkFlags(PipelineStageFlagBits::eHost) | VkFlags(PipelineStageFlagBits::eAllGraphics) | VkFlags(PipelineStageFlagBits::eAllCommands) | VkFlags(PipelineStageFlagBits::eCommandProcessNVX) + allFlags = VkFlags(PipelineStageFlagBits::eTopOfPipe) | VkFlags(PipelineStageFlagBits::eDrawIndirect) | VkFlags(PipelineStageFlagBits::eVertexInput) | VkFlags(PipelineStageFlagBits::eVertexShader) | VkFlags(PipelineStageFlagBits::eTessellationControlShader) | VkFlags(PipelineStageFlagBits::eTessellationEvaluationShader) | VkFlags(PipelineStageFlagBits::eGeometryShader) | VkFlags(PipelineStageFlagBits::eFragmentShader) | VkFlags(PipelineStageFlagBits::eEarlyFragmentTests) | VkFlags(PipelineStageFlagBits::eLateFragmentTests) | VkFlags(PipelineStageFlagBits::eColorAttachmentOutput) | VkFlags(PipelineStageFlagBits::eComputeShader) | VkFlags(PipelineStageFlagBits::eTransfer) | VkFlags(PipelineStageFlagBits::eBottomOfPipe) | VkFlags(PipelineStageFlagBits::eHost) | VkFlags(PipelineStageFlagBits::eAllGraphics) | VkFlags(PipelineStageFlagBits::eAllCommands) | VkFlags(PipelineStageFlagBits::eConditionalRenderingEXT) | VkFlags(PipelineStageFlagBits::eCommandProcessNVX) | VkFlags(PipelineStageFlagBits::eShadingRateImageNV) | VkFlags(PipelineStageFlagBits::eRaytracingNVX) | VkFlags(PipelineStageFlagBits::eTaskShaderNV) | VkFlags(PipelineStageFlagBits::eMeshShaderNV) }; }; + struct QueueFamilyCheckpointPropertiesNV + { + operator VkQueueFamilyCheckpointPropertiesNV const&() const + { + return *reinterpret_cast<const VkQueueFamilyCheckpointPropertiesNV*>(this); + } + + operator VkQueueFamilyCheckpointPropertiesNV &() + { + return *reinterpret_cast<VkQueueFamilyCheckpointPropertiesNV*>(this); + } + + bool operator==( QueueFamilyCheckpointPropertiesNV const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( checkpointExecutionStageMask == rhs.checkpointExecutionStageMask ); + } + + bool operator!=( QueueFamilyCheckpointPropertiesNV const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::eQueueFamilyCheckpointPropertiesNV; + + public: + void* pNext = nullptr; + PipelineStageFlags checkpointExecutionStageMask; + }; + static_assert( sizeof( QueueFamilyCheckpointPropertiesNV ) == sizeof( VkQueueFamilyCheckpointPropertiesNV ), "struct and wrapper have different size!" ); + + struct CheckpointDataNV + { + operator VkCheckpointDataNV const&() const + { + return *reinterpret_cast<const VkCheckpointDataNV*>(this); + } + + operator VkCheckpointDataNV &() + { + return *reinterpret_cast<VkCheckpointDataNV*>(this); + } + + bool operator==( CheckpointDataNV const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( stage == rhs.stage ) + && ( pCheckpointMarker == rhs.pCheckpointMarker ); + } + + bool operator!=( CheckpointDataNV const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::eCheckpointDataNV; + + public: + void* pNext = nullptr; + PipelineStageFlagBits stage; + void* pCheckpointMarker; + }; + static_assert( sizeof( CheckpointDataNV ) == sizeof( VkCheckpointDataNV ), "struct and wrapper have different size!" ); + enum class CommandPoolCreateFlagBits { eTransient = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT, @@ -22216,11 +26468,16 @@ public: return *this; } - operator const VkCommandPoolCreateInfo&() const + operator VkCommandPoolCreateInfo const&() const { return *reinterpret_cast<const VkCommandPoolCreateInfo*>(this); } + operator VkCommandPoolCreateInfo &() + { + return *reinterpret_cast<VkCommandPoolCreateInfo*>(this); + } + bool operator==( CommandPoolCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -22327,11 +26584,16 @@ public: struct ImageFormatProperties { - operator const VkImageFormatProperties&() const + operator VkImageFormatProperties const&() const { return *reinterpret_cast<const VkImageFormatProperties*>(this); } + operator VkImageFormatProperties &() + { + return *reinterpret_cast<VkImageFormatProperties*>(this); + } + bool operator==( ImageFormatProperties const& rhs ) const { return ( maxExtent == rhs.maxExtent ) @@ -22479,11 +26741,16 @@ public: return *this; } - operator const VkImageCreateInfo&() const + operator VkImageCreateInfo const&() const { return *reinterpret_cast<const VkImageCreateInfo*>(this); } + operator VkImageCreateInfo &() + { + return *reinterpret_cast<VkImageCreateInfo*>(this); + } + bool operator==( ImageCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -22606,11 +26873,16 @@ public: return *this; } - operator const VkPipelineMultisampleStateCreateInfo&() const + operator VkPipelineMultisampleStateCreateInfo const&() const { return *reinterpret_cast<const VkPipelineMultisampleStateCreateInfo*>(this); } + operator VkPipelineMultisampleStateCreateInfo &() + { + return *reinterpret_cast<VkPipelineMultisampleStateCreateInfo*>(this); + } + bool operator==( PipelineMultisampleStateCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -22801,11 +27073,16 @@ public: return *this; } - operator const VkGraphicsPipelineCreateInfo&() const + operator VkGraphicsPipelineCreateInfo const&() const { return *reinterpret_cast<const VkGraphicsPipelineCreateInfo*>(this); } + operator VkGraphicsPipelineCreateInfo &() + { + return *reinterpret_cast<VkGraphicsPipelineCreateInfo*>(this); + } + bool operator==( GraphicsPipelineCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -22861,11 +27138,16 @@ public: struct PhysicalDeviceLimits { - operator const VkPhysicalDeviceLimits&() const + operator VkPhysicalDeviceLimits const&() const { return *reinterpret_cast<const VkPhysicalDeviceLimits*>(this); } + operator VkPhysicalDeviceLimits &() + { + return *reinterpret_cast<VkPhysicalDeviceLimits*>(this); + } + bool operator==( PhysicalDeviceLimits const& rhs ) const { return ( maxImageDimension1D == rhs.maxImageDimension1D ) @@ -23092,11 +27374,16 @@ public: struct PhysicalDeviceProperties { - operator const VkPhysicalDeviceProperties&() const + operator VkPhysicalDeviceProperties const&() const { return *reinterpret_cast<const VkPhysicalDeviceProperties*>(this); } + operator VkPhysicalDeviceProperties &() + { + return *reinterpret_cast<VkPhysicalDeviceProperties*>(this); + } + bool operator==( PhysicalDeviceProperties const& rhs ) const { return ( apiVersion == rhs.apiVersion ) @@ -23129,11 +27416,16 @@ public: struct PhysicalDeviceProperties2 { - operator const VkPhysicalDeviceProperties2&() const + operator VkPhysicalDeviceProperties2 const&() const { return *reinterpret_cast<const VkPhysicalDeviceProperties2*>(this); } + operator VkPhysicalDeviceProperties2 &() + { + return *reinterpret_cast<VkPhysicalDeviceProperties2*>(this); + } + bool operator==( PhysicalDeviceProperties2 const& rhs ) const { return ( sType == rhs.sType ) @@ -23159,11 +27451,16 @@ public: struct ImageFormatProperties2 { - operator const VkImageFormatProperties2&() const + operator VkImageFormatProperties2 const&() const { return *reinterpret_cast<const VkImageFormatProperties2*>(this); } + operator VkImageFormatProperties2 &() + { + return *reinterpret_cast<VkImageFormatProperties2*>(this); + } + bool operator==( ImageFormatProperties2 const& rhs ) const { return ( sType == rhs.sType ) @@ -23248,11 +27545,16 @@ public: return *this; } - operator const VkPhysicalDeviceSparseImageFormatInfo2&() const + operator VkPhysicalDeviceSparseImageFormatInfo2 const&() const { return *reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>(this); } + operator VkPhysicalDeviceSparseImageFormatInfo2 &() + { + return *reinterpret_cast<VkPhysicalDeviceSparseImageFormatInfo2*>(this); + } + bool operator==( PhysicalDeviceSparseImageFormatInfo2 const& rhs ) const { return ( sType == rhs.sType ) @@ -23337,11 +27639,16 @@ public: return *this; } - operator const VkSampleLocationsInfoEXT&() const + operator VkSampleLocationsInfoEXT const&() const { return *reinterpret_cast<const VkSampleLocationsInfoEXT*>(this); } + operator VkSampleLocationsInfoEXT &() + { + return *reinterpret_cast<VkSampleLocationsInfoEXT*>(this); + } + bool operator==( SampleLocationsInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -23400,11 +27707,16 @@ public: return *this; } - operator const VkAttachmentSampleLocationsEXT&() const + operator VkAttachmentSampleLocationsEXT const&() const { return *reinterpret_cast<const VkAttachmentSampleLocationsEXT*>(this); } + operator VkAttachmentSampleLocationsEXT &() + { + return *reinterpret_cast<VkAttachmentSampleLocationsEXT*>(this); + } + bool operator==( AttachmentSampleLocationsEXT const& rhs ) const { return ( attachmentIndex == rhs.attachmentIndex ) @@ -23452,11 +27764,16 @@ public: return *this; } - operator const VkSubpassSampleLocationsEXT&() const + operator VkSubpassSampleLocationsEXT const&() const { return *reinterpret_cast<const VkSubpassSampleLocationsEXT*>(this); } + operator VkSubpassSampleLocationsEXT &() + { + return *reinterpret_cast<VkSubpassSampleLocationsEXT*>(this); + } + bool operator==( SubpassSampleLocationsEXT const& rhs ) const { return ( subpassIndex == rhs.subpassIndex ) @@ -23526,11 +27843,16 @@ public: return *this; } - operator const VkRenderPassSampleLocationsBeginInfoEXT&() const + operator VkRenderPassSampleLocationsBeginInfoEXT const&() const { return *reinterpret_cast<const VkRenderPassSampleLocationsBeginInfoEXT*>(this); } + operator VkRenderPassSampleLocationsBeginInfoEXT &() + { + return *reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT*>(this); + } + bool operator==( RenderPassSampleLocationsBeginInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -23595,11 +27917,16 @@ public: return *this; } - operator const VkPipelineSampleLocationsStateCreateInfoEXT&() const + operator VkPipelineSampleLocationsStateCreateInfoEXT const&() const { return *reinterpret_cast<const VkPipelineSampleLocationsStateCreateInfoEXT*>(this); } + operator VkPipelineSampleLocationsStateCreateInfoEXT &() + { + return *reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT*>(this); + } + bool operator==( PipelineSampleLocationsStateCreateInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -23625,11 +27952,16 @@ public: struct PhysicalDeviceSampleLocationsPropertiesEXT { - operator const VkPhysicalDeviceSampleLocationsPropertiesEXT&() const + operator VkPhysicalDeviceSampleLocationsPropertiesEXT const&() const { return *reinterpret_cast<const VkPhysicalDeviceSampleLocationsPropertiesEXT*>(this); } + operator VkPhysicalDeviceSampleLocationsPropertiesEXT &() + { + return *reinterpret_cast<VkPhysicalDeviceSampleLocationsPropertiesEXT*>(this); + } + bool operator==( PhysicalDeviceSampleLocationsPropertiesEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -23771,11 +28103,16 @@ public: return *this; } - operator const VkAttachmentDescription&() const + operator VkAttachmentDescription const&() const { return *reinterpret_cast<const VkAttachmentDescription*>(this); } + operator VkAttachmentDescription &() + { + return *reinterpret_cast<VkAttachmentDescription*>(this); + } + bool operator==( AttachmentDescription const& rhs ) const { return ( flags == rhs.flags ) @@ -23806,6 +28143,146 @@ public: }; static_assert( sizeof( AttachmentDescription ) == sizeof( VkAttachmentDescription ), "struct and wrapper have different size!" ); + struct AttachmentDescription2KHR + { + AttachmentDescription2KHR( AttachmentDescriptionFlags flags_ = AttachmentDescriptionFlags(), + Format format_ = Format::eUndefined, + SampleCountFlagBits samples_ = SampleCountFlagBits::e1, + AttachmentLoadOp loadOp_ = AttachmentLoadOp::eLoad, + AttachmentStoreOp storeOp_ = AttachmentStoreOp::eStore, + AttachmentLoadOp stencilLoadOp_ = AttachmentLoadOp::eLoad, + AttachmentStoreOp stencilStoreOp_ = AttachmentStoreOp::eStore, + ImageLayout initialLayout_ = ImageLayout::eUndefined, + ImageLayout finalLayout_ = ImageLayout::eUndefined ) + : flags( flags_ ) + , format( format_ ) + , samples( samples_ ) + , loadOp( loadOp_ ) + , storeOp( storeOp_ ) + , stencilLoadOp( stencilLoadOp_ ) + , stencilStoreOp( stencilStoreOp_ ) + , initialLayout( initialLayout_ ) + , finalLayout( finalLayout_ ) + { + } + + AttachmentDescription2KHR( VkAttachmentDescription2KHR const & rhs ) + { + memcpy( this, &rhs, sizeof( AttachmentDescription2KHR ) ); + } + + AttachmentDescription2KHR& operator=( VkAttachmentDescription2KHR const & rhs ) + { + memcpy( this, &rhs, sizeof( AttachmentDescription2KHR ) ); + return *this; + } + AttachmentDescription2KHR& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + AttachmentDescription2KHR& setFlags( AttachmentDescriptionFlags flags_ ) + { + flags = flags_; + return *this; + } + + AttachmentDescription2KHR& setFormat( Format format_ ) + { + format = format_; + return *this; + } + + AttachmentDescription2KHR& setSamples( SampleCountFlagBits samples_ ) + { + samples = samples_; + return *this; + } + + AttachmentDescription2KHR& setLoadOp( AttachmentLoadOp loadOp_ ) + { + loadOp = loadOp_; + return *this; + } + + AttachmentDescription2KHR& setStoreOp( AttachmentStoreOp storeOp_ ) + { + storeOp = storeOp_; + return *this; + } + + AttachmentDescription2KHR& setStencilLoadOp( AttachmentLoadOp stencilLoadOp_ ) + { + stencilLoadOp = stencilLoadOp_; + return *this; + } + + AttachmentDescription2KHR& setStencilStoreOp( AttachmentStoreOp stencilStoreOp_ ) + { + stencilStoreOp = stencilStoreOp_; + return *this; + } + + AttachmentDescription2KHR& setInitialLayout( ImageLayout initialLayout_ ) + { + initialLayout = initialLayout_; + return *this; + } + + AttachmentDescription2KHR& setFinalLayout( ImageLayout finalLayout_ ) + { + finalLayout = finalLayout_; + return *this; + } + + operator VkAttachmentDescription2KHR const&() const + { + return *reinterpret_cast<const VkAttachmentDescription2KHR*>(this); + } + + operator VkAttachmentDescription2KHR &() + { + return *reinterpret_cast<VkAttachmentDescription2KHR*>(this); + } + + bool operator==( AttachmentDescription2KHR const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( flags == rhs.flags ) + && ( format == rhs.format ) + && ( samples == rhs.samples ) + && ( loadOp == rhs.loadOp ) + && ( storeOp == rhs.storeOp ) + && ( stencilLoadOp == rhs.stencilLoadOp ) + && ( stencilStoreOp == rhs.stencilStoreOp ) + && ( initialLayout == rhs.initialLayout ) + && ( finalLayout == rhs.finalLayout ); + } + + bool operator!=( AttachmentDescription2KHR const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::eAttachmentDescription2KHR; + + public: + const void* pNext = nullptr; + AttachmentDescriptionFlags flags; + Format format; + SampleCountFlagBits samples; + AttachmentLoadOp loadOp; + AttachmentStoreOp storeOp; + AttachmentLoadOp stencilLoadOp; + AttachmentStoreOp stencilStoreOp; + ImageLayout initialLayout; + ImageLayout finalLayout; + }; + static_assert( sizeof( AttachmentDescription2KHR ) == sizeof( VkAttachmentDescription2KHR ), "struct and wrapper have different size!" ); + enum class StencilFaceFlagBits { eFront = VK_STENCIL_FACE_FRONT_BIT, @@ -23912,11 +28389,16 @@ public: return *this; } - operator const VkDescriptorPoolCreateInfo&() const + operator VkDescriptorPoolCreateInfo const&() const { return *reinterpret_cast<const VkDescriptorPoolCreateInfo*>(this); } + operator VkDescriptorPoolCreateInfo &() + { + return *reinterpret_cast<VkDescriptorPoolCreateInfo*>(this); + } + bool operator==( DescriptorPoolCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -24044,11 +28526,16 @@ public: return *this; } - operator const VkSubpassDependency&() const + operator VkSubpassDependency const&() const { return *reinterpret_cast<const VkSubpassDependency*>(this); } + operator VkSubpassDependency &() + { + return *reinterpret_cast<VkSubpassDependency*>(this); + } + bool operator==( SubpassDependency const& rhs ) const { return ( srcSubpass == rhs.srcSubpass ) @@ -24075,6 +28562,136 @@ public: }; static_assert( sizeof( SubpassDependency ) == sizeof( VkSubpassDependency ), "struct and wrapper have different size!" ); + struct SubpassDependency2KHR + { + SubpassDependency2KHR( uint32_t srcSubpass_ = 0, + uint32_t dstSubpass_ = 0, + PipelineStageFlags srcStageMask_ = PipelineStageFlags(), + PipelineStageFlags dstStageMask_ = PipelineStageFlags(), + AccessFlags srcAccessMask_ = AccessFlags(), + AccessFlags dstAccessMask_ = AccessFlags(), + DependencyFlags dependencyFlags_ = DependencyFlags(), + int32_t viewOffset_ = 0 ) + : srcSubpass( srcSubpass_ ) + , dstSubpass( dstSubpass_ ) + , srcStageMask( srcStageMask_ ) + , dstStageMask( dstStageMask_ ) + , srcAccessMask( srcAccessMask_ ) + , dstAccessMask( dstAccessMask_ ) + , dependencyFlags( dependencyFlags_ ) + , viewOffset( viewOffset_ ) + { + } + + SubpassDependency2KHR( VkSubpassDependency2KHR const & rhs ) + { + memcpy( this, &rhs, sizeof( SubpassDependency2KHR ) ); + } + + SubpassDependency2KHR& operator=( VkSubpassDependency2KHR const & rhs ) + { + memcpy( this, &rhs, sizeof( SubpassDependency2KHR ) ); + return *this; + } + SubpassDependency2KHR& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + SubpassDependency2KHR& setSrcSubpass( uint32_t srcSubpass_ ) + { + srcSubpass = srcSubpass_; + return *this; + } + + SubpassDependency2KHR& setDstSubpass( uint32_t dstSubpass_ ) + { + dstSubpass = dstSubpass_; + return *this; + } + + SubpassDependency2KHR& setSrcStageMask( PipelineStageFlags srcStageMask_ ) + { + srcStageMask = srcStageMask_; + return *this; + } + + SubpassDependency2KHR& setDstStageMask( PipelineStageFlags dstStageMask_ ) + { + dstStageMask = dstStageMask_; + return *this; + } + + SubpassDependency2KHR& setSrcAccessMask( AccessFlags srcAccessMask_ ) + { + srcAccessMask = srcAccessMask_; + return *this; + } + + SubpassDependency2KHR& setDstAccessMask( AccessFlags dstAccessMask_ ) + { + dstAccessMask = dstAccessMask_; + return *this; + } + + SubpassDependency2KHR& setDependencyFlags( DependencyFlags dependencyFlags_ ) + { + dependencyFlags = dependencyFlags_; + return *this; + } + + SubpassDependency2KHR& setViewOffset( int32_t viewOffset_ ) + { + viewOffset = viewOffset_; + return *this; + } + + operator VkSubpassDependency2KHR const&() const + { + return *reinterpret_cast<const VkSubpassDependency2KHR*>(this); + } + + operator VkSubpassDependency2KHR &() + { + return *reinterpret_cast<VkSubpassDependency2KHR*>(this); + } + + bool operator==( SubpassDependency2KHR const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( srcSubpass == rhs.srcSubpass ) + && ( dstSubpass == rhs.dstSubpass ) + && ( srcStageMask == rhs.srcStageMask ) + && ( dstStageMask == rhs.dstStageMask ) + && ( srcAccessMask == rhs.srcAccessMask ) + && ( dstAccessMask == rhs.dstAccessMask ) + && ( dependencyFlags == rhs.dependencyFlags ) + && ( viewOffset == rhs.viewOffset ); + } + + bool operator!=( SubpassDependency2KHR const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::eSubpassDependency2KHR; + + public: + const void* pNext = nullptr; + uint32_t srcSubpass; + uint32_t dstSubpass; + PipelineStageFlags srcStageMask; + PipelineStageFlags dstStageMask; + AccessFlags srcAccessMask; + AccessFlags dstAccessMask; + DependencyFlags dependencyFlags; + int32_t viewOffset; + }; + static_assert( sizeof( SubpassDependency2KHR ) == sizeof( VkSubpassDependency2KHR ), "struct and wrapper have different size!" ); + enum class PresentModeKHR { eImmediate = VK_PRESENT_MODE_IMMEDIATE_KHR, @@ -24088,6 +28705,7 @@ public: enum class ColorSpaceKHR { eSrgbNonlinear = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, + eVkColorspaceSrgbNonlinear = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, eDisplayP3NonlinearEXT = VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT, eExtendedSrgbLinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT, eDciP3LinearEXT = VK_COLOR_SPACE_DCI_P3_LINEAR_EXT, @@ -24106,11 +28724,16 @@ public: struct SurfaceFormatKHR { - operator const VkSurfaceFormatKHR&() const + operator VkSurfaceFormatKHR const&() const { return *reinterpret_cast<const VkSurfaceFormatKHR*>(this); } + operator VkSurfaceFormatKHR &() + { + return *reinterpret_cast<VkSurfaceFormatKHR*>(this); + } + bool operator==( SurfaceFormatKHR const& rhs ) const { return ( format == rhs.format ) @@ -24129,11 +28752,16 @@ public: struct SurfaceFormat2KHR { - operator const VkSurfaceFormat2KHR&() const + operator VkSurfaceFormat2KHR const&() const { return *reinterpret_cast<const VkSurfaceFormat2KHR*>(this); } + operator VkSurfaceFormat2KHR &() + { + return *reinterpret_cast<VkSurfaceFormat2KHR*>(this); + } + bool operator==( SurfaceFormat2KHR const& rhs ) const { return ( sType == rhs.sType ) @@ -24185,11 +28813,16 @@ public: struct DisplayPlaneCapabilitiesKHR { - operator const VkDisplayPlaneCapabilitiesKHR&() const + operator VkDisplayPlaneCapabilitiesKHR const&() const { return *reinterpret_cast<const VkDisplayPlaneCapabilitiesKHR*>(this); } + operator VkDisplayPlaneCapabilitiesKHR &() + { + return *reinterpret_cast<VkDisplayPlaneCapabilitiesKHR*>(this); + } + bool operator==( DisplayPlaneCapabilitiesKHR const& rhs ) const { return ( supportedAlpha == rhs.supportedAlpha ) @@ -24222,11 +28855,16 @@ public: struct DisplayPlaneCapabilities2KHR { - operator const VkDisplayPlaneCapabilities2KHR&() const + operator VkDisplayPlaneCapabilities2KHR const&() const { return *reinterpret_cast<const VkDisplayPlaneCapabilities2KHR*>(this); } + operator VkDisplayPlaneCapabilities2KHR &() + { + return *reinterpret_cast<VkDisplayPlaneCapabilities2KHR*>(this); + } + bool operator==( DisplayPlaneCapabilities2KHR const& rhs ) const { return ( sType == rhs.sType ) @@ -24311,11 +28949,16 @@ public: struct DisplayPropertiesKHR { - operator const VkDisplayPropertiesKHR&() const + operator VkDisplayPropertiesKHR const&() const { return *reinterpret_cast<const VkDisplayPropertiesKHR*>(this); } + operator VkDisplayPropertiesKHR &() + { + return *reinterpret_cast<VkDisplayPropertiesKHR*>(this); + } + bool operator==( DisplayPropertiesKHR const& rhs ) const { return ( display == rhs.display ) @@ -24427,11 +29070,16 @@ public: return *this; } - operator const VkDisplaySurfaceCreateInfoKHR&() const + operator VkDisplaySurfaceCreateInfoKHR const&() const { return *reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR*>(this); } + operator VkDisplaySurfaceCreateInfoKHR &() + { + return *reinterpret_cast<VkDisplaySurfaceCreateInfoKHR*>(this); + } + bool operator==( DisplaySurfaceCreateInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -24469,11 +29117,16 @@ public: struct SurfaceCapabilitiesKHR { - operator const VkSurfaceCapabilitiesKHR&() const + operator VkSurfaceCapabilitiesKHR const&() const { return *reinterpret_cast<const VkSurfaceCapabilitiesKHR*>(this); } + operator VkSurfaceCapabilitiesKHR &() + { + return *reinterpret_cast<VkSurfaceCapabilitiesKHR*>(this); + } + bool operator==( SurfaceCapabilitiesKHR const& rhs ) const { return ( minImageCount == rhs.minImageCount ) @@ -24508,11 +29161,16 @@ public: struct SurfaceCapabilities2KHR { - operator const VkSurfaceCapabilities2KHR&() const + operator VkSurfaceCapabilities2KHR const&() const { return *reinterpret_cast<const VkSurfaceCapabilities2KHR*>(this); } + operator VkSurfaceCapabilities2KHR &() + { + return *reinterpret_cast<VkSurfaceCapabilities2KHR*>(this); + } + bool operator==( SurfaceCapabilities2KHR const& rhs ) const { return ( sType == rhs.sType ) @@ -24536,11 +29194,16 @@ public: struct DisplayProperties2KHR { - operator const VkDisplayProperties2KHR&() const + operator VkDisplayProperties2KHR const&() const { return *reinterpret_cast<const VkDisplayProperties2KHR*>(this); } + operator VkDisplayProperties2KHR &() + { + return *reinterpret_cast<VkDisplayProperties2KHR*>(this); + } + bool operator==( DisplayProperties2KHR const& rhs ) const { return ( sType == rhs.sType ) @@ -24636,11 +29299,16 @@ public: return *this; } - operator const VkDebugReportCallbackCreateInfoEXT&() const + operator VkDebugReportCallbackCreateInfoEXT const&() const { return *reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>(this); } + operator VkDebugReportCallbackCreateInfoEXT &() + { + return *reinterpret_cast<VkDebugReportCallbackCreateInfoEXT*>(this); + } + bool operator==( DebugReportCallbackCreateInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -24697,15 +29365,18 @@ public: 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_CALLBACK_EXT_EXT, eDisplayKhr = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT, eDisplayModeKhr = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT, eObjectTableNvx = VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT, eIndirectCommandsLayoutNvx = VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT, eValidationCacheExt = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT, + eValidationCache = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT, eSamplerYcbcrConversion = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT, eSamplerYcbcrConversionKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT, eDescriptorUpdateTemplate = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT, - eDescriptorUpdateTemplateKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT + eDescriptorUpdateTemplateKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT, + eAccelerationStructureNVX = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NVX_EXT }; struct DebugMarkerObjectNameInfoEXT @@ -24753,11 +29424,16 @@ public: return *this; } - operator const VkDebugMarkerObjectNameInfoEXT&() const + operator VkDebugMarkerObjectNameInfoEXT const&() const { return *reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT*>(this); } + operator VkDebugMarkerObjectNameInfoEXT &() + { + return *reinterpret_cast<VkDebugMarkerObjectNameInfoEXT*>(this); + } + bool operator==( DebugMarkerObjectNameInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -24844,11 +29520,16 @@ public: return *this; } - operator const VkDebugMarkerObjectTagInfoEXT&() const + operator VkDebugMarkerObjectTagInfoEXT const&() const { return *reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT*>(this); } + operator VkDebugMarkerObjectTagInfoEXT &() + { + return *reinterpret_cast<VkDebugMarkerObjectTagInfoEXT*>(this); + } + bool operator==( DebugMarkerObjectTagInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -24913,11 +29594,16 @@ public: return *this; } - operator const VkPipelineRasterizationStateRasterizationOrderAMD&() const + operator VkPipelineRasterizationStateRasterizationOrderAMD const&() const { return *reinterpret_cast<const VkPipelineRasterizationStateRasterizationOrderAMD*>(this); } + operator VkPipelineRasterizationStateRasterizationOrderAMD &() + { + return *reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD*>(this); + } + bool operator==( PipelineRasterizationStateRasterizationOrderAMD const& rhs ) const { return ( sType == rhs.sType ) @@ -24996,11 +29682,16 @@ public: return *this; } - operator const VkExternalMemoryImageCreateInfoNV&() const + operator VkExternalMemoryImageCreateInfoNV const&() const { return *reinterpret_cast<const VkExternalMemoryImageCreateInfoNV*>(this); } + operator VkExternalMemoryImageCreateInfoNV &() + { + return *reinterpret_cast<VkExternalMemoryImageCreateInfoNV*>(this); + } + bool operator==( ExternalMemoryImageCreateInfoNV const& rhs ) const { return ( sType == rhs.sType ) @@ -25051,11 +29742,16 @@ public: return *this; } - operator const VkExportMemoryAllocateInfoNV&() const + operator VkExportMemoryAllocateInfoNV const&() const { return *reinterpret_cast<const VkExportMemoryAllocateInfoNV*>(this); } + operator VkExportMemoryAllocateInfoNV &() + { + return *reinterpret_cast<VkExportMemoryAllocateInfoNV*>(this); + } + bool operator==( ExportMemoryAllocateInfoNV const& rhs ) const { return ( sType == rhs.sType ) @@ -25115,11 +29811,16 @@ public: return *this; } - operator const VkImportMemoryWin32HandleInfoNV&() const + operator VkImportMemoryWin32HandleInfoNV const&() const { return *reinterpret_cast<const VkImportMemoryWin32HandleInfoNV*>(this); } + operator VkImportMemoryWin32HandleInfoNV &() + { + return *reinterpret_cast<VkImportMemoryWin32HandleInfoNV*>(this); + } + bool operator==( ImportMemoryWin32HandleInfoNV const& rhs ) const { return ( sType == rhs.sType ) @@ -25173,11 +29874,16 @@ public: struct ExternalImageFormatPropertiesNV { - operator const VkExternalImageFormatPropertiesNV&() const + operator VkExternalImageFormatPropertiesNV const&() const { return *reinterpret_cast<const VkExternalImageFormatPropertiesNV*>(this); } + operator VkExternalImageFormatPropertiesNV &() + { + return *reinterpret_cast<VkExternalImageFormatPropertiesNV*>(this); + } + bool operator==( ExternalImageFormatPropertiesNV const& rhs ) const { return ( imageFormatProperties == rhs.imageFormatProperties ) @@ -25207,7 +29913,7 @@ public: struct ValidationFlagsEXT { ValidationFlagsEXT( uint32_t disabledValidationCheckCount_ = 0, - ValidationCheckEXT* pDisabledValidationChecks_ = nullptr ) + const ValidationCheckEXT* pDisabledValidationChecks_ = nullptr ) : disabledValidationCheckCount( disabledValidationCheckCount_ ) , pDisabledValidationChecks( pDisabledValidationChecks_ ) { @@ -25235,17 +29941,22 @@ public: return *this; } - ValidationFlagsEXT& setPDisabledValidationChecks( ValidationCheckEXT* pDisabledValidationChecks_ ) + ValidationFlagsEXT& setPDisabledValidationChecks( const ValidationCheckEXT* pDisabledValidationChecks_ ) { pDisabledValidationChecks = pDisabledValidationChecks_; return *this; } - operator const VkValidationFlagsEXT&() const + operator VkValidationFlagsEXT const&() const { return *reinterpret_cast<const VkValidationFlagsEXT*>(this); } + operator VkValidationFlagsEXT &() + { + return *reinterpret_cast<VkValidationFlagsEXT*>(this); + } + bool operator==( ValidationFlagsEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -25265,7 +29976,7 @@ public: public: const void* pNext = nullptr; uint32_t disabledValidationCheckCount; - ValidationCheckEXT* pDisabledValidationChecks; + const ValidationCheckEXT* pDisabledValidationChecks; }; static_assert( sizeof( ValidationFlagsEXT ) == sizeof( VkValidationFlagsEXT ), "struct and wrapper have different size!" ); @@ -25304,11 +30015,16 @@ public: struct PhysicalDeviceSubgroupProperties { - operator const VkPhysicalDeviceSubgroupProperties&() const + operator VkPhysicalDeviceSubgroupProperties const&() const { return *reinterpret_cast<const VkPhysicalDeviceSubgroupProperties*>(this); } + operator VkPhysicalDeviceSubgroupProperties &() + { + return *reinterpret_cast<VkPhysicalDeviceSubgroupProperties*>(this); + } + bool operator==( PhysicalDeviceSubgroupProperties const& rhs ) const { return ( sType == rhs.sType ) @@ -25441,11 +30157,16 @@ public: return *this; } - operator const VkIndirectCommandsTokenNVX&() const + operator VkIndirectCommandsTokenNVX const&() const { return *reinterpret_cast<const VkIndirectCommandsTokenNVX*>(this); } + operator VkIndirectCommandsTokenNVX &() + { + return *reinterpret_cast<VkIndirectCommandsTokenNVX*>(this); + } + bool operator==( IndirectCommandsTokenNVX const& rhs ) const { return ( tokenType == rhs.tokenType ) @@ -25511,11 +30232,16 @@ public: return *this; } - operator const VkIndirectCommandsLayoutTokenNVX&() const + operator VkIndirectCommandsLayoutTokenNVX const&() const { return *reinterpret_cast<const VkIndirectCommandsLayoutTokenNVX*>(this); } + operator VkIndirectCommandsLayoutTokenNVX &() + { + return *reinterpret_cast<VkIndirectCommandsLayoutTokenNVX*>(this); + } + bool operator==( IndirectCommandsLayoutTokenNVX const& rhs ) const { return ( tokenType == rhs.tokenType ) @@ -25589,11 +30315,16 @@ public: return *this; } - operator const VkIndirectCommandsLayoutCreateInfoNVX&() const + operator VkIndirectCommandsLayoutCreateInfoNVX const&() const { return *reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNVX*>(this); } + operator VkIndirectCommandsLayoutCreateInfoNVX &() + { + return *reinterpret_cast<VkIndirectCommandsLayoutCreateInfoNVX*>(this); + } + bool operator==( IndirectCommandsLayoutCreateInfoNVX const& rhs ) const { return ( sType == rhs.sType ) @@ -25723,11 +30454,16 @@ public: return *this; } - operator const VkObjectTableCreateInfoNVX&() const + operator VkObjectTableCreateInfoNVX const&() const { return *reinterpret_cast<const VkObjectTableCreateInfoNVX*>(this); } + operator VkObjectTableCreateInfoNVX &() + { + return *reinterpret_cast<VkObjectTableCreateInfoNVX*>(this); + } + bool operator==( ObjectTableCreateInfoNVX const& rhs ) const { return ( sType == rhs.sType ) @@ -25796,11 +30532,16 @@ public: return *this; } - operator const VkObjectTableEntryNVX&() const + operator VkObjectTableEntryNVX const&() const { return *reinterpret_cast<const VkObjectTableEntryNVX*>(this); } + operator VkObjectTableEntryNVX &() + { + return *reinterpret_cast<VkObjectTableEntryNVX*>(this); + } + bool operator==( ObjectTableEntryNVX const& rhs ) const { return ( type == rhs.type ) @@ -25863,11 +30604,16 @@ public: return *this; } - operator const VkObjectTablePipelineEntryNVX&() const + operator VkObjectTablePipelineEntryNVX const&() const { return *reinterpret_cast<const VkObjectTablePipelineEntryNVX*>(this); } + operator VkObjectTablePipelineEntryNVX &() + { + return *reinterpret_cast<VkObjectTablePipelineEntryNVX*>(this); + } + bool operator==( ObjectTablePipelineEntryNVX const& rhs ) const { return ( type == rhs.type ) @@ -25942,11 +30688,16 @@ public: return *this; } - operator const VkObjectTableDescriptorSetEntryNVX&() const + operator VkObjectTableDescriptorSetEntryNVX const&() const { return *reinterpret_cast<const VkObjectTableDescriptorSetEntryNVX*>(this); } + operator VkObjectTableDescriptorSetEntryNVX &() + { + return *reinterpret_cast<VkObjectTableDescriptorSetEntryNVX*>(this); + } + bool operator==( ObjectTableDescriptorSetEntryNVX const& rhs ) const { return ( type == rhs.type ) @@ -26013,11 +30764,16 @@ public: return *this; } - operator const VkObjectTableVertexBufferEntryNVX&() const + operator VkObjectTableVertexBufferEntryNVX const&() const { return *reinterpret_cast<const VkObjectTableVertexBufferEntryNVX*>(this); } + operator VkObjectTableVertexBufferEntryNVX &() + { + return *reinterpret_cast<VkObjectTableVertexBufferEntryNVX*>(this); + } + bool operator==( ObjectTableVertexBufferEntryNVX const& rhs ) const { return ( type == rhs.type ) @@ -26092,11 +30848,16 @@ public: return *this; } - operator const VkObjectTableIndexBufferEntryNVX&() const + operator VkObjectTableIndexBufferEntryNVX const&() const { return *reinterpret_cast<const VkObjectTableIndexBufferEntryNVX*>(this); } + operator VkObjectTableIndexBufferEntryNVX &() + { + return *reinterpret_cast<VkObjectTableIndexBufferEntryNVX*>(this); + } + bool operator==( ObjectTableIndexBufferEntryNVX const& rhs ) const { return ( type == rhs.type ) @@ -26173,11 +30934,16 @@ public: return *this; } - operator const VkObjectTablePushConstantEntryNVX&() const + operator VkObjectTablePushConstantEntryNVX const&() const { return *reinterpret_cast<const VkObjectTablePushConstantEntryNVX*>(this); } + operator VkObjectTablePushConstantEntryNVX &() + { + return *reinterpret_cast<VkObjectTablePushConstantEntryNVX*>(this); + } + bool operator==( ObjectTablePushConstantEntryNVX const& rhs ) const { return ( type == rhs.type ) @@ -26269,11 +31035,16 @@ public: return *this; } - operator const VkDescriptorSetLayoutCreateInfo&() const + operator VkDescriptorSetLayoutCreateInfo const&() const { return *reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>(this); } + operator VkDescriptorSetLayoutCreateInfo &() + { + return *reinterpret_cast<VkDescriptorSetLayoutCreateInfo*>(this); + } + bool operator==( DescriptorSetLayoutCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -26372,11 +31143,16 @@ public: return *this; } - operator const VkPhysicalDeviceExternalImageFormatInfo&() const + operator VkPhysicalDeviceExternalImageFormatInfo const&() const { return *reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo*>(this); } + operator VkPhysicalDeviceExternalImageFormatInfo &() + { + return *reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>(this); + } + bool operator==( PhysicalDeviceExternalImageFormatInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -26445,11 +31221,16 @@ public: return *this; } - operator const VkPhysicalDeviceExternalBufferInfo&() const + operator VkPhysicalDeviceExternalBufferInfo const&() const { return *reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>(this); } + operator VkPhysicalDeviceExternalBufferInfo &() + { + return *reinterpret_cast<VkPhysicalDeviceExternalBufferInfo*>(this); + } + bool operator==( PhysicalDeviceExternalBufferInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -26506,11 +31287,16 @@ public: return *this; } - operator const VkExternalMemoryImageCreateInfo&() const + operator VkExternalMemoryImageCreateInfo const&() const { return *reinterpret_cast<const VkExternalMemoryImageCreateInfo*>(this); } + operator VkExternalMemoryImageCreateInfo &() + { + return *reinterpret_cast<VkExternalMemoryImageCreateInfo*>(this); + } + bool operator==( ExternalMemoryImageCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -26563,11 +31349,16 @@ public: return *this; } - operator const VkExternalMemoryBufferCreateInfo&() const + operator VkExternalMemoryBufferCreateInfo const&() const { return *reinterpret_cast<const VkExternalMemoryBufferCreateInfo*>(this); } + operator VkExternalMemoryBufferCreateInfo &() + { + return *reinterpret_cast<VkExternalMemoryBufferCreateInfo*>(this); + } + bool operator==( ExternalMemoryBufferCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -26620,11 +31411,16 @@ public: return *this; } - operator const VkExportMemoryAllocateInfo&() const + operator VkExportMemoryAllocateInfo const&() const { return *reinterpret_cast<const VkExportMemoryAllocateInfo*>(this); } + operator VkExportMemoryAllocateInfo &() + { + return *reinterpret_cast<VkExportMemoryAllocateInfo*>(this); + } + bool operator==( ExportMemoryAllocateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -26694,11 +31490,16 @@ public: return *this; } - operator const VkImportMemoryWin32HandleInfoKHR&() const + operator VkImportMemoryWin32HandleInfoKHR const&() const { return *reinterpret_cast<const VkImportMemoryWin32HandleInfoKHR*>(this); } + operator VkImportMemoryWin32HandleInfoKHR &() + { + return *reinterpret_cast<VkImportMemoryWin32HandleInfoKHR*>(this); + } + bool operator==( ImportMemoryWin32HandleInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -26763,11 +31564,16 @@ public: return *this; } - operator const VkMemoryGetWin32HandleInfoKHR&() const + operator VkMemoryGetWin32HandleInfoKHR const&() const { return *reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR*>(this); } + operator VkMemoryGetWin32HandleInfoKHR &() + { + return *reinterpret_cast<VkMemoryGetWin32HandleInfoKHR*>(this); + } + bool operator==( MemoryGetWin32HandleInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -26829,11 +31635,16 @@ public: return *this; } - operator const VkImportMemoryFdInfoKHR&() const + operator VkImportMemoryFdInfoKHR const&() const { return *reinterpret_cast<const VkImportMemoryFdInfoKHR*>(this); } + operator VkImportMemoryFdInfoKHR &() + { + return *reinterpret_cast<VkImportMemoryFdInfoKHR*>(this); + } + bool operator==( ImportMemoryFdInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -26894,11 +31705,16 @@ public: return *this; } - operator const VkMemoryGetFdInfoKHR&() const + operator VkMemoryGetFdInfoKHR const&() const { return *reinterpret_cast<const VkMemoryGetFdInfoKHR*>(this); } + operator VkMemoryGetFdInfoKHR &() + { + return *reinterpret_cast<VkMemoryGetFdInfoKHR*>(this); + } + bool operator==( MemoryGetFdInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -26959,11 +31775,16 @@ public: return *this; } - operator const VkImportMemoryHostPointerInfoEXT&() const + operator VkImportMemoryHostPointerInfoEXT const&() const { return *reinterpret_cast<const VkImportMemoryHostPointerInfoEXT*>(this); } + operator VkImportMemoryHostPointerInfoEXT &() + { + return *reinterpret_cast<VkImportMemoryHostPointerInfoEXT*>(this); + } + bool operator==( ImportMemoryHostPointerInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -27021,11 +31842,16 @@ public: struct ExternalMemoryProperties { - operator const VkExternalMemoryProperties&() const + operator VkExternalMemoryProperties const&() const { return *reinterpret_cast<const VkExternalMemoryProperties*>(this); } + operator VkExternalMemoryProperties &() + { + return *reinterpret_cast<VkExternalMemoryProperties*>(this); + } + bool operator==( ExternalMemoryProperties const& rhs ) const { return ( externalMemoryFeatures == rhs.externalMemoryFeatures ) @@ -27048,11 +31874,16 @@ public: struct ExternalImageFormatProperties { - operator const VkExternalImageFormatProperties&() const + operator VkExternalImageFormatProperties const&() const { return *reinterpret_cast<const VkExternalImageFormatProperties*>(this); } + operator VkExternalImageFormatProperties &() + { + return *reinterpret_cast<VkExternalImageFormatProperties*>(this); + } + bool operator==( ExternalImageFormatProperties const& rhs ) const { return ( sType == rhs.sType ) @@ -27078,11 +31909,16 @@ public: struct ExternalBufferProperties { - operator const VkExternalBufferProperties&() const + operator VkExternalBufferProperties const&() const { return *reinterpret_cast<const VkExternalBufferProperties*>(this); } + operator VkExternalBufferProperties &() + { + return *reinterpret_cast<VkExternalBufferProperties*>(this); + } + bool operator==( ExternalBufferProperties const& rhs ) const { return ( sType == rhs.sType ) @@ -27171,11 +32007,16 @@ public: return *this; } - operator const VkPhysicalDeviceExternalSemaphoreInfo&() const + operator VkPhysicalDeviceExternalSemaphoreInfo const&() const { return *reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>(this); } + operator VkPhysicalDeviceExternalSemaphoreInfo &() + { + return *reinterpret_cast<VkPhysicalDeviceExternalSemaphoreInfo*>(this); + } + bool operator==( PhysicalDeviceExternalSemaphoreInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -27228,11 +32069,16 @@ public: return *this; } - operator const VkExportSemaphoreCreateInfo&() const + operator VkExportSemaphoreCreateInfo const&() const { return *reinterpret_cast<const VkExportSemaphoreCreateInfo*>(this); } + operator VkExportSemaphoreCreateInfo &() + { + return *reinterpret_cast<VkExportSemaphoreCreateInfo*>(this); + } + bool operator==( ExportSemaphoreCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -27294,11 +32140,16 @@ public: return *this; } - operator const VkSemaphoreGetWin32HandleInfoKHR&() const + operator VkSemaphoreGetWin32HandleInfoKHR const&() const { return *reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR*>(this); } + operator VkSemaphoreGetWin32HandleInfoKHR &() + { + return *reinterpret_cast<VkSemaphoreGetWin32HandleInfoKHR*>(this); + } + bool operator==( SemaphoreGetWin32HandleInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -27360,11 +32211,16 @@ public: return *this; } - operator const VkSemaphoreGetFdInfoKHR&() const + operator VkSemaphoreGetFdInfoKHR const&() const { return *reinterpret_cast<const VkSemaphoreGetFdInfoKHR*>(this); } + operator VkSemaphoreGetFdInfoKHR &() + { + return *reinterpret_cast<VkSemaphoreGetFdInfoKHR*>(this); + } + bool operator==( SemaphoreGetFdInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -27420,11 +32276,16 @@ public: struct ExternalSemaphoreProperties { - operator const VkExternalSemaphoreProperties&() const + operator VkExternalSemaphoreProperties const&() const { return *reinterpret_cast<const VkExternalSemaphoreProperties*>(this); } + operator VkExternalSemaphoreProperties &() + { + return *reinterpret_cast<VkExternalSemaphoreProperties*>(this); + } + bool operator==( ExternalSemaphoreProperties const& rhs ) const { return ( sType == rhs.sType ) @@ -27542,11 +32403,16 @@ public: return *this; } - operator const VkImportSemaphoreWin32HandleInfoKHR&() const + operator VkImportSemaphoreWin32HandleInfoKHR const&() const { return *reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR*>(this); } + operator VkImportSemaphoreWin32HandleInfoKHR &() + { + return *reinterpret_cast<VkImportSemaphoreWin32HandleInfoKHR*>(this); + } + bool operator==( ImportSemaphoreWin32HandleInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -27630,11 +32496,16 @@ public: return *this; } - operator const VkImportSemaphoreFdInfoKHR&() const + operator VkImportSemaphoreFdInfoKHR const&() const { return *reinterpret_cast<const VkImportSemaphoreFdInfoKHR*>(this); } + operator VkImportSemaphoreFdInfoKHR &() + { + return *reinterpret_cast<VkImportSemaphoreFdInfoKHR*>(this); + } + bool operator==( ImportSemaphoreFdInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -27725,11 +32596,16 @@ public: return *this; } - operator const VkPhysicalDeviceExternalFenceInfo&() const + operator VkPhysicalDeviceExternalFenceInfo const&() const { return *reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>(this); } + operator VkPhysicalDeviceExternalFenceInfo &() + { + return *reinterpret_cast<VkPhysicalDeviceExternalFenceInfo*>(this); + } + bool operator==( PhysicalDeviceExternalFenceInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -27782,11 +32658,16 @@ public: return *this; } - operator const VkExportFenceCreateInfo&() const + operator VkExportFenceCreateInfo const&() const { return *reinterpret_cast<const VkExportFenceCreateInfo*>(this); } + operator VkExportFenceCreateInfo &() + { + return *reinterpret_cast<VkExportFenceCreateInfo*>(this); + } + bool operator==( ExportFenceCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -27848,11 +32729,16 @@ public: return *this; } - operator const VkFenceGetWin32HandleInfoKHR&() const + operator VkFenceGetWin32HandleInfoKHR const&() const { return *reinterpret_cast<const VkFenceGetWin32HandleInfoKHR*>(this); } + operator VkFenceGetWin32HandleInfoKHR &() + { + return *reinterpret_cast<VkFenceGetWin32HandleInfoKHR*>(this); + } + bool operator==( FenceGetWin32HandleInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -27914,11 +32800,16 @@ public: return *this; } - operator const VkFenceGetFdInfoKHR&() const + operator VkFenceGetFdInfoKHR const&() const { return *reinterpret_cast<const VkFenceGetFdInfoKHR*>(this); } + operator VkFenceGetFdInfoKHR &() + { + return *reinterpret_cast<VkFenceGetFdInfoKHR*>(this); + } + bool operator==( FenceGetFdInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -27974,11 +32865,16 @@ public: struct ExternalFenceProperties { - operator const VkExternalFenceProperties&() const + operator VkExternalFenceProperties const&() const { return *reinterpret_cast<const VkExternalFenceProperties*>(this); } + operator VkExternalFenceProperties &() + { + return *reinterpret_cast<VkExternalFenceProperties*>(this); + } + bool operator==( ExternalFenceProperties const& rhs ) const { return ( sType == rhs.sType ) @@ -28096,11 +32992,16 @@ public: return *this; } - operator const VkImportFenceWin32HandleInfoKHR&() const + operator VkImportFenceWin32HandleInfoKHR const&() const { return *reinterpret_cast<const VkImportFenceWin32HandleInfoKHR*>(this); } + operator VkImportFenceWin32HandleInfoKHR &() + { + return *reinterpret_cast<VkImportFenceWin32HandleInfoKHR*>(this); + } + bool operator==( ImportFenceWin32HandleInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -28184,11 +33085,16 @@ public: return *this; } - operator const VkImportFenceFdInfoKHR&() const + operator VkImportFenceFdInfoKHR const&() const { return *reinterpret_cast<const VkImportFenceFdInfoKHR*>(this); } + operator VkImportFenceFdInfoKHR &() + { + return *reinterpret_cast<VkImportFenceFdInfoKHR*>(this); + } + bool operator==( ImportFenceFdInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -28243,11 +33149,16 @@ public: struct SurfaceCapabilities2EXT { - operator const VkSurfaceCapabilities2EXT&() const + operator VkSurfaceCapabilities2EXT const&() const { return *reinterpret_cast<const VkSurfaceCapabilities2EXT*>(this); } + operator VkSurfaceCapabilities2EXT &() + { + return *reinterpret_cast<VkSurfaceCapabilities2EXT*>(this); + } + bool operator==( SurfaceCapabilities2EXT const& rhs ) const { return ( sType == rhs.sType ) @@ -28318,11 +33229,16 @@ public: return *this; } - operator const VkSwapchainCounterCreateInfoEXT&() const + operator VkSwapchainCounterCreateInfoEXT const&() const { return *reinterpret_cast<const VkSwapchainCounterCreateInfoEXT*>(this); } + operator VkSwapchainCounterCreateInfoEXT &() + { + return *reinterpret_cast<VkSwapchainCounterCreateInfoEXT*>(this); + } + bool operator==( SwapchainCounterCreateInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -28380,11 +33296,16 @@ public: return *this; } - operator const VkDisplayPowerInfoEXT&() const + operator VkDisplayPowerInfoEXT const&() const { return *reinterpret_cast<const VkDisplayPowerInfoEXT*>(this); } + operator VkDisplayPowerInfoEXT &() + { + return *reinterpret_cast<VkDisplayPowerInfoEXT*>(this); + } + bool operator==( DisplayPowerInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -28440,11 +33361,16 @@ public: return *this; } - operator const VkDeviceEventInfoEXT&() const + operator VkDeviceEventInfoEXT const&() const { return *reinterpret_cast<const VkDeviceEventInfoEXT*>(this); } + operator VkDeviceEventInfoEXT &() + { + return *reinterpret_cast<VkDeviceEventInfoEXT*>(this); + } + bool operator==( DeviceEventInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -28500,11 +33426,16 @@ public: return *this; } - operator const VkDisplayEventInfoEXT&() const + operator VkDisplayEventInfoEXT const&() const { return *reinterpret_cast<const VkDisplayEventInfoEXT*>(this); } + operator VkDisplayEventInfoEXT &() + { + return *reinterpret_cast<VkDisplayEventInfoEXT*>(this); + } + bool operator==( DisplayEventInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -28625,11 +33556,16 @@ public: return *this; } - operator const VkMemoryAllocateFlagsInfo&() const + operator VkMemoryAllocateFlagsInfo const&() const { return *reinterpret_cast<const VkMemoryAllocateFlagsInfo*>(this); } + operator VkMemoryAllocateFlagsInfo &() + { + return *reinterpret_cast<VkMemoryAllocateFlagsInfo*>(this); + } + bool operator==( MemoryAllocateFlagsInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -28685,11 +33621,16 @@ public: struct DeviceGroupPresentCapabilitiesKHR { - operator const VkDeviceGroupPresentCapabilitiesKHR&() const + operator VkDeviceGroupPresentCapabilitiesKHR const&() const { return *reinterpret_cast<const VkDeviceGroupPresentCapabilitiesKHR*>(this); } + operator VkDeviceGroupPresentCapabilitiesKHR &() + { + return *reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR*>(this); + } + bool operator==( DeviceGroupPresentCapabilitiesKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -28758,11 +33699,16 @@ public: return *this; } - operator const VkDeviceGroupPresentInfoKHR&() const + operator VkDeviceGroupPresentInfoKHR const&() const { return *reinterpret_cast<const VkDeviceGroupPresentInfoKHR*>(this); } + operator VkDeviceGroupPresentInfoKHR &() + { + return *reinterpret_cast<VkDeviceGroupPresentInfoKHR*>(this); + } + bool operator==( DeviceGroupPresentInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -28817,11 +33763,16 @@ public: return *this; } - operator const VkDeviceGroupSwapchainCreateInfoKHR&() const + operator VkDeviceGroupSwapchainCreateInfoKHR const&() const { return *reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR*>(this); } + operator VkDeviceGroupSwapchainCreateInfoKHR &() + { + return *reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>(this); + } + bool operator==( DeviceGroupSwapchainCreateInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -29018,11 +33969,16 @@ public: return *this; } - operator const VkSwapchainCreateInfoKHR&() const + operator VkSwapchainCreateInfoKHR const&() const { return *reinterpret_cast<const VkSwapchainCreateInfoKHR*>(this); } + operator VkSwapchainCreateInfoKHR &() + { + return *reinterpret_cast<VkSwapchainCreateInfoKHR*>(this); + } + bool operator==( SwapchainCreateInfoKHR const& rhs ) const { return ( sType == rhs.sType ) @@ -29133,11 +34089,16 @@ public: return *this; } - operator const VkViewportSwizzleNV&() const + operator VkViewportSwizzleNV const&() const { return *reinterpret_cast<const VkViewportSwizzleNV*>(this); } + operator VkViewportSwizzleNV &() + { + return *reinterpret_cast<VkViewportSwizzleNV*>(this); + } + bool operator==( ViewportSwizzleNV const& rhs ) const { return ( x == rhs.x ) @@ -29203,11 +34164,16 @@ public: return *this; } - operator const VkPipelineViewportSwizzleStateCreateInfoNV&() const + operator VkPipelineViewportSwizzleStateCreateInfoNV const&() const { return *reinterpret_cast<const VkPipelineViewportSwizzleStateCreateInfoNV*>(this); } + operator VkPipelineViewportSwizzleStateCreateInfoNV &() + { + return *reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV*>(this); + } + bool operator==( PipelineViewportSwizzleStateCreateInfoNV const& rhs ) const { return ( sType == rhs.sType ) @@ -29292,11 +34258,16 @@ public: return *this; } - operator const VkPipelineDiscardRectangleStateCreateInfoEXT&() const + operator VkPipelineDiscardRectangleStateCreateInfoEXT const&() const { return *reinterpret_cast<const VkPipelineDiscardRectangleStateCreateInfoEXT*>(this); } + operator VkPipelineDiscardRectangleStateCreateInfoEXT &() + { + return *reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT*>(this); + } + bool operator==( PipelineDiscardRectangleStateCreateInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -29445,11 +34416,16 @@ public: return *this; } - operator const VkSubpassDescription&() const + operator VkSubpassDescription const&() const { return *reinterpret_cast<const VkSubpassDescription*>(this); } + operator VkSubpassDescription &() + { + return *reinterpret_cast<VkSubpassDescription*>(this); + } + bool operator==( SubpassDescription const& rhs ) const { return ( flags == rhs.flags ) @@ -29559,11 +34535,16 @@ public: return *this; } - operator const VkRenderPassCreateInfo&() const + operator VkRenderPassCreateInfo const&() const { return *reinterpret_cast<const VkRenderPassCreateInfo*>(this); } + operator VkRenderPassCreateInfo &() + { + return *reinterpret_cast<VkRenderPassCreateInfo*>(this); + } + bool operator==( RenderPassCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -29597,6 +34578,306 @@ public: }; static_assert( sizeof( RenderPassCreateInfo ) == sizeof( VkRenderPassCreateInfo ), "struct and wrapper have different size!" ); + struct SubpassDescription2KHR + { + SubpassDescription2KHR( SubpassDescriptionFlags flags_ = SubpassDescriptionFlags(), + PipelineBindPoint pipelineBindPoint_ = PipelineBindPoint::eGraphics, + uint32_t viewMask_ = 0, + uint32_t inputAttachmentCount_ = 0, + const AttachmentReference2KHR* pInputAttachments_ = nullptr, + uint32_t colorAttachmentCount_ = 0, + const AttachmentReference2KHR* pColorAttachments_ = nullptr, + const AttachmentReference2KHR* pResolveAttachments_ = nullptr, + const AttachmentReference2KHR* pDepthStencilAttachment_ = nullptr, + uint32_t preserveAttachmentCount_ = 0, + const uint32_t* pPreserveAttachments_ = nullptr ) + : flags( flags_ ) + , pipelineBindPoint( pipelineBindPoint_ ) + , viewMask( viewMask_ ) + , inputAttachmentCount( inputAttachmentCount_ ) + , pInputAttachments( pInputAttachments_ ) + , colorAttachmentCount( colorAttachmentCount_ ) + , pColorAttachments( pColorAttachments_ ) + , pResolveAttachments( pResolveAttachments_ ) + , pDepthStencilAttachment( pDepthStencilAttachment_ ) + , preserveAttachmentCount( preserveAttachmentCount_ ) + , pPreserveAttachments( pPreserveAttachments_ ) + { + } + + SubpassDescription2KHR( VkSubpassDescription2KHR const & rhs ) + { + memcpy( this, &rhs, sizeof( SubpassDescription2KHR ) ); + } + + SubpassDescription2KHR& operator=( VkSubpassDescription2KHR const & rhs ) + { + memcpy( this, &rhs, sizeof( SubpassDescription2KHR ) ); + return *this; + } + SubpassDescription2KHR& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + SubpassDescription2KHR& setFlags( SubpassDescriptionFlags flags_ ) + { + flags = flags_; + return *this; + } + + SubpassDescription2KHR& setPipelineBindPoint( PipelineBindPoint pipelineBindPoint_ ) + { + pipelineBindPoint = pipelineBindPoint_; + return *this; + } + + SubpassDescription2KHR& setViewMask( uint32_t viewMask_ ) + { + viewMask = viewMask_; + return *this; + } + + SubpassDescription2KHR& setInputAttachmentCount( uint32_t inputAttachmentCount_ ) + { + inputAttachmentCount = inputAttachmentCount_; + return *this; + } + + SubpassDescription2KHR& setPInputAttachments( const AttachmentReference2KHR* pInputAttachments_ ) + { + pInputAttachments = pInputAttachments_; + return *this; + } + + SubpassDescription2KHR& setColorAttachmentCount( uint32_t colorAttachmentCount_ ) + { + colorAttachmentCount = colorAttachmentCount_; + return *this; + } + + SubpassDescription2KHR& setPColorAttachments( const AttachmentReference2KHR* pColorAttachments_ ) + { + pColorAttachments = pColorAttachments_; + return *this; + } + + SubpassDescription2KHR& setPResolveAttachments( const AttachmentReference2KHR* pResolveAttachments_ ) + { + pResolveAttachments = pResolveAttachments_; + return *this; + } + + SubpassDescription2KHR& setPDepthStencilAttachment( const AttachmentReference2KHR* pDepthStencilAttachment_ ) + { + pDepthStencilAttachment = pDepthStencilAttachment_; + return *this; + } + + SubpassDescription2KHR& setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) + { + preserveAttachmentCount = preserveAttachmentCount_; + return *this; + } + + SubpassDescription2KHR& setPPreserveAttachments( const uint32_t* pPreserveAttachments_ ) + { + pPreserveAttachments = pPreserveAttachments_; + return *this; + } + + operator VkSubpassDescription2KHR const&() const + { + return *reinterpret_cast<const VkSubpassDescription2KHR*>(this); + } + + operator VkSubpassDescription2KHR &() + { + return *reinterpret_cast<VkSubpassDescription2KHR*>(this); + } + + bool operator==( SubpassDescription2KHR const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( flags == rhs.flags ) + && ( pipelineBindPoint == rhs.pipelineBindPoint ) + && ( viewMask == rhs.viewMask ) + && ( inputAttachmentCount == rhs.inputAttachmentCount ) + && ( pInputAttachments == rhs.pInputAttachments ) + && ( colorAttachmentCount == rhs.colorAttachmentCount ) + && ( pColorAttachments == rhs.pColorAttachments ) + && ( pResolveAttachments == rhs.pResolveAttachments ) + && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment ) + && ( preserveAttachmentCount == rhs.preserveAttachmentCount ) + && ( pPreserveAttachments == rhs.pPreserveAttachments ); + } + + bool operator!=( SubpassDescription2KHR const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::eSubpassDescription2KHR; + + public: + const void* pNext = nullptr; + SubpassDescriptionFlags flags; + PipelineBindPoint pipelineBindPoint; + uint32_t viewMask; + uint32_t inputAttachmentCount; + const AttachmentReference2KHR* pInputAttachments; + uint32_t colorAttachmentCount; + const AttachmentReference2KHR* pColorAttachments; + const AttachmentReference2KHR* pResolveAttachments; + const AttachmentReference2KHR* pDepthStencilAttachment; + uint32_t preserveAttachmentCount; + const uint32_t* pPreserveAttachments; + }; + static_assert( sizeof( SubpassDescription2KHR ) == sizeof( VkSubpassDescription2KHR ), "struct and wrapper have different size!" ); + + struct RenderPassCreateInfo2KHR + { + RenderPassCreateInfo2KHR( RenderPassCreateFlags flags_ = RenderPassCreateFlags(), + uint32_t attachmentCount_ = 0, + const AttachmentDescription2KHR* pAttachments_ = nullptr, + uint32_t subpassCount_ = 0, + const SubpassDescription2KHR* pSubpasses_ = nullptr, + uint32_t dependencyCount_ = 0, + const SubpassDependency2KHR* pDependencies_ = nullptr, + uint32_t correlatedViewMaskCount_ = 0, + const uint32_t* pCorrelatedViewMasks_ = nullptr ) + : flags( flags_ ) + , attachmentCount( attachmentCount_ ) + , pAttachments( pAttachments_ ) + , subpassCount( subpassCount_ ) + , pSubpasses( pSubpasses_ ) + , dependencyCount( dependencyCount_ ) + , pDependencies( pDependencies_ ) + , correlatedViewMaskCount( correlatedViewMaskCount_ ) + , pCorrelatedViewMasks( pCorrelatedViewMasks_ ) + { + } + + RenderPassCreateInfo2KHR( VkRenderPassCreateInfo2KHR const & rhs ) + { + memcpy( this, &rhs, sizeof( RenderPassCreateInfo2KHR ) ); + } + + RenderPassCreateInfo2KHR& operator=( VkRenderPassCreateInfo2KHR const & rhs ) + { + memcpy( this, &rhs, sizeof( RenderPassCreateInfo2KHR ) ); + return *this; + } + RenderPassCreateInfo2KHR& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + RenderPassCreateInfo2KHR& setFlags( RenderPassCreateFlags flags_ ) + { + flags = flags_; + return *this; + } + + RenderPassCreateInfo2KHR& setAttachmentCount( uint32_t attachmentCount_ ) + { + attachmentCount = attachmentCount_; + return *this; + } + + RenderPassCreateInfo2KHR& setPAttachments( const AttachmentDescription2KHR* pAttachments_ ) + { + pAttachments = pAttachments_; + return *this; + } + + RenderPassCreateInfo2KHR& setSubpassCount( uint32_t subpassCount_ ) + { + subpassCount = subpassCount_; + return *this; + } + + RenderPassCreateInfo2KHR& setPSubpasses( const SubpassDescription2KHR* pSubpasses_ ) + { + pSubpasses = pSubpasses_; + return *this; + } + + RenderPassCreateInfo2KHR& setDependencyCount( uint32_t dependencyCount_ ) + { + dependencyCount = dependencyCount_; + return *this; + } + + RenderPassCreateInfo2KHR& setPDependencies( const SubpassDependency2KHR* pDependencies_ ) + { + pDependencies = pDependencies_; + return *this; + } + + RenderPassCreateInfo2KHR& setCorrelatedViewMaskCount( uint32_t correlatedViewMaskCount_ ) + { + correlatedViewMaskCount = correlatedViewMaskCount_; + return *this; + } + + RenderPassCreateInfo2KHR& setPCorrelatedViewMasks( const uint32_t* pCorrelatedViewMasks_ ) + { + pCorrelatedViewMasks = pCorrelatedViewMasks_; + return *this; + } + + operator VkRenderPassCreateInfo2KHR const&() const + { + return *reinterpret_cast<const VkRenderPassCreateInfo2KHR*>(this); + } + + operator VkRenderPassCreateInfo2KHR &() + { + return *reinterpret_cast<VkRenderPassCreateInfo2KHR*>(this); + } + + bool operator==( RenderPassCreateInfo2KHR const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( flags == rhs.flags ) + && ( attachmentCount == rhs.attachmentCount ) + && ( pAttachments == rhs.pAttachments ) + && ( subpassCount == rhs.subpassCount ) + && ( pSubpasses == rhs.pSubpasses ) + && ( dependencyCount == rhs.dependencyCount ) + && ( pDependencies == rhs.pDependencies ) + && ( correlatedViewMaskCount == rhs.correlatedViewMaskCount ) + && ( pCorrelatedViewMasks == rhs.pCorrelatedViewMasks ); + } + + bool operator!=( RenderPassCreateInfo2KHR const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::eRenderPassCreateInfo2KHR; + + public: + const void* pNext = nullptr; + RenderPassCreateFlags flags; + uint32_t attachmentCount; + const AttachmentDescription2KHR* pAttachments; + uint32_t subpassCount; + const SubpassDescription2KHR* pSubpasses; + uint32_t dependencyCount; + const SubpassDependency2KHR* pDependencies; + uint32_t correlatedViewMaskCount; + const uint32_t* pCorrelatedViewMasks; + }; + static_assert( sizeof( RenderPassCreateInfo2KHR ) == sizeof( VkRenderPassCreateInfo2KHR ), "struct and wrapper have different size!" ); + enum class PointClippingBehavior { eAllClipPlanes = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES, @@ -29607,11 +34888,16 @@ public: struct PhysicalDevicePointClippingProperties { - operator const VkPhysicalDevicePointClippingProperties&() const + operator VkPhysicalDevicePointClippingProperties const&() const { return *reinterpret_cast<const VkPhysicalDevicePointClippingProperties*>(this); } + operator VkPhysicalDevicePointClippingProperties &() + { + return *reinterpret_cast<VkPhysicalDevicePointClippingProperties*>(this); + } + bool operator==( PhysicalDevicePointClippingProperties const& rhs ) const { return ( sType == rhs.sType ) @@ -29671,11 +34957,16 @@ public: return *this; } - operator const VkSamplerReductionModeCreateInfoEXT&() const + operator VkSamplerReductionModeCreateInfoEXT const&() const { return *reinterpret_cast<const VkSamplerReductionModeCreateInfoEXT*>(this); } + operator VkSamplerReductionModeCreateInfoEXT &() + { + return *reinterpret_cast<VkSamplerReductionModeCreateInfoEXT*>(this); + } + bool operator==( SamplerReductionModeCreateInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -29734,11 +35025,16 @@ public: return *this; } - operator const VkPipelineTessellationDomainOriginStateCreateInfo&() const + operator VkPipelineTessellationDomainOriginStateCreateInfo const&() const { return *reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo*>(this); } + operator VkPipelineTessellationDomainOriginStateCreateInfo &() + { + return *reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>(this); + } + bool operator==( PipelineTessellationDomainOriginStateCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -29877,11 +35173,16 @@ public: return *this; } - operator const VkSamplerYcbcrConversionCreateInfo&() const + operator VkSamplerYcbcrConversionCreateInfo const&() const { return *reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>(this); } + operator VkSamplerYcbcrConversionCreateInfo &() + { + return *reinterpret_cast<VkSamplerYcbcrConversionCreateInfo*>(this); + } + bool operator==( SamplerYcbcrConversionCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -29922,11 +35223,16 @@ public: #ifdef VK_USE_PLATFORM_ANDROID_ANDROID struct AndroidHardwareBufferFormatPropertiesANDROID { - operator const VkAndroidHardwareBufferFormatPropertiesANDROID&() const + operator VkAndroidHardwareBufferFormatPropertiesANDROID const&() const { return *reinterpret_cast<const VkAndroidHardwareBufferFormatPropertiesANDROID*>(this); } + operator VkAndroidHardwareBufferFormatPropertiesANDROID &() + { + return *reinterpret_cast<VkAndroidHardwareBufferFormatPropertiesANDROID*>(this); + } + bool operator==( AndroidHardwareBufferFormatPropertiesANDROID const& rhs ) const { return ( sType == rhs.sType ) @@ -30015,11 +35321,16 @@ public: return *this; } - operator const VkPipelineColorBlendAdvancedStateCreateInfoEXT&() const + operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const&() const { return *reinterpret_cast<const VkPipelineColorBlendAdvancedStateCreateInfoEXT*>(this); } + operator VkPipelineColorBlendAdvancedStateCreateInfoEXT &() + { + return *reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT*>(this); + } + bool operator==( PipelineColorBlendAdvancedStateCreateInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -30114,11 +35425,16 @@ public: return *this; } - operator const VkPipelineCoverageModulationStateCreateInfoNV&() const + operator VkPipelineCoverageModulationStateCreateInfoNV const&() const { return *reinterpret_cast<const VkPipelineCoverageModulationStateCreateInfoNV*>(this); } + operator VkPipelineCoverageModulationStateCreateInfoNV &() + { + return *reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV*>(this); + } + bool operator==( PipelineCoverageModulationStateCreateInfoNV const& rhs ) const { return ( sType == rhs.sType ) @@ -30197,11 +35513,16 @@ public: return *this; } - operator const VkDeviceQueueGlobalPriorityCreateInfoEXT&() const + operator VkDeviceQueueGlobalPriorityCreateInfoEXT const&() const { return *reinterpret_cast<const VkDeviceQueueGlobalPriorityCreateInfoEXT*>(this); } + operator VkDeviceQueueGlobalPriorityCreateInfoEXT &() + { + return *reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoEXT*>(this); + } + bool operator==( DeviceQueueGlobalPriorityCreateInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -30339,11 +35660,16 @@ public: return *this; } - operator const VkDebugUtilsMessengerCreateInfoEXT&() const + operator VkDebugUtilsMessengerCreateInfoEXT const&() const { return *reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>(this); } + operator VkDebugUtilsMessengerCreateInfoEXT &() + { + return *reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT*>(this); + } + bool operator==( DebugUtilsMessengerCreateInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -30425,11 +35751,16 @@ public: return *this; } - operator const VkPipelineRasterizationConservativeStateCreateInfoEXT&() const + operator VkPipelineRasterizationConservativeStateCreateInfoEXT const&() const { return *reinterpret_cast<const VkPipelineRasterizationConservativeStateCreateInfoEXT*>(this); } + operator VkPipelineRasterizationConservativeStateCreateInfoEXT &() + { + return *reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT*>(this); + } + bool operator==( PipelineRasterizationConservativeStateCreateInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -30520,11 +35851,16 @@ public: return *this; } - operator const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT&() const + operator VkDescriptorSetLayoutBindingFlagsCreateInfoEXT const&() const { return *reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(this); } + operator VkDescriptorSetLayoutBindingFlagsCreateInfoEXT &() + { + return *reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(this); + } + bool operator==( DescriptorSetLayoutBindingFlagsCreateInfoEXT const& rhs ) const { return ( sType == rhs.sType ) @@ -30555,6 +35891,733 @@ public: eKazan = VK_VENDOR_ID_KAZAN }; + enum class DriverIdKHR + { + eAmdProprietary = VK_DRIVER_ID_AMD_PROPRIETARY_KHR, + eAmdOpenSource = VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR, + eMesaRadv = VK_DRIVER_ID_MESA_RADV_KHR, + eNvidiaProprietary = VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR, + eIntelProprietaryWindows = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR, + eIntelOpenSourceMesa = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR, + eImaginationProprietary = VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR, + eQualcommProprietary = VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR, + eArmProprietary = VK_DRIVER_ID_ARM_PROPRIETARY_KHR + }; + + enum class ConditionalRenderingFlagBitsEXT + { + eInverted = VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT + }; + + using ConditionalRenderingFlagsEXT = Flags<ConditionalRenderingFlagBitsEXT, VkConditionalRenderingFlagsEXT>; + + VULKAN_HPP_INLINE ConditionalRenderingFlagsEXT operator|( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) + { + return ConditionalRenderingFlagsEXT( bit0 ) | bit1; + } + + VULKAN_HPP_INLINE ConditionalRenderingFlagsEXT operator~( ConditionalRenderingFlagBitsEXT bits ) + { + return ~( ConditionalRenderingFlagsEXT( bits ) ); + } + + template <> struct FlagTraits<ConditionalRenderingFlagBitsEXT> + { + enum + { + allFlags = VkFlags(ConditionalRenderingFlagBitsEXT::eInverted) + }; + }; + + struct ConditionalRenderingBeginInfoEXT + { + ConditionalRenderingBeginInfoEXT( Buffer buffer_ = Buffer(), + DeviceSize offset_ = 0, + ConditionalRenderingFlagsEXT flags_ = ConditionalRenderingFlagsEXT() ) + : buffer( buffer_ ) + , offset( offset_ ) + , flags( flags_ ) + { + } + + ConditionalRenderingBeginInfoEXT( VkConditionalRenderingBeginInfoEXT const & rhs ) + { + memcpy( this, &rhs, sizeof( ConditionalRenderingBeginInfoEXT ) ); + } + + ConditionalRenderingBeginInfoEXT& operator=( VkConditionalRenderingBeginInfoEXT const & rhs ) + { + memcpy( this, &rhs, sizeof( ConditionalRenderingBeginInfoEXT ) ); + return *this; + } + ConditionalRenderingBeginInfoEXT& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + ConditionalRenderingBeginInfoEXT& setBuffer( Buffer buffer_ ) + { + buffer = buffer_; + return *this; + } + + ConditionalRenderingBeginInfoEXT& setOffset( DeviceSize offset_ ) + { + offset = offset_; + return *this; + } + + ConditionalRenderingBeginInfoEXT& setFlags( ConditionalRenderingFlagsEXT flags_ ) + { + flags = flags_; + return *this; + } + + operator VkConditionalRenderingBeginInfoEXT const&() const + { + return *reinterpret_cast<const VkConditionalRenderingBeginInfoEXT*>(this); + } + + operator VkConditionalRenderingBeginInfoEXT &() + { + return *reinterpret_cast<VkConditionalRenderingBeginInfoEXT*>(this); + } + + bool operator==( ConditionalRenderingBeginInfoEXT const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( buffer == rhs.buffer ) + && ( offset == rhs.offset ) + && ( flags == rhs.flags ); + } + + bool operator!=( ConditionalRenderingBeginInfoEXT const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::eConditionalRenderingBeginInfoEXT; + + public: + const void* pNext = nullptr; + Buffer buffer; + DeviceSize offset; + ConditionalRenderingFlagsEXT flags; + }; + static_assert( sizeof( ConditionalRenderingBeginInfoEXT ) == sizeof( VkConditionalRenderingBeginInfoEXT ), "struct and wrapper have different size!" ); + + enum class ShadingRatePaletteEntryNV + { + eNoInvocations = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV, + e16InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV, + e8InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV, + e4InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV, + e2InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV, + e1InvocationPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV, + e1InvocationPer2X1Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV, + e1InvocationPer1X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV, + e1InvocationPer2X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV, + e1InvocationPer4X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV, + e1InvocationPer2X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV, + e1InvocationPer4X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV + }; + + struct ShadingRatePaletteNV + { + ShadingRatePaletteNV( uint32_t shadingRatePaletteEntryCount_ = 0, + const ShadingRatePaletteEntryNV* pShadingRatePaletteEntries_ = nullptr ) + : shadingRatePaletteEntryCount( shadingRatePaletteEntryCount_ ) + , pShadingRatePaletteEntries( pShadingRatePaletteEntries_ ) + { + } + + ShadingRatePaletteNV( VkShadingRatePaletteNV const & rhs ) + { + memcpy( this, &rhs, sizeof( ShadingRatePaletteNV ) ); + } + + ShadingRatePaletteNV& operator=( VkShadingRatePaletteNV const & rhs ) + { + memcpy( this, &rhs, sizeof( ShadingRatePaletteNV ) ); + return *this; + } + ShadingRatePaletteNV& setShadingRatePaletteEntryCount( uint32_t shadingRatePaletteEntryCount_ ) + { + shadingRatePaletteEntryCount = shadingRatePaletteEntryCount_; + return *this; + } + + ShadingRatePaletteNV& setPShadingRatePaletteEntries( const ShadingRatePaletteEntryNV* pShadingRatePaletteEntries_ ) + { + pShadingRatePaletteEntries = pShadingRatePaletteEntries_; + return *this; + } + + operator VkShadingRatePaletteNV const&() const + { + return *reinterpret_cast<const VkShadingRatePaletteNV*>(this); + } + + operator VkShadingRatePaletteNV &() + { + return *reinterpret_cast<VkShadingRatePaletteNV*>(this); + } + + bool operator==( ShadingRatePaletteNV const& rhs ) const + { + return ( shadingRatePaletteEntryCount == rhs.shadingRatePaletteEntryCount ) + && ( pShadingRatePaletteEntries == rhs.pShadingRatePaletteEntries ); + } + + bool operator!=( ShadingRatePaletteNV const& rhs ) const + { + return !operator==( rhs ); + } + + uint32_t shadingRatePaletteEntryCount; + const ShadingRatePaletteEntryNV* pShadingRatePaletteEntries; + }; + static_assert( sizeof( ShadingRatePaletteNV ) == sizeof( VkShadingRatePaletteNV ), "struct and wrapper have different size!" ); + + struct PipelineViewportShadingRateImageStateCreateInfoNV + { + PipelineViewportShadingRateImageStateCreateInfoNV( Bool32 shadingRateImageEnable_ = 0, + uint32_t viewportCount_ = 0, + const ShadingRatePaletteNV* pShadingRatePalettes_ = nullptr ) + : shadingRateImageEnable( shadingRateImageEnable_ ) + , viewportCount( viewportCount_ ) + , pShadingRatePalettes( pShadingRatePalettes_ ) + { + } + + PipelineViewportShadingRateImageStateCreateInfoNV( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PipelineViewportShadingRateImageStateCreateInfoNV ) ); + } + + PipelineViewportShadingRateImageStateCreateInfoNV& operator=( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PipelineViewportShadingRateImageStateCreateInfoNV ) ); + return *this; + } + PipelineViewportShadingRateImageStateCreateInfoNV& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + PipelineViewportShadingRateImageStateCreateInfoNV& setShadingRateImageEnable( Bool32 shadingRateImageEnable_ ) + { + shadingRateImageEnable = shadingRateImageEnable_; + return *this; + } + + PipelineViewportShadingRateImageStateCreateInfoNV& setViewportCount( uint32_t viewportCount_ ) + { + viewportCount = viewportCount_; + return *this; + } + + PipelineViewportShadingRateImageStateCreateInfoNV& setPShadingRatePalettes( const ShadingRatePaletteNV* pShadingRatePalettes_ ) + { + pShadingRatePalettes = pShadingRatePalettes_; + return *this; + } + + operator VkPipelineViewportShadingRateImageStateCreateInfoNV const&() const + { + return *reinterpret_cast<const VkPipelineViewportShadingRateImageStateCreateInfoNV*>(this); + } + + operator VkPipelineViewportShadingRateImageStateCreateInfoNV &() + { + return *reinterpret_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV*>(this); + } + + bool operator==( PipelineViewportShadingRateImageStateCreateInfoNV const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( shadingRateImageEnable == rhs.shadingRateImageEnable ) + && ( viewportCount == rhs.viewportCount ) + && ( pShadingRatePalettes == rhs.pShadingRatePalettes ); + } + + bool operator!=( PipelineViewportShadingRateImageStateCreateInfoNV const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV; + + public: + const void* pNext = nullptr; + Bool32 shadingRateImageEnable; + uint32_t viewportCount; + const ShadingRatePaletteNV* pShadingRatePalettes; + }; + static_assert( sizeof( PipelineViewportShadingRateImageStateCreateInfoNV ) == sizeof( VkPipelineViewportShadingRateImageStateCreateInfoNV ), "struct and wrapper have different size!" ); + + struct CoarseSampleOrderCustomNV + { + CoarseSampleOrderCustomNV( ShadingRatePaletteEntryNV shadingRate_ = ShadingRatePaletteEntryNV::eNoInvocations, + uint32_t sampleCount_ = 0, + uint32_t sampleLocationCount_ = 0, + const CoarseSampleLocationNV* pSampleLocations_ = nullptr ) + : shadingRate( shadingRate_ ) + , sampleCount( sampleCount_ ) + , sampleLocationCount( sampleLocationCount_ ) + , pSampleLocations( pSampleLocations_ ) + { + } + + CoarseSampleOrderCustomNV( VkCoarseSampleOrderCustomNV const & rhs ) + { + memcpy( this, &rhs, sizeof( CoarseSampleOrderCustomNV ) ); + } + + CoarseSampleOrderCustomNV& operator=( VkCoarseSampleOrderCustomNV const & rhs ) + { + memcpy( this, &rhs, sizeof( CoarseSampleOrderCustomNV ) ); + return *this; + } + CoarseSampleOrderCustomNV& setShadingRate( ShadingRatePaletteEntryNV shadingRate_ ) + { + shadingRate = shadingRate_; + return *this; + } + + CoarseSampleOrderCustomNV& setSampleCount( uint32_t sampleCount_ ) + { + sampleCount = sampleCount_; + return *this; + } + + CoarseSampleOrderCustomNV& setSampleLocationCount( uint32_t sampleLocationCount_ ) + { + sampleLocationCount = sampleLocationCount_; + return *this; + } + + CoarseSampleOrderCustomNV& setPSampleLocations( const CoarseSampleLocationNV* pSampleLocations_ ) + { + pSampleLocations = pSampleLocations_; + return *this; + } + + operator VkCoarseSampleOrderCustomNV const&() const + { + return *reinterpret_cast<const VkCoarseSampleOrderCustomNV*>(this); + } + + operator VkCoarseSampleOrderCustomNV &() + { + return *reinterpret_cast<VkCoarseSampleOrderCustomNV*>(this); + } + + bool operator==( CoarseSampleOrderCustomNV const& rhs ) const + { + return ( shadingRate == rhs.shadingRate ) + && ( sampleCount == rhs.sampleCount ) + && ( sampleLocationCount == rhs.sampleLocationCount ) + && ( pSampleLocations == rhs.pSampleLocations ); + } + + bool operator!=( CoarseSampleOrderCustomNV const& rhs ) const + { + return !operator==( rhs ); + } + + ShadingRatePaletteEntryNV shadingRate; + uint32_t sampleCount; + uint32_t sampleLocationCount; + const CoarseSampleLocationNV* pSampleLocations; + }; + static_assert( sizeof( CoarseSampleOrderCustomNV ) == sizeof( VkCoarseSampleOrderCustomNV ), "struct and wrapper have different size!" ); + + enum class CoarseSampleOrderTypeNV + { + eDefault = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV, + eCustom = VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV, + ePixelMajor = VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV, + eSampleMajor = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV + }; + + struct PipelineViewportCoarseSampleOrderStateCreateInfoNV + { + PipelineViewportCoarseSampleOrderStateCreateInfoNV( CoarseSampleOrderTypeNV sampleOrderType_ = CoarseSampleOrderTypeNV::eDefault, + uint32_t customSampleOrderCount_ = 0, + const CoarseSampleOrderCustomNV* pCustomSampleOrders_ = nullptr ) + : sampleOrderType( sampleOrderType_ ) + , customSampleOrderCount( customSampleOrderCount_ ) + , pCustomSampleOrders( pCustomSampleOrders_ ) + { + } + + PipelineViewportCoarseSampleOrderStateCreateInfoNV( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PipelineViewportCoarseSampleOrderStateCreateInfoNV ) ); + } + + PipelineViewportCoarseSampleOrderStateCreateInfoNV& operator=( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) + { + memcpy( this, &rhs, sizeof( PipelineViewportCoarseSampleOrderStateCreateInfoNV ) ); + return *this; + } + PipelineViewportCoarseSampleOrderStateCreateInfoNV& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + PipelineViewportCoarseSampleOrderStateCreateInfoNV& setSampleOrderType( CoarseSampleOrderTypeNV sampleOrderType_ ) + { + sampleOrderType = sampleOrderType_; + return *this; + } + + PipelineViewportCoarseSampleOrderStateCreateInfoNV& setCustomSampleOrderCount( uint32_t customSampleOrderCount_ ) + { + customSampleOrderCount = customSampleOrderCount_; + return *this; + } + + PipelineViewportCoarseSampleOrderStateCreateInfoNV& setPCustomSampleOrders( const CoarseSampleOrderCustomNV* pCustomSampleOrders_ ) + { + pCustomSampleOrders = pCustomSampleOrders_; + return *this; + } + + operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const&() const + { + return *reinterpret_cast<const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>(this); + } + + operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV &() + { + return *reinterpret_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>(this); + } + + bool operator==( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( sampleOrderType == rhs.sampleOrderType ) + && ( customSampleOrderCount == rhs.customSampleOrderCount ) + && ( pCustomSampleOrders == rhs.pCustomSampleOrders ); + } + + bool operator!=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV; + + public: + const void* pNext = nullptr; + CoarseSampleOrderTypeNV sampleOrderType; + uint32_t customSampleOrderCount; + const CoarseSampleOrderCustomNV* pCustomSampleOrders; + }; + static_assert( sizeof( PipelineViewportCoarseSampleOrderStateCreateInfoNV ) == sizeof( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV ), "struct and wrapper have different size!" ); + + enum class GeometryInstanceFlagBitsNVX + { + eTriangleCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NVX, + eTriangleCullFlipWinding = VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_FLIP_WINDING_BIT_NVX, + eForceOpaque = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NVX, + eForceNoOpaque = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NVX + }; + + using GeometryInstanceFlagsNVX = Flags<GeometryInstanceFlagBitsNVX, VkGeometryInstanceFlagsNVX>; + + VULKAN_HPP_INLINE GeometryInstanceFlagsNVX operator|( GeometryInstanceFlagBitsNVX bit0, GeometryInstanceFlagBitsNVX bit1 ) + { + return GeometryInstanceFlagsNVX( bit0 ) | bit1; + } + + VULKAN_HPP_INLINE GeometryInstanceFlagsNVX operator~( GeometryInstanceFlagBitsNVX bits ) + { + return ~( GeometryInstanceFlagsNVX( bits ) ); + } + + template <> struct FlagTraits<GeometryInstanceFlagBitsNVX> + { + enum + { + allFlags = VkFlags(GeometryInstanceFlagBitsNVX::eTriangleCullDisable) | VkFlags(GeometryInstanceFlagBitsNVX::eTriangleCullFlipWinding) | VkFlags(GeometryInstanceFlagBitsNVX::eForceOpaque) | VkFlags(GeometryInstanceFlagBitsNVX::eForceNoOpaque) + }; + }; + + enum class GeometryFlagBitsNVX + { + eOpaque = VK_GEOMETRY_OPAQUE_BIT_NVX, + eNoDuplicateAnyHitInvocation = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NVX + }; + + using GeometryFlagsNVX = Flags<GeometryFlagBitsNVX, VkGeometryFlagsNVX>; + + VULKAN_HPP_INLINE GeometryFlagsNVX operator|( GeometryFlagBitsNVX bit0, GeometryFlagBitsNVX bit1 ) + { + return GeometryFlagsNVX( bit0 ) | bit1; + } + + VULKAN_HPP_INLINE GeometryFlagsNVX operator~( GeometryFlagBitsNVX bits ) + { + return ~( GeometryFlagsNVX( bits ) ); + } + + template <> struct FlagTraits<GeometryFlagBitsNVX> + { + enum + { + allFlags = VkFlags(GeometryFlagBitsNVX::eOpaque) | VkFlags(GeometryFlagBitsNVX::eNoDuplicateAnyHitInvocation) + }; + }; + + enum class BuildAccelerationStructureFlagBitsNVX + { + eAllowUpdate = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NVX, + eAllowCompaction = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NVX, + ePreferFastTrace = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NVX, + ePreferFastBuild = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NVX, + eLowMemory = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NVX + }; + + using BuildAccelerationStructureFlagsNVX = Flags<BuildAccelerationStructureFlagBitsNVX, VkBuildAccelerationStructureFlagsNVX>; + + VULKAN_HPP_INLINE BuildAccelerationStructureFlagsNVX operator|( BuildAccelerationStructureFlagBitsNVX bit0, BuildAccelerationStructureFlagBitsNVX bit1 ) + { + return BuildAccelerationStructureFlagsNVX( bit0 ) | bit1; + } + + VULKAN_HPP_INLINE BuildAccelerationStructureFlagsNVX operator~( BuildAccelerationStructureFlagBitsNVX bits ) + { + return ~( BuildAccelerationStructureFlagsNVX( bits ) ); + } + + template <> struct FlagTraits<BuildAccelerationStructureFlagBitsNVX> + { + enum + { + allFlags = VkFlags(BuildAccelerationStructureFlagBitsNVX::eAllowUpdate) | VkFlags(BuildAccelerationStructureFlagBitsNVX::eAllowCompaction) | VkFlags(BuildAccelerationStructureFlagBitsNVX::ePreferFastTrace) | VkFlags(BuildAccelerationStructureFlagBitsNVX::ePreferFastBuild) | VkFlags(BuildAccelerationStructureFlagBitsNVX::eLowMemory) + }; + }; + + enum class CopyAccelerationStructureModeNVX + { + eClone = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NVX, + eCompact = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NVX + }; + + enum class AccelerationStructureTypeNVX + { + eTopLevel = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NVX, + eBottomLevel = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NVX + }; + + enum class GeometryTypeNVX + { + eTriangles = VK_GEOMETRY_TYPE_TRIANGLES_NVX, + eAabbs = VK_GEOMETRY_TYPE_AABBS_NVX + }; + + struct GeometryNVX + { + GeometryNVX( GeometryTypeNVX geometryType_ = GeometryTypeNVX::eTriangles, + GeometryDataNVX geometry_ = GeometryDataNVX(), + GeometryFlagsNVX flags_ = GeometryFlagsNVX() ) + : geometryType( geometryType_ ) + , geometry( geometry_ ) + , flags( flags_ ) + { + } + + GeometryNVX( VkGeometryNVX const & rhs ) + { + memcpy( this, &rhs, sizeof( GeometryNVX ) ); + } + + GeometryNVX& operator=( VkGeometryNVX const & rhs ) + { + memcpy( this, &rhs, sizeof( GeometryNVX ) ); + return *this; + } + GeometryNVX& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + GeometryNVX& setGeometryType( GeometryTypeNVX geometryType_ ) + { + geometryType = geometryType_; + return *this; + } + + GeometryNVX& setGeometry( GeometryDataNVX geometry_ ) + { + geometry = geometry_; + return *this; + } + + GeometryNVX& setFlags( GeometryFlagsNVX flags_ ) + { + flags = flags_; + return *this; + } + + operator VkGeometryNVX const&() const + { + return *reinterpret_cast<const VkGeometryNVX*>(this); + } + + operator VkGeometryNVX &() + { + return *reinterpret_cast<VkGeometryNVX*>(this); + } + + bool operator==( GeometryNVX const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( geometryType == rhs.geometryType ) + && ( geometry == rhs.geometry ) + && ( flags == rhs.flags ); + } + + bool operator!=( GeometryNVX const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::eGeometryNVX; + + public: + const void* pNext = nullptr; + GeometryTypeNVX geometryType; + GeometryDataNVX geometry; + GeometryFlagsNVX flags; + }; + static_assert( sizeof( GeometryNVX ) == sizeof( VkGeometryNVX ), "struct and wrapper have different size!" ); + + struct AccelerationStructureCreateInfoNVX + { + AccelerationStructureCreateInfoNVX( AccelerationStructureTypeNVX type_ = AccelerationStructureTypeNVX::eTopLevel, + BuildAccelerationStructureFlagsNVX flags_ = BuildAccelerationStructureFlagsNVX(), + DeviceSize compactedSize_ = 0, + uint32_t instanceCount_ = 0, + uint32_t geometryCount_ = 0, + const GeometryNVX* pGeometries_ = nullptr ) + : type( type_ ) + , flags( flags_ ) + , compactedSize( compactedSize_ ) + , instanceCount( instanceCount_ ) + , geometryCount( geometryCount_ ) + , pGeometries( pGeometries_ ) + { + } + + AccelerationStructureCreateInfoNVX( VkAccelerationStructureCreateInfoNVX const & rhs ) + { + memcpy( this, &rhs, sizeof( AccelerationStructureCreateInfoNVX ) ); + } + + AccelerationStructureCreateInfoNVX& operator=( VkAccelerationStructureCreateInfoNVX const & rhs ) + { + memcpy( this, &rhs, sizeof( AccelerationStructureCreateInfoNVX ) ); + return *this; + } + AccelerationStructureCreateInfoNVX& setPNext( const void* pNext_ ) + { + pNext = pNext_; + return *this; + } + + AccelerationStructureCreateInfoNVX& setType( AccelerationStructureTypeNVX type_ ) + { + type = type_; + return *this; + } + + AccelerationStructureCreateInfoNVX& setFlags( BuildAccelerationStructureFlagsNVX flags_ ) + { + flags = flags_; + return *this; + } + + AccelerationStructureCreateInfoNVX& setCompactedSize( DeviceSize compactedSize_ ) + { + compactedSize = compactedSize_; + return *this; + } + + AccelerationStructureCreateInfoNVX& setInstanceCount( uint32_t instanceCount_ ) + { + instanceCount = instanceCount_; + return *this; + } + + AccelerationStructureCreateInfoNVX& setGeometryCount( uint32_t geometryCount_ ) + { + geometryCount = geometryCount_; + return *this; + } + + AccelerationStructureCreateInfoNVX& setPGeometries( const GeometryNVX* pGeometries_ ) + { + pGeometries = pGeometries_; + return *this; + } + + operator VkAccelerationStructureCreateInfoNVX const&() const + { + return *reinterpret_cast<const VkAccelerationStructureCreateInfoNVX*>(this); + } + + operator VkAccelerationStructureCreateInfoNVX &() + { + return *reinterpret_cast<VkAccelerationStructureCreateInfoNVX*>(this); + } + + bool operator==( AccelerationStructureCreateInfoNVX const& rhs ) const + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( type == rhs.type ) + && ( flags == rhs.flags ) + && ( compactedSize == rhs.compactedSize ) + && ( instanceCount == rhs.instanceCount ) + && ( geometryCount == rhs.geometryCount ) + && ( pGeometries == rhs.pGeometries ); + } + + bool operator!=( AccelerationStructureCreateInfoNVX const& rhs ) const + { + return !operator==( rhs ); + } + + private: + StructureType sType = StructureType::eAccelerationStructureCreateInfoNVX; + + public: + const void* pNext = nullptr; + AccelerationStructureTypeNVX type; + BuildAccelerationStructureFlagsNVX flags; + DeviceSize compactedSize; + uint32_t instanceCount; + uint32_t geometryCount; + const GeometryNVX* pGeometries; + }; + static_assert( sizeof( AccelerationStructureCreateInfoNVX ) == sizeof( VkAccelerationStructureCreateInfoNVX ), "struct and wrapper have different size!" ); + template<typename Dispatch = DispatchLoaderStatic> Result enumerateInstanceVersion( uint32_t* pApiVersion, Dispatch const &d = Dispatch() ); #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE @@ -30891,6 +36954,16 @@ public: void endQuery( QueryPool queryPool, uint32_t query, Dispatch const &d = Dispatch() ) const; template<typename Dispatch = DispatchLoaderStatic> + void beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch = DispatchLoaderStatic> + void beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, Dispatch const &d = Dispatch() ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch = DispatchLoaderStatic> + void endConditionalRenderingEXT(Dispatch const &d = Dispatch() ) const; + + template<typename Dispatch = DispatchLoaderStatic> void resetQueryPool( QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d = Dispatch() ) const; template<typename Dispatch = DispatchLoaderStatic> @@ -31027,11 +37100,84 @@ public: void writeBufferMarkerAMD( PipelineStageFlagBits pipelineStage, Buffer dstBuffer, DeviceSize dstOffset, uint32_t marker, Dispatch const &d = Dispatch() ) const; template<typename Dispatch = DispatchLoaderStatic> + void beginRenderPass2KHR( const RenderPassBeginInfo* pRenderPassBegin, const SubpassBeginInfoKHR* pSubpassBeginInfo, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch = DispatchLoaderStatic> + void beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfoKHR & subpassBeginInfo, Dispatch const &d = Dispatch() ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch = DispatchLoaderStatic> + void nextSubpass2KHR( const SubpassBeginInfoKHR* pSubpassBeginInfo, const SubpassEndInfoKHR* pSubpassEndInfo, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch = DispatchLoaderStatic> + void nextSubpass2KHR( const SubpassBeginInfoKHR & subpassBeginInfo, const SubpassEndInfoKHR & subpassEndInfo, Dispatch const &d = Dispatch() ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch = DispatchLoaderStatic> + void endRenderPass2KHR( const SubpassEndInfoKHR* pSubpassEndInfo, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch = DispatchLoaderStatic> + void endRenderPass2KHR( const SubpassEndInfoKHR & subpassEndInfo, Dispatch const &d = Dispatch() ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch = DispatchLoaderStatic> void drawIndirectCountKHR( Buffer buffer, DeviceSize offset, Buffer countBuffer, DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d = Dispatch() ) const; template<typename Dispatch = DispatchLoaderStatic> void drawIndexedIndirectCountKHR( Buffer buffer, DeviceSize offset, Buffer countBuffer, DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d = Dispatch() ) const; + template<typename Dispatch = DispatchLoaderStatic> + void setCheckpointNV( const void* pCheckpointMarker, Dispatch const &d = Dispatch() ) const; + + template<typename Dispatch = DispatchLoaderStatic> + void setExclusiveScissorNV( uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const Rect2D* pExclusiveScissors, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch = DispatchLoaderStatic> + void setExclusiveScissorNV( uint32_t firstExclusiveScissor, ArrayProxy<const Rect2D> exclusiveScissors, Dispatch const &d = Dispatch() ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch = DispatchLoaderStatic> + void bindShadingRateImageNV( ImageView imageView, ImageLayout imageLayout, Dispatch const &d = Dispatch() ) const; + + template<typename Dispatch = DispatchLoaderStatic> + void setViewportShadingRatePaletteNV( uint32_t firstViewport, uint32_t viewportCount, const ShadingRatePaletteNV* pShadingRatePalettes, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch = DispatchLoaderStatic> + void setViewportShadingRatePaletteNV( uint32_t firstViewport, ArrayProxy<const ShadingRatePaletteNV> shadingRatePalettes, Dispatch const &d = Dispatch() ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch = DispatchLoaderStatic> + void setCoarseSampleOrderNV( CoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const CoarseSampleOrderCustomNV* pCustomSampleOrders, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch = DispatchLoaderStatic> + void setCoarseSampleOrderNV( CoarseSampleOrderTypeNV sampleOrderType, ArrayProxy<const CoarseSampleOrderCustomNV> customSampleOrders, Dispatch const &d = Dispatch() ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch = DispatchLoaderStatic> + void drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const &d = Dispatch() ) const; + + template<typename Dispatch = DispatchLoaderStatic> + void drawMeshTasksIndirectNV( Buffer buffer, DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d = Dispatch() ) const; + + template<typename Dispatch = DispatchLoaderStatic> + void drawMeshTasksIndirectCountNV( Buffer buffer, DeviceSize offset, Buffer countBuffer, DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d = Dispatch() ) const; + + template<typename Dispatch = DispatchLoaderStatic> + void copyAccelerationStructureNVX( AccelerationStructureNVX dst, AccelerationStructureNVX src, CopyAccelerationStructureModeNVX mode, Dispatch const &d = Dispatch() ) const; + + template<typename Dispatch = DispatchLoaderStatic> + void writeAccelerationStructurePropertiesNVX( AccelerationStructureNVX accelerationStructure, QueryType queryType, QueryPool queryPool, uint32_t query, Dispatch const &d = Dispatch() ) const; + + template<typename Dispatch = DispatchLoaderStatic> + void buildAccelerationStructureNVX( AccelerationStructureTypeNVX type, uint32_t instanceCount, Buffer instanceData, DeviceSize instanceOffset, uint32_t geometryCount, const GeometryNVX* pGeometries, BuildAccelerationStructureFlagsNVX flags, Bool32 update, AccelerationStructureNVX dst, AccelerationStructureNVX src, Buffer scratch, DeviceSize scratchOffset, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch = DispatchLoaderStatic> + void buildAccelerationStructureNVX( AccelerationStructureTypeNVX type, uint32_t instanceCount, Buffer instanceData, DeviceSize instanceOffset, ArrayProxy<const GeometryNVX> geometries, BuildAccelerationStructureFlagsNVX flags, Bool32 update, AccelerationStructureNVX dst, AccelerationStructureNVX src, Buffer scratch, DeviceSize scratchOffset, Dispatch const &d = Dispatch() ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch = DispatchLoaderStatic> + void traceRaysNVX( Buffer raygenShaderBindingTableBuffer, DeviceSize raygenShaderBindingOffset, Buffer missShaderBindingTableBuffer, DeviceSize missShaderBindingOffset, DeviceSize missShaderBindingStride, Buffer hitShaderBindingTableBuffer, DeviceSize hitShaderBindingOffset, DeviceSize hitShaderBindingStride, uint32_t width, uint32_t height, Dispatch const &d = Dispatch() ) const; + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCommandBuffer() const @@ -31595,6 +37741,33 @@ public: } #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin, Dispatch const &d) const + { + d.vkCmdBeginConditionalRenderingEXT( m_commandBuffer, reinterpret_cast<const VkConditionalRenderingBeginInfoEXT*>( pConditionalRenderingBegin ) ); + } +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, Dispatch const &d ) const + { + d.vkCmdBeginConditionalRenderingEXT( m_commandBuffer, reinterpret_cast<const VkConditionalRenderingBeginInfoEXT*>( &conditionalRenderingBegin ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT(Dispatch const &d) const + { + d.vkCmdEndConditionalRenderingEXT( m_commandBuffer ); + } +#else + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT(Dispatch const &d ) const + { + d.vkCmdEndConditionalRenderingEXT( m_commandBuffer ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE template<typename Dispatch> VULKAN_HPP_INLINE void CommandBuffer::resetQueryPool( QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d) const @@ -31974,6 +38147,45 @@ public: } #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( const RenderPassBeginInfo* pRenderPassBegin, const SubpassBeginInfoKHR* pSubpassBeginInfo, Dispatch const &d) const + { + d.vkCmdBeginRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo*>( pRenderPassBegin ), reinterpret_cast<const VkSubpassBeginInfoKHR*>( pSubpassBeginInfo ) ); + } +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfoKHR & subpassBeginInfo, Dispatch const &d ) const + { + d.vkCmdBeginRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo*>( &renderPassBegin ), reinterpret_cast<const VkSubpassBeginInfoKHR*>( &subpassBeginInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( const SubpassBeginInfoKHR* pSubpassBeginInfo, const SubpassEndInfoKHR* pSubpassEndInfo, Dispatch const &d) const + { + d.vkCmdNextSubpass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfoKHR*>( pSubpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfoKHR*>( pSubpassEndInfo ) ); + } +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( const SubpassBeginInfoKHR & subpassBeginInfo, const SubpassEndInfoKHR & subpassEndInfo, Dispatch const &d ) const + { + d.vkCmdNextSubpass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfoKHR*>( &subpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfoKHR*>( &subpassEndInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const SubpassEndInfoKHR* pSubpassEndInfo, Dispatch const &d) const + { + d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfoKHR*>( pSubpassEndInfo ) ); + } +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const SubpassEndInfoKHR & subpassEndInfo, Dispatch const &d ) const + { + d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfoKHR*>( &subpassEndInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE template<typename Dispatch> VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCountKHR( Buffer buffer, DeviceSize offset, Buffer countBuffer, DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d) const @@ -32002,6 +38214,170 @@ public: } #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( const void* pCheckpointMarker, Dispatch const &d) const + { + d.vkCmdSetCheckpointNV( m_commandBuffer, pCheckpointMarker ); + } +#else + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( const void* pCheckpointMarker, Dispatch const &d ) const + { + d.vkCmdSetCheckpointNV( m_commandBuffer, pCheckpointMarker ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const Rect2D* pExclusiveScissors, Dispatch const &d) const + { + d.vkCmdSetExclusiveScissorNV( m_commandBuffer, firstExclusiveScissor, exclusiveScissorCount, reinterpret_cast<const VkRect2D*>( pExclusiveScissors ) ); + } +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( uint32_t firstExclusiveScissor, ArrayProxy<const Rect2D> exclusiveScissors, Dispatch const &d ) const + { + d.vkCmdSetExclusiveScissorNV( m_commandBuffer, firstExclusiveScissor, exclusiveScissors.size() , reinterpret_cast<const VkRect2D*>( exclusiveScissors.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::bindShadingRateImageNV( ImageView imageView, ImageLayout imageLayout, Dispatch const &d) const + { + d.vkCmdBindShadingRateImageNV( m_commandBuffer, static_cast<VkImageView>( imageView ), static_cast<VkImageLayout>( imageLayout ) ); + } +#else + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::bindShadingRateImageNV( ImageView imageView, ImageLayout imageLayout, Dispatch const &d ) const + { + d.vkCmdBindShadingRateImageNV( m_commandBuffer, static_cast<VkImageView>( imageView ), static_cast<VkImageLayout>( imageLayout ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( uint32_t firstViewport, uint32_t viewportCount, const ShadingRatePaletteNV* pShadingRatePalettes, Dispatch const &d) const + { + d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast<const VkShadingRatePaletteNV*>( pShadingRatePalettes ) ); + } +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( uint32_t firstViewport, ArrayProxy<const ShadingRatePaletteNV> shadingRatePalettes, Dispatch const &d ) const + { + d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer, firstViewport, shadingRatePalettes.size() , reinterpret_cast<const VkShadingRatePaletteNV*>( shadingRatePalettes.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::setCoarseSampleOrderNV( CoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const CoarseSampleOrderCustomNV* pCustomSampleOrders, Dispatch const &d) const + { + d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, static_cast<VkCoarseSampleOrderTypeNV>( sampleOrderType ), customSampleOrderCount, reinterpret_cast<const VkCoarseSampleOrderCustomNV*>( pCustomSampleOrders ) ); + } +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::setCoarseSampleOrderNV( CoarseSampleOrderTypeNV sampleOrderType, ArrayProxy<const CoarseSampleOrderCustomNV> customSampleOrders, Dispatch const &d ) const + { + d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, static_cast<VkCoarseSampleOrderTypeNV>( sampleOrderType ), customSampleOrders.size() , reinterpret_cast<const VkCoarseSampleOrderCustomNV*>( customSampleOrders.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const &d) const + { + d.vkCmdDrawMeshTasksNV( m_commandBuffer, taskCount, firstTask ); + } +#else + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const &d ) const + { + d.vkCmdDrawMeshTasksNV( m_commandBuffer, taskCount, firstTask ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectNV( Buffer buffer, DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d) const + { + d.vkCmdDrawMeshTasksIndirectNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), offset, drawCount, stride ); + } +#else + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectNV( Buffer buffer, DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d ) const + { + d.vkCmdDrawMeshTasksIndirectNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), offset, drawCount, stride ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectCountNV( Buffer buffer, DeviceSize offset, Buffer countBuffer, DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d) const + { + d.vkCmdDrawMeshTasksIndirectCountNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), offset, static_cast<VkBuffer>( countBuffer ), countBufferOffset, maxDrawCount, stride ); + } +#else + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectCountNV( Buffer buffer, DeviceSize offset, Buffer countBuffer, DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d ) const + { + d.vkCmdDrawMeshTasksIndirectCountNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), offset, static_cast<VkBuffer>( countBuffer ), countBufferOffset, maxDrawCount, stride ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureNVX( AccelerationStructureNVX dst, AccelerationStructureNVX src, CopyAccelerationStructureModeNVX mode, Dispatch const &d) const + { + d.vkCmdCopyAccelerationStructureNVX( m_commandBuffer, static_cast<VkAccelerationStructureNVX>( dst ), static_cast<VkAccelerationStructureNVX>( src ), static_cast<VkCopyAccelerationStructureModeNVX>( mode ) ); + } +#else + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureNVX( AccelerationStructureNVX dst, AccelerationStructureNVX src, CopyAccelerationStructureModeNVX mode, Dispatch const &d ) const + { + d.vkCmdCopyAccelerationStructureNVX( m_commandBuffer, static_cast<VkAccelerationStructureNVX>( dst ), static_cast<VkAccelerationStructureNVX>( src ), static_cast<VkCopyAccelerationStructureModeNVX>( mode ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructurePropertiesNVX( AccelerationStructureNVX accelerationStructure, QueryType queryType, QueryPool queryPool, uint32_t query, Dispatch const &d) const + { + d.vkCmdWriteAccelerationStructurePropertiesNVX( m_commandBuffer, static_cast<VkAccelerationStructureNVX>( accelerationStructure ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), query ); + } +#else + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructurePropertiesNVX( AccelerationStructureNVX accelerationStructure, QueryType queryType, QueryPool queryPool, uint32_t query, Dispatch const &d ) const + { + d.vkCmdWriteAccelerationStructurePropertiesNVX( m_commandBuffer, static_cast<VkAccelerationStructureNVX>( accelerationStructure ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), query ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureNVX( AccelerationStructureTypeNVX type, uint32_t instanceCount, Buffer instanceData, DeviceSize instanceOffset, uint32_t geometryCount, const GeometryNVX* pGeometries, BuildAccelerationStructureFlagsNVX flags, Bool32 update, AccelerationStructureNVX dst, AccelerationStructureNVX src, Buffer scratch, DeviceSize scratchOffset, Dispatch const &d) const + { + d.vkCmdBuildAccelerationStructureNVX( m_commandBuffer, static_cast<VkAccelerationStructureTypeNVX>( type ), instanceCount, static_cast<VkBuffer>( instanceData ), instanceOffset, geometryCount, reinterpret_cast<const VkGeometryNVX*>( pGeometries ), static_cast<VkBuildAccelerationStructureFlagsNVX>( flags ), update, static_cast<VkAccelerationStructureNVX>( dst ), static_cast<VkAccelerationStructureNVX>( src ), static_cast<VkBuffer>( scratch ), scratchOffset ); + } +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureNVX( AccelerationStructureTypeNVX type, uint32_t instanceCount, Buffer instanceData, DeviceSize instanceOffset, ArrayProxy<const GeometryNVX> geometries, BuildAccelerationStructureFlagsNVX flags, Bool32 update, AccelerationStructureNVX dst, AccelerationStructureNVX src, Buffer scratch, DeviceSize scratchOffset, Dispatch const &d ) const + { + d.vkCmdBuildAccelerationStructureNVX( m_commandBuffer, static_cast<VkAccelerationStructureTypeNVX>( type ), instanceCount, static_cast<VkBuffer>( instanceData ), instanceOffset, geometries.size() , reinterpret_cast<const VkGeometryNVX*>( geometries.data() ), static_cast<VkBuildAccelerationStructureFlagsNVX>( flags ), update, static_cast<VkAccelerationStructureNVX>( dst ), static_cast<VkAccelerationStructureNVX>( src ), static_cast<VkBuffer>( scratch ), scratchOffset ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::traceRaysNVX( Buffer raygenShaderBindingTableBuffer, DeviceSize raygenShaderBindingOffset, Buffer missShaderBindingTableBuffer, DeviceSize missShaderBindingOffset, DeviceSize missShaderBindingStride, Buffer hitShaderBindingTableBuffer, DeviceSize hitShaderBindingOffset, DeviceSize hitShaderBindingStride, uint32_t width, uint32_t height, Dispatch const &d) const + { + d.vkCmdTraceRaysNVX( m_commandBuffer, static_cast<VkBuffer>( raygenShaderBindingTableBuffer ), raygenShaderBindingOffset, static_cast<VkBuffer>( missShaderBindingTableBuffer ), missShaderBindingOffset, missShaderBindingStride, static_cast<VkBuffer>( hitShaderBindingTableBuffer ), hitShaderBindingOffset, hitShaderBindingStride, width, height ); + } +#else + template<typename Dispatch> + VULKAN_HPP_INLINE void CommandBuffer::traceRaysNVX( Buffer raygenShaderBindingTableBuffer, DeviceSize raygenShaderBindingOffset, Buffer missShaderBindingTableBuffer, DeviceSize missShaderBindingOffset, DeviceSize missShaderBindingStride, Buffer hitShaderBindingTableBuffer, DeviceSize hitShaderBindingOffset, DeviceSize hitShaderBindingStride, uint32_t width, uint32_t height, Dispatch const &d ) const + { + d.vkCmdTraceRaysNVX( m_commandBuffer, static_cast<VkBuffer>( raygenShaderBindingTableBuffer ), raygenShaderBindingOffset, static_cast<VkBuffer>( missShaderBindingTableBuffer ), missShaderBindingOffset, missShaderBindingStride, static_cast<VkBuffer>( hitShaderBindingTableBuffer ), hitShaderBindingOffset, hitShaderBindingStride, width, height ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + struct SubmitInfo { SubmitInfo( uint32_t waitSemaphoreCount_ = 0, @@ -32079,11 +38455,16 @@ public: return *this; } - operator const VkSubmitInfo&() const + operator VkSubmitInfo const&() const { return *reinterpret_cast<const VkSubmitInfo*>(this); } + operator VkSubmitInfo &() + { + return *reinterpret_cast<VkSubmitInfo*>(this); + } + bool operator==( SubmitInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -32207,6 +38588,13 @@ public: void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + template<typename Dispatch = DispatchLoaderStatic> + void getCheckpointDataNV( uint32_t* pCheckpointDataCount, CheckpointDataNV* pCheckpointData, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template <typename Allocator = std::allocator<CheckpointDataNV>, typename Dispatch = DispatchLoaderStatic> + std::vector<CheckpointDataNV,Allocator> getCheckpointDataNV(Dispatch const &d = Dispatch() ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkQueue() const @@ -32327,63 +38715,83 @@ public: } #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + template<typename Dispatch> + VULKAN_HPP_INLINE void Queue::getCheckpointDataNV( uint32_t* pCheckpointDataCount, CheckpointDataNV* pCheckpointData, Dispatch const &d) const + { + d.vkGetQueueCheckpointDataNV( m_queue, pCheckpointDataCount, reinterpret_cast<VkCheckpointDataNV*>( pCheckpointData ) ); + } +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template <typename Allocator, typename Dispatch> + VULKAN_HPP_INLINE std::vector<CheckpointDataNV,Allocator> Queue::getCheckpointDataNV(Dispatch const &d ) const + { + std::vector<CheckpointDataNV,Allocator> checkpointData; + uint32_t checkpointDataCount; + d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr ); + checkpointData.resize( checkpointDataCount ); + d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, reinterpret_cast<VkCheckpointDataNV*>( checkpointData.data() ) ); + return checkpointData; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + #ifndef VULKAN_HPP_NO_SMART_HANDLE class Device; - template <> class UniqueHandleTraits<Buffer> {public: using deleter = ObjectDestroy<Device>; }; - using UniqueBuffer = UniqueHandle<Buffer>; - template <> class UniqueHandleTraits<BufferView> {public: using deleter = ObjectDestroy<Device>; }; - using UniqueBufferView = UniqueHandle<BufferView>; - template <> class UniqueHandleTraits<CommandBuffer> {public: using deleter = PoolFree<Device, CommandPool>; }; - using UniqueCommandBuffer = UniqueHandle<CommandBuffer>; - template <> class UniqueHandleTraits<CommandPool> {public: using deleter = ObjectDestroy<Device>; }; - using UniqueCommandPool = UniqueHandle<CommandPool>; - template <> class UniqueHandleTraits<DescriptorPool> {public: using deleter = ObjectDestroy<Device>; }; - using UniqueDescriptorPool = UniqueHandle<DescriptorPool>; - template <> class UniqueHandleTraits<DescriptorSet> {public: using deleter = PoolFree<Device, DescriptorPool>; }; - using UniqueDescriptorSet = UniqueHandle<DescriptorSet>; - template <> class UniqueHandleTraits<DescriptorSetLayout> {public: using deleter = ObjectDestroy<Device>; }; - using UniqueDescriptorSetLayout = UniqueHandle<DescriptorSetLayout>; - template <> class UniqueHandleTraits<DescriptorUpdateTemplate> {public: using deleter = ObjectDestroy<Device>; }; - using UniqueDescriptorUpdateTemplate = UniqueHandle<DescriptorUpdateTemplate>; - template <> class UniqueHandleTraits<DeviceMemory> {public: using deleter = ObjectFree<Device>; }; - using UniqueDeviceMemory = UniqueHandle<DeviceMemory>; - template <> class UniqueHandleTraits<Event> {public: using deleter = ObjectDestroy<Device>; }; - using UniqueEvent = UniqueHandle<Event>; - template <> class UniqueHandleTraits<Fence> {public: using deleter = ObjectDestroy<Device>; }; - using UniqueFence = UniqueHandle<Fence>; - template <> class UniqueHandleTraits<Framebuffer> {public: using deleter = ObjectDestroy<Device>; }; - using UniqueFramebuffer = UniqueHandle<Framebuffer>; - template <> class UniqueHandleTraits<Image> {public: using deleter = ObjectDestroy<Device>; }; - using UniqueImage = UniqueHandle<Image>; - template <> class UniqueHandleTraits<ImageView> {public: using deleter = ObjectDestroy<Device>; }; - using UniqueImageView = UniqueHandle<ImageView>; - template <> class UniqueHandleTraits<IndirectCommandsLayoutNVX> {public: using deleter = ObjectDestroy<Device>; }; - using UniqueIndirectCommandsLayoutNVX = UniqueHandle<IndirectCommandsLayoutNVX>; - template <> class UniqueHandleTraits<ObjectTableNVX> {public: using deleter = ObjectDestroy<Device>; }; - using UniqueObjectTableNVX = UniqueHandle<ObjectTableNVX>; - template <> class UniqueHandleTraits<Pipeline> {public: using deleter = ObjectDestroy<Device>; }; - using UniquePipeline = UniqueHandle<Pipeline>; - template <> class UniqueHandleTraits<PipelineCache> {public: using deleter = ObjectDestroy<Device>; }; - using UniquePipelineCache = UniqueHandle<PipelineCache>; - template <> class UniqueHandleTraits<PipelineLayout> {public: using deleter = ObjectDestroy<Device>; }; - using UniquePipelineLayout = UniqueHandle<PipelineLayout>; - template <> class UniqueHandleTraits<QueryPool> {public: using deleter = ObjectDestroy<Device>; }; - using UniqueQueryPool = UniqueHandle<QueryPool>; - template <> class UniqueHandleTraits<RenderPass> {public: using deleter = ObjectDestroy<Device>; }; - using UniqueRenderPass = UniqueHandle<RenderPass>; - template <> class UniqueHandleTraits<Sampler> {public: using deleter = ObjectDestroy<Device>; }; - using UniqueSampler = UniqueHandle<Sampler>; - template <> class UniqueHandleTraits<SamplerYcbcrConversion> {public: using deleter = ObjectDestroy<Device>; }; - using UniqueSamplerYcbcrConversion = UniqueHandle<SamplerYcbcrConversion>; - template <> class UniqueHandleTraits<Semaphore> {public: using deleter = ObjectDestroy<Device>; }; - using UniqueSemaphore = UniqueHandle<Semaphore>; - template <> class UniqueHandleTraits<ShaderModule> {public: using deleter = ObjectDestroy<Device>; }; - using UniqueShaderModule = UniqueHandle<ShaderModule>; - template <> class UniqueHandleTraits<SwapchainKHR> {public: using deleter = ObjectDestroy<Device>; }; - using UniqueSwapchainKHR = UniqueHandle<SwapchainKHR>; - template <> class UniqueHandleTraits<ValidationCacheEXT> {public: using deleter = ObjectDestroy<Device>; }; - using UniqueValidationCacheEXT = UniqueHandle<ValidationCacheEXT>; + template <typename Dispatch> class UniqueHandleTraits<AccelerationStructureNVX,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniqueAccelerationStructureNVX = UniqueHandle<AccelerationStructureNVX,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<Buffer,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniqueBuffer = UniqueHandle<Buffer,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<BufferView,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniqueBufferView = UniqueHandle<BufferView,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<CommandBuffer,Dispatch> {public: using deleter = PoolFree<Device, CommandPool,Dispatch>; }; + using UniqueCommandBuffer = UniqueHandle<CommandBuffer,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<CommandPool,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniqueCommandPool = UniqueHandle<CommandPool,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<DescriptorPool,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniqueDescriptorPool = UniqueHandle<DescriptorPool,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<DescriptorSet,Dispatch> {public: using deleter = PoolFree<Device, DescriptorPool,Dispatch>; }; + using UniqueDescriptorSet = UniqueHandle<DescriptorSet,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<DescriptorSetLayout,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniqueDescriptorSetLayout = UniqueHandle<DescriptorSetLayout,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<DescriptorUpdateTemplate,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniqueDescriptorUpdateTemplate = UniqueHandle<DescriptorUpdateTemplate,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<DeviceMemory,Dispatch> {public: using deleter = ObjectFree<Device,Dispatch>; }; + using UniqueDeviceMemory = UniqueHandle<DeviceMemory,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<Event,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniqueEvent = UniqueHandle<Event,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<Fence,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniqueFence = UniqueHandle<Fence,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<Framebuffer,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniqueFramebuffer = UniqueHandle<Framebuffer,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<Image,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniqueImage = UniqueHandle<Image,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<ImageView,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniqueImageView = UniqueHandle<ImageView,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<IndirectCommandsLayoutNVX,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniqueIndirectCommandsLayoutNVX = UniqueHandle<IndirectCommandsLayoutNVX,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<ObjectTableNVX,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniqueObjectTableNVX = UniqueHandle<ObjectTableNVX,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<Pipeline,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniquePipeline = UniqueHandle<Pipeline,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<PipelineCache,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniquePipelineCache = UniqueHandle<PipelineCache,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<PipelineLayout,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniquePipelineLayout = UniqueHandle<PipelineLayout,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<QueryPool,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniqueQueryPool = UniqueHandle<QueryPool,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<RenderPass,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniqueRenderPass = UniqueHandle<RenderPass,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<Sampler,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniqueSampler = UniqueHandle<Sampler,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<SamplerYcbcrConversion,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniqueSamplerYcbcrConversion = UniqueHandle<SamplerYcbcrConversion,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<Semaphore,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniqueSemaphore = UniqueHandle<Semaphore,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<ShaderModule,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniqueShaderModule = UniqueHandle<ShaderModule,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<SwapchainKHR,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniqueSwapchainKHR = UniqueHandle<SwapchainKHR,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<ValidationCacheEXT,Dispatch> {public: using deleter = ObjectDestroy<Device,Dispatch>; }; + using UniqueValidationCacheEXT = UniqueHandle<ValidationCacheEXT,DispatchLoaderStatic>; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ class Device @@ -32466,7 +38874,7 @@ public: ResultValueType<DeviceMemory>::type allocateMemory( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueDeviceMemory>::type allocateMemoryUnique( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<DeviceMemory,Dispatch>>::type allocateMemoryUnique( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -32559,7 +38967,7 @@ public: ResultValueType<Fence>::type createFence( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueFence>::type createFenceUnique( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<Fence,Dispatch>>::type createFenceUnique( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -32601,7 +39009,7 @@ public: ResultValueType<Semaphore>::type createSemaphore( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueSemaphore>::type createSemaphoreUnique( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<Semaphore,Dispatch>>::type createSemaphoreUnique( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -32626,7 +39034,7 @@ public: ResultValueType<Event>::type createEvent( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueEvent>::type createEventUnique( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<Event,Dispatch>>::type createEventUnique( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -32670,7 +39078,7 @@ public: ResultValueType<QueryPool>::type createQueryPool( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueQueryPool>::type createQueryPoolUnique( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<QueryPool,Dispatch>>::type createQueryPoolUnique( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -32702,7 +39110,7 @@ public: ResultValueType<Buffer>::type createBuffer( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueBuffer>::type createBufferUnique( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<Buffer,Dispatch>>::type createBufferUnique( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -32727,7 +39135,7 @@ public: ResultValueType<BufferView>::type createBufferView( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueBufferView>::type createBufferViewUnique( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<BufferView,Dispatch>>::type createBufferViewUnique( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -32752,7 +39160,7 @@ public: ResultValueType<Image>::type createImage( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueImage>::type createImageUnique( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<Image,Dispatch>>::type createImageUnique( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -32784,7 +39192,7 @@ public: ResultValueType<ImageView>::type createImageView( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueImageView>::type createImageViewUnique( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<ImageView,Dispatch>>::type createImageViewUnique( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -32809,7 +39217,7 @@ public: ResultValueType<ShaderModule>::type createShaderModule( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueShaderModule>::type createShaderModuleUnique( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<ShaderModule,Dispatch>>::type createShaderModuleUnique( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -32834,7 +39242,7 @@ public: ResultValueType<PipelineCache>::type createPipelineCache( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniquePipelineCache>::type createPipelineCacheUnique( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<PipelineCache,Dispatch>>::type createPipelineCacheUnique( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -32875,9 +39283,9 @@ public: ResultValueType<Pipeline>::type createGraphicsPipeline( PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template <typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = DispatchLoaderStatic> - typename ResultValueType<std::vector<UniquePipeline,Allocator>>::type createGraphicsPipelinesUnique( PipelineCache pipelineCache, ArrayProxy<const GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type createGraphicsPipelinesUnique( PipelineCache pipelineCache, ArrayProxy<const GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; template <typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniquePipeline>::type createGraphicsPipelineUnique( PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<Pipeline,Dispatch>>::type createGraphicsPipelineUnique( PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -32890,9 +39298,9 @@ public: ResultValueType<Pipeline>::type createComputePipeline( PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template <typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = DispatchLoaderStatic> - typename ResultValueType<std::vector<UniquePipeline,Allocator>>::type createComputePipelinesUnique( PipelineCache pipelineCache, ArrayProxy<const ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type createComputePipelinesUnique( PipelineCache pipelineCache, ArrayProxy<const ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; template <typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniquePipeline>::type createComputePipelineUnique( PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<Pipeline,Dispatch>>::type createComputePipelineUnique( PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -32917,7 +39325,7 @@ public: ResultValueType<PipelineLayout>::type createPipelineLayout( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniquePipelineLayout>::type createPipelineLayoutUnique( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<PipelineLayout,Dispatch>>::type createPipelineLayoutUnique( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -32942,7 +39350,7 @@ public: ResultValueType<Sampler>::type createSampler( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueSampler>::type createSamplerUnique( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<Sampler,Dispatch>>::type createSamplerUnique( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -32967,7 +39375,7 @@ public: ResultValueType<DescriptorSetLayout>::type createDescriptorSetLayout( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueDescriptorSetLayout>::type createDescriptorSetLayoutUnique( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<DescriptorSetLayout,Dispatch>>::type createDescriptorSetLayoutUnique( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -32992,7 +39400,7 @@ public: ResultValueType<DescriptorPool>::type createDescriptorPool( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueDescriptorPool>::type createDescriptorPoolUnique( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<DescriptorPool,Dispatch>>::type createDescriptorPoolUnique( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -33025,7 +39433,7 @@ public: typename ResultValueType<std::vector<DescriptorSet,Allocator>>::type allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template <typename Allocator = std::allocator<UniqueDescriptorSet>, typename Dispatch = DispatchLoaderStatic> - typename ResultValueType<std::vector<UniqueDescriptorSet,Allocator>>::type allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<std::vector<UniqueHandle<DescriptorSet,Dispatch>,Allocator>>::type allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -33057,7 +39465,7 @@ public: ResultValueType<Framebuffer>::type createFramebuffer( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueFramebuffer>::type createFramebufferUnique( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<Framebuffer,Dispatch>>::type createFramebufferUnique( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -33082,7 +39490,7 @@ public: ResultValueType<RenderPass>::type createRenderPass( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueRenderPass>::type createRenderPassUnique( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<RenderPass,Dispatch>>::type createRenderPassUnique( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -33114,7 +39522,7 @@ public: ResultValueType<CommandPool>::type createCommandPool( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueCommandPool>::type createCommandPoolUnique( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<CommandPool,Dispatch>>::type createCommandPoolUnique( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -33147,7 +39555,7 @@ public: typename ResultValueType<std::vector<CommandBuffer,Allocator>>::type allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template <typename Allocator = std::allocator<UniqueCommandBuffer>, typename Dispatch = DispatchLoaderStatic> - typename ResultValueType<std::vector<UniqueCommandBuffer,Allocator>>::type allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<std::vector<UniqueHandle<CommandBuffer,Dispatch>,Allocator>>::type allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -33174,9 +39582,9 @@ public: ResultValueType<SwapchainKHR>::type createSharedSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template <typename Allocator = std::allocator<UniqueSwapchainKHR>, typename Dispatch = DispatchLoaderStatic> - typename ResultValueType<std::vector<UniqueSwapchainKHR,Allocator>>::type createSharedSwapchainsKHRUnique( ArrayProxy<const SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR,Dispatch>,Allocator>>::type createSharedSwapchainsKHRUnique( ArrayProxy<const SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; template <typename Allocator = std::allocator<UniqueSwapchainKHR>, typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueSwapchainKHR>::type createSharedSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<SwapchainKHR,Dispatch>>::type createSharedSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -33187,7 +39595,7 @@ public: ResultValueType<SwapchainKHR>::type createSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueSwapchainKHR>::type createSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<SwapchainKHR,Dispatch>>::type createSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -33249,7 +39657,7 @@ public: ResultValueType<IndirectCommandsLayoutNVX>::type createIndirectCommandsLayoutNVX( const IndirectCommandsLayoutCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueIndirectCommandsLayoutNVX>::type createIndirectCommandsLayoutNVXUnique( const IndirectCommandsLayoutCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<IndirectCommandsLayoutNVX,Dispatch>>::type createIndirectCommandsLayoutNVXUnique( const IndirectCommandsLayoutCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -33274,7 +39682,7 @@ public: ResultValueType<ObjectTableNVX>::type createObjectTableNVX( const ObjectTableCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueObjectTableNVX>::type createObjectTableNVXUnique( const ObjectTableCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<ObjectTableNVX,Dispatch>>::type createObjectTableNVXUnique( const ObjectTableCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -33506,7 +39914,7 @@ public: ResultValueType<DescriptorUpdateTemplate>::type createDescriptorUpdateTemplate( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueDescriptorUpdateTemplate>::type createDescriptorUpdateTemplateUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<DescriptorUpdateTemplate,Dispatch>>::type createDescriptorUpdateTemplateUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -33517,7 +39925,7 @@ public: ResultValueType<DescriptorUpdateTemplate>::type createDescriptorUpdateTemplateKHR( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueDescriptorUpdateTemplate>::type createDescriptorUpdateTemplateKHRUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<DescriptorUpdateTemplate,Dispatch>>::type createDescriptorUpdateTemplateKHRUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -33577,8 +39985,8 @@ public: #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template<typename Dispatch = DispatchLoaderStatic> MemoryRequirements2 getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const; - template <typename ...T, typename Dispatch = DispatchLoaderStatic> - StructureChain<T...> getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const; + template <typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderStatic> + StructureChain<X, Y, Z...> getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template<typename Dispatch = DispatchLoaderStatic> @@ -33586,8 +39994,8 @@ public: #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template<typename Dispatch = DispatchLoaderStatic> MemoryRequirements2 getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const; - template <typename ...T, typename Dispatch = DispatchLoaderStatic> - StructureChain<T...> getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const; + template <typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderStatic> + StructureChain<X, Y, Z...> getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template<typename Dispatch = DispatchLoaderStatic> @@ -33595,8 +40003,8 @@ public: #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template<typename Dispatch = DispatchLoaderStatic> MemoryRequirements2 getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const; - template <typename ...T, typename Dispatch = DispatchLoaderStatic> - StructureChain<T...> getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const; + template <typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderStatic> + StructureChain<X, Y, Z...> getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template<typename Dispatch = DispatchLoaderStatic> @@ -33604,8 +40012,8 @@ public: #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template<typename Dispatch = DispatchLoaderStatic> MemoryRequirements2 getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const; - template <typename ...T, typename Dispatch = DispatchLoaderStatic> - StructureChain<T...> getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const; + template <typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderStatic> + StructureChain<X, Y, Z...> getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template<typename Dispatch = DispatchLoaderStatic> @@ -33629,7 +40037,7 @@ public: ResultValueType<SamplerYcbcrConversion>::type createSamplerYcbcrConversion( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueSamplerYcbcrConversion>::type createSamplerYcbcrConversionUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<SamplerYcbcrConversion,Dispatch>>::type createSamplerYcbcrConversionUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -33640,7 +40048,7 @@ public: ResultValueType<SamplerYcbcrConversion>::type createSamplerYcbcrConversionKHR( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueSamplerYcbcrConversion>::type createSamplerYcbcrConversionKHRUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<SamplerYcbcrConversion,Dispatch>>::type createSamplerYcbcrConversionKHRUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -33679,7 +40087,7 @@ public: ResultValueType<ValidationCacheEXT>::type createValidationCacheEXT( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueValidationCacheEXT>::type createValidationCacheEXTUnique( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<ValidationCacheEXT,Dispatch>>::type createValidationCacheEXTUnique( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -33716,8 +40124,8 @@ public: #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template<typename Dispatch = DispatchLoaderStatic> DescriptorSetLayoutSupport getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d = Dispatch() ) const; - template <typename ...T, typename Dispatch = DispatchLoaderStatic> - StructureChain<T...> getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d = Dispatch() ) const; + template <typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderStatic> + StructureChain<X, Y, Z...> getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template<typename Dispatch = DispatchLoaderStatic> @@ -33725,8 +40133,8 @@ public: #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template<typename Dispatch = DispatchLoaderStatic> DescriptorSetLayoutSupport getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d = Dispatch() ) const; - template <typename ...T, typename Dispatch = DispatchLoaderStatic> - StructureChain<T...> getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d = Dispatch() ) const; + template <typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderStatic> + StructureChain<X, Y, Z...> getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template<typename Dispatch = DispatchLoaderStatic> @@ -33757,14 +40165,25 @@ public: ResultValueType<MemoryHostPointerPropertiesEXT>::type getMemoryHostPointerPropertiesEXT( ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + template<typename Dispatch = DispatchLoaderStatic> + Result createRenderPass2KHR( const RenderPassCreateInfo2KHR* pCreateInfo, const AllocationCallbacks* pAllocator, RenderPass* pRenderPass, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch = DispatchLoaderStatic> + ResultValueType<RenderPass>::type createRenderPass2KHR( const RenderPassCreateInfo2KHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_NO_SMART_HANDLE + template<typename Dispatch = DispatchLoaderStatic> + typename ResultValueType<UniqueHandle<RenderPass,Dispatch>>::type createRenderPass2KHRUnique( const RenderPassCreateInfo2KHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; +#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + #ifdef VK_USE_PLATFORM_ANDROID_ANDROID template<typename Dispatch = DispatchLoaderStatic> Result getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer* buffer, AndroidHardwareBufferPropertiesANDROID* pProperties, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template<typename Dispatch = DispatchLoaderStatic> ResultValueType<AndroidHardwareBufferPropertiesANDROID>::type getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d = Dispatch() ) const; - template <typename ...T, typename Dispatch = DispatchLoaderStatic> - typename ResultValueType<StructureChain<T...>>::type getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d = Dispatch() ) const; + template <typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderStatic> + typename ResultValueType<StructureChain<X, Y, Z...>>::type getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ #endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/ @@ -33777,6 +40196,89 @@ public: #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ #endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/ +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch = DispatchLoaderStatic> + Result compileDeferredNVX( Pipeline pipeline, uint32_t shader, Dispatch const &d = Dispatch() ) const; +#else + template<typename Dispatch = DispatchLoaderStatic> + ResultValueType<void>::type compileDeferredNVX( Pipeline pipeline, uint32_t shader, Dispatch const &d = Dispatch() ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch = DispatchLoaderStatic> + Result createAccelerationStructureNVX( const AccelerationStructureCreateInfoNVX* pCreateInfo, const AllocationCallbacks* pAllocator, AccelerationStructureNVX* pAccelerationStructure, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch = DispatchLoaderStatic> + ResultValueType<AccelerationStructureNVX>::type createAccelerationStructureNVX( const AccelerationStructureCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_NO_SMART_HANDLE + template<typename Dispatch = DispatchLoaderStatic> + typename ResultValueType<UniqueHandle<AccelerationStructureNVX,Dispatch>>::type createAccelerationStructureNVXUnique( const AccelerationStructureCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; +#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch = DispatchLoaderStatic> + void destroyAccelerationStructureNVX( AccelerationStructureNVX accelerationStructure, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch = DispatchLoaderStatic> + void destroyAccelerationStructureNVX( AccelerationStructureNVX accelerationStructure, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch = DispatchLoaderStatic> + void destroy( AccelerationStructureNVX accelerationStructure, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch = DispatchLoaderStatic> + void destroy( AccelerationStructureNVX accelerationStructure, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch = DispatchLoaderStatic> + void getAccelerationStructureMemoryRequirementsNVX( const AccelerationStructureMemoryRequirementsInfoNVX* pInfo, MemoryRequirements2KHR* pMemoryRequirements, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch = DispatchLoaderStatic> + MemoryRequirements2KHR getAccelerationStructureMemoryRequirementsNVX( const AccelerationStructureMemoryRequirementsInfoNVX & info, Dispatch const &d = Dispatch() ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch = DispatchLoaderStatic> + void getAccelerationStructureScratchMemoryRequirementsNVX( const AccelerationStructureMemoryRequirementsInfoNVX* pInfo, MemoryRequirements2KHR* pMemoryRequirements, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch = DispatchLoaderStatic> + MemoryRequirements2KHR getAccelerationStructureScratchMemoryRequirementsNVX( const AccelerationStructureMemoryRequirementsInfoNVX & info, Dispatch const &d = Dispatch() ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch = DispatchLoaderStatic> + Result bindAccelerationStructureMemoryNVX( uint32_t bindInfoCount, const BindAccelerationStructureMemoryInfoNVX* pBindInfos, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch = DispatchLoaderStatic> + ResultValueType<void>::type bindAccelerationStructureMemoryNVX( ArrayProxy<const BindAccelerationStructureMemoryInfoNVX> bindInfos, Dispatch const &d = Dispatch() ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch = DispatchLoaderStatic> + Result getRaytracingShaderHandlesNVX( Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template <typename T, typename Dispatch = DispatchLoaderStatic> + ResultValueType<void>::type getRaytracingShaderHandlesNVX( Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy<T> data, Dispatch const &d = Dispatch() ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch = DispatchLoaderStatic> + Result getAccelerationStructureHandleNVX( AccelerationStructureNVX accelerationStructure, size_t dataSize, void* pData, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template <typename T, typename Dispatch = DispatchLoaderStatic> + ResultValueType<void>::type getAccelerationStructureHandleNVX( AccelerationStructureNVX accelerationStructure, ArrayProxy<T> data, Dispatch const &d = Dispatch() ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch = DispatchLoaderStatic> + Result createRaytracingPipelinesNVX( PipelineCache pipelineCache, uint32_t createInfoCount, const RaytracingPipelineCreateInfoNVX* pCreateInfos, const AllocationCallbacks* pAllocator, Pipeline* pPipelines, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template <typename Allocator = std::allocator<Pipeline>, typename Dispatch = DispatchLoaderStatic> + typename ResultValueType<std::vector<Pipeline,Allocator>>::type createRaytracingPipelinesNVX( PipelineCache pipelineCache, ArrayProxy<const RaytracingPipelineCreateInfoNVX> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + template <typename Allocator = std::allocator<Pipeline>, typename Dispatch = DispatchLoaderStatic> + ResultValueType<Pipeline>::type createRaytracingPipelineNVX( PipelineCache pipelineCache, const RaytracingPipelineCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_NO_SMART_HANDLE + template <typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = DispatchLoaderStatic> + typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type createRaytracingPipelinesNVXUnique( PipelineCache pipelineCache, ArrayProxy<const RaytracingPipelineCreateInfoNVX> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + template <typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = DispatchLoaderStatic> + typename ResultValueType<UniqueHandle<Pipeline,Dispatch>>::type createRaytracingPipelineNVXUnique( PipelineCache pipelineCache, const RaytracingPipelineCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; +#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDevice() const @@ -33871,13 +40373,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueDeviceMemory>::type Device::allocateMemoryUnique( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DeviceMemory,Dispatch>>::type Device::allocateMemoryUnique( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { DeviceMemory memory; Result result = static_cast<Result>( d.vkAllocateMemory( m_device, reinterpret_cast<const VkMemoryAllocateInfo*>( &allocateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDeviceMemory*>( &memory ) ) ); - ObjectFree<Device> deleter( *this, allocator ); - return createResultValue( result, memory, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateMemoryUnique", deleter ); + ObjectFree<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<DeviceMemory,Dispatch>( result, memory, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateMemoryUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -34073,13 +40575,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueFence>::type Device::createFenceUnique( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Fence,Dispatch>>::type Device::createFenceUnique( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { Fence fence; Result result = static_cast<Result>( d.vkCreateFence( m_device, reinterpret_cast<const VkFenceCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence*>( &fence ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::createFenceUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<Fence,Dispatch>( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::createFenceUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -34168,13 +40670,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueSemaphore>::type Device::createSemaphoreUnique( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Semaphore,Dispatch>>::type Device::createSemaphoreUnique( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { Semaphore semaphore; Result result = static_cast<Result>( d.vkCreateSemaphore( m_device, reinterpret_cast<const VkSemaphoreCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSemaphore*>( &semaphore ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, semaphore, VULKAN_HPP_NAMESPACE_STRING"::Device::createSemaphoreUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<Semaphore,Dispatch>( result, semaphore, VULKAN_HPP_NAMESPACE_STRING"::Device::createSemaphoreUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -34220,13 +40722,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueEvent>::type Device::createEventUnique( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Event,Dispatch>>::type Device::createEventUnique( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { Event event; Result result = static_cast<Result>( d.vkCreateEvent( m_device, reinterpret_cast<const VkEventCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkEvent*>( &event ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, event, VULKAN_HPP_NAMESPACE_STRING"::Device::createEventUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<Event,Dispatch>( result, event, VULKAN_HPP_NAMESPACE_STRING"::Device::createEventUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -34317,13 +40819,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueQueryPool>::type Device::createQueryPoolUnique( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<QueryPool,Dispatch>>::type Device::createQueryPoolUnique( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { QueryPool queryPool; Result result = static_cast<Result>( d.vkCreateQueryPool( m_device, reinterpret_cast<const VkQueryPoolCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkQueryPool*>( &queryPool ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, queryPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createQueryPoolUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<QueryPool,Dispatch>( result, queryPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createQueryPoolUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -34383,13 +40885,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueBuffer>::type Device::createBufferUnique( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Buffer,Dispatch>>::type Device::createBufferUnique( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { Buffer buffer; Result result = static_cast<Result>( d.vkCreateBuffer( m_device, reinterpret_cast<const VkBufferCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkBuffer*>( &buffer ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createBufferUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<Buffer,Dispatch>( result, buffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createBufferUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -34435,13 +40937,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueBufferView>::type Device::createBufferViewUnique( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<BufferView,Dispatch>>::type Device::createBufferViewUnique( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { BufferView view; Result result = static_cast<Result>( d.vkCreateBufferView( m_device, reinterpret_cast<const VkBufferViewCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkBufferView*>( &view ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createBufferViewUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<BufferView,Dispatch>( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createBufferViewUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -34487,13 +40989,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueImage>::type Device::createImageUnique( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Image,Dispatch>>::type Device::createImageUnique( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { Image image; Result result = static_cast<Result>( d.vkCreateImage( m_device, reinterpret_cast<const VkImageCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkImage*>( &image ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, image, VULKAN_HPP_NAMESPACE_STRING"::Device::createImageUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<Image,Dispatch>( result, image, VULKAN_HPP_NAMESPACE_STRING"::Device::createImageUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -34554,13 +41056,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueImageView>::type Device::createImageViewUnique( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<ImageView,Dispatch>>::type Device::createImageViewUnique( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { ImageView view; Result result = static_cast<Result>( d.vkCreateImageView( m_device, reinterpret_cast<const VkImageViewCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkImageView*>( &view ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createImageViewUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<ImageView,Dispatch>( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createImageViewUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -34606,13 +41108,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueShaderModule>::type Device::createShaderModuleUnique( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<ShaderModule,Dispatch>>::type Device::createShaderModuleUnique( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { ShaderModule shaderModule; Result result = static_cast<Result>( d.vkCreateShaderModule( m_device, reinterpret_cast<const VkShaderModuleCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkShaderModule*>( &shaderModule ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, shaderModule, VULKAN_HPP_NAMESPACE_STRING"::Device::createShaderModuleUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<ShaderModule,Dispatch>( result, shaderModule, VULKAN_HPP_NAMESPACE_STRING"::Device::createShaderModuleUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -34658,13 +41160,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniquePipelineCache>::type Device::createPipelineCacheUnique( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<PipelineCache,Dispatch>>::type Device::createPipelineCacheUnique( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { PipelineCache pipelineCache; Result result = static_cast<Result>( d.vkCreatePipelineCache( m_device, reinterpret_cast<const VkPipelineCacheCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipelineCache*>( &pipelineCache ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineCacheUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<PipelineCache,Dispatch>( result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineCacheUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -34758,7 +41260,7 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template <typename Allocator, typename Dispatch> - VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniquePipeline,Allocator>>::type Device::createGraphicsPipelinesUnique( PipelineCache pipelineCache, ArrayProxy<const GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type Device::createGraphicsPipelinesUnique( PipelineCache pipelineCache, ArrayProxy<const GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { static_assert( sizeof( Pipeline ) <= sizeof( UniquePipeline ), "Pipeline is greater than UniquePipeline!" ); std::vector<UniquePipeline, Allocator> pipelines; @@ -34766,7 +41268,7 @@ public: Pipeline* buffer = reinterpret_cast<Pipeline*>( reinterpret_cast<char*>( pipelines.data() ) + createInfos.size() * ( sizeof( UniquePipeline ) - sizeof( Pipeline ) ) ); Result result = static_cast<Result>(d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkGraphicsPipelineCreateInfo*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( buffer ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); for ( size_t i=0 ; i<createInfos.size() ; i++ ) { pipelines.push_back( UniquePipeline( buffer[i], deleter ) ); @@ -34775,13 +41277,13 @@ public: return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique" ); } template <typename Allocator, typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniquePipeline>::type Device::createGraphicsPipelineUnique( PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Pipeline,Dispatch>>::type Device::createGraphicsPipelineUnique( PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { Pipeline pipeline; Result result = static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1 , reinterpret_cast<const VkGraphicsPipelineCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createGraphicsPipelineUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<Pipeline,Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createGraphicsPipelineUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -34808,7 +41310,7 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template <typename Allocator, typename Dispatch> - VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniquePipeline,Allocator>>::type Device::createComputePipelinesUnique( PipelineCache pipelineCache, ArrayProxy<const ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type Device::createComputePipelinesUnique( PipelineCache pipelineCache, ArrayProxy<const ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { static_assert( sizeof( Pipeline ) <= sizeof( UniquePipeline ), "Pipeline is greater than UniquePipeline!" ); std::vector<UniquePipeline, Allocator> pipelines; @@ -34816,7 +41318,7 @@ public: Pipeline* buffer = reinterpret_cast<Pipeline*>( reinterpret_cast<char*>( pipelines.data() ) + createInfos.size() * ( sizeof( UniquePipeline ) - sizeof( Pipeline ) ) ); Result result = static_cast<Result>(d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkComputePipelineCreateInfo*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( buffer ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); for ( size_t i=0 ; i<createInfos.size() ; i++ ) { pipelines.push_back( UniquePipeline( buffer[i], deleter ) ); @@ -34825,13 +41327,13 @@ public: return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique" ); } template <typename Allocator, typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniquePipeline>::type Device::createComputePipelineUnique( PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Pipeline,Dispatch>>::type Device::createComputePipelineUnique( PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { Pipeline pipeline; Result result = static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1 , reinterpret_cast<const VkComputePipelineCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createComputePipelineUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<Pipeline,Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createComputePipelineUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -34877,13 +41379,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniquePipelineLayout>::type Device::createPipelineLayoutUnique( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<PipelineLayout,Dispatch>>::type Device::createPipelineLayoutUnique( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { PipelineLayout pipelineLayout; Result result = static_cast<Result>( d.vkCreatePipelineLayout( m_device, reinterpret_cast<const VkPipelineLayoutCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipelineLayout*>( &pipelineLayout ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineLayoutUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<PipelineLayout,Dispatch>( result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineLayoutUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -34929,13 +41431,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueSampler>::type Device::createSamplerUnique( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Sampler,Dispatch>>::type Device::createSamplerUnique( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { Sampler sampler; Result result = static_cast<Result>( d.vkCreateSampler( m_device, reinterpret_cast<const VkSamplerCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSampler*>( &sampler ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, sampler, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<Sampler,Dispatch>( result, sampler, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -34981,13 +41483,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueDescriptorSetLayout>::type Device::createDescriptorSetLayoutUnique( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DescriptorSetLayout,Dispatch>>::type Device::createDescriptorSetLayoutUnique( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { DescriptorSetLayout setLayout; Result result = static_cast<Result>( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorSetLayout*>( &setLayout ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, setLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorSetLayoutUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<DescriptorSetLayout,Dispatch>( result, setLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorSetLayoutUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -35033,13 +41535,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueDescriptorPool>::type Device::createDescriptorPoolUnique( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DescriptorPool,Dispatch>>::type Device::createDescriptorPoolUnique( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { DescriptorPool descriptorPool; Result result = static_cast<Result>( d.vkCreateDescriptorPool( m_device, reinterpret_cast<const VkDescriptorPoolCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorPool*>( &descriptorPool ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorPoolUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<DescriptorPool,Dispatch>( result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorPoolUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -35100,7 +41602,7 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template <typename Allocator, typename Dispatch> - VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueDescriptorSet,Allocator>>::type Device::allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<DescriptorSet,Dispatch>,Allocator>>::type Device::allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d ) const { static_assert( sizeof( DescriptorSet ) <= sizeof( UniqueDescriptorSet ), "DescriptorSet is greater than UniqueDescriptorSet!" ); std::vector<UniqueDescriptorSet, Allocator> descriptorSets; @@ -35108,7 +41610,7 @@ public: DescriptorSet* buffer = reinterpret_cast<DescriptorSet*>( reinterpret_cast<char*>( descriptorSets.data() ) + allocateInfo.descriptorSetCount * ( sizeof( UniqueDescriptorSet ) - sizeof( DescriptorSet ) ) ); Result result = static_cast<Result>(d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkDescriptorSet*>( buffer ) ) ); - PoolFree<Device,DescriptorPool> deleter( *this, allocateInfo.descriptorPool ); + PoolFree<Device,DescriptorPool,Dispatch> deleter( *this, allocateInfo.descriptorPool, d ); for ( size_t i=0 ; i<allocateInfo.descriptorSetCount ; i++ ) { descriptorSets.push_back( UniqueDescriptorSet( buffer[i], deleter ) ); @@ -35175,13 +41677,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueFramebuffer>::type Device::createFramebufferUnique( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Framebuffer,Dispatch>>::type Device::createFramebufferUnique( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { Framebuffer framebuffer; Result result = static_cast<Result>( d.vkCreateFramebuffer( m_device, reinterpret_cast<const VkFramebufferCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFramebuffer*>( &framebuffer ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, framebuffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createFramebufferUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<Framebuffer,Dispatch>( result, framebuffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createFramebufferUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -35227,13 +41729,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueRenderPass>::type Device::createRenderPassUnique( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<RenderPass,Dispatch>>::type Device::createRenderPassUnique( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { RenderPass renderPass; Result result = static_cast<Result>( d.vkCreateRenderPass( m_device, reinterpret_cast<const VkRenderPassCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass*>( &renderPass ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPassUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<RenderPass,Dispatch>( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPassUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -35294,13 +41796,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueCommandPool>::type Device::createCommandPoolUnique( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<CommandPool,Dispatch>>::type Device::createCommandPoolUnique( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { CommandPool commandPool; Result result = static_cast<Result>( d.vkCreateCommandPool( m_device, reinterpret_cast<const VkCommandPoolCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkCommandPool*>( &commandPool ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, commandPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createCommandPoolUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<CommandPool,Dispatch>( result, commandPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createCommandPoolUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -35361,7 +41863,7 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template <typename Allocator, typename Dispatch> - VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueCommandBuffer,Allocator>>::type Device::allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<CommandBuffer,Dispatch>,Allocator>>::type Device::allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d ) const { static_assert( sizeof( CommandBuffer ) <= sizeof( UniqueCommandBuffer ), "CommandBuffer is greater than UniqueCommandBuffer!" ); std::vector<UniqueCommandBuffer, Allocator> commandBuffers; @@ -35369,7 +41871,7 @@ public: CommandBuffer* buffer = reinterpret_cast<CommandBuffer*>( reinterpret_cast<char*>( commandBuffers.data() ) + allocateInfo.commandBufferCount * ( sizeof( UniqueCommandBuffer ) - sizeof( CommandBuffer ) ) ); Result result = static_cast<Result>(d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkCommandBuffer*>( buffer ) ) ); - PoolFree<Device,CommandPool> deleter( *this, allocateInfo.commandPool ); + PoolFree<Device,CommandPool,Dispatch> deleter( *this, allocateInfo.commandPool, d ); for ( size_t i=0 ; i<allocateInfo.commandBufferCount ; i++ ) { commandBuffers.push_back( UniqueCommandBuffer( buffer[i], deleter ) ); @@ -35428,7 +41930,7 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template <typename Allocator, typename Dispatch> - VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueSwapchainKHR,Allocator>>::type Device::createSharedSwapchainsKHRUnique( ArrayProxy<const SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR,Dispatch>,Allocator>>::type Device::createSharedSwapchainsKHRUnique( ArrayProxy<const SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { static_assert( sizeof( SwapchainKHR ) <= sizeof( UniqueSwapchainKHR ), "SwapchainKHR is greater than UniqueSwapchainKHR!" ); std::vector<UniqueSwapchainKHR, Allocator> swapchainKHRs; @@ -35436,7 +41938,7 @@ public: SwapchainKHR* buffer = reinterpret_cast<SwapchainKHR*>( reinterpret_cast<char*>( swapchainKHRs.data() ) + createInfos.size() * ( sizeof( UniqueSwapchainKHR ) - sizeof( SwapchainKHR ) ) ); Result result = static_cast<Result>(d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size() , reinterpret_cast<const VkSwapchainCreateInfoKHR*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>( buffer ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); for ( size_t i=0 ; i<createInfos.size() ; i++ ) { swapchainKHRs.push_back( UniqueSwapchainKHR( buffer[i], deleter ) ); @@ -35445,13 +41947,13 @@ public: return createResultValue( result, swapchainKHRs, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" ); } template <typename Allocator, typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueSwapchainKHR>::type Device::createSharedSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SwapchainKHR,Dispatch>>::type Device::createSharedSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { SwapchainKHR swapchain; Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, 1 , reinterpret_cast<const VkSwapchainCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>( &swapchain ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSharedSwapchainKHRUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<SwapchainKHR,Dispatch>( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSharedSwapchainKHRUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -35471,13 +41973,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueSwapchainKHR>::type Device::createSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SwapchainKHR,Dispatch>>::type Device::createSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { SwapchainKHR swapchain; Result result = static_cast<Result>( d.vkCreateSwapchainKHR( m_device, reinterpret_cast<const VkSwapchainCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>( &swapchain ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSwapchainKHRUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<SwapchainKHR,Dispatch>( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSwapchainKHRUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -35610,13 +42112,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueIndirectCommandsLayoutNVX>::type Device::createIndirectCommandsLayoutNVXUnique( const IndirectCommandsLayoutCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<IndirectCommandsLayoutNVX,Dispatch>>::type Device::createIndirectCommandsLayoutNVXUnique( const IndirectCommandsLayoutCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { IndirectCommandsLayoutNVX indirectCommandsLayout; Result result = static_cast<Result>( d.vkCreateIndirectCommandsLayoutNVX( m_device, reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNVX*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkIndirectCommandsLayoutNVX*>( &indirectCommandsLayout ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, indirectCommandsLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createIndirectCommandsLayoutNVXUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<IndirectCommandsLayoutNVX,Dispatch>( result, indirectCommandsLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createIndirectCommandsLayoutNVXUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -35662,13 +42164,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueObjectTableNVX>::type Device::createObjectTableNVXUnique( const ObjectTableCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<ObjectTableNVX,Dispatch>>::type Device::createObjectTableNVXUnique( const ObjectTableCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { ObjectTableNVX objectTable; Result result = static_cast<Result>( d.vkCreateObjectTableNVX( m_device, reinterpret_cast<const VkObjectTableCreateInfoNVX*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkObjectTableNVX*>( &objectTable ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, objectTable, VULKAN_HPP_NAMESPACE_STRING"::Device::createObjectTableNVXUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<ObjectTableNVX,Dispatch>( result, objectTable, VULKAN_HPP_NAMESPACE_STRING"::Device::createObjectTableNVXUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -36164,13 +42666,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueDescriptorUpdateTemplate>::type Device::createDescriptorUpdateTemplateUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DescriptorUpdateTemplate,Dispatch>>::type Device::createDescriptorUpdateTemplateUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { DescriptorUpdateTemplate descriptorUpdateTemplate; Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorUpdateTemplate*>( &descriptorUpdateTemplate ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplateUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<DescriptorUpdateTemplate,Dispatch>( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplateUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -36190,13 +42692,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueDescriptorUpdateTemplate>::type Device::createDescriptorUpdateTemplateKHRUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DescriptorUpdateTemplate,Dispatch>>::type Device::createDescriptorUpdateTemplateKHRUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { DescriptorUpdateTemplate descriptorUpdateTemplate; Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorUpdateTemplate*>( &descriptorUpdateTemplate ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplateKHRUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<DescriptorUpdateTemplate,Dispatch>( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplateKHRUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -36359,10 +42861,10 @@ public: d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) ); return memoryRequirements; } - template <typename ...T, typename Dispatch> - VULKAN_HPP_INLINE StructureChain<T...> Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const + template <typename X, typename Y, typename ...Z, typename Dispatch> + VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const { - StructureChain<T...> structureChain; + StructureChain<X, Y, Z...> structureChain; MemoryRequirements2& memoryRequirements = structureChain.template get<MemoryRequirements2>(); d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) ); return structureChain; @@ -36382,10 +42884,10 @@ public: d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) ); return memoryRequirements; } - template <typename ...T, typename Dispatch> - VULKAN_HPP_INLINE StructureChain<T...> Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const + template <typename X, typename Y, typename ...Z, typename Dispatch> + VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const { - StructureChain<T...> structureChain; + StructureChain<X, Y, Z...> structureChain; MemoryRequirements2& memoryRequirements = structureChain.template get<MemoryRequirements2>(); d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) ); return structureChain; @@ -36405,10 +42907,10 @@ public: d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) ); return memoryRequirements; } - template <typename ...T, typename Dispatch> - VULKAN_HPP_INLINE StructureChain<T...> Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const + template <typename X, typename Y, typename ...Z, typename Dispatch> + VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const { - StructureChain<T...> structureChain; + StructureChain<X, Y, Z...> structureChain; MemoryRequirements2& memoryRequirements = structureChain.template get<MemoryRequirements2>(); d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) ); return structureChain; @@ -36428,10 +42930,10 @@ public: d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) ); return memoryRequirements; } - template <typename ...T, typename Dispatch> - VULKAN_HPP_INLINE StructureChain<T...> Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const + template <typename X, typename Y, typename ...Z, typename Dispatch> + VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const { - StructureChain<T...> structureChain; + StructureChain<X, Y, Z...> structureChain; MemoryRequirements2& memoryRequirements = structureChain.template get<MemoryRequirements2>(); d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) ); return structureChain; @@ -36489,13 +42991,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueSamplerYcbcrConversion>::type Device::createSamplerYcbcrConversionUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SamplerYcbcrConversion,Dispatch>>::type Device::createSamplerYcbcrConversionUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { SamplerYcbcrConversion ycbcrConversion; Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSamplerYcbcrConversion*>( &ycbcrConversion ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversionUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<SamplerYcbcrConversion,Dispatch>( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversionUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -36515,13 +43017,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueSamplerYcbcrConversion>::type Device::createSamplerYcbcrConversionKHRUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SamplerYcbcrConversion,Dispatch>>::type Device::createSamplerYcbcrConversionKHRUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { SamplerYcbcrConversion ycbcrConversion; Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSamplerYcbcrConversion*>( &ycbcrConversion ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversionKHRUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<SamplerYcbcrConversion,Dispatch>( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversionKHRUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -36595,13 +43097,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueValidationCacheEXT>::type Device::createValidationCacheEXTUnique( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<ValidationCacheEXT,Dispatch>>::type Device::createValidationCacheEXTUnique( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { ValidationCacheEXT validationCache; Result result = static_cast<Result>( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast<const VkValidationCacheCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkValidationCacheEXT*>( &validationCache ) ) ); - ObjectDestroy<Device> deleter( *this, allocator ); - return createResultValue( result, validationCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createValidationCacheEXTUnique", deleter ); + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<ValidationCacheEXT,Dispatch>( result, validationCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createValidationCacheEXTUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -36686,10 +43188,10 @@ public: d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( &support ) ); return support; } - template <typename ...T, typename Dispatch> - VULKAN_HPP_INLINE StructureChain<T...> Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const + template <typename X, typename Y, typename ...Z, typename Dispatch> + VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const { - StructureChain<T...> structureChain; + StructureChain<X, Y, Z...> structureChain; DescriptorSetLayoutSupport& support = structureChain.template get<DescriptorSetLayoutSupport>(); d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( &support ) ); return structureChain; @@ -36709,10 +43211,10 @@ public: d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( &support ) ); return support; } - template <typename ...T, typename Dispatch> - VULKAN_HPP_INLINE StructureChain<T...> Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const + template <typename X, typename Y, typename ...Z, typename Dispatch> + VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const { - StructureChain<T...> structureChain; + StructureChain<X, Y, Z...> structureChain; DescriptorSetLayoutSupport& support = structureChain.template get<DescriptorSetLayoutSupport>(); d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( &support ) ); return structureChain; @@ -36789,6 +43291,32 @@ public: } #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + template<typename Dispatch> + VULKAN_HPP_INLINE Result Device::createRenderPass2KHR( const RenderPassCreateInfo2KHR* pCreateInfo, const AllocationCallbacks* pAllocator, RenderPass* pRenderPass, Dispatch const &d) const + { + return static_cast<Result>( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast<const VkRenderPassCreateInfo2KHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkRenderPass*>( pRenderPass ) ) ); + } +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE ResultValueType<RenderPass>::type Device::createRenderPass2KHR( const RenderPassCreateInfo2KHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + { + RenderPass renderPass; + Result result = static_cast<Result>( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast<const VkRenderPassCreateInfo2KHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass*>( &renderPass ) ) ); + return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPass2KHR" ); + } +#ifndef VULKAN_HPP_NO_SMART_HANDLE + template<typename Dispatch> + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<RenderPass,Dispatch>>::type Device::createRenderPass2KHRUnique( const RenderPassCreateInfo2KHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + { + RenderPass renderPass; + Result result = static_cast<Result>( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast<const VkRenderPassCreateInfo2KHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass*>( &renderPass ) ) ); + + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<RenderPass,Dispatch>( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPass2KHRUnique", deleter ); + } +#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + #ifdef VK_USE_PLATFORM_ANDROID_ANDROID template<typename Dispatch> VULKAN_HPP_INLINE Result Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer* buffer, AndroidHardwareBufferPropertiesANDROID* pProperties, Dispatch const &d) const @@ -36803,10 +43331,10 @@ public: Result result = static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( &properties ) ) ); return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getAndroidHardwareBufferPropertiesANDROID" ); } - template <typename ...T, typename Dispatch> - VULKAN_HPP_INLINE typename ResultValueType<StructureChain<T...>>::type Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d ) const + template <typename X, typename Y, typename ...Z, typename Dispatch> + VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d ) const { - StructureChain<T...> structureChain; + StructureChain<X, Y, Z...> structureChain; AndroidHardwareBufferPropertiesANDROID& properties = structureChain.template get<AndroidHardwareBufferPropertiesANDROID>(); Result result = static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( &properties ) ) ); return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::Device::getAndroidHardwareBufferPropertiesANDROID" ); @@ -36831,10 +43359,199 @@ public: #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ #endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/ +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE Result Device::compileDeferredNVX( Pipeline pipeline, uint32_t shader, Dispatch const &d) const + { + return static_cast<Result>( d.vkCompileDeferredNVX( m_device, static_cast<VkPipeline>( pipeline ), shader ) ); + } +#else + template<typename Dispatch> + VULKAN_HPP_INLINE ResultValueType<void>::type Device::compileDeferredNVX( Pipeline pipeline, uint32_t shader, Dispatch const &d ) const + { + Result result = static_cast<Result>( d.vkCompileDeferredNVX( m_device, static_cast<VkPipeline>( pipeline ), shader ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::compileDeferredNVX" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch> + VULKAN_HPP_INLINE Result Device::createAccelerationStructureNVX( const AccelerationStructureCreateInfoNVX* pCreateInfo, const AllocationCallbacks* pAllocator, AccelerationStructureNVX* pAccelerationStructure, Dispatch const &d) const + { + return static_cast<Result>( d.vkCreateAccelerationStructureNVX( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoNVX*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkAccelerationStructureNVX*>( pAccelerationStructure ) ) ); + } +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE ResultValueType<AccelerationStructureNVX>::type Device::createAccelerationStructureNVX( const AccelerationStructureCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + { + AccelerationStructureNVX accelerationStructure; + Result result = static_cast<Result>( d.vkCreateAccelerationStructureNVX( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoNVX*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkAccelerationStructureNVX*>( &accelerationStructure ) ) ); + return createResultValue( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING"::Device::createAccelerationStructureNVX" ); + } +#ifndef VULKAN_HPP_NO_SMART_HANDLE + template<typename Dispatch> + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<AccelerationStructureNVX,Dispatch>>::type Device::createAccelerationStructureNVXUnique( const AccelerationStructureCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + { + AccelerationStructureNVX accelerationStructure; + Result result = static_cast<Result>( d.vkCreateAccelerationStructureNVX( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoNVX*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkAccelerationStructureNVX*>( &accelerationStructure ) ) ); + + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<AccelerationStructureNVX,Dispatch>( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING"::Device::createAccelerationStructureNVXUnique", deleter ); + } +#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch> + VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNVX( AccelerationStructureNVX accelerationStructure, const AllocationCallbacks* pAllocator, Dispatch const &d) const + { + d.vkDestroyAccelerationStructureNVX( m_device, static_cast<VkAccelerationStructureNVX>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) ); + } +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNVX( AccelerationStructureNVX accelerationStructure, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + { + d.vkDestroyAccelerationStructureNVX( m_device, static_cast<VkAccelerationStructureNVX>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch> + VULKAN_HPP_INLINE void Device::destroy( AccelerationStructureNVX accelerationStructure, const AllocationCallbacks* pAllocator, Dispatch const &d) const + { + d.vkDestroyAccelerationStructureNVX( m_device, static_cast<VkAccelerationStructureNVX>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) ); + } +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE void Device::destroy( AccelerationStructureNVX accelerationStructure, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + { + d.vkDestroyAccelerationStructureNVX( m_device, static_cast<VkAccelerationStructureNVX>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch> + VULKAN_HPP_INLINE void Device::getAccelerationStructureMemoryRequirementsNVX( const AccelerationStructureMemoryRequirementsInfoNVX* pInfo, MemoryRequirements2KHR* pMemoryRequirements, Dispatch const &d) const + { + d.vkGetAccelerationStructureMemoryRequirementsNVX( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNVX*>( pInfo ), reinterpret_cast<VkMemoryRequirements2KHR*>( pMemoryRequirements ) ); + } +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE MemoryRequirements2KHR Device::getAccelerationStructureMemoryRequirementsNVX( const AccelerationStructureMemoryRequirementsInfoNVX & info, Dispatch const &d ) const + { + MemoryRequirements2KHR memoryRequirements; + d.vkGetAccelerationStructureMemoryRequirementsNVX( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNVX*>( &info ), reinterpret_cast<VkMemoryRequirements2KHR*>( &memoryRequirements ) ); + return memoryRequirements; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch> + VULKAN_HPP_INLINE void Device::getAccelerationStructureScratchMemoryRequirementsNVX( const AccelerationStructureMemoryRequirementsInfoNVX* pInfo, MemoryRequirements2KHR* pMemoryRequirements, Dispatch const &d) const + { + d.vkGetAccelerationStructureScratchMemoryRequirementsNVX( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNVX*>( pInfo ), reinterpret_cast<VkMemoryRequirements2KHR*>( pMemoryRequirements ) ); + } +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE MemoryRequirements2KHR Device::getAccelerationStructureScratchMemoryRequirementsNVX( const AccelerationStructureMemoryRequirementsInfoNVX & info, Dispatch const &d ) const + { + MemoryRequirements2KHR memoryRequirements; + d.vkGetAccelerationStructureScratchMemoryRequirementsNVX( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNVX*>( &info ), reinterpret_cast<VkMemoryRequirements2KHR*>( &memoryRequirements ) ); + return memoryRequirements; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch> + VULKAN_HPP_INLINE Result Device::bindAccelerationStructureMemoryNVX( uint32_t bindInfoCount, const BindAccelerationStructureMemoryInfoNVX* pBindInfos, Dispatch const &d) const + { + return static_cast<Result>( d.vkBindAccelerationStructureMemoryNVX( m_device, bindInfoCount, reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNVX*>( pBindInfos ) ) ); + } +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE ResultValueType<void>::type Device::bindAccelerationStructureMemoryNVX( ArrayProxy<const BindAccelerationStructureMemoryInfoNVX> bindInfos, Dispatch const &d ) const + { + Result result = static_cast<Result>( d.vkBindAccelerationStructureMemoryNVX( m_device, bindInfos.size() , reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNVX*>( bindInfos.data() ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindAccelerationStructureMemoryNVX" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch> + VULKAN_HPP_INLINE Result Device::getRaytracingShaderHandlesNVX( Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const &d) const + { + return static_cast<Result>( d.vkGetRaytracingShaderHandlesNVX( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) ); + } +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template <typename T, typename Dispatch> + VULKAN_HPP_INLINE ResultValueType<void>::type Device::getRaytracingShaderHandlesNVX( Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy<T> data, Dispatch const &d ) const + { + Result result = static_cast<Result>( d.vkGetRaytracingShaderHandlesNVX( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRaytracingShaderHandlesNVX" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch> + VULKAN_HPP_INLINE Result Device::getAccelerationStructureHandleNVX( AccelerationStructureNVX accelerationStructure, size_t dataSize, void* pData, Dispatch const &d) const + { + return static_cast<Result>( d.vkGetAccelerationStructureHandleNVX( m_device, static_cast<VkAccelerationStructureNVX>( accelerationStructure ), dataSize, pData ) ); + } +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template <typename T, typename Dispatch> + VULKAN_HPP_INLINE ResultValueType<void>::type Device::getAccelerationStructureHandleNVX( AccelerationStructureNVX accelerationStructure, ArrayProxy<T> data, Dispatch const &d ) const + { + Result result = static_cast<Result>( d.vkGetAccelerationStructureHandleNVX( m_device, static_cast<VkAccelerationStructureNVX>( accelerationStructure ), data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getAccelerationStructureHandleNVX" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template<typename Dispatch> + VULKAN_HPP_INLINE Result Device::createRaytracingPipelinesNVX( PipelineCache pipelineCache, uint32_t createInfoCount, const RaytracingPipelineCreateInfoNVX* pCreateInfos, const AllocationCallbacks* pAllocator, Pipeline* pPipelines, Dispatch const &d) const + { + return static_cast<Result>( d.vkCreateRaytracingPipelinesNVX( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfoCount, reinterpret_cast<const VkRaytracingPipelineCreateInfoNVX*>( pCreateInfos ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkPipeline*>( pPipelines ) ) ); + } +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template <typename Allocator, typename Dispatch> + VULKAN_HPP_INLINE typename ResultValueType<std::vector<Pipeline,Allocator>>::type Device::createRaytracingPipelinesNVX( PipelineCache pipelineCache, ArrayProxy<const RaytracingPipelineCreateInfoNVX> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + { + std::vector<Pipeline,Allocator> pipelines( createInfos.size() ); + Result result = static_cast<Result>( d.vkCreateRaytracingPipelinesNVX( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkRaytracingPipelineCreateInfoNVX*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) ); + return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createRaytracingPipelinesNVX" ); + } + template <typename Allocator, typename Dispatch> + VULKAN_HPP_INLINE ResultValueType<Pipeline>::type Device::createRaytracingPipelineNVX( PipelineCache pipelineCache, const RaytracingPipelineCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + { + Pipeline pipeline; + Result result = static_cast<Result>( d.vkCreateRaytracingPipelinesNVX( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1 , reinterpret_cast<const VkRaytracingPipelineCreateInfoNVX*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) ); + return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createRaytracingPipelineNVX" ); + } #ifndef VULKAN_HPP_NO_SMART_HANDLE + template <typename Allocator, typename Dispatch> + VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type Device::createRaytracingPipelinesNVXUnique( PipelineCache pipelineCache, ArrayProxy<const RaytracingPipelineCreateInfoNVX> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + { + static_assert( sizeof( Pipeline ) <= sizeof( UniquePipeline ), "Pipeline is greater than UniquePipeline!" ); + std::vector<UniquePipeline, Allocator> pipelines; + pipelines.reserve( createInfos.size() ); + Pipeline* buffer = reinterpret_cast<Pipeline*>( reinterpret_cast<char*>( pipelines.data() ) + createInfos.size() * ( sizeof( UniquePipeline ) - sizeof( Pipeline ) ) ); + Result result = static_cast<Result>(d.vkCreateRaytracingPipelinesNVX( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkRaytracingPipelineCreateInfoNVX*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( buffer ) ) ); + + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + for ( size_t i=0 ; i<createInfos.size() ; i++ ) + { + pipelines.push_back( UniquePipeline( buffer[i], deleter ) ); + } - template <> class UniqueHandleTraits<Device> {public: using deleter = ObjectDestroy<NoParent>; }; - using UniqueDevice = UniqueHandle<Device>; + return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRaytracingPipelinesNVXUnique" ); + } + template <typename Allocator, typename Dispatch> + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Pipeline,Dispatch>>::type Device::createRaytracingPipelineNVXUnique( PipelineCache pipelineCache, const RaytracingPipelineCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + { + Pipeline pipeline; + Result result = static_cast<Result>( d.vkCreateRaytracingPipelinesNVX( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1 , reinterpret_cast<const VkRaytracingPipelineCreateInfoNVX*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) ); + + ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d ); + return createResultValue<Pipeline,Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createRaytracingPipelineNVXUnique", deleter ); + } +#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifndef VULKAN_HPP_NO_SMART_HANDLE + + template <typename Dispatch> class UniqueHandleTraits<Device,Dispatch> {public: using deleter = ObjectDestroy<NoParent,Dispatch>; }; + using UniqueDevice = UniqueHandle<Device,DispatchLoaderStatic>; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ class PhysicalDevice @@ -36886,6 +43603,8 @@ public: #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template<typename Dispatch = DispatchLoaderStatic> PhysicalDeviceProperties getProperties(Dispatch const &d = Dispatch() ) const; + template <typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderStatic> + StructureChain<X, Y, Z...> getProperties(Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template<typename Dispatch = DispatchLoaderStatic> @@ -36930,7 +43649,7 @@ public: ResultValueType<Device>::type createDevice( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueDevice>::type createDeviceUnique( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<Device,Dispatch>>::type createDeviceUnique( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -37085,8 +43804,8 @@ public: #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template<typename Dispatch = DispatchLoaderStatic> PhysicalDeviceFeatures2 getFeatures2(Dispatch const &d = Dispatch() ) const; - template <typename ...T, typename Dispatch = DispatchLoaderStatic> - StructureChain<T...> getFeatures2(Dispatch const &d = Dispatch() ) const; + template <typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderStatic> + StructureChain<X, Y, Z...> getFeatures2(Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template<typename Dispatch = DispatchLoaderStatic> @@ -37094,8 +43813,8 @@ public: #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template<typename Dispatch = DispatchLoaderStatic> PhysicalDeviceFeatures2 getFeatures2KHR(Dispatch const &d = Dispatch() ) const; - template <typename ...T, typename Dispatch = DispatchLoaderStatic> - StructureChain<T...> getFeatures2KHR(Dispatch const &d = Dispatch() ) const; + template <typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderStatic> + StructureChain<X, Y, Z...> getFeatures2KHR(Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template<typename Dispatch = DispatchLoaderStatic> @@ -37103,8 +43822,8 @@ public: #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template<typename Dispatch = DispatchLoaderStatic> PhysicalDeviceProperties2 getProperties2(Dispatch const &d = Dispatch() ) const; - template <typename ...T, typename Dispatch = DispatchLoaderStatic> - StructureChain<T...> getProperties2(Dispatch const &d = Dispatch() ) const; + template <typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderStatic> + StructureChain<X, Y, Z...> getProperties2(Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template<typename Dispatch = DispatchLoaderStatic> @@ -37112,8 +43831,8 @@ public: #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template<typename Dispatch = DispatchLoaderStatic> PhysicalDeviceProperties2 getProperties2KHR(Dispatch const &d = Dispatch() ) const; - template <typename ...T, typename Dispatch = DispatchLoaderStatic> - StructureChain<T...> getProperties2KHR(Dispatch const &d = Dispatch() ) const; + template <typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderStatic> + StructureChain<X, Y, Z...> getProperties2KHR(Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template<typename Dispatch = DispatchLoaderStatic> @@ -37121,6 +43840,8 @@ public: #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template<typename Dispatch = DispatchLoaderStatic> FormatProperties2 getFormatProperties2( Format format, Dispatch const &d = Dispatch() ) const; + template <typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderStatic> + StructureChain<X, Y, Z...> getFormatProperties2( Format format, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template<typename Dispatch = DispatchLoaderStatic> @@ -37128,6 +43849,8 @@ public: #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template<typename Dispatch = DispatchLoaderStatic> FormatProperties2 getFormatProperties2KHR( Format format, Dispatch const &d = Dispatch() ) const; + template <typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderStatic> + StructureChain<X, Y, Z...> getFormatProperties2KHR( Format format, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template<typename Dispatch = DispatchLoaderStatic> @@ -37135,8 +43858,8 @@ public: #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template<typename Dispatch = DispatchLoaderStatic> ResultValueType<ImageFormatProperties2>::type getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d = Dispatch() ) const; - template <typename ...T, typename Dispatch = DispatchLoaderStatic> - typename ResultValueType<StructureChain<T...>>::type getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d = Dispatch() ) const; + template <typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderStatic> + typename ResultValueType<StructureChain<X, Y, Z...>>::type getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template<typename Dispatch = DispatchLoaderStatic> @@ -37144,8 +43867,8 @@ public: #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template<typename Dispatch = DispatchLoaderStatic> ResultValueType<ImageFormatProperties2>::type getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d = Dispatch() ) const; - template <typename ...T, typename Dispatch = DispatchLoaderStatic> - typename ResultValueType<StructureChain<T...>>::type getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d = Dispatch() ) const; + template <typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderStatic> + typename ResultValueType<StructureChain<X, Y, Z...>>::type getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template<typename Dispatch = DispatchLoaderStatic> @@ -37284,8 +44007,8 @@ public: #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template<typename Dispatch = DispatchLoaderStatic> ResultValueType<SurfaceCapabilities2KHR>::type getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d = Dispatch() ) const; - template <typename ...T, typename Dispatch = DispatchLoaderStatic> - typename ResultValueType<StructureChain<T...>>::type getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d = Dispatch() ) const; + template <typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderStatic> + typename ResultValueType<StructureChain<X, Y, Z...>>::type getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template<typename Dispatch = DispatchLoaderStatic> @@ -37359,6 +44082,14 @@ public: d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties*>( &properties ) ); return properties; } + template <typename X, typename Y, typename ...Z, typename Dispatch> + VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getProperties(Dispatch const &d ) const + { + StructureChain<X, Y, Z...> structureChain; + PhysicalDeviceProperties& properties = structureChain.template get<PhysicalDeviceProperties>(); + d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties*>( &properties ) ); + return structureChain; + } #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template<typename Dispatch> @@ -37454,13 +44185,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueDevice>::type PhysicalDevice::createDeviceUnique( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Device,Dispatch>>::type PhysicalDevice::createDeviceUnique( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { Device device; Result result = static_cast<Result>( d.vkCreateDevice( m_physicalDevice, reinterpret_cast<const VkDeviceCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDevice*>( &device ) ) ); - ObjectDestroy<NoParent> deleter( allocator ); - return createResultValue( result, device, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::createDeviceUnique", deleter ); + ObjectDestroy<NoParent,Dispatch> deleter( allocator, d ); + return createResultValue<Device,Dispatch>( result, device, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::createDeviceUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -37878,10 +44609,10 @@ public: d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( &features ) ); return features; } - template <typename ...T, typename Dispatch> - VULKAN_HPP_INLINE StructureChain<T...> PhysicalDevice::getFeatures2(Dispatch const &d ) const + template <typename X, typename Y, typename ...Z, typename Dispatch> + VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2(Dispatch const &d ) const { - StructureChain<T...> structureChain; + StructureChain<X, Y, Z...> structureChain; PhysicalDeviceFeatures2& features = structureChain.template get<PhysicalDeviceFeatures2>(); d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( &features ) ); return structureChain; @@ -37901,10 +44632,10 @@ public: d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( &features ) ); return features; } - template <typename ...T, typename Dispatch> - VULKAN_HPP_INLINE StructureChain<T...> PhysicalDevice::getFeatures2KHR(Dispatch const &d ) const + template <typename X, typename Y, typename ...Z, typename Dispatch> + VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2KHR(Dispatch const &d ) const { - StructureChain<T...> structureChain; + StructureChain<X, Y, Z...> structureChain; PhysicalDeviceFeatures2& features = structureChain.template get<PhysicalDeviceFeatures2>(); d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( &features ) ); return structureChain; @@ -37924,10 +44655,10 @@ public: d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( &properties ) ); return properties; } - template <typename ...T, typename Dispatch> - VULKAN_HPP_INLINE StructureChain<T...> PhysicalDevice::getProperties2(Dispatch const &d ) const + template <typename X, typename Y, typename ...Z, typename Dispatch> + VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getProperties2(Dispatch const &d ) const { - StructureChain<T...> structureChain; + StructureChain<X, Y, Z...> structureChain; PhysicalDeviceProperties2& properties = structureChain.template get<PhysicalDeviceProperties2>(); d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( &properties ) ); return structureChain; @@ -37947,10 +44678,10 @@ public: d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( &properties ) ); return properties; } - template <typename ...T, typename Dispatch> - VULKAN_HPP_INLINE StructureChain<T...> PhysicalDevice::getProperties2KHR(Dispatch const &d ) const + template <typename X, typename Y, typename ...Z, typename Dispatch> + VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getProperties2KHR(Dispatch const &d ) const { - StructureChain<T...> structureChain; + StructureChain<X, Y, Z...> structureChain; PhysicalDeviceProperties2& properties = structureChain.template get<PhysicalDeviceProperties2>(); d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( &properties ) ); return structureChain; @@ -37970,6 +44701,14 @@ public: d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( &formatProperties ) ); return formatProperties; } + template <typename X, typename Y, typename ...Z, typename Dispatch> + VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFormatProperties2( Format format, Dispatch const &d ) const + { + StructureChain<X, Y, Z...> structureChain; + FormatProperties2& formatProperties = structureChain.template get<FormatProperties2>(); + d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( &formatProperties ) ); + return structureChain; + } #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template<typename Dispatch> @@ -37985,6 +44724,14 @@ public: d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( &formatProperties ) ); return formatProperties; } + template <typename X, typename Y, typename ...Z, typename Dispatch> + VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFormatProperties2KHR( Format format, Dispatch const &d ) const + { + StructureChain<X, Y, Z...> structureChain; + FormatProperties2& formatProperties = structureChain.template get<FormatProperties2>(); + d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( &formatProperties ) ); + return structureChain; + } #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template<typename Dispatch> @@ -38000,10 +44747,10 @@ public: Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( &imageFormatProperties ) ) ); return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2" ); } - template <typename ...T, typename Dispatch> - VULKAN_HPP_INLINE typename ResultValueType<StructureChain<T...>>::type PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d ) const + template <typename X, typename Y, typename ...Z, typename Dispatch> + VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d ) const { - StructureChain<T...> structureChain; + StructureChain<X, Y, Z...> structureChain; ImageFormatProperties2& imageFormatProperties = structureChain.template get<ImageFormatProperties2>(); Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( &imageFormatProperties ) ) ); return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2" ); @@ -38023,10 +44770,10 @@ public: Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( &imageFormatProperties ) ) ); return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2KHR" ); } - template <typename ...T, typename Dispatch> - VULKAN_HPP_INLINE typename ResultValueType<StructureChain<T...>>::type PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d ) const + template <typename X, typename Y, typename ...Z, typename Dispatch> + VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d ) const { - StructureChain<T...> structureChain; + StructureChain<X, Y, Z...> structureChain; ImageFormatProperties2& imageFormatProperties = structureChain.template get<ImageFormatProperties2>(); Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( &imageFormatProperties ) ) ); return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2KHR" ); @@ -38344,10 +45091,10 @@ public: Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), reinterpret_cast<VkSurfaceCapabilities2KHR*>( &surfaceCapabilities ) ) ); return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilities2KHR" ); } - template <typename ...T, typename Dispatch> - VULKAN_HPP_INLINE typename ResultValueType<StructureChain<T...>>::type PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const + template <typename X, typename Y, typename ...Z, typename Dispatch> + VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const { - StructureChain<T...> structureChain; + StructureChain<X, Y, Z...> structureChain; SurfaceCapabilities2KHR& surfaceCapabilities = structureChain.template get<SurfaceCapabilities2KHR>(); Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), reinterpret_cast<VkSurfaceCapabilities2KHR*>( &surfaceCapabilities ) ) ); return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilities2KHR" ); @@ -38578,11 +45325,16 @@ public: return *this; } - operator const VkCmdProcessCommandsInfoNVX&() const + operator VkCmdProcessCommandsInfoNVX const&() const { return *reinterpret_cast<const VkCmdProcessCommandsInfoNVX*>(this); } + operator VkCmdProcessCommandsInfoNVX &() + { + return *reinterpret_cast<VkCmdProcessCommandsInfoNVX*>(this); + } + bool operator==( CmdProcessCommandsInfoNVX const& rhs ) const { return ( sType == rhs.sType ) @@ -38624,11 +45376,16 @@ public: struct PhysicalDeviceGroupProperties { - operator const VkPhysicalDeviceGroupProperties&() const + operator VkPhysicalDeviceGroupProperties const&() const { return *reinterpret_cast<const VkPhysicalDeviceGroupProperties*>(this); } + operator VkPhysicalDeviceGroupProperties &() + { + return *reinterpret_cast<VkPhysicalDeviceGroupProperties*>(this); + } + bool operator==( PhysicalDeviceGroupProperties const& rhs ) const { return ( sType == rhs.sType ) @@ -38659,12 +45416,12 @@ public: #ifndef VULKAN_HPP_NO_SMART_HANDLE class Instance; - template <> class UniqueHandleTraits<DebugReportCallbackEXT> {public: using deleter = ObjectDestroy<Instance>; }; - using UniqueDebugReportCallbackEXT = UniqueHandle<DebugReportCallbackEXT>; - template <> class UniqueHandleTraits<DebugUtilsMessengerEXT> {public: using deleter = ObjectDestroy<Instance>; }; - using UniqueDebugUtilsMessengerEXT = UniqueHandle<DebugUtilsMessengerEXT>; - template <> class UniqueHandleTraits<SurfaceKHR> {public: using deleter = ObjectDestroy<Instance>; }; - using UniqueSurfaceKHR = UniqueHandle<SurfaceKHR>; + template <typename Dispatch> class UniqueHandleTraits<DebugReportCallbackEXT,Dispatch> {public: using deleter = ObjectDestroy<Instance,Dispatch>; }; + using UniqueDebugReportCallbackEXT = UniqueHandle<DebugReportCallbackEXT,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<DebugUtilsMessengerEXT,Dispatch> {public: using deleter = ObjectDestroy<Instance,Dispatch>; }; + using UniqueDebugUtilsMessengerEXT = UniqueHandle<DebugUtilsMessengerEXT,DispatchLoaderStatic>; + template <typename Dispatch> class UniqueHandleTraits<SurfaceKHR,Dispatch> {public: using deleter = ObjectDestroy<Instance,Dispatch>; }; + using UniqueSurfaceKHR = UniqueHandle<SurfaceKHR,DispatchLoaderStatic>; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ class Instance @@ -38740,7 +45497,7 @@ public: ResultValueType<SurfaceKHR>::type createAndroidSurfaceKHR( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueSurfaceKHR>::type createAndroidSurfaceKHRUnique( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createAndroidSurfaceKHRUnique( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ @@ -38752,7 +45509,7 @@ public: ResultValueType<SurfaceKHR>::type createDisplayPlaneSurfaceKHR( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueSurfaceKHR>::type createDisplayPlaneSurfaceKHRUnique( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createDisplayPlaneSurfaceKHRUnique( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -38764,7 +45521,7 @@ public: ResultValueType<SurfaceKHR>::type createMirSurfaceKHR( const MirSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueSurfaceKHR>::type createMirSurfaceKHRUnique( const MirSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createMirSurfaceKHRUnique( const MirSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ #endif /*VK_USE_PLATFORM_MIR_KHR*/ @@ -38791,7 +45548,7 @@ public: ResultValueType<SurfaceKHR>::type createViSurfaceNN( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueSurfaceKHR>::type createViSurfaceNNUnique( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createViSurfaceNNUnique( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ #endif /*VK_USE_PLATFORM_VI_NN*/ @@ -38804,7 +45561,7 @@ public: ResultValueType<SurfaceKHR>::type createWaylandSurfaceKHR( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueSurfaceKHR>::type createWaylandSurfaceKHRUnique( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createWaylandSurfaceKHRUnique( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ @@ -38817,7 +45574,7 @@ public: ResultValueType<SurfaceKHR>::type createWin32SurfaceKHR( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueSurfaceKHR>::type createWin32SurfaceKHRUnique( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createWin32SurfaceKHRUnique( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ #endif /*VK_USE_PLATFORM_WIN32_KHR*/ @@ -38830,7 +45587,7 @@ public: ResultValueType<SurfaceKHR>::type createXlibSurfaceKHR( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueSurfaceKHR>::type createXlibSurfaceKHRUnique( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createXlibSurfaceKHRUnique( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ #endif /*VK_USE_PLATFORM_XLIB_KHR*/ @@ -38843,11 +45600,24 @@ public: ResultValueType<SurfaceKHR>::type createXcbSurfaceKHR( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueSurfaceKHR>::type createXcbSurfaceKHRUnique( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createXcbSurfaceKHRUnique( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ #endif /*VK_USE_PLATFORM_XCB_KHR*/ +#ifdef VK_USE_PLATFORM_FUCHSIA_FUCHSIA + template<typename Dispatch = DispatchLoaderStatic> + Result createImagePipeSurfaceFUCHSIA( const ImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch = DispatchLoaderStatic> + ResultValueType<SurfaceKHR>::type createImagePipeSurfaceFUCHSIA( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; +#ifndef VULKAN_HPP_NO_SMART_HANDLE + template<typename Dispatch = DispatchLoaderStatic> + typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createImagePipeSurfaceFUCHSIAUnique( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; +#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_FUCHSIA_FUCHSIA*/ + template<typename Dispatch = DispatchLoaderStatic> Result createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT* pCreateInfo, const AllocationCallbacks* pAllocator, DebugReportCallbackEXT* pCallback, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE @@ -38855,7 +45625,7 @@ public: ResultValueType<DebugReportCallbackEXT>::type createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueDebugReportCallbackEXT>::type createDebugReportCallbackEXTUnique( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<DebugReportCallbackEXT,Dispatch>>::type createDebugReportCallbackEXTUnique( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -38902,7 +45672,7 @@ public: ResultValueType<SurfaceKHR>::type createIOSSurfaceMVK( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueSurfaceKHR>::type createIOSSurfaceMVKUnique( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createIOSSurfaceMVKUnique( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ #endif /*VK_USE_PLATFORM_IOS_MVK*/ @@ -38915,7 +45685,7 @@ public: ResultValueType<SurfaceKHR>::type createMacOSSurfaceMVK( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueSurfaceKHR>::type createMacOSSurfaceMVKUnique( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createMacOSSurfaceMVKUnique( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ #endif /*VK_USE_PLATFORM_MACOS_MVK*/ @@ -38927,7 +45697,7 @@ public: ResultValueType<DebugUtilsMessengerEXT>::type createDebugUtilsMessengerEXT( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueDebugUtilsMessengerEXT>::type createDebugUtilsMessengerEXTUnique( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; + typename ResultValueType<UniqueHandle<DebugUtilsMessengerEXT,Dispatch>>::type createDebugUtilsMessengerEXTUnique( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -39044,13 +45814,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueSurfaceKHR>::type Instance::createAndroidSurfaceKHRUnique( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createAndroidSurfaceKHRUnique( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { SurfaceKHR surface; Result result = static_cast<Result>( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) ); - ObjectDestroy<Instance> deleter( *this, allocator ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createAndroidSurfaceKHRUnique", deleter ); + ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d ); + return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createAndroidSurfaceKHRUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -39071,13 +45841,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueSurfaceKHR>::type Instance::createDisplayPlaneSurfaceKHRUnique( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createDisplayPlaneSurfaceKHRUnique( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { SurfaceKHR surface; Result result = static_cast<Result>( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) ); - ObjectDestroy<Instance> deleter( *this, allocator ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDisplayPlaneSurfaceKHRUnique", deleter ); + ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d ); + return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDisplayPlaneSurfaceKHRUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -39098,13 +45868,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueSurfaceKHR>::type Instance::createMirSurfaceKHRUnique( const MirSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createMirSurfaceKHRUnique( const MirSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { SurfaceKHR surface; Result result = static_cast<Result>( d.vkCreateMirSurfaceKHR( m_instance, reinterpret_cast<const VkMirSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) ); - ObjectDestroy<Instance> deleter( *this, allocator ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMirSurfaceKHRUnique", deleter ); + ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d ); + return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMirSurfaceKHRUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -39152,13 +45922,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueSurfaceKHR>::type Instance::createViSurfaceNNUnique( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createViSurfaceNNUnique( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { SurfaceKHR surface; Result result = static_cast<Result>( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast<const VkViSurfaceCreateInfoNN*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) ); - ObjectDestroy<Instance> deleter( *this, allocator ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createViSurfaceNNUnique", deleter ); + ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d ); + return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createViSurfaceNNUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -39180,13 +45950,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueSurfaceKHR>::type Instance::createWaylandSurfaceKHRUnique( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createWaylandSurfaceKHRUnique( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { SurfaceKHR surface; Result result = static_cast<Result>( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) ); - ObjectDestroy<Instance> deleter( *this, allocator ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWaylandSurfaceKHRUnique", deleter ); + ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d ); + return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWaylandSurfaceKHRUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -39208,13 +45978,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueSurfaceKHR>::type Instance::createWin32SurfaceKHRUnique( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createWin32SurfaceKHRUnique( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { SurfaceKHR surface; Result result = static_cast<Result>( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast<const VkWin32SurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) ); - ObjectDestroy<Instance> deleter( *this, allocator ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWin32SurfaceKHRUnique", deleter ); + ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d ); + return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWin32SurfaceKHRUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -39236,13 +46006,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueSurfaceKHR>::type Instance::createXlibSurfaceKHRUnique( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createXlibSurfaceKHRUnique( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { SurfaceKHR surface; Result result = static_cast<Result>( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast<const VkXlibSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) ); - ObjectDestroy<Instance> deleter( *this, allocator ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXlibSurfaceKHRUnique", deleter ); + ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d ); + return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXlibSurfaceKHRUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -39264,18 +46034,46 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueSurfaceKHR>::type Instance::createXcbSurfaceKHRUnique( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createXcbSurfaceKHRUnique( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { SurfaceKHR surface; Result result = static_cast<Result>( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast<const VkXcbSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) ); - ObjectDestroy<Instance> deleter( *this, allocator ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXcbSurfaceKHRUnique", deleter ); + ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d ); + return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXcbSurfaceKHRUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ #endif /*VK_USE_PLATFORM_XCB_KHR*/ +#ifdef VK_USE_PLATFORM_FUCHSIA_FUCHSIA + template<typename Dispatch> + VULKAN_HPP_INLINE Result Instance::createImagePipeSurfaceFUCHSIA( const ImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d) const + { + return static_cast<Result>( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) ); + } +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template<typename Dispatch> + VULKAN_HPP_INLINE ResultValueType<SurfaceKHR>::type Instance::createImagePipeSurfaceFUCHSIA( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + { + SurfaceKHR surface; + Result result = static_cast<Result>( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) ); + return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createImagePipeSurfaceFUCHSIA" ); + } +#ifndef VULKAN_HPP_NO_SMART_HANDLE + template<typename Dispatch> + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createImagePipeSurfaceFUCHSIAUnique( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + { + SurfaceKHR surface; + Result result = static_cast<Result>( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) ); + + ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d ); + return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createImagePipeSurfaceFUCHSIAUnique", deleter ); + } +#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_FUCHSIA_FUCHSIA*/ + template<typename Dispatch> VULKAN_HPP_INLINE Result Instance::createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT* pCreateInfo, const AllocationCallbacks* pAllocator, DebugReportCallbackEXT* pCallback, Dispatch const &d) const { @@ -39291,13 +46089,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueDebugReportCallbackEXT>::type Instance::createDebugReportCallbackEXTUnique( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DebugReportCallbackEXT,Dispatch>>::type Instance::createDebugReportCallbackEXTUnique( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { DebugReportCallbackEXT callback; Result result = static_cast<Result>( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDebugReportCallbackEXT*>( &callback ) ) ); - ObjectDestroy<Instance> deleter( *this, allocator ); - return createResultValue( result, callback, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugReportCallbackEXTUnique", deleter ); + ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d ); + return createResultValue<DebugReportCallbackEXT,Dispatch>( result, callback, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugReportCallbackEXTUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -39419,13 +46217,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueSurfaceKHR>::type Instance::createIOSSurfaceMVKUnique( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createIOSSurfaceMVKUnique( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { SurfaceKHR surface; Result result = static_cast<Result>( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast<const VkIOSSurfaceCreateInfoMVK*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) ); - ObjectDestroy<Instance> deleter( *this, allocator ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createIOSSurfaceMVKUnique", deleter ); + ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d ); + return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createIOSSurfaceMVKUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -39447,13 +46245,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueSurfaceKHR>::type Instance::createMacOSSurfaceMVKUnique( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createMacOSSurfaceMVKUnique( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { SurfaceKHR surface; Result result = static_cast<Result>( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) ); - ObjectDestroy<Instance> deleter( *this, allocator ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMacOSSurfaceMVKUnique", deleter ); + ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d ); + return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMacOSSurfaceMVKUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -39474,13 +46272,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueDebugUtilsMessengerEXT>::type Instance::createDebugUtilsMessengerEXTUnique( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DebugUtilsMessengerEXT,Dispatch>>::type Instance::createDebugUtilsMessengerEXTUnique( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const { DebugUtilsMessengerEXT messenger; Result result = static_cast<Result>( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDebugUtilsMessengerEXT*>( &messenger ) ) ); - ObjectDestroy<Instance> deleter( *this, allocator ); - return createResultValue( result, messenger, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugUtilsMessengerEXTUnique", deleter ); + ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d ); + return createResultValue<DebugUtilsMessengerEXT,Dispatch>( result, messenger, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugUtilsMessengerEXTUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -39561,11 +46359,16 @@ public: return *this; } - operator const VkDeviceGroupDeviceCreateInfo&() const + operator VkDeviceGroupDeviceCreateInfo const&() const { return *reinterpret_cast<const VkDeviceGroupDeviceCreateInfo*>(this); } + operator VkDeviceGroupDeviceCreateInfo &() + { + return *reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>(this); + } + bool operator==( DeviceGroupDeviceCreateInfo const& rhs ) const { return ( sType == rhs.sType ) @@ -39593,8 +46396,8 @@ public: #ifndef VULKAN_HPP_NO_SMART_HANDLE - template <> class UniqueHandleTraits<Instance> {public: using deleter = ObjectDestroy<NoParent>; }; - using UniqueInstance = UniqueHandle<Instance>; + template <typename Dispatch> class UniqueHandleTraits<Instance,Dispatch> {public: using deleter = ObjectDestroy<NoParent,Dispatch>; }; + using UniqueInstance = UniqueHandle<Instance,DispatchLoaderStatic>; #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ template<typename Dispatch = DispatchLoaderStatic> @@ -39604,7 +46407,7 @@ public: ResultValueType<Instance>::type createInstance( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ); #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch = DispatchLoaderStatic> - ResultValueType<UniqueInstance>::type createInstanceUnique( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ); + typename ResultValueType<UniqueHandle<Instance,Dispatch>>::type createInstanceUnique( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ); #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -39623,13 +46426,13 @@ public: } #ifndef VULKAN_HPP_NO_SMART_HANDLE template<typename Dispatch> - VULKAN_HPP_INLINE ResultValueType<UniqueInstance>::type createInstanceUnique( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) + VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Instance,Dispatch>>::type createInstanceUnique( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) { Instance instance; Result result = static_cast<Result>( d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkInstance*>( &instance ) ) ); - ObjectDestroy<NoParent> deleter( allocator ); - return createResultValue( result, instance, VULKAN_HPP_NAMESPACE_STRING"::createInstanceUnique", deleter ); + ObjectDestroy<NoParent,Dispatch> deleter( allocator, d ); + return createResultValue<Instance,Dispatch>( result, instance, VULKAN_HPP_NAMESPACE_STRING"::createInstanceUnique", deleter ); } #endif /*VULKAN_HPP_NO_SMART_HANDLE*/ #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -39657,11 +46460,16 @@ public: return *this; } - operator const VkBaseOutStructure&() const + operator VkBaseOutStructure const&() const { return *reinterpret_cast<const VkBaseOutStructure*>(this); } + operator VkBaseOutStructure &() + { + return *reinterpret_cast<VkBaseOutStructure*>(this); + } + bool operator==( BaseOutStructure const& rhs ) const { return ( sType == rhs.sType ) @@ -39700,11 +46508,16 @@ public: return *this; } - operator const VkBaseInStructure&() const + operator VkBaseInStructure const&() const { return *reinterpret_cast<const VkBaseInStructure*>(this); } + operator VkBaseInStructure &() + { + return *reinterpret_cast<VkBaseInStructure*>(this); + } + bool operator==( BaseInStructure const& rhs ) const { return ( sType == rhs.sType ) @@ -39733,6 +46546,7 @@ public: #endif /*VK_USE_PLATFORM_WIN32_NV*/ template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceFeatures2>{ enum { value = true }; }; template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDevicePushDescriptorPropertiesKHR>{ enum { value = true }; }; + template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceDriverPropertiesKHR>{ enum { value = true }; }; template <> struct isStructureChainValid<PresentInfoKHR, PresentRegionsKHR>{ enum { value = true }; }; template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceVariablePointerFeatures>{ enum { value = true }; }; template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceVariablePointerFeatures>{ enum { value = true }; }; @@ -39785,11 +46599,18 @@ public: template <> struct isStructureChainValid<PipelineMultisampleStateCreateInfo, PipelineCoverageToColorStateCreateInfoNV>{ enum { value = true }; }; template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceSamplerFilterMinmaxPropertiesEXT>{ enum { value = true }; }; template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceBlendOperationAdvancedFeaturesEXT>{ enum { value = true }; }; + template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceBlendOperationAdvancedFeaturesEXT>{ enum { value = true }; }; template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceBlendOperationAdvancedPropertiesEXT>{ enum { value = true }; }; + template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceInlineUniformBlockFeaturesEXT>{ enum { value = true }; }; + template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceInlineUniformBlockFeaturesEXT>{ enum { value = true }; }; + template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceInlineUniformBlockPropertiesEXT>{ enum { value = true }; }; + template <> struct isStructureChainValid<WriteDescriptorSet, WriteDescriptorSetInlineUniformBlockEXT>{ enum { value = true }; }; + template <> struct isStructureChainValid<DescriptorPoolCreateInfo, DescriptorPoolInlineUniformBlockCreateInfoEXT>{ enum { value = true }; }; template <> struct isStructureChainValid<ImageCreateInfo, ImageFormatListCreateInfoKHR>{ enum { value = true }; }; template <> struct isStructureChainValid<ShaderModuleCreateInfo, ShaderModuleValidationCacheCreateInfoEXT>{ enum { value = true }; }; template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceMaintenance3Properties>{ enum { value = true }; }; template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderDrawParameterFeatures>{ enum { value = true }; }; + template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderDrawParameterFeatures>{ enum { value = true }; }; template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceExternalMemoryHostPropertiesEXT>{ enum { value = true }; }; template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceConservativeRasterizationPropertiesEXT>{ enum { value = true }; }; template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceShaderCorePropertiesAMD>{ enum { value = true }; }; @@ -39806,15 +46627,52 @@ public: #ifdef VK_USE_PLATFORM_ANDROID_ANDROID template <> struct isStructureChainValid<ImageFormatProperties2, AndroidHardwareBufferUsageANDROID>{ enum { value = true }; }; #endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/ + template <> struct isStructureChainValid<CommandBufferInheritanceInfo, CommandBufferInheritanceConditionalRenderingInfoEXT>{ enum { value = true }; }; #ifdef VK_USE_PLATFORM_ANDROID_ANDROID template <> struct isStructureChainValid<ImageCreateInfo, ExternalFormatANDROID>{ enum { value = true }; }; template <> struct isStructureChainValid<SamplerYcbcrConversionCreateInfo, ExternalFormatANDROID>{ enum { value = true }; }; #endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/ + template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDevice8BitStorageFeaturesKHR>{ enum { value = true }; }; + template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDevice8BitStorageFeaturesKHR>{ enum { value = true }; }; + template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceConditionalRenderingFeaturesEXT>{ enum { value = true }; }; + template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceConditionalRenderingFeaturesEXT>{ enum { value = true }; }; + template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceVulkanMemoryModelFeaturesKHR>{ enum { value = true }; }; + template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceVulkanMemoryModelFeaturesKHR>{ enum { value = true }; }; + template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderAtomicInt64FeaturesKHR>{ enum { value = true }; }; + template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderAtomicInt64FeaturesKHR>{ enum { value = true }; }; + template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceVertexAttributeDivisorFeaturesEXT>{ enum { value = true }; }; + template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceVertexAttributeDivisorFeaturesEXT>{ enum { value = true }; }; + template <> struct isStructureChainValid<ImageViewCreateInfo, ImageViewASTCDecodeModeEXT>{ enum { value = true }; }; + template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceASTCDecodeFeaturesEXT>{ enum { value = true }; }; + template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceASTCDecodeFeaturesEXT>{ enum { value = true }; }; + template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceRepresentativeFragmentTestFeaturesNV>{ enum { value = true }; }; + template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceRepresentativeFragmentTestFeaturesNV>{ enum { value = true }; }; + template <> struct isStructureChainValid<GraphicsPipelineCreateInfo, PipelineRepresentativeFragmentTestStateCreateInfoNV>{ enum { value = true }; }; + template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceExclusiveScissorFeaturesNV>{ enum { value = true }; }; + template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceExclusiveScissorFeaturesNV>{ enum { value = true }; }; + template <> struct isStructureChainValid<PipelineViewportStateCreateInfo, PipelineViewportExclusiveScissorStateCreateInfoNV>{ enum { value = true }; }; + template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceCornerSampledImageFeaturesNV>{ enum { value = true }; }; + template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceCornerSampledImageFeaturesNV>{ enum { value = true }; }; + template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceComputeShaderDerivativesFeaturesNV>{ enum { value = true }; }; + template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceComputeShaderDerivativesFeaturesNV>{ enum { value = true }; }; + template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceFragmentShaderBarycentricFeaturesNV>{ enum { value = true }; }; + template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceFragmentShaderBarycentricFeaturesNV>{ enum { value = true }; }; + template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderImageFootprintFeaturesNV>{ enum { value = true }; }; + template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderImageFootprintFeaturesNV>{ enum { value = true }; }; + template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShadingRateImageFeaturesNV>{ enum { value = true }; }; + template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShadingRateImageFeaturesNV>{ enum { value = true }; }; + template <> struct isStructureChainValid<PhysicalDeviceProperties, PhysicalDeviceShadingRateImagePropertiesNV>{ enum { value = true }; }; + template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceMeshShaderFeaturesNV>{ enum { value = true }; }; + template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceMeshShaderFeaturesNV>{ enum { value = true }; }; + template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceMeshShaderPropertiesNV>{ enum { value = true }; }; + template <> struct isStructureChainValid<WriteDescriptorSet, DescriptorAccelerationStructureInfoNVX>{ enum { value = true }; }; + template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceRaytracingPropertiesNVX>{ enum { value = true }; }; template <> struct isStructureChainValid<SurfaceCapabilities2KHR, SharedPresentSurfaceCapabilitiesKHR>{ enum { value = true }; }; template <> struct isStructureChainValid<ImageViewCreateInfo, ImageViewUsageCreateInfo>{ enum { value = true }; }; template <> struct isStructureChainValid<RenderPassCreateInfo, RenderPassInputAttachmentAspectCreateInfo>{ enum { value = true }; }; template <> struct isStructureChainValid<BindImageMemoryInfo, BindImagePlaneMemoryInfo>{ enum { value = true }; }; template <> struct isStructureChainValid<ImageMemoryRequirementsInfo2, ImagePlaneMemoryRequirementsInfo>{ enum { value = true }; }; + template <> struct isStructureChainValid<QueueFamilyProperties2, QueueFamilyCheckpointPropertiesNV>{ enum { value = true }; }; template <> struct isStructureChainValid<ImageMemoryBarrier, SampleLocationsInfoEXT>{ enum { value = true }; }; template <> struct isStructureChainValid<RenderPassBeginInfo, RenderPassSampleLocationsBeginInfoEXT>{ enum { value = true }; }; template <> struct isStructureChainValid<PipelineMultisampleStateCreateInfo, PipelineSampleLocationsStateCreateInfoEXT>{ enum { value = true }; }; @@ -39860,6 +46718,8 @@ public: template <> struct isStructureChainValid<InstanceCreateInfo, DebugUtilsMessengerCreateInfoEXT>{ enum { value = true }; }; template <> struct isStructureChainValid<PipelineRasterizationStateCreateInfo, PipelineRasterizationConservativeStateCreateInfoEXT>{ enum { value = true }; }; template <> struct isStructureChainValid<DescriptorSetLayoutCreateInfo, DescriptorSetLayoutBindingFlagsCreateInfoEXT>{ enum { value = true }; }; + template <> struct isStructureChainValid<PipelineViewportStateCreateInfo, PipelineViewportShadingRateImageStateCreateInfoNV>{ enum { value = true }; }; + template <> struct isStructureChainValid<PipelineViewportStateCreateInfo, PipelineViewportCoarseSampleOrderStateCreateInfoNV>{ enum { value = true }; }; template <> struct isStructureChainValid<DeviceCreateInfo, DeviceGroupDeviceCreateInfo>{ enum { value = true }; }; VULKAN_HPP_INLINE std::string to_string(FramebufferCreateFlagBits) { @@ -40267,6 +47127,20 @@ public: } #endif /*VK_USE_PLATFORM_MACOS_MVK*/ +#ifdef VK_USE_PLATFORM_FUCHSIA_FUCHSIA + VULKAN_HPP_INLINE std::string to_string(ImagePipeSurfaceCreateFlagBitsFUCHSIA) + { + return "(void)"; + } +#endif /*VK_USE_PLATFORM_FUCHSIA_FUCHSIA*/ + +#ifdef VK_USE_PLATFORM_FUCHSIA_FUCHSIA + VULKAN_HPP_INLINE std::string to_string(ImagePipeSurfaceCreateFlagsFUCHSIA) + { + return "{}"; + } +#endif /*VK_USE_PLATFORM_FUCHSIA_FUCHSIA*/ + VULKAN_HPP_INLINE std::string to_string(CommandPoolTrimFlagBits) { return "(void)"; @@ -40374,6 +47248,7 @@ public: case ImageLayout::eDepthAttachmentStencilReadOnlyOptimal: return "DepthAttachmentStencilReadOnlyOptimal"; case ImageLayout::ePresentSrcKHR: return "PresentSrcKHR"; case ImageLayout::eSharedPresentKHR: return "SharedPresentKHR"; + case ImageLayout::eShadingRateOptimalNV: return "ShadingRateOptimalNV"; default: return "invalid"; } } @@ -40475,6 +47350,8 @@ public: case DescriptorType::eUniformBufferDynamic: return "UniformBufferDynamic"; case DescriptorType::eStorageBufferDynamic: return "StorageBufferDynamic"; case DescriptorType::eInputAttachment: return "InputAttachment"; + case DescriptorType::eInlineUniformBlockEXT: return "InlineUniformBlockEXT"; + case DescriptorType::eAccelerationStructureNVX: return "AccelerationStructureNVX"; default: return "invalid"; } } @@ -40486,6 +47363,7 @@ public: case QueryType::eOcclusion: return "Occlusion"; case QueryType::ePipelineStatistics: return "PipelineStatistics"; case QueryType::eTimestamp: return "Timestamp"; + case QueryType::eCompactedSizeNVX: return "CompactedSizeNVX"; default: return "invalid"; } } @@ -40510,6 +47388,7 @@ public: { case PipelineBindPoint::eGraphics: return "Graphics"; case PipelineBindPoint::eCompute: return "Compute"; + case PipelineBindPoint::eRaytracingNVX: return "RaytracingNVX"; default: return "invalid"; } } @@ -41207,6 +48086,7 @@ public: case StructureType::eDedicatedAllocationBufferCreateInfoNV: return "DedicatedAllocationBufferCreateInfoNV"; case StructureType::eDedicatedAllocationMemoryAllocateInfoNV: return "DedicatedAllocationMemoryAllocateInfoNV"; case StructureType::eTextureLodGatherFormatPropertiesAMD: return "TextureLodGatherFormatPropertiesAMD"; + case StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV: return "PhysicalDeviceCornerSampledImageFeaturesNV"; case StructureType::eExternalMemoryImageCreateInfoNV: return "ExternalMemoryImageCreateInfoNV"; case StructureType::eExportMemoryAllocateInfoNV: return "ExportMemoryAllocateInfoNV"; case StructureType::eImportMemoryWin32HandleInfoNV: return "ImportMemoryWin32HandleInfoNV"; @@ -41214,6 +48094,8 @@ public: case StructureType::eWin32KeyedMutexAcquireReleaseInfoNV: return "Win32KeyedMutexAcquireReleaseInfoNV"; case StructureType::eValidationFlagsEXT: return "ValidationFlagsEXT"; case StructureType::eViSurfaceCreateInfoNN: return "ViSurfaceCreateInfoNN"; + case StructureType::eImageViewAstcDecodeModeEXT: return "ImageViewAstcDecodeModeEXT"; + case StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT: return "PhysicalDeviceAstcDecodeFeaturesEXT"; case StructureType::eImportMemoryWin32HandleInfoKHR: return "ImportMemoryWin32HandleInfoKHR"; case StructureType::eExportMemoryWin32HandleInfoKHR: return "ExportMemoryWin32HandleInfoKHR"; case StructureType::eMemoryWin32HandlePropertiesKHR: return "MemoryWin32HandlePropertiesKHR"; @@ -41229,6 +48111,9 @@ public: case StructureType::eImportSemaphoreFdInfoKHR: return "ImportSemaphoreFdInfoKHR"; case StructureType::eSemaphoreGetFdInfoKHR: return "SemaphoreGetFdInfoKHR"; case StructureType::ePhysicalDevicePushDescriptorPropertiesKHR: return "PhysicalDevicePushDescriptorPropertiesKHR"; + case StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT: return "CommandBufferInheritanceConditionalRenderingInfoEXT"; + case StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT: return "PhysicalDeviceConditionalRenderingFeaturesEXT"; + case StructureType::eConditionalRenderingBeginInfoEXT: return "ConditionalRenderingBeginInfoEXT"; case StructureType::ePresentRegionsKHR: return "PresentRegionsKHR"; case StructureType::eObjectTableCreateInfoNVX: return "ObjectTableCreateInfoNVX"; case StructureType::eIndirectCommandsLayoutCreateInfoNVX: return "IndirectCommandsLayoutCreateInfoNVX"; @@ -41250,6 +48135,13 @@ public: case StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT: return "PhysicalDeviceConservativeRasterizationPropertiesEXT"; case StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT: return "PipelineRasterizationConservativeStateCreateInfoEXT"; case StructureType::eHdrMetadataEXT: return "HdrMetadataEXT"; + case StructureType::eAttachmentDescription2KHR: return "AttachmentDescription2KHR"; + case StructureType::eAttachmentReference2KHR: return "AttachmentReference2KHR"; + case StructureType::eSubpassDescription2KHR: return "SubpassDescription2KHR"; + case StructureType::eSubpassDependency2KHR: return "SubpassDependency2KHR"; + case StructureType::eRenderPassCreateInfo2KHR: return "RenderPassCreateInfo2KHR"; + case StructureType::eSubpassBeginInfoKHR: return "SubpassBeginInfoKHR"; + case StructureType::eSubpassEndInfoKHR: return "SubpassEndInfoKHR"; case StructureType::eSharedPresentSurfaceCapabilitiesKHR: return "SharedPresentSurfaceCapabilitiesKHR"; case StructureType::eImportFenceWin32HandleInfoKHR: return "ImportFenceWin32HandleInfoKHR"; case StructureType::eExportFenceWin32HandleInfoKHR: return "ExportFenceWin32HandleInfoKHR"; @@ -41279,6 +48171,10 @@ public: case StructureType::eExternalFormatANDROID: return "ExternalFormatANDROID"; case StructureType::ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT: return "PhysicalDeviceSamplerFilterMinmaxPropertiesEXT"; case StructureType::eSamplerReductionModeCreateInfoEXT: return "SamplerReductionModeCreateInfoEXT"; + case StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT: return "PhysicalDeviceInlineUniformBlockFeaturesEXT"; + case StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT: return "PhysicalDeviceInlineUniformBlockPropertiesEXT"; + case StructureType::eWriteDescriptorSetInlineUniformBlockEXT: return "WriteDescriptorSetInlineUniformBlockEXT"; + case StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT: return "DescriptorPoolInlineUniformBlockCreateInfoEXT"; case StructureType::eSampleLocationsInfoEXT: return "SampleLocationsInfoEXT"; case StructureType::eRenderPassSampleLocationsBeginInfoEXT: return "RenderPassSampleLocationsBeginInfoEXT"; case StructureType::ePipelineSampleLocationsStateCreateInfoEXT: return "PipelineSampleLocationsStateCreateInfoEXT"; @@ -41297,13 +48193,45 @@ public: case StructureType::ePhysicalDeviceDescriptorIndexingPropertiesEXT: return "PhysicalDeviceDescriptorIndexingPropertiesEXT"; case StructureType::eDescriptorSetVariableDescriptorCountAllocateInfoEXT: return "DescriptorSetVariableDescriptorCountAllocateInfoEXT"; case StructureType::eDescriptorSetVariableDescriptorCountLayoutSupportEXT: return "DescriptorSetVariableDescriptorCountLayoutSupportEXT"; + case StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV: return "PipelineViewportShadingRateImageStateCreateInfoNV"; + case StructureType::ePhysicalDeviceShadingRateImageFeaturesNV: return "PhysicalDeviceShadingRateImageFeaturesNV"; + case StructureType::ePhysicalDeviceShadingRateImagePropertiesNV: return "PhysicalDeviceShadingRateImagePropertiesNV"; + case StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV: return "PipelineViewportCoarseSampleOrderStateCreateInfoNV"; + case StructureType::eRaytracingPipelineCreateInfoNVX: return "RaytracingPipelineCreateInfoNVX"; + case StructureType::eAccelerationStructureCreateInfoNVX: return "AccelerationStructureCreateInfoNVX"; + case StructureType::eGeometryInstanceNVX: return "GeometryInstanceNVX"; + case StructureType::eGeometryNVX: return "GeometryNVX"; + case StructureType::eGeometryTrianglesNVX: return "GeometryTrianglesNVX"; + case StructureType::eGeometryAabbNVX: return "GeometryAabbNVX"; + case StructureType::eBindAccelerationStructureMemoryInfoNVX: return "BindAccelerationStructureMemoryInfoNVX"; + case StructureType::eDescriptorAccelerationStructureInfoNVX: return "DescriptorAccelerationStructureInfoNVX"; + case StructureType::eAccelerationStructureMemoryRequirementsInfoNVX: return "AccelerationStructureMemoryRequirementsInfoNVX"; + case StructureType::ePhysicalDeviceRaytracingPropertiesNVX: return "PhysicalDeviceRaytracingPropertiesNVX"; + case StructureType::eHitShaderModuleCreateInfoNVX: return "HitShaderModuleCreateInfoNVX"; + case StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV: return "PhysicalDeviceRepresentativeFragmentTestFeaturesNV"; + case StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV: return "PipelineRepresentativeFragmentTestStateCreateInfoNV"; case StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT: return "DeviceQueueGlobalPriorityCreateInfoEXT"; + case StructureType::ePhysicalDevice8BitStorageFeaturesKHR: return "PhysicalDevice8BitStorageFeaturesKHR"; case StructureType::eImportMemoryHostPointerInfoEXT: return "ImportMemoryHostPointerInfoEXT"; case StructureType::eMemoryHostPointerPropertiesEXT: return "MemoryHostPointerPropertiesEXT"; case StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT: return "PhysicalDeviceExternalMemoryHostPropertiesEXT"; + case StructureType::ePhysicalDeviceShaderAtomicInt64FeaturesKHR: return "PhysicalDeviceShaderAtomicInt64FeaturesKHR"; case StructureType::ePhysicalDeviceShaderCorePropertiesAMD: return "PhysicalDeviceShaderCorePropertiesAMD"; case StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT: return "PhysicalDeviceVertexAttributeDivisorPropertiesEXT"; case StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT: return "PipelineVertexInputDivisorStateCreateInfoEXT"; + case StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT: return "PhysicalDeviceVertexAttributeDivisorFeaturesEXT"; + case StructureType::ePhysicalDeviceDriverPropertiesKHR: return "PhysicalDeviceDriverPropertiesKHR"; + case StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV: return "PhysicalDeviceComputeShaderDerivativesFeaturesNV"; + case StructureType::ePhysicalDeviceMeshShaderFeaturesNV: return "PhysicalDeviceMeshShaderFeaturesNV"; + case StructureType::ePhysicalDeviceMeshShaderPropertiesNV: return "PhysicalDeviceMeshShaderPropertiesNV"; + case StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV: return "PhysicalDeviceFragmentShaderBarycentricFeaturesNV"; + case StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV: return "PhysicalDeviceShaderImageFootprintFeaturesNV"; + case StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV: return "PipelineViewportExclusiveScissorStateCreateInfoNV"; + case StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV: return "PhysicalDeviceExclusiveScissorFeaturesNV"; + case StructureType::eCheckpointDataNV: return "CheckpointDataNV"; + case StructureType::eQueueFamilyCheckpointPropertiesNV: return "QueueFamilyCheckpointPropertiesNV"; + case StructureType::ePhysicalDeviceVulkanMemoryModelFeaturesKHR: return "PhysicalDeviceVulkanMemoryModelFeaturesKHR"; + case StructureType::eImagepipeSurfaceCreateInfoFUCHSIA: return "ImagepipeSurfaceCreateInfoFUCHSIA"; default: return "invalid"; } } @@ -41334,6 +48262,9 @@ public: case DynamicState::eViewportWScalingNV: return "ViewportWScalingNV"; case DynamicState::eDiscardRectangleEXT: return "DiscardRectangleEXT"; case DynamicState::eSampleLocationsEXT: return "SampleLocationsEXT"; + case DynamicState::eViewportShadingRatePaletteNV: return "ViewportShadingRatePaletteNV"; + case DynamicState::eViewportCoarseSampleOrderNV: return "ViewportCoarseSampleOrderNV"; + case DynamicState::eExclusiveScissorNV: return "ExclusiveScissorNV"; default: return "invalid"; } } @@ -41389,6 +48320,7 @@ public: case ObjectType::eIndirectCommandsLayoutNVX: return "IndirectCommandsLayoutNVX"; case ObjectType::eDebugUtilsMessengerEXT: return "DebugUtilsMessengerEXT"; case ObjectType::eValidationCacheEXT: return "ValidationCacheEXT"; + case ObjectType::eAccelerationStructureNVX: return "AccelerationStructureNVX"; default: return "invalid"; } } @@ -41502,9 +48434,13 @@ public: case AccessFlagBits::eHostWrite: return "HostWrite"; case AccessFlagBits::eMemoryRead: return "MemoryRead"; case AccessFlagBits::eMemoryWrite: return "MemoryWrite"; + case AccessFlagBits::eConditionalRenderingReadEXT: return "ConditionalRenderingReadEXT"; case AccessFlagBits::eCommandProcessReadNVX: return "CommandProcessReadNVX"; case AccessFlagBits::eCommandProcessWriteNVX: return "CommandProcessWriteNVX"; case AccessFlagBits::eColorAttachmentReadNoncoherentEXT: return "ColorAttachmentReadNoncoherentEXT"; + case AccessFlagBits::eShadingRateImageReadNV: return "ShadingRateImageReadNV"; + case AccessFlagBits::eAccelerationStructureReadNVX: return "AccelerationStructureReadNVX"; + case AccessFlagBits::eAccelerationStructureWriteNVX: return "AccelerationStructureWriteNVX"; default: return "invalid"; } } @@ -41530,9 +48466,13 @@ public: if (value & AccessFlagBits::eHostWrite) result += "HostWrite | "; if (value & AccessFlagBits::eMemoryRead) result += "MemoryRead | "; if (value & AccessFlagBits::eMemoryWrite) result += "MemoryWrite | "; + if (value & AccessFlagBits::eConditionalRenderingReadEXT) result += "ConditionalRenderingReadEXT | "; if (value & AccessFlagBits::eCommandProcessReadNVX) result += "CommandProcessReadNVX | "; if (value & AccessFlagBits::eCommandProcessWriteNVX) result += "CommandProcessWriteNVX | "; if (value & AccessFlagBits::eColorAttachmentReadNoncoherentEXT) result += "ColorAttachmentReadNoncoherentEXT | "; + if (value & AccessFlagBits::eShadingRateImageReadNV) result += "ShadingRateImageReadNV | "; + if (value & AccessFlagBits::eAccelerationStructureReadNVX) result += "AccelerationStructureReadNVX | "; + if (value & AccessFlagBits::eAccelerationStructureWriteNVX) result += "AccelerationStructureWriteNVX | "; return "{" + result.substr(0, result.size() - 3) + "}"; } @@ -41549,6 +48489,8 @@ public: case BufferUsageFlagBits::eIndexBuffer: return "IndexBuffer"; case BufferUsageFlagBits::eVertexBuffer: return "VertexBuffer"; case BufferUsageFlagBits::eIndirectBuffer: return "IndirectBuffer"; + case BufferUsageFlagBits::eConditionalRenderingEXT: return "ConditionalRenderingEXT"; + case BufferUsageFlagBits::eRaytracingNVX: return "RaytracingNVX"; default: return "invalid"; } } @@ -41566,6 +48508,8 @@ public: if (value & BufferUsageFlagBits::eIndexBuffer) result += "IndexBuffer | "; if (value & BufferUsageFlagBits::eVertexBuffer) result += "VertexBuffer | "; if (value & BufferUsageFlagBits::eIndirectBuffer) result += "IndirectBuffer | "; + if (value & BufferUsageFlagBits::eConditionalRenderingEXT) result += "ConditionalRenderingEXT | "; + if (value & BufferUsageFlagBits::eRaytracingNVX) result += "RaytracingNVX | "; return "{" + result.substr(0, result.size() - 3) + "}"; } @@ -41604,6 +48548,14 @@ public: case ShaderStageFlagBits::eCompute: return "Compute"; case ShaderStageFlagBits::eAllGraphics: return "AllGraphics"; case ShaderStageFlagBits::eAll: return "All"; + case ShaderStageFlagBits::eRaygenNVX: return "RaygenNVX"; + case ShaderStageFlagBits::eAnyHitNVX: return "AnyHitNVX"; + case ShaderStageFlagBits::eClosestHitNVX: return "ClosestHitNVX"; + case ShaderStageFlagBits::eMissNVX: return "MissNVX"; + case ShaderStageFlagBits::eIntersectionNVX: return "IntersectionNVX"; + case ShaderStageFlagBits::eCallableNVX: return "CallableNVX"; + case ShaderStageFlagBits::eTaskNV: return "TaskNV"; + case ShaderStageFlagBits::eMeshNV: return "MeshNV"; default: return "invalid"; } } @@ -41620,6 +48572,14 @@ public: if (value & ShaderStageFlagBits::eCompute) result += "Compute | "; if (value & ShaderStageFlagBits::eAllGraphics) result += "AllGraphics | "; if (value & ShaderStageFlagBits::eAll) result += "All | "; + if (value & ShaderStageFlagBits::eRaygenNVX) result += "RaygenNVX | "; + if (value & ShaderStageFlagBits::eAnyHitNVX) result += "AnyHitNVX | "; + if (value & ShaderStageFlagBits::eClosestHitNVX) result += "ClosestHitNVX | "; + if (value & ShaderStageFlagBits::eMissNVX) result += "MissNVX | "; + if (value & ShaderStageFlagBits::eIntersectionNVX) result += "IntersectionNVX | "; + if (value & ShaderStageFlagBits::eCallableNVX) result += "CallableNVX | "; + if (value & ShaderStageFlagBits::eTaskNV) result += "TaskNV | "; + if (value & ShaderStageFlagBits::eMeshNV) result += "MeshNV | "; return "{" + result.substr(0, result.size() - 3) + "}"; } @@ -41635,6 +48595,7 @@ public: case ImageUsageFlagBits::eDepthStencilAttachment: return "DepthStencilAttachment"; case ImageUsageFlagBits::eTransientAttachment: return "TransientAttachment"; case ImageUsageFlagBits::eInputAttachment: return "InputAttachment"; + case ImageUsageFlagBits::eShadingRateImageNV: return "ShadingRateImageNV"; default: return "invalid"; } } @@ -41651,6 +48612,7 @@ public: if (value & ImageUsageFlagBits::eDepthStencilAttachment) result += "DepthStencilAttachment | "; if (value & ImageUsageFlagBits::eTransientAttachment) result += "TransientAttachment | "; if (value & ImageUsageFlagBits::eInputAttachment) result += "InputAttachment | "; + if (value & ImageUsageFlagBits::eShadingRateImageNV) result += "ShadingRateImageNV | "; return "{" + result.substr(0, result.size() - 3) + "}"; } @@ -41670,6 +48632,7 @@ public: case ImageCreateFlagBits::eExtendedUsage: return "ExtendedUsage"; case ImageCreateFlagBits::eProtected: return "Protected"; case ImageCreateFlagBits::eDisjoint: return "Disjoint"; + case ImageCreateFlagBits::eCornerSampledNV: return "CornerSampledNV"; case ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT: return "SampleLocationsCompatibleDepthEXT"; default: return "invalid"; } @@ -41691,6 +48654,7 @@ public: if (value & ImageCreateFlagBits::eExtendedUsage) result += "ExtendedUsage | "; if (value & ImageCreateFlagBits::eProtected) result += "Protected | "; if (value & ImageCreateFlagBits::eDisjoint) result += "Disjoint | "; + if (value & ImageCreateFlagBits::eCornerSampledNV) result += "CornerSampledNV | "; if (value & ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT) result += "SampleLocationsCompatibleDepthEXT | "; return "{" + result.substr(0, result.size() - 3) + "}"; } @@ -41704,6 +48668,7 @@ public: case PipelineCreateFlagBits::eDerivative: return "Derivative"; case PipelineCreateFlagBits::eViewIndexFromDeviceIndex: return "ViewIndexFromDeviceIndex"; case PipelineCreateFlagBits::eDispatchBase: return "DispatchBase"; + case PipelineCreateFlagBits::eDeferCompileNVX: return "DeferCompileNVX"; default: return "invalid"; } } @@ -41717,6 +48682,7 @@ public: if (value & PipelineCreateFlagBits::eDerivative) result += "Derivative | "; if (value & PipelineCreateFlagBits::eViewIndexFromDeviceIndex) result += "ViewIndexFromDeviceIndex | "; if (value & PipelineCreateFlagBits::eDispatchBase) result += "DispatchBase | "; + if (value & PipelineCreateFlagBits::eDeferCompileNVX) result += "DeferCompileNVX | "; return "{" + result.substr(0, result.size() - 3) + "}"; } @@ -42009,7 +48975,12 @@ public: case PipelineStageFlagBits::eHost: return "Host"; case PipelineStageFlagBits::eAllGraphics: return "AllGraphics"; case PipelineStageFlagBits::eAllCommands: return "AllCommands"; + case PipelineStageFlagBits::eConditionalRenderingEXT: return "ConditionalRenderingEXT"; case PipelineStageFlagBits::eCommandProcessNVX: return "CommandProcessNVX"; + case PipelineStageFlagBits::eShadingRateImageNV: return "ShadingRateImageNV"; + case PipelineStageFlagBits::eRaytracingNVX: return "RaytracingNVX"; + case PipelineStageFlagBits::eTaskShaderNV: return "TaskShaderNV"; + case PipelineStageFlagBits::eMeshShaderNV: return "MeshShaderNV"; default: return "invalid"; } } @@ -42035,7 +49006,12 @@ public: if (value & PipelineStageFlagBits::eHost) result += "Host | "; if (value & PipelineStageFlagBits::eAllGraphics) result += "AllGraphics | "; if (value & PipelineStageFlagBits::eAllCommands) result += "AllCommands | "; + if (value & PipelineStageFlagBits::eConditionalRenderingEXT) result += "ConditionalRenderingEXT | "; if (value & PipelineStageFlagBits::eCommandProcessNVX) result += "CommandProcessNVX | "; + if (value & PipelineStageFlagBits::eShadingRateImageNV) result += "ShadingRateImageNV | "; + if (value & PipelineStageFlagBits::eRaytracingNVX) result += "RaytracingNVX | "; + if (value & PipelineStageFlagBits::eTaskShaderNV) result += "TaskShaderNV | "; + if (value & PipelineStageFlagBits::eMeshShaderNV) result += "MeshShaderNV | "; return "{" + result.substr(0, result.size() - 3) + "}"; } @@ -42382,6 +49358,7 @@ public: case DebugReportObjectTypeEXT::eValidationCacheExt: return "ValidationCacheExt"; case DebugReportObjectTypeEXT::eSamplerYcbcrConversion: return "SamplerYcbcrConversion"; case DebugReportObjectTypeEXT::eDescriptorUpdateTemplate: return "DescriptorUpdateTemplate"; + case DebugReportObjectTypeEXT::eAccelerationStructureNVX: return "AccelerationStructureNVX"; default: return "invalid"; } } @@ -43132,6 +50109,169 @@ public: } } + VULKAN_HPP_INLINE std::string to_string(DriverIdKHR value) + { + switch (value) + { + case DriverIdKHR::eAmdProprietary: return "AmdProprietary"; + case DriverIdKHR::eAmdOpenSource: return "AmdOpenSource"; + case DriverIdKHR::eMesaRadv: return "MesaRadv"; + case DriverIdKHR::eNvidiaProprietary: return "NvidiaProprietary"; + case DriverIdKHR::eIntelProprietaryWindows: return "IntelProprietaryWindows"; + case DriverIdKHR::eIntelOpenSourceMesa: return "IntelOpenSourceMesa"; + case DriverIdKHR::eImaginationProprietary: return "ImaginationProprietary"; + case DriverIdKHR::eQualcommProprietary: return "QualcommProprietary"; + case DriverIdKHR::eArmProprietary: return "ArmProprietary"; + default: return "invalid"; + } + } + + VULKAN_HPP_INLINE std::string to_string(ConditionalRenderingFlagBitsEXT value) + { + switch (value) + { + case ConditionalRenderingFlagBitsEXT::eInverted: return "Inverted"; + default: return "invalid"; + } + } + + VULKAN_HPP_INLINE std::string to_string(ConditionalRenderingFlagsEXT value) + { + if (!value) return "{}"; + std::string result; + if (value & ConditionalRenderingFlagBitsEXT::eInverted) result += "Inverted | "; + return "{" + result.substr(0, result.size() - 3) + "}"; + } + + VULKAN_HPP_INLINE std::string to_string(ShadingRatePaletteEntryNV value) + { + switch (value) + { + case ShadingRatePaletteEntryNV::eNoInvocations: return "NoInvocations"; + case ShadingRatePaletteEntryNV::e16InvocationsPerPixel: return "16InvocationsPerPixel"; + case ShadingRatePaletteEntryNV::e8InvocationsPerPixel: return "8InvocationsPerPixel"; + case ShadingRatePaletteEntryNV::e4InvocationsPerPixel: return "4InvocationsPerPixel"; + case ShadingRatePaletteEntryNV::e2InvocationsPerPixel: return "2InvocationsPerPixel"; + case ShadingRatePaletteEntryNV::e1InvocationPerPixel: return "1InvocationPerPixel"; + case ShadingRatePaletteEntryNV::e1InvocationPer2X1Pixels: return "1InvocationPer2X1Pixels"; + case ShadingRatePaletteEntryNV::e1InvocationPer1X2Pixels: return "1InvocationPer1X2Pixels"; + case ShadingRatePaletteEntryNV::e1InvocationPer2X2Pixels: return "1InvocationPer2X2Pixels"; + case ShadingRatePaletteEntryNV::e1InvocationPer4X2Pixels: return "1InvocationPer4X2Pixels"; + case ShadingRatePaletteEntryNV::e1InvocationPer2X4Pixels: return "1InvocationPer2X4Pixels"; + case ShadingRatePaletteEntryNV::e1InvocationPer4X4Pixels: return "1InvocationPer4X4Pixels"; + default: return "invalid"; + } + } + + VULKAN_HPP_INLINE std::string to_string(CoarseSampleOrderTypeNV value) + { + switch (value) + { + case CoarseSampleOrderTypeNV::eDefault: return "Default"; + case CoarseSampleOrderTypeNV::eCustom: return "Custom"; + case CoarseSampleOrderTypeNV::ePixelMajor: return "PixelMajor"; + case CoarseSampleOrderTypeNV::eSampleMajor: return "SampleMajor"; + default: return "invalid"; + } + } + + VULKAN_HPP_INLINE std::string to_string(GeometryInstanceFlagBitsNVX value) + { + switch (value) + { + case GeometryInstanceFlagBitsNVX::eTriangleCullDisable: return "TriangleCullDisable"; + case GeometryInstanceFlagBitsNVX::eTriangleCullFlipWinding: return "TriangleCullFlipWinding"; + case GeometryInstanceFlagBitsNVX::eForceOpaque: return "ForceOpaque"; + case GeometryInstanceFlagBitsNVX::eForceNoOpaque: return "ForceNoOpaque"; + default: return "invalid"; + } + } + + VULKAN_HPP_INLINE std::string to_string(GeometryInstanceFlagsNVX value) + { + if (!value) return "{}"; + std::string result; + if (value & GeometryInstanceFlagBitsNVX::eTriangleCullDisable) result += "TriangleCullDisable | "; + if (value & GeometryInstanceFlagBitsNVX::eTriangleCullFlipWinding) result += "TriangleCullFlipWinding | "; + if (value & GeometryInstanceFlagBitsNVX::eForceOpaque) result += "ForceOpaque | "; + if (value & GeometryInstanceFlagBitsNVX::eForceNoOpaque) result += "ForceNoOpaque | "; + return "{" + result.substr(0, result.size() - 3) + "}"; + } + + VULKAN_HPP_INLINE std::string to_string(GeometryFlagBitsNVX value) + { + switch (value) + { + case GeometryFlagBitsNVX::eOpaque: return "Opaque"; + case GeometryFlagBitsNVX::eNoDuplicateAnyHitInvocation: return "NoDuplicateAnyHitInvocation"; + default: return "invalid"; + } + } + + VULKAN_HPP_INLINE std::string to_string(GeometryFlagsNVX value) + { + if (!value) return "{}"; + std::string result; + if (value & GeometryFlagBitsNVX::eOpaque) result += "Opaque | "; + if (value & GeometryFlagBitsNVX::eNoDuplicateAnyHitInvocation) result += "NoDuplicateAnyHitInvocation | "; + return "{" + result.substr(0, result.size() - 3) + "}"; + } + + VULKAN_HPP_INLINE std::string to_string(BuildAccelerationStructureFlagBitsNVX value) + { + switch (value) + { + case BuildAccelerationStructureFlagBitsNVX::eAllowUpdate: return "AllowUpdate"; + case BuildAccelerationStructureFlagBitsNVX::eAllowCompaction: return "AllowCompaction"; + case BuildAccelerationStructureFlagBitsNVX::ePreferFastTrace: return "PreferFastTrace"; + case BuildAccelerationStructureFlagBitsNVX::ePreferFastBuild: return "PreferFastBuild"; + case BuildAccelerationStructureFlagBitsNVX::eLowMemory: return "LowMemory"; + default: return "invalid"; + } + } + + VULKAN_HPP_INLINE std::string to_string(BuildAccelerationStructureFlagsNVX value) + { + if (!value) return "{}"; + std::string result; + if (value & BuildAccelerationStructureFlagBitsNVX::eAllowUpdate) result += "AllowUpdate | "; + if (value & BuildAccelerationStructureFlagBitsNVX::eAllowCompaction) result += "AllowCompaction | "; + if (value & BuildAccelerationStructureFlagBitsNVX::ePreferFastTrace) result += "PreferFastTrace | "; + if (value & BuildAccelerationStructureFlagBitsNVX::ePreferFastBuild) result += "PreferFastBuild | "; + if (value & BuildAccelerationStructureFlagBitsNVX::eLowMemory) result += "LowMemory | "; + return "{" + result.substr(0, result.size() - 3) + "}"; + } + + VULKAN_HPP_INLINE std::string to_string(CopyAccelerationStructureModeNVX value) + { + switch (value) + { + case CopyAccelerationStructureModeNVX::eClone: return "Clone"; + case CopyAccelerationStructureModeNVX::eCompact: return "Compact"; + default: return "invalid"; + } + } + + VULKAN_HPP_INLINE std::string to_string(AccelerationStructureTypeNVX value) + { + switch (value) + { + case AccelerationStructureTypeNVX::eTopLevel: return "TopLevel"; + case AccelerationStructureTypeNVX::eBottomLevel: return "BottomLevel"; + default: return "invalid"; + } + } + + VULKAN_HPP_INLINE std::string to_string(GeometryTypeNVX value) + { + switch (value) + { + case GeometryTypeNVX::eTriangles: return "Triangles"; + case GeometryTypeNVX::eAabbs: return "Aabbs"; + default: return "invalid"; + } + } + class DispatchLoaderDynamic { public: @@ -43144,23 +50284,29 @@ public: PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets = 0; PFN_vkAllocateMemory vkAllocateMemory = 0; PFN_vkBeginCommandBuffer vkBeginCommandBuffer = 0; + PFN_vkBindAccelerationStructureMemoryNVX vkBindAccelerationStructureMemoryNVX = 0; PFN_vkBindBufferMemory vkBindBufferMemory = 0; PFN_vkBindBufferMemory2 vkBindBufferMemory2 = 0; PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0; PFN_vkBindImageMemory vkBindImageMemory = 0; PFN_vkBindImageMemory2 vkBindImageMemory2 = 0; PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR = 0; + PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0; PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT = 0; PFN_vkCmdBeginQuery vkCmdBeginQuery = 0; PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass = 0; + PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0; PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets = 0; PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer = 0; PFN_vkCmdBindPipeline vkCmdBindPipeline = 0; + PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV = 0; PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0; PFN_vkCmdBlitImage vkCmdBlitImage = 0; + PFN_vkCmdBuildAccelerationStructureNVX vkCmdBuildAccelerationStructureNVX = 0; PFN_vkCmdClearAttachments vkCmdClearAttachments = 0; PFN_vkCmdClearColorImage vkCmdClearColorImage = 0; PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage = 0; + PFN_vkCmdCopyAccelerationStructureNVX vkCmdCopyAccelerationStructureNVX = 0; PFN_vkCmdCopyBuffer vkCmdCopyBuffer = 0; PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = 0; PFN_vkCmdCopyImage vkCmdCopyImage = 0; @@ -43181,13 +50327,19 @@ public: PFN_vkCmdDrawIndirect vkCmdDrawIndirect = 0; PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD = 0; PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR = 0; + PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0; + PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV = 0; + PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV = 0; + PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT = 0; PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT = 0; PFN_vkCmdEndQuery vkCmdEndQuery = 0; PFN_vkCmdEndRenderPass vkCmdEndRenderPass = 0; + PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR = 0; PFN_vkCmdExecuteCommands vkCmdExecuteCommands = 0; PFN_vkCmdFillBuffer vkCmdFillBuffer = 0; PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT = 0; PFN_vkCmdNextSubpass vkCmdNextSubpass = 0; + PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR = 0; PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier = 0; PFN_vkCmdProcessCommandsNVX vkCmdProcessCommandsNVX = 0; PFN_vkCmdPushConstants vkCmdPushConstants = 0; @@ -43198,12 +50350,15 @@ public: PFN_vkCmdResetQueryPool vkCmdResetQueryPool = 0; PFN_vkCmdResolveImage vkCmdResolveImage = 0; PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants = 0; + PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV = 0; + PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV = 0; PFN_vkCmdSetDepthBias vkCmdSetDepthBias = 0; PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds = 0; PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask = 0; PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR = 0; PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0; PFN_vkCmdSetEvent vkCmdSetEvent = 0; + PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0; PFN_vkCmdSetLineWidth vkCmdSetLineWidth = 0; PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT = 0; PFN_vkCmdSetScissor vkCmdSetScissor = 0; @@ -43211,11 +50366,16 @@ public: PFN_vkCmdSetStencilReference vkCmdSetStencilReference = 0; PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask = 0; PFN_vkCmdSetViewport vkCmdSetViewport = 0; + PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0; PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0; + PFN_vkCmdTraceRaysNVX vkCmdTraceRaysNVX = 0; PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer = 0; PFN_vkCmdWaitEvents vkCmdWaitEvents = 0; + PFN_vkCmdWriteAccelerationStructurePropertiesNVX vkCmdWriteAccelerationStructurePropertiesNVX = 0; PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0; PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp = 0; + PFN_vkCompileDeferredNVX vkCompileDeferredNVX = 0; + PFN_vkCreateAccelerationStructureNVX vkCreateAccelerationStructureNVX = 0; #ifdef VK_USE_PLATFORM_ANDROID_KHR PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0; #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ @@ -43240,6 +50400,9 @@ public: PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0; #endif /*VK_USE_PLATFORM_IOS_MVK*/ PFN_vkCreateImage vkCreateImage = 0; +#ifdef VK_USE_PLATFORM_FUCHSIA_FUCHSIA + PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0; +#endif /*VK_USE_PLATFORM_FUCHSIA_FUCHSIA*/ PFN_vkCreateImageView vkCreateImageView = 0; PFN_vkCreateIndirectCommandsLayoutNVX vkCreateIndirectCommandsLayoutNVX = 0; PFN_vkCreateInstance vkCreateInstance = 0; @@ -43253,7 +50416,9 @@ public: PFN_vkCreatePipelineCache vkCreatePipelineCache = 0; PFN_vkCreatePipelineLayout vkCreatePipelineLayout = 0; PFN_vkCreateQueryPool vkCreateQueryPool = 0; + PFN_vkCreateRaytracingPipelinesNVX vkCreateRaytracingPipelinesNVX = 0; PFN_vkCreateRenderPass vkCreateRenderPass = 0; + PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR = 0; PFN_vkCreateSampler vkCreateSampler = 0; PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion = 0; PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR = 0; @@ -43280,6 +50445,7 @@ public: PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0; PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT = 0; PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT = 0; + PFN_vkDestroyAccelerationStructureNVX vkDestroyAccelerationStructureNVX = 0; PFN_vkDestroyBuffer vkDestroyBuffer = 0; PFN_vkDestroyBufferView vkDestroyBufferView = 0; PFN_vkDestroyCommandPool vkDestroyCommandPool = 0; @@ -43326,6 +50492,9 @@ public: PFN_vkFreeCommandBuffers vkFreeCommandBuffers = 0; PFN_vkFreeDescriptorSets vkFreeDescriptorSets = 0; PFN_vkFreeMemory vkFreeMemory = 0; + PFN_vkGetAccelerationStructureHandleNVX vkGetAccelerationStructureHandleNVX = 0; + PFN_vkGetAccelerationStructureMemoryRequirementsNVX vkGetAccelerationStructureMemoryRequirementsNVX = 0; + PFN_vkGetAccelerationStructureScratchMemoryRequirementsNVX vkGetAccelerationStructureScratchMemoryRequirementsNVX = 0; #ifdef VK_USE_PLATFORM_ANDROID_ANDROID PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0; #endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/ @@ -43436,9 +50605,11 @@ public: #endif /*VK_USE_PLATFORM_XLIB_KHR*/ PFN_vkGetPipelineCacheData vkGetPipelineCacheData = 0; PFN_vkGetQueryPoolResults vkGetQueryPoolResults = 0; + PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0; #ifdef VK_USE_PLATFORM_XLIB_XRANDR_NV PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0; #endif /*VK_USE_PLATFORM_XLIB_XRANDR_NV*/ + PFN_vkGetRaytracingShaderHandlesNVX vkGetRaytracingShaderHandlesNVX = 0; PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE = 0; PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity = 0; PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR = 0; @@ -43505,29 +50676,35 @@ public: vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR(device ? device.getProcAddr( "vkAcquireNextImage2KHR") : instance.getProcAddr( "vkAcquireNextImage2KHR")); vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR(device ? device.getProcAddr( "vkAcquireNextImageKHR") : instance.getProcAddr( "vkAcquireNextImageKHR")); #ifdef VK_USE_PLATFORM_XLIB_XRANDR_NV - vkAcquireXlibDisplayEXT = PFN_vkAcquireXlibDisplayEXT(device ? device.getProcAddr( "vkAcquireXlibDisplayEXT") : instance.getProcAddr( "vkAcquireXlibDisplayEXT")); + vkAcquireXlibDisplayEXT = PFN_vkAcquireXlibDisplayEXT(instance.getProcAddr( "vkAcquireXlibDisplayEXT")); #endif /*VK_USE_PLATFORM_XLIB_XRANDR_NV*/ vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers(device ? device.getProcAddr( "vkAllocateCommandBuffers") : instance.getProcAddr( "vkAllocateCommandBuffers")); vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets(device ? device.getProcAddr( "vkAllocateDescriptorSets") : instance.getProcAddr( "vkAllocateDescriptorSets")); vkAllocateMemory = PFN_vkAllocateMemory(device ? device.getProcAddr( "vkAllocateMemory") : instance.getProcAddr( "vkAllocateMemory")); vkBeginCommandBuffer = PFN_vkBeginCommandBuffer(device ? device.getProcAddr( "vkBeginCommandBuffer") : instance.getProcAddr( "vkBeginCommandBuffer")); + vkBindAccelerationStructureMemoryNVX = PFN_vkBindAccelerationStructureMemoryNVX(device ? device.getProcAddr( "vkBindAccelerationStructureMemoryNVX") : instance.getProcAddr( "vkBindAccelerationStructureMemoryNVX")); vkBindBufferMemory = PFN_vkBindBufferMemory(device ? device.getProcAddr( "vkBindBufferMemory") : instance.getProcAddr( "vkBindBufferMemory")); vkBindBufferMemory2 = PFN_vkBindBufferMemory2(device ? device.getProcAddr( "vkBindBufferMemory2") : instance.getProcAddr( "vkBindBufferMemory2")); vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR(device ? device.getProcAddr( "vkBindBufferMemory2KHR") : instance.getProcAddr( "vkBindBufferMemory2KHR")); vkBindImageMemory = PFN_vkBindImageMemory(device ? device.getProcAddr( "vkBindImageMemory") : instance.getProcAddr( "vkBindImageMemory")); vkBindImageMemory2 = PFN_vkBindImageMemory2(device ? device.getProcAddr( "vkBindImageMemory2") : instance.getProcAddr( "vkBindImageMemory2")); vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR(device ? device.getProcAddr( "vkBindImageMemory2KHR") : instance.getProcAddr( "vkBindImageMemory2KHR")); + vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT(device ? device.getProcAddr( "vkCmdBeginConditionalRenderingEXT") : instance.getProcAddr( "vkCmdBeginConditionalRenderingEXT")); vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT(device ? device.getProcAddr( "vkCmdBeginDebugUtilsLabelEXT") : instance.getProcAddr( "vkCmdBeginDebugUtilsLabelEXT")); vkCmdBeginQuery = PFN_vkCmdBeginQuery(device ? device.getProcAddr( "vkCmdBeginQuery") : instance.getProcAddr( "vkCmdBeginQuery")); vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass(device ? device.getProcAddr( "vkCmdBeginRenderPass") : instance.getProcAddr( "vkCmdBeginRenderPass")); + vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR(device ? device.getProcAddr( "vkCmdBeginRenderPass2KHR") : instance.getProcAddr( "vkCmdBeginRenderPass2KHR")); vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets(device ? device.getProcAddr( "vkCmdBindDescriptorSets") : instance.getProcAddr( "vkCmdBindDescriptorSets")); vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer(device ? device.getProcAddr( "vkCmdBindIndexBuffer") : instance.getProcAddr( "vkCmdBindIndexBuffer")); vkCmdBindPipeline = PFN_vkCmdBindPipeline(device ? device.getProcAddr( "vkCmdBindPipeline") : instance.getProcAddr( "vkCmdBindPipeline")); + vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV(device ? device.getProcAddr( "vkCmdBindShadingRateImageNV") : instance.getProcAddr( "vkCmdBindShadingRateImageNV")); vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers(device ? device.getProcAddr( "vkCmdBindVertexBuffers") : instance.getProcAddr( "vkCmdBindVertexBuffers")); vkCmdBlitImage = PFN_vkCmdBlitImage(device ? device.getProcAddr( "vkCmdBlitImage") : instance.getProcAddr( "vkCmdBlitImage")); + vkCmdBuildAccelerationStructureNVX = PFN_vkCmdBuildAccelerationStructureNVX(device ? device.getProcAddr( "vkCmdBuildAccelerationStructureNVX") : instance.getProcAddr( "vkCmdBuildAccelerationStructureNVX")); vkCmdClearAttachments = PFN_vkCmdClearAttachments(device ? device.getProcAddr( "vkCmdClearAttachments") : instance.getProcAddr( "vkCmdClearAttachments")); vkCmdClearColorImage = PFN_vkCmdClearColorImage(device ? device.getProcAddr( "vkCmdClearColorImage") : instance.getProcAddr( "vkCmdClearColorImage")); vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage(device ? device.getProcAddr( "vkCmdClearDepthStencilImage") : instance.getProcAddr( "vkCmdClearDepthStencilImage")); + vkCmdCopyAccelerationStructureNVX = PFN_vkCmdCopyAccelerationStructureNVX(device ? device.getProcAddr( "vkCmdCopyAccelerationStructureNVX") : instance.getProcAddr( "vkCmdCopyAccelerationStructureNVX")); vkCmdCopyBuffer = PFN_vkCmdCopyBuffer(device ? device.getProcAddr( "vkCmdCopyBuffer") : instance.getProcAddr( "vkCmdCopyBuffer")); vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage(device ? device.getProcAddr( "vkCmdCopyBufferToImage") : instance.getProcAddr( "vkCmdCopyBufferToImage")); vkCmdCopyImage = PFN_vkCmdCopyImage(device ? device.getProcAddr( "vkCmdCopyImage") : instance.getProcAddr( "vkCmdCopyImage")); @@ -43548,13 +50725,19 @@ public: vkCmdDrawIndirect = PFN_vkCmdDrawIndirect(device ? device.getProcAddr( "vkCmdDrawIndirect") : instance.getProcAddr( "vkCmdDrawIndirect")); vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD(device ? device.getProcAddr( "vkCmdDrawIndirectCountAMD") : instance.getProcAddr( "vkCmdDrawIndirectCountAMD")); vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR(device ? device.getProcAddr( "vkCmdDrawIndirectCountKHR") : instance.getProcAddr( "vkCmdDrawIndirectCountKHR")); + vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV(device ? device.getProcAddr( "vkCmdDrawMeshTasksIndirectCountNV") : instance.getProcAddr( "vkCmdDrawMeshTasksIndirectCountNV")); + vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV(device ? device.getProcAddr( "vkCmdDrawMeshTasksIndirectNV") : instance.getProcAddr( "vkCmdDrawMeshTasksIndirectNV")); + vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV(device ? device.getProcAddr( "vkCmdDrawMeshTasksNV") : instance.getProcAddr( "vkCmdDrawMeshTasksNV")); + vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT(device ? device.getProcAddr( "vkCmdEndConditionalRenderingEXT") : instance.getProcAddr( "vkCmdEndConditionalRenderingEXT")); vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT(device ? device.getProcAddr( "vkCmdEndDebugUtilsLabelEXT") : instance.getProcAddr( "vkCmdEndDebugUtilsLabelEXT")); vkCmdEndQuery = PFN_vkCmdEndQuery(device ? device.getProcAddr( "vkCmdEndQuery") : instance.getProcAddr( "vkCmdEndQuery")); vkCmdEndRenderPass = PFN_vkCmdEndRenderPass(device ? device.getProcAddr( "vkCmdEndRenderPass") : instance.getProcAddr( "vkCmdEndRenderPass")); + vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR(device ? device.getProcAddr( "vkCmdEndRenderPass2KHR") : instance.getProcAddr( "vkCmdEndRenderPass2KHR")); vkCmdExecuteCommands = PFN_vkCmdExecuteCommands(device ? device.getProcAddr( "vkCmdExecuteCommands") : instance.getProcAddr( "vkCmdExecuteCommands")); vkCmdFillBuffer = PFN_vkCmdFillBuffer(device ? device.getProcAddr( "vkCmdFillBuffer") : instance.getProcAddr( "vkCmdFillBuffer")); vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT(device ? device.getProcAddr( "vkCmdInsertDebugUtilsLabelEXT") : instance.getProcAddr( "vkCmdInsertDebugUtilsLabelEXT")); vkCmdNextSubpass = PFN_vkCmdNextSubpass(device ? device.getProcAddr( "vkCmdNextSubpass") : instance.getProcAddr( "vkCmdNextSubpass")); + vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR(device ? device.getProcAddr( "vkCmdNextSubpass2KHR") : instance.getProcAddr( "vkCmdNextSubpass2KHR")); vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier(device ? device.getProcAddr( "vkCmdPipelineBarrier") : instance.getProcAddr( "vkCmdPipelineBarrier")); vkCmdProcessCommandsNVX = PFN_vkCmdProcessCommandsNVX(device ? device.getProcAddr( "vkCmdProcessCommandsNVX") : instance.getProcAddr( "vkCmdProcessCommandsNVX")); vkCmdPushConstants = PFN_vkCmdPushConstants(device ? device.getProcAddr( "vkCmdPushConstants") : instance.getProcAddr( "vkCmdPushConstants")); @@ -43565,12 +50748,15 @@ public: vkCmdResetQueryPool = PFN_vkCmdResetQueryPool(device ? device.getProcAddr( "vkCmdResetQueryPool") : instance.getProcAddr( "vkCmdResetQueryPool")); vkCmdResolveImage = PFN_vkCmdResolveImage(device ? device.getProcAddr( "vkCmdResolveImage") : instance.getProcAddr( "vkCmdResolveImage")); vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants(device ? device.getProcAddr( "vkCmdSetBlendConstants") : instance.getProcAddr( "vkCmdSetBlendConstants")); + vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV(device ? device.getProcAddr( "vkCmdSetCheckpointNV") : instance.getProcAddr( "vkCmdSetCheckpointNV")); + vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV(device ? device.getProcAddr( "vkCmdSetCoarseSampleOrderNV") : instance.getProcAddr( "vkCmdSetCoarseSampleOrderNV")); vkCmdSetDepthBias = PFN_vkCmdSetDepthBias(device ? device.getProcAddr( "vkCmdSetDepthBias") : instance.getProcAddr( "vkCmdSetDepthBias")); vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds(device ? device.getProcAddr( "vkCmdSetDepthBounds") : instance.getProcAddr( "vkCmdSetDepthBounds")); vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask(device ? device.getProcAddr( "vkCmdSetDeviceMask") : instance.getProcAddr( "vkCmdSetDeviceMask")); vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR(device ? device.getProcAddr( "vkCmdSetDeviceMaskKHR") : instance.getProcAddr( "vkCmdSetDeviceMaskKHR")); vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT(device ? device.getProcAddr( "vkCmdSetDiscardRectangleEXT") : instance.getProcAddr( "vkCmdSetDiscardRectangleEXT")); vkCmdSetEvent = PFN_vkCmdSetEvent(device ? device.getProcAddr( "vkCmdSetEvent") : instance.getProcAddr( "vkCmdSetEvent")); + vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV(device ? device.getProcAddr( "vkCmdSetExclusiveScissorNV") : instance.getProcAddr( "vkCmdSetExclusiveScissorNV")); vkCmdSetLineWidth = PFN_vkCmdSetLineWidth(device ? device.getProcAddr( "vkCmdSetLineWidth") : instance.getProcAddr( "vkCmdSetLineWidth")); vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT(device ? device.getProcAddr( "vkCmdSetSampleLocationsEXT") : instance.getProcAddr( "vkCmdSetSampleLocationsEXT")); vkCmdSetScissor = PFN_vkCmdSetScissor(device ? device.getProcAddr( "vkCmdSetScissor") : instance.getProcAddr( "vkCmdSetScissor")); @@ -43578,11 +50764,16 @@ public: vkCmdSetStencilReference = PFN_vkCmdSetStencilReference(device ? device.getProcAddr( "vkCmdSetStencilReference") : instance.getProcAddr( "vkCmdSetStencilReference")); vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask(device ? device.getProcAddr( "vkCmdSetStencilWriteMask") : instance.getProcAddr( "vkCmdSetStencilWriteMask")); vkCmdSetViewport = PFN_vkCmdSetViewport(device ? device.getProcAddr( "vkCmdSetViewport") : instance.getProcAddr( "vkCmdSetViewport")); + vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV(device ? device.getProcAddr( "vkCmdSetViewportShadingRatePaletteNV") : instance.getProcAddr( "vkCmdSetViewportShadingRatePaletteNV")); vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV(device ? device.getProcAddr( "vkCmdSetViewportWScalingNV") : instance.getProcAddr( "vkCmdSetViewportWScalingNV")); + vkCmdTraceRaysNVX = PFN_vkCmdTraceRaysNVX(device ? device.getProcAddr( "vkCmdTraceRaysNVX") : instance.getProcAddr( "vkCmdTraceRaysNVX")); vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer(device ? device.getProcAddr( "vkCmdUpdateBuffer") : instance.getProcAddr( "vkCmdUpdateBuffer")); vkCmdWaitEvents = PFN_vkCmdWaitEvents(device ? device.getProcAddr( "vkCmdWaitEvents") : instance.getProcAddr( "vkCmdWaitEvents")); + vkCmdWriteAccelerationStructurePropertiesNVX = PFN_vkCmdWriteAccelerationStructurePropertiesNVX(device ? device.getProcAddr( "vkCmdWriteAccelerationStructurePropertiesNVX") : instance.getProcAddr( "vkCmdWriteAccelerationStructurePropertiesNVX")); vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD(device ? device.getProcAddr( "vkCmdWriteBufferMarkerAMD") : instance.getProcAddr( "vkCmdWriteBufferMarkerAMD")); vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp(device ? device.getProcAddr( "vkCmdWriteTimestamp") : instance.getProcAddr( "vkCmdWriteTimestamp")); + vkCompileDeferredNVX = PFN_vkCompileDeferredNVX(device ? device.getProcAddr( "vkCompileDeferredNVX") : instance.getProcAddr( "vkCompileDeferredNVX")); + vkCreateAccelerationStructureNVX = PFN_vkCreateAccelerationStructureNVX(device ? device.getProcAddr( "vkCreateAccelerationStructureNVX") : instance.getProcAddr( "vkCreateAccelerationStructureNVX")); #ifdef VK_USE_PLATFORM_ANDROID_KHR vkCreateAndroidSurfaceKHR = PFN_vkCreateAndroidSurfaceKHR(instance.getProcAddr( "vkCreateAndroidSurfaceKHR")); #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ @@ -43596,8 +50787,8 @@ public: vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout(device ? device.getProcAddr( "vkCreateDescriptorSetLayout") : instance.getProcAddr( "vkCreateDescriptorSetLayout")); vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate(device ? device.getProcAddr( "vkCreateDescriptorUpdateTemplate") : instance.getProcAddr( "vkCreateDescriptorUpdateTemplate")); vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR(device ? device.getProcAddr( "vkCreateDescriptorUpdateTemplateKHR") : instance.getProcAddr( "vkCreateDescriptorUpdateTemplateKHR")); - vkCreateDevice = PFN_vkCreateDevice(device ? device.getProcAddr( "vkCreateDevice") : instance.getProcAddr( "vkCreateDevice")); - vkCreateDisplayModeKHR = PFN_vkCreateDisplayModeKHR(device ? device.getProcAddr( "vkCreateDisplayModeKHR") : instance.getProcAddr( "vkCreateDisplayModeKHR")); + vkCreateDevice = PFN_vkCreateDevice(instance.getProcAddr( "vkCreateDevice")); + vkCreateDisplayModeKHR = PFN_vkCreateDisplayModeKHR(instance.getProcAddr( "vkCreateDisplayModeKHR")); vkCreateDisplayPlaneSurfaceKHR = PFN_vkCreateDisplayPlaneSurfaceKHR(instance.getProcAddr( "vkCreateDisplayPlaneSurfaceKHR")); vkCreateEvent = PFN_vkCreateEvent(device ? device.getProcAddr( "vkCreateEvent") : instance.getProcAddr( "vkCreateEvent")); vkCreateFence = PFN_vkCreateFence(device ? device.getProcAddr( "vkCreateFence") : instance.getProcAddr( "vkCreateFence")); @@ -43607,6 +50798,9 @@ public: vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK(instance.getProcAddr( "vkCreateIOSSurfaceMVK")); #endif /*VK_USE_PLATFORM_IOS_MVK*/ vkCreateImage = PFN_vkCreateImage(device ? device.getProcAddr( "vkCreateImage") : instance.getProcAddr( "vkCreateImage")); +#ifdef VK_USE_PLATFORM_FUCHSIA_FUCHSIA + vkCreateImagePipeSurfaceFUCHSIA = PFN_vkCreateImagePipeSurfaceFUCHSIA(instance.getProcAddr( "vkCreateImagePipeSurfaceFUCHSIA")); +#endif /*VK_USE_PLATFORM_FUCHSIA_FUCHSIA*/ vkCreateImageView = PFN_vkCreateImageView(device ? device.getProcAddr( "vkCreateImageView") : instance.getProcAddr( "vkCreateImageView")); vkCreateIndirectCommandsLayoutNVX = PFN_vkCreateIndirectCommandsLayoutNVX(device ? device.getProcAddr( "vkCreateIndirectCommandsLayoutNVX") : instance.getProcAddr( "vkCreateIndirectCommandsLayoutNVX")); vkCreateInstance = PFN_vkCreateInstance(instance.getProcAddr( "vkCreateInstance")); @@ -43620,7 +50814,9 @@ public: vkCreatePipelineCache = PFN_vkCreatePipelineCache(device ? device.getProcAddr( "vkCreatePipelineCache") : instance.getProcAddr( "vkCreatePipelineCache")); vkCreatePipelineLayout = PFN_vkCreatePipelineLayout(device ? device.getProcAddr( "vkCreatePipelineLayout") : instance.getProcAddr( "vkCreatePipelineLayout")); vkCreateQueryPool = PFN_vkCreateQueryPool(device ? device.getProcAddr( "vkCreateQueryPool") : instance.getProcAddr( "vkCreateQueryPool")); + vkCreateRaytracingPipelinesNVX = PFN_vkCreateRaytracingPipelinesNVX(device ? device.getProcAddr( "vkCreateRaytracingPipelinesNVX") : instance.getProcAddr( "vkCreateRaytracingPipelinesNVX")); vkCreateRenderPass = PFN_vkCreateRenderPass(device ? device.getProcAddr( "vkCreateRenderPass") : instance.getProcAddr( "vkCreateRenderPass")); + vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR(device ? device.getProcAddr( "vkCreateRenderPass2KHR") : instance.getProcAddr( "vkCreateRenderPass2KHR")); vkCreateSampler = PFN_vkCreateSampler(device ? device.getProcAddr( "vkCreateSampler") : instance.getProcAddr( "vkCreateSampler")); vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion(device ? device.getProcAddr( "vkCreateSamplerYcbcrConversion") : instance.getProcAddr( "vkCreateSamplerYcbcrConversion")); vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR(device ? device.getProcAddr( "vkCreateSamplerYcbcrConversionKHR") : instance.getProcAddr( "vkCreateSamplerYcbcrConversionKHR")); @@ -43647,6 +50843,7 @@ public: vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT(device ? device.getProcAddr( "vkDebugMarkerSetObjectNameEXT") : instance.getProcAddr( "vkDebugMarkerSetObjectNameEXT")); vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT(device ? device.getProcAddr( "vkDebugMarkerSetObjectTagEXT") : instance.getProcAddr( "vkDebugMarkerSetObjectTagEXT")); vkDebugReportMessageEXT = PFN_vkDebugReportMessageEXT(instance.getProcAddr( "vkDebugReportMessageEXT")); + vkDestroyAccelerationStructureNVX = PFN_vkDestroyAccelerationStructureNVX(device ? device.getProcAddr( "vkDestroyAccelerationStructureNVX") : instance.getProcAddr( "vkDestroyAccelerationStructureNVX")); vkDestroyBuffer = PFN_vkDestroyBuffer(device ? device.getProcAddr( "vkDestroyBuffer") : instance.getProcAddr( "vkDestroyBuffer")); vkDestroyBufferView = PFN_vkDestroyBufferView(device ? device.getProcAddr( "vkDestroyBufferView") : instance.getProcAddr( "vkDestroyBufferView")); vkDestroyCommandPool = PFN_vkDestroyCommandPool(device ? device.getProcAddr( "vkDestroyCommandPool") : instance.getProcAddr( "vkDestroyCommandPool")); @@ -43681,8 +50878,8 @@ public: vkDeviceWaitIdle = PFN_vkDeviceWaitIdle(device ? device.getProcAddr( "vkDeviceWaitIdle") : instance.getProcAddr( "vkDeviceWaitIdle")); vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT(device ? device.getProcAddr( "vkDisplayPowerControlEXT") : instance.getProcAddr( "vkDisplayPowerControlEXT")); vkEndCommandBuffer = PFN_vkEndCommandBuffer(device ? device.getProcAddr( "vkEndCommandBuffer") : instance.getProcAddr( "vkEndCommandBuffer")); - vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties(device ? device.getProcAddr( "vkEnumerateDeviceExtensionProperties") : instance.getProcAddr( "vkEnumerateDeviceExtensionProperties")); - vkEnumerateDeviceLayerProperties = PFN_vkEnumerateDeviceLayerProperties(device ? device.getProcAddr( "vkEnumerateDeviceLayerProperties") : instance.getProcAddr( "vkEnumerateDeviceLayerProperties")); + vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties(instance.getProcAddr( "vkEnumerateDeviceExtensionProperties")); + vkEnumerateDeviceLayerProperties = PFN_vkEnumerateDeviceLayerProperties(instance.getProcAddr( "vkEnumerateDeviceLayerProperties")); vkEnumerateInstanceExtensionProperties = PFN_vkEnumerateInstanceExtensionProperties(instance.getProcAddr( "vkEnumerateInstanceExtensionProperties")); vkEnumerateInstanceLayerProperties = PFN_vkEnumerateInstanceLayerProperties(instance.getProcAddr( "vkEnumerateInstanceLayerProperties")); vkEnumerateInstanceVersion = PFN_vkEnumerateInstanceVersion(instance.getProcAddr( "vkEnumerateInstanceVersion")); @@ -43693,6 +50890,9 @@ public: vkFreeCommandBuffers = PFN_vkFreeCommandBuffers(device ? device.getProcAddr( "vkFreeCommandBuffers") : instance.getProcAddr( "vkFreeCommandBuffers")); vkFreeDescriptorSets = PFN_vkFreeDescriptorSets(device ? device.getProcAddr( "vkFreeDescriptorSets") : instance.getProcAddr( "vkFreeDescriptorSets")); vkFreeMemory = PFN_vkFreeMemory(device ? device.getProcAddr( "vkFreeMemory") : instance.getProcAddr( "vkFreeMemory")); + vkGetAccelerationStructureHandleNVX = PFN_vkGetAccelerationStructureHandleNVX(device ? device.getProcAddr( "vkGetAccelerationStructureHandleNVX") : instance.getProcAddr( "vkGetAccelerationStructureHandleNVX")); + vkGetAccelerationStructureMemoryRequirementsNVX = PFN_vkGetAccelerationStructureMemoryRequirementsNVX(device ? device.getProcAddr( "vkGetAccelerationStructureMemoryRequirementsNVX") : instance.getProcAddr( "vkGetAccelerationStructureMemoryRequirementsNVX")); + vkGetAccelerationStructureScratchMemoryRequirementsNVX = PFN_vkGetAccelerationStructureScratchMemoryRequirementsNVX(device ? device.getProcAddr( "vkGetAccelerationStructureScratchMemoryRequirementsNVX") : instance.getProcAddr( "vkGetAccelerationStructureScratchMemoryRequirementsNVX")); #ifdef VK_USE_PLATFORM_ANDROID_ANDROID vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID(device ? device.getProcAddr( "vkGetAndroidHardwareBufferPropertiesANDROID") : instance.getProcAddr( "vkGetAndroidHardwareBufferPropertiesANDROID")); #endif /*VK_USE_PLATFORM_ANDROID_ANDROID*/ @@ -43709,11 +50909,11 @@ public: vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr(device ? device.getProcAddr( "vkGetDeviceProcAddr") : instance.getProcAddr( "vkGetDeviceProcAddr")); vkGetDeviceQueue = PFN_vkGetDeviceQueue(device ? device.getProcAddr( "vkGetDeviceQueue") : instance.getProcAddr( "vkGetDeviceQueue")); vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2(device ? device.getProcAddr( "vkGetDeviceQueue2") : instance.getProcAddr( "vkGetDeviceQueue2")); - vkGetDisplayModeProperties2KHR = PFN_vkGetDisplayModeProperties2KHR(device ? device.getProcAddr( "vkGetDisplayModeProperties2KHR") : instance.getProcAddr( "vkGetDisplayModeProperties2KHR")); - vkGetDisplayModePropertiesKHR = PFN_vkGetDisplayModePropertiesKHR(device ? device.getProcAddr( "vkGetDisplayModePropertiesKHR") : instance.getProcAddr( "vkGetDisplayModePropertiesKHR")); - vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR(device ? device.getProcAddr( "vkGetDisplayPlaneCapabilities2KHR") : instance.getProcAddr( "vkGetDisplayPlaneCapabilities2KHR")); - vkGetDisplayPlaneCapabilitiesKHR = PFN_vkGetDisplayPlaneCapabilitiesKHR(device ? device.getProcAddr( "vkGetDisplayPlaneCapabilitiesKHR") : instance.getProcAddr( "vkGetDisplayPlaneCapabilitiesKHR")); - vkGetDisplayPlaneSupportedDisplaysKHR = PFN_vkGetDisplayPlaneSupportedDisplaysKHR(device ? device.getProcAddr( "vkGetDisplayPlaneSupportedDisplaysKHR") : instance.getProcAddr( "vkGetDisplayPlaneSupportedDisplaysKHR")); + vkGetDisplayModeProperties2KHR = PFN_vkGetDisplayModeProperties2KHR(instance.getProcAddr( "vkGetDisplayModeProperties2KHR")); + vkGetDisplayModePropertiesKHR = PFN_vkGetDisplayModePropertiesKHR(instance.getProcAddr( "vkGetDisplayModePropertiesKHR")); + vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR(instance.getProcAddr( "vkGetDisplayPlaneCapabilities2KHR")); + vkGetDisplayPlaneCapabilitiesKHR = PFN_vkGetDisplayPlaneCapabilitiesKHR(instance.getProcAddr( "vkGetDisplayPlaneCapabilitiesKHR")); + vkGetDisplayPlaneSupportedDisplaysKHR = PFN_vkGetDisplayPlaneSupportedDisplaysKHR(instance.getProcAddr( "vkGetDisplayPlaneSupportedDisplaysKHR")); vkGetEventStatus = PFN_vkGetEventStatus(device ? device.getProcAddr( "vkGetEventStatus") : instance.getProcAddr( "vkGetEventStatus")); vkGetFenceFdKHR = PFN_vkGetFenceFdKHR(device ? device.getProcAddr( "vkGetFenceFdKHR") : instance.getProcAddr( "vkGetFenceFdKHR")); vkGetFenceStatus = PFN_vkGetFenceStatus(device ? device.getProcAddr( "vkGetFenceStatus") : instance.getProcAddr( "vkGetFenceStatus")); @@ -43744,68 +50944,70 @@ public: vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR(device ? device.getProcAddr( "vkGetMemoryWin32HandlePropertiesKHR") : instance.getProcAddr( "vkGetMemoryWin32HandlePropertiesKHR")); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE(device ? device.getProcAddr( "vkGetPastPresentationTimingGOOGLE") : instance.getProcAddr( "vkGetPastPresentationTimingGOOGLE")); - vkGetPhysicalDeviceDisplayPlaneProperties2KHR = PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR(device ? device.getProcAddr( "vkGetPhysicalDeviceDisplayPlaneProperties2KHR") : instance.getProcAddr( "vkGetPhysicalDeviceDisplayPlaneProperties2KHR")); - vkGetPhysicalDeviceDisplayPlanePropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR(device ? device.getProcAddr( "vkGetPhysicalDeviceDisplayPlanePropertiesKHR") : instance.getProcAddr( "vkGetPhysicalDeviceDisplayPlanePropertiesKHR")); - vkGetPhysicalDeviceDisplayProperties2KHR = PFN_vkGetPhysicalDeviceDisplayProperties2KHR(device ? device.getProcAddr( "vkGetPhysicalDeviceDisplayProperties2KHR") : instance.getProcAddr( "vkGetPhysicalDeviceDisplayProperties2KHR")); - vkGetPhysicalDeviceDisplayPropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPropertiesKHR(device ? device.getProcAddr( "vkGetPhysicalDeviceDisplayPropertiesKHR") : instance.getProcAddr( "vkGetPhysicalDeviceDisplayPropertiesKHR")); - vkGetPhysicalDeviceExternalBufferProperties = PFN_vkGetPhysicalDeviceExternalBufferProperties(device ? device.getProcAddr( "vkGetPhysicalDeviceExternalBufferProperties") : instance.getProcAddr( "vkGetPhysicalDeviceExternalBufferProperties")); - vkGetPhysicalDeviceExternalBufferPropertiesKHR = PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR(device ? device.getProcAddr( "vkGetPhysicalDeviceExternalBufferPropertiesKHR") : instance.getProcAddr( "vkGetPhysicalDeviceExternalBufferPropertiesKHR")); - vkGetPhysicalDeviceExternalFenceProperties = PFN_vkGetPhysicalDeviceExternalFenceProperties(device ? device.getProcAddr( "vkGetPhysicalDeviceExternalFenceProperties") : instance.getProcAddr( "vkGetPhysicalDeviceExternalFenceProperties")); - vkGetPhysicalDeviceExternalFencePropertiesKHR = PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR(device ? device.getProcAddr( "vkGetPhysicalDeviceExternalFencePropertiesKHR") : instance.getProcAddr( "vkGetPhysicalDeviceExternalFencePropertiesKHR")); - vkGetPhysicalDeviceExternalImageFormatPropertiesNV = PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV(device ? device.getProcAddr( "vkGetPhysicalDeviceExternalImageFormatPropertiesNV") : instance.getProcAddr( "vkGetPhysicalDeviceExternalImageFormatPropertiesNV")); - vkGetPhysicalDeviceExternalSemaphoreProperties = PFN_vkGetPhysicalDeviceExternalSemaphoreProperties(device ? device.getProcAddr( "vkGetPhysicalDeviceExternalSemaphoreProperties") : instance.getProcAddr( "vkGetPhysicalDeviceExternalSemaphoreProperties")); - vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(device ? device.getProcAddr( "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR") : instance.getProcAddr( "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR")); - vkGetPhysicalDeviceFeatures = PFN_vkGetPhysicalDeviceFeatures(device ? device.getProcAddr( "vkGetPhysicalDeviceFeatures") : instance.getProcAddr( "vkGetPhysicalDeviceFeatures")); - vkGetPhysicalDeviceFeatures2 = PFN_vkGetPhysicalDeviceFeatures2(device ? device.getProcAddr( "vkGetPhysicalDeviceFeatures2") : instance.getProcAddr( "vkGetPhysicalDeviceFeatures2")); - vkGetPhysicalDeviceFeatures2KHR = PFN_vkGetPhysicalDeviceFeatures2KHR(device ? device.getProcAddr( "vkGetPhysicalDeviceFeatures2KHR") : instance.getProcAddr( "vkGetPhysicalDeviceFeatures2KHR")); - vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties(device ? device.getProcAddr( "vkGetPhysicalDeviceFormatProperties") : instance.getProcAddr( "vkGetPhysicalDeviceFormatProperties")); - vkGetPhysicalDeviceFormatProperties2 = PFN_vkGetPhysicalDeviceFormatProperties2(device ? device.getProcAddr( "vkGetPhysicalDeviceFormatProperties2") : instance.getProcAddr( "vkGetPhysicalDeviceFormatProperties2")); - vkGetPhysicalDeviceFormatProperties2KHR = PFN_vkGetPhysicalDeviceFormatProperties2KHR(device ? device.getProcAddr( "vkGetPhysicalDeviceFormatProperties2KHR") : instance.getProcAddr( "vkGetPhysicalDeviceFormatProperties2KHR")); - vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX = PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(device ? device.getProcAddr( "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX") : instance.getProcAddr( "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX")); - vkGetPhysicalDeviceImageFormatProperties = PFN_vkGetPhysicalDeviceImageFormatProperties(device ? device.getProcAddr( "vkGetPhysicalDeviceImageFormatProperties") : instance.getProcAddr( "vkGetPhysicalDeviceImageFormatProperties")); - vkGetPhysicalDeviceImageFormatProperties2 = PFN_vkGetPhysicalDeviceImageFormatProperties2(device ? device.getProcAddr( "vkGetPhysicalDeviceImageFormatProperties2") : instance.getProcAddr( "vkGetPhysicalDeviceImageFormatProperties2")); - vkGetPhysicalDeviceImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceImageFormatProperties2KHR(device ? device.getProcAddr( "vkGetPhysicalDeviceImageFormatProperties2KHR") : instance.getProcAddr( "vkGetPhysicalDeviceImageFormatProperties2KHR")); - vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties(device ? device.getProcAddr( "vkGetPhysicalDeviceMemoryProperties") : instance.getProcAddr( "vkGetPhysicalDeviceMemoryProperties")); - vkGetPhysicalDeviceMemoryProperties2 = PFN_vkGetPhysicalDeviceMemoryProperties2(device ? device.getProcAddr( "vkGetPhysicalDeviceMemoryProperties2") : instance.getProcAddr( "vkGetPhysicalDeviceMemoryProperties2")); - vkGetPhysicalDeviceMemoryProperties2KHR = PFN_vkGetPhysicalDeviceMemoryProperties2KHR(device ? device.getProcAddr( "vkGetPhysicalDeviceMemoryProperties2KHR") : instance.getProcAddr( "vkGetPhysicalDeviceMemoryProperties2KHR")); + vkGetPhysicalDeviceDisplayPlaneProperties2KHR = PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR(instance.getProcAddr( "vkGetPhysicalDeviceDisplayPlaneProperties2KHR")); + vkGetPhysicalDeviceDisplayPlanePropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR(instance.getProcAddr( "vkGetPhysicalDeviceDisplayPlanePropertiesKHR")); + vkGetPhysicalDeviceDisplayProperties2KHR = PFN_vkGetPhysicalDeviceDisplayProperties2KHR(instance.getProcAddr( "vkGetPhysicalDeviceDisplayProperties2KHR")); + vkGetPhysicalDeviceDisplayPropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPropertiesKHR(instance.getProcAddr( "vkGetPhysicalDeviceDisplayPropertiesKHR")); + vkGetPhysicalDeviceExternalBufferProperties = PFN_vkGetPhysicalDeviceExternalBufferProperties(instance.getProcAddr( "vkGetPhysicalDeviceExternalBufferProperties")); + vkGetPhysicalDeviceExternalBufferPropertiesKHR = PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR(instance.getProcAddr( "vkGetPhysicalDeviceExternalBufferPropertiesKHR")); + vkGetPhysicalDeviceExternalFenceProperties = PFN_vkGetPhysicalDeviceExternalFenceProperties(instance.getProcAddr( "vkGetPhysicalDeviceExternalFenceProperties")); + vkGetPhysicalDeviceExternalFencePropertiesKHR = PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR(instance.getProcAddr( "vkGetPhysicalDeviceExternalFencePropertiesKHR")); + vkGetPhysicalDeviceExternalImageFormatPropertiesNV = PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV(instance.getProcAddr( "vkGetPhysicalDeviceExternalImageFormatPropertiesNV")); + vkGetPhysicalDeviceExternalSemaphoreProperties = PFN_vkGetPhysicalDeviceExternalSemaphoreProperties(instance.getProcAddr( "vkGetPhysicalDeviceExternalSemaphoreProperties")); + vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(instance.getProcAddr( "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR")); + vkGetPhysicalDeviceFeatures = PFN_vkGetPhysicalDeviceFeatures(instance.getProcAddr( "vkGetPhysicalDeviceFeatures")); + vkGetPhysicalDeviceFeatures2 = PFN_vkGetPhysicalDeviceFeatures2(instance.getProcAddr( "vkGetPhysicalDeviceFeatures2")); + vkGetPhysicalDeviceFeatures2KHR = PFN_vkGetPhysicalDeviceFeatures2KHR(instance.getProcAddr( "vkGetPhysicalDeviceFeatures2KHR")); + vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties(instance.getProcAddr( "vkGetPhysicalDeviceFormatProperties")); + vkGetPhysicalDeviceFormatProperties2 = PFN_vkGetPhysicalDeviceFormatProperties2(instance.getProcAddr( "vkGetPhysicalDeviceFormatProperties2")); + vkGetPhysicalDeviceFormatProperties2KHR = PFN_vkGetPhysicalDeviceFormatProperties2KHR(instance.getProcAddr( "vkGetPhysicalDeviceFormatProperties2KHR")); + vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX = PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(instance.getProcAddr( "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX")); + vkGetPhysicalDeviceImageFormatProperties = PFN_vkGetPhysicalDeviceImageFormatProperties(instance.getProcAddr( "vkGetPhysicalDeviceImageFormatProperties")); + vkGetPhysicalDeviceImageFormatProperties2 = PFN_vkGetPhysicalDeviceImageFormatProperties2(instance.getProcAddr( "vkGetPhysicalDeviceImageFormatProperties2")); + vkGetPhysicalDeviceImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceImageFormatProperties2KHR(instance.getProcAddr( "vkGetPhysicalDeviceImageFormatProperties2KHR")); + vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties(instance.getProcAddr( "vkGetPhysicalDeviceMemoryProperties")); + vkGetPhysicalDeviceMemoryProperties2 = PFN_vkGetPhysicalDeviceMemoryProperties2(instance.getProcAddr( "vkGetPhysicalDeviceMemoryProperties2")); + vkGetPhysicalDeviceMemoryProperties2KHR = PFN_vkGetPhysicalDeviceMemoryProperties2KHR(instance.getProcAddr( "vkGetPhysicalDeviceMemoryProperties2KHR")); #ifdef VK_USE_PLATFORM_MIR_KHR - vkGetPhysicalDeviceMirPresentationSupportKHR = PFN_vkGetPhysicalDeviceMirPresentationSupportKHR(device ? device.getProcAddr( "vkGetPhysicalDeviceMirPresentationSupportKHR") : instance.getProcAddr( "vkGetPhysicalDeviceMirPresentationSupportKHR")); + vkGetPhysicalDeviceMirPresentationSupportKHR = PFN_vkGetPhysicalDeviceMirPresentationSupportKHR(instance.getProcAddr( "vkGetPhysicalDeviceMirPresentationSupportKHR")); #endif /*VK_USE_PLATFORM_MIR_KHR*/ - vkGetPhysicalDeviceMultisamplePropertiesEXT = PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT(device ? device.getProcAddr( "vkGetPhysicalDeviceMultisamplePropertiesEXT") : instance.getProcAddr( "vkGetPhysicalDeviceMultisamplePropertiesEXT")); - vkGetPhysicalDevicePresentRectanglesKHR = PFN_vkGetPhysicalDevicePresentRectanglesKHR(device ? device.getProcAddr( "vkGetPhysicalDevicePresentRectanglesKHR") : instance.getProcAddr( "vkGetPhysicalDevicePresentRectanglesKHR")); - vkGetPhysicalDeviceProperties = PFN_vkGetPhysicalDeviceProperties(device ? device.getProcAddr( "vkGetPhysicalDeviceProperties") : instance.getProcAddr( "vkGetPhysicalDeviceProperties")); - vkGetPhysicalDeviceProperties2 = PFN_vkGetPhysicalDeviceProperties2(device ? device.getProcAddr( "vkGetPhysicalDeviceProperties2") : instance.getProcAddr( "vkGetPhysicalDeviceProperties2")); - vkGetPhysicalDeviceProperties2KHR = PFN_vkGetPhysicalDeviceProperties2KHR(device ? device.getProcAddr( "vkGetPhysicalDeviceProperties2KHR") : instance.getProcAddr( "vkGetPhysicalDeviceProperties2KHR")); - vkGetPhysicalDeviceQueueFamilyProperties = PFN_vkGetPhysicalDeviceQueueFamilyProperties(device ? device.getProcAddr( "vkGetPhysicalDeviceQueueFamilyProperties") : instance.getProcAddr( "vkGetPhysicalDeviceQueueFamilyProperties")); - vkGetPhysicalDeviceQueueFamilyProperties2 = PFN_vkGetPhysicalDeviceQueueFamilyProperties2(device ? device.getProcAddr( "vkGetPhysicalDeviceQueueFamilyProperties2") : instance.getProcAddr( "vkGetPhysicalDeviceQueueFamilyProperties2")); - vkGetPhysicalDeviceQueueFamilyProperties2KHR = PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR(device ? device.getProcAddr( "vkGetPhysicalDeviceQueueFamilyProperties2KHR") : instance.getProcAddr( "vkGetPhysicalDeviceQueueFamilyProperties2KHR")); - vkGetPhysicalDeviceSparseImageFormatProperties = PFN_vkGetPhysicalDeviceSparseImageFormatProperties(device ? device.getProcAddr( "vkGetPhysicalDeviceSparseImageFormatProperties") : instance.getProcAddr( "vkGetPhysicalDeviceSparseImageFormatProperties")); - vkGetPhysicalDeviceSparseImageFormatProperties2 = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2(device ? device.getProcAddr( "vkGetPhysicalDeviceSparseImageFormatProperties2") : instance.getProcAddr( "vkGetPhysicalDeviceSparseImageFormatProperties2")); - vkGetPhysicalDeviceSparseImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(device ? device.getProcAddr( "vkGetPhysicalDeviceSparseImageFormatProperties2KHR") : instance.getProcAddr( "vkGetPhysicalDeviceSparseImageFormatProperties2KHR")); - vkGetPhysicalDeviceSurfaceCapabilities2EXT = PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT(device ? device.getProcAddr( "vkGetPhysicalDeviceSurfaceCapabilities2EXT") : instance.getProcAddr( "vkGetPhysicalDeviceSurfaceCapabilities2EXT")); - vkGetPhysicalDeviceSurfaceCapabilities2KHR = PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR(device ? device.getProcAddr( "vkGetPhysicalDeviceSurfaceCapabilities2KHR") : instance.getProcAddr( "vkGetPhysicalDeviceSurfaceCapabilities2KHR")); - vkGetPhysicalDeviceSurfaceCapabilitiesKHR = PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(device ? device.getProcAddr( "vkGetPhysicalDeviceSurfaceCapabilitiesKHR") : instance.getProcAddr( "vkGetPhysicalDeviceSurfaceCapabilitiesKHR")); - vkGetPhysicalDeviceSurfaceFormats2KHR = PFN_vkGetPhysicalDeviceSurfaceFormats2KHR(device ? device.getProcAddr( "vkGetPhysicalDeviceSurfaceFormats2KHR") : instance.getProcAddr( "vkGetPhysicalDeviceSurfaceFormats2KHR")); - vkGetPhysicalDeviceSurfaceFormatsKHR = PFN_vkGetPhysicalDeviceSurfaceFormatsKHR(device ? device.getProcAddr( "vkGetPhysicalDeviceSurfaceFormatsKHR") : instance.getProcAddr( "vkGetPhysicalDeviceSurfaceFormatsKHR")); - vkGetPhysicalDeviceSurfacePresentModesKHR = PFN_vkGetPhysicalDeviceSurfacePresentModesKHR(device ? device.getProcAddr( "vkGetPhysicalDeviceSurfacePresentModesKHR") : instance.getProcAddr( "vkGetPhysicalDeviceSurfacePresentModesKHR")); - vkGetPhysicalDeviceSurfaceSupportKHR = PFN_vkGetPhysicalDeviceSurfaceSupportKHR(device ? device.getProcAddr( "vkGetPhysicalDeviceSurfaceSupportKHR") : instance.getProcAddr( "vkGetPhysicalDeviceSurfaceSupportKHR")); + vkGetPhysicalDeviceMultisamplePropertiesEXT = PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT(instance.getProcAddr( "vkGetPhysicalDeviceMultisamplePropertiesEXT")); + vkGetPhysicalDevicePresentRectanglesKHR = PFN_vkGetPhysicalDevicePresentRectanglesKHR(instance.getProcAddr( "vkGetPhysicalDevicePresentRectanglesKHR")); + vkGetPhysicalDeviceProperties = PFN_vkGetPhysicalDeviceProperties(instance.getProcAddr( "vkGetPhysicalDeviceProperties")); + vkGetPhysicalDeviceProperties2 = PFN_vkGetPhysicalDeviceProperties2(instance.getProcAddr( "vkGetPhysicalDeviceProperties2")); + vkGetPhysicalDeviceProperties2KHR = PFN_vkGetPhysicalDeviceProperties2KHR(instance.getProcAddr( "vkGetPhysicalDeviceProperties2KHR")); + vkGetPhysicalDeviceQueueFamilyProperties = PFN_vkGetPhysicalDeviceQueueFamilyProperties(instance.getProcAddr( "vkGetPhysicalDeviceQueueFamilyProperties")); + vkGetPhysicalDeviceQueueFamilyProperties2 = PFN_vkGetPhysicalDeviceQueueFamilyProperties2(instance.getProcAddr( "vkGetPhysicalDeviceQueueFamilyProperties2")); + vkGetPhysicalDeviceQueueFamilyProperties2KHR = PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR(instance.getProcAddr( "vkGetPhysicalDeviceQueueFamilyProperties2KHR")); + vkGetPhysicalDeviceSparseImageFormatProperties = PFN_vkGetPhysicalDeviceSparseImageFormatProperties(instance.getProcAddr( "vkGetPhysicalDeviceSparseImageFormatProperties")); + vkGetPhysicalDeviceSparseImageFormatProperties2 = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2(instance.getProcAddr( "vkGetPhysicalDeviceSparseImageFormatProperties2")); + vkGetPhysicalDeviceSparseImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(instance.getProcAddr( "vkGetPhysicalDeviceSparseImageFormatProperties2KHR")); + vkGetPhysicalDeviceSurfaceCapabilities2EXT = PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT(instance.getProcAddr( "vkGetPhysicalDeviceSurfaceCapabilities2EXT")); + vkGetPhysicalDeviceSurfaceCapabilities2KHR = PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR(instance.getProcAddr( "vkGetPhysicalDeviceSurfaceCapabilities2KHR")); + vkGetPhysicalDeviceSurfaceCapabilitiesKHR = PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(instance.getProcAddr( "vkGetPhysicalDeviceSurfaceCapabilitiesKHR")); + vkGetPhysicalDeviceSurfaceFormats2KHR = PFN_vkGetPhysicalDeviceSurfaceFormats2KHR(instance.getProcAddr( "vkGetPhysicalDeviceSurfaceFormats2KHR")); + vkGetPhysicalDeviceSurfaceFormatsKHR = PFN_vkGetPhysicalDeviceSurfaceFormatsKHR(instance.getProcAddr( "vkGetPhysicalDeviceSurfaceFormatsKHR")); + vkGetPhysicalDeviceSurfacePresentModesKHR = PFN_vkGetPhysicalDeviceSurfacePresentModesKHR(instance.getProcAddr( "vkGetPhysicalDeviceSurfacePresentModesKHR")); + vkGetPhysicalDeviceSurfaceSupportKHR = PFN_vkGetPhysicalDeviceSurfaceSupportKHR(instance.getProcAddr( "vkGetPhysicalDeviceSurfaceSupportKHR")); #ifdef VK_USE_PLATFORM_WAYLAND_KHR - vkGetPhysicalDeviceWaylandPresentationSupportKHR = PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR(device ? device.getProcAddr( "vkGetPhysicalDeviceWaylandPresentationSupportKHR") : instance.getProcAddr( "vkGetPhysicalDeviceWaylandPresentationSupportKHR")); + vkGetPhysicalDeviceWaylandPresentationSupportKHR = PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR(instance.getProcAddr( "vkGetPhysicalDeviceWaylandPresentationSupportKHR")); #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ #ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetPhysicalDeviceWin32PresentationSupportKHR = PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR(device ? device.getProcAddr( "vkGetPhysicalDeviceWin32PresentationSupportKHR") : instance.getProcAddr( "vkGetPhysicalDeviceWin32PresentationSupportKHR")); + vkGetPhysicalDeviceWin32PresentationSupportKHR = PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR(instance.getProcAddr( "vkGetPhysicalDeviceWin32PresentationSupportKHR")); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ #ifdef VK_USE_PLATFORM_XCB_KHR - vkGetPhysicalDeviceXcbPresentationSupportKHR = PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR(device ? device.getProcAddr( "vkGetPhysicalDeviceXcbPresentationSupportKHR") : instance.getProcAddr( "vkGetPhysicalDeviceXcbPresentationSupportKHR")); + vkGetPhysicalDeviceXcbPresentationSupportKHR = PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR(instance.getProcAddr( "vkGetPhysicalDeviceXcbPresentationSupportKHR")); #endif /*VK_USE_PLATFORM_XCB_KHR*/ #ifdef VK_USE_PLATFORM_XLIB_KHR - vkGetPhysicalDeviceXlibPresentationSupportKHR = PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR(device ? device.getProcAddr( "vkGetPhysicalDeviceXlibPresentationSupportKHR") : instance.getProcAddr( "vkGetPhysicalDeviceXlibPresentationSupportKHR")); + vkGetPhysicalDeviceXlibPresentationSupportKHR = PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR(instance.getProcAddr( "vkGetPhysicalDeviceXlibPresentationSupportKHR")); #endif /*VK_USE_PLATFORM_XLIB_KHR*/ vkGetPipelineCacheData = PFN_vkGetPipelineCacheData(device ? device.getProcAddr( "vkGetPipelineCacheData") : instance.getProcAddr( "vkGetPipelineCacheData")); vkGetQueryPoolResults = PFN_vkGetQueryPoolResults(device ? device.getProcAddr( "vkGetQueryPoolResults") : instance.getProcAddr( "vkGetQueryPoolResults")); + vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV(device ? device.getProcAddr( "vkGetQueueCheckpointDataNV") : instance.getProcAddr( "vkGetQueueCheckpointDataNV")); #ifdef VK_USE_PLATFORM_XLIB_XRANDR_NV - vkGetRandROutputDisplayEXT = PFN_vkGetRandROutputDisplayEXT(device ? device.getProcAddr( "vkGetRandROutputDisplayEXT") : instance.getProcAddr( "vkGetRandROutputDisplayEXT")); + vkGetRandROutputDisplayEXT = PFN_vkGetRandROutputDisplayEXT(instance.getProcAddr( "vkGetRandROutputDisplayEXT")); #endif /*VK_USE_PLATFORM_XLIB_XRANDR_NV*/ + vkGetRaytracingShaderHandlesNVX = PFN_vkGetRaytracingShaderHandlesNVX(device ? device.getProcAddr( "vkGetRaytracingShaderHandlesNVX") : instance.getProcAddr( "vkGetRaytracingShaderHandlesNVX")); vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE(device ? device.getProcAddr( "vkGetRefreshCycleDurationGOOGLE") : instance.getProcAddr( "vkGetRefreshCycleDurationGOOGLE")); vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity(device ? device.getProcAddr( "vkGetRenderAreaGranularity") : instance.getProcAddr( "vkGetRenderAreaGranularity")); vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR(device ? device.getProcAddr( "vkGetSemaphoreFdKHR") : instance.getProcAddr( "vkGetSemaphoreFdKHR")); @@ -43839,7 +51041,7 @@ public: vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT(device ? device.getProcAddr( "vkRegisterDeviceEventEXT") : instance.getProcAddr( "vkRegisterDeviceEventEXT")); vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT(device ? device.getProcAddr( "vkRegisterDisplayEventEXT") : instance.getProcAddr( "vkRegisterDisplayEventEXT")); vkRegisterObjectsNVX = PFN_vkRegisterObjectsNVX(device ? device.getProcAddr( "vkRegisterObjectsNVX") : instance.getProcAddr( "vkRegisterObjectsNVX")); - vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT(device ? device.getProcAddr( "vkReleaseDisplayEXT") : instance.getProcAddr( "vkReleaseDisplayEXT")); + vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT(instance.getProcAddr( "vkReleaseDisplayEXT")); vkResetCommandBuffer = PFN_vkResetCommandBuffer(device ? device.getProcAddr( "vkResetCommandBuffer") : instance.getProcAddr( "vkResetCommandBuffer")); vkResetCommandPool = PFN_vkResetCommandPool(device ? device.getProcAddr( "vkResetCommandPool") : instance.getProcAddr( "vkResetCommandPool")); vkResetDescriptorPool = PFN_vkResetDescriptorPool(device ? device.getProcAddr( "vkResetDescriptorPool") : instance.getProcAddr( "vkResetDescriptorPool")); diff --git a/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h index 93aa65b..163fb17 100644 --- a/include/vulkan/vulkan_core.h +++ b/include/vulkan/vulkan_core.h @@ -43,7 +43,7 @@ extern "C" { #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff) #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff) // Version of this file -#define VK_HEADER_VERSION 79 +#define VK_HEADER_VERSION 87 #define VK_NULL_HANDLE 0 @@ -298,6 +298,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001, VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002, VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000, VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000, VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001, VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000, @@ -305,6 +306,8 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000, VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000, VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000, + VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001, VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000, VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001, VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002, @@ -320,6 +323,9 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000, VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001, + VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002, VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000, VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000, VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001, @@ -341,6 +347,13 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000, VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001, VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000, + VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000, + VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001, + VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002, + VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = 1000109003, + VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = 1000109004, + VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = 1000109005, + VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = 1000109006, 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, @@ -370,6 +383,10 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000, VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001, + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002, + VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003, 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, @@ -388,13 +405,46 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002, VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003, VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004, + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002, + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005, + VK_STRUCTURE_TYPE_RAYTRACING_PIPELINE_CREATE_INFO_NVX = 1000165000, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NVX = 1000165001, + VK_STRUCTURE_TYPE_GEOMETRY_INSTANCE_NVX = 1000165002, + VK_STRUCTURE_TYPE_GEOMETRY_NVX = 1000165003, + VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NVX = 1000165004, + VK_STRUCTURE_TYPE_GEOMETRY_AABB_NVX = 1000165005, + VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NVX = 1000165006, + VK_STRUCTURE_TYPE_DESCRIPTOR_ACCELERATION_STRUCTURE_INFO_NVX = 1000165007, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NVX = 1000165008, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAYTRACING_PROPERTIES_NVX = 1000165009, + VK_STRUCTURE_TYPE_HIT_SHADER_MODULE_CREATE_INFO_NVX = 1000165010, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000, + VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001, VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000, VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000, VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000, 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_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = 1000196000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000, + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002, + VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000, + VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000, + VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000, + VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, @@ -429,6 +479,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO, + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO, VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES, VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO, @@ -783,6 +834,7 @@ typedef enum VkQueryType { VK_QUERY_TYPE_OCCLUSION = 0, VK_QUERY_TYPE_PIPELINE_STATISTICS = 1, VK_QUERY_TYPE_TIMESTAMP = 2, + VK_QUERY_TYPE_COMPACTED_SIZE_NVX = 1000165000, VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION, VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP, VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1), @@ -812,6 +864,7 @@ typedef enum VkImageLayout { VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001, VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002, VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000, + VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003, 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, VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED, @@ -1045,6 +1098,9 @@ typedef enum VkDynamicState { VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000, VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000, VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000, + VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004, + VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006, + VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001, VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE, VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1), @@ -1107,6 +1163,8 @@ typedef enum VkDescriptorType { VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9, VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10, + VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000, + VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NVX = 1000165000, VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER, VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1), @@ -1135,6 +1193,7 @@ typedef enum VkAttachmentStoreOp { typedef enum VkPipelineBindPoint { VK_PIPELINE_BIND_POINT_GRAPHICS = 0, VK_PIPELINE_BIND_POINT_COMPUTE = 1, + VK_PIPELINE_BIND_POINT_RAYTRACING_NVX = 1000165000, VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS, VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE, VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1), @@ -1206,6 +1265,7 @@ typedef enum VkObjectType { VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001, VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000, VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000, + VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NVX = 1000165000, 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_BEGIN_RANGE = VK_OBJECT_TYPE_UNKNOWN, @@ -1273,6 +1333,7 @@ typedef enum VkImageUsageFlagBits { VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, + VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100, VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkImageUsageFlagBits; typedef VkFlags VkImageUsageFlags; @@ -1290,6 +1351,7 @@ typedef enum VkImageCreateFlagBits { VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100, VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800, VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200, + VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000, VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000, 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, @@ -1367,7 +1429,12 @@ typedef enum VkPipelineStageFlagBits { VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, + VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000, VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000, + VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000, + VK_PIPELINE_STAGE_RAYTRACING_BIT_NVX = 0x00200000, + VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000, + VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000, VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkPipelineStageFlagBits; typedef VkFlags VkPipelineStageFlags; @@ -1455,6 +1522,8 @@ typedef enum VkBufferUsageFlagBits { VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, + VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200, + VK_BUFFER_USAGE_RAYTRACING_BIT_NVX = 0x00000400, VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkBufferUsageFlagBits; typedef VkFlags VkBufferUsageFlags; @@ -1469,6 +1538,7 @@ typedef enum VkPipelineCreateFlagBits { VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004, VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008, VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010, + VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NVX = 0x00000020, VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE, VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF @@ -1485,6 +1555,14 @@ typedef enum VkShaderStageFlagBits { VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020, VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F, VK_SHADER_STAGE_ALL = 0x7FFFFFFF, + VK_SHADER_STAGE_RAYGEN_BIT_NVX = 0x00000100, + VK_SHADER_STAGE_ANY_HIT_BIT_NVX = 0x00000200, + VK_SHADER_STAGE_CLOSEST_HIT_BIT_NVX = 0x00000400, + VK_SHADER_STAGE_MISS_BIT_NVX = 0x00000800, + VK_SHADER_STAGE_INTERSECTION_BIT_NVX = 0x00001000, + VK_SHADER_STAGE_CALLABLE_BIT_NVX = 0x00002000, + VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040, + VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080, VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkShaderStageFlagBits; typedef VkFlags VkPipelineVertexInputStateCreateFlags; @@ -1566,9 +1644,13 @@ typedef enum VkAccessFlagBits { VK_ACCESS_HOST_WRITE_BIT = 0x00004000, VK_ACCESS_MEMORY_READ_BIT = 0x00008000, VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000, + VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000, VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000, VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000, VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000, + VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000, + VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NVX = 0x00200000, + VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NVX = 0x00400000, VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkAccessFlagBits; typedef VkFlags VkAccessFlags; @@ -4035,6 +4117,8 @@ typedef struct VkMemoryRequirements2 { VkMemoryRequirements memoryRequirements; } VkMemoryRequirements2; +typedef VkMemoryRequirements2 VkMemoryRequirements2KHR; + typedef struct VkSparseImageMemoryRequirements2 { VkStructureType sType; void* pNext; @@ -4559,7 +4643,6 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) #define VK_KHR_SURFACE_SPEC_VERSION 25 #define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface" -#define VK_COLORSPACE_SRGB_NONLINEAR_KHR VK_COLOR_SPACE_SRGB_NONLINEAR_KHR typedef enum VkColorSpaceKHR { @@ -4578,6 +4661,7 @@ typedef enum VkColorSpaceKHR { VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012, VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013, VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014, + VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1), @@ -5435,6 +5519,114 @@ VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR( const void* pData); #endif +#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" + +typedef struct VkAttachmentDescription2KHR { + VkStructureType sType; + const void* pNext; + VkAttachmentDescriptionFlags flags; + VkFormat format; + VkSampleCountFlagBits samples; + VkAttachmentLoadOp loadOp; + VkAttachmentStoreOp storeOp; + VkAttachmentLoadOp stencilLoadOp; + VkAttachmentStoreOp stencilStoreOp; + VkImageLayout initialLayout; + VkImageLayout finalLayout; +} VkAttachmentDescription2KHR; + +typedef struct VkAttachmentReference2KHR { + VkStructureType sType; + const void* pNext; + uint32_t attachment; + VkImageLayout layout; + VkImageAspectFlags aspectMask; +} VkAttachmentReference2KHR; + +typedef struct VkSubpassDescription2KHR { + VkStructureType sType; + const void* pNext; + VkSubpassDescriptionFlags flags; + VkPipelineBindPoint pipelineBindPoint; + uint32_t viewMask; + uint32_t inputAttachmentCount; + const VkAttachmentReference2KHR* pInputAttachments; + uint32_t colorAttachmentCount; + const VkAttachmentReference2KHR* pColorAttachments; + const VkAttachmentReference2KHR* pResolveAttachments; + const VkAttachmentReference2KHR* pDepthStencilAttachment; + uint32_t preserveAttachmentCount; + const uint32_t* pPreserveAttachments; +} VkSubpassDescription2KHR; + +typedef struct VkSubpassDependency2KHR { + VkStructureType sType; + const void* pNext; + uint32_t srcSubpass; + uint32_t dstSubpass; + VkPipelineStageFlags srcStageMask; + VkPipelineStageFlags dstStageMask; + VkAccessFlags srcAccessMask; + VkAccessFlags dstAccessMask; + VkDependencyFlags dependencyFlags; + int32_t viewOffset; +} VkSubpassDependency2KHR; + +typedef struct VkRenderPassCreateInfo2KHR { + VkStructureType sType; + const void* pNext; + VkRenderPassCreateFlags flags; + uint32_t attachmentCount; + const VkAttachmentDescription2KHR* pAttachments; + uint32_t subpassCount; + const VkSubpassDescription2KHR* pSubpasses; + uint32_t dependencyCount; + const VkSubpassDependency2KHR* pDependencies; + uint32_t correlatedViewMaskCount; + const uint32_t* pCorrelatedViewMasks; +} VkRenderPassCreateInfo2KHR; + +typedef struct VkSubpassBeginInfoKHR { + VkStructureType sType; + const void* pNext; + VkSubpassContents contents; +} VkSubpassBeginInfoKHR; + +typedef struct VkSubpassEndInfoKHR { + VkStructureType sType; + const void* pNext; +} VkSubpassEndInfoKHR; + + +typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2KHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass); +typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfoKHR* pSubpassBeginInfo); +typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfoKHR* pSubpassBeginInfo, const VkSubpassEndInfoKHR* pSubpassEndInfo); +typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfoKHR* pSubpassEndInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR( + VkDevice device, + const VkRenderPassCreateInfo2KHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkRenderPass* pRenderPass); + +VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR( + VkCommandBuffer commandBuffer, + const VkRenderPassBeginInfo* pRenderPassBegin, + const VkSubpassBeginInfoKHR* pSubpassBeginInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR( + VkCommandBuffer commandBuffer, + const VkSubpassBeginInfoKHR* pSubpassBeginInfo, + const VkSubpassEndInfoKHR* pSubpassEndInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR( + VkCommandBuffer commandBuffer, + const VkSubpassEndInfoKHR* pSubpassEndInfo); +#endif + #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" @@ -5691,8 +5883,6 @@ typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR; typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR; -typedef VkMemoryRequirements2 VkMemoryRequirements2KHR; - typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR; @@ -5843,13 +6033,92 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR( uint32_t stride); #endif +#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" + +typedef struct VkPhysicalDevice8BitStorageFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 storageBuffer8BitAccess; + VkBool32 uniformAndStorageBuffer8BitAccess; + VkBool32 storagePushConstant8; +} VkPhysicalDevice8BitStorageFeaturesKHR; + + + +#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" + +typedef struct VkPhysicalDeviceShaderAtomicInt64FeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 shaderBufferInt64Atomics; + VkBool32 shaderSharedInt64Atomics; +} VkPhysicalDeviceShaderAtomicInt64FeaturesKHR; + + + +#define VK_KHR_driver_properties 1 +#define VK_MAX_DRIVER_NAME_SIZE_KHR 256 +#define VK_MAX_DRIVER_INFO_SIZE_KHR 256 +#define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1 +#define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties" + + +typedef enum VkDriverIdKHR { + VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1, + VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2, + VK_DRIVER_ID_MESA_RADV_KHR = 3, + VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = 4, + VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = 5, + VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = 6, + VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = 7, + VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = 8, + VK_DRIVER_ID_ARM_PROPRIETARY_KHR = 9, + VK_DRIVER_ID_BEGIN_RANGE_KHR = VK_DRIVER_ID_AMD_PROPRIETARY_KHR, + VK_DRIVER_ID_END_RANGE_KHR = VK_DRIVER_ID_ARM_PROPRIETARY_KHR, + VK_DRIVER_ID_RANGE_SIZE_KHR = (VK_DRIVER_ID_ARM_PROPRIETARY_KHR - VK_DRIVER_ID_AMD_PROPRIETARY_KHR + 1), + VK_DRIVER_ID_MAX_ENUM_KHR = 0x7FFFFFFF +} VkDriverIdKHR; + +typedef struct VkConformanceVersionKHR { + uint8_t major; + uint8_t minor; + uint8_t subminor; + uint8_t patch; +} VkConformanceVersionKHR; + +typedef struct VkPhysicalDeviceDriverPropertiesKHR { + VkStructureType sType; + void* pNext; + uint32_t driverID; + char driverName[VK_MAX_DRIVER_NAME_SIZE_KHR]; + char driverInfo[VK_MAX_DRIVER_INFO_SIZE_KHR]; + VkConformanceVersionKHR conformanceVersion; +} VkPhysicalDeviceDriverPropertiesKHR; + + + +#define VK_KHR_vulkan_memory_model 1 +#define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 2 +#define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model" + +typedef struct VkPhysicalDeviceVulkanMemoryModelFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 vulkanMemoryModel; + VkBool32 vulkanMemoryModelDeviceScope; +} VkPhysicalDeviceVulkanMemoryModelFeaturesKHR; + + + #define VK_EXT_debug_report 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT) #define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report" -#define VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT -#define VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT typedef enum VkDebugReportObjectTypeEXT { @@ -5889,6 +6158,9 @@ typedef enum VkDebugReportObjectTypeEXT { VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33, VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000, + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NVX_EXT = 1000165000, + 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, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, @@ -6193,6 +6465,18 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD( #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod" +#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" + +typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 cornerSampledImage; +} VkPhysicalDeviceCornerSampledImageFeaturesNV; + + + #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" @@ -6275,10 +6559,10 @@ typedef enum VkValidationCheckEXT { } VkValidationCheckEXT; typedef struct VkValidationFlagsEXT { - VkStructureType sType; - const void* pNext; - uint32_t disabledValidationCheckCount; - VkValidationCheckEXT* pDisabledValidationChecks; + VkStructureType sType; + const void* pNext; + uint32_t disabledValidationCheckCount; + const VkValidationCheckEXT* pDisabledValidationChecks; } VkValidationFlagsEXT; @@ -6293,6 +6577,69 @@ typedef struct VkValidationFlagsEXT { #define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote" +#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" + +typedef struct VkImageViewASTCDecodeModeEXT { + VkStructureType sType; + const void* pNext; + VkFormat decodeMode; +} VkImageViewASTCDecodeModeEXT; + +typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 decodeModeSharedExponent; +} VkPhysicalDeviceASTCDecodeFeaturesEXT; + + + +#define VK_EXT_conditional_rendering 1 +#define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 1 +#define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering" + + +typedef enum VkConditionalRenderingFlagBitsEXT { + VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001, + VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkConditionalRenderingFlagBitsEXT; +typedef VkFlags VkConditionalRenderingFlagsEXT; + +typedef struct VkConditionalRenderingBeginInfoEXT { + VkStructureType sType; + const void* pNext; + VkBuffer buffer; + VkDeviceSize offset; + VkConditionalRenderingFlagsEXT flags; +} VkConditionalRenderingBeginInfoEXT; + +typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 conditionalRendering; + VkBool32 inheritedConditionalRendering; +} VkPhysicalDeviceConditionalRenderingFeaturesEXT; + +typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT { + VkStructureType sType; + const void* pNext; + VkBool32 conditionalRenderingEnable; +} VkCommandBufferInheritanceConditionalRenderingInfoEXT; + + +typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin); +typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT( + VkCommandBuffer commandBuffer, + const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT( + VkCommandBuffer commandBuffer); +#endif + #define VK_NVX_device_generated_commands 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX) @@ -6563,7 +6910,6 @@ VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT( #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" -#define VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT typedef enum VkSurfaceCounterFlagBitsEXT { @@ -7117,6 +7463,42 @@ typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT { #define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask" +#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" + +typedef struct VkPhysicalDeviceInlineUniformBlockFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 inlineUniformBlock; + VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind; +} VkPhysicalDeviceInlineUniformBlockFeaturesEXT; + +typedef struct VkPhysicalDeviceInlineUniformBlockPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxInlineUniformBlockSize; + uint32_t maxPerStageDescriptorInlineUniformBlocks; + uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks; + uint32_t maxDescriptorSetInlineUniformBlocks; + uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks; +} VkPhysicalDeviceInlineUniformBlockPropertiesEXT; + +typedef struct VkWriteDescriptorSetInlineUniformBlockEXT { + VkStructureType sType; + const void* pNext; + uint32_t dataSize; + const void* pData; +} VkWriteDescriptorSetInlineUniformBlockEXT; + +typedef struct VkDescriptorPoolInlineUniformBlockCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t maxInlineUniformBlockBindings; +} VkDescriptorPoolInlineUniformBlockCreateInfoEXT; + + + #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" @@ -7300,7 +7682,6 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT) #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1 #define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache" -#define VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT typedef enum VkValidationCacheHeaderVersionEXT { @@ -7452,6 +7833,397 @@ typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupportEXT { #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer" +#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" + + +typedef enum VkShadingRatePaletteEntryNV { + VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0, + VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1, + VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2, + VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3, + VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4, + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5, + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6, + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7, + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8, + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9, + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10, + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11, + VK_SHADING_RATE_PALETTE_ENTRY_BEGIN_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV, + VK_SHADING_RATE_PALETTE_ENTRY_END_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV, + VK_SHADING_RATE_PALETTE_ENTRY_RANGE_SIZE_NV = (VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV + 1), + VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF +} VkShadingRatePaletteEntryNV; + +typedef enum VkCoarseSampleOrderTypeNV { + VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0, + VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1, + VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2, + VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3, + VK_COARSE_SAMPLE_ORDER_TYPE_BEGIN_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV, + VK_COARSE_SAMPLE_ORDER_TYPE_END_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV, + VK_COARSE_SAMPLE_ORDER_TYPE_RANGE_SIZE_NV = (VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV + 1), + VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF +} VkCoarseSampleOrderTypeNV; + +typedef struct VkShadingRatePaletteNV { + uint32_t shadingRatePaletteEntryCount; + const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries; +} VkShadingRatePaletteNV; + +typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 shadingRateImageEnable; + uint32_t viewportCount; + const VkShadingRatePaletteNV* pShadingRatePalettes; +} VkPipelineViewportShadingRateImageStateCreateInfoNV; + +typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 shadingRateImage; + VkBool32 shadingRateCoarseSampleOrder; +} VkPhysicalDeviceShadingRateImageFeaturesNV; + +typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV { + VkStructureType sType; + void* pNext; + VkExtent2D shadingRateTexelSize; + uint32_t shadingRatePaletteSize; + uint32_t shadingRateMaxCoarseSamples; +} VkPhysicalDeviceShadingRateImagePropertiesNV; + +typedef struct VkCoarseSampleLocationNV { + uint32_t pixelX; + uint32_t pixelY; + uint32_t sample; +} VkCoarseSampleLocationNV; + +typedef struct VkCoarseSampleOrderCustomNV { + VkShadingRatePaletteEntryNV shadingRate; + uint32_t sampleCount; + uint32_t sampleLocationCount; + const VkCoarseSampleLocationNV* pSampleLocations; +} VkCoarseSampleOrderCustomNV; + +typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkCoarseSampleOrderTypeNV sampleOrderType; + uint32_t customSampleOrderCount; + const VkCoarseSampleOrderCustomNV* pCustomSampleOrders; +} VkPipelineViewportCoarseSampleOrderStateCreateInfoNV; + + +typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout); +typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes); +typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV( + VkCommandBuffer commandBuffer, + VkImageView imageView, + VkImageLayout imageLayout); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV( + VkCommandBuffer commandBuffer, + uint32_t firstViewport, + uint32_t viewportCount, + const VkShadingRatePaletteNV* pShadingRatePalettes); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV( + VkCommandBuffer commandBuffer, + VkCoarseSampleOrderTypeNV sampleOrderType, + uint32_t customSampleOrderCount, + const VkCoarseSampleOrderCustomNV* pCustomSampleOrders); +#endif + +#define VK_NVX_raytracing 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNVX) + +#define VK_NVX_RAYTRACING_SPEC_VERSION 1 +#define VK_NVX_RAYTRACING_EXTENSION_NAME "VK_NVX_raytracing" + + +typedef enum VkGeometryTypeNVX { + VK_GEOMETRY_TYPE_TRIANGLES_NVX = 0, + VK_GEOMETRY_TYPE_AABBS_NVX = 1, + VK_GEOMETRY_TYPE_BEGIN_RANGE_NVX = VK_GEOMETRY_TYPE_TRIANGLES_NVX, + VK_GEOMETRY_TYPE_END_RANGE_NVX = VK_GEOMETRY_TYPE_AABBS_NVX, + VK_GEOMETRY_TYPE_RANGE_SIZE_NVX = (VK_GEOMETRY_TYPE_AABBS_NVX - VK_GEOMETRY_TYPE_TRIANGLES_NVX + 1), + VK_GEOMETRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF +} VkGeometryTypeNVX; + +typedef enum VkAccelerationStructureTypeNVX { + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NVX = 0, + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NVX = 1, + VK_ACCELERATION_STRUCTURE_TYPE_BEGIN_RANGE_NVX = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NVX, + VK_ACCELERATION_STRUCTURE_TYPE_END_RANGE_NVX = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NVX, + VK_ACCELERATION_STRUCTURE_TYPE_RANGE_SIZE_NVX = (VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NVX - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NVX + 1), + VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF +} VkAccelerationStructureTypeNVX; + +typedef enum VkCopyAccelerationStructureModeNVX { + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NVX = 0, + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NVX = 1, + VK_COPY_ACCELERATION_STRUCTURE_MODE_BEGIN_RANGE_NVX = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NVX, + VK_COPY_ACCELERATION_STRUCTURE_MODE_END_RANGE_NVX = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NVX, + VK_COPY_ACCELERATION_STRUCTURE_MODE_RANGE_SIZE_NVX = (VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NVX - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NVX + 1), + VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_NVX = 0x7FFFFFFF +} VkCopyAccelerationStructureModeNVX; + + +typedef enum VkGeometryFlagBitsNVX { + VK_GEOMETRY_OPAQUE_BIT_NVX = 0x00000001, + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NVX = 0x00000002, + VK_GEOMETRY_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF +} VkGeometryFlagBitsNVX; +typedef VkFlags VkGeometryFlagsNVX; + +typedef enum VkGeometryInstanceFlagBitsNVX { + VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NVX = 0x00000001, + VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_FLIP_WINDING_BIT_NVX = 0x00000002, + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NVX = 0x00000004, + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NVX = 0x00000008, + VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF +} VkGeometryInstanceFlagBitsNVX; +typedef VkFlags VkGeometryInstanceFlagsNVX; + +typedef enum VkBuildAccelerationStructureFlagBitsNVX { + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NVX = 0x00000001, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NVX = 0x00000002, + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NVX = 0x00000004, + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NVX = 0x00000008, + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NVX = 0x00000010, + VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF +} VkBuildAccelerationStructureFlagBitsNVX; +typedef VkFlags VkBuildAccelerationStructureFlagsNVX; + +typedef struct VkRaytracingPipelineCreateInfoNVX { + VkStructureType sType; + const void* pNext; + VkPipelineCreateFlags flags; + uint32_t stageCount; + const VkPipelineShaderStageCreateInfo* pStages; + const uint32_t* pGroupNumbers; + uint32_t maxRecursionDepth; + VkPipelineLayout layout; + VkPipeline basePipelineHandle; + int32_t basePipelineIndex; +} VkRaytracingPipelineCreateInfoNVX; + +typedef struct VkGeometryTrianglesNVX { + VkStructureType sType; + const void* pNext; + VkBuffer vertexData; + VkDeviceSize vertexOffset; + uint32_t vertexCount; + VkDeviceSize vertexStride; + VkFormat vertexFormat; + VkBuffer indexData; + VkDeviceSize indexOffset; + uint32_t indexCount; + VkIndexType indexType; + VkBuffer transformData; + VkDeviceSize transformOffset; +} VkGeometryTrianglesNVX; + +typedef struct VkGeometryAABBNVX { + VkStructureType sType; + const void* pNext; + VkBuffer aabbData; + uint32_t numAABBs; + uint32_t stride; + VkDeviceSize offset; +} VkGeometryAABBNVX; + +typedef struct VkGeometryDataNVX { + VkGeometryTrianglesNVX triangles; + VkGeometryAABBNVX aabbs; +} VkGeometryDataNVX; + +typedef struct VkGeometryNVX { + VkStructureType sType; + const void* pNext; + VkGeometryTypeNVX geometryType; + VkGeometryDataNVX geometry; + VkGeometryFlagsNVX flags; +} VkGeometryNVX; + +typedef struct VkAccelerationStructureCreateInfoNVX { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureTypeNVX type; + VkBuildAccelerationStructureFlagsNVX flags; + VkDeviceSize compactedSize; + uint32_t instanceCount; + uint32_t geometryCount; + const VkGeometryNVX* pGeometries; +} VkAccelerationStructureCreateInfoNVX; + +typedef struct VkBindAccelerationStructureMemoryInfoNVX { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureNVX accelerationStructure; + VkDeviceMemory memory; + VkDeviceSize memoryOffset; + uint32_t deviceIndexCount; + const uint32_t* pDeviceIndices; +} VkBindAccelerationStructureMemoryInfoNVX; + +typedef struct VkDescriptorAccelerationStructureInfoNVX { + VkStructureType sType; + const void* pNext; + uint32_t accelerationStructureCount; + const VkAccelerationStructureNVX* pAccelerationStructures; +} VkDescriptorAccelerationStructureInfoNVX; + +typedef struct VkAccelerationStructureMemoryRequirementsInfoNVX { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureNVX accelerationStructure; +} VkAccelerationStructureMemoryRequirementsInfoNVX; + +typedef struct VkPhysicalDeviceRaytracingPropertiesNVX { + VkStructureType sType; + void* pNext; + uint32_t shaderHeaderSize; + uint32_t maxRecursionDepth; + uint32_t maxGeometryCount; +} VkPhysicalDeviceRaytracingPropertiesNVX; + + +typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNVX)(VkDevice device, const VkAccelerationStructureCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNVX* pAccelerationStructure); +typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNVX)(VkDevice device, VkAccelerationStructureNVX accelerationStructure, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNVX)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureScratchMemoryRequirementsNVX)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements); +typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNVX)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNVX* pBindInfos); +typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNVX)(VkCommandBuffer commandBuffer, VkAccelerationStructureTypeNVX type, uint32_t instanceCount, VkBuffer instanceData, VkDeviceSize instanceOffset, uint32_t geometryCount, const VkGeometryNVX* pGeometries, VkBuildAccelerationStructureFlagsNVX flags, VkBool32 update, VkAccelerationStructureNVX dst, VkAccelerationStructureNVX src, VkBuffer scratch, VkDeviceSize scratchOffset); +typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNVX)(VkCommandBuffer commandBuffer, VkAccelerationStructureNVX dst, VkAccelerationStructureNVX src, VkCopyAccelerationStructureModeNVX mode); +typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysNVX)(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, uint32_t width, uint32_t height); +typedef VkResult (VKAPI_PTR *PFN_vkCreateRaytracingPipelinesNVX)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRaytracingPipelineCreateInfoNVX* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); +typedef VkResult (VKAPI_PTR *PFN_vkGetRaytracingShaderHandlesNVX)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData); +typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNVX)(VkDevice device, VkAccelerationStructureNVX accelerationStructure, size_t dataSize, void* pData); +typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructurePropertiesNVX)(VkCommandBuffer commandBuffer, VkAccelerationStructureNVX accelerationStructure, VkQueryType queryType, VkQueryPool queryPool, uint32_t query); +typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNVX)(VkDevice device, VkPipeline pipeline, uint32_t shader); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNVX( + VkDevice device, + const VkAccelerationStructureCreateInfoNVX* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkAccelerationStructureNVX* pAccelerationStructure); + +VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNVX( + VkDevice device, + VkAccelerationStructureNVX accelerationStructure, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNVX( + VkDevice device, + const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo, + VkMemoryRequirements2KHR* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureScratchMemoryRequirementsNVX( + VkDevice device, + const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo, + VkMemoryRequirements2KHR* pMemoryRequirements); + +VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNVX( + VkDevice device, + uint32_t bindInfoCount, + const VkBindAccelerationStructureMemoryInfoNVX* pBindInfos); + +VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNVX( + VkCommandBuffer commandBuffer, + VkAccelerationStructureTypeNVX type, + uint32_t instanceCount, + VkBuffer instanceData, + VkDeviceSize instanceOffset, + uint32_t geometryCount, + const VkGeometryNVX* pGeometries, + VkBuildAccelerationStructureFlagsNVX flags, + VkBool32 update, + VkAccelerationStructureNVX dst, + VkAccelerationStructureNVX src, + VkBuffer scratch, + VkDeviceSize scratchOffset); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNVX( + VkCommandBuffer commandBuffer, + VkAccelerationStructureNVX dst, + VkAccelerationStructureNVX src, + VkCopyAccelerationStructureModeNVX mode); + +VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNVX( + VkCommandBuffer commandBuffer, + VkBuffer raygenShaderBindingTableBuffer, + VkDeviceSize raygenShaderBindingOffset, + VkBuffer missShaderBindingTableBuffer, + VkDeviceSize missShaderBindingOffset, + VkDeviceSize missShaderBindingStride, + VkBuffer hitShaderBindingTableBuffer, + VkDeviceSize hitShaderBindingOffset, + VkDeviceSize hitShaderBindingStride, + uint32_t width, + uint32_t height); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateRaytracingPipelinesNVX( + VkDevice device, + VkPipelineCache pipelineCache, + uint32_t createInfoCount, + const VkRaytracingPipelineCreateInfoNVX* pCreateInfos, + const VkAllocationCallbacks* pAllocator, + VkPipeline* pPipelines); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetRaytracingShaderHandlesNVX( + VkDevice device, + VkPipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void* pData); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNVX( + VkDevice device, + VkAccelerationStructureNVX accelerationStructure, + size_t dataSize, + void* pData); + +VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructurePropertiesNVX( + VkCommandBuffer commandBuffer, + VkAccelerationStructureNVX accelerationStructure, + VkQueryType queryType, + VkQueryPool queryPool, + uint32_t query); + +VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNVX( + VkDevice device, + VkPipeline pipeline, + uint32_t shader); +#endif + +#define VK_NV_representative_fragment_test 1 +#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 1 +#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test" + +typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 representativeFragmentTest; +} VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV; + +typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 representativeFragmentTestEnable; +} VkPipelineRepresentativeFragmentTestStateCreateInfoNV; + + + #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" @@ -7551,7 +8323,7 @@ typedef struct VkPhysicalDeviceShaderCorePropertiesAMD { #define VK_EXT_vertex_attribute_divisor 1 -#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 1 +#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor" typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT { @@ -7572,6 +8344,13 @@ typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT { const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors; } VkPipelineVertexInputDivisorStateCreateInfoEXT; +typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 vertexAttributeInstanceRateDivisor; + VkBool32 vertexAttributeInstanceRateZeroDivisor; +} VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT; + #define VK_NV_shader_subgroup_partitioned 1 @@ -7579,6 +8358,165 @@ typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT { #define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned" +#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" + +typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 computeDerivativeGroupQuads; + VkBool32 computeDerivativeGroupLinear; +} VkPhysicalDeviceComputeShaderDerivativesFeaturesNV; + + + +#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" + +typedef struct VkPhysicalDeviceMeshShaderFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 taskShader; + VkBool32 meshShader; +} VkPhysicalDeviceMeshShaderFeaturesNV; + +typedef struct VkPhysicalDeviceMeshShaderPropertiesNV { + VkStructureType sType; + void* pNext; + uint32_t maxDrawMeshTasksCount; + uint32_t maxTaskWorkGroupInvocations; + uint32_t maxTaskWorkGroupSize[3]; + uint32_t maxTaskTotalMemorySize; + uint32_t maxTaskOutputCount; + uint32_t maxMeshWorkGroupInvocations; + uint32_t maxMeshWorkGroupSize[3]; + uint32_t maxMeshTotalMemorySize; + uint32_t maxMeshOutputVertices; + uint32_t maxMeshOutputPrimitives; + uint32_t maxMeshMultiviewViewCount; + uint32_t meshOutputPerVertexGranularity; + uint32_t meshOutputPerPrimitiveGranularity; +} VkPhysicalDeviceMeshShaderPropertiesNV; + +typedef struct VkDrawMeshTasksIndirectCommandNV { + uint32_t taskCount; + uint32_t firstTask; +} VkDrawMeshTasksIndirectCommandNV; + + +typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask); +typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV( + VkCommandBuffer commandBuffer, + uint32_t taskCount, + uint32_t firstTask); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + uint32_t drawCount, + uint32_t stride); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride); +#endif + +#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" + +typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 fragmentShaderBarycentric; +} VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV; + + + +#define VK_NV_shader_image_footprint 1 +#define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 1 +#define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint" + +typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 imageFootprint; +} VkPhysicalDeviceShaderImageFootprintFeaturesNV; + + + +#define VK_NV_scissor_exclusive 1 +#define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1 +#define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive" + +typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + uint32_t exclusiveScissorCount; + const VkRect2D* pExclusiveScissors; +} VkPipelineViewportExclusiveScissorStateCreateInfoNV; + +typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 exclusiveScissor; +} VkPhysicalDeviceExclusiveScissorFeaturesNV; + + +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 vkCmdSetExclusiveScissorNV( + VkCommandBuffer commandBuffer, + uint32_t firstExclusiveScissor, + uint32_t exclusiveScissorCount, + const VkRect2D* pExclusiveScissors); +#endif + +#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" + +typedef struct VkQueueFamilyCheckpointPropertiesNV { + VkStructureType sType; + void* pNext; + VkPipelineStageFlags checkpointExecutionStageMask; +} VkQueueFamilyCheckpointPropertiesNV; + +typedef struct VkCheckpointDataNV { + VkStructureType sType; + void* pNext; + VkPipelineStageFlagBits stage; + void* pCheckpointMarker; +} VkCheckpointDataNV; + + +typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker); +typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV( + VkCommandBuffer commandBuffer, + const void* pCheckpointMarker); + +VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV( + VkQueue queue, + uint32_t* pCheckpointDataCount, + VkCheckpointDataNV* pCheckpointData); +#endif + #ifdef __cplusplus } #endif diff --git a/include/vulkan/vulkan_fuchsia.h b/include/vulkan/vulkan_fuchsia.h new file mode 100644 index 0000000..e0ed545 --- /dev/null +++ b/include/vulkan/vulkan_fuchsia.h @@ -0,0 +1,58 @@ +#ifndef VULKAN_FUCHSIA_H_ +#define VULKAN_FUCHSIA_H_ 1 + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Copyright (c) 2015-2018 The Khronos Group 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. +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#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" + +typedef VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA; + +typedef struct VkImagePipeSurfaceCreateInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkImagePipeSurfaceCreateFlagsFUCHSIA flags; + zx_handle_t imagePipeHandle; +} VkImagePipeSurfaceCreateInfoFUCHSIA; + + +typedef VkResult (VKAPI_PTR *PFN_vkCreateImagePipeSurfaceFUCHSIA)(VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateImagePipeSurfaceFUCHSIA( + VkInstance instance, + const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/registry/genvk.py b/registry/genvk.py index 6d7760b..cdbf938 100644 --- a/registry/genvk.py +++ b/registry/genvk.py @@ -254,6 +254,7 @@ def makeGenOpts(args): [ 'vulkan_android.h', [ 'VK_KHR_android_surface', 'VK_ANDROID_external_memory_android_hardware_buffer' ], commonSuppressExtensions ], + [ 'vulkan_fuchsia.h', [ 'VK_FUCHSIA_imagepipe_surface'], commonSuppressExtensions ], [ 'vulkan_ios.h', [ 'VK_MVK_ios_surface' ], commonSuppressExtensions ], [ 'vulkan_macos.h', [ 'VK_MVK_macos_surface' ], commonSuppressExtensions ], [ 'vulkan_mir.h', [ 'VK_KHR_mir_surface' ], commonSuppressExtensions ], diff --git a/registry/reg.py b/registry/reg.py index c9f92db..5d25bca 100644 --- a/registry/reg.py +++ b/registry/reg.py @@ -502,12 +502,17 @@ class Registry: # 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 in disabled_ext.findall("*/type"): + disabled_types.append(type.get('name')) for type in self.reg.findall('types/type'): - parentStructs = type.get('structextends') - if (parentStructs != None): - for parent in parentStructs.split(','): - # self.gen.logMsg('diag', type.get('name'), 'extends', parent) - self.validextensionstructs[parent].append(type.get('name')) + if type.get('name') not in disabled_types: + parentStructs = type.get('structextends') + if (parentStructs != None): + for parent in parentStructs.split(','): + # self.gen.logMsg('diag', type.get('name'), 'extends', parent) + self.validextensionstructs[parent].append(type.get('name')) # Sort the lists so they don't depend on the XML order for parent in self.validextensionstructs: self.validextensionstructs[parent].sort() diff --git a/registry/validusage.json b/registry/validusage.json index 1bd6b30..5f91216 100644 --- a/registry/validusage.json +++ b/registry/validusage.json @@ -1,9 +1,9 @@ { "version info": { "schema version": 2, - "api version": "1.1.79", - "comment": "from git branch: master commit: ff9357a4bad5fa49b99b9d3f69d254e2a3f0f575", - "date": "2018-07-02 20:23:28Z" + "api version": "1.1.87", + "comment": "from git branch: master commit: 911a7646949e661b24ad6111479029ed9e841284", + "date": "2018-10-09 21:58:14Z" }, "validation": { "vkGetInstanceProcAddr": { @@ -42,7 +42,7 @@ "core": [ { "vuid": "VUID-vkCreateInstance-ppEnabledExtensionNames-01388", - "text": " All &amp;lt;&amp;lt;extended-functionality-extensions-dependencies, required extensions&amp;gt;&amp;gt; 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=\"#extended-functionality-extensions-dependencies\">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." }, { "vuid": "VUID-vkCreateInstance-pCreateInfo-parameter", @@ -98,7 +98,7 @@ }, { "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> <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" }, { "vuid": "VUID-VkValidationFlagsEXT-disabledValidationCheckCount-arraylength", @@ -198,7 +198,7 @@ }, { "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=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceConservativeRasterizationPropertiesEXT\">VkPhysicalDeviceConservativeRasterizationPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingPropertiesEXT\">VkPhysicalDeviceDescriptorIndexingPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDiscardRectanglePropertiesEXT\">VkPhysicalDeviceDiscardRectanglePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceExternalMemoryHostPropertiesEXT\">VkPhysicalDeviceExternalMemoryHostPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceIDProperties\">VkPhysicalDeviceIDProperties</a>, <a href=\"#VkPhysicalDeviceMaintenance3Properties\">VkPhysicalDeviceMaintenance3Properties</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX\">VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX</a>, <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>, <a href=\"#VkPhysicalDevicePointClippingProperties\">VkPhysicalDevicePointClippingProperties</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryProperties\">VkPhysicalDeviceProtectedMemoryProperties</a>, <a href=\"#VkPhysicalDevicePushDescriptorPropertiesKHR\">VkPhysicalDevicePushDescriptorPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT\">VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesAMD\">VkPhysicalDeviceShaderCorePropertiesAMD</a>, <a href=\"#VkPhysicalDeviceSubgroupProperties\">VkPhysicalDeviceSubgroupProperties</a>, or <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT\">VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT</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=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceConservativeRasterizationPropertiesEXT\">VkPhysicalDeviceConservativeRasterizationPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingPropertiesEXT\">VkPhysicalDeviceDescriptorIndexingPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDiscardRectanglePropertiesEXT\">VkPhysicalDeviceDiscardRectanglePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDriverPropertiesKHR\">VkPhysicalDeviceDriverPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceExternalMemoryHostPropertiesEXT\">VkPhysicalDeviceExternalMemoryHostPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceIDProperties\">VkPhysicalDeviceIDProperties</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockPropertiesEXT\">VkPhysicalDeviceInlineUniformBlockPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMaintenance3Properties\">VkPhysicalDeviceMaintenance3Properties</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesNV\">VkPhysicalDeviceMeshShaderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX\">VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX</a>, <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>, <a href=\"#VkPhysicalDevicePointClippingProperties\">VkPhysicalDevicePointClippingProperties</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryProperties\">VkPhysicalDeviceProtectedMemoryProperties</a>, <a href=\"#VkPhysicalDevicePushDescriptorPropertiesKHR\">VkPhysicalDevicePushDescriptorPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRaytracingPropertiesNVX\">VkPhysicalDeviceRaytracingPropertiesNVX</a>, <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT\">VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesAMD\">VkPhysicalDeviceShaderCorePropertiesAMD</a>, <a href=\"#VkPhysicalDeviceSubgroupProperties\">VkPhysicalDeviceSubgroupProperties</a>, or <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT\">VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT</a>" }, { "vuid": "VUID-VkPhysicalDeviceProperties2-sType-unique", @@ -214,6 +214,14 @@ } ] }, + "VkPhysicalDeviceDriverPropertiesKHR": { + "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_KHR_driver_properties)": [ + { + "vuid": "VUID-VkPhysicalDeviceDriverPropertiesKHR-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR</code>" + } + ] + }, "vkGetPhysicalDeviceQueueFamilyProperties": { "core": [ { @@ -254,7 +262,15 @@ }, { "vuid": "VUID-VkQueueFamilyProperties2-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=\"#VkQueueFamilyCheckpointPropertiesNV\">VkQueueFamilyCheckpointPropertiesNV</a>" + } + ] + }, + "VkQueueFamilyCheckpointPropertiesNV": { + "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_NV_device_diagnostic_checkpoints)": [ + { + "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>" } ] }, @@ -278,7 +294,7 @@ "core": [ { "vuid": "VUID-vkCreateDevice-ppEnabledExtensionNames-01387", - "text": " All &amp;lt;&amp;lt;extended-functionality-extensions-dependencies, required extensions&amp;gt;&amp;gt; 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=\"#extended-functionality-extensions-dependencies\">required 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." }, { "vuid": "VUID-vkCreateDevice-physicalDevice-parameter", @@ -310,7 +326,7 @@ }, { "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=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>, <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeaturesEXT\">VkPhysicalDeviceDescriptorIndexingFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, or <a href=\"#VkPhysicalDeviceVariablePointerFeatures\">VkPhysicalDeviceVariablePointerFeatures</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=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>, <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDevice8BitStorageFeaturesKHR\">VkPhysicalDevice8BitStorageFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceASTCDecodeFeaturesEXT\">VkPhysicalDeviceASTCDecodeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT\">VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceComputeShaderDerivativesFeaturesNV\">VkPhysicalDeviceComputeShaderDerivativesFeaturesNV</a>, <a href=\"#VkPhysicalDeviceConditionalRenderingFeaturesEXT\">VkPhysicalDeviceConditionalRenderingFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCornerSampledImageFeaturesNV\">VkPhysicalDeviceCornerSampledImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeaturesEXT\">VkPhysicalDeviceDescriptorIndexingFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExclusiveScissorFeaturesNV\">VkPhysicalDeviceExclusiveScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV\">VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockFeaturesEXT\">VkPhysicalDeviceInlineUniformBlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesNV\">VkPhysicalDeviceMeshShaderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV\">VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, <a href=\"#VkPhysicalDeviceShaderAtomicInt64FeaturesKHR\">VkPhysicalDeviceShaderAtomicInt64FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderDrawParameterFeatures\">VkPhysicalDeviceShaderDrawParameterFeatures</a>, <a href=\"#VkPhysicalDeviceShaderImageFootprintFeaturesNV\">VkPhysicalDeviceShaderImageFootprintFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShadingRateImageFeaturesNV\">VkPhysicalDeviceShadingRateImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceVariablePointerFeatures\">VkPhysicalDeviceVariablePointerFeatures</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT\">VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT</a>, or <a href=\"#VkPhysicalDeviceVulkanMemoryModelFeaturesKHR\">VkPhysicalDeviceVulkanMemoryModelFeaturesKHR</a>" }, { "vuid": "VUID-VkDeviceCreateInfo-sType-unique", @@ -588,7 +604,7 @@ "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 &amp;lt;&amp;lt;commandbuffers-lifecycle, pending state&amp;gt;&amp;gt;" + "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>" }, { "vuid": "VUID-vkResetCommandPool-device-parameter", @@ -612,7 +628,7 @@ "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 &amp;lt;&amp;lt;commandbuffers-lifecycle, pending state&amp;gt;&amp;gt;." + "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>." }, { "vuid": "VUID-vkDestroyCommandPool-commandPool-00042", @@ -684,7 +700,7 @@ "core": [ { "vuid": "VUID-vkResetCommandBuffer-commandBuffer-00045", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, pending state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>" }, { "vuid": "VUID-vkResetCommandBuffer-commandBuffer-00046", @@ -704,7 +720,7 @@ "core": [ { "vuid": "VUID-vkFreeCommandBuffers-pCommandBuffers-00047", - "text": " All elements of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, pending state&amp;gt;&amp;gt;" + "text": " All elements of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>" }, { "vuid": "VUID-vkFreeCommandBuffers-pCommandBuffers-00048", @@ -736,11 +752,11 @@ "core": [ { "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-00049", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording or pending state&amp;gt;&amp;gt;." + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">recording or pending state</a>." }, { "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 &amp;lt;&amp;lt;commandbuffers-lifecycle, initial state&amp;gt;&amp;gt;." + "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>." }, { "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-00051", @@ -792,15 +808,15 @@ "core": [ { "vuid": "VUID-VkCommandBufferInheritanceInfo-occlusionQueryEnable-00056", - "text": " If the &amp;lt;&amp;lt;features-features-inheritedQueries,inherited queries&amp;gt;&amp;gt; feature is not enabled, <code>occlusionQueryEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>" + "text": " If the <a href=\"#features-features-inheritedQueries\">inherited queries</a> feature is not enabled, <code>occlusionQueryEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>" }, { "vuid": "VUID-VkCommandBufferInheritanceInfo-queryFlags-00057", - "text": " If the &amp;lt;&amp;lt;features-features-inheritedQueries,inherited queries&amp;gt;&amp;gt; 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-features-inheritedQueries\">inherited queries</a> feature is enabled, <code>queryFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkQueryControlFlagBits\">VkQueryControlFlagBits</a> values" }, { "vuid": "VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-00058", - "text": " If the &amp;lt;&amp;lt;features-features-pipelineStatisticsQuery,pipeline statistics queries&amp;gt;&amp;gt; feature is not enabled, <code>pipelineStatistics</code> <strong class=\"purple\">must</strong> be <code>0</code>" + "text": " If the <a href=\"#features-features-pipelineStatisticsQuery\">pipeline statistics queries</a> feature is not enabled, <code>pipelineStatistics</code> <strong class=\"purple\">must</strong> be <code>0</code>" }, { "vuid": "VUID-VkCommandBufferInheritanceInfo-sType-sType", @@ -808,7 +824,7 @@ }, { "vuid": "VUID-VkCommandBufferInheritanceInfo-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=\"#VkCommandBufferInheritanceConditionalRenderingInfoEXT\">VkCommandBufferInheritanceConditionalRenderingInfoEXT</a>" }, { "vuid": "VUID-VkCommandBufferInheritanceInfo-commonparent", @@ -816,11 +832,23 @@ } ] }, + "VkCommandBufferInheritanceConditionalRenderingInfoEXT": { + "(VK_EXT_conditional_rendering)": [ + { + "vuid": "VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-conditionalRenderingEnable-01977", + "text": " If the <a href=\"#features-features-inheritedConditionalRendering\">inherited conditional rendering</a> feature is not enabled, <code>conditionalRenderingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>" + }, + { + "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>" + } + ] + }, "vkEndCommandBuffer": { "core": [ { "vuid": "VUID-vkEndCommandBuffer-commandBuffer-00059", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;." + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>." }, { "vuid": "VUID-vkEndCommandBuffer-commandBuffer-00060", @@ -828,13 +856,19 @@ }, { "vuid": "VUID-vkEndCommandBuffer-commandBuffer-00061", - "text": " All queries made &amp;lt;&amp;lt;queries-operation-active,active&amp;gt;&amp;gt; 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" }, { "vuid": "VUID-vkEndCommandBuffer-commandBuffer-parameter", "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" } ], + "(VK_EXT_conditional_rendering)": [ + { + "vuid": "VUID-vkEndCommandBuffer-None-01978", + "text": " Conditional rendering must not be <a href=\"#active-conditional-rendering\">active</a>" + } + ], "(VK_EXT_debug_utils)": [ { "vuid": "VUID-vkEndCommandBuffer-commandBuffer-01815", @@ -864,7 +898,7 @@ }, { "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 &amp;lt;&amp;lt;synchronization-pipeline-stages-supported, table of supported pipeline stages&amp;gt;&amp;gt;." + "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>." }, { "vuid": "VUID-vkQueueSubmit-pSignalSemaphores-00067", @@ -876,29 +910,33 @@ }, { "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 &amp;lt;&amp;lt;synchronization-semaphores-signaling, semaphore signal operations&amp;gt;&amp;gt; previously submitted for execution." + "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." }, { "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 &amp;lt;&amp;lt;commandbuffers-lifecycle, pending or executable state&amp;gt;&amp;gt;." + "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>." }, { "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 &amp;lt;&amp;lt;commandbuffers-lifecycle, pending state&amp;gt;&amp;gt;." + "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>." }, { "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00072", - "text": " Any &amp;lt;&amp;lt;commandbuffers-secondary, secondary command buffers recorded&amp;gt;&amp;gt; into any element of the <code>pCommandBuffers</code> member of any element of <code>pSubmits</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, pending or executable state&amp;gt;&amp;gt;." + "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>." }, { "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00073", - "text": " If any &amp;lt;&amp;lt;commandbuffers-secondary, secondary command buffers recorded&amp;gt;&amp;gt; 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 &amp;lt;&amp;lt;commandbuffers-lifecycle, pending state&amp;gt;&amp;gt;." + "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>." }, { "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." }, { + "vuid": "VUID-vkQueueSubmit-pSubmits-02207", + "text": " If any element of <code>pSubmits</code>→<code>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." + }, + { "vuid": "VUID-vkQueueSubmit-queue-parameter", "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <code>VkQueue</code> handle" }, @@ -924,11 +962,11 @@ }, { "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-00076", - "text": " If the &amp;lt;&amp;lt;features-features-geometryShader,geometry shaders&amp;gt;&amp;gt; feature is not enabled, each element of <code>pWaitDstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" + "text": " If the <a href=\"#features-features-geometryShader\">geometry shaders</a> feature is not enabled, each element of <code>pWaitDstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" }, { "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-00077", - "text": " If the &amp;lt;&amp;lt;features-features-tessellationShader,tessellation shaders&amp;gt;&amp;gt; feature is not enabled, each element of <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>" + "text": " If the <a href=\"#features-features-tessellationShader\">tessellation shaders</a> feature is not enabled, each element of <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>" }, { "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-00078", @@ -970,6 +1008,16 @@ "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 <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <code>VkDevice</code>" } + ], + "(VK_NV_mesh_shader)": [ + { + "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-02089", + "text": " If the <a href=\"#features-features-meshShader\">mesh shaders</a> feature is not enabled, each element of <code>pWaitDstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code>" + }, + { + "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-02090", + "text": " If the <a href=\"#features-features-taskShader\">task shaders</a> feature is not enabled, each element of <code>pWaitDstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>" + } ] }, "VkD3D12FenceSubmitInfoKHR": { @@ -1140,15 +1188,15 @@ }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00089", - "text": " Each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, pending or executable state&amp;gt;&amp;gt;." + "text": " Each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">pending or executable state</a>." }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00090", - "text": " If any element of <code>pCommandBuffers</code> was not recorded with the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code> flag, and it was recorded into any other primary command buffer, that primary command buffer <strong class=\"purple\">must</strong> not be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, pending state&amp;gt;&amp;gt;" + "text": " If any element of <code>pCommandBuffers</code> was not recorded with the <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code> flag, and it was recorded into any other primary command buffer, that primary command buffer <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>" }, { "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 &amp;lt;&amp;lt;commandbuffers-lifecycle, pending state&amp;gt;&amp;gt;." + "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>." }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00092", @@ -1176,7 +1224,7 @@ }, { "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</code>::<code>pInheritanceInfo</code>::<code>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 &amp;lt;&amp;lt;renderpass-compatibility,compatible&amp;gt;&amp;gt; with the current render pass." + "text": " If <code>vkCmdExecuteCommands</code> is being called within a render pass instance, the render passes specified in the <code>pBeginInfo</code>::<code>pInheritanceInfo</code>::<code>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." }, { "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00099", @@ -1188,23 +1236,23 @@ }, { "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-00101", - "text": " If the &amp;lt;&amp;lt;features-features-inheritedQueries,inherited queries&amp;gt;&amp;gt; feature is not enabled, <code>commandBuffer</code> <strong class=\"purple\">must</strong> not have any queries &amp;lt;&amp;lt;queries-operation-active,active&amp;gt;&amp;gt;" + "text": " If the <a href=\"#features-features-inheritedQueries\">inherited queries</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 &amp;lt;&amp;lt;queries-operation-active,active&amp;gt;&amp;gt;, 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>" + "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 &amp;lt;&amp;lt;queries-operation-active,active&amp;gt;&amp;gt;, 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" + "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 &amp;lt;&amp;lt;queries-operation-active,active&amp;gt;&amp;gt;, 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" + "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 &amp;lt;&amp;lt;queries-operation-active,active&amp;gt;&amp;gt; in <code>commandBuffer</code>" + "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-parameter", @@ -1216,7 +1264,7 @@ }, { "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-cmdpool", @@ -1286,7 +1334,7 @@ }, { "vuid": "VUID-vkCmdSetDeviceMask-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdSetDeviceMask-commandBuffer-cmdpool", @@ -1394,11 +1442,11 @@ }, { "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 &amp;lt;&amp;lt;synchronization-fences-importing,Importing Fence Payloads&amp;gt;&amp;gt; unless that imported payload’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’s handle type was included in <a href=\"#VkExternalFenceProperties\">VkExternalFenceProperties</a>::<code>exportFromImportedHandleTypes</code> for <code>handleType</code>." }, { "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 &amp;lt;&amp;lt;synchronization-fences-signaling,fence signal operation&amp;gt;&amp;gt; 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." }, { "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-01452", @@ -1446,11 +1494,11 @@ }, { "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 &amp;lt;&amp;lt;synchronization-fences-signaling,fence signal operation&amp;gt;&amp;gt; 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." }, { "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 &amp;lt;&amp;lt;synchronization-fences-importing,Importing Fence Payloads&amp;gt;&amp;gt; unless that imported payload’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’s handle type was included in <a href=\"#VkExternalFenceProperties\">VkExternalFenceProperties</a>::<code>exportFromImportedHandleTypes</code> for <code>handleType</code>." }, { "vuid": "VUID-VkFenceGetFdInfoKHR-handleType-01456", @@ -1478,7 +1526,7 @@ "core": [ { "vuid": "VUID-vkDestroyFence-fence-01120", - "text": " All &amp;lt;&amp;lt;devsandqueues-submission, queue submission&amp;gt;&amp;gt; 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" }, { "vuid": "VUID-vkDestroyFence-fence-01121", @@ -1658,7 +1706,7 @@ "(VK_KHR_external_fence_win32)": [ { "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handleType-01457", - "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a value included in the &amp;lt;&amp;lt;synchronization-fence-handletypes-win32, Handle Types Supported by VkImportFenceWin32HandleInfoKHR&amp;gt;&amp;gt; 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 VkImportFenceWin32HandleInfoKHR</a> table." }, { "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handleType-01459", @@ -1726,11 +1774,11 @@ "(VK_KHR_external_fence_fd)": [ { "vuid": "VUID-VkImportFenceFdInfoKHR-handleType-01464", - "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a value included in the &amp;lt;&amp;lt;synchronization-fence-handletypes-fd, Handle Types Supported by VkImportFenceFdInfoKHR&amp;gt;&amp;gt; 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 VkImportFenceFdInfoKHR</a> table." }, { "vuid": "VUID-VkImportFenceFdInfoKHR-fd-01541", - "text": " <code>fd</code> <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in &amp;lt;&amp;lt;external-fence-handle-types-compatibility,external fence handle types compatibility&amp;gt;&amp;gt;." + "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>." }, { "vuid": "VUID-VkImportFenceFdInfoKHR-sType-sType", @@ -1854,15 +1902,15 @@ }, { "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 &amp;lt;&amp;lt;synchronization-semaphores-importing,Importing Semaphore Payloads&amp;gt;&amp;gt; unless that imported payload’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’s handle type was included in <a href=\"#VkExternalSemaphoreProperties\">VkExternalSemaphoreProperties</a>::<code>exportFromImportedHandleTypes</code> for <code>handleType</code>." }, { "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01129", - "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, as defined below in &amp;lt;&amp;lt;synchronization-semaphores-importing,Importing Semaphore Payloads&amp;gt;&amp;gt;, 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>." }, { "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 &amp;lt;&amp;lt;synchronization-semaphores-signaling,semaphore signal operation&amp;gt;&amp;gt; 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." }, { "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01131", @@ -1910,15 +1958,15 @@ }, { "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 &amp;lt;&amp;lt;synchronization-semaphores-importing,Importing Semaphore Payloads&amp;gt;&amp;gt; unless that imported payload’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’s handle type was included in <a href=\"#VkExternalSemaphoreProperties\">VkExternalSemaphoreProperties</a>::<code>exportFromImportedHandleTypes</code> for <code>handleType</code>." }, { "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-01134", - "text": " If <code>handleType</code> refers to a handle type with copy payload transference semantics, as defined below in &amp;lt;&amp;lt;synchronization-semaphores-importing,Importing Semaphore Payloads&amp;gt;&amp;gt;, 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>." }, { "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 &amp;lt;&amp;lt;synchronization-semaphores-signaling,semaphore signal operation&amp;gt;&amp;gt; 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." }, { "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-01136", @@ -1990,7 +2038,7 @@ "(VK_KHR_external_semaphore_win32)": [ { "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01140", - "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a value included in the &amp;lt;&amp;lt;synchronization-semaphore-handletypes-win32,Handle Types Supported by VkImportSemaphoreWin32HandleInfoKHR&amp;gt;&amp;gt; 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 VkImportSemaphoreWin32HandleInfoKHR</a> table." }, { "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01466", @@ -2058,11 +2106,11 @@ "(VK_KHR_external_semaphore_fd)": [ { "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-01143", - "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a value included in the &amp;lt;&amp;lt;synchronization-semaphore-handletypes-fd,Handle Types Supported by VkImportSemaphoreFdInfoKHR&amp;gt;&amp;gt; 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 VkImportSemaphoreFdInfoKHR</a> table." }, { "vuid": "VUID-VkImportSemaphoreFdInfoKHR-fd-01544", - "text": " <code>fd</code> <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in &amp;lt;&amp;lt;external-semaphore-handle-types-compatibility,external semaphore handle types compatibility&amp;gt;&amp;gt;." + "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>." }, { "vuid": "VUID-VkImportSemaphoreFdInfoKHR-sType-sType", @@ -2214,11 +2262,11 @@ }, { "vuid": "VUID-vkCmdSetEvent-stageMask-01150", - "text": " If the &amp;lt;&amp;lt;features-features-geometryShader,geometry shaders&amp;gt;&amp;gt; feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" + "text": " If the <a href=\"#features-features-geometryShader\">geometry shaders</a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" }, { "vuid": "VUID-vkCmdSetEvent-stageMask-01151", - "text": " If the &amp;lt;&amp;lt;features-features-tessellationShader,tessellation shaders&amp;gt;&amp;gt; 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>" + "text": " If the <a href=\"#features-features-tessellationShader\">tessellation shaders</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>" }, { "vuid": "VUID-vkCmdSetEvent-commandBuffer-parameter", @@ -2238,7 +2286,7 @@ }, { "vuid": "VUID-vkCmdSetEvent-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdSetEvent-commandBuffer-cmdpool", @@ -2258,6 +2306,16 @@ "vuid": "VUID-vkCmdSetEvent-commandBuffer-01152", "text": " <code>commandBuffer</code>’s current device mask <strong class=\"purple\">must</strong> include exactly one physical device." } + ], + "(VK_NV_mesh_shader)": [ + { + "vuid": "VUID-vkCmdSetEvent-stageMask-02107", + "text": " If the <a href=\"#features-features-meshShader\">mesh shaders</a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code>" + }, + { + "vuid": "VUID-vkCmdSetEvent-stageMask-02108", + "text": " If the <a href=\"#features-features-taskShader\">task shaders</a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>" + } ] }, "vkCmdResetEvent": { @@ -2268,11 +2326,11 @@ }, { "vuid": "VUID-vkCmdResetEvent-stageMask-01154", - "text": " If the &amp;lt;&amp;lt;features-features-geometryShader,geometry shaders&amp;gt;&amp;gt; feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" + "text": " If the <a href=\"#features-features-geometryShader\">geometry shaders</a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" }, { "vuid": "VUID-vkCmdResetEvent-stageMask-01155", - "text": " If the &amp;lt;&amp;lt;features-features-tessellationShader,tessellation shaders&amp;gt;&amp;gt; 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>" + "text": " If the <a href=\"#features-features-tessellationShader\">tessellation shaders</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>" }, { "vuid": "VUID-vkCmdResetEvent-event-01156", @@ -2296,7 +2354,7 @@ }, { "vuid": "VUID-vkCmdResetEvent-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdResetEvent-commandBuffer-cmdpool", @@ -2316,6 +2374,16 @@ "vuid": "VUID-vkCmdResetEvent-commandBuffer-01157", "text": " <code>commandBuffer</code>’s current device mask <strong class=\"purple\">must</strong> include exactly one physical device." } + ], + "(VK_NV_mesh_shader)": [ + { + "vuid": "VUID-vkCmdResetEvent-stageMask-02109", + "text": " If the <a href=\"#features-features-meshShader\">mesh shaders</a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code>" + }, + { + "vuid": "VUID-vkCmdResetEvent-stageMask-02110", + "text": " If the <a href=\"#features-features-taskShader\">task shaders</a> feature is not enabled, <code>stageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>" + } ] }, "vkCmdWaitEvents": { @@ -2326,19 +2394,19 @@ }, { "vuid": "VUID-vkCmdWaitEvents-srcStageMask-01159", - "text": " If the &amp;lt;&amp;lt;features-features-geometryShader,geometry shaders&amp;gt;&amp;gt; feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" + "text": " If the <a href=\"#features-features-geometryShader\">geometry shaders</a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" }, { "vuid": "VUID-vkCmdWaitEvents-dstStageMask-01160", - "text": " If the &amp;lt;&amp;lt;features-features-geometryShader,geometry shaders&amp;gt;&amp;gt; feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" + "text": " If the <a href=\"#features-features-geometryShader\">geometry shaders</a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" }, { "vuid": "VUID-vkCmdWaitEvents-srcStageMask-01161", - "text": " If the &amp;lt;&amp;lt;features-features-tessellationShader,tessellation shaders&amp;gt;&amp;gt; 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>" + "text": " If the <a href=\"#features-features-tessellationShader\">tessellation shaders</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>" }, { "vuid": "VUID-vkCmdWaitEvents-dstStageMask-01162", - "text": " If the &amp;lt;&amp;lt;features-features-tessellationShader,tessellation shaders&amp;gt;&amp;gt; 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>" + "text": " If the <a href=\"#features-features-tessellationShader\">tessellation shaders</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>" }, { "vuid": "VUID-vkCmdWaitEvents-pEvents-01163", @@ -2346,15 +2414,15 @@ }, { "vuid": "VUID-vkCmdWaitEvents-srcStageMask-01164", - "text": " Any pipeline stage included in <code>srcStageMask</code> or <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 &amp;lt;&amp;lt;synchronization-pipeline-stages-supported, table of supported pipeline stages&amp;gt;&amp;gt;." + "text": " Any pipeline stage included in <code>srcStageMask</code> or <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-pMemoryBarriers-01165", - "text": " Each element of <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code> or <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> not have any access flag included in its <code>srcAccessMask</code> member if that bit is not supported by any of the pipeline stages in <code>srcStageMask</code>, as specified in the &amp;lt;&amp;lt;synchronization-access-types-supported, table of supported access types&amp;gt;&amp;gt;." + "text": " Each element of <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code> or <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> not have any access flag included in its <code>srcAccessMask</code> member if that bit is not supported by any 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-pMemoryBarriers-01166", - "text": " Each element of <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code> or <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> not have any access flag included in its <code>dstAccessMask</code> member if that bit is not supported by any of the pipeline stages in <code>dstStageMask</code>, as specified in the &amp;lt;&amp;lt;synchronization-access-types-supported, table of supported access types&amp;gt;&amp;gt;." + "text": " Each element of <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code> or <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> not have any access flag included in its <code>dstAccessMask</code> member if that bit is not supported by any 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-commandBuffer-parameter", @@ -2394,7 +2462,7 @@ }, { "vuid": "VUID-vkCmdWaitEvents-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdWaitEvents-commandBuffer-cmdpool", @@ -2414,49 +2482,47 @@ "vuid": "VUID-vkCmdWaitEvents-commandBuffer-01167", "text": " <code>commandBuffer</code>’s current device mask <strong class=\"purple\">must</strong> include exactly one physical device." } + ], + "(VK_NV_mesh_shader)": [ + { + "vuid": "VUID-vkCmdWaitEvents-srcStageMask-02111", + "text": " If the <a href=\"#features-features-meshShader\">mesh shaders</a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code>" + }, + { + "vuid": "VUID-vkCmdWaitEvents-srcStageMask-02112", + "text": " If the <a href=\"#features-features-taskShader\">task shaders</a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>" + }, + { + "vuid": "VUID-vkCmdWaitEvents-dstStageMask-02113", + "text": " If the <a href=\"#features-features-meshShader\">mesh shaders</a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code>" + }, + { + "vuid": "VUID-vkCmdWaitEvents-dstStageMask-02114", + "text": " If the <a href=\"#features-features-taskShader\">task shaders</a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>" + } ] }, "vkCmdPipelineBarrier": { "core": [ { "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-01168", - "text": " If the &amp;lt;&amp;lt;features-features-geometryShader,geometry shaders&amp;gt;&amp;gt; feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" + "text": " If the <a href=\"#features-features-geometryShader\">geometry shaders</a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" }, { "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-01169", - "text": " If the &amp;lt;&amp;lt;features-features-geometryShader,geometry shaders&amp;gt;&amp;gt; feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" + "text": " If the <a href=\"#features-features-geometryShader\">geometry shaders</a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" }, { "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-01170", - "text": " If the &amp;lt;&amp;lt;features-features-tessellationShader,tessellation shaders&amp;gt;&amp;gt; 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>" + "text": " If the <a href=\"#features-features-tessellationShader\">tessellation shaders</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>" }, { "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-01171", - "text": " If the &amp;lt;&amp;lt;features-features-tessellationShader,tessellation shaders&amp;gt;&amp;gt; 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>" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-pDependencies-01172", - "text": " If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, the render pass <strong class=\"purple\">must</strong> have been created with a <code>VkSubpassDependency</code> instance in <code>pDependencies</code> that expresses a dependency from the current subpass to itself." - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-01173", - "text": " If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, <code>srcStageMask</code> <strong class=\"purple\">must</strong> contain a subset of the bit values in the <code>srcStageMask</code> member of that instance of <code>VkSubpassDependency</code>" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-01174", - "text": " If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, <code>dstStageMask</code> <strong class=\"purple\">must</strong> contain a subset of the bit values in the <code>dstStageMask</code> member of that instance of <code>VkSubpassDependency</code>" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-srcAccessMask-01175", - "text": " If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, the <code>srcAccessMask</code> of any element of <code>pMemoryBarriers</code> or <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> contain a subset of the bit values the <code>srcAccessMask</code> member of that instance of <code>VkSubpassDependency</code>" + "text": " If the <a href=\"#features-features-tessellationShader\">tessellation shaders</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>" }, { - "vuid": "VUID-vkCmdPipelineBarrier-dstAccessMask-01176", - "text": " If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, the <code>dstAccessMask</code> of any element of <code>pMemoryBarriers</code> or <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> contain a subset of the bit values the <code>dstAccessMask</code> member of that instance of <code>VkSubpassDependency</code>" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-dependencyFlags-01177", - "text": " If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, <code>dependencyFlags</code> <strong class=\"purple\">must</strong> be equal to the <code>dependencyFlags</code> member of that instance of <code>VkSubpassDependency</code>" + "vuid": "VUID-vkCmdPipelineBarrier-pDependencies-02285", + "text": " If <code>vkCmdPipelineBarrier</code> is called within a render pass instance, the render pass <strong class=\"purple\">must</strong> have been created with at least one <code>VkSubpassDependency</code> instance in <code>VkRenderPassCreateInfo</code>::<code>pDependencies</code> that expresses a dependency from the current subpass to itself, and for which <code>srcStageMask</code> contains a subset of the bit values in <code>VkSubpassDependency</code>::<code>srcStageMask</code>, <code>dstStageMask</code> contains a subset of the bit values in <code>VkSubpassDependency</code>::<code>dstStageMask</code>, <code>dependencyFlags</code> is equal to <code>VkSubpassDependency</code>::<code>dependencyFlags</code>, <code>srcAccessMask</code> member of each each element of <code>pMemoryBarriers</code> and <code>pImageMemoryBarriers</code> contains a subset of the bit values in <code>VkSubpassDependency</code>::<code>srcAccessMask</code>, and <code>dstAccessMask</code> member of each element of <code>pMemoryBarriers</code> and <code>pImageMemoryBarriers</code> contains a subset of the bit values in <code>VkSubpassDependency</code>::<code>dstAccessMask</code>" }, { "vuid": "VUID-vkCmdPipelineBarrier-bufferMemoryBarrierCount-01178", @@ -2480,15 +2546,15 @@ }, { "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-01183", - "text": " Any pipeline stage included in <code>srcStageMask</code> or <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 &amp;lt;&amp;lt;synchronization-pipeline-stages-supported, table of supported pipeline stages&amp;gt;&amp;gt;." + "text": " Any pipeline stage included in <code>srcStageMask</code> or <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-pMemoryBarriers-01184", - "text": " Each element of <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code> and <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> not have any access flag included in its <code>srcAccessMask</code> member if that bit is not supported by any of the pipeline stages in <code>srcStageMask</code>, as specified in the &amp;lt;&amp;lt;synchronization-access-types-supported, table of supported access types&amp;gt;&amp;gt;." + "text": " Each element of <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code> and <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> not have any access flag included in its <code>srcAccessMask</code> member if that bit is not supported by any 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-pMemoryBarriers-01185", - "text": " Each element of <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code> and <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> not have any access flag included in its <code>dstAccessMask</code> member if that bit is not supported by any of the pipeline stages in <code>dstStageMask</code>, as specified in the &amp;lt;&amp;lt;synchronization-access-types-supported, table of supported access types&amp;gt;&amp;gt;." + "text": " Each element of <code>pMemoryBarriers</code>, <code>pBufferMemoryBarriers</code> and <code>pImageMemoryBarriers</code> <strong class=\"purple\">must</strong> not have any access flag included in its <code>dstAccessMask</code> member if that bit is not supported by any 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-commandBuffer-parameter", @@ -2528,7 +2594,7 @@ }, { "vuid": "VUID-vkCmdPipelineBarrier-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdPipelineBarrier-commandBuffer-cmdpool", @@ -2540,6 +2606,24 @@ "vuid": "VUID-vkCmdPipelineBarrier-dependencyFlags-01186", "text": " If <code>vkCmdPipelineBarrier</code> is called outside of a render pass instance, <code>dependencyFlags</code> <strong class=\"purple\">must</strong> not include <code>VK_DEPENDENCY_VIEW_LOCAL_BIT</code>" } + ], + "(VK_NV_mesh_shader)": [ + { + "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-02115", + "text": " If the <a href=\"#features-features-meshShader\">mesh shaders</a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code>" + }, + { + "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-02116", + "text": " If the <a href=\"#features-features-taskShader\">task shaders</a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>" + }, + { + "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-02117", + "text": " If the <a href=\"#features-features-meshShader\">mesh shaders</a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code>" + }, + { + "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-02118", + "text": " If the <a href=\"#features-features-taskShader\">task shaders</a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>" + } ] }, "VkMemoryBarrier": { @@ -2612,7 +2696,7 @@ }, { "vuid": "VUID-VkBufferMemoryBarrier-buffer-01192", - "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> either both be <code>VK_QUEUE_FAMILY_IGNORED</code>, or both be a valid queue family (see &amp;lt;&amp;lt;devsandqueues-queueprops&amp;gt;&amp;gt;)" + "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> either both be <code>VK_QUEUE_FAMILY_IGNORED</code>, or both be a valid queue family (see <a href=\"#devsandqueues-queueprops\">Queue Family Properties</a>)" } ], "(VK_VERSION_1_1,VK_KHR_external_memory)": [ @@ -2622,7 +2706,7 @@ }, { "vuid": "VUID-VkBufferMemoryBarrier-buffer-01763", - "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, and one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> is <code>VK_QUEUE_FAMILY_IGNORED</code>, the other <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code> or a special queue family reserved for external memory ownership transfers, as described in &amp;lt;&amp;lt;synchronization-queue-transfers&amp;gt;&amp;gt;." + "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, and one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> is <code>VK_QUEUE_FAMILY_IGNORED</code>, the other <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code> or 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-01193", @@ -2630,11 +2714,11 @@ }, { "vuid": "VUID-VkBufferMemoryBarrier-buffer-01764", - "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code> and <code>srcQueueFamilyIndex</code> is not <code>VK_QUEUE_FAMILY_IGNORED</code>, it <strong class=\"purple\">must</strong> be a valid queue family or a special queue family reserved for external memory transfers, as described in &amp;lt;&amp;lt;synchronization-queue-transfers&amp;gt;&amp;gt;." + "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code> and <code>srcQueueFamilyIndex</code> is not <code>VK_QUEUE_FAMILY_IGNORED</code>, it <strong class=\"purple\">must</strong> be a valid queue family or a special queue family reserved for external memory transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>." }, { "vuid": "VUID-VkBufferMemoryBarrier-buffer-01765", - "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code> and <code>dstQueueFamilyIndex</code> is not <code>VK_QUEUE_FAMILY_IGNORED</code>, it <strong class=\"purple\">must</strong> be a valid queue family or a special queue family reserved for external memory transfers, as described in &amp;lt;&amp;lt;synchronization-queue-transfers&amp;gt;&amp;gt;." + "text": " If <code>buffer</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code> and <code>dstQueueFamilyIndex</code> is not <code>VK_QUEUE_FAMILY_IGNORED</code>, it <strong class=\"purple\">must</strong> be a valid queue family or a special queue family reserved for external memory transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>." } ] }, @@ -2740,7 +2824,7 @@ }, { "vuid": "VUID-VkImageMemoryBarrier-image-01200", - "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> either both be <code>VK_QUEUE_FAMILY_IGNORED</code>, or both be a valid queue family (see &amp;lt;&amp;lt;devsandqueues-queueprops&amp;gt;&amp;gt;)." + "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code>, <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> <strong class=\"purple\">must</strong> either both be <code>VK_QUEUE_FAMILY_IGNORED</code>, or both be a valid queue family (see <a href=\"#devsandqueues-queueprops\">Queue Family Properties</a>)." } ], "(VK_VERSION_1_1,VK_KHR_external_memory)": [ @@ -2750,7 +2834,7 @@ }, { "vuid": "VUID-VkImageMemoryBarrier-image-01766", - "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, and one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> is <code>VK_QUEUE_FAMILY_IGNORED</code>, the other <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code> or a special queue family reserved for external memory transfers, as described in &amp;lt;&amp;lt;synchronization-queue-transfers&amp;gt;&amp;gt;." + "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_CONCURRENT</code>, and one of <code>srcQueueFamilyIndex</code> and <code>dstQueueFamilyIndex</code> is <code>VK_QUEUE_FAMILY_IGNORED</code>, the other <strong class=\"purple\">must</strong> be <code>VK_QUEUE_FAMILY_IGNORED</code> or a special queue family reserved for external memory transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>." }, { "vuid": "VUID-VkImageMemoryBarrier-image-01201", @@ -2758,11 +2842,11 @@ }, { "vuid": "VUID-VkImageMemoryBarrier-image-01767", - "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code> and <code>srcQueueFamilyIndex</code> is not <code>VK_QUEUE_FAMILY_IGNORED</code>, it <strong class=\"purple\">must</strong> be a valid queue family or a special queue family reserved for external memory transfers, as described in &amp;lt;&amp;lt;synchronization-queue-transfers&amp;gt;&amp;gt;." + "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code> and <code>srcQueueFamilyIndex</code> is not <code>VK_QUEUE_FAMILY_IGNORED</code>, it <strong class=\"purple\">must</strong> be a valid queue family or a special queue family reserved for external memory transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>." }, { "vuid": "VUID-VkImageMemoryBarrier-image-01768", - "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code> and <code>dstQueueFamilyIndex</code> is not <code>VK_QUEUE_FAMILY_IGNORED</code>, it <strong class=\"purple\">must</strong> be a valid queue family or a special queue family reserved for external memory transfers, as described in &amp;lt;&amp;lt;synchronization-queue-transfers&amp;gt;&amp;gt;." + "text": " If <code>image</code> was created with a sharing mode of <code>VK_SHARING_MODE_EXCLUSIVE</code> and <code>dstQueueFamilyIndex</code> is not <code>VK_QUEUE_FAMILY_IGNORED</code>, it <strong class=\"purple\">must</strong> be a valid queue family or a special queue family reserved for external memory transfers, as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>." } ], "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ @@ -2788,6 +2872,12 @@ "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01659", "text": " If either <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> set" } + ], + "(VK_NV_shading_rate_image)": [ + { + "vuid": "VUID-VkImageMemoryBarrier-oldLayout-02088", + "text": " If either <code>oldLayout</code> or <code>newLayout</code> is <code>VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV</code> then <code>image</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV</code> set" + } ] }, "vkQueueWaitIdle": { @@ -2850,11 +2940,11 @@ }, { "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 &amp;lt;&amp;lt;synchronization-pipeline-stages-types, pipeline&amp;gt;&amp;gt; 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." }, { "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 &amp;lt;&amp;lt;synchronization-pipeline-stages-types, pipeline&amp;gt;&amp;gt; identified by the <code>pipelineBindPoint</code> member of the source 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 source subpass." }, { "vuid": "VUID-VkRenderPassCreateInfo-sType-sType", @@ -2869,8 +2959,8 @@ "text": " Each <code>sType</code> member in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique" }, { - "vuid": "VUID-VkRenderPassCreateInfo-flags-zerobitmask", - "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>" + "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", @@ -3024,6 +3114,12 @@ "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-VkInputAttachmentAspectReferenceKHR-aspectMask-02250", + "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_MEMORY_PLANE</code><em>_i</em>_BIT_EXT for any index <em>i</em>." + } ] }, "VkSubpassDescription": { @@ -3148,19 +3244,19 @@ }, { "vuid": "VUID-VkSubpassDependency-srcStageMask-00860", - "text": " If the &amp;lt;&amp;lt;features-features-geometryShader,geometry shaders&amp;gt;&amp;gt; feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" + "text": " If the <a href=\"#features-features-geometryShader\">geometry shaders</a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" }, { "vuid": "VUID-VkSubpassDependency-dstStageMask-00861", - "text": " If the &amp;lt;&amp;lt;features-features-geometryShader,geometry shaders&amp;gt;&amp;gt; feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" + "text": " If the <a href=\"#features-features-geometryShader\">geometry shaders</a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" }, { "vuid": "VUID-VkSubpassDependency-srcStageMask-00862", - "text": " If the &amp;lt;&amp;lt;features-features-tessellationShader,tessellation shaders&amp;gt;&amp;gt; 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>" + "text": " If the <a href=\"#features-features-tessellationShader\">tessellation shaders</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>" }, { "vuid": "VUID-VkSubpassDependency-dstStageMask-00863", - "text": " If the &amp;lt;&amp;lt;features-features-tessellationShader,tessellation shaders&amp;gt;&amp;gt; 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>" + "text": " If the <a href=\"#features-features-tessellationShader\">tessellation shaders</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>" }, { "vuid": "VUID-VkSubpassDependency-srcSubpass-00864", @@ -3171,20 +3267,24 @@ "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-00866", - "text": " If <code>srcSubpass</code> is equal to <code>dstSubpass</code>, <code>srcStageMask</code> and <code>dstStageMask</code> <strong class=\"purple\">must</strong> only contain one of <code>VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT</code>, <code>VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT</code>, <code>VK_PIPELINE_STAGE_VERTEX_INPUT_BIT</code>, <code>VK_PIPELINE_STAGE_VERTEX_SHADER_BIT</code>, <code>VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT</code>, <code>VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</code>, <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>, <code>VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT</code>, <code>VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT</code>, <code>VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT</code>, <code>VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT</code>, or <code>VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT</code>" + "vuid": "VUID-VkSubpassDependency-srcSubpass-01989", + "text": " If <code>srcSubpass</code> is equal to <code>dstSubpass</code>, <code>srcStageMask</code> and <code>dstStageMask</code> <strong class=\"purple\">must</strong> not set any bits that are neither <code>VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT</code>, nor one of the <a href=\"#synchronization-pipeline-stages-types\">graphics pipeline stages</a>" }, { "vuid": "VUID-VkSubpassDependency-srcSubpass-00867", - "text": " If <code>srcSubpass</code> is equal to <code>dstSubpass</code> and not all of the stages in <code>srcStageMask</code> and <code>dstStageMask</code> are &amp;lt;&amp;lt;synchronization-framebuffer-regions,framebuffer-space stages&amp;gt;&amp;gt;, the &amp;lt;&amp;lt;synchronization-pipeline-stages-order, logically latest&amp;gt;&amp;gt; pipeline stage in <code>srcStageMask</code> <strong class=\"purple\">must</strong> be &amp;lt;&amp;lt;synchronization-pipeline-stages-order, logically earlier&amp;gt;&amp;gt; than or equal to the &amp;lt;&amp;lt;synchronization-pipeline-stages-order, logically earliest&amp;gt;&amp;gt; pipeline stage in <code>dstStageMask</code>" + "text": " If <code>srcSubpass</code> is equal to <code>dstSubpass</code> and not all of the stages in <code>srcStageMask</code> and <code>dstStageMask</code> are <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stages</a>, the <a href=\"#synchronization-pipeline-stages-order\">logically latest</a> pipeline stage in <code>srcStageMask</code> <strong class=\"purple\">must</strong> be <a href=\"#synchronization-pipeline-stages-order\">logically earlier</a> than or equal to the <a href=\"#synchronization-pipeline-stages-order\">logically earliest</a> pipeline stage in <code>dstStageMask</code>" }, { "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 &amp;lt;&amp;lt;synchronization-access-types-supported, table of supported access types&amp;gt;&amp;gt;." + "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 &amp;lt;&amp;lt;synchronization-access-types-supported, table of supported access types&amp;gt;&amp;gt;." + "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", @@ -3228,6 +3328,424 @@ "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>" } + ], + "(VK_NV_mesh_shader)": [ + { + "vuid": "VUID-VkSubpassDependency-srcStageMask-02099", + "text": " If the <a href=\"#features-features-meshShader\">mesh shaders</a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code>" + }, + { + "vuid": "VUID-VkSubpassDependency-srcStageMask-02100", + "text": " If the <a href=\"#features-features-taskShader\">task shaders</a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>" + }, + { + "vuid": "VUID-VkSubpassDependency-dstStageMask-02101", + "text": " If the <a href=\"#features-features-meshShader\">mesh shaders</a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code>" + }, + { + "vuid": "VUID-VkSubpassDependency-dstStageMask-02102", + "text": " If the <a href=\"#features-features-taskShader\">task shaders</a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>" + } + ] + }, + "vkCreateRenderPass2KHR": { + "(VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-vkCreateRenderPass2KHR-device-parameter", + "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <code>VkDevice</code> handle" + }, + { + "vuid": "VUID-vkCreateRenderPass2KHR-pCreateInfo-parameter", + "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>VkRenderPassCreateInfo2KHR</code> structure" + }, + { + "vuid": "VUID-vkCreateRenderPass2KHR-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 <code>VkAllocationCallbacks</code> structure" + }, + { + "vuid": "VUID-vkCreateRenderPass2KHR-pRenderPass-parameter", + "text": " <code>pRenderPass</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>VkRenderPass</code> handle" + } + ] + }, + "VkRenderPassCreateInfo2KHR": { + "(VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-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" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-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>VkAttachmentDescription2KHR</code> structures describing them <strong class=\"purple\">must</strong> include <code>VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT</code> in <code>flags</code>" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-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>, it <strong class=\"purple\">must</strong> be less than <code>attachmentCount</code>" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-pPreserveAttachments-03052", + "text": " The value of any element of the <code>pPreserveAttachments</code> member in any given element of <code>pSubpasses</code> <strong class=\"purple\">must</strong> not be <code>VK_ATTACHMENT_UNUSED</code>" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-pAttachments-03053", + "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>." + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-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." + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-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 source subpass." + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-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>" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-viewMask-03057", + "text": " If the <a href=\"#VkSubpassDescription2KHR\">VkSubpassDescription2KHR</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>" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-viewMask-03058", + "text": " The <a href=\"#VkSubpassDescription2KHR\">VkSubpassDescription2KHR</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>" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-viewMask-03059", + "text": " If the <a href=\"#VkSubpassDescription2KHR\">VkSubpassDescription2KHR</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>" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-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>" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR</code>" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-pNext-pNext", + "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-flags-parameter", + "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkRenderPassCreateFlagBits\">VkRenderPassCreateFlagBits</a> values" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-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 <code>VkAttachmentDescription2KHR</code> structures" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-pSubpasses-parameter", + "text": " <code>pSubpasses</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>subpassCount</code> valid <code>VkSubpassDescription2KHR</code> structures" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-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 <code>VkSubpassDependency2KHR</code> structures" + }, + { + "vuid": "VUID-VkRenderPassCreateInfo2KHR-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-VkRenderPassCreateInfo2KHR-subpassCount-arraylength", + "text": " <code>subpassCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" + } + ] + }, + "VkAttachmentDescription2KHR": { + "(VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-VkAttachmentDescription2KHR-finalLayout-03061", + "text": " <code>finalLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>" + }, + { + "vuid": "VUID-VkAttachmentDescription2KHR-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR</code>" + }, + { + "vuid": "VUID-VkAttachmentDescription2KHR-flags-parameter", + "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAttachmentDescriptionFlagBits\">VkAttachmentDescriptionFlagBits</a> values" + }, + { + "vuid": "VUID-VkAttachmentDescription2KHR-format-parameter", + "text": " <code>format</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value" + }, + { + "vuid": "VUID-VkAttachmentDescription2KHR-samples-parameter", + "text": " <code>samples</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value" + }, + { + "vuid": "VUID-VkAttachmentDescription2KHR-loadOp-parameter", + "text": " <code>loadOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentLoadOp\">VkAttachmentLoadOp</a> value" + }, + { + "vuid": "VUID-VkAttachmentDescription2KHR-storeOp-parameter", + "text": " <code>storeOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentStoreOp\">VkAttachmentStoreOp</a> value" + }, + { + "vuid": "VUID-VkAttachmentDescription2KHR-stencilLoadOp-parameter", + "text": " <code>stencilLoadOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentLoadOp\">VkAttachmentLoadOp</a> value" + }, + { + "vuid": "VUID-VkAttachmentDescription2KHR-stencilStoreOp-parameter", + "text": " <code>stencilStoreOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAttachmentStoreOp\">VkAttachmentStoreOp</a> value" + }, + { + "vuid": "VUID-VkAttachmentDescription2KHR-initialLayout-parameter", + "text": " <code>initialLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value" + }, + { + "vuid": "VUID-VkAttachmentDescription2KHR-finalLayout-parameter", + "text": " <code>finalLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value" + } + ] + }, + "VkSubpassDescription2KHR": { + "(VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-VkSubpassDescription2KHR-pipelineBindPoint-03062", + "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-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-VkSubpassDescription2KHR-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-VkSubpassDescription2KHR-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-VkSubpassDescription2KHR-pResolveAttachments-03066", + "text": " If <code>pResolveAttachments</code> is not <code>NULL</code>, the sample count of each element of <code>pColorAttachments</code> <strong class=\"purple\">must</strong> be anything other than <code>VK_SAMPLE_COUNT_1_BIT</code>" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-pResolveAttachments-03067", + "text": " Any given element of <code>pResolveAttachments</code> <strong class=\"purple\">must</strong> have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-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-VkSubpassDescription2KHR-pColorAttachments-03069", + "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" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-None-03072", + "text": " If any input attachments are <code>VK_ATTACHMENT_UNUSED</code>, then any pipelines bound during the subpass <strong class=\"purple\">must</strong> not access those input attachments from the fragment shader" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-attachment-03073", + "text": " The <code>attachment</code> member of any element of <code>pPreserveAttachments</code> <strong class=\"purple\">must</strong> not be <code>VK_ATTACHMENT_UNUSED</code>" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-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-VkSubpassDescription2KHR-layout-03075", + "text": " If any attachment is used as both an input attachment and a color or depth/stencil attachment, then each use <strong class=\"purple\">must</strong> use the same <code>layout</code>" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-aspectMask-03175", + "text": " The <code>aspectMask</code> member of any element of <code>pInputAttachments</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a>" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-aspectMask-03176", + "text": " The <code>aspectMask</code> member of any element of <code>pInputAttachments</code> <strong class=\"purple\">must</strong> not be <code>0</code>" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR</code>" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-flags-parameter", + "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSubpassDescriptionFlagBits\">VkSubpassDescriptionFlagBits</a> values" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-pipelineBindPoint-parameter", + "text": " <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-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 <code>VkAttachmentReference2KHR</code> structures" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-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 <code>VkAttachmentReference2KHR</code> structures" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-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 <code>VkAttachmentReference2KHR</code> structures" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-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 <code>VkAttachmentReference2KHR</code> structure" + }, + { + "vuid": "VUID-VkSubpassDescription2KHR-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_KHR_create_renderpass2)+(VK_AMD_mixed_attachment_samples)": [ + { + "vuid": "VUID-VkSubpassDescription2KHR-pColorAttachments-03070", + "text": " 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_KHR_create_renderpass2)+!(VK_AMD_mixed_attachment_samples)+!(VK_NV_framebuffer_mixed_samples)": [ + { + "vuid": "VUID-VkSubpassDescription2KHR-pDepthStencilAttachment-03071", + "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" + } + ], + "(VK_KHR_create_renderpass2)+(VK_NVX_multiview_per_view_attributes)": [ + { + "vuid": "VUID-VkSubpassDescription2KHR-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>." + } + ] + }, + "VkAttachmentReference2KHR": { + "(VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-VkAttachmentReference2KHR-layout-03077", + "text": " <code>layout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>" + }, + { + "vuid": "VUID-VkAttachmentReference2KHR-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR</code>" + }, + { + "vuid": "VUID-VkAttachmentReference2KHR-layout-parameter", + "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value" + } + ] + }, + "VkSubpassDependency2KHR": { + "(VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-VkSubpassDependency2KHR-srcSubpass-03078", + "text": " If <code>srcSubpass</code> is not <code>VK_SUBPASS_EXTERNAL</code>, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_STAGE_HOST_BIT</code>" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-dstSubpass-03079", + "text": " If <code>dstSubpass</code> is not <code>VK_SUBPASS_EXTERNAL</code>, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_STAGE_HOST_BIT</code>" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-srcStageMask-03080", + "text": " If the <a href=\"#features-features-geometryShader\">geometry shaders</a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-dstStageMask-03081", + "text": " If the <a href=\"#features-features-geometryShader\">geometry shaders</a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</code>" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-srcStageMask-03082", + "text": " If the <a href=\"#features-features-tessellationShader\">tessellation shaders</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>" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-dstStageMask-03083", + "text": " If the <a href=\"#features-features-tessellationShader\">tessellation shaders</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>" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-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-VkSubpassDependency2KHR-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-VkSubpassDependency2KHR-srcSubpass-02244", + "text": " If <code>srcSubpass</code> is equal to <code>dstSubpass</code>, <code>srcStageMask</code> and <code>dstStageMask</code> <strong class=\"purple\">must</strong> not set any bits that are neither <code>VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT</code>, nor one of the <a href=\"#synchronization-pipeline-stages-types\">graphics pipeline stages</a>" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-srcSubpass-03087", + "text": " If <code>srcSubpass</code> is equal to <code>dstSubpass</code> and not all of the stages in <code>srcStageMask</code> and <code>dstStageMask</code> are <a href=\"#synchronization-framebuffer-regions\">framebuffer-space stages</a>, the <a href=\"#synchronization-pipeline-stages-order\">logically latest</a> pipeline stage in <code>srcStageMask</code> <strong class=\"purple\">must</strong> be <a href=\"#synchronization-pipeline-stages-order\">logically earlier</a> than or equal to the <a href=\"#synchronization-pipeline-stages-order\">logically earliest</a> pipeline stage in <code>dstStageMask</code>" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-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-VkSubpassDependency2KHR-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-VkSubpassDependency2KHR-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-VkSubpassDependency2KHR-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-VkSubpassDependency2KHR-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-VkSubpassDependency2KHR-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-VkSubpassDependency2KHR-viewOffset-03093", + "text": " If <code>viewOffset</code> is not <code>0</code>, <code>srcSubpass</code> <strong class=\"purple\">must</strong> not be equal to <code>dstSubpass</code>." + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR</code>" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-srcStageMask-parameter", + "text": " <code>srcStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-srcStageMask-requiredbitmask", + "text": " <code>srcStageMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-dstStageMask-parameter", + "text": " <code>dstStageMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineStageFlagBits\">VkPipelineStageFlagBits</a> values" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-dstStageMask-requiredbitmask", + "text": " <code>dstStageMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-srcAccessMask-parameter", + "text": " <code>srcAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits\">VkAccessFlagBits</a> values" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-dstAccessMask-parameter", + "text": " <code>dstAccessMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkAccessFlagBits\">VkAccessFlagBits</a> values" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-dependencyFlags-parameter", + "text": " <code>dependencyFlags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkDependencyFlagBits\">VkDependencyFlagBits</a> values" + } + ], + "(VK_KHR_create_renderpass2)+(VK_NV_mesh_shader)": [ + { + "vuid": "VUID-VkSubpassDependency2KHR-srcStageMask-02103", + "text": " If the <a href=\"#features-features-meshShader\">mesh shaders</a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code>" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-srcStageMask-02104", + "text": " If the <a href=\"#features-features-taskShader\">task shaders</a> feature is not enabled, <code>srcStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-dstStageMask-02105", + "text": " If the <a href=\"#features-features-meshShader\">mesh shaders</a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV</code>" + }, + { + "vuid": "VUID-VkSubpassDependency2KHR-dstStageMask-02106", + "text": " If the <a href=\"#features-features-taskShader\">task shaders</a> feature is not enabled, <code>dstStageMask</code> <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV</code>" + } ] }, "vkDestroyRenderPass": { @@ -3448,7 +3966,7 @@ }, { "vuid": "VUID-vkCmdBeginRenderPass-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdBeginRenderPass-commandBuffer-cmdpool", @@ -3476,6 +3994,74 @@ } ] }, + "vkCmdBeginRenderPass2KHR": { + "(VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-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 subresource of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code> set" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-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 subresource of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</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> set" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-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 subresource of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_SRC_BIT</code> set" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-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 subresource of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_TRANSFER_DST_BIT</code> set" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-initialLayout-03100", + "text": " If any of the <code>initialLayout</code> members 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-vkCmdBeginRenderPass2KHR-srcStageMask-03101", + "text": " The <code>srcStageMask</code> and <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-vkCmdBeginRenderPass2KHR-commandBuffer-parameter", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-pRenderPassBegin-parameter", + "text": " <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>VkRenderPassBeginInfo</code> structure" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-pSubpassBeginInfo-parameter", + "text": " <code>pSubpassBeginInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>VkSubpassBeginInfoKHR</code> structure" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-commandBuffer-recording", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-commandBuffer-cmdpool", + "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-renderpass", + "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance" + }, + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-bufferlevel", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>" + } + ], + "(VK_KHR_create_renderpass2)+!(VK_KHR_maintenance2)": [ + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-initialLayout-03095", + "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 subresource of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set" + } + ], + "(VK_KHR_create_renderpass2)+(VK_KHR_maintenance2)": [ + { + "vuid": "VUID-vkCmdBeginRenderPass2KHR-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 subresource of the framebuffer specified in the <code>framebuffer</code> member of <code>pRenderPassBegin</code> <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code> set" + } + ] + }, "VkRenderPassBeginInfo": { "core": [ { @@ -3488,7 +4074,7 @@ }, { "vuid": "VUID-VkRenderPassBeginInfo-renderPass-00904", - "text": " <code>renderPass</code> <strong class=\"purple\">must</strong> be &amp;lt;&amp;lt;renderpass-compatibility,compatible&amp;gt;&amp;gt; with the <code>renderPass</code> member of the <code>VkFramebufferCreateInfo</code> 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 <code>VkFramebufferCreateInfo</code> structure specified when creating <code>framebuffer</code>." }, { "vuid": "VUID-VkRenderPassBeginInfo-sType-sType", @@ -3556,6 +4142,22 @@ } ] }, + "VkSubpassBeginInfoKHR": { + "(VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-VkSubpassBeginInfoKHR-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR</code>" + }, + { + "vuid": "VUID-VkSubpassBeginInfoKHR-pNext-pNext", + "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" + }, + { + "vuid": "VUID-VkSubpassBeginInfoKHR-contents-parameter", + "text": " <code>contents</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSubpassContents\">VkSubpassContents</a> value" + } + ] + }, "VkDeviceGroupRenderPassBeginInfo": { "(VK_VERSION_1_1,VK_KHR_device_group)": [ { @@ -3620,7 +4222,7 @@ }, { "vuid": "VUID-vkCmdNextSubpass-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdNextSubpass-commandBuffer-cmdpool", @@ -3636,6 +4238,42 @@ } ] }, + "vkCmdNextSubpass2KHR": { + "(VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-vkCmdNextSubpass2KHR-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" + }, + { + "vuid": "VUID-vkCmdNextSubpass2KHR-commandBuffer-parameter", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" + }, + { + "vuid": "VUID-vkCmdNextSubpass2KHR-pSubpassBeginInfo-parameter", + "text": " <code>pSubpassBeginInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>VkSubpassBeginInfoKHR</code> structure" + }, + { + "vuid": "VUID-vkCmdNextSubpass2KHR-pSubpassEndInfo-parameter", + "text": " <code>pSubpassEndInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>VkSubpassEndInfoKHR</code> structure" + }, + { + "vuid": "VUID-vkCmdNextSubpass2KHR-commandBuffer-recording", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" + }, + { + "vuid": "VUID-vkCmdNextSubpass2KHR-commandBuffer-cmdpool", + "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations" + }, + { + "vuid": "VUID-vkCmdNextSubpass2KHR-renderpass", + "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance" + }, + { + "vuid": "VUID-vkCmdNextSubpass2KHR-bufferlevel", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>" + } + ] + }, "vkCmdEndRenderPass": { "core": [ { @@ -3648,7 +4286,7 @@ }, { "vuid": "VUID-vkCmdEndRenderPass-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdEndRenderPass-commandBuffer-cmdpool", @@ -3664,6 +4302,50 @@ } ] }, + "vkCmdEndRenderPass2KHR": { + "(VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-vkCmdEndRenderPass2KHR-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" + }, + { + "vuid": "VUID-vkCmdEndRenderPass2KHR-commandBuffer-parameter", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" + }, + { + "vuid": "VUID-vkCmdEndRenderPass2KHR-pSubpassEndInfo-parameter", + "text": " <code>pSubpassEndInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>VkSubpassEndInfoKHR</code> structure" + }, + { + "vuid": "VUID-vkCmdEndRenderPass2KHR-commandBuffer-recording", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" + }, + { + "vuid": "VUID-vkCmdEndRenderPass2KHR-commandBuffer-cmdpool", + "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations" + }, + { + "vuid": "VUID-vkCmdEndRenderPass2KHR-renderpass", + "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance" + }, + { + "vuid": "VUID-vkCmdEndRenderPass2KHR-bufferlevel", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a primary <code>VkCommandBuffer</code>" + } + ] + }, + "VkSubpassEndInfoKHR": { + "(VK_KHR_create_renderpass2)": [ + { + "vuid": "VUID-VkSubpassEndInfoKHR-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR</code>" + }, + { + "vuid": "VUID-VkSubpassEndInfoKHR-pNext-pNext", + "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" + } + ] + }, "vkCreateShaderModule": { "core": [ { @@ -3696,11 +4378,11 @@ }, { "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 &amp;lt;&amp;lt;spirvenv-module-validation, Capabilities&amp;gt;&amp;gt; section of the &amp;lt;&amp;lt;spirvenv-capabilities,SPIR-V Environment&amp;gt;&amp;gt; appendix" + "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-01091", - "text": " If <code>pCode</code> declares any of the capabilities listed as <strong class=\"purple\">optional</strong> in the &amp;lt;&amp;lt;spirvenv-capabilities-table,SPIR-V Environment&amp;gt;&amp;gt; appendix, the corresponding feature(s) <strong class=\"purple\">must</strong> be enabled." + "text": " If <code>pCode</code> declares any of the capabilities listed as <strong class=\"purple\">optional</strong> in the <a href=\"#spirvenv-capabilities-table\">SPIR-V Environment</a> appendix, the corresponding feature(s) <strong class=\"purple\">must</strong> be enabled." }, { "vuid": "VUID-VkShaderModuleCreateInfo-sType-sType", @@ -3726,11 +4408,11 @@ }, { "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 &amp;lt;&amp;lt;spirv-spec,Khronos SPIR-V Specification&amp;gt;&amp;gt;" + "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 &amp;lt;&amp;lt;spirvenv-module-validation, Validation Rules within a Module&amp;gt;&amp;gt; section of the &amp;lt;&amp;lt;spirvenv-capabilities,SPIR-V Environment&amp;gt;&amp;gt; appendix" + "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)": [ @@ -3744,7 +4426,7 @@ }, { "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01378", - "text": " If <code>pCode</code> points to SPIR-V code, that code <strong class=\"purple\">must</strong> adhere to the validation rules described by the &amp;lt;&amp;lt;spirvenv-module-validation, Validation Rules within a Module&amp;gt;&amp;gt; section of the &amp;lt;&amp;lt;spirvenv-capabilities,SPIR-V Environment&amp;gt;&amp;gt; appendix" + "text": " If <code>pCode</code> points 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-01379", @@ -3988,11 +4670,11 @@ }, { "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 &amp;lt;&amp;lt;interfaces,Shader Interfaces&amp;gt;&amp;gt; chapter" + "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-00703", - "text": " <code>layout</code> <strong class=\"purple\">must</strong> be &amp;lt;&amp;lt;descriptorsets-pipelinelayout-consistency,consistent&amp;gt;&amp;gt; with the layout of the compute shader specified in <code>stage</code>" + "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-01687", @@ -4028,11 +4710,11 @@ "core": [ { "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00704", - "text": " If the &amp;lt;&amp;lt;features-features-geometryShader,geometry shaders&amp;gt;&amp;gt; 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-features-geometryShader\">geometry shaders</a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00705", - "text": " If the &amp;lt;&amp;lt;features-features-tessellationShader,tessellation shaders&amp;gt;&amp;gt; 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-features-tessellationShader\">tessellation shaders</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>" }, { "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00706", @@ -4119,6 +4801,24 @@ "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 <code>VkSpecializationInfo</code> structure" } ], + "(VK_NV_mesh_shader)": [ + { + "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02091", + "text": " If the <a href=\"#features-features-meshShader\">mesh shader</a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_MESH_BIT_NV</code>" + }, + { + "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02092", + "text": " If the <a href=\"#features-features-taskShader\">task shader</a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_TASK_BIT_NV</code>" + }, + { + "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02093", + "text": " If <code>stage</code> is <code>VK_SHADER_STAGE_MESH_BIT_NV</code>, the identified entry point <strong class=\"purple\">must</strong> have an <code>OpExecutionMode</code> instruction that specifies a maximum output vertex count, <code>OutputVertices</code>, that is greater than <code>0</code> and less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesNV</code>::<code>maxMeshOutputVertices</code>." + }, + { + "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02094", + "text": " If <code>stage</code> is <code>VK_SHADER_STAGE_MESH_BIT_NV</code>, the identified entry point <strong class=\"purple\">must</strong> have an <code>OpExecutionMode</code> instruction that specifies a maximum output primitive count, <code>OutputPrimitivesNV</code>, that is greater than <code>0</code> and less than or equal to <code>VkPhysicalDeviceMeshShaderPropertiesNV</code>::<code>maxMeshOutputPrimitives</code>." + } + ], "(VK_EXT_shader_stencil_export)": [ { "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-01511", @@ -4189,10 +4889,6 @@ "text": " The <code>stage</code> member of each element of <code>pStages</code> <strong class=\"purple\">must</strong> be unique" }, { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-stage-00727", - "text": " 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>" - }, - { "vuid": "VUID-VkGraphicsPipelineCreateInfo-stage-00728", "text": " The <code>stage</code> member of each element of <code>pStages</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_COMPUTE_BIT</code>" }, @@ -4234,11 +4930,11 @@ }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00738", - "text": " If <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 that specifies an input primitive type that is &amp;lt;&amp;lt;shaders-geometry-execution, compatible&amp;gt;&amp;gt; with the primitive topology specified in <code>pInputAssembly</code>" + "text": " If <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 that specifies 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 <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 that specifies an input primitive type that is &amp;lt;&amp;lt;shaders-geometry-execution, compatible&amp;gt;&amp;gt; with the primitive topology that is output by the tessellation stages" + "text": " If <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 that specifies 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", @@ -4250,11 +4946,11 @@ }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00742", - "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 &amp;lt;&amp;lt;interfaces,Shader Interfaces&amp;gt;&amp;gt; chapter" + "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-VkGraphicsPipelineCreateInfo-subpass-00745", - "text": " If rasterization is not disabled and the subpass uses color attachments, then for each color attachment in the subpass the <code>blendEnable</code> member of the corresponding element of the <code>pAttachment</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code> if the <code>format</code> of the attachment does not support color blend operations, as specified by the <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code>" + "vuid": "VUID-VkGraphicsPipelineCreateInfo-blendEnable-02023", + "text": " If rasterization is not disabled and the subpass uses color attachments, then for each color attachment in the subpass the <code>blendEnable</code> member of the corresponding element of the <code>pAttachment</code> member of <code>pColorBlendState</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code> if the attached image’s <a href=\"#resources-image-format-features\">format features</a> does not contain the <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT</code>." }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-attachmentCount-00746", @@ -4262,7 +4958,7 @@ }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00747", - "text": " If 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</code>::<code>viewportCount</code> <code>VkViewport</code> structures" + "text": " If 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</code>::<code>viewportCount</code> valid <code>VkViewport</code> structures" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00748", @@ -4294,11 +4990,11 @@ }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-00756", - "text": " <code>layout</code> <strong class=\"purple\">must</strong> be &amp;lt;&amp;lt;descriptorsets-pipelinelayout-consistency,consistent&amp;gt;&amp;gt; with all shaders specified in <code>pStages</code>" + "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 <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 &amp;lt;&amp;lt;renderpass-noattachments, zero-attachment subpass&amp;gt;&amp;gt;" + "text": " If <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-subpass-00759", @@ -4309,12 +5005,24 @@ "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-02097", + "text": " If <code>pStages</code> includes a vertex shader stage, <code>pVertexInputState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineVertexInputStateCreateInfo\">VkPipelineVertexInputStateCreateInfo</a> structure" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02098", + "text": " If <code>pStages</code> includes a vertex shader stage, <code>pInputAssemblyState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a> structure" + }, + { "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": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</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=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a> or <a href=\"#VkPipelineRepresentativeFragmentTestStateCreateInfoNV\">VkPipelineRepresentativeFragmentTestStateCreateInfoNV</a>" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-sType-unique", + "text": " Each <code>sType</code> member in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-parameter", @@ -4325,14 +5033,6 @@ "text": " <code>pStages</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stageCount</code> valid <code>VkPipelineShaderStageCreateInfo</code> structures" }, { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-parameter", - "text": " <code>pVertexInputState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>VkPipelineVertexInputStateCreateInfo</code> structure" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pInputAssemblyState-parameter", - "text": " <code>pInputAssemblyState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>VkPipelineInputAssemblyStateCreateInfo</code> structure" - }, - { "vuid": "VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-parameter", "text": " <code>pRasterizationState</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>VkPipelineRasterizationStateCreateInfo</code> structure" }, @@ -4357,6 +5057,22 @@ "text": " Each of <code>basePipelineHandle</code>, <code>layout</code>, and <code>renderPass</code> that are valid handles <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <code>VkDevice</code>" } ], + "!(VK_NV_mesh_shader)": [ + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-stage-00727", + "text": " 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)": [ + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02095", + "text": " 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_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</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_GEOEMETRY_BIT</code>)." + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-stage-02096", + "text": " 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_NV</code>." + } + ], "!(VK_VERSION_1_1,VK_KHR_maintenance2)": [ { "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-00743", @@ -4484,11 +5200,7 @@ }, { "vuid": "VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-parameter", - "text": " <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" - }, - { - "vuid": "VUID-VkPipelineDynamicStateCreateInfo-dynamicStateCount-arraylength", - "text": " <code>dynamicStateCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" + "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" } ] }, @@ -4667,7 +5379,7 @@ "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>" }, { - "vuid": "VUID-VkSpecializationInfo-mapEntryCount-00775", + "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 <code>VkSpecializationMapEntry</code> structures" }, { @@ -4704,7 +5416,7 @@ }, { "vuid": "VUID-vkCmdBindPipeline-pipeline-00781", - "text": " If the &amp;lt;&amp;lt;features-features-variableMultisampleRate,variable multisample rate&amp;gt;&amp;gt; feature is not supported, <code>pipeline</code> is a graphics pipeline, the current subpass has no attachments, 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-features-variableMultisampleRate\">variable multisample rate</a> feature is not supported, <code>pipeline</code> is a graphics pipeline, the current subpass has no attachments, 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" }, { "vuid": "VUID-vkCmdBindPipeline-commandBuffer-parameter", @@ -4720,7 +5432,7 @@ }, { "vuid": "VUID-vkCmdBindPipeline-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdBindPipeline-commandBuffer-cmdpool", @@ -4770,6 +5482,122 @@ } ] }, + "vkCreateRaytracingPipelinesNVX": { + "(VK_NVX_raytracing)": [ + { + "vuid": "VUID-vkCreateRaytracingPipelinesNVX-device-parameter", + "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <code>VkDevice</code> handle" + }, + { + "vuid": "VUID-vkCreateRaytracingPipelinesNVX-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 <code>VkPipelineCache</code> handle" + }, + { + "vuid": "VUID-vkCreateRaytracingPipelinesNVX-pCreateInfos-parameter", + "text": " <code>pCreateInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> valid <code>VkRaytracingPipelineCreateInfoNVX</code> structures" + }, + { + "vuid": "VUID-vkCreateRaytracingPipelinesNVX-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 <code>VkAllocationCallbacks</code> structure" + }, + { + "vuid": "VUID-vkCreateRaytracingPipelinesNVX-pPipelines-parameter", + "text": " <code>pPipelines</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>createInfoCount</code> <code>VkPipeline</code> handles" + }, + { + "vuid": "VUID-vkCreateRaytracingPipelinesNVX-createInfoCount-arraylength", + "text": " <code>createInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" + }, + { + "vuid": "VUID-vkCreateRaytracingPipelinesNVX-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>" + } + ] + }, + "VkRaytracingPipelineCreateInfoNVX": { + "(VK_NVX_raytracing)": [ + { + "vuid": "VUID-VkRaytracingPipelineCreateInfoNVX-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RAYTRACING_PIPELINE_CREATE_INFO_NVX</code>" + }, + { + "vuid": "VUID-VkRaytracingPipelineCreateInfoNVX-pNext-pNext", + "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" + }, + { + "vuid": "VUID-VkRaytracingPipelineCreateInfoNVX-flags-parameter", + "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkPipelineCreateFlagBits\">VkPipelineCreateFlagBits</a> values" + }, + { + "vuid": "VUID-VkRaytracingPipelineCreateInfoNVX-pStages-parameter", + "text": " <code>pStages</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stageCount</code> valid <code>VkPipelineShaderStageCreateInfo</code> structures" + }, + { + "vuid": "VUID-VkRaytracingPipelineCreateInfoNVX-pGroupNumbers-parameter", + "text": " <code>pGroupNumbers</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>stageCount</code> <code>uint32_t</code> values" + }, + { + "vuid": "VUID-VkRaytracingPipelineCreateInfoNVX-layout-parameter", + "text": " <code>layout</code> <strong class=\"purple\">must</strong> be a valid <code>VkPipelineLayout</code> handle" + }, + { + "vuid": "VUID-VkRaytracingPipelineCreateInfoNVX-stageCount-arraylength", + "text": " <code>stageCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" + }, + { + "vuid": "VUID-VkRaytracingPipelineCreateInfoNVX-commonparent", + "text": " Both of <code>basePipelineHandle</code>, and <code>layout</code> that are valid handles <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <code>VkDevice</code>" + } + ] + }, + "vkGetRaytracingShaderHandlesNVX": { + "(VK_NVX_raytracing)": [ + { + "vuid": "VUID-vkGetRaytracingShaderHandlesNVX-device-parameter", + "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <code>VkDevice</code> handle" + }, + { + "vuid": "VUID-vkGetRaytracingShaderHandlesNVX-pipeline-parameter", + "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <code>VkPipeline</code> handle" + }, + { + "vuid": "VUID-vkGetRaytracingShaderHandlesNVX-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-vkGetRaytracingShaderHandlesNVX-dataSize-arraylength", + "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" + }, + { + "vuid": "VUID-vkGetRaytracingShaderHandlesNVX-pipeline-parent", + "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>" + } + ] + }, + "vkCompileDeferredNVX": { + "(VK_NVX_raytracing)": [ + { + "vuid": "VUID-vkCompileDeferredNVX-pipeline-02237", + "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> have been created with VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NVX." + }, + { + "vuid": "VUID-vkCompileDeferredNVX-shader-02238", + "text": " <code>shader</code> <strong class=\"purple\">must</strong> not have been called as a deferred compile before." + }, + { + "vuid": "VUID-vkCompileDeferredNVX-device-parameter", + "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <code>VkDevice</code> handle" + }, + { + "vuid": "VUID-vkCompileDeferredNVX-pipeline-parameter", + "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> be a valid <code>VkPipeline</code> handle" + }, + { + "vuid": "VUID-vkCompileDeferredNVX-pipeline-parent", + "text": " <code>pipeline</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>" + } + ] + }, "VkAllocationCallbacks": { "core": [ { @@ -4830,11 +5658,11 @@ "core": [ { "vuid": "VUID-vkAllocateMemory-pAllocateInfo-01713", - "text": " <code>pAllocateInfo</code>\\-&amp;gt;<code>allocationSize</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMemoryProperties\">VkPhysicalDeviceMemoryProperties</a>::<code>memoryHeaps</code>[<code>pAllocateInfo</code>\\-&amp;gt;<code>memoryTypeIndex</code>].<code>size</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</code>-><code>allocationSize</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceMemoryProperties\">VkPhysicalDeviceMemoryProperties</a>::<code>memoryHeaps</code>[<code>pAllocateInfo</code>-><code>memoryTypeIndex</code>].<code>size</code> as returned by <a href=\"#vkGetPhysicalDeviceMemoryProperties\">vkGetPhysicalDeviceMemoryProperties</a> for the <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> that <code>device</code> was created from." }, { "vuid": "VUID-vkAllocateMemory-pAllocateInfo-01714", - "text": " <code>pAllocateInfo</code>\\-&amp;gt;<code>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</code>-><code>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." }, { "vuid": "VUID-vkAllocateMemory-device-parameter", @@ -4936,7 +5764,7 @@ "(VK_ANDROID_external_memory_android_hardware_buffer)": [ { "vuid": "VUID-VkMemoryAllocateInfo-None-01873", - "text": " If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BIT_ANDROID</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>:" }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-01874", @@ -5250,11 +6078,11 @@ }, { "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 &amp;lt;&amp;lt;external-memory-handle-types-compatibility&amp;gt;&amp;gt;." + "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>." }, { "vuid": "VUID-VkImportMemoryFdInfoKHR-fd-01520", - "text": " <code>fd</code> <strong class=\"purple\">must</strong> obey any requirements listed for <code>handleType</code> in &amp;lt;&amp;lt;external-memory-handle-types-compatibility,external memory handle types compatibility&amp;gt;&amp;gt;." + "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>." }, { "vuid": "VUID-VkImportMemoryFdInfoKHR-sType-sType", @@ -5840,15 +6668,15 @@ }, { "vuid": "VUID-VkBufferCreateInfo-flags-00915", - "text": " If the &amp;lt;&amp;lt;features-features-sparseBinding,sparse bindings&amp;gt;&amp;gt; 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-features-sparseBinding\">sparse bindings</a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_BUFFER_CREATE_SPARSE_BINDING_BIT</code>" }, { "vuid": "VUID-VkBufferCreateInfo-flags-00916", - "text": " If the &amp;lt;&amp;lt;features-features-sparseResidencyBuffer,sparse buffer residency&amp;gt;&amp;gt; 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-features-sparseResidencyBuffer\">sparse buffer residency</a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code>" }, { "vuid": "VUID-VkBufferCreateInfo-flags-00917", - "text": " If the &amp;lt;&amp;lt;features-features-sparseResidencyAliased,sparse aliased residency&amp;gt;&amp;gt; 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-features-sparseResidencyAliased\">sparse aliased residency</a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_BUFFER_CREATE_SPARSE_ALIASED_BIT</code>" }, { "vuid": "VUID-VkBufferCreateInfo-flags-00918", @@ -5898,7 +6726,7 @@ "(VK_VERSION_1_1,VK_KHR_external_memory)": [ { "vuid": "VUID-VkBufferCreateInfo-pNext-00920", - "text": " If the <code>pNext</code> chain contains an instance of <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>, 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</code>\\-&amp;gt;<code>handleType</code> equal to any one of the handle types specified in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code>" + "text": " If the <code>pNext</code> chain contains an instance of <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>, 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</code>-><code>handleType</code> equal to any one of the handle types specified in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code>" } ], "(VK_VERSION_1_1)": [ @@ -6111,40 +6939,12 @@ ] }, "VkImageCreateInfo": { - "!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkImageCreateInfo-format-00940", - "text": " The combination of <code>format</code>, <code>imageType</code>, <code>tiling</code>, <code>usage</code>, and <code>flags</code> <strong class=\"purple\">must</strong> be supported, as indicated by a <code>VK_SUCCESS</code> return value from <code>vkGetPhysicalDeviceImageFormatProperties</code> invoked with the same values passed to the corresponding parameters." - }, - { - "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)": [ - { - "vuid": "VUID-VkImageCreateInfo-pNext-01889", - "text": " If the <code>pNext</code> chain does not contain an instance of <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>, or if <code>format</code> is not <code>VK_FORMAT_UNDEFINED</code>, the combination of <code>format</code>, <code>imageType</code>, <code>tiling</code>, <code>usage</code>, and <code>flags</code> <strong class=\"purple\">must</strong> be supported, as indicated by a <code>VK_SUCCESS</code> return value from <code>vkGetPhysicalDeviceImageFormatProperties</code> invoked with the same values passed to the corresponding parameters." - }, - { - "vuid": "VUID-VkImageCreateInfo-pNext-01974", - "text": " If the <code>pNext</code> chain contains an instance of <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>, and its member <code>externalFormat</code> is non-zero the <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>." - }, - { - "vuid": "VUID-VkImageCreateInfo-pNext-01975", - "text": " If the <code>pNext</code> chain does not contain an instance of <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>, or does and its member <code>externalFormat</code> is <code>0</code> the <code>format</code> <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>." - }, + "core": [ { - "vuid": "VUID-VkImageCreateInfo-pNext-01892", - "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>:" + "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>." }, { - "vuid": "VUID-VkImageCreateInfo-pNext-01893", - "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>:" - } - ], - "core": [ - { "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" }, @@ -6177,26 +6977,22 @@ "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-imageType-00951", - "text": " If <code>imageType</code> is <code>VK_IMAGE_TYPE_1D</code>, <code>extent.width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxImageDimension1D</code>, or <code>VkImageFormatProperties</code>::<code>maxExtent.width</code> (as returned by <code>vkGetPhysicalDeviceImageFormatProperties</code> with <code>format</code>, <code>imageType</code>, <code>tiling</code>, <code>usage</code>, and <code>flags</code> equal to those in this structure) - whichever is higher" + "vuid": "VUID-VkImageCreateInfo-extent-02252", + "text": " <code>extent.width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>imageCreateMaxExtent.pname</code>:width (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>)." }, { - "vuid": "VUID-VkImageCreateInfo-imageType-00952", - "text": " If <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code> and <code>flags</code> does not contain <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code>, <code>extent.width</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxImageDimension2D</code>, or <code>VkImageFormatProperties</code>::<code>maxExtent.width</code>/<code>height</code> (as returned by <code>vkGetPhysicalDeviceImageFormatProperties</code> with <code>format</code>, <code>imageType</code>, <code>tiling</code>, <code>usage</code>, and <code>flags</code> equal to those in this structure) - whichever is higher" + "vuid": "VUID-VkImageCreateInfo-extent-02253", + "text": " <code>extent.height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>imageCreateMaxExtent.pname</code>:height (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>)." }, { - "vuid": "VUID-VkImageCreateInfo-imageType-00953", - "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 less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxImageDimensionCube</code>, or <code>VkImageFormatProperties</code>::<code>maxExtent.width</code>/<code>height</code> (as returned by <code>vkGetPhysicalDeviceImageFormatProperties</code> with <code>format</code>, <code>imageType</code>, <code>tiling</code>, <code>usage</code>, and <code>flags</code> equal to those in this structure) - whichever is higher" + "vuid": "VUID-VkImageCreateInfo-extent-02254", + "text": " <code>extent.depth</code> <strong class=\"purple\">must</strong> be less than or equal to <code>imageCreateMaxExtent.pname</code>:depth (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-00955", - "text": " If <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 less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxImageDimension3D</code>, or <code>VkImageFormatProperties</code>::<code>maxExtent.width</code>/<code>height</code>/<code>depth</code> (as returned by <code>vkGetPhysicalDeviceImageFormatProperties</code> with <code>format</code>, <code>imageType</code>, <code>tiling</code>, <code>usage</code>, and <code>flags</code> equal to those in this structure) - whichever is higher" - }, - { "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>" }, @@ -6206,23 +7002,23 @@ }, { "vuid": "VUID-VkImageCreateInfo-mipLevels-00958", - "text": " <code>mipLevels</code> <strong class=\"purple\">must</strong> be less than or equal to <span class=\"eq\">{lfloor}log<sub>2</sub>(max(<code>extent.width</code>, <code>extent.height</code>, <code>extent.depth</code>)){rfloor} + 1</span>." + "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-extent-00959", - "text": " <code>mipLevels</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkImageFormatProperties</code>::<code>maxMipLevels</code> (as returned by <code>vkGetPhysicalDeviceImageFormatProperties</code> with <code>format</code>, <code>imageType</code>, <code>tiling</code>, <code>usage</code>, and <code>flags</code> equal to those in this structure)" + "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-00960", - "text": " <code>arrayLayers</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkImageFormatProperties</code>::<code>maxArrayLayers</code> (as returned by <code>vkGetPhysicalDeviceImageFormatProperties</code> with <code>format</code>, <code>imageType</code>, <code>tiling</code>, <code>usage</code>, and <code>flags</code> equal to those in this structure)" + "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-00962", - "text": " If <code>samples</code> is not <code>VK_SAMPLE_COUNT_1_BIT</code>, <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>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_OPTIMAL</code>, and <code>mipLevels</code> <strong class=\"purple\">must</strong> be equal to <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>false</code>," }, { "vuid": "VUID-VkImageCreateInfo-usage-00963", @@ -6241,20 +7037,20 @@ "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-00967", - "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>imageType</code>, <code>tiling</code>, <code>usage</code>, and <code>flags</code> equal to those in this structure" + "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 &amp;lt;&amp;lt;features-features-shaderStorageImageMultisample,multisampled storage images&amp;gt;&amp;gt; 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>" + "text": " If the <a href=\"#features-features-shaderStorageImageMultisample\">multisampled storage images</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 &amp;lt;&amp;lt;features-features-sparseBinding,sparse bindings&amp;gt;&amp;gt; feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>" + "text": " If the <a href=\"#features-features-sparseBinding\">sparse bindings</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 &amp;lt;&amp;lt;features-features-sparseResidencyAliased,sparse aliased residency&amp;gt;&amp;gt; feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code>" + "text": " If the <a href=\"#features-features-sparseResidencyAliased\">sparse aliased residency</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-imageType-00970", @@ -6262,27 +7058,27 @@ }, { "vuid": "VUID-VkImageCreateInfo-imageType-00971", - "text": " If the &amp;lt;&amp;lt;features-features-sparseResidencyImage2D,sparse residency for 2D images&amp;gt;&amp;gt; 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>" + "text": " If the <a href=\"#features-features-sparseResidencyImage2D\">sparse residency for 2D images</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 &amp;lt;&amp;lt;features-features-sparseResidencyImage3D,sparse residency for 3D images&amp;gt;&amp;gt; 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>" + "text": " If the <a href=\"#features-features-sparseResidencyImage3D\">sparse residency for 3D images</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 &amp;lt;&amp;lt;features-features-sparseResidency2Samples,sparse residency for images with 2 samples&amp;gt;&amp;gt; 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>" + "text": " If the <a href=\"#features-features-sparseResidency2Samples\">sparse residency for images with 2 samples</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 &amp;lt;&amp;lt;features-features-sparseResidency4Samples,sparse residency for images with 4 samples&amp;gt;&amp;gt; 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>" + "text": " If the <a href=\"#features-features-sparseResidency4Samples\">sparse residency for images with 4 samples</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 &amp;lt;&amp;lt;features-features-sparseResidency8Samples,sparse residency for images with 8 samples&amp;gt;&amp;gt; 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>" + "text": " If the <a href=\"#features-features-sparseResidency8Samples\">sparse residency for images with 8 samples</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 &amp;lt;&amp;lt;features-features-sparseResidency16Samples,sparse residency for images with 16 samples&amp;gt;&amp;gt; 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>" + "text": " If the <a href=\"#features-features-sparseResidency16Samples\">sparse residency for images with 16 samples</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", @@ -6357,6 +7153,30 @@ "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)": [ + { + "vuid": "VUID-VkImageCreateInfo-pNext-01974", + "text": " If the <code>pNext</code> chain contains an instance of <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>, and its member <code>externalFormat</code> is non-zero the <code>format</code> <strong class=\"purple\">must</strong> be <code>VK_FORMAT_UNDEFINED</code>." + }, + { + "vuid": "VUID-VkImageCreateInfo-pNext-01975", + "text": " If the <code>pNext</code> chain does not contain an instance of <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>, or does and its member <code>externalFormat</code> is <code>0</code> the <code>format</code> <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>." + }, + { + "vuid": "VUID-VkImageCreateInfo-pNext-01892", + "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>:" + }, + { + "vuid": "VUID-VkImageCreateInfo-pNext-01893", + "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>:" + } + ], "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ { "vuid": "VUID-VkImageCreateInfo-flags-00950", @@ -6397,14 +7217,14 @@ "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>" }, { - "vuid": "VUID-VkImageCreateInfo-flags-00992", - "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>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_OPTIMAL</code>" + "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>false</code>." } ], "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ { "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 &amp;lt;&amp;lt;appendix-compressedtex-bc,block-compressed image format&amp;gt;&amp;gt;, an &amp;lt;&amp;lt;appendix-compressedtex-etc2, ETC compressed image format&amp;gt;&amp;gt;, or an &amp;lt;&amp;lt;appendix-compressedtex-astc, ASTC compressed image format&amp;gt;&amp;gt;." + "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=\"#appendix-compressedtex-bc\">block-compressed image format</a>, an <a href=\"#appendix-compressedtex-etc2\">ETC compressed image format</a>, or an <a href=\"#appendix-compressedtex-astc\">ASTC compressed image format</a>." }, { "vuid": "VUID-VkImageCreateInfo-flags-01573", @@ -6420,26 +7240,64 @@ "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ { "vuid": "VUID-VkImageCreateInfo-format-01574", - "text": " If the image <code>format</code> is one of those listed in &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion&amp;gt;&amp;gt;:" - }, - { - "vuid": "VUID-VkImageCreateInfo-tiling-01575", - "text": " If <code>tiling</code> is <code>VK_IMAGE_TILING_OPTIMAL</code>, <code>format</code> is a <em>multi-planar</em> format, and <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> (as returned by <code>vkGetPhysicalDeviceFormatProperties</code> with the same value of <code>format</code>) does not include <code>VK_FORMAT_FEATURE_DISJOINT_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_DISJOINT_BIT</code>" + "text": " If the image <code>format</code> is one of those listed in <a href=\"#features-formats-requiring-sampler-ycbcr-conversion\">Formats requiring sampler Y’C<sub>B</sub>C<sub>R</sub> conversion for <code>VK_IMAGE_ASPECT_COLOR_BIT</code> image views</a>:" }, { - "vuid": "VUID-VkImageCreateInfo-tiling-01576", - "text": " If <code>tiling</code> is <code>VK_IMAGE_TILING_LINEAR</code>, <code>format</code> is a <em>multi-planar</em> format, and <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> (as returned by <code>vkGetPhysicalDeviceFormatProperties</code> with the same value of <code>format</code>) does not include <code>VK_FORMAT_FEATURE_DISJOINT_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_DISJOINT_BIT</code>" + "vuid": "VUID-VkImageCreateInfo-imageCreateFormatFeatures-02260", + "text": " If pame:format 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>." }, { "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>" } ], + "(VK_EXT_image_drm_format_modifier)": [ + { + "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> contain exactly one of <a href=\"#VkImageDrmFormatModifierListCreateInfoEXT\">VkImageDrmFormatModifierListCreateInfoEXT</a> or <a href=\"#VkImageDrmFormatModifierExplicitCreateInfoEXT\">VkImageDrmFormatModifierExplicitCreateInfoEXT</a>." + }, + { + "vuid": "VUID-VkImageCreateInfo-pNext-02262", + "text": " If the <code>pNext</code> chain contains <a href=\"#VkImageDrmFormatModifierListCreateInfoEXT\">VkImageDrmFormatModifierListCreateInfoEXT</a> or <a href=\"#VkImageDrmFormatModifierExplicitCreateInfoEXT\">VkImageDrmFormatModifierExplicitCreateInfoEXT</a>, then <code>tiling</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>." + } + ], "(VK_EXT_sample_locations)": [ { "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_NV_corner_sampled_image)": [ + { + "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>" + }, + { + "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" + }, + { + "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</code>::<code>width</code> and <code>extent</code>::<code>height</code> <strong class=\"purple\">must</strong> be greater than <code>1</code>" + }, + { + "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</code>::<code>width</code>, <code>extent</code>::<code>height</code>, and <code>extent</code>::<code>depth</code> <strong class=\"purple\">must</strong> be greater than <code>1</code>" + } + ], + "(VK_NV_shading_rate_image)": [ + { + "vuid": "VUID-VkImageCreateInfo-imageType-02082", + "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>." + }, + { + "vuid": "VUID-VkImageCreateInfo-samples-02083", + "text": " If <code>usage</code> includes <code>VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV</code>, <code>samples</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLE_COUNT_1_BIT</code>." + }, + { + "vuid": "VUID-VkImageCreateInfo-tiling-02084", + "text": " If <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>." + } ] }, "VkDedicatedAllocationImageCreateInfoNV": { @@ -6498,7 +7356,7 @@ "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)": [ { "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 &amp;lt;&amp;lt;swapchain-wsi-image-create-info, implied image creation parameters&amp;gt;&amp;gt; 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" }, { "vuid": "VUID-VkImageSwapchainCreateInfoKHR-sType-sType", @@ -6534,13 +7392,49 @@ } ] }, + "VkImageDrmFormatModifierListCreateInfoEXT": { + "(VK_EXT_image_drm_format_modifier)": [ + { + "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-pDrmFormatModifiers-02263", + "text": " Each <em>modifier</em> in <code>pDrmFormatModifiers</code> must 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>." + } + ] + }, + "VkImageDrmFormatModifierExplicitCreateInfoEXT": { + "(VK_EXT_image_drm_format_modifier)": [ + { + "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifier-02264", + "text": " <code>drmFormatModifier</code> must be compatible with the parameters in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> and its <code>pNext</code> chain, as determined by querying <a href=\"#VkPhysicalDeviceImageFormatInfo2KHR\">VkPhysicalDeviceImageFormatInfo2KHR</a> extended with <a href=\"#VkPhysicalDeviceImageDrmFormatModifierInfoEXT\">VkPhysicalDeviceImageDrmFormatModifierInfoEXT</a>." + }, + { + "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>." + }, + { + "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-pPlaneLayouts-02266", + "text": " For each element of <code>pPlaneLayouts</code>:" + } + ] + }, "vkGetImageSubresourceLayout": { - "core": [ + "!(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</code><em>_i</em>_BIT_EXT and the index <em>i</em> <strong class=\"purple\">must</strong> be less than the <a href=\"#VkDrmFormatModifierPropertiesEXT\"><code>drmFormatModifierPlaneCount</code></a> associated with the image’s <a href=\"#VkImageCreateInfo\"><code>format</code></a> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\"><code>drmFormatModifier</code></a>." + } + ], + "core": [ + { "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" }, @@ -6576,11 +7470,11 @@ "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ { "vuid": "VUID-vkGetImageSubresourceLayout-format-01581", - "text": " If the <code>format</code> of <code>image</code> is a &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion,multi-planar format&amp;gt;&amp;gt; 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>" + "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=\"#features-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>format</code> of <code>image</code> is a &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion,multi-planar format&amp;gt;&amp;gt; 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>" + "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=\"#features-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)": [ @@ -6602,6 +7496,14 @@ } ] }, + "vkGetImageDrmFormatModifierPropertiesEXT": { + "(VK_EXT_image_drm_format_modifier)": [ + { + "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>." + } + ] + }, "vkDestroyImage": { "core": [ { @@ -6662,31 +7564,27 @@ }, { "vuid": "VUID-VkImageViewCreateInfo-viewType-01004", - "text": " If the &amp;lt;&amp;lt;features-features-imageCubeArray,image cubemap arrays&amp;gt;&amp;gt; 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-features-imageCubeArray\">image cubemap arrays</a> feature is not enabled, <code>viewType</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_VIEW_TYPE_CUBE_ARRAY</code>" }, { - "vuid": "VUID-VkImageViewCreateInfo-image-01006", - "text": " If <code>image</code> was created with <code>VK_IMAGE_TILING_LINEAR</code>, <code>format</code> <strong class=\"purple\">must</strong> be format that has at least one supported feature bit present in the value of <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> with the same value of <code>format</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." }, { - "vuid": "VUID-VkImageViewCreateInfo-image-01007", - "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value containing at least one of <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, <code>VK_IMAGE_USAGE_STORAGE_BIT</code>, <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-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-image-01008", - "text": " If <code>image</code> was created with <code>VK_IMAGE_TILING_LINEAR</code> and <code>usage</code> contains <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, <code>format</code> <strong class=\"purple\">must</strong> be supported for sampled images, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> with the same value of <code>format</code>" + "vuid": "VUID-VkImageViewCreateInfo-usage-02275", + "text": " If <code>usage</code> contains <code>VK_IMAGE_USAGE_STORAGE_BIT</code>, then the image view’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-image-01009", - "text": " If <code>image</code> was created with <code>VK_IMAGE_TILING_LINEAR</code> and <code>usage</code> contains <code>VK_IMAGE_USAGE_STORAGE_BIT</code>, <code>format</code> <strong class=\"purple\">must</strong> be supported for storage images, as specified by the <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> with the same value of <code>format</code>" + "vuid": "VUID-VkImageViewCreateInfo-usage-02276", + "text": " If <code>usage</code> contains <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, then the image view’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-image-01010", - "text": " If <code>image</code> was created with <code>VK_IMAGE_TILING_LINEAR</code> and <code>usage</code> contains <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, <code>format</code> <strong class=\"purple\">must</strong> be supported for color attachments, as specified by the <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> with the same value of <code>format</code>" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-image-01011", - "text": " If <code>image</code> was created with <code>VK_IMAGE_TILING_LINEAR</code> and <code>usage</code> contains <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>format</code> <strong class=\"purple\">must</strong> be supported for depth/stencil attachments, as specified by the <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> with the same value of <code>format</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’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-subresourceRange-01478", @@ -6698,7 +7596,7 @@ }, { "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 &amp;lt;&amp;lt;features-formats-compatibility-classes,Format Compatibility Classes&amp;gt;&amp;gt;" + "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=\"#features-formats-compatibility-classes\">Format Compatibility Classes</a>" }, { "vuid": "VUID-VkImageViewCreateInfo-image-01020", @@ -6706,7 +7604,7 @@ }, { "vuid": "VUID-VkImageViewCreateInfo-subResourceRange-01021", - "text": " <code>subresourceRange</code> and <code>viewType</code> <strong class=\"purple\">must</strong> be compatible with the image, as described in the &amp;lt;&amp;lt;resources-image-views-compatibility,compatibility table&amp;gt;&amp;gt;" + "text": " <code>subresourceRange</code> and <code>viewType</code> <strong class=\"purple\">must</strong> be compatible with the image, as described in the <a href=\"#resources-image-views-compatibility\">compatibility table</a>" }, { "vuid": "VUID-VkImageViewCreateInfo-sType-sType", @@ -6714,7 +7612,7 @@ }, { "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=\"#VkImageViewUsageCreateInfo\">VkImageViewUsageCreateInfo</a> or <a href=\"#VkSamplerYcbcrConversionInfo\">VkSamplerYcbcrConversionInfo</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=\"#VkImageViewASTCDecodeModeEXT\">VkImageViewASTCDecodeModeEXT</a>, <a href=\"#VkImageViewUsageCreateInfo\">VkImageViewUsageCreateInfo</a>, or <a href=\"#VkSamplerYcbcrConversionInfo\">VkSamplerYcbcrConversionInfo</a>" }, { "vuid": "VUID-VkImageViewCreateInfo-sType-unique", @@ -6767,52 +7665,24 @@ "text": " If <code>subresourceRange</code>::<code>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</code>::<code>layerCount</code> <strong class=\"purple\">must</strong> be non-zero and <span class=\"eq\"><code>subresourceRange</code>::<code>baseArrayLayer</code> + <code>subresourceRange</code>::<code>layerCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>extent.depth</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created" } ], - "!(VK_ANDROID_external_memory_android_hardware_buffer)": [ + "!(VK_NV_shading_rate_image)": [ { - "vuid": "VUID-VkImageViewCreateInfo-image-01012", - "text": " If <code>image</code> was created with <code>VK_IMAGE_TILING_OPTIMAL</code>, <code>format</code> <strong class=\"purple\">must</strong> be format that has at least one supported feature bit present in the value of <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> with the same value of <code>format</code>" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-image-01013", - "text": " If <code>image</code> was created with <code>VK_IMAGE_TILING_OPTIMAL</code> and <code>usage</code> contains <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, <code>format</code> <strong class=\"purple\">must</strong> be supported for sampled images, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT</code> flag in <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> with the same value of <code>format</code>" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-image-01014", - "text": " If <code>image</code> was created with <code>VK_IMAGE_TILING_OPTIMAL</code> and <code>usage</code> contains <code>VK_IMAGE_USAGE_STORAGE_BIT</code>, <code>format</code> <strong class=\"purple\">must</strong> be supported for storage images, as specified by the <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT</code> flag in <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> with the same value of <code>format</code>" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-image-01015", - "text": " If <code>image</code> was created with <code>VK_IMAGE_TILING_OPTIMAL</code> and <code>usage</code> contains <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, <code>format</code> <strong class=\"purple\">must</strong> be supported for color attachments, as specified by the <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> flag in <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> with the same value of <code>format</code>" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-image-01016", - "text": " If <code>image</code> was created with <code>VK_IMAGE_TILING_OPTIMAL</code> and <code>usage</code> contains <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>format</code> <strong class=\"purple\">must</strong> be supported for depth/stencil attachments, as specified by the <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code> flag in <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> with the same value of <code>format</code>" + "vuid": "VUID-VkImageViewCreateInfo-image-01007", + "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value containing at least one of <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, <code>VK_IMAGE_USAGE_STORAGE_BIT</code>, <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>" } ], - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-image-01965", - "text": " If <code>image</code> was created with <code>VK_IMAGE_TILING_OPTIMAL</code> and <code>format</code> is not <code>VK_FORMAT_UNDEFINED</code>, <code>format</code> <strong class=\"purple\">must</strong> be format that has at least one supported feature bit present in the value of <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> with the same value of <code>format</code>" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-image-01966", - "text": " If <code>image</code> was created with <code>VK_IMAGE_TILING_OPTIMAL</code>, and <code>format</code> is not <code>VK_FORMAT_UNDEFINED</code>, and <code>usage</code> contains <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, <code>format</code> <strong class=\"purple\">must</strong> be supported for sampled images, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT</code> flag in <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> with the same value of <code>format</code>" - }, + "(VK_NV_shading_rate_image)": [ { - "vuid": "VUID-VkImageViewCreateInfo-image-01967", - "text": " If <code>image</code> was created with <code>VK_IMAGE_TILING_OPTIMAL</code>, and <code>format</code> is not <code>VK_FORMAT_UNDEFINED</code>, and <code>usage</code> contains <code>VK_IMAGE_USAGE_STORAGE_BIT</code>, <code>format</code> <strong class=\"purple\">must</strong> be supported for storage images, as specified by the <code>VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT</code> flag in <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> with the same value of <code>format</code>" + "vuid": "VUID-VkImageViewCreateInfo-image-02085", + "text": " <code>image</code> <strong class=\"purple\">must</strong> have been created with a <code>usage</code> value containing at least one of <code>VK_IMAGE_USAGE_SAMPLED_BIT</code>, <code>VK_IMAGE_USAGE_STORAGE_BIT</code>, <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, or <code>VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV</code>" }, { - "vuid": "VUID-VkImageViewCreateInfo-image-01968", - "text": " If <code>image</code> was created with <code>VK_IMAGE_TILING_OPTIMAL</code>, and <code>format</code> is not <code>VK_FORMAT_UNDEFINED</code>, and <code>usage</code> contains <code>VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</code>, <code>format</code> <strong class=\"purple\">must</strong> be supported for color attachments, as specified by the <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> flag in <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> with the same value of <code>format</code>" + "vuid": "VUID-VkImageViewCreateInfo-image-02086", + "text": " If <code>image</code> was created with <code>usage</code> containing <code>VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV</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>" }, { - "vuid": "VUID-VkImageViewCreateInfo-image-01969", - "text": " If <code>image</code> was created with <code>VK_IMAGE_TILING_OPTIMAL</code>, and <code>format</code> is not <code>VK_FORMAT_UNDEFINED</code>, and <code>usage</code> contains <code>VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, <code>format</code> <strong class=\"purple\">must</strong> be supported for depth/stencil attachments, as specified by the <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code> flag in <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> with the same value of <code>format</code>" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-image-01896", - "text": " If <code>image</code> has an &amp;lt;&amp;lt;memory-external-android-hardware-buffer-external-formats,external format&amp;gt;&amp;gt;:" + "vuid": "VUID-VkImageViewCreateInfo-image-02087", + "text": " 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_VERSION_1_1,VK_KHR_maintenance1)": [ @@ -6828,19 +7698,19 @@ "(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 &amp;lt;&amp;lt;features-formats-compatibility-classes,Format Compatibility Classes&amp;gt;&amp;gt;" + "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=\"#features-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 &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion,multi-planar&amp;gt;&amp;gt; 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 &amp;lt;&amp;lt;features-formats-compatibility-classes,Format Compatibility Classes&amp;gt;&amp;gt;" + "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=\"#features-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=\"#features-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 &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion,multi-planar&amp;gt;&amp;gt; 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 &amp;lt;&amp;lt;features-formats-compatibility-classes,Format Compatibility Classes&amp;gt;&amp;gt;" + "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=\"#features-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=\"#features-formats-compatibility-classes\">Format Compatibility Classes</a>" } ], "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ @@ -6862,11 +7732,11 @@ "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ { "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 &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion,multi-planar&amp;gt;&amp;gt; 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 &amp;lt;&amp;lt;features-formats-compatible-planes&amp;gt;&amp;gt;" + "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=\"#features-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=\"#features-formats-compatible-planes\">Compatible formats of planes of multi-planar formats</a>" }, { "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 &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion,multi-planar&amp;gt;&amp;gt; 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=\"#features-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>" }, { "vuid": "VUID-VkImageViewCreateInfo-pNext-01970", @@ -6878,6 +7748,12 @@ "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-01896", + "text": " If <code>image</code> has an <a href=\"#memory-external-android-hardware-buffer-external-formats\">external format</a>:" + } ] }, "VkImageViewUsageCreateInfo": { @@ -6924,6 +7800,12 @@ "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</code><em>_i</em>_BIT_EXT for any index <em>i</em>." + } ] }, "VkComponentMapping": { @@ -6946,6 +7828,34 @@ } ] }, + "VkImageViewASTCDecodeModeEXT": { + "(VK_EXT_astc_decode_mode)": [ + { + "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>" + }, + { + "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02231", + "text": " If the <a href=\"#features-features-astc-decodeModeSharedExponent\">decodeModeSharedExponent</a> feature is not enabled, <code>decodeMode</code> <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_E5B9G9R9_UFLOAT_PACK32</code>" + }, + { + "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" + }, + { + "vuid": "VUID-VkImageViewASTCDecodeModeEXT-format-02233", + "text": " <code>format</code> of the image view <strong class=\"purple\">must</strong> be one of <code>VK_FORMAT_ASTC_4x4_UNORM_BLOCK</code>, <code>VK_FORMAT_ASTC_4x4_SRGB_BLOCK</code>, <code>VK_FORMAT_ASTC_5x4_UNORM_BLOCK</code>, <code>VK_FORMAT_ASTC_5x4_SRGB_BLOCK</code>, <code>VK_FORMAT_ASTC_5x5_UNORM_BLOCK</code>, <code>VK_FORMAT_ASTC_5x5_SRGB_BLOCK</code>, <code>VK_FORMAT_ASTC_6x5_UNORM_BLOCK</code>, <code>VK_FORMAT_ASTC_6x5_SRGB_BLOCK</code>, <code>VK_FORMAT_ASTC_6x6_UNORM_BLOCK</code>, <code>VK_FORMAT_ASTC_6x6_SRGB_BLOCK</code>, <code>VK_FORMAT_ASTC_8x5_UNORM_BLOCK</code>, <code>VK_FORMAT_ASTC_8x5_SRGB_BLOCK</code>, <code>VK_FORMAT_ASTC_8x6_UNORM_BLOCK</code>, <code>VK_FORMAT_ASTC_8x6_SRGB_BLOCK</code>, <code>VK_FORMAT_ASTC_8x8_UNORM_BLOCK</code>, <code>VK_FORMAT_ASTC_8x8_SRGB_BLOCK</code>, <code>VK_FORMAT_ASTC_10x5_UNORM_BLOCK</code>, <code>VK_FORMAT_ASTC_10x5_SRGB_BLOCK</code>, <code>VK_FORMAT_ASTC_10x6_UNORM_BLOCK</code>, <code>VK_FORMAT_ASTC_10x6_SRGB_BLOCK</code>, <code>VK_FORMAT_ASTC_10x8_UNORM_BLOCK</code>, <code>VK_FORMAT_ASTC_10x8_SRGB_BLOCK</code>, <code>VK_FORMAT_ASTC_10x10_UNORM_BLOCK</code>, <code>VK_FORMAT_ASTC_10x10_SRGB_BLOCK</code>, <code>VK_FORMAT_ASTC_12x10_UNORM_BLOCK</code>, <code>VK_FORMAT_ASTC_12x10_SRGB_BLOCK</code>, <code>VK_FORMAT_ASTC_12x12_UNORM_BLOCK</code>, or <code>VK_FORMAT_ASTC_12x12_SRGB_BLOCK</code>" + }, + { + "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>" + }, + { + "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-parameter", + "text": " <code>decodeMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value" + } + ] + }, "vkDestroyImageView": { "core": [ { @@ -7081,8 +7991,20 @@ { "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> 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-VkImageMemoryRequirementsInfo2KHR-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> in the <code>pNext</code> chain of the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure" }, { + "vuid": "VUID-VkImageMemoryRequirementsInfo2KHR-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> 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> in the <code>pNext</code> chain of the <a href=\"#VkImageMemoryRequirementsInfo2\">VkImageMemoryRequirementsInfo2</a> structure" } @@ -7111,8 +8033,8 @@ "VkImagePlaneMemoryRequirementsInfo": { "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ { - "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-01592", - "text": " <code>planeAspect</code> <strong class=\"purple\">must</strong> be an aspect that exists in the format; 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-VkImagePlaneMemoryRequirementsInfoKHR-planeAspect-02281", + "text": " If the image’s tiling 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-VkImagePlaneMemoryRequirementsInfo-sType-sType", @@ -7122,6 +8044,12 @@ "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-VkImagePlaneMemoryRequirementsInfoKHR-planeAspect-02282", + "text": " If the image’s tiling 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\"><code>drmFormatModifierPlaneCount</code></a> associated with the image’s <a href=\"#VkImageCreateInfo\"><code>format</code></a> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\"><code>drmFormatModifier</code></a>.)" + } ] }, "VkMemoryRequirements2": { @@ -7649,8 +8577,8 @@ "VkBindImagePlaneMemoryInfo": { "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ { - "vuid": "VUID-VkBindImagePlaneMemoryInfo-planeAspect-01642", - "text": " <code>planeAspect</code> <strong class=\"purple\">must</strong> be a single valid plane aspect for the image format (that is, <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> for “<code>_2PLANE</code>” formats and <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> for “<code>_3PLANE</code>” formats)" + "vuid": "VUID-VkBindImagePlaneMemoryInfoKHR-planeAspect-02283", + "text": " If the image’s tiling 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, <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> for “<code>_2PLANE</code>” formats and <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> for “<code>_3PLANE</code>” formats.)" }, { "vuid": "VUID-VkBindImagePlaneMemoryInfo-None-01643", @@ -7664,6 +8592,288 @@ "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-VkBindImagePlaneMemoryInfoKHR-planeAspect-02284", + "text": " If the image’s tiling 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\"><code>drmFormatModifierPlaneCount</code></a> associated with the image’s <a href=\"#VkImageCreateInfo\"><code>format</code></a> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\"><code>drmFormatModifier</code></a>.)" + } + ] + }, + "vkCreateAccelerationStructureNVX": { + "(VK_NVX_raytracing)": [ + { + "vuid": "VUID-vkCreateAccelerationStructureNVX-device-parameter", + "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <code>VkDevice</code> handle" + }, + { + "vuid": "VUID-vkCreateAccelerationStructureNVX-pCreateInfo-parameter", + "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>VkAccelerationStructureCreateInfoNVX</code> structure" + }, + { + "vuid": "VUID-vkCreateAccelerationStructureNVX-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 <code>VkAllocationCallbacks</code> structure" + }, + { + "vuid": "VUID-vkCreateAccelerationStructureNVX-pAccelerationStructure-parameter", + "text": " <code>pAccelerationStructure</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>VkAccelerationStructureNVX</code> handle" + } + ] + }, + "VkAccelerationStructureCreateInfoNVX": { + "(VK_NVX_raytracing)": [ + { + "vuid": "VUID-VkAccelerationStructureCreateInfoNVX-geometryCount-02239", + "text": " <code>geometryCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRaytracingPropertiesNVX</code>::<code>maxGeometryCount</code>" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoNVX-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NVX</code>" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoNVX-pNext-pNext", + "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoNVX-type-parameter", + "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureTypeNVX\">VkAccelerationStructureTypeNVX</a> value" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoNVX-flags-parameter", + "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBuildAccelerationStructureFlagBitsNVX\">VkBuildAccelerationStructureFlagBitsNVX</a> values" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoNVX-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 <code>VkGeometryNVX</code> structures" + } + ] + }, + "VkGeometryNVX": { + "(VK_NVX_raytracing)": [ + { + "vuid": "VUID-VkGeometryNVX-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GEOMETRY_NVX</code>" + }, + { + "vuid": "VUID-VkGeometryNVX-pNext-pNext", + "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" + }, + { + "vuid": "VUID-VkGeometryNVX-geometryType-parameter", + "text": " <code>geometryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkGeometryTypeNVX\">VkGeometryTypeNVX</a> value" + }, + { + "vuid": "VUID-VkGeometryNVX-geometry-parameter", + "text": " <code>geometry</code> <strong class=\"purple\">must</strong> be a valid <code>VkGeometryDataNVX</code> structure" + }, + { + "vuid": "VUID-VkGeometryNVX-flags-parameter", + "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkGeometryFlagBitsNVX\">VkGeometryFlagBitsNVX</a> values" + } + ] + }, + "VkGeometryDataNVX": { + "(VK_NVX_raytracing)": [ + { + "vuid": "VUID-VkGeometryDataNVX-triangles-parameter", + "text": " <code>triangles</code> <strong class=\"purple\">must</strong> be a valid <code>VkGeometryTrianglesNVX</code> structure" + }, + { + "vuid": "VUID-VkGeometryDataNVX-aabbs-parameter", + "text": " <code>aabbs</code> <strong class=\"purple\">must</strong> be a valid <code>VkGeometryAABBNVX</code> structure" + } + ] + }, + "VkGeometryTrianglesNVX": { + "(VK_NVX_raytracing)": [ + { + "vuid": "VUID-VkGeometryTrianglesNVX-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NVX</code>" + }, + { + "vuid": "VUID-VkGeometryTrianglesNVX-pNext-pNext", + "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" + }, + { + "vuid": "VUID-VkGeometryTrianglesNVX-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 <code>VkBuffer</code> handle" + }, + { + "vuid": "VUID-VkGeometryTrianglesNVX-vertexFormat-parameter", + "text": " <code>vertexFormat</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkFormat\">VkFormat</a> value" + }, + { + "vuid": "VUID-VkGeometryTrianglesNVX-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 <code>VkBuffer</code> handle" + }, + { + "vuid": "VUID-VkGeometryTrianglesNVX-indexType-parameter", + "text": " <code>indexType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkIndexType\">VkIndexType</a> value" + }, + { + "vuid": "VUID-VkGeometryTrianglesNVX-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 <code>VkBuffer</code> handle" + }, + { + "vuid": "VUID-VkGeometryTrianglesNVX-commonparent", + "text": " Each of <code>indexData</code>, <code>transformData</code>, and <code>vertexData</code> that are valid handles <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <code>VkDevice</code>" + } + ] + }, + "VkGeometryAABBNVX": { + "(VK_NVX_raytracing)": [ + { + "vuid": "VUID-VkGeometryAABBNVX-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GEOMETRY_AABB_NVX</code>" + }, + { + "vuid": "VUID-VkGeometryAABBNVX-pNext-pNext", + "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" + }, + { + "vuid": "VUID-VkGeometryAABBNVX-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 <code>VkBuffer</code> handle" + } + ] + }, + "vkDestroyAccelerationStructureNVX": { + "(VK_NVX_raytracing)": [ + { + "vuid": "VUID-vkDestroyAccelerationStructureNVX-device-parameter", + "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <code>VkDevice</code> handle" + }, + { + "vuid": "VUID-vkDestroyAccelerationStructureNVX-accelerationStructure-parameter", + "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNVX</code> handle" + }, + { + "vuid": "VUID-vkDestroyAccelerationStructureNVX-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 <code>VkAllocationCallbacks</code> structure" + }, + { + "vuid": "VUID-vkDestroyAccelerationStructureNVX-accelerationStructure-parent", + "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>" + } + ] + }, + "vkGetAccelerationStructureMemoryRequirementsNVX": { + "(VK_NVX_raytracing)": [ + { + "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNVX-device-parameter", + "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <code>VkDevice</code> handle" + }, + { + "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNVX-pInfo-parameter", + "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>VkAccelerationStructureMemoryRequirementsInfoNVX</code> structure" + }, + { + "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNVX-pMemoryRequirements-parameter", + "text": " <code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>VkMemoryRequirements2KHR</code> structure" + } + ] + }, + "vkGetAccelerationStructureScratchMemoryRequirementsNVX": { + "(VK_NVX_raytracing)": [ + { + "vuid": "VUID-vkGetAccelerationStructureScratchMemoryRequirementsNVX-device-parameter", + "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <code>VkDevice</code> handle" + }, + { + "vuid": "VUID-vkGetAccelerationStructureScratchMemoryRequirementsNVX-pInfo-parameter", + "text": " <code>pInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>VkAccelerationStructureMemoryRequirementsInfoNVX</code> structure" + }, + { + "vuid": "VUID-vkGetAccelerationStructureScratchMemoryRequirementsNVX-pMemoryRequirements-parameter", + "text": " <code>pMemoryRequirements</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>VkMemoryRequirements2KHR</code> structure" + } + ] + }, + "VkAccelerationStructureMemoryRequirementsInfoNVX": { + "(VK_NVX_raytracing)": [ + { + "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNVX-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NVX</code>" + }, + { + "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNVX-pNext-pNext", + "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" + }, + { + "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNVX-accelerationStructure-parameter", + "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNVX</code> handle" + } + ] + }, + "vkBindAccelerationStructureMemoryNVX": { + "(VK_NVX_raytracing)": [ + { + "vuid": "VUID-vkBindAccelerationStructureMemoryNVX-device-parameter", + "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <code>VkDevice</code> handle" + }, + { + "vuid": "VUID-vkBindAccelerationStructureMemoryNVX-pBindInfos-parameter", + "text": " <code>pBindInfos</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>bindInfoCount</code> valid <code>VkBindAccelerationStructureMemoryInfoNVX</code> structures" + }, + { + "vuid": "VUID-vkBindAccelerationStructureMemoryNVX-bindInfoCount-arraylength", + "text": " <code>bindInfoCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" + } + ] + }, + "VkBindAccelerationStructureMemoryInfoNVX": { + "(VK_NVX_raytracing)": [ + { + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNVX-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NVX</code>" + }, + { + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNVX-pNext-pNext", + "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" + }, + { + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNVX-accelerationStructure-parameter", + "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNVX</code> handle" + }, + { + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNVX-memory-parameter", + "text": " <code>memory</code> <strong class=\"purple\">must</strong> be a valid <code>VkDeviceMemory</code> handle" + }, + { + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNVX-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" + }, + { + "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNVX-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 <code>VkDevice</code>" + } + ] + }, + "vkGetAccelerationStructureHandleNVX": { + "(VK_NVX_raytracing)": [ + { + "vuid": "VUID-vkGetAccelerationStructureHandleNVX-dataSize-02240", + "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be large enough to contain the result of the query, as described above" + }, + { + "vuid": "VUID-vkGetAccelerationStructureHandleNVX-device-parameter", + "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <code>VkDevice</code> handle" + }, + { + "vuid": "VUID-vkGetAccelerationStructureHandleNVX-accelerationStructure-parameter", + "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNVX</code> handle" + }, + { + "vuid": "VUID-vkGetAccelerationStructureHandleNVX-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-vkGetAccelerationStructureHandleNVX-dataSize-arraylength", + "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" + }, + { + "vuid": "VUID-vkGetAccelerationStructureHandleNVX-accelerationStructure-parent", + "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>" + } ] }, "vkCreateSampler": { @@ -7698,7 +8908,7 @@ }, { "vuid": "VUID-VkSamplerCreateInfo-anisotropyEnable-01070", - "text": " If the &amp;lt;&amp;lt;features-features-samplerAnisotropy,anisotropic sampling&amp;gt;&amp;gt; feature is not enabled, <code>anisotropyEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>" + "text": " If the <a href=\"#features-features-samplerAnisotropy\">anisotropic sampling</a> feature is not enabled, <code>anisotropyEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>" }, { "vuid": "VUID-VkSamplerCreateInfo-anisotropyEnable-01071", @@ -7784,17 +8994,17 @@ "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ { "vuid": "VUID-VkSamplerCreateInfo-minFilter-01645", - "text": " If &amp;lt;&amp;lt;samplers-YCbCr-conversion,sampler Y’C<sub>B</sub>C<sub>R</sub> conversion&amp;gt;&amp;gt; is enabled and <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT</code> is not set for the format, <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’s <code>chromaFilter</code>" + "text": " If <a href=\"#samplers-YCbCr-conversion\">sampler Y’C<sub>B</sub>C<sub>R</sub> conversion</a> is enabled and <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT</code> is not set for the format, <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’s <code>chromaFilter</code>" }, { "vuid": "VUID-VkSamplerCreateInfo-addressModeU-01646", - "text": " If &amp;lt;&amp;lt;samplers-YCbCr-conversion,sampler Y’C<sub>B</sub>C<sub>R</sub> conversion&amp;gt;&amp;gt; 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>" + "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>" } ], "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_sampler_filter_minmax)": [ { "vuid": "VUID-VkSamplerCreateInfo-None-01647", - "text": " The sampler reduction mode <strong class=\"purple\">must</strong> be set to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT</code> if &amp;lt;&amp;lt;samplers-YCbCr-conversion,sampler Y’C<sub>B</sub>C<sub>R</sub> conversion&amp;gt;&amp;gt; is enabled" + "text": " The sampler reduction mode <strong class=\"purple\">must</strong> be set to <code>VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT</code> if <a href=\"#samplers-YCbCr-conversion\">sampler Y’C<sub>B</sub>C<sub>R</sub> conversion</a> is enabled" } ], "(VK_IMG_filter_cubic)": [ @@ -7876,7 +9086,7 @@ "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ { "vuid": "VUID-vkCreateSamplerYcbcrConversion-None-01648", - "text": " The &amp;lt;&amp;lt;features-features-sampler-YCbCr-conversion, sampler Y’C<sub>B</sub>C<sub>R</sub> conversion feature&amp;gt;&amp;gt; <strong class=\"purple\">must</strong> be enabled" + "text": " The <a href=\"#features-features-sampler-YCbCr-conversion\">sampler Y’C<sub>B</sub>C<sub>R</sub> conversion feature</a> <strong class=\"purple\">must</strong> be enabled" }, { "vuid": "VUID-vkCreateSamplerYcbcrConversion-device-parameter", @@ -7932,7 +9142,7 @@ }, { "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 channels 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 channel which contains zero or one as a consequence of &amp;lt;&amp;lt;textures-conversion-to-rgba,conversion to RGBA&amp;gt;&amp;gt;" + "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 channels 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 channel which contains zero or one as a consequence of <a href=\"#textures-conversion-to-rgba\">conversion to RGBA</a>" }, { "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-forceExplicitReconstruction-01656", @@ -8053,6 +9263,12 @@ "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_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_EXT</code>" + } + ], "(VK_EXT_descriptor_indexing)": [ { "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-03000", @@ -8082,6 +9298,16 @@ "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-parameter", "text": " <code>descriptorType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorType\">VkDescriptorType</a> value" } + ], + "(VK_EXT_inline_uniform_block)": [ + { + "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-02209", + "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT</code> then <code>descriptorCount</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>" + }, + { + "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-02210", + "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT</code> then <code>descriptorCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceInlineUniformBlockPropertiesEXT</code>::<code>maxInlineUniformBlockSize</code>" + } ] }, "VkDescriptorSetLayoutBindingFlagsCreateInfoEXT": { @@ -8144,11 +9370,7 @@ }, { "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-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=\"#VkDescriptorBindingFlagBitsEXT\">VkDescriptorBindingFlagBitsEXT</a> values" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-pBindingFlags-requiredbitmask", - "text": " Each element of <code>pBindingFlags</code> <strong class=\"purple\">must</strong> not be <code>0</code>" + "text": " If <code>bindingCount</code> is not <code>0</code>, and <code>pBindingFlags</code> is not <code>NULL</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=\"#VkDescriptorBindingFlagBitsEXT\">VkDescriptorBindingFlagBitsEXT</a> values" } ], "(VK_EXT_descriptor_indexing)+(VK_KHR_push_descriptor)": [ @@ -8156,6 +9378,12 @@ "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-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_EXT</code>, <code>VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT</code>, or <code>VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT</code>" } + ], + "(VK_EXT_descriptor_indexing)+(VK_EXT_inline_uniform_block)": [ + { + "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfoEXT-descriptorBindingInlineUniformBlockUpdateAfterBind-02211", + "text": " If <a href=\"#VkPhysicalDeviceInlineUniformBlockFeatureEXT\">VkPhysicalDeviceInlineUniformBlockFeatureEXT</a>::<code>descriptorBindingInlineUniformBlockUpdateAfterBind</code> is not enabled, all bindings with descriptor type <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT</code> <strong class=\"purple\">must</strong> not use <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT</code>" + } ] }, "vkGetDescriptorSetLayoutSupport": { @@ -8331,6 +9559,16 @@ "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_EXT_descriptor_indexing)+(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_EXT</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>VkPhysicalDeviceInlineUniformBlockPropertiesEXT</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_EXT</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>VkPhysicalDeviceInlineUniformBlockPropertiesEXT</code>::<code>maxDescriptorSetInlineUniformBlocks</code>" + } + ], "(VK_EXT_descriptor_indexing)": [ { "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03016", @@ -8445,6 +9683,24 @@ "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>VkPhysicalDeviceDescriptorIndexingPropertiesEXT</code>::<code>maxDescriptorSetUpdateAfterBindInputAttachments</code>" } ], + "(VK_EXT_descriptor_indexing)+(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_EXT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT</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>VkPhysicalDeviceInlineUniformBlockPropertiesEXT</code>::<code>maxPerStageDescriptorInlineUniformBlocks</code>" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02215", + "text": " The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT</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>VkPhysicalDeviceInlineUniformBlockPropertiesEXT</code>::<code>maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks</code>" + }, + { + "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_EXT</code> bit set with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT</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>VkPhysicalDeviceInlineUniformBlockPropertiesEXT</code>::<code>maxDescriptorSetInlineUniformBlocks</code>" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02217", + "text": " The total number of bindings with a <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT</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>VkPhysicalDeviceInlineUniformBlockPropertiesEXT</code>::<code>maxDescriptorSetUpdateAfterBindInlineUniformBlocks</code>" + } + ], "(VK_KHR_push_descriptor)": [ { "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00293", @@ -8495,6 +9751,10 @@ "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>" }, { + "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-02004", + "text": " <code>pipelineLayout</code> <strong class=\"purple\">must</strong> not have been passed to any vkCmd* command for any command buffers that are still in the <a href=\"#commandbuffers-lifecycle\">recording state</a> when <code>vkDestroyPipelineLayout</code> is called" + }, + { "vuid": "VUID-vkDestroyPipelineLayout-device-parameter", "text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <code>VkDevice</code> handle" }, @@ -8544,7 +9804,7 @@ }, { "vuid": "VUID-VkDescriptorPoolCreateInfo-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=\"#VkDescriptorPoolInlineUniformBlockCreateInfoEXT\">VkDescriptorPoolInlineUniformBlockCreateInfoEXT</a>" }, { "vuid": "VUID-VkDescriptorPoolCreateInfo-flags-parameter", @@ -8560,6 +9820,14 @@ } ] }, + "VkDescriptorPoolInlineUniformBlockCreateInfoEXT": { + "(VK_EXT_inline_uniform_block)": [ + { + "vuid": "VUID-VkDescriptorPoolInlineUniformBlockCreateInfoEXT-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT</code>" + } + ] + }, "VkDescriptorPoolSize": { "core": [ { @@ -8570,6 +9838,12 @@ "vuid": "VUID-VkDescriptorPoolSize-type-parameter", "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorType\">VkDescriptorType</a> value" } + ], + "(VK_EXT_inline_uniform_block)": [ + { + "vuid": "VUID-VkDescriptorPoolSize-type-02218", + "text": " If <code>type</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT</code> then <code>descriptorCount</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>" + } ] }, "vkDestroyDescriptorPool": { @@ -8758,13 +10032,13 @@ "!(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 &amp;lt;&amp;lt;commandbuffers-lifecycle, pending state&amp;gt;&amp;gt;." + "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>." } ], "(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_EXT</code> or <code>VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT</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 &amp;lt;&amp;lt;commandbuffers-lifecycle,pending state&amp;gt;&amp;gt;." + "text": " Descriptor bindings updated by this command which were created without the <code>VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT</code> or <code>VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT</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>." } ], "core": [ @@ -8810,7 +10084,7 @@ }, { "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 &amp;lt;&amp;lt;descriptorsets-updates-consecutive&amp;gt;&amp;gt;" + "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>" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00322", @@ -8842,7 +10116,7 @@ }, { "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 a immutable sampler that enables &amp;lt;&amp;lt;samplers-YCbCr-conversion,sampler Y’C<sub>B</sub>C<sub>R</sub> conversion&amp;gt;&amp;gt; <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" + "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" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-01402", @@ -8910,7 +10184,11 @@ }, { "vuid": "VUID-VkWriteDescriptorSet-pNext-pNext", - "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" + "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=\"#VkDescriptorAccelerationStructureInfoNVX\">VkDescriptorAccelerationStructureInfoNVX</a> or <a href=\"#VkWriteDescriptorSetInlineUniformBlockEXT\">VkWriteDescriptorSetInlineUniformBlockEXT</a>" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-sType-unique", + "text": " Each <code>sType</code> member in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique" }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-parameter", @@ -8925,6 +10203,20 @@ "text": " Both of <code>dstSet</code>, and the elements of <code>pTexelBufferView</code> that are valid handles <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <code>VkDevice</code>" } ], + "(VK_EXT_inline_uniform_block)": [ + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02219", + "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT</code>, <code>dstArrayElement</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02220", + "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT</code>, <code>descriptorCount</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02221", + "text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkWriteDescriptorSetInlineUniformBlockEXT\">VkWriteDescriptorSetInlineUniformBlockEXT</a> structure whose <code>dataSize</code> member equals <code>descriptorCount</code>" + } + ], "(VK_EXT_descriptor_indexing)": [ { "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-03048", @@ -8966,7 +10258,7 @@ }, { "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" + "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>" }, { "vuid": "VUID-VkDescriptorImageInfo-commonparent", @@ -8976,7 +10268,27 @@ "(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 &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion,multi-planar format&amp;gt;&amp;gt;, 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>" + "text": " If <code>sampler</code> is used and the <a href=\"#VkFormat\">VkFormat</a> of the image is a <a href=\"#features-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>" + } + ] + }, + "VkWriteDescriptorSetInlineUniformBlockEXT": { + "(VK_EXT_inline_uniform_block)": [ + { + "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlockEXT-dataSize-02222", + "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>" + }, + { + "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlockEXT-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT</code>" + }, + { + "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlockEXT-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-VkWriteDescriptorSetInlineUniformBlockEXT-dataSize-arraylength", + "text": " <code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" } ] }, @@ -8988,7 +10300,7 @@ }, { "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 &amp;lt;&amp;lt;descriptorsets-updates-consecutive&amp;gt;&amp;gt;" + "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>" }, { "vuid": "VUID-VkCopyDescriptorSet-dstBinding-00347", @@ -8996,11 +10308,11 @@ }, { "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 &amp;lt;&amp;lt;descriptorsets-updates-consecutive&amp;gt;&amp;gt;" + "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>" }, { "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 &amp;lt;&amp;lt;descriptorsets-updates-consecutive&amp;gt;&amp;gt;" + "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>" }, { "vuid": "VUID-VkCopyDescriptorSet-sType-sType", @@ -9023,6 +10335,20 @@ "text": " Both of <code>dstSet</code>, and <code>srcSet</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <code>VkDevice</code>" } ], + "(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_EXT</code>, <code>srcArrayElement</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>" + }, + { + "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_EXT</code>, <code>dstArrayElement</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>" + }, + { + "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_EXT</code>, <code>descriptorCount</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>" + } + ], "(VK_EXT_descriptor_indexing)": [ { "vuid": "VUID-VkCopyDescriptorSet-srcSet-01918", @@ -9124,12 +10450,22 @@ }, { "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 &amp;lt;&amp;lt;descriptorsets-updates-consecutive&amp;gt;&amp;gt;" + "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>" }, { "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_EXT_inline_uniform_block)": [ + { + "vuid": "VUID-VkDescriptorUpdateTemplateEntry-descriptor-02226", + "text": " If <code>descriptor</code> type is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT</code>, <code>dstArrayElement</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>" + }, + { + "vuid": "VUID-VkDescriptorUpdateTemplateEntry-descriptor-02227", + "text": " If <code>descriptor</code> type is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT</code>, <code>descriptorCount</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>" + } ] }, "vkDestroyDescriptorUpdateTemplate": { @@ -9211,6 +10547,10 @@ "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>" }, { + "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-01979", + "text": " For each dynamic uniform or storage buffer binding in <code>pDescriptorSets</code>, the sum of the effective offset, as defined above, and the range of the binding <strong class=\"purple\">must</strong> be less than or equal to the size of the buffer" + }, + { "vuid": "VUID-vkCmdBindDescriptorSets-commandBuffer-parameter", "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" }, @@ -9232,7 +10572,7 @@ }, { "vuid": "VUID-vkCmdBindDescriptorSets-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdBindDescriptorSets-commandBuffer-cmdpool", @@ -9280,7 +10620,7 @@ }, { "vuid": "VUID-vkCmdPushDescriptorSetKHR-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdPushDescriptorSetKHR-commandBuffer-cmdpool", @@ -9320,7 +10660,7 @@ }, { "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-cmdpool", @@ -9380,7 +10720,7 @@ }, { "vuid": "VUID-vkCmdPushConstants-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdPushConstants-commandBuffer-cmdpool", @@ -9396,6 +10736,26 @@ } ] }, + "VkDescriptorAccelerationStructureInfoNVX": { + "(VK_NVX_raytracing)": [ + { + "vuid": "VUID-VkDescriptorAccelerationStructureInfoNVX-accelerationStructureCount-02236", + "text": " <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be equal to descriptorCount in the extended structure." + }, + { + "vuid": "VUID-VkDescriptorAccelerationStructureInfoNVX-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_DESCRIPTOR_ACCELERATION_STRUCTURE_INFO_NVX</code>" + }, + { + "vuid": "VUID-VkDescriptorAccelerationStructureInfoNVX-pAccelerationStructures-parameter", + "text": " <code>pAccelerationStructures</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>accelerationStructureCount</code> valid <code>VkAccelerationStructureNVX</code> handles" + }, + { + "vuid": "VUID-VkDescriptorAccelerationStructureInfoNVX-accelerationStructureCount-arraylength", + "text": " <code>accelerationStructureCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" + } + ] + }, "vkCreateQueryPool": { "core": [ { @@ -9420,7 +10780,7 @@ "core": [ { "vuid": "VUID-VkQueryPoolCreateInfo-queryType-00791", - "text": " If the &amp;lt;&amp;lt;features-features-pipelineStatisticsQuery,pipeline statistics queries&amp;gt;&amp;gt; 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-features-pipelineStatisticsQuery\">pipeline statistics queries</a> feature is not enabled, <code>queryType</code> <strong class=\"purple\">must</strong> not be <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code>" }, { "vuid": "VUID-VkQueryPoolCreateInfo-queryType-00792", @@ -9496,7 +10856,7 @@ }, { "vuid": "VUID-vkCmdResetQueryPool-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdResetQueryPool-commandBuffer-cmdpool", @@ -9516,7 +10876,7 @@ "core": [ { "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 &amp;lt;&amp;lt;queries-operation-active,active&amp;gt;&amp;gt; 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>" }, { "vuid": "VUID-vkCmdBeginQuery-None-00807", @@ -9524,7 +10884,7 @@ }, { "vuid": "VUID-vkCmdBeginQuery-queryType-00800", - "text": " If the &amp;lt;&amp;lt;features-features-occlusionQueryPrecise,precise occlusion queries&amp;gt;&amp;gt; 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-features-occlusionQueryPrecise\">precise occlusion queries</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>" }, { "vuid": "VUID-vkCmdBeginQuery-query-00802", @@ -9556,7 +10916,7 @@ }, { "vuid": "VUID-vkCmdBeginQuery-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdBeginQuery-commandBuffer-cmdpool", @@ -9584,7 +10944,7 @@ "core": [ { "vuid": "VUID-vkCmdEndQuery-None-01923", - "text": " All queries used by the command <strong class=\"purple\">must</strong> be &amp;lt;&amp;lt;queries-operation-active,active&amp;gt;&amp;gt;" + "text": " All queries used by the command <strong class=\"purple\">must</strong> be <a href=\"#queries-operation-active\">active</a>" }, { "vuid": "VUID-vkCmdEndQuery-query-00810", @@ -9600,7 +10960,7 @@ }, { "vuid": "VUID-vkCmdEndQuery-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdEndQuery-commandBuffer-cmdpool", @@ -9644,7 +11004,7 @@ }, { "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 &amp;lt;&amp;lt;queries-operation-memorylayout,here&amp;gt;&amp;gt;" + "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", @@ -9700,7 +11060,7 @@ }, { "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 &amp;lt;&amp;lt;queries-operation-memorylayout,here&amp;gt;&amp;gt;" + "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>" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-00825", @@ -9732,7 +11092,7 @@ }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-commandBuffer-cmdpool", @@ -9776,7 +11136,7 @@ }, { "vuid": "VUID-vkCmdWriteTimestamp-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdWriteTimestamp-commandBuffer-cmdpool", @@ -9799,16 +11159,10 @@ ] }, "vkCmdClearColorImage": { - "!(VK_ANDROID_external_memory_android_hardware_buffer)+(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-vkCmdClearColorImage-image-00001", - "text": " <code>image</code> <strong class=\"purple\">must</strong> use a format that supports <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>, which is indicated by <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - } - ], - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ + "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ { - "vuid": "VUID-vkCmdClearColorImage-image-01935", - "text": " <code>image</code> <strong class=\"purple\">must</strong> use a format that supports <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>, which is indicated by <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" + "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": [ @@ -9866,7 +11220,7 @@ }, { "vuid": "VUID-vkCmdClearColorImage-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdClearColorImage-commandBuffer-cmdpool", @@ -9888,7 +11242,7 @@ "(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 a format listed in &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion&amp;gt;&amp;gt;" + "text": " <code>image</code> <strong class=\"purple\">must</strong> not use a format listed in <a href=\"#features-formats-requiring-sampler-ycbcr-conversion\">Formats requiring sampler Y’C<sub>B</sub>C<sub>R</sub> conversion for <code>VK_IMAGE_ASPECT_COLOR_BIT</code> image views</a>" } ], "!(VK_KHR_shared_presentable_image)": [ @@ -9915,16 +11269,10 @@ ] }, "vkCmdClearDepthStencilImage": { - "!(VK_ANDROID_external_memory_android_hardware_buffer)+(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-vkCmdClearDepthStencilImage-image-00008", - "text": " <code>image</code> <strong class=\"purple\">must</strong> use a format that supports <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>, which is indicated by <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - } - ], - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ + "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ { - "vuid": "VUID-vkCmdClearDepthStencilImage-image-01936", - "text": " <code>image</code> <strong class=\"purple\">must</strong> use a format that supports <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>, which is indicated by <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" + "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>." } ], "core": [ @@ -9986,7 +11334,7 @@ }, { "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-cmdpool", @@ -10048,7 +11396,7 @@ }, { "vuid": "VUID-vkCmdClearAttachments-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdClearAttachments-commandBuffer-cmdpool", @@ -10097,6 +11445,12 @@ "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</code><em>_i</em>_BIT_EXT for any index <em>i</em>." + } + ], "(VK_VERSION_1_1)": [ { "vuid": "VUID-VkClearAttachment-commandBuffer-01809", @@ -10122,14 +11476,6 @@ } ] }, - "VkClearValue": { - "core": [ - { - "vuid": "VUID-VkClearValue-depthStencil-00023", - "text": " <code>depthStencil</code> <strong class=\"purple\">must</strong> be a valid <code>VkClearDepthStencilValue</code> structure" - } - ] - }, "vkCmdFillBuffer": { "core": [ { @@ -10170,7 +11516,7 @@ }, { "vuid": "VUID-vkCmdFillBuffer-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdFillBuffer-commandBuffer-cmdpool", @@ -10246,7 +11592,7 @@ }, { "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-cmdpool", @@ -10279,10 +11625,6 @@ "vkCmdCopyBuffer": { "core": [ { - "vuid": "VUID-vkCmdCopyBuffer-size-00112", - "text": " The <code>size</code> member of each element of <code>pRegions</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" - }, - { "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>" }, @@ -10332,11 +11674,11 @@ }, { "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> <code>VkBufferCopy</code> structures" + "text": " <code>pRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <code>VkBufferCopy</code> structures" }, { "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-cmdpool", @@ -10370,6 +11712,14 @@ } ] }, + "VkBufferCopy": { + "core": [ + { + "vuid": "VUID-VkBufferCopy-size-01988", + "text": " The <code>size</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" + } + ] + }, "vkCmdCopyImage": { "core": [ { @@ -10454,7 +11804,7 @@ }, { "vuid": "VUID-vkCmdCopyImage-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdCopyImage-commandBuffer-cmdpool", @@ -10473,24 +11823,14 @@ "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 <code>VkDevice</code>" } ], - "!(VK_ANDROID_external_memory_android_hardware_buffer)+(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-vkCmdCopyImage-srcImage-00125", - "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> use a format that supports <code>VK_FORMAT_FEATURE_TRANSFER_SRC_BIT</code>, which is indicated by <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstImage-00130", - "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> use a format that supports <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>, which is indicated by <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - } - ], - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ + "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ { - "vuid": "VUID-vkCmdCopyImage-srcImage-01938", - "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> use a format that supports <code>VK_FORMAT_FEATURE_TRANSFER_SRC_BIT</code>, which is indicated by <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" + "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-dstImage-01939", - "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> use a format that supports <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>, which is indicated by <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" + "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>." } ], "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ @@ -10504,7 +11844,7 @@ }, { "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 compatible, as defined &amp;lt;&amp;lt;copies-images-format-compatibility, below&amp;gt;&amp;gt;" + "text": " The <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> be compatible, as defined <a href=\"#copies-images-format-compatibility\">below</a>" } ], "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ @@ -10518,15 +11858,15 @@ }, { "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 &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion,<em>multi-planar format</em>&amp;gt;&amp;gt;, the <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> be compatible, as defined &amp;lt;&amp;lt;copies-images-format-compatibility, below&amp;gt;&amp;gt;" + "text": " If the <a href=\"#VkFormat\">VkFormat</a> of each of <code>srcImage</code> and <code>dstImage</code> is not a <a href=\"#features-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 compatible, as defined <a href=\"#copies-images-format-compatibility\">below</a>" }, { "vuid": "VUID-vkCmdCopyImage-None-01549", - "text": " In a copy to or from a plane of a &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion,multi-planar image&amp;gt;&amp;gt;, the <a href=\"#VkFormat\">VkFormat</a> of the image and plane <strong class=\"purple\">must</strong> be compatible according to &amp;lt;&amp;lt;features-formats-compatible-planes,the description of compatible planes&amp;gt;&amp;gt; for the plane being copied" + "text": " In a copy to or from a plane of a <a href=\"#features-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=\"#features-formats-compatible-planes\">the description of compatible planes</a> for the plane being copied" }, { "vuid": "VUID-vkCmdCopyImage-aspectMask-01550", - "text": " When a copy is performed to or from an image with a &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion,multi-planar format&amp;gt;&amp;gt;, the <code>aspectMask</code> of the <code>srcSubresource</code> and/or <code>dstSubresource</code> that refers to the multi-planar image <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> (with <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code> valid only for a <a href=\"#VkFormat\">VkFormat</a> with three planes)" + "text": " When a copy is performed to or from an image with a <a href=\"#features-formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, the <code>aspectMask</code> of the <code>srcSubresource</code> and/or <code>dstSubresource</code> that refers to the multi-planar image <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> (with <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code> valid only for a <a href=\"#VkFormat\">VkFormat</a> with three planes)" } ], "!(VK_KHR_shared_presentable_image)": [ @@ -10606,31 +11946,31 @@ "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ { "vuid": "VUID-VkImageCopy-srcImage-01551", - "text": " If neither the calling command’s <code>srcImage</code> nor the calling command’s <code>dstImage</code> has a &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion, multi-planar image format&amp;gt;&amp;gt; then the <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match" + "text": " If neither the calling command’s <code>srcImage</code> nor the calling command’s <code>dstImage</code> has a <a href=\"#features-formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a> then the <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match" }, { "vuid": "VUID-VkImageCopy-srcImage-01552", - "text": " If the calling command’s <code>srcImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion,two planes&amp;gt;&amp;gt; then the <code>srcSubresource</code> <code>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>" + "text": " If the calling command’s <code>srcImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#features-formats-requiring-sampler-ycbcr-conversion\">two planes</a> then the <code>srcSubresource</code> <code>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-VkImageCopy-srcImage-01553", - "text": " If the calling command’s <code>srcImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion,three planes&amp;gt;&amp;gt; then the <code>srcSubresource</code> <code>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": " If the calling command’s <code>srcImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#features-formats-requiring-sampler-ycbcr-conversion\">three planes</a> then the <code>srcSubresource</code> <code>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-VkImageCopy-dstImage-01554", - "text": " If the calling command’s <code>dstImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion,two planes&amp;gt;&amp;gt; then the <code>dstSubresource</code> <code>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>" + "text": " If the calling command’s <code>dstImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#features-formats-requiring-sampler-ycbcr-conversion\">two planes</a> then the <code>dstSubresource</code> <code>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-VkImageCopy-dstImage-01555", - "text": " If the calling command’s <code>dstImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion,three planes&amp;gt;&amp;gt; then the <code>dstSubresource</code> <code>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": " If the calling command’s <code>dstImage</code> has a <a href=\"#VkFormat\">VkFormat</a> with <a href=\"#features-formats-requiring-sampler-ycbcr-conversion\">three planes</a> then the <code>dstSubresource</code> <code>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-VkImageCopy-srcImage-01556", - "text": " If the calling command’s <code>srcImage</code> has a &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion,multi-planar image format&amp;gt;&amp;gt; and the <code>dstImage</code> does not have a multi-planar image format, the <code>dstSubresource</code> <code>aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>" + "text": " If the calling command’s <code>srcImage</code> has a <a href=\"#features-formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a> and the <code>dstImage</code> does not have a multi-planar image format, the <code>dstSubresource</code> <code>aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>" }, { "vuid": "VUID-VkImageCopy-dstImage-01557", - "text": " If the calling command’s <code>dstImage</code> has a &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion,multi-planar image format&amp;gt;&amp;gt; and the <code>srcImage</code> does not have a multi-planar image format, the <code>srcSubresource</code> <code>aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>" + "text": " If the calling command’s <code>dstImage</code> has a <a href=\"#features-formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a> and the <code>srcImage</code> does not have a multi-planar image format, the <code>srcSubresource</code> <code>aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>" }, { "vuid": "VUID-VkImageCopy-srcImage-01727", @@ -10690,7 +12030,7 @@ }, { "vuid": "VUID-VkImageCopy-srcImage-01790", - "text": " If both <code>srcImage</code> and <code>dstImage</code> are of type <code>VK_IMAGE_TYPE_2D</code> then then <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>." + "text": " If both <code>srcImage</code> and <code>dstImage</code> are of type <code>VK_IMAGE_TYPE_2D</code> then <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>." }, { "vuid": "VUID-VkImageCopy-srcImage-01791", @@ -10790,13 +12130,19 @@ "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</code><em>_i</em>_BIT_EXT for any index <em>i</em>." + } ] }, "vkCmdCopyBufferToImage": { "core": [ { "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 &amp;lt;&amp;lt;copies-buffers-images-addressing,Buffer and Image Addressing&amp;gt;&amp;gt;, 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>" }, { "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-00172", @@ -10864,7 +12210,7 @@ }, { "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-cmdpool", @@ -10883,16 +12229,10 @@ "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 <code>VkDevice</code>" } ], - "!(VK_ANDROID_external_memory_android_hardware_buffer)+(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00175", - "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> use a format that supports <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>, which is indicated by <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - } - ], - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ + "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-01940", - "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> use a format that supports <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>, which is indicated by <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" + "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)": [ @@ -10930,7 +12270,7 @@ }, { "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 &amp;lt;&amp;lt;copies-buffers-images-addressing,Buffer and Image Addressing&amp;gt;&amp;gt;, 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>" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-00184", @@ -10994,7 +12334,7 @@ }, { "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-cmdpool", @@ -11013,16 +12353,10 @@ "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 <code>VkDevice</code>" } ], - "!(VK_ANDROID_external_memory_android_hardware_buffer)+(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00185", - "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> use a format that supports <code>VK_FORMAT_FEATURE_TRANSFER_SRC_BIT</code>, which is indicated by <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - } - ], - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ + "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-01941", - "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> use a format that supports <code>VK_FORMAT_FEATURE_TRANSFER_SRC_BIT</code>, which is indicated by <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" + "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)": [ @@ -11090,11 +12424,11 @@ "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ { "vuid": "VUID-VkBufferImageCopy-bufferOffset-01558", - "text": " If the calling command’s <code>VkImage</code> parameter’s format is not a depth/stencil format or a &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion,multi-planar format&amp;gt;&amp;gt;, then <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format’s element size" + "text": " If the calling command’s <code>VkImage</code> parameter’s format is not a depth/stencil format or a <a href=\"#features-formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then <code>bufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of the format’s element size" }, { "vuid": "VUID-VkBufferImageCopy-bufferOffset-01559", - "text": " If the calling command’s <code>VkImage</code> parameter’s format is a &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion,multi-planar format&amp;gt;&amp;gt;, then <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 &amp;lt;&amp;lt;features-formats-compatible-planes&amp;gt;&amp;gt;" + "text": " If the calling command’s <code>VkImage</code> parameter’s format is a <a href=\"#features-formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then <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=\"#features-formats-compatible-planes\">Compatible formats of planes of multi-planar formats</a>" }, { "vuid": "VUID-VkBufferImageCopy-None-01735", @@ -11126,7 +12460,7 @@ }, { "vuid": "VUID-VkBufferImageCopy-aspectMask-01560", - "text": " If the calling command’s <code>VkImage</code> parameter’s format is a &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion,multi-planar format&amp;gt;&amp;gt;, then the <code>aspectMask</code> member of <code>imageSubresource</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> (with <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code> valid only for image formats with three planes)" + "text": " If the calling command’s <code>VkImage</code> parameter’s format is a <a href=\"#features-formats-requiring-sampler-ycbcr-conversion\">multi-planar format</a>, then the <code>aspectMask</code> member of <code>imageSubresource</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> (with <code>VK_IMAGE_ASPECT_PLANE_2_BIT</code> valid only for image formats with three planes)" } ], "core": [ @@ -11175,13 +12509,15 @@ "text": " If the calling command’s <code>VkImage</code> parameter is of <a href=\"#VkImageType\">VkImageType</a> <code>VK_IMAGE_TYPE_3D</code>, the <code>baseArrayLayer</code> and <code>layerCount</code> members of <code>imageSubresource</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>1</code>, respectively" }, { - "vuid": "VUID-VkBufferImageCopy-None-00214", - "text": " When copying to the depth aspect of an image subresource, the data in the source buffer <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0,1]</span>" - }, - { "vuid": "VUID-VkBufferImageCopy-imageSubresource-parameter", "text": " <code>imageSubresource</code> <strong class=\"purple\">must</strong> be a valid <code>VkImageSubresourceLayers</code> structure" } + ], + "!(VK_EXT_depth_range_unrestricted)": [ + { + "vuid": "VUID-VkBufferImageCopy-None-00214", + "text": " When copying to the depth aspect of an image subresource, the data in the source buffer <strong class=\"purple\">must</strong> be in the range <span class=\"eq\">[0,1]</span>" + } ] }, "vkCmdBlitImage": { @@ -11199,6 +12535,10 @@ "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" }, { + "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>." + }, + { "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" }, @@ -11211,6 +12551,10 @@ "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>" }, { + "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" }, @@ -11251,6 +12595,10 @@ "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" }, @@ -11296,7 +12644,7 @@ }, { "vuid": "VUID-vkCmdBlitImage-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdBlitImage-commandBuffer-cmdpool", @@ -11315,42 +12663,14 @@ "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 <code>VkDevice</code>" } ], - "!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdBlitImage-srcImage-00218", - "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> use a format that supports <code>VK_FORMAT_FEATURE_BLIT_SRC_BIT</code>, which is indicated by <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - }, - { - "vuid": "VUID-vkCmdBlitImage-dstImage-00223", - "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> use a format that supports <code>VK_FORMAT_FEATURE_BLIT_DST_BIT</code>, which is indicated by <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - }, - { - "vuid": "VUID-vkCmdBlitImage-filter-00235", - "text": " If <code>filter</code> is <code>VK_FILTER_LINEAR</code>, <code>srcImage</code> <strong class=\"purple\">must</strong> be of a format which supports linear filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - } - ], - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdBlitImage-srcImage-01942", - "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> use a format that supports <code>VK_FORMAT_FEATURE_TRANSFER_SRC_BIT</code>, which is indicated by <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" - }, - { - "vuid": "VUID-vkCmdBlitImage-dstImage-01943", - "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> use a format that supports <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>, which is indicated by <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" - }, - { - "vuid": "VUID-vkCmdBlitImage-filter-01944", - "text": " If <code>filter</code> is <code>VK_FILTER_LINEAR</code>, <code>srcImage</code> <strong class=\"purple\">must</strong> be of a format which supports linear filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code> flag in <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" - } - ], "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ { "vuid": "VUID-vkCmdBlitImage-srcImage-01561", - "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> not use a format listed in &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion&amp;gt;&amp;gt;" + "text": " <code>srcImage</code> <strong class=\"purple\">must</strong> not use a format listed in <a href=\"#features-formats-requiring-sampler-ycbcr-conversion\">Formats requiring sampler Y’C<sub>B</sub>C<sub>R</sub> conversion for <code>VK_IMAGE_ASPECT_COLOR_BIT</code> image views</a>" }, { "vuid": "VUID-vkCmdBlitImage-dstImage-01562", - "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> not use a format listed in &amp;lt;&amp;lt;features-formats-requiring-sampler-ycbcr-conversion&amp;gt;&amp;gt;" + "text": " <code>dstImage</code> <strong class=\"purple\">must</strong> not use a format listed in <a href=\"#features-formats-requiring-sampler-ycbcr-conversion\">Formats requiring sampler Y’C<sub>B</sub>C<sub>R</sub> conversion for <code>VK_IMAGE_ASPECT_COLOR_BIT</code> image views</a>" } ], "!(VK_KHR_shared_presentable_image)": [ @@ -11373,20 +12693,12 @@ "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_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdBlitImage-filter-00236", - "text": " If <code>filter</code> is <code>VK_FILTER_CUBIC_IMG</code>, <code>srcImage</code> <strong class=\"purple\">must</strong> be of a format which supports cubic filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - } - ], - "(VK_IMG_filter_cubic)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdBlitImage-filter-01945", - "text": " If <code>filter</code> is <code>VK_FILTER_CUBIC_IMG</code>, <code>srcImage</code> <strong class=\"purple\">must</strong> be of a format which supports cubic filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code> flag in <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by<a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" - } - ], "(VK_IMG_filter_cubic)": [ { + "vuid": "VUID-vkCmdBlitImage-filter-02002", + "text": " If <code>filter</code> is <code>VK_FILTER_CUBIC_IMG</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_IMG</code>." + }, + { "vuid": "VUID-vkCmdBlitImage-filter-00237", "text": " If <code>filter</code> is <code>VK_FILTER_CUBIC_IMG</code>, <code>srcImage</code> <strong class=\"purple\">must</strong> have a <a href=\"#VkImageType\">VkImageType</a> of <code>VK_IMAGE_TYPE_2D</code>" } @@ -11517,12 +12829,8 @@ "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-00264", - "text": " If <code>dstImage</code> was created with <code>tiling</code> equal to <code>VK_IMAGE_TILING_LINEAR</code>, <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with a <code>format</code> that supports being a color attachment, as specified by the <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code>" - }, - { - "vuid": "VUID-vkCmdResolveImage-dstImage-00265", - "text": " If <code>dstImage</code> was created with <code>tiling</code> equal to <code>VK_IMAGE_TILING_OPTIMAL</code>, <code>dstImage</code> <strong class=\"purple\">must</strong> have been created with a <code>format</code> that supports being a color attachment, as specified by the <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> flag in <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</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", @@ -11570,7 +12878,7 @@ }, { "vuid": "VUID-vkCmdResolveImage-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdResolveImage-commandBuffer-cmdpool", @@ -11720,7 +13028,7 @@ }, { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-cmdpool", @@ -11740,11 +13048,11 @@ }, { "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00429", - "text": " If the &amp;lt;&amp;lt;features-features-geometryShader,geometry shaders&amp;gt;&amp;gt; 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-features-geometryShader\">geometry shaders</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>" }, { "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00430", - "text": " If the &amp;lt;&amp;lt;features-features-tessellationShader,tessellation shaders&amp;gt;&amp;gt; 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-features-tessellationShader\">tessellation shaders</a> feature is not enabled, <code>topology</code> <strong class=\"purple\">must</strong> not be <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>" }, { "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-sType-sType", @@ -11796,7 +13104,7 @@ }, { "vuid": "VUID-vkCmdBindIndexBuffer-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdBindIndexBuffer-commandBuffer-cmdpool", @@ -11812,7 +13120,7 @@ "core": [ { "vuid": "VUID-vkCmdDraw-renderPass-00435", - "text": " The current render pass <strong class=\"purple\">must</strong> be &amp;lt;&amp;lt;renderpass-compatibility,compatible&amp;gt;&amp;gt; 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>." + "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-00436", @@ -11820,11 +13128,11 @@ }, { "vuid": "VUID-vkCmdDraw-None-00437", - "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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 &amp;lt;&amp;lt;descriptorsets-compatibility&amp;gt;&amp;gt;" + "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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-00438", - "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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 &amp;lt;&amp;lt;descriptorsets-compatibility&amp;gt;&amp;gt;" + "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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>" }, { "vuid": "VUID-vkCmdDraw-None-00439", @@ -11836,7 +13144,7 @@ }, { "vuid": "VUID-vkCmdDraw-None-00441", - "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 &amp;lt;&amp;lt;fxvertex-input&amp;gt;&amp;gt;" + "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-None-00442", @@ -11864,23 +13172,27 @@ }, { "vuid": "VUID-vkCmdDraw-None-00448", - "text": " If the &amp;lt;&amp;lt;features-features-robustBufferAccess,robust buffer access&amp;gt;&amp;gt; feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" }, { "vuid": "VUID-vkCmdDraw-None-00449", - "text": " If the &amp;lt;&amp;lt;features-features-robustBufferAccess,robust buffer access&amp;gt;&amp;gt; feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" }, { "vuid": "VUID-vkCmdDraw-None-01499", "text": " Image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this command." }, { + "vuid": "VUID-vkCmdDraw-None-02009", + "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_LINEAR</code> as a result of this command, then the image view’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>." + }, + { "vuid": "VUID-vkCmdDraw-commandBuffer-parameter", "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" }, { "vuid": "VUID-vkCmdDraw-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdDraw-commandBuffer-cmdpool", @@ -11891,32 +13203,12 @@ "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance" } ], - "!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDraw-linearTilingFeatures-00450", - "text": " Any <code>VkImageView</code> being sampled with <code>VK_FILTER_LINEAR</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports linear filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - } - ], - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDraw-formatFeatures-01953", - "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_LINEAR</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports linear filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code> flag in <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" - } - ], - "(VK_IMG_filter_cubic)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDraw-linearTilingFeatures-00451", - "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports cubic filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - } - ], - "(VK_IMG_filter_cubic)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDraw-formatFeatures-01954", - "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports cubic filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code> flag in <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" - } - ], "(VK_IMG_filter_cubic)": [ { + "vuid": "VUID-vkCmdDraw-None-02010", + "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command, then the image view’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_IMG</code>." + }, + { "vuid": "VUID-vkCmdDraw-None-00452", "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</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>" } @@ -11946,13 +13238,19 @@ "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-01512", "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" } + ], + "(VK_NV_corner_sampled_image)": [ + { + "vuid": "VUID-vkCmdDraw-flags-02042", + "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>." + } ] }, "vkCmdDrawIndexed": { "core": [ { "vuid": "VUID-vkCmdDrawIndexed-renderPass-00454", - "text": " The current render pass <strong class=\"purple\">must</strong> be &amp;lt;&amp;lt;renderpass-compatibility,compatible&amp;gt;&amp;gt; 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>." + "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-00455", @@ -11960,11 +13258,11 @@ }, { "vuid": "VUID-vkCmdDrawIndexed-None-00456", - "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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 &amp;lt;&amp;lt;descriptorsets-compatibility&amp;gt;&amp;gt;" + "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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-00457", - "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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 &amp;lt;&amp;lt;descriptorsets-compatibility&amp;gt;&amp;gt;" + "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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>" }, { "vuid": "VUID-vkCmdDrawIndexed-None-00458", @@ -11976,7 +13274,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexed-None-00460", - "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 &amp;lt;&amp;lt;fxvertex-input&amp;gt;&amp;gt;" + "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-00461", @@ -12008,11 +13306,15 @@ }, { "vuid": "VUID-vkCmdDrawIndexed-None-00468", - "text": " If the &amp;lt;&amp;lt;features-features-robustBufferAccess,robust buffer access&amp;gt;&amp;gt; feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" }, { "vuid": "VUID-vkCmdDrawIndexed-None-00469", - "text": " If the &amp;lt;&amp;lt;features-features-robustBufferAccess,robust buffer access&amp;gt;&amp;gt; feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-None-02011", + "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_LINEAR</code> as a result of this command, then the image view’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>." }, { "vuid": "VUID-vkCmdDrawIndexed-None-01500", @@ -12024,7 +13326,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-cmdpool", @@ -12035,32 +13337,12 @@ "text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance" } ], - "!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDrawIndexed-linearTilingFeatures-00470", - "text": " Any <code>VkImageView</code> being sampled with <code>VK_FILTER_LINEAR</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports linear filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - } - ], - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDrawIndexed-formatFeatures-01955", - "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_LINEAR</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports linear filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code> flag in <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" - } - ], - "(VK_IMG_filter_cubic)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDrawIndexed-linearTilingFeatures-00471", - "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports cubic filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - } - ], - "(VK_IMG_filter_cubic)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDrawIndexed-formatFeatures-01956", - "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports cubic filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code> flag in <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" - } - ], "(VK_IMG_filter_cubic)": [ { + "vuid": "VUID-vkCmdDrawIndexed-None-02012", + "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command, then the image view’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_IMG</code>." + }, + { "vuid": "VUID-vkCmdDrawIndexed-None-00472", "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</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>" } @@ -12090,6 +13372,12 @@ "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-01513", "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" } + ], + "(VK_NV_corner_sampled_image)": [ + { + "vuid": "VUID-vkCmdDrawIndexed-flags-02043", + "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>." + } ] }, "vkCmdDrawIndirect": { @@ -12116,11 +13404,11 @@ }, { "vuid": "VUID-vkCmdDrawIndirect-firstInstance-00478", - "text": " If the &amp;lt;&amp;lt;features-features-drawIndirectFirstInstance,drawIndirectFirstInstance&amp;gt;&amp;gt; feature is not enabled, all the <code>firstInstance</code> members of the <code>VkDrawIndirectCommand</code> structures accessed by this command <strong class=\"purple\">must</strong> be <code>0</code>" + "text": " If the <a href=\"#features-features-drawIndirectFirstInstance\">drawIndirectFirstInstance</a> feature is not enabled, all the <code>firstInstance</code> members of the <code>VkDrawIndirectCommand</code> structures accessed by this command <strong class=\"purple\">must</strong> be <code>0</code>" }, { "vuid": "VUID-vkCmdDrawIndirect-renderPass-00479", - "text": " The current render pass <strong class=\"purple\">must</strong> be &amp;lt;&amp;lt;renderpass-compatibility,compatible&amp;gt;&amp;gt; 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>." + "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-00480", @@ -12128,11 +13416,11 @@ }, { "vuid": "VUID-vkCmdDrawIndirect-None-00481", - "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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 &amp;lt;&amp;lt;descriptorsets-compatibility&amp;gt;&amp;gt;" + "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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-00482", - "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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 &amp;lt;&amp;lt;descriptorsets-compatibility&amp;gt;&amp;gt;" + "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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>" }, { "vuid": "VUID-vkCmdDrawIndirect-None-00483", @@ -12180,11 +13468,15 @@ }, { "vuid": "VUID-vkCmdDrawIndirect-None-00494", - "text": " If the &amp;lt;&amp;lt;features-features-robustBufferAccess,robust buffer access&amp;gt;&amp;gt; feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" }, { "vuid": "VUID-vkCmdDrawIndirect-None-00495", - "text": " If the &amp;lt;&amp;lt;features-features-robustBufferAccess,robust buffer access&amp;gt;&amp;gt; feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-None-02013", + "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_LINEAR</code> as a result of this command, then the image view’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>." }, { "vuid": "VUID-vkCmdDrawIndirect-None-01501", @@ -12200,7 +13492,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-cmdpool", @@ -12215,32 +13507,12 @@ "text": " Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <code>VkDevice</code>" } ], - "!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDrawIndirect-linearTilingFeatures-00496", - "text": " Any <code>VkImageView</code> being sampled with <code>VK_FILTER_LINEAR</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports linear filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - } - ], - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDrawIndirect-formatFeatures-01957", - "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_LINEAR</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports linear filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code> flag in <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" - } - ], - "(VK_IMG_filter_cubic)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDrawIndirect-linearTilingFeatures-00497", - "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports cubic filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - } - ], - "(VK_IMG_filter_cubic)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDrawIndirect-formatFeatures-01958", - "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports cubic filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code> flag in <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" - } - ], "(VK_IMG_filter_cubic)": [ { + "vuid": "VUID-vkCmdDrawIndirect-None-02014", + "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command, then the image view’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_IMG</code>." + }, + { "vuid": "VUID-vkCmdDrawIndirect-None-00498", "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</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>" } @@ -12270,17 +13542,23 @@ "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-01514", "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" } + ], + "(VK_NV_corner_sampled_image)": [ + { + "vuid": "VUID-vkCmdDrawIndirect-flags-02044", + "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>." + } ] }, "VkDrawIndirectCommand": { "core": [ { "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 &amp;lt;&amp;lt;fxvertex-input&amp;gt;&amp;gt;" + "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-VkDrawIndirectCommand-firstInstance-00501", - "text": " If the &amp;lt;&amp;lt;features-features-drawIndirectFirstInstance,drawIndirectFirstInstance&amp;gt;&amp;gt; feature is not enabled, <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>" + "text": " If the <a href=\"#features-features-drawIndirectFirstInstance\">drawIndirectFirstInstance</a> feature is not enabled, <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>" } ] }, @@ -12320,11 +13598,11 @@ }, { "vuid": "VUID-vkCmdDrawIndirectCountKHR-firstInstance-03112", - "text": " If the &amp;lt;&amp;lt;features-features-drawIndirectFirstInstance,drawIndirectFirstInstance&amp;gt;&amp;gt; feature is not enabled, all the <code>firstInstance</code> members of the <code>VkDrawIndirectCommand</code> structures accessed by this command <strong class=\"purple\">must</strong> be <code>0</code>" + "text": " If the <a href=\"#features-features-drawIndirectFirstInstance\">drawIndirectFirstInstance</a> feature is not enabled, all the <code>firstInstance</code> members of the <code>VkDrawIndirectCommand</code> structures accessed by this command <strong class=\"purple\">must</strong> be <code>0</code>" }, { "vuid": "VUID-vkCmdDrawIndirectCountKHR-renderPass-03113", - "text": " The current render pass <strong class=\"purple\">must</strong> be &amp;lt;&amp;lt;renderpass-compatibility,compatible&amp;gt;&amp;gt; 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>." + "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-vkCmdDrawIndirectCountKHR-subpass-03114", @@ -12332,11 +13610,11 @@ }, { "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-03115", - "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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 &amp;lt;&amp;lt;descriptorsets-compatibility&amp;gt;&amp;gt;" + "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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-vkCmdDrawIndirectCountKHR-None-03116", - "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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 &amp;lt;&amp;lt;descriptorsets-compatibility&amp;gt;&amp;gt;" + "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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>" }, { "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-03117", @@ -12384,15 +13662,15 @@ }, { "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-03128", - "text": " If the &amp;lt;&amp;lt;features-features-robustBufferAccess,robust buffer access&amp;gt;&amp;gt; feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" }, { "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-03129", - "text": " If the &amp;lt;&amp;lt;features-features-robustBufferAccess,robust buffer access&amp;gt;&amp;gt; feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" }, { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-linearTilingFeatures-03130", - "text": " Any <code>VkImageView</code> being sampled with <code>VK_FILTER_LINEAR</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports linear filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> (for a linear image) or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code>(for an optimally tiled image) returned by <code>vkGetPhysicalDeviceFormatProperties</code>" + "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-02015", + "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_LINEAR</code> as a result of this command, then the image view’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>." }, { "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-03131", @@ -12412,7 +13690,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirectCountKHR-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdDrawIndirectCountKHR-commandBuffer-cmdpool", @@ -12429,8 +13707,8 @@ ], "(VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic)": [ { - "vuid": "VUID-vkCmdDrawIndirectCountKHR-linearTilingFeatures-03169", - "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports cubic filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> (for a linear image) or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code>(for an optimally tiled image) returned by <code>vkGetPhysicalDeviceFormatProperties</code>" + "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-02016", + "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command, then the image view’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_IMG</code>." }, { "vuid": "VUID-vkCmdDrawIndirectCountKHR-None-03170", @@ -12462,6 +13740,12 @@ "vuid": "VUID-vkCmdDrawIndirectCountKHR-sampleLocationsEnable-03171", "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" } + ], + "(VK_KHR_draw_indirect_count)+(VK_NV_corner_sampled_image)": [ + { + "vuid": "VUID-vkCmdDrawIndirectCountKHR-flags-02045", + "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>." + } ] }, "vkCmdDrawIndirectCountAMD": { @@ -12500,11 +13784,11 @@ }, { "vuid": "VUID-vkCmdDrawIndirectCountAMD-firstInstance-00506", - "text": " If the &amp;lt;&amp;lt;features-features-drawIndirectFirstInstance,drawIndirectFirstInstance&amp;gt;&amp;gt; feature is not enabled, all the <code>firstInstance</code> members of the <code>VkDrawIndirectCommand</code> structures accessed by this command <strong class=\"purple\">must</strong> be <code>0</code>" + "text": " If the <a href=\"#features-features-drawIndirectFirstInstance\">drawIndirectFirstInstance</a> feature is not enabled, all the <code>firstInstance</code> members of the <code>VkDrawIndirectCommand</code> structures accessed by this command <strong class=\"purple\">must</strong> be <code>0</code>" }, { "vuid": "VUID-vkCmdDrawIndirectCountAMD-renderPass-00507", - "text": " The current render pass <strong class=\"purple\">must</strong> be &amp;lt;&amp;lt;renderpass-compatibility,compatible&amp;gt;&amp;gt; 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>." + "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-vkCmdDrawIndirectCountAMD-subpass-00508", @@ -12512,11 +13796,11 @@ }, { "vuid": "VUID-vkCmdDrawIndirectCountAMD-None-00509", - "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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 &amp;lt;&amp;lt;descriptorsets-compatibility&amp;gt;&amp;gt;" + "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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-vkCmdDrawIndirectCountAMD-None-00510", - "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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 &amp;lt;&amp;lt;descriptorsets-compatibility&amp;gt;&amp;gt;" + "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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>" }, { "vuid": "VUID-vkCmdDrawIndirectCountAMD-None-00511", @@ -12564,11 +13848,15 @@ }, { "vuid": "VUID-vkCmdDrawIndirectCountAMD-None-00522", - "text": " If the &amp;lt;&amp;lt;features-features-robustBufferAccess,robust buffer access&amp;gt;&amp;gt; feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" }, { "vuid": "VUID-vkCmdDrawIndirectCountAMD-None-00523", - "text": " If the &amp;lt;&amp;lt;features-features-robustBufferAccess,robust buffer access&amp;gt;&amp;gt; feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCountAMD-None-02017", + "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_LINEAR</code> as a result of this command, then the image view’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>." }, { "vuid": "VUID-vkCmdDrawIndirectCountAMD-None-01502", @@ -12588,7 +13876,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirectCountAMD-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdDrawIndirectCountAMD-commandBuffer-cmdpool", @@ -12603,18 +13891,6 @@ "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 <code>VkDevice</code>" } ], - "(VK_AMD_draw_indirect_count)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-linearTilingFeatures-00524", - "text": " Any <code>VkImageView</code> being sampled with <code>VK_FILTER_LINEAR</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports linear filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - } - ], - "(VK_AMD_draw_indirect_count)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCountAMD-formatFeatures-01959", - "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_LINEAR</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports linear filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code> flag in <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" - } - ], "(VK_AMD_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_multiview)": [ { "vuid": "VUID-vkCmdDrawIndirectCountAMD-maxMultiviewInstanceIndex-00525", @@ -12640,6 +13916,12 @@ "vuid": "VUID-vkCmdDrawIndirectCountAMD-sampleLocationsEnable-01515", "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" } + ], + "(VK_AMD_draw_indirect_count)+(VK_NV_corner_sampled_image)": [ + { + "vuid": "VUID-vkCmdDrawIndirectCountAMD-flags-02046", + "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>." + } ] }, "vkCmdDrawIndexedIndirect": { @@ -12666,11 +13948,11 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-firstInstance-00530", - "text": " If the &amp;lt;&amp;lt;features-features-drawIndirectFirstInstance,drawIndirectFirstInstance&amp;gt;&amp;gt; feature is not enabled, all the <code>firstInstance</code> members of the <code>VkDrawIndexedIndirectCommand</code> structures accessed by this command <strong class=\"purple\">must</strong> be <code>0</code>" + "text": " If the <a href=\"#features-features-drawIndirectFirstInstance\">drawIndirectFirstInstance</a> feature is not enabled, all the <code>firstInstance</code> members of the <code>VkDrawIndexedIndirectCommand</code> structures accessed by this command <strong class=\"purple\">must</strong> be <code>0</code>" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-renderPass-00531", - "text": " The current render pass <strong class=\"purple\">must</strong> be &amp;lt;&amp;lt;renderpass-compatibility,compatible&amp;gt;&amp;gt; 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>." + "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-00532", @@ -12678,11 +13960,11 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-00533", - "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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 &amp;lt;&amp;lt;descriptorsets-compatibility&amp;gt;&amp;gt;" + "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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-00534", - "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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 &amp;lt;&amp;lt;descriptorsets-compatibility&amp;gt;&amp;gt;" + "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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>" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-00535", @@ -12730,11 +14012,15 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-00546", - "text": " If the &amp;lt;&amp;lt;features-features-robustBufferAccess,robust buffer access&amp;gt;&amp;gt; feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-00547", - "text": " If the &amp;lt;&amp;lt;features-features-robustBufferAccess,robust buffer access&amp;gt;&amp;gt; feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02018", + "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_LINEAR</code> as a result of this command, then the image view’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>." }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-01503", @@ -12750,7 +14036,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-cmdpool", @@ -12765,32 +14051,12 @@ "text": " Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <code>VkDevice</code>" } ], - "!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-linearTilingFeatures-00548", - "text": " Any <code>VkImageView</code> being sampled with <code>VK_FILTER_LINEAR</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports linear filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - } - ], - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-formatFeatures-01960", - "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_LINEAR</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports linear filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code> flag in <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" - } - ], - "(VK_IMG_filter_cubic)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-linearTilingFeatures-00549", - "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports cubic filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - } - ], - "(VK_IMG_filter_cubic)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-formatFeatures-01961", - "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports cubic filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code> flag in <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" - } - ], "(VK_IMG_filter_cubic)": [ { + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02019", + "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command, then the image view’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_IMG</code>." + }, + { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-00550", "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</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>" } @@ -12820,13 +14086,19 @@ "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-01516", "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" } + ], + "(VK_NV_corner_sampled_image)": [ + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-flags-02047", + "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>." + } ] }, "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 &amp;lt;&amp;lt;fxvertex-input&amp;gt;&amp;gt;" + "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-indexSize-00553", @@ -12834,7 +14106,7 @@ }, { "vuid": "VUID-VkDrawIndexedIndirectCommand-firstInstance-00554", - "text": " If the &amp;lt;&amp;lt;features-features-drawIndirectFirstInstance,drawIndirectFirstInstance&amp;gt;&amp;gt; feature is not enabled, <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>" + "text": " If the <a href=\"#features-features-drawIndirectFirstInstance\">drawIndirectFirstInstance</a> feature is not enabled, <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>" } ] }, @@ -12874,11 +14146,11 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-firstInstance-03144", - "text": " If the &amp;lt;&amp;lt;features-features-drawIndirectFirstInstance,drawIndirectFirstInstance&amp;gt;&amp;gt; feature is not enabled, all the <code>firstInstance</code> members of the <code>VkDrawIndexedIndirectCommand</code> structures accessed by this command <strong class=\"purple\">must</strong> be <code>0</code>" + "text": " If the <a href=\"#features-features-drawIndirectFirstInstance\">drawIndirectFirstInstance</a> feature is not enabled, all the <code>firstInstance</code> members of the <code>VkDrawIndexedIndirectCommand</code> structures accessed by this command <strong class=\"purple\">must</strong> be <code>0</code>" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-renderPass-03145", - "text": " The current render pass <strong class=\"purple\">must</strong> be &amp;lt;&amp;lt;renderpass-compatibility,compatible&amp;gt;&amp;gt; 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>." + "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-vkCmdDrawIndexedIndirectCountKHR-subpass-03146", @@ -12886,11 +14158,11 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-03147", - "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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 &amp;lt;&amp;lt;descriptorsets-compatibility&amp;gt;&amp;gt;" + "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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-vkCmdDrawIndexedIndirectCountKHR-None-03148", - "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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 &amp;lt;&amp;lt;descriptorsets-compatibility&amp;gt;&amp;gt;" + "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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>" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-03149", @@ -12938,15 +14210,15 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-03160", - "text": " If the &amp;lt;&amp;lt;features-features-robustBufferAccess,robust buffer access&amp;gt;&amp;gt; feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-03161", - "text": " If the &amp;lt;&amp;lt;features-features-robustBufferAccess,robust buffer access&amp;gt;&amp;gt; feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-linearTilingFeatures-03162", - "text": " Any <code>VkImageView</code> being sampled with <code>VK_FILTER_LINEAR</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports linear filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> (for a linear image) or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code>(for an optimally tiled image) returned by <code>vkGetPhysicalDeviceFormatProperties</code>" + "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-02020", + "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_LINEAR</code> as a result of this command, then the image view’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>." }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-03163", @@ -12966,7 +14238,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-commandBuffer-cmdpool", @@ -12983,8 +14255,8 @@ ], "(VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic)": [ { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-linearTilingFeatures-03172", - "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports cubic filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> (for a linear image) or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code>(for an optimally tiled image) returned by <code>vkGetPhysicalDeviceFormatProperties</code>" + "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-02021", + "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command, then the image view’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_IMG</code>." }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-None-03173", @@ -13016,6 +14288,12 @@ "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-sampleLocationsEnable-03174", "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" } + ], + "(VK_KHR_draw_indirect_count)+(VK_NV_corner_sampled_image)": [ + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCountKHR-flags-02048", + "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>." + } ] }, "vkCmdDrawIndexedIndirectCountAMD": { @@ -13058,7 +14336,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-renderPass-00560", - "text": " The current render pass <strong class=\"purple\">must</strong> be &amp;lt;&amp;lt;renderpass-compatibility,compatible&amp;gt;&amp;gt; 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>." + "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-vkCmdDrawIndexedIndirectCountAMD-subpass-00561", @@ -13066,11 +14344,11 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-None-00562", - "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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 &amp;lt;&amp;lt;descriptorsets-compatibility&amp;gt;&amp;gt;" + "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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-vkCmdDrawIndexedIndirectCountAMD-None-00563", - "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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 &amp;lt;&amp;lt;descriptorsets-compatibility&amp;gt;&amp;gt;" + "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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>" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-None-00564", @@ -13118,11 +14396,15 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-None-00575", - "text": " If the &amp;lt;&amp;lt;features-features-robustBufferAccess,robust buffer access&amp;gt;&amp;gt; feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-None-00576", - "text": " If the &amp;lt;&amp;lt;features-features-robustBufferAccess,robust buffer access&amp;gt;&amp;gt; feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-None-02022", + "text": " If a <code>VkImageView</code> is sampled with <code>VK_FILTER_LINEAR</code> as a result of this command, then the image view’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>." }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-None-01504", @@ -13142,7 +14424,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-commandBuffer-cmdpool", @@ -13157,18 +14439,6 @@ "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 <code>VkDevice</code>" } ], - "(VK_AMD_draw_indirect_count)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-linearTilingFeatures-00577", - "text": " Any <code>VkImageView</code> being sampled with <code>VK_FILTER_LINEAR</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports linear filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - } - ], - "(VK_AMD_draw_indirect_count)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-formatFeatures-01962", - "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_LINEAR</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports linear filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code> flag in <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" - } - ], "(VK_AMD_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_multiview)": [ { "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-maxMultiviewInstanceIndex-00578", @@ -13194,6 +14464,546 @@ "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-sampleLocationsEnable-01517", "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" } + ], + "(VK_AMD_draw_indirect_count)+(VK_NV_corner_sampled_image)": [ + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCountAMD-flags-02049", + "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>." + } + ] + }, + "vkCmdBeginConditionalRenderingEXT": { + "(VK_EXT_conditional_rendering)": [ + { + "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-None-01980", + "text": " Conditional rendering <strong class=\"purple\">must</strong> not already be <a href=\"#active-conditional-rendering\">active</a>" + }, + { + "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-parameter", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" + }, + { + "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-pConditionalRenderingBegin-parameter", + "text": " <code>pConditionalRenderingBegin</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>VkConditionalRenderingBeginInfoEXT</code> structure" + }, + { + "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-recording", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" + }, + { + "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" + } + ] + }, + "VkConditionalRenderingBeginInfoEXT": { + "(VK_EXT_conditional_rendering)": [ + { + "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" + }, + { + "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" + }, + { + "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." + }, + { + "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-offset-01984", + "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of 4" + } + ] + }, + "vkCmdEndConditionalRenderingEXT": { + "(VK_EXT_conditional_rendering)": [ + { + "vuid": "VUID-vkCmdEndConditionalRenderingEXT-None-01985", + "text": " Conditional rendering <strong class=\"purple\">must</strong> be <a href=\"#active-conditional-rendering\">active</a>" + }, + { + "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 must not be ended inside a render pass instance" + }, + { + "vuid": "VUID-vkCmdEndConditionalRenderingEXT-None-01987", + "text": " If conditional rendering was made <a href=\"#active-conditional-rendering\">active</a> within a subpass it must be ended in the same subpass" + }, + { + "vuid": "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-parameter", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" + }, + { + "vuid": "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-recording", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" + }, + { + "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" + } + ] + }, + "vkCmdDrawMeshTasksNV": { + "(VK_NV_mesh_shader)": [ + { + "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-renderPass-02120", + "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> currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>." + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-subpass-02121", + "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> currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>." + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02122", + "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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-02123", + "text": " For each push constant that is statically used by the <code>VkPipeline</code> currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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>" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02124", + "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 currently bound <code>VkPipeline</code> object, specified via <code>vkCmdBindPipeline</code>" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02125", + "text": " A valid graphics pipeline <strong class=\"purple\">must</strong> be bound to the current command buffer with <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02126", + "text": " If the <code>VkPipeline</code> object currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set on the current command buffer" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02127", + "text": " Every input attachment used by the current subpass <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02128", + "text": " If any <code>VkSampler</code> object that is accessed from a shader by the <code>VkPipeline</code> currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> uses unnormalized coordinates, it <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-02129", + "text": " If any <code>VkSampler</code> object that is accessed from a shader by the <code>VkPipeline</code> currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> uses unnormalized coordinates, it <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-02130", + "text": " If any <code>VkSampler</code> object that is accessed from a shader by the <code>VkPipeline</code> currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> uses unnormalized coordinates, it <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-None-02131", + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the currently bound descriptor set" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02132", + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the currently bound descriptor set" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-linearTilingFeatures-02133", + "text": " Any <code>VkImageView</code> being sampled with <code>VK_FILTER_LINEAR</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports linear filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> (for a linear image) or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code>(for an optimally tiled image) returned by <code>vkGetPhysicalDeviceFormatProperties</code>" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02134", + "text": " Image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this command." + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> 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" + } + ], + "(VK_NV_mesh_shader)+(VK_IMG_filter_cubic)": [ + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-linearTilingFeatures-02135", + "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports cubic filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> (for a linear image) or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code>(for an optimally tiled image) returned by <code>vkGetPhysicalDeviceFormatProperties</code>" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02136", + "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</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_KHR_multiview)": [ + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-maxMultiviewInstanceIndex-02137", + "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_VERSION_1_1)": [ + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02138", + "text": " If <code>commandBuffer</code> is an unprotected command buffer, and any pipeline stage in the <code>VkPipeline</code> object currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> reads from or writes to any image or buffer, that image or buffer <strong class=\"purple\">must</strong> not be a protected image or protected buffer." + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02139", + "text": " If <code>commandBuffer</code> is a protected command buffer, and any pipeline stage in the <code>VkPipeline</code> object currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> writes to any image or buffer, that image or buffer <strong class=\"purple\">must</strong> not be an unprotected image or unprotected buffer." + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02140", + "text": " If <code>commandBuffer</code> is a protected command buffer, and any pipeline stage other than the framebuffer-space pipeline stages in the <code>VkPipeline</code> object currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> reads from or writes to any image or buffer, the image or buffer <strong class=\"purple\">must</strong> not be a protected image or protected buffer." + } + ], + "(VK_NV_mesh_shader)+(VK_EXT_sample_locations)": [ + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-02141", + "text": " If the currently 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" + } + ], + "(VK_NV_mesh_shader)+(VK_NV_corner_sampled_image)": [ + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-flags-02142", + "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>." + } + ] + }, + "vkCmdDrawMeshTasksIndirectNV": { + "(VK_NV_mesh_shader)": [ + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02143", + "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-02144", + "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-02145", + "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</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-02147", + "text": " If the <a href=\"#features-features-multiDrawIndirect\">multi-draw indirect</a> feature is not enabled, <code>drawCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-02148", + "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> currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>." + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-subpass-02149", + "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> currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>." + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02150", + "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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-02151", + "text": " For each push constant that is statically used by the <code>VkPipeline</code> currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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>" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02152", + "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 currently bound <code>VkPipeline</code> object, specified via <code>vkCmdBindPipeline</code>" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02153", + "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface <strong class=\"purple\">must</strong> have valid buffers bound" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02154", + "text": " A valid graphics pipeline <strong class=\"purple\">must</strong> be bound to the current command buffer with <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02155", + "text": " If the <code>VkPipeline</code> object currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set on the current command buffer" + }, + { + "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>" + }, + { + "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) + <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>" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02158", + "text": " <code>drawCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxDrawIndirectCount</code>" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02159", + "text": " Every input attachment used by the current subpass <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02160", + "text": " If any <code>VkSampler</code> object that is accessed from a shader by the <code>VkPipeline</code> currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> uses unnormalized coordinates, it <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-02161", + "text": " If any <code>VkSampler</code> object that is accessed from a shader by the <code>VkPipeline</code> currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> uses unnormalized coordinates, it <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-02162", + "text": " If any <code>VkSampler</code> object that is accessed from a shader by the <code>VkPipeline</code> currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> uses unnormalized coordinates, it <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-None-02163", + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the currently bound descriptor set" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02164", + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the currently bound descriptor set" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-linearTilingFeatures-02165", + "text": " Any <code>VkImageView</code> being sampled with <code>VK_FILTER_LINEAR</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports linear filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> (for a linear image) or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code>(for an optimally tiled image) returned by <code>vkGetPhysicalDeviceFormatProperties</code>" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02166", + "text": " Image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this command." + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameter", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-parameter", + "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkBuffer</code> 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-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 <code>VkDevice</code>" + } + ], + "(VK_NV_mesh_shader)+(VK_IMG_filter_cubic)": [ + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-linearTilingFeatures-02167", + "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports cubic filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> (for a linear image) or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code>(for an optimally tiled image) returned by <code>vkGetPhysicalDeviceFormatProperties</code>" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02168", + "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</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_KHR_multiview)": [ + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-maxMultiviewInstanceIndex-02169", + "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_VERSION_1_1)": [ + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02170", + "text": " If <code>commandBuffer</code> is an unprotected command buffer, and any pipeline stage in the <code>VkPipeline</code> object currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> reads from or writes to any image or buffer, that image or buffer <strong class=\"purple\">must</strong> not be a protected image or protected buffer." + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02171", + "text": " If <code>commandBuffer</code> is a protected command buffer, and any pipeline stage in the <code>VkPipeline</code> object currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> writes to any image or buffer, that image or buffer <strong class=\"purple\">must</strong> not be an unprotected image or unprotected buffer." + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02172", + "text": " If <code>commandBuffer</code> is a protected command buffer, and any pipeline stage other than the framebuffer-space pipeline stages in the <code>VkPipeline</code> object currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> reads from or writes to any image or buffer, the image or buffer <strong class=\"purple\">must</strong> not be a protected image or protected buffer." + } + ], + "(VK_NV_mesh_shader)+(VK_EXT_sample_locations)": [ + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-02173", + "text": " If the currently 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" + } + ], + "(VK_NV_mesh_shader)+(VK_NV_corner_sampled_image)": [ + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-flags-02174", + "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>." + } + ] + }, + "VkDrawMeshTasksIndirectCommandNV": { + "(VK_NV_mesh_shader)": [ + { + "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>" + } + ] + }, + "vkCmdDrawMeshTasksIndirectCountNV": { + "(VK_NV_mesh_shader)": [ + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02176", + "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-02177", + "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-countBuffer-02178", + "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-02179", + "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-offset-02180", + "text": " <code>offset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</code>" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-02181", + "text": " <code>countBufferOffset</code> <strong class=\"purple\">must</strong> be a multiple of <code>4</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) + <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>" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-02184", + "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> currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>." + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-subpass-02185", + "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> currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>." + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02186", + "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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-02187", + "text": " For each push constant that is statically used by the <code>VkPipeline</code> currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>, 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>" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02188", + "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 currently bound <code>VkPipeline</code> object, specified via <code>vkCmdBindPipeline</code>" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02189", + "text": " A valid graphics pipeline <strong class=\"purple\">must</strong> be bound to the current command buffer with <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02190", + "text": " If the <code>VkPipeline</code> object currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> requires any dynamic state, that state <strong class=\"purple\">must</strong> have been set on the current command buffer" + }, + { + "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>" + }, + { + "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) + <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>" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02193", + "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-None-02194", + "text": " Every input attachment used by the current subpass <strong class=\"purple\">must</strong> be bound to the pipeline via a descriptor set" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02195", + "text": " If any <code>VkSampler</code> object that is accessed from a shader by the <code>VkPipeline</code> currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> uses unnormalized coordinates, it <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-02196", + "text": " If any <code>VkSampler</code> object that is accessed from a shader by the <code>VkPipeline</code> currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> uses unnormalized coordinates, it <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-02197", + "text": " If any <code>VkSampler</code> object that is accessed from a shader by the <code>VkPipeline</code> currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> uses unnormalized coordinates, it <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-None-02198", + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the currently bound descriptor set" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02199", + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the currently bound descriptor set" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-linearTilingFeatures-02200", + "text": " Any <code>VkImageView</code> being sampled with <code>VK_FILTER_LINEAR</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports linear filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> (for a linear image) or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code>(for an optimally tiled image) returned by <code>vkGetPhysicalDeviceFormatProperties</code>" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02201", + "text": " Image subresources used as attachments in the current render pass <strong class=\"purple\">must</strong> not be accessed in any way other than as an attachment by this command." + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameter", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-parameter", + "text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkBuffer</code> handle" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-parameter", + "text": " <code>countBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkBuffer</code> 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-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 <code>VkDevice</code>" + } + ], + "(VK_NV_mesh_shader)+(VK_KHR_multiview)": [ + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxMultiviewInstanceIndex-02202", + "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_VERSION_1_1)": [ + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02203", + "text": " If <code>commandBuffer</code> is an unprotected command buffer, and any pipeline stage in the <code>VkPipeline</code> object currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> reads from or writes to any image or buffer, that image or buffer <strong class=\"purple\">must</strong> not be a protected image or protected buffer." + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02204", + "text": " If <code>commandBuffer</code> is a protected command buffer, and any pipeline stage in the <code>VkPipeline</code> object currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> writes to any image or buffer, that image or buffer <strong class=\"purple\">must</strong> not be an unprotected image or unprotected buffer." + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02205", + "text": " If <code>commandBuffer</code> is a protected command buffer, and any pipeline stage other than the framebuffer-space pipeline stages in the <code>VkPipeline</code> object currently bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code> reads from or writes to any image or buffer, the image or buffer <strong class=\"purple\">must</strong> not be a protected image or protected buffer." + } + ], + "(VK_NV_mesh_shader)+(VK_EXT_sample_locations)": [ + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-02206", + "text": " If the currently 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" + } ] }, "VkPipelineVertexInputStateCreateInfo": { @@ -13316,7 +15126,7 @@ }, { "vuid": "VUID-vkCmdBindVertexBuffers-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdBindVertexBuffers-commandBuffer-cmdpool", @@ -13355,6 +15165,14 @@ "text": " <code>binding</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxVertexInputBindings</code>" }, { + "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-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-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." }, @@ -13472,7 +15290,7 @@ }, { "vuid": "VUID-vkCmdSetViewportWScalingNV-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdSetViewportWScalingNV-commandBuffer-cmdpool", @@ -13512,7 +15330,7 @@ }, { "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=\"#VkPipelineViewportSwizzleStateCreateInfoNV\">VkPipelineViewportSwizzleStateCreateInfoNV</a> or <a href=\"#VkPipelineViewportWScalingStateCreateInfoNV\">VkPipelineViewportWScalingStateCreateInfoNV</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=\"#VkPipelineViewportCoarseSampleOrderStateCreateInfoNV\">VkPipelineViewportCoarseSampleOrderStateCreateInfoNV</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", @@ -13566,11 +15384,11 @@ }, { "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> <code>VkViewport</code> structures" + "text": " <code>pViewports</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> valid <code>VkViewport</code> structures" }, { "vuid": "VUID-vkCmdSetViewport-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdSetViewport-commandBuffer-cmdpool", @@ -13654,7 +15472,7 @@ "core": [ { "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-depthClampEnable-00782", - "text": " If the &amp;lt;&amp;lt;features-features-depthClamp,depth clamping&amp;gt;&amp;gt; feature is not enabled, <code>depthClampEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>" + "text": " If the <a href=\"#features-features-depthClamp\">depth clamping</a> feature is not enabled, <code>depthClampEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>" }, { "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-sType-sType", @@ -13688,13 +15506,13 @@ "!(VK_NV_fill_rectangle)": [ { "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01413", - "text": " If the &amp;lt;&amp;lt;features-features-fillModeNonSolid,non-solid fill modes&amp;gt;&amp;gt; feature is not enabled, <code>polygonMode</code> <strong class=\"purple\">must</strong> be <code>VK_POLYGON_MODE_FILL</code>" + "text": " If the <a href=\"#features-features-fillModeNonSolid\">non-solid fill modes</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 &amp;lt;&amp;lt;features-features-fillModeNonSolid,non-solid fill modes&amp;gt;&amp;gt; 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-features-fillModeNonSolid\">non-solid fill modes</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>" }, { "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01414", @@ -13706,11 +15524,11 @@ "core": [ { "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-sampleShadingEnable-00784", - "text": " If the &amp;lt;&amp;lt;features-features-sampleRateShading,sample rate shading&amp;gt;&amp;gt; feature is not enabled, <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>" + "text": " If the <a href=\"#features-features-sampleRateShading\">sample rate shading</a> feature is not enabled, <code>sampleShadingEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>" }, { "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-alphaToOneEnable-00785", - "text": " If the &amp;lt;&amp;lt;features-features-alphaToOne,alpha to one&amp;gt;&amp;gt; feature is not enabled, <code>alphaToOneEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>" + "text": " If the <a href=\"#features-features-alphaToOne\">alpha to one</a> feature is not enabled, <code>alphaToOneEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>" }, { "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-minSampleShading-00786", @@ -13788,15 +15606,11 @@ }, { "vuid": "VUID-VkSampleLocationsInfoEXT-sampleLocationsPerPixel-parameter", - "text": " <code>sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value" + "text": " If <code>sampleLocationsPerPixel</code> is not <code>0</code>, <code>sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSampleCountFlagBits\">VkSampleCountFlagBits</a> value" }, { "vuid": "VUID-VkSampleLocationsInfoEXT-pSampleLocations-parameter", - "text": " <code>pSampleLocations</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>sampleLocationsCount</code> <code>VkSampleLocationEXT</code> structures" - }, - { - "vuid": "VUID-VkSampleLocationsInfoEXT-sampleLocationsCount-arraylength", - "text": " <code>sampleLocationsCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" + "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> <code>VkSampleLocationEXT</code> structures" } ] }, @@ -13824,7 +15638,7 @@ }, { "vuid": "VUID-vkCmdSetSampleLocationsEXT-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdSetSampleLocationsEXT-commandBuffer-cmdpool", @@ -13832,6 +15646,258 @@ } ] }, + "VkPipelineViewportShadingRateImageStateCreateInfoNV": { + "(VK_NV_shading_rate_image)": [ + { + "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02054", + "text": " If the <a href=\"#features-features-multiViewport\">multiple viewports</a> feature is not enabled, <code>viewportCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>" + }, + { + "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>" + }, + { + "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-shadingRateImageEnable-02056", + "text": " If <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, <code>viewportCount</code> <strong class=\"purple\">must</strong> be equal to the <code>viewportCount</code> member of <code>VkPipelineViewportStateCreateInfo</code>" + }, + { + "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-pDynamicStates-02057", + "text": " If no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code>, <code>pShadingRatePalettes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> <code>VkShadingRatePaletteNV</code> structures" + }, + { + "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>" + }, + { + "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-pShadingRatePalettes-parameter", + "text": " If <code>viewportCount</code> is not <code>0</code>, and <code>pShadingRatePalettes</code> is not <code>NULL</code>, <code>pShadingRatePalettes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>viewportCount</code> valid <code>VkShadingRatePaletteNV</code> structures" + } + ] + }, + "vkCmdBindShadingRateImageNV": { + "(VK_NV_shading_rate_image)": [ + { + "vuid": "VUID-vkCmdBindShadingRateImageNV-None-02058", + "text": " The <a href=\"#features-features-shadingRateImage\">shading rate image</a> feature <strong class=\"purple\">must</strong> be enabled." + }, + { + "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02059", + "text": " If <code>imageView</code> is not <code>VK_NULL_HANDLE</code>, 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>." + }, + { + "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02060", + "text": " If <code>imageView</code> is not <code>VK_NULL_HANDLE</code>, it <strong class=\"purple\">must</strong> have a format of <code>VK_FORMAT_R8_UINT</code>." + }, + { + "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02061", + "text": " If <code>imageView</code> is not <code>VK_NULL_HANDLE</code>, the image <strong class=\"purple\">must</strong> have been created with <code>VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV</code> set" + }, + { + "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02062", + "text": " If <code>imageView</code> is not <code>VK_NULL_HANDLE</code>, <code>imageLayout</code> <strong class=\"purple\">must</strong> match the actual <code>VkImageLayout</code> of each subresource accessible from <code>imageView</code> at the time the subresource is accessed." + }, + { + "vuid": "VUID-vkCmdBindShadingRateImageNV-imageLayout-02063", + "text": " If <code>imageView</code> is not <code>VK_NULL_HANDLE</code>, <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>." + }, + { + "vuid": "VUID-vkCmdBindShadingRateImageNV-commandBuffer-parameter", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" + }, + { + "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-parameter", + "text": " <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <code>VkImageView</code> handle" + }, + { + "vuid": "VUID-vkCmdBindShadingRateImageNV-imageLayout-parameter", + "text": " <code>imageLayout</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageLayout\">VkImageLayout</a> value" + }, + { + "vuid": "VUID-vkCmdBindShadingRateImageNV-commandBuffer-recording", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" + }, + { + "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" + }, + { + "vuid": "VUID-vkCmdBindShadingRateImageNV-commonparent", + "text": " Both of <code>commandBuffer</code>, and <code>imageView</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <code>VkDevice</code>" + } + ] + }, + "vkCmdSetViewportShadingRatePaletteNV": { + "(VK_NV_shading_rate_image)": [ + { + "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-None-02064", + "text": " The <a href=\"#features-features-shadingRateImage\">shading rate image</a> feature <strong class=\"purple\">must</strong> be enabled." + }, + { + "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-None-02065", + "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> have been created with the <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled" + }, + { + "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02066", + "text": " <code>firstViewport</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>" + }, + { + "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" + }, + { + "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02068", + "text": " If the <a href=\"#features-features-multiViewport\">multiple viewports</a> feature is not enabled, <code>firstViewport</code> <strong class=\"purple\">must</strong> be <code>0</code>" + }, + { + "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-02069", + "text": " If the <a href=\"#features-features-multiViewport\">multiple viewports</a> feature is not enabled, <code>viewportCount</code> <strong class=\"purple\">must</strong> be <code>1</code>" + }, + { + "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-parameter", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" + }, + { + "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 <code>VkShadingRatePaletteNV</code> structures" + }, + { + "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-recording", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" + }, + { + "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" + }, + { + "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-arraylength", + "text": " <code>viewportCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" + } + ] + }, + "VkShadingRatePaletteNV": { + "(VK_NV_shading_rate_image)": [ + { + "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" + }, + { + "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" + }, + { + "vuid": "VUID-VkShadingRatePaletteNV-shadingRatePaletteEntryCount-arraylength", + "text": " <code>shadingRatePaletteEntryCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" + } + ] + }, + "VkPipelineViewportCoarseSampleOrderStateCreateInfoNV": { + "(VK_NV_shading_rate_image)": [ + { + "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>" + }, + { + "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." + }, + { + "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>" + }, + { + "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sampleOrderType-parameter", + "text": " <code>sampleOrderType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCoarseSampleOrderTypeNV\">VkCoarseSampleOrderTypeNV</a> value" + }, + { + "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 <code>VkCoarseSampleOrderCustomNV</code> structures" + } + ] + }, + "VkCoarseSampleOrderCustomNV": { + "(VK_NV_shading_rate_image)": [ + { + "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." + }, + { + "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 <code>VkPhysicalDeviceLimits</code>::<code>framebufferNoAttachmentsSampleCounts</code>." + }, + { + "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>." + }, + { + "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>." + }, + { + "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>." + }, + { + "vuid": "VUID-VkCoarseSampleOrderCustomNV-shadingRate-parameter", + "text": " <code>shadingRate</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkShadingRatePaletteEntryNV\">VkShadingRatePaletteEntryNV</a> value" + }, + { + "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> <code>VkCoarseSampleLocationNV</code> structures" + }, + { + "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-arraylength", + "text": " <code>sampleLocationCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" + } + ] + }, + "VkCoarseSampleLocationNV": { + "(VK_NV_shading_rate_image)": [ + { + "vuid": "VUID-VkCoarseSampleLocationNV-pixelX-02078", + "text": " <code>pixelX</code> <strong class=\"purple\">must</strong> be less than the width (in pixels) of the fragment." + }, + { + "vuid": "VUID-VkCoarseSampleLocationNV-pixelY-02079", + "text": " <code>pixelY</code> <strong class=\"purple\">must</strong> be less than the height (in pixels) of the fragment." + }, + { + "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." + } + ] + }, + "vkCmdSetCoarseSampleOrderNV": { + "(VK_NV_shading_rate_image)": [ + { + "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>" + }, + { + "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." + }, + { + "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-parameter", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" + }, + { + "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-sampleOrderType-parameter", + "text": " <code>sampleOrderType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCoarseSampleOrderTypeNV\">VkCoarseSampleOrderTypeNV</a> value" + }, + { + "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 <code>VkCoarseSampleOrderCustomNV</code> structures" + }, + { + "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-recording", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" + }, + { + "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" + } + ] + }, "vkCmdSetLineWidth": { "core": [ { @@ -13848,7 +15914,7 @@ }, { "vuid": "VUID-vkCmdSetLineWidth-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdSetLineWidth-commandBuffer-cmdpool", @@ -13872,7 +15938,7 @@ }, { "vuid": "VUID-vkCmdSetDepthBias-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdSetDepthBias-commandBuffer-cmdpool", @@ -13952,7 +16018,7 @@ }, { "vuid": "VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-cmdpool", @@ -14008,7 +16074,7 @@ }, { "vuid": "VUID-vkCmdSetScissor-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdSetScissor-commandBuffer-cmdpool", @@ -14020,11 +16086,99 @@ } ] }, + "VkPipelineViewportExclusiveScissorStateCreateInfoNV": { + "(VK_NV_scissor_exclusive)": [ + { + "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02027", + "text": " If the <a href=\"#features-features-multiViewport\">multiple viewports</a> feature is not enabled, <code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or <code>1</code>" + }, + { + "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>" + }, + { + "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02029", + "text": " <code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be <code>0</code> or identical to the <code>viewportCount</code> member of <code>VkPipelineViewportStateCreateInfo</code>" + }, + { + "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-pDynamicStates-02030", + "text": " If no element of the <code>pDynamicStates</code> member of <code>pDynamicState</code> is <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code> and <code>exclusiveScissorCount</code> is not <code>0</code>, <code>pExclusiveScissors</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>exclusiveScissorCount</code> <code>VkRect2D</code> structures" + }, + { + "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>" + }, + { + "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-pExclusiveScissors-parameter", + "text": " If <code>exclusiveScissorCount</code> is not <code>0</code>, and <code>pExclusiveScissors</code> is not <code>NULL</code>, <code>pExclusiveScissors</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>exclusiveScissorCount</code> <code>VkRect2D</code> structures" + } + ] + }, + "vkCmdSetExclusiveScissorNV": { + "(VK_NV_scissor_exclusive)": [ + { + "vuid": "VUID-vkCmdSetExclusiveScissorNV-None-02031", + "text": " The <a href=\"#features-features-exclusiveScissor\">exclusive scissor</a> feature <strong class=\"purple\">must</strong> be enabled." + }, + { + "vuid": "VUID-vkCmdSetExclusiveScissorNV-None-02032", + "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> have been created with the <code>VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV</code> dynamic state enabled" + }, + { + "vuid": "VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02033", + "text": " <code>firstExclusiveScissor</code> <strong class=\"purple\">must</strong> be less than <code>VkPhysicalDeviceLimits</code>::<code>maxViewports</code>" + }, + { + "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" + }, + { + "vuid": "VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02035", + "text": " If the <a href=\"#features-features-multiViewport\">multiple viewports</a> feature is not enabled, <code>firstExclusiveScissor</code> <strong class=\"purple\">must</strong> be <code>0</code>" + }, + { + "vuid": "VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-02036", + "text": " If the <a href=\"#features-features-multiViewport\">multiple viewports</a> feature is not enabled, <code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be <code>1</code>" + }, + { + "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>" + }, + { + "vuid": "VUID-vkCmdSetExclusiveScissorNV-offset-02038", + "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" + }, + { + "vuid": "VUID-vkCmdSetExclusiveScissorNV-offset-02039", + "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" + }, + { + "vuid": "VUID-vkCmdSetExclusiveScissorNV-commandBuffer-parameter", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" + }, + { + "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> <code>VkRect2D</code> structures" + }, + { + "vuid": "VUID-vkCmdSetExclusiveScissorNV-commandBuffer-recording", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" + }, + { + "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" + }, + { + "vuid": "VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-arraylength", + "text": " <code>exclusiveScissorCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" + } + ] + }, "VkPipelineDepthStencilStateCreateInfo": { "core": [ { "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-depthBoundsTestEnable-00598", - "text": " If the &amp;lt;&amp;lt;features-features-depthBounds,depth bounds testing&amp;gt;&amp;gt; feature is not enabled, <code>depthBoundsTestEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>" + "text": " If the <a href=\"#features-features-depthBounds\">depth bounds testing</a> feature is not enabled, <code>depthBoundsTestEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>" }, { "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-sType-sType", @@ -14064,7 +16218,7 @@ }, { "vuid": "VUID-vkCmdSetDepthBounds-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdSetDepthBounds-commandBuffer-cmdpool", @@ -14132,7 +16286,7 @@ }, { "vuid": "VUID-vkCmdSetStencilCompareMask-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdSetStencilCompareMask-commandBuffer-cmdpool", @@ -14160,7 +16314,7 @@ }, { "vuid": "VUID-vkCmdSetStencilWriteMask-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdSetStencilWriteMask-commandBuffer-cmdpool", @@ -14188,7 +16342,7 @@ }, { "vuid": "VUID-vkCmdSetStencilReference-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdSetStencilReference-commandBuffer-cmdpool", @@ -14196,6 +16350,14 @@ } ] }, + "VkPipelineRepresentativeFragmentTestStateCreateInfoNV": { + "(VK_NV_representative_fragment_test)": [ + { + "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>" + } + ] + }, "VkPipelineCoverageToColorStateCreateInfoNV": { "(VK_NV_fragment_coverage_to_color)": [ { @@ -14240,11 +16402,11 @@ "core": [ { "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605", - "text": " If the &amp;lt;&amp;lt;features-features-independentBlend,independent blending&amp;gt;&amp;gt; feature is not enabled, all elements of <code>pAttachments</code> <strong class=\"purple\">must</strong> be identical" + "text": " If the <a href=\"#features-features-independentBlend\">independent blending</a> feature is not enabled, all elements of <code>pAttachments</code> <strong class=\"purple\">must</strong> be identical" }, { "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00606", - "text": " If the &amp;lt;&amp;lt;features-features-logicOp,logic operations&amp;gt;&amp;gt; feature is not enabled, <code>logicOpEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>" + "text": " If the <a href=\"#features-features-logicOp\">logic operations</a> feature is not enabled, <code>logicOpEnable</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>" }, { "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00607", @@ -14272,19 +16434,19 @@ "core": [ { "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-00608", - "text": " If the &amp;lt;&amp;lt;features-features-dualSrcBlend,dual source blending&amp;gt;&amp;gt; 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-features-dualSrcBlend\">dual source blending</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>" }, { "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-00609", - "text": " If the &amp;lt;&amp;lt;features-features-dualSrcBlend,dual source blending&amp;gt;&amp;gt; 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-features-dualSrcBlend\">dual source blending</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>" }, { "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-00610", - "text": " If the &amp;lt;&amp;lt;features-features-dualSrcBlend,dual source blending&amp;gt;&amp;gt; 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-features-dualSrcBlend\">dual source blending</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>" }, { "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-00611", - "text": " If the &amp;lt;&amp;lt;features-features-dualSrcBlend,dual source blending&amp;gt;&amp;gt; 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-features-dualSrcBlend\">dual source blending</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>" }, { "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-parameter", @@ -14318,15 +16480,15 @@ "(VK_EXT_blend_operation_advanced)": [ { "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01406", - "text": " If either of <code>colorBlendOp</code> or <code>alphaBlendOp</code> is an &amp;lt;&amp;lt;framebuffer-blend-advanced,advanced blend operation&amp;gt;&amp;gt;, 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>" }, { "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 &amp;lt;&amp;lt;framebuffer-blend-advanced,advanced blend operation&amp;gt;&amp;gt;, 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." }, { "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 &amp;lt;&amp;lt;framebuffer-blend-advanced,advanced blend operation&amp;gt;&amp;gt;, 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." }, { "vuid": "VUID-VkPipelineColorBlendAttachmentState-advancedBlendAllOperations-01409", @@ -14334,7 +16496,7 @@ }, { "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01410", - "text": " If <code>colorBlendOp</code> or <code>alphaBlendOp</code> is an &amp;lt;&amp;lt;framebuffer-blend-advanced,advanced blend operation&amp;gt;&amp;gt;, then <a href=\"#VkSubpassDescription\">VkSubpassDescription</a>::<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>::advancedBlendMaxColorAttachments" + "text": " If <code>colorBlendOp</code> or <code>alphaBlendOp</code> is an <a href=\"#framebuffer-blend-advanced\">advanced blend operation</a>, then <a href=\"#VkSubpassDescription\">VkSubpassDescription</a>::<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>::advancedBlendMaxColorAttachments" } ] }, @@ -14350,7 +16512,7 @@ }, { "vuid": "VUID-vkCmdSetBlendConstants-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdSetBlendConstants-commandBuffer-cmdpool", @@ -14362,15 +16524,15 @@ "(VK_EXT_blend_operation_advanced)": [ { "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-srcPremultiplied-01424", - "text": " If the &amp;lt;&amp;lt;features-limits-advancedBlendNonPremultipliedSrcColor,non-premultiplied source color&amp;gt;&amp;gt; property is not supported, <code>srcPremultiplied</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>" + "text": " If the <a href=\"#features-limits-advancedBlendNonPremultipliedSrcColor\">non-premultiplied source color</a> property is not supported, <code>srcPremultiplied</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>" }, { "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-dstPremultiplied-01425", - "text": " If the &amp;lt;&amp;lt;features-limits-advancedBlendNonPremultipliedDstColor,non-premultiplied destination color&amp;gt;&amp;gt; property is not supported, <code>dstPremultiplied</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>" + "text": " If the <a href=\"#features-limits-advancedBlendNonPremultipliedDstColor\">non-premultiplied destination color</a> property is not supported, <code>dstPremultiplied</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>" }, { "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-blendOverlap-01426", - "text": " If the &amp;lt;&amp;lt;features-limits-advancedBlendCorrelatedOverlap,correlated overlap&amp;gt;&amp;gt; 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=\"#features-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>" }, { "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-sType-sType", @@ -14398,7 +16560,7 @@ }, { "vuid": "VUID-vkCmdDispatch-None-00389", - "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, 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 &amp;lt;&amp;lt;descriptorsets-compatibility&amp;gt;&amp;gt;" + "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, 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-00390", @@ -14410,7 +16572,7 @@ }, { "vuid": "VUID-vkCmdDispatch-None-00392", - "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, with a <code>VkPipelineLayout</code> that is compatible for push constants with the one used to create the current <code>VkPipeline</code>, as described in &amp;lt;&amp;lt;descriptorsets-compatibility&amp;gt;&amp;gt;" + "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, with a <code>VkPipelineLayout</code> that is compatible for push constants with the one used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>" }, { "vuid": "VUID-vkCmdDispatch-None-00393", @@ -14426,11 +16588,15 @@ }, { "vuid": "VUID-vkCmdDispatch-None-00396", - "text": " If the &amp;lt;&amp;lt;features-features-robustBufferAccess,robust buffer access&amp;gt;&amp;gt; feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_COMPUTE</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_COMPUTE</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" }, { "vuid": "VUID-vkCmdDispatch-None-00397", - "text": " If the &amp;lt;&amp;lt;features-features-robustBufferAccess,robust buffer access&amp;gt;&amp;gt; feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_COMPUTE</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_COMPUTE</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + }, + { + "vuid": "VUID-vkCmdDispatch-None-02005", + "text": " If a <code>VkImageView</code> is sampled with with <code>VK_FILTER_LINEAR</code> as a result of this command, then the image view’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>." }, { "vuid": "VUID-vkCmdDispatch-commandBuffer-parameter", @@ -14438,7 +16604,7 @@ }, { "vuid": "VUID-vkCmdDispatch-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdDispatch-commandBuffer-cmdpool", @@ -14449,32 +16615,12 @@ "text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance" } ], - "!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDispatch-linearTilingFeatures-00398", - "text": " Any <code>VkImageView</code> being sampled with <code>VK_FILTER_LINEAR</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports linear filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - } - ], - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDispatch-formatFeatures-01949", - "text": " Any <code>VkImageView</code> being sampled with <code>VK_FILTER_LINEAR</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports linear filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code> flag in <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" - } - ], - "(VK_IMG_filter_cubic)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDispatch-linearTilingFeatures-00399", - "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports cubic filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - } - ], - "(VK_IMG_filter_cubic)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDispatch-formatFeatures-01950", - "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports cubic filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code> flag in <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" - } - ], "(VK_IMG_filter_cubic)": [ { + "vuid": "VUID-vkCmdDispatch-None-02006", + "text": " If a <code>VkImageView</code> is sampled with with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command, then the image view’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_IMG</code>." + }, + { "vuid": "VUID-vkCmdDispatch-None-00400", "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</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>" } @@ -14492,6 +16638,12 @@ "vuid": "VUID-vkCmdDispatch-commandBuffer-01846", "text": " If <code>commandBuffer</code> is a protected command buffer, and any pipeline stage other than the compute pipeline stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_POINT_COMPUTE</code> reads from any image or buffer, the image or buffer <strong class=\"purple\">must</strong> not be a protected image or protected buffer." } + ], + "(VK_NV_corner_sampled_image)": [ + { + "vuid": "VUID-vkCmdDispatch-flags-02040", + "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>." + } ] }, "vkCmdDispatchIndirect": { @@ -14502,7 +16654,7 @@ }, { "vuid": "VUID-vkCmdDispatchIndirect-None-00402", - "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, 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 &amp;lt;&amp;lt;descriptorsets-compatibility&amp;gt;&amp;gt;" + "text": " For each set <em>n</em> that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, 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-00403", @@ -14526,7 +16678,7 @@ }, { "vuid": "VUID-vkCmdDispatchIndirect-None-00408", - "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, with a <code>VkPipelineLayout</code> that is compatible for push constants with the one used to create the current <code>VkPipeline</code>, as described in &amp;lt;&amp;lt;descriptorsets-compatibility&amp;gt;&amp;gt;" + "text": " For each push constant that is statically used by the <code>VkPipeline</code> bound to <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, a push constant value <strong class=\"purple\">must</strong> have been set for <code>VK_PIPELINE_BIND_POINT_COMPUTE</code>, with a <code>VkPipelineLayout</code> that is compatible for push constants with the one used to create the current <code>VkPipeline</code>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-00409", @@ -14542,11 +16694,15 @@ }, { "vuid": "VUID-vkCmdDispatchIndirect-None-00412", - "text": " If the &amp;lt;&amp;lt;features-features-robustBufferAccess,robust buffer access&amp;gt;&amp;gt; feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_COMPUTE</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_COMPUTE</code> accesses a uniform buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" }, { "vuid": "VUID-vkCmdDispatchIndirect-None-00413", - "text": " If the &amp;lt;&amp;lt;features-features-robustBufferAccess,robust buffer access&amp;gt;&amp;gt; feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_COMPUTE</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + "text": " If the <a href=\"#features-features-robustBufferAccess\">robust buffer access</a> feature is not enabled, and any shader stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_BIND_POINT_COMPUTE</code> accesses a storage buffer, it <strong class=\"purple\">must</strong> not access values outside of the range of that buffer specified in the bound descriptor set" + }, + { + "vuid": "VUID-vkCmdDispatchIndirect-None-02007", + "text": " If a <code>VkImageView</code> is sampled with with <code>VK_FILTER_LINEAR</code> as a result of this command, then the image view’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>." }, { "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-parameter", @@ -14558,7 +16714,7 @@ }, { "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-cmdpool", @@ -14573,32 +16729,12 @@ "text": " Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <code>VkDevice</code>" } ], - "!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDispatchIndirect-linearTilingFeatures-00414", - "text": " Any <code>VkImageView</code> being sampled with <code>VK_FILTER_LINEAR</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports linear filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - } - ], - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDispatchIndirect-formatFeatures-01951", - "text": " Any <code>VkImageView</code> being sampled with <code>VK_FILTER_LINEAR</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports linear filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT</code> flag in <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" - } - ], - "(VK_IMG_filter_cubic)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDispatchIndirect-linearTilingFeatures-00415", - "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports cubic filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code> flag in <code>VkFormatProperties</code>::<code>linearTilingFeatures</code> or <code>VkFormatProperties</code>::<code>optimalTilingFeatures</code> returned by <code>vkGetPhysicalDeviceFormatProperties</code> for linearly or optimally tiled images, respectively" - } - ], - "(VK_IMG_filter_cubic)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkCmdDispatchIndirect-formatFeatures-01952", - "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command <strong class=\"purple\">must</strong> be of a format which supports cubic filtering, as specified by the <code>VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG</code> flag in <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>::<code>formatFeatures</code> returned by <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for external format images, or by <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>linearTilingFeatures</code> or <a href=\"#VkFormatProperties\">VkFormatProperties</a>::<code>optimalTilingFeatures</code> returned by <a href=\"#vkGetPhysicalDeviceFormatProperties\">vkGetPhysicalDeviceFormatProperties</a> for non-external format linearly or optimally tiled images, respectively" - } - ], "(VK_IMG_filter_cubic)": [ { + "vuid": "VUID-vkCmdDispatchIndirect-None-02008", + "text": " If a <code>VkImageView</code> is sampled with with <code>VK_FILTER_CUBIC_IMG</code> as a result of this command, then the image view’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_IMG</code>." + }, + { "vuid": "VUID-vkCmdDispatchIndirect-None-00416", "text": " Any <a href=\"#VkImageView\">VkImageView</a> being sampled with <code>VK_FILTER_CUBIC_IMG</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>" } @@ -14616,6 +16752,12 @@ "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-01849", "text": " If <code>commandBuffer</code> is a protected command buffer, and any pipeline stage other than the compute pipeline stage in the <code>VkPipeline</code> object bound to <code>VK_PIPELINE_POINT_COMPUTE</code> reads from any image or buffer, the image or buffer <strong class=\"purple\">must</strong> not be a protected image or protected buffer." } + ], + "(VK_NV_corner_sampled_image)": [ + { + "vuid": "VUID-vkCmdDispatchIndirect-flags-02041", + "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>." + } ] }, "VkDispatchIndirectCommand": { @@ -14674,7 +16816,7 @@ }, { "vuid": "VUID-vkCmdDispatchBase-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdDispatchBase-commandBuffer-cmdpool", @@ -15238,7 +17380,7 @@ }, { "vuid": "VUID-vkCmdReserveSpaceForCommandsNVX-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdReserveSpaceForCommandsNVX-commandBuffer-cmdpool", @@ -15290,7 +17432,7 @@ }, { "vuid": "VUID-vkCmdProcessCommandsNVX-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdProcessCommandsNVX-commandBuffer-cmdpool", @@ -15582,7 +17724,7 @@ "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 &amp;lt;&amp;lt;resources-association&amp;gt;&amp;gt;" + "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>" }, { "vuid": "VUID-VkSparseMemoryBind-memory-01097", @@ -15682,15 +17824,15 @@ "core": [ { "vuid": "VUID-VkSparseImageMemoryBind-memory-01104", - "text": " If the &amp;lt;&amp;lt;features-features-sparseResidencyAliased,sparse aliased residency&amp;gt;&amp;gt; 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-features-sparseResidencyAliased\">sparse aliased residency</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" }, { "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’s <code>image</code>, as described in section &amp;lt;&amp;lt;resources-association&amp;gt;&amp;gt;" + "text": " <code>memory</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> match the memory requirements of the calling command’s <code>image</code>, as described in section <a href=\"#resources-association\">Resource Memory Association</a>" }, { "vuid": "VUID-VkSparseImageMemoryBind-subresource-01106", - "text": " <code>subresource</code> <strong class=\"purple\">must</strong> be a valid image subresource for <code>image</code> (see &amp;lt;&amp;lt;resources-image-views&amp;gt;&amp;gt;)" + "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>)" }, { "vuid": "VUID-VkSparseImageMemoryBind-offset-01107", @@ -15750,7 +17892,7 @@ }, { "vuid": "VUID-vkQueueBindSparse-pWaitSemaphores-01117", - "text": " All elements of the <code>pWaitSemaphores</code> member of all elements of <code>pBindInfo</code> <strong class=\"purple\">must</strong> be semaphores that are signaled, or have &amp;lt;&amp;lt;synchronization-semaphores-signaling, semaphore signal operations&amp;gt;&amp;gt; previously submitted for execution." + "text": " All elements of the <code>pWaitSemaphores</code> member of all elements of <code>pBindInfo</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-vkQueueBindSparse-queue-parameter", @@ -16086,6 +18228,46 @@ } ] }, + "vkCreateImagePipeSurfaceFUCHSIA": { + "(VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface)": [ + { + "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-instance-parameter", + "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <code>VkInstance</code> handle" + }, + { + "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-pCreateInfo-parameter", + "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <code>VkImagePipeSurfaceCreateInfoFUCHSIA</code> structure" + }, + { + "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 <code>VkAllocationCallbacks</code> structure" + }, + { + "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-pSurface-parameter", + "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>VkSurfaceKHR</code> handle" + } + ] + }, + "VkImagePipeSurfaceCreateInfoFUCHSIA": { + "(VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface)": [ + { + "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-imagePipeHandle-00000", + "text": " <code>imagePipeHandle</code> <strong class=\"purple\">must</strong> be a valid <code>zx_handle_t</code>" + }, + { + "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>" + }, + { + "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-pNext-pNext", + "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" + }, + { + "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-flags-zerobitmask", + "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>" + } + ] + }, "vkCreateIOSSurfaceMVK": { "(VK_KHR_surface)+(VK_MVK_ios_surface)": [ { @@ -16442,6 +18624,22 @@ } ] }, + "VkDisplayModeParametersKHR": { + "(VK_KHR_surface)+(VK_KHR_display)": [ + { + "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>" + }, + { + "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>" + }, + { + "vuid": "VUID-VkDisplayModeParametersKHR-refreshRate-01992", + "text": " <code>refreshRate</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" + } + ] + }, "vkCreateDisplayModeKHR": { "(VK_KHR_surface)+(VK_KHR_display)": [ { @@ -16469,14 +18667,6 @@ "VkDisplayModeCreateInfoKHR": { "(VK_KHR_surface)+(VK_KHR_display)": [ { - "vuid": "VUID-VkDisplayModeCreateInfoKHR-width-01250", - "text": " The <code>width</code> and <code>height</code> members of the <code>visibleRegion</code> member of <code>parameters</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" - }, - { - "vuid": "VUID-VkDisplayModeCreateInfoKHR-refreshRate-01251", - "text": " The <code>refreshRate</code> member of <code>parameters</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>" - }, - { "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>" }, @@ -16487,6 +18677,10 @@ { "vuid": "VUID-VkDisplayModeCreateInfoKHR-flags-zerobitmask", "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>" + }, + { + "vuid": "VUID-VkDisplayModeCreateInfoKHR-parameters-parameter", + "text": " <code>parameters</code> <strong class=\"purple\">must</strong> be a valid <code>VkDisplayModeParametersKHR</code> structure" } ] }, @@ -16846,7 +19040,7 @@ "(VK_KHR_surface)+(VK_EXT_display_surface_counter)": [ { "vuid": "VUID-VkSurfaceCapabilities2EXT-supportedSurfaceCounters-01246", - "text": " <code>supportedSurfaceCounters</code> <strong class=\"purple\">must</strong> not include <code>VK_SURFACE_COUNTER_VBLANK_EXT</code> unless the surface queried is a &amp;lt;&amp;lt;wsi-display-surfaces,display surface&amp;gt;&amp;gt;." + "text": " <code>supportedSurfaceCounters</code> <strong class=\"purple\">must</strong> not include <code>VK_SURFACE_COUNTER_VBLANK_EXT</code> unless the surface queried is a <a href=\"#wsi-display-surfaces\">display surface</a>." }, { "vuid": "VUID-VkSurfaceCapabilities2EXT-sType-sType", @@ -17540,7 +19734,7 @@ }, { "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 &amp;lt;&amp;lt;synchronization-semaphores-signaling, semaphore signal operations&amp;gt;&amp;gt; previously submitted for execution." + "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", @@ -17634,7 +19828,7 @@ "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_incremental_present)": [ { "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> <code>VkRectLayerKHR</code> 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 <code>VkRectLayerKHR</code> structures" } ] }, @@ -17758,6 +19952,166 @@ } ] }, + "VkPhysicalDeviceRaytracingPropertiesNVX": { + "(VK_NVX_raytracing)": [ + { + "vuid": "VUID-VkPhysicalDeviceRaytracingPropertiesNVX-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAYTRACING_PROPERTIES_NVX</code>" + } + ] + }, + "vkCmdTraceRaysNVX": { + "(VK_NVX_raytracing)": [ + { + "vuid": "VUID-vkCmdTraceRaysNVX-commandBuffer-parameter", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" + }, + { + "vuid": "VUID-vkCmdTraceRaysNVX-raygenShaderBindingTableBuffer-parameter", + "text": " <code>raygenShaderBindingTableBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkBuffer</code> handle" + }, + { + "vuid": "VUID-vkCmdTraceRaysNVX-missShaderBindingTableBuffer-parameter", + "text": " <code>missShaderBindingTableBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkBuffer</code> handle" + }, + { + "vuid": "VUID-vkCmdTraceRaysNVX-hitShaderBindingTableBuffer-parameter", + "text": " <code>hitShaderBindingTableBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkBuffer</code> handle" + }, + { + "vuid": "VUID-vkCmdTraceRaysNVX-commandBuffer-recording", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" + }, + { + "vuid": "VUID-vkCmdTraceRaysNVX-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-vkCmdTraceRaysNVX-commonparent", + "text": " Each of <code>commandBuffer</code>, <code>hitShaderBindingTableBuffer</code>, <code>missShaderBindingTableBuffer</code>, and <code>raygenShaderBindingTableBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <code>VkDevice</code>" + } + ] + }, + "vkCmdBuildAccelerationStructureNVX": { + "(VK_NVX_raytracing)": [ + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNVX-geometryCount-02241", + "text": " <code>geometryCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceRaytracingPropertiesNVX</code>::<code>maxGeometryCount</code>" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNVX-commandBuffer-parameter", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNVX-type-parameter", + "text": " <code>type</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkAccelerationStructureTypeNVX\">VkAccelerationStructureTypeNVX</a> value" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNVX-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 <code>VkBuffer</code> handle" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNVX-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 <code>VkGeometryNVX</code> structures" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNVX-flags-parameter", + "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkBuildAccelerationStructureFlagBitsNVX\">VkBuildAccelerationStructureFlagBitsNVX</a> values" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNVX-dst-parameter", + "text": " <code>dst</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNVX</code> handle" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNVX-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 <code>VkAccelerationStructureNVX</code> handle" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNVX-scratch-parameter", + "text": " <code>scratch</code> <strong class=\"purple\">must</strong> be a valid <code>VkBuffer</code> handle" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNVX-commandBuffer-recording", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNVX-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-vkCmdBuildAccelerationStructureNVX-commonparent", + "text": " Each of <code>commandBuffer</code>, <code>dst</code>, <code>instanceData</code>, <code>scratch</code>, and <code>src</code> that are valid handles <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <code>VkDevice</code>" + } + ] + }, + "vkCmdWriteAccelerationStructurePropertiesNVX": { + "(VK_NVX_raytracing)": [ + { + "vuid": "VUID-vkCmdWriteAccelerationStructurePropertiesNVX-queryType-02242", + "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be VK_QUERY_TYPE_COMPACTED_SIZE_NVX" + }, + { + "vuid": "VUID-vkCmdWriteAccelerationStructurePropertiesNVX-commandBuffer-parameter", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" + }, + { + "vuid": "VUID-vkCmdWriteAccelerationStructurePropertiesNVX-accelerationStructure-parameter", + "text": " <code>accelerationStructure</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNVX</code> handle" + }, + { + "vuid": "VUID-vkCmdWriteAccelerationStructurePropertiesNVX-queryType-parameter", + "text": " <code>queryType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueryType\">VkQueryType</a> value" + }, + { + "vuid": "VUID-vkCmdWriteAccelerationStructurePropertiesNVX-queryPool-parameter", + "text": " <code>queryPool</code> <strong class=\"purple\">must</strong> be a valid <code>VkQueryPool</code> handle" + }, + { + "vuid": "VUID-vkCmdWriteAccelerationStructurePropertiesNVX-commandBuffer-recording", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" + }, + { + "vuid": "VUID-vkCmdWriteAccelerationStructurePropertiesNVX-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-vkCmdWriteAccelerationStructurePropertiesNVX-commonparent", + "text": " Each of <code>accelerationStructure</code>, <code>commandBuffer</code>, and <code>queryPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <code>VkDevice</code>" + } + ] + }, + "vkCmdCopyAccelerationStructureNVX": { + "(VK_NVX_raytracing)": [ + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNVX-commandBuffer-parameter", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNVX-dst-parameter", + "text": " <code>dst</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNVX</code> handle" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNVX-src-parameter", + "text": " <code>src</code> <strong class=\"purple\">must</strong> be a valid <code>VkAccelerationStructureNVX</code> handle" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNVX-mode-parameter", + "text": " <code>mode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCopyAccelerationStructureModeNVX\">VkCopyAccelerationStructureModeNVX</a> value" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNVX-commandBuffer-recording", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNVX-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-vkCmdCopyAccelerationStructureNVX-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 <code>VkDevice</code>" + } + ] + }, "vkEnumerateInstanceLayerProperties": { "core": [ { @@ -17882,6 +20236,22 @@ } ] }, + "VkPhysicalDeviceShaderAtomicInt64FeaturesKHR": { + "(VK_KHR_shader_atomic_int64)": [ + { + "vuid": "VUID-VkPhysicalDeviceShaderAtomicInt64FeaturesKHR-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR</code>" + } + ] + }, + "VkPhysicalDevice8BitStorageFeaturesKHR": { + "(VK_KHR_8bit_storage)": [ + { + "vuid": "VUID-VkPhysicalDevice8BitStorageFeaturesKHR-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR</code>" + } + ] + }, "VkPhysicalDevice16BitStorageFeatures": { "(VK_VERSION_1_1,VK_KHR_16bit_storage)": [ { @@ -17914,6 +20284,14 @@ } ] }, + "VkPhysicalDeviceConditionalRenderingFeaturesEXT": { + "(VK_EXT_conditional_rendering)": [ + { + "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>" + } + ] + }, "VkPhysicalDeviceShaderDrawParameterFeatures": { "(VK_VERSION_1_1)": [ { @@ -17922,6 +20300,14 @@ } ] }, + "VkPhysicalDeviceMeshShaderFeaturesNV": { + "(VK_NV_mesh_shader)": [ + { + "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>" + } + ] + }, "VkPhysicalDeviceDescriptorIndexingFeaturesEXT": { "(VK_EXT_descriptor_indexing)": [ { @@ -17930,6 +20316,94 @@ } ] }, + "VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT": { + "(VK_EXT_vertex_attribute_divisor)": [ + { + "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>" + } + ] + }, + "VkPhysicalDeviceASTCDecodeFeaturesEXT": { + "(VK_EXT_astc_decode_mode)": [ + { + "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>" + } + ] + }, + "VkPhysicalDeviceVulkanMemoryModelFeaturesKHR": { + "(VK_KHR_vulkan_memory_model)": [ + { + "vuid": "VUID-VkPhysicalDeviceVulkanMemoryModelFeaturesKHR-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR</code>" + } + ] + }, + "VkPhysicalDeviceInlineUniformBlockFeaturesEXT": { + "(VK_EXT_inline_uniform_block)": [ + { + "vuid": "VUID-VkPhysicalDeviceInlineUniformBlockFeaturesEXT-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT</code>" + } + ] + }, + "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV": { + "(VK_NV_representative_fragment_test)": [ + { + "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>" + } + ] + }, + "VkPhysicalDeviceExclusiveScissorFeaturesNV": { + "(VK_NV_scissor_exclusive)": [ + { + "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>" + } + ] + }, + "VkPhysicalDeviceCornerSampledImageFeaturesNV": { + "(VK_NV_corner_sampled_image)": [ + { + "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>" + } + ] + }, + "VkPhysicalDeviceComputeShaderDerivativesFeaturesNV": { + "(VK_NV_compute_shader_derivatives)": [ + { + "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>" + } + ] + }, + "VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV": { + "(VK_NV_fragment_shader_barycentric)": [ + { + "vuid": "VUID-VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV</code>" + } + ] + }, + "VkPhysicalDeviceShaderImageFootprintFeaturesNV": { + "(VK_NV_shader_image_footprint)": [ + { + "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>" + } + ] + }, + "VkPhysicalDeviceShadingRateImageFeaturesNV": { + "(VK_NV_shading_rate_image)": [ + { + "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>" + } + ] + }, "VkPhysicalDevicePushDescriptorPropertiesKHR": { "(VK_KHR_push_descriptor)": [ { @@ -18034,6 +20508,14 @@ } ] }, + "VkPhysicalDeviceMeshShaderPropertiesNV": { + "(VK_NV_mesh_shader)": [ + { + "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>" + } + ] + }, "VkPhysicalDeviceDescriptorIndexingPropertiesEXT": { "(VK_EXT_descriptor_indexing)": [ { @@ -18042,6 +20524,14 @@ } ] }, + "VkPhysicalDeviceInlineUniformBlockPropertiesEXT": { + "(VK_EXT_inline_uniform_block)": [ + { + "vuid": "VUID-VkPhysicalDeviceInlineUniformBlockPropertiesEXT-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT</code>" + } + ] + }, "VkPhysicalDeviceConservativeRasterizationPropertiesEXT": { "(VK_EXT_conservative_rasterization)": [ { @@ -18058,6 +20548,14 @@ } ] }, + "VkPhysicalDeviceShadingRateImagePropertiesNV": { + "(VK_NV_shading_rate_image)": [ + { + "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>" + } + ] + }, "vkGetPhysicalDeviceMultisamplePropertiesEXT": { "(VK_EXT_sample_locations)": [ { @@ -18131,6 +20629,12 @@ ] }, "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-physicalDevice-parameter", @@ -18229,6 +20733,12 @@ ] }, "VkPhysicalDeviceImageFormatInfo2": { + "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)": [ + { + "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2KHR-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 contains <a href=\"#VkPhysicalDeviceImageDrmFormatModifierInfoEXT\">VkPhysicalDeviceImageDrmFormatModifierInfoEXT</a>." + } + ], "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ { "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-sType-sType", @@ -18484,7 +20994,7 @@ }, { "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-objectHandle-01907", - "text": " <code>objectHandle</code> <strong class=\"purple\">must</strong> be a Vulkan object of the type associated with <code>objectType</code> as defined in &amp;lt;&amp;lt;debugging-object-types&amp;gt;&amp;gt;." + "text": " <code>objectHandle</code> <strong class=\"purple\">must</strong> be a Vulkan object of the type associated with <code>objectType</code> as defined in <a href=\"#debugging-object-types\">VkObjectType and Vulkan Handle Relationship</a>." }, { "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-sType-sType", @@ -18528,7 +21038,7 @@ }, { "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-objectHandle-01910", - "text": " <code>objectHandle</code> <strong class=\"purple\">must</strong> be a Vulkan object of the type associated with <code>objectType</code> as defined in &amp;lt;&amp;lt;debugging-object-types&amp;gt;&amp;gt;." + "text": " <code>objectHandle</code> <strong class=\"purple\">must</strong> be a Vulkan object of the type associated with <code>objectType</code> as defined in <a href=\"#debugging-object-types\">VkObjectType and Vulkan Handle Relationship</a>." }, { "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-sType-sType", @@ -18616,7 +21126,7 @@ }, { "vuid": "VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-cmdpool", @@ -18640,7 +21150,7 @@ }, { "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-cmdpool", @@ -18660,7 +21170,7 @@ }, { "vuid": "VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-cmdpool", @@ -18824,7 +21334,7 @@ }, { "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 &amp;lt;&amp;lt;debug-report-object-types&amp;gt;&amp;gt;." + "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\">VkDebugReportObjectTypeEXT and Vulkan Handle Relationship</a>." }, { "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-sType-sType", @@ -18868,7 +21378,7 @@ }, { "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 &amp;lt;&amp;lt;debug-report-object-types&amp;gt;&amp;gt;." + "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\">VkDebugReportObjectTypeEXT and Vulkan Handle Relationship</a>." }, { "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-sType-sType", @@ -18904,7 +21414,7 @@ }, { "vuid": "VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-cmdpool", @@ -18944,7 +21454,7 @@ }, { "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-cmdpool", @@ -18964,7 +21474,7 @@ }, { "vuid": "VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-recording", - "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the &amp;lt;&amp;lt;commandbuffers-lifecycle, recording state&amp;gt;&amp;gt;" + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" }, { "vuid": "VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-cmdpool", @@ -19016,7 +21526,7 @@ }, { "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 <code>VK_NULL_HANDLE</code>, <code>object</code> <strong class=\"purple\">must</strong> be a Vulkan object of the corresponding type associated with <code>objectType</code> as defined in &amp;lt;&amp;lt;debug-report-object-types&amp;gt;&amp;gt;." + "text": " If <code>objectType</code> is not <code>VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT</code> and <code>object</code> is not <code>VK_NULL_HANDLE</code>, <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\">VkDebugReportObjectTypeEXT and Vulkan Handle Relationship</a>." }, { "vuid": "VUID-vkDebugReportMessageEXT-instance-parameter", @@ -19071,6 +21581,54 @@ "text": " <code>callback</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>instance</code>" } ] + }, + "vkCmdSetCheckpointNV": { + "(VK_NV_device_diagnostic_checkpoints)": [ + { + "vuid": "VUID-vkCmdSetCheckpointNV-commandBuffer-parameter", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <code>VkCommandBuffer</code> handle" + }, + { + "vuid": "VUID-vkCmdSetCheckpointNV-commandBuffer-recording", + "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>" + }, + { + "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" + } + ] + }, + "vkGetQueueCheckpointDataNV": { + "(VK_NV_device_diagnostic_checkpoints)": [ + { + "vuid": "VUID-vkGetQueueCheckpointDataNV-queue-02025", + "text": " The device that <code>queue</code> belongs to <strong class=\"purple\">must</strong> be in the lost state" + }, + { + "vuid": "VUID-vkGetQueueCheckpointDataNV-queue-parameter", + "text": " <code>queue</code> <strong class=\"purple\">must</strong> be a valid <code>VkQueue</code> handle" + }, + { + "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" + }, + { + "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> <code>VkCheckpointDataNV</code> structures" + } + ] + }, + "VkCheckpointDataNV": { + "(VK_NV_device_diagnostic_checkpoints)": [ + { + "vuid": "VUID-VkCheckpointDataNV-sType-sType", + "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV</code>" + }, + { + "vuid": "VUID-VkCheckpointDataNV-pNext-pNext", + "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" + } + ] } } }
\ No newline at end of file diff --git a/registry/vk.xml b/registry/vk.xml index 99f0c6a..cdd66d9 100644 --- a/registry/vk.xml +++ b/registry/vk.xml @@ -55,6 +55,7 @@ server. <platform name="vi" protect="VK_USE_PLATFORM_VI_NN" comment="Nintendo Vi"/> <platform name="ios" protect="VK_USE_PLATFORM_IOS_MVK" comment="Apple IOS"/> <platform name="macos" protect="VK_USE_PLATFORM_MACOS_MVK" comment="Apple MacOS"/> + <platform name="fuchsia" protect="VK_USE_PLATFORM_FUCHSIA" comment="Fuchsia"/> </platforms> <tags comment="Vulkan vendor/author tags for extensions and layers"> @@ -72,6 +73,7 @@ server. <tag name="KDAB" author="KDAB" contact="Sean Harmer @seanharmer"/> <tag name="ANDROID" author="Google, Inc." contact="Jesse Hall @critsec"/> <tag name="CHROMIUM" author="Google, Inc." contact="Jesse Hall @critsec"/> + <tag name="FUCHSIA" author="Google, Inc." contact="Craig Stout @cdotstout, Jesse Hall @critsec"/> <tag name="GOOGLE" author="Google, Inc." contact="Jesse Hall @critsec"/> <tag name="QCOM" author="Qualcomm Technologies, Inc." contact="Maurice Ribble @mribble"/> <tag name="LUNARG" author="LunarG, Inc." contact="Karen Ghavam @karenghavam-lunarg"/> @@ -98,13 +100,14 @@ server. <type category="include" name="wayland-client.h"/> <type category="include" name="windows.h"/> <type category="include" name="xcb/xcb.h"/> + <type category="include" name="zircon/types.h"/> <comment> In the current header structure, each platform's interfaces are confined to a platform-specific header (vulkan_xlib.h, vulkan_win32.h, etc.). These headers are not self-contained, and should not include native headers (X11/Xlib.h, windows.h, etc.). Code should either include vulkan.h after - defining the appropriate VK_USE_PLATFORM_platform_KHR + defining the appropriate VK_USE_PLATFORM_platform macros, or include the required native headers prior to explicitly including the corresponding platform header. @@ -132,6 +135,7 @@ server. <type requires="xcb/xcb.h" name="xcb_connection_t"/> <type requires="xcb/xcb.h" name="xcb_visualid_t"/> <type requires="xcb/xcb.h" name="xcb_window_t"/> + <type requires="zircon/types.h" name="zx_handle_t"/> <type category="define">#define <name>VK_MAKE_VERSION</name>(major, minor, patch) \ (((major) << 22) | ((minor) << 12) | (patch))</type> @@ -146,7 +150,7 @@ server. <type category="define">// Vulkan 1.1 version number #define <name>VK_API_VERSION_1_1</name> <type>VK_MAKE_VERSION</type>(1, 1, 0)// Patch version should always be set to 0</type> <type category="define">// Version of this file -#define <name>VK_HEADER_VERSION</name> 79</type> +#define <name>VK_HEADER_VERSION</name> 87</type> <type category="define"> #define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type> @@ -246,6 +250,9 @@ server. <type requires="VkSubgroupFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkSubgroupFeatureFlags</name>;</type> <type requires="VkIndirectCommandsLayoutUsageFlagBitsNVX" category="bitmask">typedef <type>VkFlags</type> <name>VkIndirectCommandsLayoutUsageFlagsNVX</name>;</type> <type requires="VkObjectEntryUsageFlagBitsNVX" category="bitmask">typedef <type>VkFlags</type> <name>VkObjectEntryUsageFlagsNVX</name>;</type> + <type requires="VkGeometryFlagBitsNVX" category="bitmask">typedef <type>VkFlags</type> <name>VkGeometryFlagsNVX</name>;</type> + <type requires="VkGeometryInstanceFlagBitsNVX" category="bitmask">typedef <type>VkFlags</type> <name>VkGeometryInstanceFlagsNVX</name>;</type> + <type requires="VkBuildAccelerationStructureFlagBitsNVX" category="bitmask">typedef <type>VkFlags</type> <name>VkBuildAccelerationStructureFlagsNVX</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkDescriptorUpdateTemplateCreateFlags</name>;</type> <type category="bitmask" name="VkDescriptorUpdateTemplateCreateFlagsKHR" alias="VkDescriptorUpdateTemplateCreateFlags"/> @@ -266,6 +273,7 @@ server. <type category="bitmask">typedef <type>VkFlags</type> <name>VkXcbSurfaceCreateFlagsKHR</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkIOSSurfaceCreateFlagsMVK</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkMacOSSurfaceCreateFlagsMVK</name>;</type> + <type category="bitmask">typedef <type>VkFlags</type> <name>VkImagePipeSurfaceCreateFlagsFUCHSIA</name>;</type> <type requires="VkPeerMemoryFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkPeerMemoryFeatureFlags</name>;</type> <type category="bitmask" name="VkPeerMemoryFeatureFlagsKHR" alias="VkPeerMemoryFeatureFlags"/> <type requires="VkMemoryAllocateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkMemoryAllocateFlags</name>;</type> @@ -305,6 +313,7 @@ server. <type category="bitmask">typedef <type>VkFlags</type> <name>VkDebugUtilsMessengerCallbackDataFlagsEXT</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineRasterizationConservativeStateCreateFlagsEXT</name>;</type> <type requires="VkDescriptorBindingFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkDescriptorBindingFlagsEXT</name>;</type> + <type requires="VkConditionalRenderingFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkConditionalRenderingFlagsEXT</name>;</type> <comment>Types which can be void pointers or class pointers, selected at compile time</comment> <type category="handle"><type>VK_DEFINE_HANDLE</type>(<name>VkInstance</name>)</type> @@ -339,6 +348,7 @@ server. <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkSamplerYcbcrConversion</name>)</type> <type category="handle" name="VkSamplerYcbcrConversionKHR" alias="VkSamplerYcbcrConversion"/> <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkValidationCacheEXT</name>)</type> + <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkAccelerationStructureNVX</name>)</type> <comment>WSI extensions</comment> <type category="handle"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDisplayKHR</name>)</type> @@ -437,6 +447,7 @@ server. <type name="VkDependencyFlagBits" category="enum"/> <type name="VkObjectType" category="enum"/> <type name="VkDescriptorBindingFlagBitsEXT" category="enum"/> + <type name="VkConditionalRenderingFlagBitsEXT" category="enum"/> <comment>Extensions</comment> <type name="VkIndirectCommandsLayoutUsageFlagBitsNVX" category="enum"/> @@ -455,6 +466,12 @@ server. <type name="VkShaderInfoTypeAMD" category="enum"/> <type name="VkQueueGlobalPriorityEXT" category="enum"/> <type name="VkConservativeRasterizationModeEXT" category="enum"/> + <type name="VkGeometryFlagBitsNVX" category="enum"/> + <type name="VkGeometryInstanceFlagBitsNVX" category="enum"/> + <type name="VkBuildAccelerationStructureFlagBitsNVX" category="enum"/> + <type name="VkCopyAccelerationStructureModeNVX" category="enum"/> + <type name="VkAccelerationStructureTypeNVX" category="enum"/> + <type name="VkGeometryTypeNVX" category="enum"/> <comment>WSI extensions</comment> <type name="VkColorSpaceKHR" category="enum"/> @@ -510,8 +527,11 @@ server. <comment>Enumerated types in the header, but not used by the API</comment> <type name="VkVendorId" category="enum"/> + <type name="VkDriverIdKHR" category="enum"/> + <type name="VkShadingRatePaletteEntryNV" category="enum"/> + <type name="VkCoarseSampleOrderTypeNV" category="enum"/> - <comment>The PFN_vk*Function types are used by VkAllocationCallbacks below</comment> + <comment>The PFN_vk*Function types are used by VkAllocationCallbacks below</comment> <type category="funcpointer">typedef void (VKAPI_PTR *<name>PFN_vkInternalAllocationNotification</name>)( <type>void</type>* pUserData, <type>size_t</type> size, @@ -586,12 +606,12 @@ server. <member><type>uint32_t</type> <name>depth</name></member> </type> <type category="struct" name="VkViewport"> - <member><type>float</type> <name>x</name></member> - <member><type>float</type> <name>y</name></member> - <member><type>float</type> <name>width</name></member> - <member><type>float</type> <name>height</name></member> - <member><type>float</type> <name>minDepth</name></member> - <member><type>float</type> <name>maxDepth</name></member> + <member noautovalidity="true"><type>float</type> <name>x</name></member> + <member noautovalidity="true"><type>float</type> <name>y</name></member> + <member noautovalidity="true"><type>float</type> <name>width</name></member> + <member noautovalidity="true"><type>float</type> <name>height</name></member> + <member><type>float</type> <name>minDepth</name></member> + <member><type>float</type> <name>maxDepth</name></member> </type> <type category="struct" name="VkRect2D"> <member><type>VkOffset2D</type> <name>offset</name></member> @@ -640,11 +660,11 @@ server. </type> <type category="struct" name="VkAllocationCallbacks"> <member optional="true"><type>void</type>* <name>pUserData</name></member> - <member><type>PFN_vkAllocationFunction</type> <name>pfnAllocation</name></member> - <member><type>PFN_vkReallocationFunction</type> <name>pfnReallocation</name></member> - <member><type>PFN_vkFreeFunction</type> <name>pfnFree</name></member> - <member optional="true"><type>PFN_vkInternalAllocationNotification</type> <name>pfnInternalAllocation</name></member> - <member optional="true"><type>PFN_vkInternalFreeNotification</type> <name>pfnInternalFree</name></member> + <member noautovalidity="true"><type>PFN_vkAllocationFunction</type> <name>pfnAllocation</name></member> + <member noautovalidity="true"><type>PFN_vkReallocationFunction</type> <name>pfnReallocation</name></member> + <member noautovalidity="true"><type>PFN_vkFreeFunction</type> <name>pfnFree</name></member> + <member optional="true" noautovalidity="true"><type>PFN_vkInternalAllocationNotification</type> <name>pfnInternalAllocation</name></member> + <member optional="true" noautovalidity="true"><type>PFN_vkInternalFreeNotification</type> <name>pfnInternalFree</name></member> </type> <type category="struct" name="VkDeviceQueueCreateInfo"> <member values="VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> @@ -739,7 +759,7 @@ server. <member><type>VkDeviceSize</type> <name>maxResourceSize</name><comment>max size (in bytes) of this resource type</comment></member> </type> <type category="struct" name="VkDescriptorBufferInfo"> - <member><type>VkBuffer</type> <name>buffer</name><comment>Buffer used for this descriptor slot when the descriptor is UNIFORM_BUFFER[_DYNAMIC] or STORAGE_BUFFER[_DYNAMIC]. VK_NULL_HANDLE otherwise.</comment></member> + <member><type>VkBuffer</type> <name>buffer</name><comment>Buffer used for this descriptor slot.</comment></member> <member><type>VkDeviceSize</type> <name>offset</name><comment>Base offset from buffer start in bytes to update in the descriptor set.</comment></member> <member><type>VkDeviceSize</type> <name>range</name><comment>Size in bytes of the buffer resource for this descriptor update.</comment></member> </type> @@ -872,9 +892,9 @@ server. <member><type>VkImageSubresourceRange</type> <name>subresourceRange</name></member> </type> <type category="struct" name="VkBufferCopy"> - <member><type>VkDeviceSize</type> <name>srcOffset</name><comment>Specified in bytes</comment></member> - <member><type>VkDeviceSize</type> <name>dstOffset</name><comment>Specified in bytes</comment></member> - <member><type>VkDeviceSize</type> <name>size</name><comment>Specified in bytes</comment></member> + <member><type>VkDeviceSize</type> <name>srcOffset</name><comment>Specified in bytes</comment></member> + <member><type>VkDeviceSize</type> <name>dstOffset</name><comment>Specified in bytes</comment></member> + <member noautovalidity="true"><type>VkDeviceSize</type> <name>size</name><comment>Specified in bytes</comment></member> </type> <type category="struct" name="VkSparseMemoryBind"> <member><type>VkDeviceSize</type> <name>resourceOffset</name><comment>Specified in bytes</comment></member> @@ -989,13 +1009,13 @@ server. <member len="descriptorSetCount">const <type>VkDescriptorSetLayout</type>* <name>pSetLayouts</name></member> </type> <type category="struct" name="VkSpecializationMapEntry"> - <member><type>uint32_t</type> <name>constantID</name><comment>The SpecConstant ID specified in the BIL</comment></member> - <member><type>uint32_t</type> <name>offset</name><comment>Offset of the value in the data block</comment></member> - <member><type>size_t</type> <name>size</name><comment>Size in bytes of the SpecConstant</comment></member> + <member><type>uint32_t</type> <name>constantID</name><comment>The SpecConstant ID specified in the BIL</comment></member> + <member><type>uint32_t</type> <name>offset</name><comment>Offset of the value in the data block</comment></member> + <member noautovalidity="true"><type>size_t</type> <name>size</name><comment>Size in bytes of the SpecConstant</comment></member> </type> <type category="struct" name="VkSpecializationInfo"> <member optional="true"><type>uint32_t</type> <name>mapEntryCount</name><comment>Number of entries in the map</comment></member> - <member len="mapEntryCount" noautovalidity="true">const <type>VkSpecializationMapEntry</type>* <name>pMapEntries</name><comment>Array of map entries</comment></member> + <member len="mapEntryCount">const <type>VkSpecializationMapEntry</type>* <name>pMapEntries</name><comment>Array of map entries</comment></member> <member optional="true"><type>size_t</type> <name>dataSize</name><comment>Size in bytes of pData</comment></member> <member len="dataSize">const <type>void</type>* <name>pData</name><comment>Pointer to SpecConstant data</comment></member> </type> @@ -1109,7 +1129,7 @@ server. <member values="VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> <member>const <type>void</type>* <name>pNext</name></member> <member optional="true"><type>VkPipelineDynamicStateCreateFlags</type> <name>flags</name></member> - <member><type>uint32_t</type> <name>dynamicStateCount</name></member> + <member optional="true"><type>uint32_t</type> <name>dynamicStateCount</name></member> <member len="dynamicStateCount">const <type>VkDynamicState</type>* <name>pDynamicStates</name></member> </type> <type category="struct" name="VkStencilOpState"> @@ -1141,8 +1161,8 @@ server. <member 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>const <type>VkPipelineVertexInputStateCreateInfo</type>* <name>pVertexInputState</name></member> - <member>const <type>VkPipelineInputAssemblyStateCreateInfo</type>* <name>pInputAssemblyState</name></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> <member noautovalidity="true" optional="true">const <type>VkPipelineViewportStateCreateInfo</type>* <name>pViewportState</name></member> <member>const <type>VkPipelineRasterizationStateCreateInfo</type>* <name>pRasterizationState</name></member> @@ -1516,22 +1536,22 @@ server. <member><type>uint32_t</type> <name>layers</name></member> </type> <type category="struct" name="VkDrawIndirectCommand"> - <member><type>uint32_t</type> <name>vertexCount</name></member> - <member><type>uint32_t</type> <name>instanceCount</name></member> - <member><type>uint32_t</type> <name>firstVertex</name></member> - <member><type>uint32_t</type> <name>firstInstance</name></member> + <member><type>uint32_t</type> <name>vertexCount</name></member> + <member><type>uint32_t</type> <name>instanceCount</name></member> + <member><type>uint32_t</type> <name>firstVertex</name></member> + <member noautovalidity="true"><type>uint32_t</type> <name>firstInstance</name></member> </type> <type category="struct" name="VkDrawIndexedIndirectCommand"> - <member><type>uint32_t</type> <name>indexCount</name></member> - <member><type>uint32_t</type> <name>instanceCount</name></member> - <member><type>uint32_t</type> <name>firstIndex</name></member> - <member><type>int32_t</type> <name>vertexOffset</name></member> - <member><type>uint32_t</type> <name>firstInstance</name></member> + <member><type>uint32_t</type> <name>indexCount</name></member> + <member><type>uint32_t</type> <name>instanceCount</name></member> + <member><type>uint32_t</type> <name>firstIndex</name></member> + <member><type>int32_t</type> <name>vertexOffset</name></member> + <member noautovalidity="true"><type>uint32_t</type> <name>firstInstance</name></member> </type> <type category="struct" name="VkDispatchIndirectCommand"> - <member><type>uint32_t</type> <name>x</name></member> - <member><type>uint32_t</type> <name>y</name></member> - <member><type>uint32_t</type> <name>z</name></member> + <member noautovalidity="true"><type>uint32_t</type> <name>x</name></member> + <member noautovalidity="true"><type>uint32_t</type> <name>y</name></member> + <member noautovalidity="true"><type>uint32_t</type> <name>z</name></member> </type> <type category="struct" name="VkSubmitInfo"> <member values="VK_STRUCTURE_TYPE_SUBMIT_INFO"><type>VkStructureType</type> <name>sType</name></member> @@ -1560,7 +1580,7 @@ server. </type> <type category="struct" name="VkDisplayModeParametersKHR"> <member><type>VkExtent2D</type> <name>visibleRegion</name><comment>Visible scanout region.</comment></member> - <member><type>uint32_t</type> <name>refreshRate</name><comment>Number of times per second the display is updated.</comment></member> + <member noautovalidity="true"><type>uint32_t</type> <name>refreshRate</name><comment>Number of times per second the display is updated.</comment></member> </type> <type category="struct" name="VkDisplayModePropertiesKHR" returnedonly="true"> <member><type>VkDisplayModeKHR</type> <name>displayMode</name><comment>Handle of this display mode.</comment></member> @@ -1661,6 +1681,12 @@ server. <member noautovalidity="true"><type>xcb_connection_t</type>* <name>connection</name></member> <member><type>xcb_window_t</type> <name>window</name></member> </type> + <type category="struct" name="VkImagePipeSurfaceCreateInfoFUCHSIA"> + <member values="VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member optional="true"><type>VkImagePipeSurfaceCreateFlagsFUCHSIA</type> <name>flags</name></member> + <member><type>zx_handle_t</type> <name>imagePipeHandle</name></member> + </type> <type category="struct" name="VkSurfaceFormatKHR" returnedonly="true"> <member><type>VkFormat</type> <name>format</name><comment>Supported pair of rendering format</comment></member> <member><type>VkColorSpaceKHR</type> <name>colorSpace</name><comment>and color space for the surface</comment></member> @@ -1706,7 +1732,7 @@ server. <member values="VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT"><type>VkStructureType</type> <name>sType</name><comment>Must be VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT</comment></member> <member>const <type>void</type>* <name>pNext</name></member> <member><type>uint32_t</type> <name>disabledValidationCheckCount</name><comment>Number of validation checks to disable</comment></member> - <member len="disabledValidationCheckCount"><type>VkValidationCheckEXT</type>* <name>pDisabledValidationChecks</name><comment>Validation checks to disable</comment></member> + <member len="disabledValidationCheckCount">const <type>VkValidationCheckEXT</type>* <name>pDisabledValidationChecks</name><comment>Validation checks to disable</comment></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> @@ -1957,6 +1983,20 @@ server. <member><type>void</type>* <name>pNext</name></member> <member><type>uint32_t</type> <name>maxPushDescriptors</name></member> </type> + <type category="struct" name="VkConformanceVersionKHR"> + <member><type>uint8_t</type> <name>major</name></member> + <member><type>uint8_t</type> <name>minor</name></member> + <member><type>uint8_t</type> <name>subminor</name></member> + <member><type>uint8_t</type> <name>patch</name></member> + </type> + <type category="struct" name="VkPhysicalDeviceDriverPropertiesKHR" structextends="VkPhysicalDeviceProperties2" returnedonly="true"> + <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR"><type>VkStructureType</type> <name>sType</name></member> + <member><type>void</type>* <name>pNext</name></member> + <member><type>uint32_t</type> <name>driverID</name></member> + <member><type>char</type> <name>driverName</name>[<enum>VK_MAX_DRIVER_NAME_SIZE_KHR</enum>]</member> + <member><type>char</type> <name>driverInfo</name>[<enum>VK_MAX_DRIVER_INFO_SIZE_KHR</enum>]</member> + <member><type>VkConformanceVersionKHR</type> <name>conformanceVersion</name></member> + </type> <type category="struct" name="VkPresentRegionsKHR" structextends="VkPresentInfoKHR"> <member values="VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR"><type>VkStructureType</type> <name>sType</name></member> <member>const <type>void</type>* <name>pNext</name></member> @@ -1969,7 +2009,7 @@ server. </type> <type category="struct" name="VkRectLayerKHR"> <member><type>VkOffset2D</type> <name>offset</name><comment>upper-left corner of a rectangle that has not changed, in pixels of a presentation images</comment></member> - <member><type>VkExtent2D</type> <name>extent</name><comment>Dimensions of a rectangle that has not changed, in pixels of a presentation images</comment></member> + <member noautovalidity="true"><type>VkExtent2D</type> <name>extent</name><comment>Dimensions of a rectangle that has not changed, in pixels of a presentation images</comment></member> <member><type>uint32_t</type> <name>layer</name><comment>Layer of a swapchain's image(s), for stereoscopic-3D images</comment></member> </type> <type category="struct" name="VkPhysicalDeviceVariablePointerFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"> @@ -2438,10 +2478,10 @@ server. <member><type>float</type> <name>maxContentLightLevel</name><comment>Content maximum luminance</comment></member> <member><type>float</type> <name>maxFrameAverageLightLevel</name></member> </type> - <type category="struct" name="VkRefreshCycleDurationGOOGLE"> + <type category="struct" name="VkRefreshCycleDurationGOOGLE" returnedonly="true"> <member><type>uint64_t</type> <name>refreshDuration</name><comment>Number of nanoseconds from the start of one refresh cycle to the next</comment></member> </type> - <type category="struct" name="VkPastPresentationTimingGOOGLE"> + <type category="struct" name="VkPastPresentationTimingGOOGLE" returnedonly="true"> <member><type>uint32_t</type> <name>presentID</name><comment>Application-provided identifier, previously given to vkQueuePresentKHR</comment></member> <member><type>uint64_t</type> <name>desiredPresentTime</name><comment>Earliest time an image should have been presented, previously given to vkQueuePresentKHR</comment></member> <member><type>uint64_t</type> <name>actualPresentTime</name><comment>Time the image was actually displayed</comment></member> @@ -2698,6 +2738,13 @@ server. <member><type>void</type>* <name>pNext</name></member> <member><type>VkBool32</type> <name>supportsTextureGatherLODBiasAMD</name></member> </type> + <type category="struct" name="VkConditionalRenderingBeginInfoEXT"> + <member values="VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>VkBuffer</type> <name>buffer</name></member> + <member><type>VkDeviceSize</type> <name>offset</name></member> + <member optional="true"><type>VkConditionalRenderingFlagsEXT</type> <name>flags</name></member> + </type> <type category="struct" name="VkProtectedSubmitInfo" structextends="VkSubmitInfo"> <member values="VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO"><type>VkStructureType</type> <name>sType</name></member> <member>const <type>void</type>* <name>pNext</name></member> @@ -2739,10 +2786,10 @@ server. </type> <type category="struct" name="VkSampleLocationsInfoEXT" structextends="VkImageMemoryBarrier"> <member values="VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member> - <member>const <type>void</type>* <name>pNext</name></member> - <member><type>VkSampleCountFlagBits</type> <name>sampleLocationsPerPixel</name></member> - <member><type>VkExtent2D</type> <name>sampleLocationGridSize</name></member> - <member><type>uint32_t</type> <name>sampleLocationsCount</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member optional="true"><type>VkSampleCountFlagBits</type> <name>sampleLocationsPerPixel</name></member> + <member><type>VkExtent2D</type> <name>sampleLocationGridSize</name></member> + <member optional="true"><type>uint32_t</type> <name>sampleLocationsCount</name></member> <member len="sampleLocationsCount">const <type>VkSampleLocationEXT</type>* <name>pSampleLocations</name></member> </type> <type category="struct" name="VkAttachmentSampleLocationsEXT"> @@ -2786,7 +2833,7 @@ server. <member>const <type>void</type>* <name>pNext</name></member> <member><type>VkSamplerReductionModeEXT</type> <name>reductionMode</name></member> </type> - <type category="struct" name="VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT" structextends="VkPhysicalDeviceFeatures2"> + <type category="struct" name="VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"> <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member> <member noautovalidity="true"><type>void</type>* <name>pNext</name></member> <member><type>VkBool32</type> <name>advancedBlendCoherentOperations</name></member> @@ -2808,6 +2855,32 @@ server. <member><type>VkBool32</type> <name>dstPremultiplied</name></member> <member><type>VkBlendOverlapEXT</type> <name>blendOverlap</name></member> </type> + <type category="struct" name="VkPhysicalDeviceInlineUniformBlockFeaturesEXT" returnedonly="true" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"> + <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member> + <member><type>void</type>* <name>pNext</name></member> + <member><type>VkBool32</type> <name>inlineUniformBlock</name></member> + <member><type>VkBool32</type> <name>descriptorBindingInlineUniformBlockUpdateAfterBind</name></member> + </type> + <type category="struct" name="VkPhysicalDeviceInlineUniformBlockPropertiesEXT" returnedonly="true" structextends="VkPhysicalDeviceProperties2"> + <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member> + <member><type>void</type>* <name>pNext</name></member> + <member><type>uint32_t</type> <name>maxInlineUniformBlockSize</name></member> + <member><type>uint32_t</type> <name>maxPerStageDescriptorInlineUniformBlocks</name></member> + <member><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks</name></member> + <member><type>uint32_t</type> <name>maxDescriptorSetInlineUniformBlocks</name></member> + <member><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindInlineUniformBlocks</name></member> + </type> + <type category="struct" name="VkWriteDescriptorSetInlineUniformBlockEXT" structextends="VkWriteDescriptorSet"> + <member values="VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>uint32_t</type> <name>dataSize</name></member> + <member len="dataSize">const <type>void</type>* <name>pData</name></member> + </type> + <type category="struct" name="VkDescriptorPoolInlineUniformBlockCreateInfoEXT" structextends="VkDescriptorPoolCreateInfo"> + <member values="VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>uint32_t</type> <name>maxInlineUniformBlockBindings</name></member> + </type> <type category="struct" name="VkPipelineCoverageModulationStateCreateInfoNV" structextends="VkPipelineMultisampleStateCreateInfo"> <member values="VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member> <member>const <type>void</type>* <name>pNext</name></member> @@ -2848,7 +2921,7 @@ server. <member><type>VkBool32</type> <name>supported</name></member> </type> <type category="struct" name="VkDescriptorSetLayoutSupportKHR" alias="VkDescriptorSetLayoutSupport"/> - <type category="struct" name="VkPhysicalDeviceShaderDrawParameterFeatures" structextends="VkPhysicalDeviceFeatures2"> + <type category="struct" name="VkPhysicalDeviceShaderDrawParameterFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"> <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES"><type>VkStructureType</type> <name>sType</name></member> <member noautovalidity="true"><type>void</type>* <name>pNext</name></member> <member><type>VkBool32</type> <name>shaderDrawParameters</name></member> @@ -3036,7 +3109,7 @@ server. <member values="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member> <member>const <type>void</type>* <name>pNext</name></member> <member optional="true"><type>uint32_t</type> <name>bindingCount</name></member> - <member len="bindingCount">const <type>VkDescriptorBindingFlagsEXT</type>* <name>pBindingFlags</name></member> + <member len="bindingCount" optional="true">const <type>VkDescriptorBindingFlagsEXT</type>* <name>pBindingFlags</name></member> </type> <type category="struct" name="VkDescriptorSetVariableDescriptorCountAllocateInfoEXT" structextends="VkDescriptorSetAllocateInfo"> <member values="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member> @@ -3049,6 +3122,75 @@ server. <member><type>void</type>* <name>pNext</name></member> <member><type>uint32_t</type> <name>maxVariableDescriptorCount</name></member> </type> + <type category="struct" name="VkAttachmentDescription2KHR"> + <member values="VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR"><type>VkStructureType</type> <name>sType</name></member> + <member noautovalidity="true">const <type>void</type>* <name>pNext</name></member> + <member optional="true"><type>VkAttachmentDescriptionFlags</type> <name>flags</name></member> + <member><type>VkFormat</type> <name>format</name></member> + <member><type>VkSampleCountFlagBits</type> <name>samples</name></member> + <member><type>VkAttachmentLoadOp</type> <name>loadOp</name><comment>Load operation for color or depth data</comment></member> + <member><type>VkAttachmentStoreOp</type> <name>storeOp</name><comment>Store operation for color or depth data</comment></member> + <member><type>VkAttachmentLoadOp</type> <name>stencilLoadOp</name><comment>Load operation for stencil data</comment></member> + <member><type>VkAttachmentStoreOp</type> <name>stencilStoreOp</name><comment>Store operation for stencil data</comment></member> + <member><type>VkImageLayout</type> <name>initialLayout</name></member> + <member><type>VkImageLayout</type> <name>finalLayout</name></member> + </type> + <type category="struct" name="VkAttachmentReference2KHR"> + <member values="VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR"><type>VkStructureType</type> <name>sType</name></member> + <member noautovalidity="true">const <type>void</type>* <name>pNext</name></member> + <member><type>uint32_t</type> <name>attachment</name></member> + <member><type>VkImageLayout</type> <name>layout</name></member> + <member noautovalidity="true"><type>VkImageAspectFlags</type> <name>aspectMask</name></member> + </type> + <type category="struct" name="VkSubpassDescription2KHR"> + <member values="VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR"><type>VkStructureType</type> <name>sType</name></member> + <member noautovalidity="true">const <type>void</type>* <name>pNext</name></member> + <member optional="true"><type>VkSubpassDescriptionFlags</type> <name>flags</name></member> + <member><type>VkPipelineBindPoint</type> <name>pipelineBindPoint</name></member> + <member><type>uint32_t</type> <name>viewMask</name></member> + <member optional="true"><type>uint32_t</type> <name>inputAttachmentCount</name></member> + <member len="inputAttachmentCount">const <type>VkAttachmentReference2KHR</type>* <name>pInputAttachments</name></member> + <member optional="true"><type>uint32_t</type> <name>colorAttachmentCount</name></member> + <member len="colorAttachmentCount">const <type>VkAttachmentReference2KHR</type>* <name>pColorAttachments</name></member> + <member optional="true" len="colorAttachmentCount">const <type>VkAttachmentReference2KHR</type>* <name>pResolveAttachments</name></member> + <member optional="true">const <type>VkAttachmentReference2KHR</type>* <name>pDepthStencilAttachment</name></member> + <member optional="true"><type>uint32_t</type> <name>preserveAttachmentCount</name></member> + <member len="preserveAttachmentCount">const <type>uint32_t</type>* <name>pPreserveAttachments</name></member> + </type> + <type category="struct" name="VkSubpassDependency2KHR"> + <member values="VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR"><type>VkStructureType</type> <name>sType</name></member> + <member noautovalidity="true">const <type>void</type>* <name>pNext</name></member> + <member><type>uint32_t</type> <name>srcSubpass</name></member> + <member><type>uint32_t</type> <name>dstSubpass</name></member> + <member><type>VkPipelineStageFlags</type> <name>srcStageMask</name></member> + <member><type>VkPipelineStageFlags</type> <name>dstStageMask</name></member> + <member optional="true"><type>VkAccessFlags</type> <name>srcAccessMask</name></member> + <member optional="true"><type>VkAccessFlags</type> <name>dstAccessMask</name></member> + <member optional="true"><type>VkDependencyFlags</type> <name>dependencyFlags</name></member> + <member optional="true"><type>int32_t</type> <name>viewOffset</name></member> + </type> + <type category="struct" name="VkRenderPassCreateInfo2KHR"> + <member values="VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member optional="true"><type>VkRenderPassCreateFlags</type> <name>flags</name></member> + <member optional="true"><type>uint32_t</type> <name>attachmentCount</name></member> + <member len="attachmentCount">const <type>VkAttachmentDescription2KHR</type>* <name>pAttachments</name></member> + <member><type>uint32_t</type> <name>subpassCount</name></member> + <member len="subpassCount">const <type>VkSubpassDescription2KHR</type>* <name>pSubpasses</name></member> + <member optional="true"><type>uint32_t</type> <name>dependencyCount</name></member> + <member len="dependencyCount">const <type>VkSubpassDependency2KHR</type>* <name>pDependencies</name></member> + <member optional="true"><type>uint32_t</type> <name>correlatedViewMaskCount</name></member> + <member len="correlatedViewMaskCount">const <type>uint32_t</type>* <name>pCorrelatedViewMasks</name></member> + </type> + <type category="struct" name="VkSubpassBeginInfoKHR"> + <member values="VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>VkSubpassContents</type> <name>contents</name></member> + </type> + <type category="struct" name="VkSubpassEndInfoKHR"> + <member values="VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + </type> <type category="struct" name="VkVertexInputBindingDivisorDescriptionEXT"> <member><type>uint32_t</type> <name>binding</name></member> <member><type>uint32_t</type> <name>divisor</name></member> @@ -3097,11 +3239,296 @@ server. <member><type>VkChromaLocation</type> <name>suggestedXChromaOffset</name></member> <member><type>VkChromaLocation</type> <name>suggestedYChromaOffset</name></member> </type> + <type category="struct" name="VkCommandBufferInheritanceConditionalRenderingInfoEXT" structextends="VkCommandBufferInheritanceInfo"> + <member values="VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member> + <member>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"> <member values="VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID"><type>VkStructureType</type> <name>sType</name></member> <member><type>void</type>* <name>pNext</name></member> <member><type>uint64_t</type> <name>externalFormat</name></member> </type> + <type category="struct" name="VkPhysicalDevice8BitStorageFeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"> + <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member> + <member noautovalidity="true"><type>void</type>* <name>pNext</name></member> + <member><type>VkBool32</type> <name>storageBuffer8BitAccess</name><comment>8-bit integer variables supported in StorageBuffer</comment></member> + <member><type>VkBool32</type> <name>uniformAndStorageBuffer8BitAccess</name><comment>8-bit integer variables supported in StorageBuffer and Uniform</comment></member> + <member><type>VkBool32</type> <name>storagePushConstant8</name><comment>8-bit integer variables supported in PushConstant</comment></member> + </type> + <type category="struct" name="VkPhysicalDeviceConditionalRenderingFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"> + <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member> + <member noautovalidity="true"><type>void</type>* <name>pNext</name></member> + <member><type>VkBool32</type> <name>conditionalRendering</name></member> + <member><type>VkBool32</type> <name>inheritedConditionalRendering</name></member> + </type> + <type category="struct" name="VkPhysicalDeviceVulkanMemoryModelFeaturesKHR" returnedonly="true" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"> + <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member> + <member noautovalidity="true"><type>void</type>* <name>pNext</name></member> + <member><type>VkBool32</type> <name>vulkanMemoryModel</name></member> + <member><type>VkBool32</type> <name>vulkanMemoryModelDeviceScope</name></member> + </type> + <type category="struct" name="VkPhysicalDeviceShaderAtomicInt64FeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"> + <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member> + <member><type>void</type>* <name>pNext</name></member> + <member><type>VkBool32</type> <name>shaderBufferInt64Atomics</name></member> + <member><type>VkBool32</type> <name>shaderSharedInt64Atomics</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> + <member noautovalidity="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="VkQueueFamilyCheckpointPropertiesNV" structextends="VkQueueFamilyProperties2" returnedonly="true"> + <member values="VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV"><type>VkStructureType</type> <name>sType</name></member> + <member><type>void</type>* <name>pNext</name></member> + <member><type>VkPipelineStageFlags</type> <name>checkpointExecutionStageMask</name></member> + </type> + <type category="struct" name="VkCheckpointDataNV" returnedonly="true"> + <member values="VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV"><type>VkStructureType</type> <name>sType</name></member> + <member><type>void</type>* <name>pNext</name></member> + <member><type>VkPipelineStageFlagBits</type> <name>stage</name></member> + <member noautovalidity="true"><type>void</type>* <name>pCheckpointMarker</name></member> + </type> + <type category="struct" name="VkImageViewASTCDecodeModeEXT" structextends="VkImageViewCreateInfo"> + <member values="VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>VkFormat</type> <name>decodeMode</name></member> + </type> + <type category="struct" name="VkPhysicalDeviceASTCDecodeFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"> + <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member> + <member noautovalidity="true"><type>void</type>* <name>pNext</name></member> + <member><type>VkBool32</type> <name>decodeModeSharedExponent</name></member> + </type> + <type category="struct" name="VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"> + <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV"><type>VkStructureType</type><name>sType</name></member> + <member noautovalidity="true"><type>void</type>* <name>pNext</name></member> + <member><type>VkBool32</type> <name>representativeFragmentTest</name></member> + </type> + <type category="struct" name="VkPipelineRepresentativeFragmentTestStateCreateInfoNV" structextends="VkGraphicsPipelineCreateInfo"> + <member values="VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>VkBool32</type> <name>representativeFragmentTestEnable</name></member> + </type> + <type category="struct" name="VkPhysicalDeviceExclusiveScissorFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"> + <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member> + <member><type>void</type>* <name>pNext</name></member> + <member><type>VkBool32</type> <name>exclusiveScissor</name></member> + </type> + <type category="struct" name="VkPipelineViewportExclusiveScissorStateCreateInfoNV" structextends="VkPipelineViewportStateCreateInfo"> + <member values="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member optional="true"><type>uint32_t</type> <name>exclusiveScissorCount</name></member> + <member len="exclusiveScissorCount" optional="true">const <type>VkRect2D</type>* <name>pExclusiveScissors</name></member> + </type> + <type category="struct" name="VkPhysicalDeviceCornerSampledImageFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"> + <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member> + <member><type>void</type>* <name>pNext</name></member> + <member><type>VkBool32</type> <name>cornerSampledImage</name></member> + </type> + <type category="struct" name="VkPhysicalDeviceComputeShaderDerivativesFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"> + <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member> + <member><type>void</type>* <name>pNext</name></member> + <member><type>VkBool32</type> <name>computeDerivativeGroupQuads</name></member> + <member><type>VkBool32</type> <name>computeDerivativeGroupLinear</name></member> + </type> + <type category="struct" name="VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"> + <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member> + <member><type>void</type>* <name>pNext</name></member> + <member><type>VkBool32</type> <name>fragmentShaderBarycentric</name></member> + </type> + <type category="struct" name="VkPhysicalDeviceShaderImageFootprintFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"> + <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member> + <member><type>void</type>* <name>pNext</name></member> + <member><type>VkBool32</type> <name>imageFootprint</name></member> + </type> + <type category="struct" name="VkShadingRatePaletteNV"> + <member><type>uint32_t</type> <name>shadingRatePaletteEntryCount</name></member> + <member len="shadingRatePaletteEntryCount">const <type>VkShadingRatePaletteEntryNV</type>* <name>pShadingRatePaletteEntries</name></member> + </type> + <type category="struct" name="VkPipelineViewportShadingRateImageStateCreateInfoNV" structextends="VkPipelineViewportStateCreateInfo"> + <member values="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>VkBool32</type> <name>shadingRateImageEnable</name></member> + <member optional="true"><type>uint32_t</type> <name>viewportCount</name></member> + <member len="viewportCount" optional="true">const <type>VkShadingRatePaletteNV</type>* <name>pShadingRatePalettes</name></member> + </type> + <type category="struct" name="VkPhysicalDeviceShadingRateImageFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"> + <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member> + <member><type>void</type>* <name>pNext</name></member> + <member><type>VkBool32</type> <name>shadingRateImage</name></member> + <member><type>VkBool32</type> <name>shadingRateCoarseSampleOrder</name></member> + </type> + <type category="struct" name="VkPhysicalDeviceShadingRateImagePropertiesNV" structextends="VkPhysicalDeviceProperties" returnedonly="true"> + <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV"><type>VkStructureType</type> <name>sType</name></member> + <member><type>void</type>* <name>pNext</name></member> + <member><type>VkExtent2D</type> <name>shadingRateTexelSize</name></member> + <member><type>uint32_t</type> <name>shadingRatePaletteSize</name></member> + <member><type>uint32_t</type> <name>shadingRateMaxCoarseSamples</name></member> + </type> + <type category="struct" name="VkCoarseSampleLocationNV"> + <member><type>uint32_t</type> <name>pixelX</name></member> + <member><type>uint32_t</type> <name>pixelY</name></member> + <member><type>uint32_t</type> <name>sample</name></member> + </type> + <type category="struct" name="VkCoarseSampleOrderCustomNV"> + <member><type>VkShadingRatePaletteEntryNV</type> <name>shadingRate</name></member> + <member><type>uint32_t</type> <name>sampleCount</name></member> + <member><type>uint32_t</type> <name>sampleLocationCount</name></member> + <member len="sampleLocationCount">const <type>VkCoarseSampleLocationNV</type>* <name>pSampleLocations</name></member> + </type> + <type category="struct" name="VkPipelineViewportCoarseSampleOrderStateCreateInfoNV" structextends="VkPipelineViewportStateCreateInfo"> + <member values="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>VkCoarseSampleOrderTypeNV</type> <name>sampleOrderType</name></member> + <member optional="true"><type>uint32_t</type> <name>customSampleOrderCount</name></member> + <member len="customSampleOrderCount">const <type>VkCoarseSampleOrderCustomNV</type>* <name>pCustomSampleOrders</name></member> + </type> + <type category="struct" name="VkPhysicalDeviceMeshShaderFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"> + <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member> + <member><type>void</type>* <name>pNext</name></member> + <member><type>VkBool32</type> <name>taskShader</name></member> + <member><type>VkBool32</type> <name>meshShader</name></member> + </type> + <type category="struct" name="VkPhysicalDeviceMeshShaderPropertiesNV" structextends="VkPhysicalDeviceProperties2"> + <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV"><type>VkStructureType</type> <name>sType</name></member> + <member><type>void</type>* <name>pNext</name></member> + <member><type>uint32_t</type> <name>maxDrawMeshTasksCount</name></member> + <member><type>uint32_t</type> <name>maxTaskWorkGroupInvocations</name></member> + <member><type>uint32_t</type> <name>maxTaskWorkGroupSize</name>[3]</member> + <member><type>uint32_t</type> <name>maxTaskTotalMemorySize</name></member> + <member><type>uint32_t</type> <name>maxTaskOutputCount</name></member> + <member><type>uint32_t</type> <name>maxMeshWorkGroupInvocations</name></member> + <member><type>uint32_t</type> <name>maxMeshWorkGroupSize</name>[3]</member> + <member><type>uint32_t</type> <name>maxMeshTotalMemorySize</name></member> + <member><type>uint32_t</type> <name>maxMeshOutputVertices</name></member> + <member><type>uint32_t</type> <name>maxMeshOutputPrimitives</name></member> + <member><type>uint32_t</type> <name>maxMeshMultiviewViewCount</name></member> + <member><type>uint32_t</type> <name>meshOutputPerVertexGranularity</name></member> + <member><type>uint32_t</type> <name>meshOutputPerPrimitiveGranularity</name></member> + </type> + <type category="struct" name="VkDrawMeshTasksIndirectCommandNV"> + <member><type>uint32_t</type> <name>taskCount</name></member> + <member><type>uint32_t</type> <name>firstTask</name></member> + </type> + <type category="struct" name="VkRaytracingPipelineCreateInfoNVX"> + <member values="VK_STRUCTURE_TYPE_RAYTRACING_PIPELINE_CREATE_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member 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 len="stageCount">const <type>uint32_t</type>* <name>pGroupNumbers</name><comment>One entry for each stage used as the query index and for grouping</comment></member> + <member><type>uint32_t</type> <name>maxRecursionDepth</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="VkGeometryTrianglesNVX"> + <member values="VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NVX"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member optional="true"><type>VkBuffer</type> <name>vertexData</name></member> + <member><type>VkDeviceSize</type> <name>vertexOffset</name></member> + <member><type>uint32_t</type> <name>vertexCount</name></member> + <member><type>VkDeviceSize</type> <name>vertexStride</name></member> + <member><type>VkFormat</type> <name>vertexFormat</name><comment>VK_FORMAT_R32G32B32_SFLOAT, VK_FORMAT_R32G32B32A32_SFLOAT, VK_FORMAT_R16G16B16_SFLOAT, or VK_FORMAT_R16G16B16A16_SFLOAT</comment></member> + <member optional="true"><type>VkBuffer</type> <name>indexData</name></member> + <member><type>VkDeviceSize</type> <name>indexOffset</name></member> + <member><type>uint32_t</type> <name>indexCount</name></member> + <member><type>VkIndexType</type> <name>indexType</name></member> + <member optional="true"><type>VkBuffer</type> <name>transformData</name><comment>Optional reference to array of floats representing a 3x4 row major affine transformation matrix.</comment></member> + <member><type>VkDeviceSize</type> <name>transformOffset</name></member> + </type> + <type category="struct" name="VkGeometryAABBNVX"> + <member values="VK_STRUCTURE_TYPE_GEOMETRY_AABB_NVX"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member optional="true"><type>VkBuffer</type> <name>aabbData</name></member> + <member><type>uint32_t</type> <name>numAABBs</name></member> + <member><type>uint32_t</type> <name>stride</name><comment>Stride in bytes between AABBs</comment></member> + <member><type>VkDeviceSize</type> <name>offset</name><comment>Offset in bytes of the first AABB in aabbData</comment></member> + </type> + <type category="struct" name="VkGeometryDataNVX"> + <member><type>VkGeometryTrianglesNVX</type> <name>triangles</name></member> + <member><type>VkGeometryAABBNVX</type> <name>aabbs</name></member> + </type> + <type category="struct" name="VkGeometryNVX"> + <member values="VK_STRUCTURE_TYPE_GEOMETRY_NVX"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>VkGeometryTypeNVX</type> <name>geometryType</name></member> + <member><type>VkGeometryDataNVX</type> <name>geometry</name></member> + <member optional="true"><type>VkGeometryFlagsNVX</type> <name>flags</name></member> + </type> + <type category="struct" name="VkAccelerationStructureCreateInfoNVX"> + <member values="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>VkAccelerationStructureTypeNVX</type> <name>type</name></member> + <member optional="true"><type>VkBuildAccelerationStructureFlagsNVX</type><name>flags</name></member> + <member><type>VkDeviceSize</type> <name>compactedSize</name></member> + <member optional="true"><type>uint32_t</type> <name>instanceCount</name></member> + <member optional="true"><type>uint32_t</type> <name>geometryCount</name></member> + <member len="geometryCount">const <type>VkGeometryNVX</type>* <name>pGeometries</name></member> + </type> + <type category="struct" name="VkBindAccelerationStructureMemoryInfoNVX"> + <member values="VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>VkAccelerationStructureNVX</type> <name>accelerationStructure</name></member> + <member><type>VkDeviceMemory</type> <name>memory</name></member> + <member><type>VkDeviceSize</type> <name>memoryOffset</name></member> + <member optional="true"><type>uint32_t</type> <name>deviceIndexCount</name></member> + <member len="deviceIndexCount">const <type>uint32_t</type>* <name>pDeviceIndices</name></member> + </type> + <type category="struct" name="VkDescriptorAccelerationStructureInfoNVX" structextends="VkWriteDescriptorSet"> + <member values="VK_STRUCTURE_TYPE_DESCRIPTOR_ACCELERATION_STRUCTURE_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>uint32_t</type> <name>accelerationStructureCount</name></member> + <member len="accelerationStructureCount">const <type>VkAccelerationStructureNVX</type>* <name>pAccelerationStructures</name></member> + </type> + <type category="struct" name="VkAccelerationStructureMemoryRequirementsInfoNVX"> + <member values="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>VkAccelerationStructureNVX</type> <name>accelerationStructure</name></member> + </type> + <type category="struct" name="VkPhysicalDeviceRaytracingPropertiesNVX" structextends="VkPhysicalDeviceProperties2"> + <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAYTRACING_PROPERTIES_NVX"><type>VkStructureType</type> <name>sType</name></member> + <member><type>void</type>* <name>pNext</name></member> + <member><type>uint32_t</type> <name>shaderHeaderSize</name></member> + <member><type>uint32_t</type> <name>maxRecursionDepth</name></member> + <member><type>uint32_t</type> <name>maxGeometryCount</name></member> + </type> + <type category="struct" name="VkDrmFormatModifierPropertiesListEXT" structextends="VkFormatProperties2"> + <member values="VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT"><type>VkStructureType</type> <name>sType</name></member> + <member><type>void</type>* <name>pNext</name></member> + <member optional="true"><type>uint32_t</type> <name>drmFormatModifierCount</name></member> + <member optional="true,false" len="drmFormatModifierCount"><type>VkDrmFormatModifierPropertiesEXT</type>* <name>pDrmFormatModifierProperties</name></member> + </type> + <type category="struct" name="VkDrmFormatModifierPropertiesEXT" returnedonly="true"> + <member><type>uint64_t</type> <name>drmFormatModifier</name></member> + <member><type>uint32_t</type> <name>drmFormatModifierPlaneCount</name></member> + <member><type>VkFormatFeatureFlags</type> <name>drmFormatModifierTilingFeatures</name></member> + </type> + <type category="struct" name="VkPhysicalDeviceImageDrmFormatModifierInfoEXT" structextends="VkPhysicalDeviceImageFormatInfo2"> + <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>uint64_t</type> <name>drmFormatModifier</name></member> + </type> + <type category="struct" name="VkImageDrmFormatModifierListCreateInfoEXT" structextends="VkImageCreateInfo"> + <member values="VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>uint32_t</type> <name>drmFormatModifierCount</name></member> + <member len="drmFormatModifierCount">const <type>uint64_t</type>* <name>pDrmFormatModifiers</name></member> + </type> + <type category="struct" name="VkImageDrmFormatModifierExplicitCreateInfoEXT" structextends="VkImageCreateInfo"> + <member values="VK_STRUCTURE_TYPE_IMAGE_EXCPLICIT_DRM_FORMAT_MODIFIER_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member> + <member>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 len="drmFormatModifierPlaneCount">const <type>VkSubresourceLayout</type>* <name>pPlaneLayouts</name></member> + </type> + <type category="struct" name="VkImageDrmFormatModifierPropertiesEXT" returnedonly="true"> + <member values="VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member> + <member><type>void</type>* <name>pNext</name></member> + <member><type>uint64_t</type> <name>drmFormatModifier</name></member> + </type> </types> <comment>Vulkan enumerant (token) definitions</comment> @@ -3129,6 +3556,8 @@ server. <enum value="(~0U)" name="VK_SUBPASS_EXTERNAL"/> <enum value="32" name="VK_MAX_DEVICE_GROUP_SIZE"/> <enum name="VK_MAX_DEVICE_GROUP_SIZE_KHR" alias="VK_MAX_DEVICE_GROUP_SIZE"/> + <enum value="256" name="VK_MAX_DRIVER_NAME_SIZE_KHR"/> + <enum value="256" name="VK_MAX_DRIVER_INFO_SIZE_KHR"/> </enums> <comment> @@ -3629,7 +4058,7 @@ server. <enum value="-10" name="VK_ERROR_TOO_MANY_OBJECTS" comment="Too many objects of the type have already been created"/> <enum value="-11" name="VK_ERROR_FORMAT_NOT_SUPPORTED" comment="Requested format is not supported on this device"/> <enum value="-12" name="VK_ERROR_FRAGMENTED_POOL" comment="A requested pool allocation has failed due to fragmentation of the pool's memory"/> - <unused start="-12"/> + <unused start="-13" comment="This is the next unused available error code (negative value)"/> </enums> <enums name="VkDynamicState" type="enum"> <enum value="0" name="VK_DYNAMIC_STATE_VIEWPORT"/> @@ -3681,6 +4110,7 @@ server. <enum bitpos="2" name="VK_QUEUE_TRANSFER_BIT" comment="Queue supports transfer operations"/> <enum bitpos="3" name="VK_QUEUE_SPARSE_BINDING_BIT" comment="Queue supports sparse resource memory management operations"/> </enums> + <enums name="VkRenderPassCreateFlagBits" type="bitmask"></enums> <enums name="VkDeviceQueueCreateFlagBits" type="bitmask"></enums> <enums name="VkMemoryPropertyFlagBits" type="bitmask"> <enum bitpos="0" name="VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT" comment="If otherwise stated, then allocate memory on device"/> @@ -3886,6 +4316,7 @@ server. </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"/> </enums> <enums name="VkDisplayPlaneAlphaFlagBitsKHR" type="bitmask"> <enum bitpos="0" name="VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR"/> @@ -3947,11 +4378,13 @@ server. <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 value="29" name="VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT"/> <enum value="30" name="VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT"/> <enum value="31" name="VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT"/> <enum value="32" name="VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT"/> <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"/> </enums> <enums name="VkRasterizationOrderAMD" type="enum"> <enum value="0" name="VK_RASTERIZATION_ORDER_STRICT_AMD"/> @@ -4184,6 +4617,72 @@ server. <enum value="0x10003" name="VK_VENDOR_ID_KAZAN" comment="Kazan Software Renderer"/> <unused start="0x10004" comment="This is the next unused available Khronos vendor ID"/> </enums> + <enums name="VkDriverIdKHR" type="enum"> + <comment>Driver IDs are now represented as enums instead of the old + <driverids> tag, allowing them to be included in the + API headers.</comment> + <enum value="1" name="VK_DRIVER_ID_AMD_PROPRIETARY_KHR" comment="Advanced Micro Devices, Inc."/> + <enum value="2" name="VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR" comment="Advanced Micro Devices, Inc."/> + <enum value="3" name="VK_DRIVER_ID_MESA_RADV_KHR" comment="Mesa open source project"/> + <enum value="4" name="VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR" comment="NVIDIA Corporation"/> + <enum value="5" name="VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR" comment="Intel Corporation"/> + <enum value="6" name="VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR" comment="Intel Corporation"/> + <enum value="7" name="VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR" comment="Imagination Technologies"/> + <enum value="8" name="VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR" comment="Qualcomm Technologies, Inc."/> + <enum value="9" name="VK_DRIVER_ID_ARM_PROPRIETARY_KHR" comment="Arm Limited"/> + </enums> + <enums name="VkConditionalRenderingFlagBitsEXT" type="bitmask"> + <enum bitpos="0" name="VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT"/> + </enums> + <enums name="VkShadingRatePaletteEntryNV" type="enum"> + <enum value="0" name="VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV"/> + <enum value="1" name="VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV"/> + <enum value="2" name="VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV"/> + <enum value="3" name="VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV"/> + <enum value="4" name="VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV"/> + <enum value="5" name="VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV"/> + <enum value="6" name="VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV"/> + <enum value="7" name="VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV"/> + <enum value="8" name="VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV"/> + <enum value="9" name="VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV"/> + <enum value="10" name="VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV"/> + <enum value="11" name="VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV"/> + </enums> + <enums name="VkCoarseSampleOrderTypeNV" type="enum"> + <enum value="0" name="VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV"/> + <enum value="1" name="VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV"/> + <enum value="2" name="VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV"/> + <enum value="3" name="VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV"/> + </enums> + <enums name="VkGeometryInstanceFlagBitsNVX" type="bitmask"> + <enum bitpos="0" name="VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NVX"/> + <enum bitpos="1" name="VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_FLIP_WINDING_BIT_NVX"/> + <enum bitpos="2" name="VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NVX"/> + <enum bitpos="3" name="VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NVX"/> + </enums> + <enums name="VkGeometryFlagBitsNVX" type="bitmask"> + <enum bitpos="0" name="VK_GEOMETRY_OPAQUE_BIT_NVX"/> + <enum bitpos="1" name="VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NVX"/> + </enums> + <enums name="VkBuildAccelerationStructureFlagBitsNVX" type="bitmask"> + <enum bitpos="0" name="VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NVX"/> + <enum bitpos="1" name="VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NVX"/> + <enum bitpos="2" name="VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NVX"/> + <enum bitpos="3" name="VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NVX"/> + <enum bitpos="4" name="VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NVX"/> + </enums> + <enums name="VkCopyAccelerationStructureModeNVX" type="enum"> + <enum value="0" name="VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NVX"/> + <enum value="1" name="VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NVX"/> + </enums> + <enums name="VkAccelerationStructureTypeNVX" type="enum"> + <enum value="0" name="VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NVX"/> + <enum value="1" name="VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NVX"/> + </enums> + <enums name="VkGeometryTypeNVX" type="enum"> + <enum value="0" name="VK_GEOMETRY_TYPE_TRIANGLES_NVX"/> + <enum value="1" name="VK_GEOMETRY_TYPE_AABBS_NVX"/> + </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"> @@ -5081,6 +5580,15 @@ server. <param><type>VkQueryPool</type> <name>queryPool</name></param> <param><type>uint32_t</type> <name>query</name></param> </command> + <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary"> + <proto><type>void</type> <name>vkCmdBeginConditionalRenderingEXT</name></proto> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param>const <type>VkConditionalRenderingBeginInfoEXT</type>* <name>pConditionalRenderingBegin</name></param> + </command> + <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary"> + <proto><type>void</type> <name>vkCmdEndConditionalRenderingEXT</name></proto> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + </command> <command queues="graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary"> <proto><type>void</type> <name>vkCmdResetQueryPool</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> @@ -5339,6 +5847,13 @@ server. <param><type>xcb_connection_t</type>* <name>connection</name></param> <param><type>xcb_visualid_t</type> <name>visual_id</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>vkCreateImagePipeSurfaceFUCHSIA</name></proto> + <param><type>VkInstance</type> <name>instance</name></param> + <param>const <type>VkImagePipeSurfaceCreateInfoFUCHSIA</type>* <name>pCreateInfo</name></param> + <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param> + <param><type>VkSurfaceKHR</type>* <name>pSurface</name></param> + </command> <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY"> <proto><type>VkResult</type> <name>vkCreateDebugReportCallbackEXT</name></proto> <param><type>VkInstance</type> <name>instance</name></param> @@ -6075,6 +6590,30 @@ server. <param><type>VkDeviceSize</type> <name>dstOffset</name></param> <param><type>uint32_t</type> <name>marker</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>vkCreateRenderPass2KHR</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param>const <type>VkRenderPassCreateInfo2KHR</type>* <name>pCreateInfo</name></param> + <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param> + <param><type>VkRenderPass</type>* <name>pRenderPass</name></param> + </command> + <command queues="graphics" renderpass="outside" cmdbufferlevel="primary" pipeline="graphics"> + <proto><type>void</type> <name>vkCmdBeginRenderPass2KHR</name></proto> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param>const <type>VkRenderPassBeginInfo</type>* <name>pRenderPassBegin</name></param> + <param>const <type>VkSubpassBeginInfoKHR</type>* <name>pSubpassBeginInfo</name></param> + </command> + <command queues="graphics" renderpass="inside" cmdbufferlevel="primary" pipeline="graphics"> + <proto><type>void</type> <name>vkCmdNextSubpass2KHR</name></proto> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param>const <type>VkSubpassBeginInfoKHR</type>* <name>pSubpassBeginInfo</name></param> + <param>const <type>VkSubpassEndInfoKHR</type>* <name>pSubpassEndInfo</name></param> + </command> + <command queues="graphics" renderpass="inside" cmdbufferlevel="primary" pipeline="graphics"> + <proto><type>void</type> <name>vkCmdEndRenderPass2KHR</name></proto> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param>const <type>VkSubpassEndInfoKHR</type>* <name>pSubpassEndInfo</name></param> + </command> <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR"> <proto><type>VkResult</type> <name>vkGetAndroidHardwareBufferPropertiesANDROID</name></proto> <param><type>VkDevice</type> <name>device</name></param> @@ -6107,6 +6646,181 @@ server. <param><type>uint32_t</type> <name>maxDrawCount</name></param> <param><type>uint32_t</type> <name>stride</name></param> </command> + <command queues="graphics,compute,transfer" renderpass="both" cmdbufferlevel="primary,secondary"> + <proto><type>void</type> <name>vkCmdSetCheckpointNV</name></proto> + <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param noautovalidity="true">const <type>void</type>* <name>pCheckpointMarker</name></param> + </command> + <command> + <proto><type>void</type> <name>vkGetQueueCheckpointDataNV</name></proto> + <param><type>VkQueue</type> <name>queue</name></param> + <param optional="false,true"><type>uint32_t</type>* <name>pCheckpointDataCount</name></param> + <param optional="true" len="pCheckpointDataCount"><type>VkCheckpointDataNV</type>* <name>pCheckpointData</name></param> + </command> + <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary"> + <proto><type>void</type> <name>vkCmdSetExclusiveScissorNV</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>VkRect2D</type>* <name>pExclusiveScissors</name></param> + </command> + <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary"> + <proto><type>void</type> <name>vkCmdBindShadingRateImageNV</name></proto> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param><type>VkImageView</type> <name>imageView</name></param> + <param><type>VkImageLayout</type> <name>imageLayout</name></param> + </command> + <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary"> + <proto><type>void</type> <name>vkCmdSetViewportShadingRatePaletteNV</name></proto> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param><type>uint32_t</type> <name>firstViewport</name></param> + <param><type>uint32_t</type> <name>viewportCount</name></param> + <param len="viewportCount">const <type>VkShadingRatePaletteNV</type>* <name>pShadingRatePalettes</name></param> + </command> + <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary"> + <proto><type>void</type> <name>vkCmdSetCoarseSampleOrderNV</name></proto> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param><type>VkCoarseSampleOrderTypeNV</type> <name>sampleOrderType</name></param> + <param optional="true"><type>uint32_t</type> <name>customSampleOrderCount</name></param> + <param len="customSampleOrderCount">const <type>VkCoarseSampleOrderCustomNV</type>* <name>pCustomSampleOrders</name></param> + </command> + <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary" pipeline="graphics"> + <proto><type>void</type> <name>vkCmdDrawMeshTasksNV</name></proto> + <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param><type>uint32_t</type> <name>taskCount</name></param> + <param><type>uint32_t</type> <name>firstTask</name></param> + </command> + <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary" pipeline="graphics"> + <proto><type>void</type> <name>vkCmdDrawMeshTasksIndirectNV</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> + <param><type>uint32_t</type> <name>drawCount</name></param> + <param><type>uint32_t</type> <name>stride</name></param> + </command> + <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary" pipeline="graphics"> + <proto><type>void</type> <name>vkCmdDrawMeshTasksIndirectCountNV</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> + <param><type>VkBuffer</type> <name>countBuffer</name></param> + <param><type>VkDeviceSize</type> <name>countBufferOffset</name></param> + <param><type>uint32_t</type> <name>maxDrawCount</name></param> + <param><type>uint32_t</type> <name>stride</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>vkCompileDeferredNVX</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param><type>VkPipeline</type> <name>pipeline</name></param> + <param><type>uint32_t</type> <name>shader</name></param> + </command> + <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY"> + <proto><type>VkResult</type> <name>vkCreateAccelerationStructureNVX</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param>const <type>VkAccelerationStructureCreateInfoNVX</type>* <name>pCreateInfo</name></param> + <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param> + <param><type>VkAccelerationStructureNVX</type>* <name>pAccelerationStructure</name></param> + </command> + <command> + <proto><type>void</type> <name>vkDestroyAccelerationStructureNVX</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param><type>VkAccelerationStructureNVX</type> <name>accelerationStructure</name></param> + <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param> + </command> + <command> + <proto><type>void</type> <name>vkGetAccelerationStructureMemoryRequirementsNVX</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param>const <type>VkAccelerationStructureMemoryRequirementsInfoNVX</type>* <name>pInfo</name></param> + <param><type>VkMemoryRequirements2KHR</type>* <name>pMemoryRequirements</name></param> + </command> + <command> + <proto><type>void</type> <name>vkGetAccelerationStructureScratchMemoryRequirementsNVX</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param>const <type>VkAccelerationStructureMemoryRequirementsInfoNVX</type>* <name>pInfo</name></param> + <param><type>VkMemoryRequirements2KHR</type>* <name>pMemoryRequirements</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>vkBindAccelerationStructureMemoryNVX</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param><type>uint32_t</type> <name>bindInfoCount</name></param> + <param len="bindInfoCount">const <type>VkBindAccelerationStructureMemoryInfoNVX</type>* <name>pBindInfos</name></param> + </command> + <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary"> + <proto><type>void</type> <name>vkCmdCopyAccelerationStructureNVX</name></proto> + <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param><type>VkAccelerationStructureNVX</type> <name>dst</name></param> + <param><type>VkAccelerationStructureNVX</type> <name>src</name></param> + <param><type>VkCopyAccelerationStructureModeNVX</type> <name>mode</name></param> + </command> + <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary"> + <proto><type>void</type> <name>vkCmdWriteAccelerationStructurePropertiesNVX</name></proto> + <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param><type>VkAccelerationStructureNVX</type> <name>accelerationStructure</name></param> + <param><type>VkQueryType</type> <name>queryType</name></param> + <param><type>VkQueryPool</type> <name>queryPool</name></param> + <param><type>uint32_t</type> <name>query</name></param> + </command> + <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary"> + <proto><type>void</type> <name>vkCmdBuildAccelerationStructureNVX</name></proto> + <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param><type>VkAccelerationStructureTypeNVX</type> <name>type</name></param> + <param optional="true"><type>uint32_t</type> <name>instanceCount</name></param> + <param optional="true"><type>VkBuffer</type> <name>instanceData</name></param> + <param><type>VkDeviceSize</type> <name>instanceOffset</name></param> + <param optional="true"><type>uint32_t</type> <name>geometryCount</name></param> + <param len="geometryCount">const <type>VkGeometryNVX</type>* <name>pGeometries</name></param> + <param optional="true"><type>VkBuildAccelerationStructureFlagsNVX</type> <name>flags</name></param> + <param><type>VkBool32</type> <name>update</name></param> + <param><type>VkAccelerationStructureNVX</type> <name>dst</name></param> + <param optional="true"><type>VkAccelerationStructureNVX</type> <name>src</name></param> + <param><type>VkBuffer</type> <name>scratch</name></param> + <param><type>VkDeviceSize</type> <name>scratchOffset</name></param> + </command> + <command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary"> + <proto><type>void</type> <name>vkCmdTraceRaysNVX</name></proto> + <param><type>VkCommandBuffer</type> <name>commandBuffer</name></param> + <param><type>VkBuffer</type> <name>raygenShaderBindingTableBuffer</name></param> + <param><type>VkDeviceSize</type> <name>raygenShaderBindingOffset</name></param> + <param><type>VkBuffer</type> <name>missShaderBindingTableBuffer</name></param> + <param><type>VkDeviceSize</type> <name>missShaderBindingOffset</name></param> + <param><type>VkDeviceSize</type> <name>missShaderBindingStride</name></param> + <param><type>VkBuffer</type> <name>hitShaderBindingTableBuffer</name></param> + <param><type>VkDeviceSize</type> <name>hitShaderBindingOffset</name></param> + <param><type>VkDeviceSize</type> <name>hitShaderBindingStride</name></param> + <param><type>uint32_t</type> <name>width</name></param> + <param><type>uint32_t</type> <name>height</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>vkGetRaytracingShaderHandlesNVX</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param><type>VkPipeline</type> <name>pipeline</name></param> + <param><type>uint32_t</type> <name>firstGroup</name></param> + <param><type>uint32_t</type> <name>groupCount</name></param> + <param><type>size_t</type> <name>dataSize</name></param> + <param len="dataSize"><type>void</type>* <name>pData</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>vkGetAccelerationStructureHandleNVX</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param><type>VkAccelerationStructureNVX</type> <name>accelerationStructure</name></param> + <param><type>size_t</type> <name>dataSize</name></param> + <param len="dataSize"><type>void</type>* <name>pData</name></param> + </command> + <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INVALID_SHADER_NV"> + <proto><type>VkResult</type> <name>vkCreateRaytracingPipelinesNVX</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>VkRaytracingPipelineCreateInfoNVX</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> + <proto><type>VkResult</type> <name>vkGetImageDrmFormatModifierPropertiesEXT</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param><type>VkImage</type> <name>image</name></param> + <param><type>VkImageDrmFormatModifierPropertiesEXT</type>* <name>pProperties</name></param> + </command> </commands> <feature api="vulkan" name="VK_VERSION_1_0" number="1.0" comment="Vulkan core API interface definitions"> @@ -6419,6 +7133,7 @@ server. <type name="VkBufferMemoryRequirementsInfo2"/> <type name="VkImageMemoryRequirementsInfo2"/> <type name="VkImageSparseMemoryRequirementsInfo2"/> + <type name="VkMemoryRequirements2KHR"/> <type name="VkMemoryRequirements2"/> <type name="VkSparseImageMemoryRequirements2"/> <command name="vkGetImageMemoryRequirements2"/> @@ -6671,7 +7386,6 @@ server. <enum value=""VK_KHR_surface"" name="VK_KHR_SURFACE_EXTENSION_NAME"/> <enum offset="0" extends="VkResult" dir="-" name="VK_ERROR_SURFACE_LOST_KHR"/> <enum offset="1" extends="VkResult" dir="-" name="VK_ERROR_NATIVE_WINDOW_IN_USE_KHR"/> - <enum value="VK_COLOR_SPACE_SRGB_NONLINEAR_KHR" name="VK_COLORSPACE_SRGB_NONLINEAR_KHR"/> <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_SURFACE_KHR" comment="VkSurfaceKHR"/> <command name="vkDestroySurfaceKHR"/> <command name="vkGetPhysicalDeviceSurfaceSupportKHR"/> @@ -6789,7 +7503,7 @@ server. <command name="vkGetPhysicalDeviceWaylandPresentationSupportKHR"/> </require> </extension> - <extension name="VK_KHR_mir_surface" number="8" type="instance" requires="VK_KHR_surface" platform="mir" author="KHR" contact="Jesse Hall @critsec,Ian Elliott @ianelliottus" supported="vulkan"> + <extension name="VK_KHR_mir_surface" number="8" type="instance" requires="VK_KHR_surface" platform="mir" author="KHR" contact="Jesse Hall @critsec,Ian Elliott @ianelliottus" obsoletedby="" supported="vulkan"> <require> <enum value="4" name="VK_KHR_MIR_SURFACE_SPEC_VERSION"/> <enum value=""VK_KHR_mir_surface"" name="VK_KHR_MIR_SURFACE_EXTENSION_NAME"/> @@ -6834,15 +7548,14 @@ server. <command name="vkQueueSignalReleaseImageANDROID"/> </require> </extension> - <extension name="VK_EXT_debug_report" number="12" type="instance" author="GOOGLE" contact="Courtney Goeltzenleuchter @courtney-g" supported="vulkan"> + <extension name="VK_EXT_debug_report" number="12" type="instance" author="GOOGLE" contact="Courtney Goeltzenleuchter @courtney-g" supported="vulkan" deprecatedby="VK_EXT_debug_utils"> <require> <enum value="9" name="VK_EXT_DEBUG_REPORT_SPEC_VERSION"/> <enum value=""VK_EXT_debug_report"" 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 value="VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT" name="VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT"/> <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT" comment="VkDebugReportCallbackEXT"/> - <enum value="VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT"/> <type name="VkDebugReportObjectTypeEXT"/> <type name="VkDebugReportCallbackCreateInfoEXT"/> <command name="vkCreateDebugReportCallbackEXT"/> @@ -6855,7 +7568,7 @@ server. <enum extends="VkDebugReportObjectTypeEXT" extnumber="86" offset="0" name="VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT"/> </require> </extension> - <extension name="VK_NV_glsl_shader" number="13" type="device" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan"> + <extension name="VK_NV_glsl_shader" number="13" type="device" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan" deprecatedby=""> <require> <enum value="1" name="VK_NV_GLSL_SHADER_SPEC_VERSION"/> <enum value=""VK_NV_glsl_shader"" name="VK_NV_GLSL_SHADER_EXTENSION_NAME"/> @@ -6910,19 +7623,19 @@ server. <enum value=""VK_AMD_extension_20"" name="VK_AMD_EXTENSION_20_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_AMD_shader_trinary_minmax" number="21" type="device" author="AMD" contact="Qun Lin, AMD @linqun" supported="vulkan"> + <extension name="VK_AMD_shader_trinary_minmax" number="21" type="device" author="AMD" contact="Qun Lin @linqun" supported="vulkan"> <require> <enum value="1" name="VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION"/> <enum value=""VK_AMD_shader_trinary_minmax"" name="VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_AMD_shader_explicit_vertex_parameter" number="22" type="device" author="AMD" contact="Qun Lin, AMD @linqun" supported="vulkan"> + <extension name="VK_AMD_shader_explicit_vertex_parameter" number="22" type="device" author="AMD" contact="Qun Lin @linqun" supported="vulkan"> <require> <enum value="1" name="VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION"/> <enum value=""VK_AMD_shader_explicit_vertex_parameter"" 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" supported="vulkan"> + <extension name="VK_EXT_debug_marker" number="23" type="device" requires="VK_EXT_debug_report" author="Baldur Karlsson" contact="Baldur Karlsson @baldurk" supported="vulkan" promotedto="VK_EXT_debug_utils"> <require> <enum value="4" name="VK_EXT_DEBUG_MARKER_SPEC_VERSION"/> <enum value=""VK_EXT_debug_marker"" name="VK_EXT_DEBUG_MARKER_EXTENSION_NAME"/> @@ -6958,7 +7671,7 @@ server. <enum value=""VK_AMD_gcn_shader"" name="VK_AMD_GCN_SHADER_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_NV_dedicated_allocation" number="27" type="device" author="NV" contact="Jeff Bolz @jeffbolznv" supported="vulkan"> + <extension name="VK_NV_dedicated_allocation" number="27" type="device" author="NV" contact="Jeff Bolz @jeffbolznv" supported="vulkan" deprecatedby="VK_KHR_dedicated_allocation"> <require> <enum value="1" name="VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION"/> <enum value=""VK_NV_dedicated_allocation"" name="VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME"/> @@ -7006,7 +7719,7 @@ server. <enum value=""VK_AMD_extension_33"" name="VK_AMD_EXTENSION_33_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_AMD_draw_indirect_count" number="34" type="device" author="AMD" contact="Daniel Rakos @drakos-amd" supported="vulkan"> + <extension name="VK_AMD_draw_indirect_count" number="34" type="device" author="AMD" contact="Daniel Rakos @drakos-amd" supported="vulkan" promotedto="VK_KHR_draw_indirect_count"> <require> <enum value="1" name="VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION"/> <enum value=""VK_AMD_draw_indirect_count"" name="VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME"/> @@ -7020,7 +7733,7 @@ server. <enum value=""VK_AMD_extension_35"" name="VK_AMD_EXTENSION_35_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_AMD_negative_viewport_height" number="36" type="device" author="AMD" contact="Matthaeus G. Chajdas @anteru" supported="vulkan"> + <extension name="VK_AMD_negative_viewport_height" number="36" type="device" author="AMD" contact="Matthaeus G. Chajdas @anteru" supported="vulkan" obsoletedby="VK_KHR_maintenance1"> <require> <enum value="1" name="VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION"/> <enum value=""VK_AMD_negative_viewport_height"" name="VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME"/> @@ -7116,10 +7829,13 @@ server. <enum value=""VK_GOOGLE_extension_50"" name="VK_GOOGLE_EXTENSION_50_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_NVX_extension_51" number="51" author="NVX" contact="James Jones @cubanismo" supported="disabled"> + <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"> <require> - <enum value="0" name="VK_NVX_EXTENSION_51_SPEC_VERSION"/> - <enum value=""VK_NVX_extension_51"" name="VK_NVX_EXTENSION_51_EXTENSION_NAME"/> + <enum value="2" name="VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION"/> + <enum value=""VK_NV_corner_sampled_image"" name="VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME"/> + <enum bitpos="13" extends="VkImageCreateFlagBits" name="VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV"/> + <type name="VkPhysicalDeviceCornerSampledImageFeaturesNV"/> </require> </extension> <extension name="VK_NVX_extension_52" number="52" author="NVX" contact="James Jones @cubanismo" supported="disabled"> @@ -7134,7 +7850,7 @@ server. <enum value=""VK_NV_extension_53"" 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"> + <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"> <require> <enum value="1" name="VK_KHR_MULTIVIEW_SPEC_VERSION"/> <enum value=""VK_KHR_multiview"" name="VK_KHR_MULTIVIEW_EXTENSION_NAME"/> @@ -7161,7 +7877,7 @@ server. <enum offset="7" extends="VkFormat" name="VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG"/> </require> </extension> - <extension name="VK_NV_external_memory_capabilities" number="56" type="instance" author="NV" contact="James Jones @cubanismo" supported="vulkan"> + <extension name="VK_NV_external_memory_capabilities" number="56" type="instance" author="NV" contact="James Jones @cubanismo" supported="vulkan" deprecatedby="VK_KHR_external_memory_capabilities"> <require> <enum value="1" name="VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION"/> <enum value=""VK_NV_external_memory_capabilities"" name="VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME"/> @@ -7173,7 +7889,7 @@ server. <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"> + <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"> <require> <enum value="1" name="VK_NV_EXTERNAL_MEMORY_SPEC_VERSION"/> <enum value=""VK_NV_external_memory"" name="VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME"/> @@ -7183,7 +7899,7 @@ server. <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"> + <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"> <require> <enum value="1" name="VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION"/> <enum value=""VK_NV_external_memory_win32"" name="VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME"/> @@ -7194,7 +7910,7 @@ server. <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"> + <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"> <require> <enum value="1" name="VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION"/> <enum value=""VK_NV_win32_keyed_mutex"" name="VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME"/> @@ -7202,7 +7918,7 @@ server. <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"> + <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"> <require> <enum value="1" name="VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION"/> <enum value=""VK_KHR_get_physical_device_properties2"" name="VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME"/> @@ -7233,7 +7949,7 @@ server. <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"> + <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"> <require> <enum value="3" name="VK_KHR_DEVICE_GROUP_SPEC_VERSION"/> <enum value=""VK_KHR_device_group"" name="VK_KHR_DEVICE_GROUP_EXTENSION_NAME"/> @@ -7312,7 +8028,7 @@ server. <command name="vkCreateViSurfaceNN"/> </require> </extension> - <extension name="VK_KHR_shader_draw_parameters" number="64" type="device" author="KHR" contact="Daniel Koch @dgkoch" supported="vulkan"> + <extension name="VK_KHR_shader_draw_parameters" number="64" type="device" author="KHR" contact="Daniel Koch @dgkoch" supported="vulkan" promotedto="VK_VERSION_1_1"> <require> <enum value="1" name="VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION"/> <enum value=""VK_KHR_shader_draw_parameters"" name="VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME"/> @@ -7336,10 +8052,14 @@ server. <enum value=""VK_ARM_extension_01"" name="VK_ARM_EXTENSION_01_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_ARM_extension_02" number="68" type="device" author="ARM" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="disabled"> + <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"> <require> - <enum value="0" name="VK_ARM_EXTENSION_02_SPEC_VERSION"/> - <enum value=""VK_ARM_extension_02"" name="VK_ARM_EXTENSION_02_EXTENSION_NAME"/> + <enum value="1" name="VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION"/> + <enum value=""VK_EXT_astc_decode_mode"" name="VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT"/> + <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT"/> + <type name="VkImageViewASTCDecodeModeEXT"/> + <type name="VkPhysicalDeviceASTCDecodeFeaturesEXT"/> </require> </extension> <extension name="VK_IMG_extension_69" number="69" type="device" author="IMG" contact="Tobias Hector @tobski" supported="disabled"> @@ -7348,7 +8068,7 @@ server. <enum value=""VK_IMG_extension_69"" name="VK_IMG_EXTENSION_69_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_KHR_maintenance1" number="70" type="device" author="KHR" contact="Piers Daniell @pdaniell-nv" supported="vulkan"> + <extension name="VK_KHR_maintenance1" number="70" type="device" author="KHR" contact="Piers Daniell @pdaniell-nv" supported="vulkan" promotedto="VK_VERSION_1_1"> <require> <enum value="2" name="VK_KHR_MAINTENANCE1_SPEC_VERSION"/> <enum value=""VK_KHR_maintenance1"" name="VK_KHR_MAINTENANCE1_EXTENSION_NAME"/> @@ -7360,7 +8080,7 @@ server. <command name="vkTrimCommandPoolKHR"/> </require> </extension> - <extension name="VK_KHR_device_group_creation" number="71" type="instance" author="KHR" contact="Jeff Bolz @jeffbolznv" supported="vulkan"> + <extension name="VK_KHR_device_group_creation" number="71" type="instance" author="KHR" contact="Jeff Bolz @jeffbolznv" supported="vulkan" promotedto="VK_VERSION_1_1"> <require> <enum value="1" name="VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION"/> <enum value=""VK_KHR_device_group_creation"" name="VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME"/> @@ -7373,7 +8093,7 @@ server. <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"> + <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"> <require> <enum value="1" name="VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION"/> <enum value=""VK_KHR_external_memory_capabilities"" name="VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME"/> @@ -7406,7 +8126,7 @@ server. <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"> + <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"> <require> <enum value="1" name="VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION"/> <enum value=""VK_KHR_external_memory"" name="VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME"/> @@ -7458,7 +8178,7 @@ server. <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"> + <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"> <require> <enum value="1" name="VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION"/> <enum value=""VK_KHR_external_semaphore_capabilities"" name="VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME"/> @@ -7482,7 +8202,7 @@ server. <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"> + <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"> <require> <enum value="1" name="VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION"/> <enum value=""VK_KHR_external_semaphore"" name="VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME"/> @@ -7535,10 +8255,23 @@ server. <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_extension_82" number="82" type="device" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="disabled"> + <extension name="VK_EXT_conditional_rendering" number="82" type="device" author="NV" contact="Vikram Kushwaha @vkushwaha" supported="vulkan"> <require> - <enum value="0" name="VK_EXT_EXTENSION_82_SPEC_VERSION"/> - <enum value=""VK_EXT_extension_82"" name="VK_EXT_EXTENSION_82_EXTENSION_NAME"/> + <enum value="1" name="VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION"/> + <enum value=""VK_EXT_conditional_rendering"" name="VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT"/> + <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT"/> + <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT"/> + <type name="VkConditionalRenderingFlagsEXT"/> + <type name="VkConditionalRenderingFlagBitsEXT"/> + <enum bitpos="20" extends="VkAccessFlagBits" name="VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT" comment="read access flag for reading conditional rendering predicate"/> + <enum bitpos="9" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT" comment="Specifies the buffer can be used as predicate in conditional rendering"/> + <enum bitpos="18" extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" comment="A pipeline stage for conditional rendering predicate fetch"/> + <command name="vkCmdBeginConditionalRenderingEXT"/> + <command name="vkCmdEndConditionalRenderingEXT"/> + <type name="VkConditionalRenderingBeginInfoEXT"/> + <type name="VkPhysicalDeviceConditionalRenderingFeaturesEXT"/> + <type name="VkCommandBufferInheritanceConditionalRenderingInfoEXT"/> </require> </extension> <extension name="VK_KHR_extension_83" number="83" author="KHR" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="disabled"> @@ -7547,7 +8280,7 @@ server. <enum value=""VK_KHR_extension_83"" name="VK_KHR_EXTENSION_83_EXTENSION_NAME"/> </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"> + <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"> <require> <enum value="1" name="VK_KHR_16BIT_STORAGE_SPEC_VERSION"/> <enum value=""VK_KHR_16bit_storage"" name="VK_KHR_16BIT_STORAGE_EXTENSION_NAME"/> @@ -7565,7 +8298,7 @@ server. <type name="VkRectLayerKHR"/> </require> </extension> - <extension name="VK_KHR_descriptor_update_template" number="86" type="device" author="KHR" contact="Markus Tavenrath @mtavenrath" supported="vulkan"> + <extension name="VK_KHR_descriptor_update_template" number="86" type="device" author="KHR" contact="Markus Tavenrath @mtavenrath" supported="vulkan" promotedto="VK_VERSION_1_1"> <require> <enum value="1" name="VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION"/> <enum value=""VK_KHR_descriptor_update_template"" name="VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME"/> @@ -7667,8 +8400,8 @@ server. <require> <enum value="1" name="VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION"/> <enum value=""VK_EXT_display_surface_counter"" name="VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME"/> - <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT"/> - <enum value="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT" name="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT"/> + <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"/> <type name="VkSurfaceCounterFlagsEXT"/> <type name="VkSurfaceCounterFlagBitsEXT"/> <type name="VkSurfaceCapabilities2EXT"/> @@ -7847,10 +8580,21 @@ server. <enum value=""VK_IMG_extension_109"" name="VK_IMG_EXTENSION_109_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_IMG_extension_110" number="110" author="IMG" contact="Michael Worcester @michaelworcester" supported="disabled"> + <extension name="VK_KHR_create_renderpass2" requires="VK_KHR_multiview,VK_KHR_maintenance2" number="110" contact="Tobias Hector @tobias" type="device" supported="vulkan"> <require> - <enum value="0" name="VK_IMG_EXTENSION_110_SPEC_VERSION"/> - <enum value=""VK_IMG_extension_110"" name="VK_IMG_EXTENSION_110_EXTENSION_NAME"/> + <enum value="1" name="VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION"/> + <enum value=""VK_KHR_create_renderpass2"" name="VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR"/> + <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR"/> + <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR"/> + <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR"/> + <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR"/> + <enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR"/> + <enum offset="6" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR"/> + <command name="vkCreateRenderPass2KHR"/> + <command name="vkCmdBeginRenderPass2KHR"/> + <command name="vkCmdNextSubpass2KHR"/> + <command name="vkCmdEndRenderPass2KHR"/> </require> </extension> <extension name="VK_IMG_extension_111" number="111" author="IMG" contact="Michael Worcester @michaelworcester" supported="disabled"> @@ -7871,7 +8615,7 @@ server. <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"> + <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"> <require> <enum value="1" name="VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION"/> <enum value=""VK_KHR_external_fence_capabilities"" name="VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME"/> @@ -7894,7 +8638,7 @@ server. <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"> + <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"> <require> <enum value="1" name="VK_KHR_EXTERNAL_FENCE_SPEC_VERSION"/> <enum value=""VK_KHR_external_fence"" name="VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME"/> @@ -7937,7 +8681,7 @@ server. <enum value=""VK_KHR_extension_117"" name="VK_KHR_EXTENSION_117_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_KHR_maintenance2" number="118" type="device" author="KHR" contact="Michael Worcester @michaelworcester" supported="vulkan"> + <extension name="VK_KHR_maintenance2" number="118" type="device" author="KHR" contact="Michael Worcester @michaelworcester" supported="vulkan" promotedto="VK_VERSION_1_1"> <require> <enum value="1" name="VK_KHR_MAINTENANCE2_SPEC_VERSION"/> <enum value=""VK_KHR_maintenance2"" name="VK_KHR_MAINTENANCE2_EXTENSION_NAME"/> @@ -7982,7 +8726,7 @@ server. <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"> + <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"> <require> <enum value="1" name="VK_KHR_VARIABLE_POINTERS_SPEC_VERSION"/> <enum value=""VK_KHR_variable_pointers"" name="VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME"/> @@ -8050,7 +8794,7 @@ server. <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"> + <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"> <require> <enum value="3" name="VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION"/> <enum value=""VK_KHR_dedicated_allocation"" name="VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME"/> @@ -8121,13 +8865,13 @@ server. <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"> + <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"> <require> <enum value="1" name="VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION"/> <enum value=""VK_KHR_storage_buffer_storage_class"" name="VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_AMD_gpu_shader_int16" number="133" type="device" author="AMD" contact="Qun Lin, AMD @linqun" supported="vulkan"> + <extension name="VK_AMD_gpu_shader_int16" number="133" type="device" author="AMD" contact="Qun Lin @linqun" supported="vulkan"> <require> <enum value="1" name="VK_AMD_GPU_SHADER_INT16_SPEC_VERSION"/> <enum value=""VK_AMD_gpu_shader_int16"" name="VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME"/> @@ -8163,10 +8907,19 @@ server. <enum value=""VK_AMD_shader_fragment_mask"" name="VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_AMD_extension_139" number="139" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled"> + <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"> <require> - <enum value="0" name="VK_AMD_EXTENSION_139_SPEC_VERSION"/> - <enum value=""VK_AMD_extension_139"" name="VK_AMD_EXTENSION_139_EXTENSION_NAME"/> + <enum value="1" name="VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION"/> + <enum value=""VK_EXT_inline_uniform_block"" name="VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME"/> + <enum offset="0" extends="VkDescriptorType" name="VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT"/> + <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT"/> + <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT"/> + <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT"/> + <type name="VkPhysicalDeviceInlineUniformBlockFeaturesEXT"/> + <type name="VkPhysicalDeviceInlineUniformBlockPropertiesEXT"/> + <type name="VkWriteDescriptorSetInlineUniformBlockEXT"/> + <type name="VkDescriptorPoolInlineUniformBlockCreateInfoEXT"/> </require> </extension> <extension name="VK_AMD_extension_140" number="140" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled"> @@ -8216,7 +8969,7 @@ server. <command name="vkGetPhysicalDeviceMultisamplePropertiesEXT"/> </require> </extension> - <extension name="VK_KHR_relaxed_block_layout" number="145" type="device" author="KHR" contact="John Kessenich @johnkslang" supported="vulkan"> + <extension name="VK_KHR_relaxed_block_layout" number="145" type="device" author="KHR" contact="John Kessenich @johnkslang" supported="vulkan" promotedto="VK_VERSION_1_1"> <require> <enum value="1" name="VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION"/> <enum value=""VK_KHR_relaxed_block_layout"" name="VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME"/> @@ -8224,7 +8977,7 @@ server. </extension> <extension name="RESERVED_DO_NOT_USE_146" number="146" supported="disabled" comment="Used for functionality subsumed into Vulkan 1.1 and not published as an extension"> </extension> - <extension name="VK_KHR_get_memory_requirements2" number="147" type="device" author="KHR" contact="Jason Ekstrand @jekstrand" supported="vulkan"> + <extension name="VK_KHR_get_memory_requirements2" number="147" type="device" author="KHR" contact="Jason Ekstrand @jekstrand" supported="vulkan" promotedto="VK_VERSION_1_1"> <require> <enum value="1" name="VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION"/> <enum value=""VK_KHR_get_memory_requirements2"" name="VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME"/> @@ -8361,7 +9114,7 @@ server. <enum value=""VK_EXT_post_depth_coverage"" 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"> + <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"> <require> <enum value="1" name="VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION"/> <enum value=""VK_KHR_sampler_ycbcr_conversion"" name="VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME"/> @@ -8444,7 +9197,7 @@ server. <enum extends="VkDebugReportObjectTypeEXT" offset="0" name="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"> + <extension name="VK_KHR_bind_memory2" number="158" type="device" author="KHR" contact="Tobias Hector @tobski" supported="vulkan" promotedto="VK_VERSION_1_1"> <require> <enum value="1" name="VK_KHR_BIND_MEMORY_2_SPEC_VERSION"/> <enum value=""VK_KHR_bind_memory2"" name="VK_KHR_BIND_MEMORY_2_EXTENSION_NAME"/> @@ -8457,10 +9210,38 @@ server. <type name="VkBindImageMemoryInfoKHR"/> </require> </extension> - <extension name="VK_EXT_extension_159" number="159" author="EXT" contact="Chad Versace @chadversary" supported="disabled"> + <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_sampler_ycbcr_conversion" author="EXT" contact="Chad Versace @chadversary" supported="disabled"> <require> <enum value="0" name="VK_EXT_EXTENSION_159_SPEC_VERSION"/> <enum value=""VK_EXT_extension_159"" name="VK_EXT_EXTENSION_159_EXTENSION_NAME"/> + + <enum value="1" name="VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION"/> + <enum value=""VK_EXT_image_drm_format_modifier"" name="VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME"/> + + <enum offset="0" dir="-" extends="VkResult" name="VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT"/> + + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT"/> + <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT"/> + <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT"/> + <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT"/> + <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_EXCPLICIT_DRM_FORMAT_MODIFIER_CREATE_INFO_EXT"/> + <enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT"/> + + <enum offset="0" extends="VkImageTiling" name="VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT"/> + + <enum bitpos="7" extends="VkImageAspectFlagBits" name="VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT"/> + <enum bitpos="8" extends="VkImageAspectFlagBits" name="VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT"/> + <enum bitpos="9" extends="VkImageAspectFlagBits" name="VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT"/> + <enum bitpos="10" extends="VkImageAspectFlagBits" name="VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT"/> + + <type name="VkDrmFormatModifierPropertiesListEXT"/> + <type name="VkDrmFormatModifierPropertiesEXT"/> + <type name="VkPhysicalDeviceImageDrmFormatModifierInfoEXT"/> + <type name="VkImageDrmFormatModifierListCreateInfoEXT"/> + <type name="VkImageDrmFormatModifierExplicitCreateInfoEXT"/> + <type name="VkImageDrmFormatModifierPropertiesEXT"/> + + <command name="vkGetImageDrmFormatModifierPropertiesEXT"/> </require> </extension> <extension name="VK_EXT_extension_160" number="160" author="EXT" contact="Mark Young @marky-lunarg" supported="disabled"> @@ -8476,7 +9257,6 @@ server. <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT"/> <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT"/> <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_VALIDATION_CACHE_EXT" comment="VkValidationCacheEXT"/> - <enum value="VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT"/> <type name="VkValidationCacheEXT"/> <type name="VkValidationCacheCreateInfoEXT"/> <type name="VkShaderModuleValidationCacheCreateInfoEXT"/> @@ -8519,22 +9299,108 @@ server. <enum value=""VK_NV_extension_164"" name="VK_EXT_EXTENSION_164_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_NV_extension_165" number="165" author="NV" contact="Daniel Koch @dgkoch" supported="disabled"> - <require> - <enum value="0" name="VK_EXT_EXTENSION_165_SPEC_VERSION"/> - <enum value=""VK_NV_extension_165"" name="VK_EXT_EXTENSION_165_EXTENSION_NAME"/> - </require> - </extension> - <extension name="VK_NV_extension_166" number="166" author="NV" contact="Daniel Koch @dgkoch" supported="disabled"> - <require> - <enum value="0" name="VK_EXT_EXTENSION_166_SPEC_VERSION"/> - <enum value=""VK_NV_extension_166"" name="VK_EXT_EXTENSION_166_EXTENSION_NAME"/> - </require> - </extension> - <extension name="VK_NV_extension_167" number="167" author="NV" contact="Daniel Koch @dgkoch" supported="disabled"> - <require> - <enum value="0" name="VK_EXT_EXTENSION_167_SPEC_VERSION"/> - <enum value=""VK_NV_extension_167"" name="VK_EXT_EXTENSION_167_EXTENSION_NAME"/> + <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"> + <require> + <enum value="3" name="VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION"/> + <enum value=""VK_NV_shading_rate_image"" name="VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV"/> + <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV"/> + <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV"/> + <enum offset="3" extends="VkImageLayout" name="VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV"/> + <enum offset="4" extends="VkDynamicState" name="VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV"/> + <enum bitpos="23" extends="VkAccessFlagBits" name="VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV"/> + <enum bitpos="8" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV"/> + <enum bitpos="22" extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV"/> + <enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV"/> + <enum offset="6" extends="VkDynamicState" name="VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV"/> + <type name="VkShadingRatePaletteEntryNV"/> + <type name="VkShadingRatePaletteNV"/> + <type name="VkPipelineViewportShadingRateImageStateCreateInfoNV"/> + <type name="VkPhysicalDeviceShadingRateImageFeaturesNV"/> + <type name="VkPhysicalDeviceShadingRateImagePropertiesNV"/> + <type name="VkCoarseSampleLocationNV"/> + <type name="VkCoarseSampleOrderCustomNV"/> + <type name="VkPipelineViewportCoarseSampleOrderStateCreateInfoNV"/> + <type name="VkCoarseSampleOrderTypeNV"/> + <command name="vkCmdBindShadingRateImageNV"/> + <command name="vkCmdSetViewportShadingRatePaletteNV"/> + <command name="vkCmdSetCoarseSampleOrderNV"/> + </require> + </extension> + <extension name="VK_NVX_raytracing" number="166" type="device" requires="VK_KHR_get_physical_device_properties2,VK_KHR_get_memory_requirements2" author="NVX" contact="Eric Werness @ewerness" supported="vulkan"> + <require> + <enum value="1" name="VK_NVX_RAYTRACING_SPEC_VERSION"/> + <enum value=""VK_NVX_raytracing"" name="VK_NVX_RAYTRACING_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_RAYTRACING_PIPELINE_CREATE_INFO_NVX"/> + <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NVX"/> + <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_GEOMETRY_INSTANCE_NVX"/> + <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_GEOMETRY_NVX"/> + <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NVX"/> + <enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_GEOMETRY_AABB_NVX"/> + <enum offset="6" extends="VkStructureType" name="VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NVX"/> + <enum offset="7" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DESCRIPTOR_ACCELERATION_STRUCTURE_INFO_NVX"/> + <enum offset="8" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NVX"/> + <enum offset="9" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAYTRACING_PROPERTIES_NVX"/> + <enum offset="10" extends="VkStructureType" name="VK_STRUCTURE_TYPE_HIT_SHADER_MODULE_CREATE_INFO_NVX"/> + <enum bitpos="8" extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_RAYGEN_BIT_NVX"/> + <enum bitpos="9" extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_ANY_HIT_BIT_NVX"/> + <enum bitpos="10" extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_CLOSEST_HIT_BIT_NVX"/> + <enum bitpos="11" extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_MISS_BIT_NVX"/> + <enum bitpos="12" extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_INTERSECTION_BIT_NVX"/> + <enum bitpos="13" extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_CALLABLE_BIT_NVX"/> + <enum bitpos="21" extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_RAYTRACING_BIT_NVX"/> + <enum bitpos="10" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_RAYTRACING_BIT_NVX"/> + <enum offset="0" extends="VkPipelineBindPoint" name="VK_PIPELINE_BIND_POINT_RAYTRACING_NVX"/> + <enum offset="0" extends="VkDescriptorType" name="VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NVX"/> + <enum bitpos="21" extends="VkAccessFlagBits" name="VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NVX"/> + <enum bitpos="22" extends="VkAccessFlagBits" name="VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NVX"/> + <enum offset="0" extends="VkQueryType" name="VK_QUERY_TYPE_COMPACTED_SIZE_NVX"/> + <enum bitpos="5" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NVX"/> + <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NVX"/> + <enum offset="0" extends="VkDebugReportObjectTypeEXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NVX_EXT"/> + <type name="VkRaytracingPipelineCreateInfoNVX"/> + <type name="VkGeometryTrianglesNVX"/> + <type name="VkGeometryAABBNVX"/> + <type name="VkGeometryDataNVX"/> + <type name="VkGeometryNVX"/> + <type name="VkGeometryFlagsNVX"/> + <type name="VkGeometryInstanceFlagsNVX"/> + <type name="VkGeometryFlagBitsNVX"/> + <type name="VkGeometryInstanceFlagBitsNVX"/> + <type name="VkAccelerationStructureCreateInfoNVX"/> + <type name="VkAccelerationStructureNVX"/> + <type name="VkBuildAccelerationStructureFlagBitsNVX"/> + <type name="VkBuildAccelerationStructureFlagsNVX"/> + <type name="VkCopyAccelerationStructureModeNVX"/> + <type name="VkGeometryTypeNVX"/> + <type name="VkBindAccelerationStructureMemoryInfoNVX"/> + <type name="VkDescriptorAccelerationStructureInfoNVX"/> + <type name="VkAccelerationStructureMemoryRequirementsInfoNVX"/> + <type name="VkPhysicalDeviceRaytracingPropertiesNVX"/> + <type name="VkMemoryRequirements2KHR"/> + <command name="vkCreateAccelerationStructureNVX"/> + <command name="vkDestroyAccelerationStructureNVX"/> + <command name="vkGetAccelerationStructureMemoryRequirementsNVX"/> + <command name="vkGetAccelerationStructureScratchMemoryRequirementsNVX"/> + <command name="vkBindAccelerationStructureMemoryNVX"/> + <command name="vkCmdBuildAccelerationStructureNVX"/> + <command name="vkCmdCopyAccelerationStructureNVX"/> + <command name="vkCmdTraceRaysNVX"/> + <command name="vkCreateRaytracingPipelinesNVX"/> + <command name="vkGetRaytracingShaderHandlesNVX"/> + <command name="vkGetAccelerationStructureHandleNVX"/> + <command name="vkCmdWriteAccelerationStructurePropertiesNVX"/> + <command name="vkCompileDeferredNVX"/> + </require> + </extension> + <extension name="VK_NV_representative_fragment_test" number="167" type="device" author="NV" contact="Kedarnath Thangudu @kthangudu" supported="vulkan"> + <require> + <enum value="1" name="VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION"/> + <enum value=""VK_NV_representative_fragment_test"" name="VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV"/> + <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV"/> + <type name="VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV"/> + <type name="VkPipelineRepresentativeFragmentTestStateCreateInfoNV"/> </require> </extension> <extension name="VK_NV_extension_168" number="168" author="NV" contact="Daniel Koch @dgkoch" supported="disabled"> @@ -8543,7 +9409,7 @@ server. <enum value=""VK_NV_extension_168"" name="VK_EXT_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"> + <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"> <require> <enum value="1" name="VK_KHR_MAINTENANCE3_SPEC_VERSION"/> <enum value=""VK_KHR_maintenance3"" name="VK_KHR_MAINTENANCE3_EXTENSION_NAME"/> @@ -8608,10 +9474,12 @@ server. <enum value=""VK_KHR_extension_177"" name="VK_KHR_EXTENSION_177_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_EXT_extension_178" number="178" author="EXT" contact="Alexander Galazin @alegal-arm" supported="disabled"> + <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"> <require> - <enum value="0" name="VK_KHR_EXTENSION_178_SPEC_VERSION"/> - <enum value=""VK_KHR_extension_178"" name="VK_KHR_EXTENSION_178_EXTENSION_NAME"/> + <enum value="1" name="VK_KHR_8BIT_STORAGE_SPEC_VERSION"/> + <enum value=""VK_KHR_8bit_storage"" name="VK_KHR_8BIT_STORAGE_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR"/> + <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"> @@ -8638,10 +9506,12 @@ server. <command name="vkCmdWriteBufferMarkerAMD"/> </require> </extension> - <extension name="VK_AMD_extension_181" number="181" author="AMD" contact="Daniel Rakos @drakos-amd" supported="disabled"> + <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"> <require> - <enum value="0" name="VK_KHR_EXTENSION_181_SPEC_VERSION"/> - <enum value=""VK_AMD_extension_181"" name="VK_KHR_EXTENSION_181_EXTENSION_NAME"/> + <enum value="1" name="VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION"/> + <enum value=""VK_KHR_shader_atomic_int64"" name="VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR"/> + <type name="VkPhysicalDeviceShaderAtomicInt64FeaturesKHR"/> </require> </extension> <extension name="VK_AMD_extension_182" number="182" author="AMD" contact="Daniel Rakos @drakos-amd" supported="disabled"> @@ -8702,13 +9572,15 @@ server. </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"> <require> - <enum value="1" name="VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION"/> + <enum value="3" name="VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION"/> <enum value=""VK_EXT_vertex_attribute_divisor"" 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"/> <type name="VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT"/> <type name="VkVertexInputBindingDivisorDescriptionEXT"/> <type name="VkPipelineVertexInputDivisorStateCreateInfoEXT"/> + <type name="VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT"/> </require> </extension> <extension name="VK_GOOGLE_extension_192" number="192" author="GOOGLE" contact="Jean-Francois Roy @jfroy" supported="disabled"> @@ -8741,10 +9613,16 @@ server. <enum value=""VK_GOOGLE_extension_196"" name="VK_GOOGLE_EXTENSION_196_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_EXT_extension_197" number="197" author="Baldur Karlsson" contact="Baldur Karlsson @baldurk" supported="disabled"> + <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"> <require> - <enum value="0" name="VK_EXT_EXTENSION_197_SPEC_VERSION"/> - <enum value=""VK_EXT_extension_197"" name="VK_EXT_EXTENSION_197_EXTENSION_NAME"/> + <enum value="1" name="VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION"/> + <enum value=""VK_KHR_driver_properties"" name="VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR"/> + <enum name="VK_MAX_DRIVER_NAME_SIZE_KHR"/> + <enum name="VK_MAX_DRIVER_INFO_SIZE_KHR"/> + <type name="VkDriverIdKHR"/> + <type name="VkConformanceVersionKHR"/> + <type name="VkPhysicalDeviceDriverPropertiesKHR"/> </require> </extension> <extension name="VK_ARM_extension_198" number="198" author="Alexander Galazin" contact="Alexander Galazin @alegal-arm" supported="disabled"> @@ -8772,40 +9650,70 @@ server. <enum value=""VK_KHR_extension_201"" name="VK_KHR_EXTENSION_201_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_NV_extension_202" number="202" author="NV" contact="Pat Brown @nvpbrown" supported="disabled"> + <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"> <require> - <enum value="0" name="VK_NV_EXTENSION_202_SPEC_VERSION"/> - <enum value=""VK_NV_extension_202"" name="VK_NV_EXTENSION_202_EXTENSION_NAME"/> + <enum value="1" name="VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION"/> + <enum value=""VK_NV_compute_shader_derivatives"" name="VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV"/> + <type name="VkPhysicalDeviceComputeShaderDerivativesFeaturesNV"/> </require> </extension> - <extension name="VK_NV_extension_203" number="203" author="NV" contact="Pat Brown @nvpbrown" supported="disabled"> + <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"> <require> - <enum value="0" name="VK_NV_EXTENSION_203_SPEC_VERSION"/> - <enum value=""VK_NV_extension_203"" name="VK_NV_EXTENSION_203_EXTENSION_NAME"/> + <enum value="1" name="VK_NV_MESH_SHADER_SPEC_VERSION"/> + <enum value=""VK_NV_mesh_shader"" name="VK_NV_MESH_SHADER_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV"/> + <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV"/> + <enum bitpos="6" extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_TASK_BIT_NV"/> + <enum bitpos="7" extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_MESH_BIT_NV"/> + <enum bitpos="19" extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV"/> + <enum bitpos="20" extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV"/> + <command name="vkCmdDrawMeshTasksNV"/> + <command name="vkCmdDrawMeshTasksIndirectNV"/> + <command name="vkCmdDrawMeshTasksIndirectCountNV"/> + <type name="VkPhysicalDeviceMeshShaderFeaturesNV"/> + <type name="VkPhysicalDeviceMeshShaderPropertiesNV"/> + <type name="VkDrawMeshTasksIndirectCommandNV"/> </require> </extension> - <extension name="VK_NV_extension_204" number="204" author="NV" contact="Pat Brown @nvpbrown" supported="disabled"> + <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"> <require> - <enum value="0" name="VK_NV_EXTENSION_204_SPEC_VERSION"/> - <enum value=""VK_NV_extension_204"" name="VK_NV_EXTENSION_204_EXTENSION_NAME"/> + <enum value="1" name="VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION"/> + <enum value=""VK_NV_fragment_shader_barycentric"" name="VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV"/> + <type name="VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV"/> </require> </extension> - <extension name="VK_NV_extension_205" number="205" author="NV" contact="Pat Brown @nvpbrown" supported="disabled"> + <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"> <require> - <enum value="0" name="VK_NV_EXTENSION_205_SPEC_VERSION"/> - <enum value=""VK_NV_extension_205"" name="VK_NV_EXTENSION_205_EXTENSION_NAME"/> + <enum value="1" name="VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION"/> + <enum value=""VK_NV_shader_image_footprint"" name="VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV"/> + <type name="VkPhysicalDeviceShaderImageFootprintFeaturesNV"/> </require> </extension> - <extension name="VK_NV_extension_206" number="206" author="NV" contact="Pat Brown @nvpbrown" supported="disabled"> + <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"> <require> - <enum value="0" name="VK_NV_EXTENSION_206_SPEC_VERSION"/> - <enum value=""VK_NV_extension_206"" name="VK_NV_EXTENSION_206_EXTENSION_NAME"/> + <enum value="1" name="VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION"/> + <enum value=""VK_NV_scissor_exclusive"" 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"/> + <type name="VkPipelineViewportExclusiveScissorStateCreateInfoNV"/> + <type name="VkPhysicalDeviceExclusiveScissorFeaturesNV"/> + <command name="vkCmdSetExclusiveScissorNV"/> </require> </extension> - <extension name="VK_NV_extension_207" number="207" author="NV" contact="Nuno Subtil @nsubtil" supported="disabled"> + <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"> <require> - <enum value="0" name="VK_NV_EXTENSION_207_SPEC_VERSION"/> - <enum value=""VK_NV_extension_207"" name="VK_NV_EXTENSION_207_EXTENSION_NAME"/> + <enum value="2" name="VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION"/> + <enum value=""VK_NV_device_diagnostic_checkpoints"" name="VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV"/> + <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV"/> + <type name="VkQueueFamilyCheckpointPropertiesNV"/> + <type name="VkCheckpointDataNV"/> + <command name="vkCmdSetCheckpointNV"/> + <command name="vkGetQueueCheckpointDataNV"/> </require> </extension> <extension name="VK_KHR_extension_208" number="208" type="device" author="KHR" contact="Daniel Rakos @drakos-arm" supported="disabled"> @@ -8832,10 +9740,172 @@ server. <enum value=""VK_KHR_extension_211"" name="VK_KHR_EXTENSION_211_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_KHR_extension_212" number="212" type="device" author="KHR" contact="Jeff Bolz @jeffbolznv" supported="disabled"> + <extension name="VK_KHR_vulkan_memory_model" number="212" type="device" author="KHR" contact="Jeff Bolz @jeffbolznv" provisional="true" supported="vulkan"> + <require> + <enum value="2" name="VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION"/> + <enum value=""VK_KHR_vulkan_memory_model"" name="VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR"/> + <type name="VkPhysicalDeviceVulkanMemoryModelFeaturesKHR"/> + </require> + </extension> + <extension name="VK_AMD_extension_213" number="213" author="AMD" contact="Neil Henning @sheredom" supported="disabled"> + <require> + <enum value="0" name="VK_KHR_EXTENSION_213_SPEC_VERSION"/> + <enum value=""VK_KHR_extension_213"" name="VK_KHR_EXTENSION_213_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_214" number="214" author="AMD" contact="Neil Henning @sheredom" supported="disabled"> + <require> + <enum value="0" name="VK_KHR_EXTENSION_214_SPEC_VERSION"/> + <enum value=""VK_KHR_extension_214"" name="VK_KHR_EXTENSION_214_EXTENSION_NAME"/> + </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"> + <require> + <enum value="1" name="VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION"/> + <enum value=""VK_FUCHSIA_imagepipe_surface"" name="VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA"/> + <type name="VkImagePipeSurfaceCreateFlagsFUCHSIA"/> + <type name="VkImagePipeSurfaceCreateInfoFUCHSIA"/> + <command name="vkCreateImagePipeSurfaceFUCHSIA"/> + </require> + </extension> + <extension name="VK_GOOGLE_extension_216" number="216" author="GOOGLE" contact="Jesse Hall @critsec" supported="disabled"> + <require> + <enum value="0" name="VK_KHR_EXTENSION_216_SPEC_VERSION"/> + <enum value=""VK_KHR_extension_216"" name="VK_KHR_EXTENSION_216_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_GOOGLE_extension_217" number="217" author="GOOGLE" contact="Jesse Hall @critsec" supported="disabled"> + <require> + <enum value="0" name="VK_KHR_EXTENSION_217_SPEC_VERSION"/> + <enum value=""VK_KHR_extension_217"" name="VK_KHR_EXTENSION_217_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_EXT_macos_ios_window" number="218" author="EXT" contact="Dzmitry Malyshau @kvark" supported="disabled"> + <require> + <enum value="0" name="VK_EXT_MACOS_IOS_WINDOW_SPEC_VERSION"/> + <enum value=""VK_EXT_macos_ios_window"" name="VK_EXT_MACOS_IOS_WINDOW_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_EXT_extension_219" number="219" type="device" author="EXT" contact="Matthew Netsch @mnetsch" supported="disabled"> + <require> + <enum value="0" name="VK_EXT_EXTENSION_219_SPEC_VERSION"/> + <enum value=""VK_EXT_extension_219"" name="VK_EXT_EXTENSION_219_EXTENSION_NAME"/> + <enum bitpos="14" extends="VkImageCreateFlagBits" name="VK_IMAGE_CREATE_RESERVED_14_BIT_EXT"/> + <enum bitpos="24" extends="VkAccessFlagBits" name="VK_ACCESS_RESERVED_24_BIT_EXT"/> + <enum bitpos="24" extends="VkFormatFeatureFlagBits" name="VK_FORMAT_FEATURE_RESERVED_24_BIT_EXT"/> + <enum bitpos="9" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_RESERVED_9_BIT_EXT"/> + <enum bitpos="23" extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_RESERVED_23_BIT_EXT"/> + </require> + </extension> + <extension name="VK_EXT_extension_220" number="220" author="EXT" contact="Dzmitry Malyshau @kvark" supported="disabled"> + <require> + <enum value="0" name="VK_EXT_EXTENSION_220_SPEC_VERSION"/> + <enum value=""VK_EXT_extension_220"" name="VK_EXT_EXTENSION_220_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_KHR_extension_221" number="221" author="KHR" contact="Tobias Hector @tobski" supported="disabled"> + <require> + <enum value="0" name="VK_KHR_EXTENSION_221_SPEC_VERSION"/> + <enum value=""VK_KHR_extension_221"" name="VK_KHR_EXTENSION_221_EXTENSION_NAME"/> + <enum bitpos="0" extends="VkRenderPassCreateFlagBits" name="VK_RENDER_PASS_CREATE_RESERVED_0_BIT_KHR"/> + </require> + </extension> + <extension name="VK_EXT_extension_222" number="222" author="EXT" contact="Tobias Hector @tobski" supported="disabled"> + <require> + <enum value="0" name="VK_EXT_EXTENSION_222_SPEC_VERSION"/> + <enum value=""VK_EXT_extension_222"" name="VK_EXT_EXTENSION_222_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_EXT_extension_223" number="223" author="EXT" contact="Tobias Hector @tobski" supported="disabled"> + <require> + <enum value="0" name="VK_EXT_EXTENSION_223_SPEC_VERSION"/> + <enum value=""VK_EXT_extension_223"" name="VK_EXT_EXTENSION_223_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_224" number="224" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled"> + <require> + <enum value="0" name="VK_AMD_EXTENSION_224_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_224"" name="VK_AMD_EXTENSION_224_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_225" number="225" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled"> + <require> + <enum value="0" name="VK_AMD_EXTENSION_225_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_225"" name="VK_AMD_EXTENSION_225_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_226" number="226" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled"> + <require> + <enum value="0" name="VK_AMD_EXTENSION_226_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_226"" name="VK_AMD_EXTENSION_226_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_227" number="227" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled"> + <require> + <enum value="0" name="VK_AMD_EXTENSION_227_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_227"" name="VK_AMD_EXTENSION_227_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_228" number="228" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled"> + <require> + <enum value="0" name="VK_AMD_EXTENSION_228_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_228"" name="VK_AMD_EXTENSION_228_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_229" number="229" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled"> + <require> + <enum value="0" name="VK_AMD_EXTENSION_229_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_229"" name="VK_AMD_EXTENSION_229_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_230" number="230" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled"> + <require> + <enum value="0" name="VK_AMD_EXTENSION_230_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_230"" name="VK_AMD_EXTENSION_230_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_231" number="231" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled"> + <require> + <enum value="0" name="VK_AMD_EXTENSION_231_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_231"" name="VK_AMD_EXTENSION_231_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_232" number="232" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled"> + <require> + <enum value="0" name="VK_AMD_EXTENSION_232_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_232"" name="VK_AMD_EXTENSION_232_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_233" number="233" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled"> + <require> + <enum value="0" name="VK_AMD_EXTENSION_233_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_233"" name="VK_AMD_EXTENSION_233_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_234" number="234" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled"> + <require> + <enum value="0" name="VK_AMD_EXTENSION_234_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_234"" name="VK_AMD_EXTENSION_234_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_235" number="235" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled"> + <require> + <enum value="0" name="VK_AMD_EXTENSION_235_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_235"" name="VK_AMD_EXTENSION_235_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_AMD_extension_236" number="236" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled"> + <require> + <enum value="0" name="VK_AMD_EXTENSION_236_SPEC_VERSION"/> + <enum value=""VK_AMD_extension_236"" name="VK_AMD_EXTENSION_236_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_KHR_extension_237" number="237" author="KHR" contact="Jesse Hall @critsec" supported="disabled"> <require> - <enum value="0" name="VK_KHR_EXTENSION_212_SPEC_VERSION"/> - <enum value=""VK_KHR_extension_212"" name="VK_KHR_EXTENSION_212_EXTENSION_NAME"/> + <enum value="0" name="VK_KHR_EXTENSION_237_SPEC_VERSION"/> + <enum value=""VK_KHR_extension_237"" name="VK_KHR_EXTENSION_237_EXTENSION_NAME"/> </require> </extension> </extensions> |