• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2015-2023 The Khronos Group Inc.
2 //
3 // SPDX-License-Identifier: Apache-2.0 OR MIT
4 //
5 
6 // This header is generated from the Khronos Vulkan XML API Registry.
7 
8 #ifndef VULKAN_HPP
9 #define VULKAN_HPP
10 
11 #if defined( _MSVC_LANG )
12 #  define VULKAN_HPP_CPLUSPLUS _MSVC_LANG
13 #else
14 #  define VULKAN_HPP_CPLUSPLUS __cplusplus
15 #endif
16 
17 #if 201703L < VULKAN_HPP_CPLUSPLUS
18 #  define VULKAN_HPP_CPP_VERSION 20
19 #elif 201402L < VULKAN_HPP_CPLUSPLUS
20 #  define VULKAN_HPP_CPP_VERSION 17
21 #elif 201103L < VULKAN_HPP_CPLUSPLUS
22 #  define VULKAN_HPP_CPP_VERSION 14
23 #elif 199711L < VULKAN_HPP_CPLUSPLUS
24 #  define VULKAN_HPP_CPP_VERSION 11
25 #else
26 #  error "vulkan.hpp needs at least c++ standard version 11"
27 #endif
28 
29 #include <algorithm>
30 #include <array>   // ArrayWrapperND
31 #include <string>  // std::string
32 #include <vulkan/vulkan.h>
33 #if 17 <= VULKAN_HPP_CPP_VERSION
34 #  include <string_view>  // std::string_view
35 #endif
36 
37 #if defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
38 #  if !defined( VULKAN_HPP_NO_SMART_HANDLE )
39 #    define VULKAN_HPP_NO_SMART_HANDLE
40 #  endif
41 #else
42 #  include <tuple>   // std::tie
43 #  include <vector>  // std::vector
44 #endif
45 
46 #if !defined( VULKAN_HPP_NO_EXCEPTIONS )
47 #  include <system_error>  // std::is_error_code_enum
48 #endif
49 
50 #if defined( VULKAN_HPP_NO_CONSTRUCTORS )
51 #  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
52 #    define VULKAN_HPP_NO_STRUCT_CONSTRUCTORS
53 #  endif
54 #  if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
55 #    define VULKAN_HPP_NO_UNION_CONSTRUCTORS
56 #  endif
57 #endif
58 
59 #if defined( VULKAN_HPP_NO_SETTERS )
60 #  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
61 #    define VULKAN_HPP_NO_STRUCT_SETTERS
62 #  endif
63 #  if !defined( VULKAN_HPP_NO_UNION_SETTERS )
64 #    define VULKAN_HPP_NO_UNION_SETTERS
65 #  endif
66 #endif
67 
68 #if !defined( VULKAN_HPP_ASSERT )
69 #  include <cassert>
70 #  define VULKAN_HPP_ASSERT assert
71 #endif
72 
73 #if !defined( VULKAN_HPP_ASSERT_ON_RESULT )
74 #  define VULKAN_HPP_ASSERT_ON_RESULT VULKAN_HPP_ASSERT
75 #endif
76 
77 #if !defined( VULKAN_HPP_STATIC_ASSERT )
78 #  define VULKAN_HPP_STATIC_ASSERT static_assert
79 #endif
80 
81 #if !defined( VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL )
82 #  define VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 1
83 #endif
84 
85 #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL == 1
86 #  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
87 #    include <dlfcn.h>
88 #  elif defined( _WIN32 )
89 typedef struct HINSTANCE__ * HINSTANCE;
90 #    if defined( _WIN64 )
91 typedef int64_t( __stdcall * FARPROC )();
92 #    else
93 typedef int( __stdcall * FARPROC )();
94 #    endif
95 extern "C" __declspec( dllimport ) HINSTANCE __stdcall LoadLibraryA( char const * lpLibFileName );
96 extern "C" __declspec( dllimport ) int __stdcall FreeLibrary( HINSTANCE hLibModule );
97 extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE hModule, const char * lpProcName );
98 #  endif
99 #endif
100 
101 #if !defined( __has_include )
102 #  define __has_include( x ) false
103 #endif
104 
105 #if ( 201907 <= __cpp_lib_three_way_comparison ) && __has_include( <compare> ) && !defined( VULKAN_HPP_NO_SPACESHIP_OPERATOR )
106 #  define VULKAN_HPP_HAS_SPACESHIP_OPERATOR
107 #endif
108 #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
109 #  include <compare>
110 #endif
111 
112 #if ( 201803 <= __cpp_lib_span )
113 #  define VULKAN_HPP_SUPPORT_SPAN
114 #  include <span>
115 #endif
116 
117 static_assert( VK_HEADER_VERSION == 259, "Wrong VK_HEADER_VERSION!" );
118 
119 // 32-bit vulkan is not typesafe for non-dispatchable handles, so don't allow copy constructors on this platform by default.
120 // To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION
121 #if ( VK_USE_64_BIT_PTR_DEFINES == 1 )
122 #  if !defined( VULKAN_HPP_TYPESAFE_CONVERSION )
123 #    define VULKAN_HPP_TYPESAFE_CONVERSION
124 #  endif
125 #endif
126 
127 // <tuple> includes <sys/sysmacros.h> through some other header
128 // this results in major(x) being resolved to gnu_dev_major(x)
129 // which is an expression in a constructor initializer list.
130 #if defined( major )
131 #  undef major
132 #endif
133 #if defined( minor )
134 #  undef minor
135 #endif
136 
137 // Windows defines MemoryBarrier which is deprecated and collides
138 // with the VULKAN_HPP_NAMESPACE::MemoryBarrier struct.
139 #if defined( MemoryBarrier )
140 #  undef MemoryBarrier
141 #endif
142 
143 // XLib.h defines True/False, which collides with our vk::True/vk::False
144 // ->  undef them and provide some namepace-secure constexpr
145 #if defined( True )
146 #  undef True
147 constexpr int True = 1;
148 #endif
149 #if defined( False )
150 #  undef False
151 constexpr int False = 0;
152 #endif
153 
154 #if defined( __GNUC__ )
155 #  define GCC_VERSION ( __GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ )
156 #endif
157 
158 #if !defined( VULKAN_HPP_HAS_UNRESTRICTED_UNIONS )
159 #  if defined( __clang__ )
160 #    if __has_feature( cxx_unrestricted_unions )
161 #      define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
162 #    endif
163 #  elif defined( __GNUC__ )
164 #    if 40600 <= GCC_VERSION
165 #      define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
166 #    endif
167 #  elif defined( _MSC_VER )
168 #    if 1900 <= _MSC_VER
169 #      define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
170 #    endif
171 #  endif
172 #endif
173 
174 #if !defined( VULKAN_HPP_INLINE )
175 #  if defined( __clang__ )
176 #    if __has_attribute( always_inline )
177 #      define VULKAN_HPP_INLINE __attribute__( ( always_inline ) ) __inline__
178 #    else
179 #      define VULKAN_HPP_INLINE inline
180 #    endif
181 #  elif defined( __GNUC__ )
182 #    define VULKAN_HPP_INLINE __attribute__( ( always_inline ) ) __inline__
183 #  elif defined( _MSC_VER )
184 #    define VULKAN_HPP_INLINE inline
185 #  else
186 #    define VULKAN_HPP_INLINE inline
187 #  endif
188 #endif
189 
190 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
191 #  define VULKAN_HPP_TYPESAFE_EXPLICIT
192 #else
193 #  define VULKAN_HPP_TYPESAFE_EXPLICIT explicit
194 #endif
195 
196 #if defined( __cpp_constexpr )
197 #  define VULKAN_HPP_CONSTEXPR constexpr
198 #  if 201304 <= __cpp_constexpr
199 #    define VULKAN_HPP_CONSTEXPR_14 constexpr
200 #  else
201 #    define VULKAN_HPP_CONSTEXPR_14
202 #  endif
203 #  if ( 201907 <= __cpp_constexpr ) && ( !defined( __GNUC__ ) || ( 110400 < GCC_VERSION ) )
204 #    define VULKAN_HPP_CONSTEXPR_20 constexpr
205 #  else
206 #    define VULKAN_HPP_CONSTEXPR_20
207 #  endif
208 #  define VULKAN_HPP_CONST_OR_CONSTEXPR constexpr
209 #else
210 #  define VULKAN_HPP_CONSTEXPR
211 #  define VULKAN_HPP_CONSTEXPR_14
212 #  define VULKAN_HPP_CONST_OR_CONSTEXPR const
213 #endif
214 
215 #if !defined( VULKAN_HPP_CONSTEXPR_INLINE )
216 #  if 201606L <= __cpp_inline_variables
217 #    define VULKAN_HPP_CONSTEXPR_INLINE VULKAN_HPP_CONSTEXPR inline
218 #  else
219 #    define VULKAN_HPP_CONSTEXPR_INLINE VULKAN_HPP_CONSTEXPR
220 #  endif
221 #endif
222 
223 #if !defined( VULKAN_HPP_NOEXCEPT )
224 #  if defined( _MSC_VER ) && ( _MSC_VER <= 1800 )
225 #    define VULKAN_HPP_NOEXCEPT
226 #  else
227 #    define VULKAN_HPP_NOEXCEPT     noexcept
228 #    define VULKAN_HPP_HAS_NOEXCEPT 1
229 #    if defined( VULKAN_HPP_NO_EXCEPTIONS )
230 #      define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS noexcept
231 #    else
232 #      define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
233 #    endif
234 #  endif
235 #endif
236 
237 #if 14 <= VULKAN_HPP_CPP_VERSION
238 #  define VULKAN_HPP_DEPRECATED( msg ) [[deprecated( msg )]]
239 #else
240 #  define VULKAN_HPP_DEPRECATED( msg )
241 #endif
242 
243 #if ( 17 <= VULKAN_HPP_CPP_VERSION ) && !defined( VULKAN_HPP_NO_NODISCARD_WARNINGS )
244 #  define VULKAN_HPP_NODISCARD [[nodiscard]]
245 #  if defined( VULKAN_HPP_NO_EXCEPTIONS )
246 #    define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS [[nodiscard]]
247 #  else
248 #    define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS
249 #  endif
250 #else
251 #  define VULKAN_HPP_NODISCARD
252 #  define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS
253 #endif
254 
255 #if !defined( VULKAN_HPP_NAMESPACE )
256 #  define VULKAN_HPP_NAMESPACE vk
257 #endif
258 
259 #define VULKAN_HPP_STRINGIFY2( text ) #text
260 #define VULKAN_HPP_STRINGIFY( text )  VULKAN_HPP_STRINGIFY2( text )
261 #define VULKAN_HPP_NAMESPACE_STRING   VULKAN_HPP_STRINGIFY( VULKAN_HPP_NAMESPACE )
262 
263 namespace VULKAN_HPP_NAMESPACE
264 {
265   template <typename T, size_t N>
266   class ArrayWrapper1D : public std::array<T, N>
267   {
268   public:
ArrayWrapper1D()269     VULKAN_HPP_CONSTEXPR ArrayWrapper1D() VULKAN_HPP_NOEXCEPT : std::array<T, N>() {}
270 
ArrayWrapper1D(std::array<T,N> const & data)271     VULKAN_HPP_CONSTEXPR ArrayWrapper1D( std::array<T, N> const & data ) VULKAN_HPP_NOEXCEPT : std::array<T, N>( data ) {}
272 
273 #if ( VK_USE_64_BIT_PTR_DEFINES == 0 )
274     // on 32 bit compiles, needs overloads on index type int to resolve ambiguities
operator [](int index) const275     VULKAN_HPP_CONSTEXPR T const & operator[]( int index ) const VULKAN_HPP_NOEXCEPT
276     {
277       return std::array<T, N>::operator[]( index );
278     }
279 
operator [](int index)280     T & operator[]( int index ) VULKAN_HPP_NOEXCEPT
281     {
282       return std::array<T, N>::operator[]( index );
283     }
284 #endif
285 
operator T const*() const286     operator T const *() const VULKAN_HPP_NOEXCEPT
287     {
288       return this->data();
289     }
290 
operator T*()291     operator T *() VULKAN_HPP_NOEXCEPT
292     {
293       return this->data();
294     }
295 
296     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator std::string() const297     operator std::string() const
298     {
299       return std::string( this->data() );
300     }
301 
302 #if 17 <= VULKAN_HPP_CPP_VERSION
303     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator std::string_view() const304     operator std::string_view() const
305     {
306       return std::string_view( this->data() );
307     }
308 #endif
309 
310 #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
311     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator <=>(ArrayWrapper1D<char,N> const & rhs) const312     std::strong_ordering operator<=>( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
313     {
314       return *static_cast<std::array<char, N> const *>( this ) <=> *static_cast<std::array<char, N> const *>( &rhs );
315     }
316 #else
317     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator <(ArrayWrapper1D<char,N> const & rhs) const318     bool operator<( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
319     {
320       return *static_cast<std::array<char, N> const *>( this ) < *static_cast<std::array<char, N> const *>( &rhs );
321     }
322 
323     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator <=(ArrayWrapper1D<char,N> const & rhs) const324     bool operator<=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
325     {
326       return *static_cast<std::array<char, N> const *>( this ) <= *static_cast<std::array<char, N> const *>( &rhs );
327     }
328 
329     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator >(ArrayWrapper1D<char,N> const & rhs) const330     bool operator>( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
331     {
332       return *static_cast<std::array<char, N> const *>( this ) > *static_cast<std::array<char, N> const *>( &rhs );
333     }
334 
335     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator >=(ArrayWrapper1D<char,N> const & rhs) const336     bool operator>=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
337     {
338       return *static_cast<std::array<char, N> const *>( this ) >= *static_cast<std::array<char, N> const *>( &rhs );
339     }
340 #endif
341 
342     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator ==(ArrayWrapper1D<char,N> const & rhs) const343     bool operator==( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
344     {
345       return *static_cast<std::array<char, N> const *>( this ) == *static_cast<std::array<char, N> const *>( &rhs );
346     }
347 
348     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator !=(ArrayWrapper1D<char,N> const & rhs) const349     bool operator!=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
350     {
351       return *static_cast<std::array<char, N> const *>( this ) != *static_cast<std::array<char, N> const *>( &rhs );
352     }
353   };
354 
355   // specialization of relational operators between std::string and arrays of chars
356   template <size_t N>
operator <(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)357   bool operator<( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
358   {
359     return lhs < rhs.data();
360   }
361 
362   template <size_t N>
operator <=(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)363   bool operator<=( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
364   {
365     return lhs <= rhs.data();
366   }
367 
368   template <size_t N>
operator >(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)369   bool operator>( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
370   {
371     return lhs > rhs.data();
372   }
373 
374   template <size_t N>
operator >=(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)375   bool operator>=( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
376   {
377     return lhs >= rhs.data();
378   }
379 
380   template <size_t N>
operator ==(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)381   bool operator==( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
382   {
383     return lhs == rhs.data();
384   }
385 
386   template <size_t N>
operator !=(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)387   bool operator!=( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
388   {
389     return lhs != rhs.data();
390   }
391 
392   template <typename T, size_t N, size_t M>
393   class ArrayWrapper2D : public std::array<ArrayWrapper1D<T, M>, N>
394   {
395   public:
ArrayWrapper2D()396     VULKAN_HPP_CONSTEXPR ArrayWrapper2D() VULKAN_HPP_NOEXCEPT : std::array<ArrayWrapper1D<T, M>, N>() {}
397 
ArrayWrapper2D(std::array<std::array<T,M>,N> const & data)398     VULKAN_HPP_CONSTEXPR ArrayWrapper2D( std::array<std::array<T, M>, N> const & data ) VULKAN_HPP_NOEXCEPT
399       : std::array<ArrayWrapper1D<T, M>, N>( *reinterpret_cast<std::array<ArrayWrapper1D<T, M>, N> const *>( &data ) )
400     {
401     }
402   };
403 
404   template <typename FlagBitsType>
405   struct FlagTraits
406   {
407     static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = false;
408   };
409 
410   template <typename BitType>
411   class Flags
412   {
413   public:
414     using MaskType = typename std::underlying_type<BitType>::type;
415 
416     // constructors
Flags()417     VULKAN_HPP_CONSTEXPR Flags() VULKAN_HPP_NOEXCEPT : m_mask( 0 ) {}
418 
Flags(BitType bit)419     VULKAN_HPP_CONSTEXPR Flags( BitType bit ) VULKAN_HPP_NOEXCEPT : m_mask( static_cast<MaskType>( bit ) ) {}
420 
421     VULKAN_HPP_CONSTEXPR Flags( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT = default;
422 
Flags(MaskType flags)423     VULKAN_HPP_CONSTEXPR explicit Flags( MaskType flags ) VULKAN_HPP_NOEXCEPT : m_mask( flags ) {}
424 
425     // relational operators
426 #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
427     auto operator<=>( Flags<BitType> const & ) const = default;
428 #else
operator <(Flags<BitType> const & rhs) const429     VULKAN_HPP_CONSTEXPR bool operator<( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
430     {
431       return m_mask < rhs.m_mask;
432     }
433 
operator <=(Flags<BitType> const & rhs) const434     VULKAN_HPP_CONSTEXPR bool operator<=( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
435     {
436       return m_mask <= rhs.m_mask;
437     }
438 
operator >(Flags<BitType> const & rhs) const439     VULKAN_HPP_CONSTEXPR bool operator>( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
440     {
441       return m_mask > rhs.m_mask;
442     }
443 
operator >=(Flags<BitType> const & rhs) const444     VULKAN_HPP_CONSTEXPR bool operator>=( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
445     {
446       return m_mask >= rhs.m_mask;
447     }
448 
operator ==(Flags<BitType> const & rhs) const449     VULKAN_HPP_CONSTEXPR bool operator==( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
450     {
451       return m_mask == rhs.m_mask;
452     }
453 
operator !=(Flags<BitType> const & rhs) const454     VULKAN_HPP_CONSTEXPR bool operator!=( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
455     {
456       return m_mask != rhs.m_mask;
457     }
458 #endif
459 
460     // logical operator
operator !() const461     VULKAN_HPP_CONSTEXPR bool operator!() const VULKAN_HPP_NOEXCEPT
462     {
463       return !m_mask;
464     }
465 
466     // bitwise operators
operator &(Flags<BitType> const & rhs) const467     VULKAN_HPP_CONSTEXPR Flags<BitType> operator&( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
468     {
469       return Flags<BitType>( m_mask & rhs.m_mask );
470     }
471 
operator |(Flags<BitType> const & rhs) const472     VULKAN_HPP_CONSTEXPR Flags<BitType> operator|( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
473     {
474       return Flags<BitType>( m_mask | rhs.m_mask );
475     }
476 
operator ^(Flags<BitType> const & rhs) const477     VULKAN_HPP_CONSTEXPR Flags<BitType> operator^( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
478     {
479       return Flags<BitType>( m_mask ^ rhs.m_mask );
480     }
481 
operator ~() const482     VULKAN_HPP_CONSTEXPR Flags<BitType> operator~() const VULKAN_HPP_NOEXCEPT
483     {
484       return Flags<BitType>( m_mask ^ FlagTraits<BitType>::allFlags.m_mask );
485     }
486 
487     // assignment operators
488     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT = default;
489 
operator |=(Flags<BitType> const & rhs)490     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator|=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT
491     {
492       m_mask |= rhs.m_mask;
493       return *this;
494     }
495 
operator &=(Flags<BitType> const & rhs)496     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator&=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT
497     {
498       m_mask &= rhs.m_mask;
499       return *this;
500     }
501 
operator ^=(Flags<BitType> const & rhs)502     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator^=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT
503     {
504       m_mask ^= rhs.m_mask;
505       return *this;
506     }
507 
508     // cast operators
operator bool() const509     explicit VULKAN_HPP_CONSTEXPR operator bool() const VULKAN_HPP_NOEXCEPT
510     {
511       return !!m_mask;
512     }
513 
operator MaskType() const514     explicit VULKAN_HPP_CONSTEXPR operator MaskType() const VULKAN_HPP_NOEXCEPT
515     {
516       return m_mask;
517     }
518 
519 #if defined( VULKAN_HPP_FLAGS_MASK_TYPE_AS_PUBLIC )
520   public:
521 #else
522   private:
523 #endif
524     MaskType m_mask;
525   };
526 
527 #if !defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
528   // relational operators only needed for pre C++20
529   template <typename BitType>
operator <(BitType bit,Flags<BitType> const & flags)530   VULKAN_HPP_CONSTEXPR bool operator<( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
531   {
532     return flags.operator>( bit );
533   }
534 
535   template <typename BitType>
operator <=(BitType bit,Flags<BitType> const & flags)536   VULKAN_HPP_CONSTEXPR bool operator<=( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
537   {
538     return flags.operator>=( bit );
539   }
540 
541   template <typename BitType>
operator >(BitType bit,Flags<BitType> const & flags)542   VULKAN_HPP_CONSTEXPR bool operator>( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
543   {
544     return flags.operator<( bit );
545   }
546 
547   template <typename BitType>
operator >=(BitType bit,Flags<BitType> const & flags)548   VULKAN_HPP_CONSTEXPR bool operator>=( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
549   {
550     return flags.operator<=( bit );
551   }
552 
553   template <typename BitType>
operator ==(BitType bit,Flags<BitType> const & flags)554   VULKAN_HPP_CONSTEXPR bool operator==( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
555   {
556     return flags.operator==( bit );
557   }
558 
559   template <typename BitType>
operator !=(BitType bit,Flags<BitType> const & flags)560   VULKAN_HPP_CONSTEXPR bool operator!=( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
561   {
562     return flags.operator!=( bit );
563   }
564 #endif
565 
566   // bitwise operators
567   template <typename BitType>
operator &(BitType bit,Flags<BitType> const & flags)568   VULKAN_HPP_CONSTEXPR Flags<BitType> operator&( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
569   {
570     return flags.operator&( bit );
571   }
572 
573   template <typename BitType>
operator |(BitType bit,Flags<BitType> const & flags)574   VULKAN_HPP_CONSTEXPR Flags<BitType> operator|( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
575   {
576     return flags.operator|( bit );
577   }
578 
579   template <typename BitType>
operator ^(BitType bit,Flags<BitType> const & flags)580   VULKAN_HPP_CONSTEXPR Flags<BitType> operator^( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
581   {
582     return flags.operator^( bit );
583   }
584 
585   // bitwise operators on BitType
586   template <typename BitType, typename std::enable_if<FlagTraits<BitType>::isBitmask, bool>::type = true>
operator &(BitType lhs,BitType rhs)587   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags<BitType> operator&( BitType lhs, BitType rhs ) VULKAN_HPP_NOEXCEPT
588   {
589     return Flags<BitType>( lhs ) & rhs;
590   }
591 
592   template <typename BitType, typename std::enable_if<FlagTraits<BitType>::isBitmask, bool>::type = true>
operator |(BitType lhs,BitType rhs)593   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags<BitType> operator|( BitType lhs, BitType rhs ) VULKAN_HPP_NOEXCEPT
594   {
595     return Flags<BitType>( lhs ) | rhs;
596   }
597 
598   template <typename BitType, typename std::enable_if<FlagTraits<BitType>::isBitmask, bool>::type = true>
operator ^(BitType lhs,BitType rhs)599   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags<BitType> operator^( BitType lhs, BitType rhs ) VULKAN_HPP_NOEXCEPT
600   {
601     return Flags<BitType>( lhs ) ^ rhs;
602   }
603 
604   template <typename BitType, typename std::enable_if<FlagTraits<BitType>::isBitmask, bool>::type = true>
operator ~(BitType bit)605   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags<BitType> operator~( BitType bit ) VULKAN_HPP_NOEXCEPT
606   {
607     return ~( Flags<BitType>( bit ) );
608   }
609 
610 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
611   template <typename T>
612   class ArrayProxy
613   {
614   public:
ArrayProxy()615     VULKAN_HPP_CONSTEXPR ArrayProxy() VULKAN_HPP_NOEXCEPT
616       : m_count( 0 )
617       , m_ptr( nullptr )
618     {
619     }
620 
ArrayProxy(std::nullptr_t)621     VULKAN_HPP_CONSTEXPR ArrayProxy( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
622       : m_count( 0 )
623       , m_ptr( nullptr )
624     {
625     }
626 
ArrayProxy(T const & value)627     ArrayProxy( T const & value ) VULKAN_HPP_NOEXCEPT
628       : m_count( 1 )
629       , m_ptr( &value )
630     {
631     }
632 
ArrayProxy(uint32_t count,T const * ptr)633     ArrayProxy( uint32_t count, T const * ptr ) VULKAN_HPP_NOEXCEPT
634       : m_count( count )
635       , m_ptr( ptr )
636     {
637     }
638 
639     template <std::size_t C>
ArrayProxy(T const (& ptr)[C])640     ArrayProxy( T const ( &ptr )[C] ) VULKAN_HPP_NOEXCEPT
641       : m_count( C )
642       , m_ptr( ptr )
643     {
644     }
645 
646 #  if __GNUC__ >= 9
647 #    pragma GCC diagnostic push
648 #    pragma GCC diagnostic ignored "-Winit-list-lifetime"
649 #  endif
650 
ArrayProxy(std::initializer_list<T> const & list)651     ArrayProxy( std::initializer_list<T> const & list ) VULKAN_HPP_NOEXCEPT
652       : m_count( static_cast<uint32_t>( list.size() ) )
653       , m_ptr( list.begin() )
654     {
655     }
656 
657     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(std::initializer_list<typename std::remove_const<T>::type> const & list)658     ArrayProxy( std::initializer_list<typename std::remove_const<T>::type> const & list ) VULKAN_HPP_NOEXCEPT
659       : m_count( static_cast<uint32_t>( list.size() ) )
660       , m_ptr( list.begin() )
661     {
662     }
663 
664 #  if __GNUC__ >= 9
665 #    pragma GCC diagnostic pop
666 #  endif
667 
668     // Any type with a .data() return type implicitly convertible to T*, and a .size() return type implicitly
669     // convertible to size_t. The const version can capture temporaries, with lifetime ending at end of statement.
670     template <typename V,
671               typename std::enable_if<std::is_convertible<decltype( std::declval<V>().data() ), T *>::value &&
672                                       std::is_convertible<decltype( std::declval<V>().size() ), std::size_t>::value>::type * = nullptr>
ArrayProxy(V const & v)673     ArrayProxy( V const & v ) VULKAN_HPP_NOEXCEPT
674       : m_count( static_cast<uint32_t>( v.size() ) )
675       , m_ptr( v.data() )
676     {
677     }
678 
begin() const679     const T * begin() const VULKAN_HPP_NOEXCEPT
680     {
681       return m_ptr;
682     }
683 
end() const684     const T * end() const VULKAN_HPP_NOEXCEPT
685     {
686       return m_ptr + m_count;
687     }
688 
front() const689     const T & front() const VULKAN_HPP_NOEXCEPT
690     {
691       VULKAN_HPP_ASSERT( m_count && m_ptr );
692       return *m_ptr;
693     }
694 
back() const695     const T & back() const VULKAN_HPP_NOEXCEPT
696     {
697       VULKAN_HPP_ASSERT( m_count && m_ptr );
698       return *( m_ptr + m_count - 1 );
699     }
700 
empty() const701     bool empty() const VULKAN_HPP_NOEXCEPT
702     {
703       return ( m_count == 0 );
704     }
705 
size() const706     uint32_t size() const VULKAN_HPP_NOEXCEPT
707     {
708       return m_count;
709     }
710 
data() const711     T const * data() const VULKAN_HPP_NOEXCEPT
712     {
713       return m_ptr;
714     }
715 
716   private:
717     uint32_t  m_count;
718     T const * m_ptr;
719   };
720 
721   template <typename T>
722   class ArrayProxyNoTemporaries
723   {
724   public:
ArrayProxyNoTemporaries()725     VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries() VULKAN_HPP_NOEXCEPT
726       : m_count( 0 )
727       , m_ptr( nullptr )
728     {
729     }
730 
ArrayProxyNoTemporaries(std::nullptr_t)731     VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
732       : m_count( 0 )
733       , m_ptr( nullptr )
734     {
735     }
736 
ArrayProxyNoTemporaries(T & value)737     ArrayProxyNoTemporaries( T & value ) VULKAN_HPP_NOEXCEPT
738       : m_count( 1 )
739       , m_ptr( &value )
740     {
741     }
742 
743     template <typename V>
744     ArrayProxyNoTemporaries( V && value ) = delete;
745 
746     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(typename std::remove_const<T>::type & value)747     ArrayProxyNoTemporaries( typename std::remove_const<T>::type & value ) VULKAN_HPP_NOEXCEPT
748       : m_count( 1 )
749       , m_ptr( &value )
750     {
751     }
752 
753     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
754     ArrayProxyNoTemporaries( typename std::remove_const<T>::type && value ) = delete;
755 
ArrayProxyNoTemporaries(uint32_t count,T * ptr)756     ArrayProxyNoTemporaries( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT
757       : m_count( count )
758       , m_ptr( ptr )
759     {
760     }
761 
762     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(uint32_t count,typename std::remove_const<T>::type * ptr)763     ArrayProxyNoTemporaries( uint32_t count, typename std::remove_const<T>::type * ptr ) VULKAN_HPP_NOEXCEPT
764       : m_count( count )
765       , m_ptr( ptr )
766     {
767     }
768 
769     template <std::size_t C>
ArrayProxyNoTemporaries(T (& ptr)[C])770     ArrayProxyNoTemporaries( T ( &ptr )[C] ) VULKAN_HPP_NOEXCEPT
771       : m_count( C )
772       , m_ptr( ptr )
773     {
774     }
775 
776     template <std::size_t C>
777     ArrayProxyNoTemporaries( T( &&ptr )[C] ) = delete;
778 
779     template <std::size_t C, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(typename std::remove_const<T>::type (& ptr)[C])780     ArrayProxyNoTemporaries( typename std::remove_const<T>::type ( &ptr )[C] ) VULKAN_HPP_NOEXCEPT
781       : m_count( C )
782       , m_ptr( ptr )
783     {
784     }
785 
786     template <std::size_t C, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
787     ArrayProxyNoTemporaries( typename std::remove_const<T>::type( &&ptr )[C] ) = delete;
788 
ArrayProxyNoTemporaries(std::initializer_list<T> const & list)789     ArrayProxyNoTemporaries( std::initializer_list<T> const & list ) VULKAN_HPP_NOEXCEPT
790       : m_count( static_cast<uint32_t>( list.size() ) )
791       , m_ptr( list.begin() )
792     {
793     }
794 
795     ArrayProxyNoTemporaries( std::initializer_list<T> const && list ) = delete;
796 
797     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(std::initializer_list<typename std::remove_const<T>::type> const & list)798     ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> const & list ) VULKAN_HPP_NOEXCEPT
799       : m_count( static_cast<uint32_t>( list.size() ) )
800       , m_ptr( list.begin() )
801     {
802     }
803 
804     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
805     ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> const && list ) = delete;
806 
ArrayProxyNoTemporaries(std::initializer_list<T> & list)807     ArrayProxyNoTemporaries( std::initializer_list<T> & list ) VULKAN_HPP_NOEXCEPT
808       : m_count( static_cast<uint32_t>( list.size() ) )
809       , m_ptr( list.begin() )
810     {
811     }
812 
813     ArrayProxyNoTemporaries( std::initializer_list<T> && list ) = delete;
814 
815     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(std::initializer_list<typename std::remove_const<T>::type> & list)816     ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> & list ) VULKAN_HPP_NOEXCEPT
817       : m_count( static_cast<uint32_t>( list.size() ) )
818       , m_ptr( list.begin() )
819     {
820     }
821 
822     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
823     ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> && list ) = delete;
824 
825     // Any type with a .data() return type implicitly convertible to T*, and a .size() return type implicitly convertible to size_t.
826     template <typename V,
827               typename std::enable_if<std::is_convertible<decltype( std::declval<V>().data() ), T *>::value &&
828                                       std::is_convertible<decltype( std::declval<V>().size() ), std::size_t>::value>::type * = nullptr>
ArrayProxyNoTemporaries(V & v)829     ArrayProxyNoTemporaries( V & v ) VULKAN_HPP_NOEXCEPT
830       : m_count( static_cast<uint32_t>( v.size() ) )
831       , m_ptr( v.data() )
832     {
833     }
834 
begin() const835     const T * begin() const VULKAN_HPP_NOEXCEPT
836     {
837       return m_ptr;
838     }
839 
end() const840     const T * end() const VULKAN_HPP_NOEXCEPT
841     {
842       return m_ptr + m_count;
843     }
844 
front() const845     const T & front() const VULKAN_HPP_NOEXCEPT
846     {
847       VULKAN_HPP_ASSERT( m_count && m_ptr );
848       return *m_ptr;
849     }
850 
back() const851     const T & back() const VULKAN_HPP_NOEXCEPT
852     {
853       VULKAN_HPP_ASSERT( m_count && m_ptr );
854       return *( m_ptr + m_count - 1 );
855     }
856 
empty() const857     bool empty() const VULKAN_HPP_NOEXCEPT
858     {
859       return ( m_count == 0 );
860     }
861 
size() const862     uint32_t size() const VULKAN_HPP_NOEXCEPT
863     {
864       return m_count;
865     }
866 
data() const867     T * data() const VULKAN_HPP_NOEXCEPT
868     {
869       return m_ptr;
870     }
871 
872   private:
873     uint32_t m_count;
874     T *      m_ptr;
875   };
876 
877   template <typename T>
878   class StridedArrayProxy : protected ArrayProxy<T>
879   {
880   public:
881     using ArrayProxy<T>::ArrayProxy;
882 
StridedArrayProxy(uint32_t count,T const * ptr,uint32_t stride)883     StridedArrayProxy( uint32_t count, T const * ptr, uint32_t stride ) VULKAN_HPP_NOEXCEPT
884       : ArrayProxy<T>( count, ptr )
885       , m_stride( stride )
886     {
887       VULKAN_HPP_ASSERT( sizeof( T ) <= stride );
888     }
889 
890     using ArrayProxy<T>::begin;
891 
end() const892     const T * end() const VULKAN_HPP_NOEXCEPT
893     {
894       return reinterpret_cast<T const *>( static_cast<uint8_t const *>( begin() ) + size() * m_stride );
895     }
896 
897     using ArrayProxy<T>::front;
898 
back() const899     const T & back() const VULKAN_HPP_NOEXCEPT
900     {
901       VULKAN_HPP_ASSERT( begin() && size() );
902       return *reinterpret_cast<T const *>( static_cast<uint8_t const *>( begin() ) + ( size() - 1 ) * m_stride );
903     }
904 
905     using ArrayProxy<T>::empty;
906     using ArrayProxy<T>::size;
907     using ArrayProxy<T>::data;
908 
stride() const909     uint32_t stride() const
910     {
911       return m_stride;
912     }
913 
914   private:
915     uint32_t m_stride = sizeof( T );
916   };
917 
918   template <typename RefType>
919   class Optional
920   {
921   public:
Optional(RefType & reference)922     Optional( RefType & reference ) VULKAN_HPP_NOEXCEPT
923     {
924       m_ptr = &reference;
925     }
Optional(RefType * ptr)926     Optional( RefType * ptr ) VULKAN_HPP_NOEXCEPT
927     {
928       m_ptr = ptr;
929     }
Optional(std::nullptr_t)930     Optional( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
931     {
932       m_ptr = nullptr;
933     }
934 
operator RefType*() const935     operator RefType *() const VULKAN_HPP_NOEXCEPT
936     {
937       return m_ptr;
938     }
operator ->() const939     RefType const * operator->() const VULKAN_HPP_NOEXCEPT
940     {
941       return m_ptr;
942     }
operator bool() const943     explicit operator bool() const VULKAN_HPP_NOEXCEPT
944     {
945       return !!m_ptr;
946     }
947 
948   private:
949     RefType * m_ptr;
950   };
951 
952   template <typename X, typename Y>
953   struct StructExtends
954   {
955     enum
956     {
957       value = false
958     };
959   };
960 
961   template <typename Type, class...>
962   struct IsPartOfStructureChain
963   {
964     static const bool valid = false;
965   };
966 
967   template <typename Type, typename Head, typename... Tail>
968   struct IsPartOfStructureChain<Type, Head, Tail...>
969   {
970     static const bool valid = std::is_same<Type, Head>::value || IsPartOfStructureChain<Type, Tail...>::valid;
971   };
972 
973   template <size_t Index, typename T, typename... ChainElements>
974   struct StructureChainContains
975   {
976     static const bool value = std::is_same<T, typename std::tuple_element<Index, std::tuple<ChainElements...>>::type>::value ||
977                               StructureChainContains<Index - 1, T, ChainElements...>::value;
978   };
979 
980   template <typename T, typename... ChainElements>
981   struct StructureChainContains<0, T, ChainElements...>
982   {
983     static const bool value = std::is_same<T, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value;
984   };
985 
986   template <size_t Index, typename... ChainElements>
987   struct StructureChainValidation
988   {
989     using TestType          = typename std::tuple_element<Index, std::tuple<ChainElements...>>::type;
990     static const bool valid = StructExtends<TestType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value &&
991                               ( TestType::allowDuplicate || !StructureChainContains<Index - 1, TestType, ChainElements...>::value ) &&
992                               StructureChainValidation<Index - 1, ChainElements...>::valid;
993   };
994 
995   template <typename... ChainElements>
996   struct StructureChainValidation<0, ChainElements...>
997   {
998     static const bool valid = true;
999   };
1000 
1001   template <typename... ChainElements>
1002   class StructureChain : public std::tuple<ChainElements...>
1003   {
1004   public:
StructureChain()1005     StructureChain() VULKAN_HPP_NOEXCEPT
1006     {
1007       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid, "The structure chain is not valid!" );
1008       link<sizeof...( ChainElements ) - 1>();
1009     }
1010 
StructureChain(StructureChain const & rhs)1011     StructureChain( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT : std::tuple<ChainElements...>( rhs )
1012     {
1013       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid, "The structure chain is not valid!" );
1014       link( &std::get<0>( *this ),
1015             &std::get<0>( rhs ),
1016             reinterpret_cast<VkBaseOutStructure *>( &std::get<0>( *this ) ),
1017             reinterpret_cast<VkBaseInStructure const *>( &std::get<0>( rhs ) ) );
1018     }
1019 
StructureChain(StructureChain && rhs)1020     StructureChain( StructureChain && rhs ) VULKAN_HPP_NOEXCEPT : std::tuple<ChainElements...>( std::forward<std::tuple<ChainElements...>>( rhs ) )
1021     {
1022       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid, "The structure chain is not valid!" );
1023       link( &std::get<0>( *this ),
1024             &std::get<0>( rhs ),
1025             reinterpret_cast<VkBaseOutStructure *>( &std::get<0>( *this ) ),
1026             reinterpret_cast<VkBaseInStructure const *>( &std::get<0>( rhs ) ) );
1027     }
1028 
StructureChain(ChainElements const &...elems)1029     StructureChain( ChainElements const &... elems ) VULKAN_HPP_NOEXCEPT : std::tuple<ChainElements...>( elems... )
1030     {
1031       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid, "The structure chain is not valid!" );
1032       link<sizeof...( ChainElements ) - 1>();
1033     }
1034 
operator =(StructureChain const & rhs)1035     StructureChain & operator=( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT
1036     {
1037       std::tuple<ChainElements...>::operator=( rhs );
1038       link( &std::get<0>( *this ),
1039             &std::get<0>( rhs ),
1040             reinterpret_cast<VkBaseOutStructure *>( &std::get<0>( *this ) ),
1041             reinterpret_cast<VkBaseInStructure const *>( &std::get<0>( rhs ) ) );
1042       return *this;
1043     }
1044 
1045     StructureChain & operator=( StructureChain && rhs ) = delete;
1046 
1047     template <typename T = typename std::tuple_element<0, std::tuple<ChainElements...>>::type, size_t Which = 0>
get()1048     T & get() VULKAN_HPP_NOEXCEPT
1049     {
1050       return std::get<ChainElementIndex<0, T, Which, void, ChainElements...>::value>( static_cast<std::tuple<ChainElements...> &>( *this ) );
1051     }
1052 
1053     template <typename T = typename std::tuple_element<0, std::tuple<ChainElements...>>::type, size_t Which = 0>
get() const1054     T const & get() const VULKAN_HPP_NOEXCEPT
1055     {
1056       return std::get<ChainElementIndex<0, T, Which, void, ChainElements...>::value>( static_cast<std::tuple<ChainElements...> const &>( *this ) );
1057     }
1058 
1059     template <typename T0, typename T1, typename... Ts>
get()1060     std::tuple<T0 &, T1 &, Ts &...> get() VULKAN_HPP_NOEXCEPT
1061     {
1062       return std::tie( get<T0>(), get<T1>(), get<Ts>()... );
1063     }
1064 
1065     template <typename T0, typename T1, typename... Ts>
get() const1066     std::tuple<T0 const &, T1 const &, Ts const &...> get() const VULKAN_HPP_NOEXCEPT
1067     {
1068       return std::tie( get<T0>(), get<T1>(), get<Ts>()... );
1069     }
1070 
1071     // assign a complete structure to the StructureChain without modifying the chaining
1072     template <typename T = typename std::tuple_element<0, std::tuple<ChainElements...>>::type, size_t Which = 0>
assign(const T & rhs)1073     StructureChain & assign( const T & rhs ) VULKAN_HPP_NOEXCEPT
1074     {
1075       T &    lhs   = get<T, Which>();
1076       void * pNext = lhs.pNext;
1077       lhs          = rhs;
1078       lhs.pNext    = pNext;
1079       return *this;
1080     }
1081 
1082     template <typename ClassType, size_t Which = 0>
1083     typename std::enable_if<std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value && ( Which == 0 ), bool>::type
isLinked() const1084       isLinked() const VULKAN_HPP_NOEXCEPT
1085     {
1086       return true;
1087     }
1088 
1089     template <typename ClassType, size_t Which = 0>
1090     typename std::enable_if<!std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value || ( Which != 0 ), bool>::type
isLinked() const1091       isLinked() const VULKAN_HPP_NOEXCEPT
1092     {
1093       static_assert( IsPartOfStructureChain<ClassType, ChainElements...>::valid, "Can't unlink Structure that's not part of this StructureChain!" );
1094       return isLinked( reinterpret_cast<VkBaseInStructure const *>( &get<ClassType, Which>() ) );
1095     }
1096 
1097     template <typename ClassType, size_t Which = 0>
1098     typename std::enable_if<!std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value || ( Which != 0 ), void>::type
relink()1099       relink() VULKAN_HPP_NOEXCEPT
1100     {
1101       static_assert( IsPartOfStructureChain<ClassType, ChainElements...>::valid, "Can't relink Structure that's not part of this StructureChain!" );
1102       auto pNext = reinterpret_cast<VkBaseInStructure *>( &get<ClassType, Which>() );
1103       VULKAN_HPP_ASSERT( !isLinked( pNext ) );
1104       auto & headElement = std::get<0>( static_cast<std::tuple<ChainElements...> &>( *this ) );
1105       pNext->pNext       = reinterpret_cast<VkBaseInStructure const *>( headElement.pNext );
1106       headElement.pNext  = pNext;
1107     }
1108 
1109     template <typename ClassType, size_t Which = 0>
1110     typename std::enable_if<!std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value || ( Which != 0 ), void>::type
unlink()1111       unlink() VULKAN_HPP_NOEXCEPT
1112     {
1113       static_assert( IsPartOfStructureChain<ClassType, ChainElements...>::valid, "Can't unlink Structure that's not part of this StructureChain!" );
1114       unlink( reinterpret_cast<VkBaseOutStructure const *>( &get<ClassType, Which>() ) );
1115     }
1116 
1117   private:
1118     template <int Index, typename T, int Which, typename, class First, class... Types>
1119     struct ChainElementIndex : ChainElementIndex<Index + 1, T, Which, void, Types...>
1120     {
1121     };
1122 
1123     template <int Index, typename T, int Which, class First, class... Types>
1124     struct ChainElementIndex<Index, T, Which, typename std::enable_if<!std::is_same<T, First>::value, void>::type, First, Types...>
1125       : ChainElementIndex<Index + 1, T, Which, void, Types...>
1126     {
1127     };
1128 
1129     template <int Index, typename T, int Which, class First, class... Types>
1130     struct ChainElementIndex<Index, T, Which, typename std::enable_if<std::is_same<T, First>::value, void>::type, First, Types...>
1131       : ChainElementIndex<Index + 1, T, Which - 1, void, Types...>
1132     {
1133     };
1134 
1135     template <int Index, typename T, class First, class... Types>
1136     struct ChainElementIndex<Index, T, 0, typename std::enable_if<std::is_same<T, First>::value, void>::type, First, Types...>
1137       : std::integral_constant<int, Index>
1138     {
1139     };
1140 
isLinked(VkBaseInStructure const * pNext) const1141     bool isLinked( VkBaseInStructure const * pNext ) const VULKAN_HPP_NOEXCEPT
1142     {
1143       VkBaseInStructure const * elementPtr =
1144         reinterpret_cast<VkBaseInStructure const *>( &std::get<0>( static_cast<std::tuple<ChainElements...> const &>( *this ) ) );
1145       while ( elementPtr )
1146       {
1147         if ( elementPtr->pNext == pNext )
1148         {
1149           return true;
1150         }
1151         elementPtr = elementPtr->pNext;
1152       }
1153       return false;
1154     }
1155 
1156     template <size_t Index>
link()1157     typename std::enable_if<Index != 0, void>::type link() VULKAN_HPP_NOEXCEPT
1158     {
1159       auto & x = std::get<Index - 1>( static_cast<std::tuple<ChainElements...> &>( *this ) );
1160       x.pNext  = &std::get<Index>( static_cast<std::tuple<ChainElements...> &>( *this ) );
1161       link<Index - 1>();
1162     }
1163 
1164     template <size_t Index>
link()1165     typename std::enable_if<Index == 0, void>::type link() VULKAN_HPP_NOEXCEPT
1166     {
1167     }
1168 
link(void * dstBase,void const * srcBase,VkBaseOutStructure * dst,VkBaseInStructure const * src)1169     void link( void * dstBase, void const * srcBase, VkBaseOutStructure * dst, VkBaseInStructure const * src )
1170     {
1171       while ( src->pNext )
1172       {
1173         std::ptrdiff_t offset = reinterpret_cast<char const *>( src->pNext ) - reinterpret_cast<char const *>( srcBase );
1174         dst->pNext            = reinterpret_cast<VkBaseOutStructure *>( reinterpret_cast<char *>( dstBase ) + offset );
1175         dst                   = dst->pNext;
1176         src                   = src->pNext;
1177       }
1178       dst->pNext = nullptr;
1179     }
1180 
unlink(VkBaseOutStructure const * pNext)1181     void unlink( VkBaseOutStructure const * pNext ) VULKAN_HPP_NOEXCEPT
1182     {
1183       VkBaseOutStructure * elementPtr = reinterpret_cast<VkBaseOutStructure *>( &std::get<0>( static_cast<std::tuple<ChainElements...> &>( *this ) ) );
1184       while ( elementPtr && ( elementPtr->pNext != pNext ) )
1185       {
1186         elementPtr = elementPtr->pNext;
1187       }
1188       if ( elementPtr )
1189       {
1190         elementPtr->pNext = pNext->pNext;
1191       }
1192       else
1193       {
1194         VULKAN_HPP_ASSERT( false );  // fires, if the ClassType member has already been unlinked !
1195       }
1196     }
1197   };
1198   // interupt the VULKAN_HPP_NAMESPACE for a moment to add specializations of std::tuple_size and std::tuple_element for the StructureChain!
1199 }
1200 
1201 namespace std
1202 {
1203   template <typename... Elements>
1204   struct tuple_size<VULKAN_HPP_NAMESPACE::StructureChain<Elements...>>
1205   {
1206     static constexpr size_t value = std::tuple_size<std::tuple<Elements...>>::value;
1207   };
1208 
1209   template <std::size_t Index, typename... Elements>
1210   struct tuple_element<Index, VULKAN_HPP_NAMESPACE::StructureChain<Elements...>>
1211   {
1212     using type = typename std::tuple_element<Index, std::tuple<Elements...>>::type;
1213   };
1214 }  // namespace std
1215 
1216 namespace VULKAN_HPP_NAMESPACE
1217 {
1218 #  if !defined( VULKAN_HPP_NO_SMART_HANDLE )
1219   template <typename Type, typename Dispatch>
1220   class UniqueHandleTraits;
1221 
1222   template <typename Type, typename Dispatch>
1223   class UniqueHandle : public UniqueHandleTraits<Type, Dispatch>::deleter
1224   {
1225   private:
1226     using Deleter = typename UniqueHandleTraits<Type, Dispatch>::deleter;
1227 
1228   public:
1229     using element_type = Type;
1230 
UniqueHandle()1231     UniqueHandle() : Deleter(), m_value() {}
1232 
UniqueHandle(Type const & value,Deleter const & deleter=Deleter ())1233     explicit UniqueHandle( Type const & value, Deleter const & deleter = Deleter() ) VULKAN_HPP_NOEXCEPT
1234       : Deleter( deleter )
1235       , m_value( value )
1236     {
1237     }
1238 
1239     UniqueHandle( UniqueHandle const & ) = delete;
1240 
UniqueHandle(UniqueHandle && other)1241     UniqueHandle( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT
1242       : Deleter( std::move( static_cast<Deleter &>( other ) ) )
1243       , m_value( other.release() )
1244     {
1245     }
1246 
~UniqueHandle()1247     ~UniqueHandle() VULKAN_HPP_NOEXCEPT
1248     {
1249       if ( m_value )
1250       {
1251         this->destroy( m_value );
1252       }
1253     }
1254 
1255     UniqueHandle & operator=( UniqueHandle const & ) = delete;
1256 
operator =(UniqueHandle && other)1257     UniqueHandle & operator=( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT
1258     {
1259       reset( other.release() );
1260       *static_cast<Deleter *>( this ) = std::move( static_cast<Deleter &>( other ) );
1261       return *this;
1262     }
1263 
operator bool() const1264     explicit operator bool() const VULKAN_HPP_NOEXCEPT
1265     {
1266       return m_value.operator bool();
1267     }
1268 
operator ->() const1269     Type const * operator->() const VULKAN_HPP_NOEXCEPT
1270     {
1271       return &m_value;
1272     }
1273 
operator ->()1274     Type * operator->() VULKAN_HPP_NOEXCEPT
1275     {
1276       return &m_value;
1277     }
1278 
operator *() const1279     Type const & operator*() const VULKAN_HPP_NOEXCEPT
1280     {
1281       return m_value;
1282     }
1283 
operator *()1284     Type & operator*() VULKAN_HPP_NOEXCEPT
1285     {
1286       return m_value;
1287     }
1288 
get() const1289     const Type & get() const VULKAN_HPP_NOEXCEPT
1290     {
1291       return m_value;
1292     }
1293 
get()1294     Type & get() VULKAN_HPP_NOEXCEPT
1295     {
1296       return m_value;
1297     }
1298 
reset(Type const & value=Type ())1299     void reset( Type const & value = Type() ) VULKAN_HPP_NOEXCEPT
1300     {
1301       if ( m_value != value )
1302       {
1303         if ( m_value )
1304         {
1305           this->destroy( m_value );
1306         }
1307         m_value = value;
1308       }
1309     }
1310 
release()1311     Type release() VULKAN_HPP_NOEXCEPT
1312     {
1313       Type value = m_value;
1314       m_value    = nullptr;
1315       return value;
1316     }
1317 
swap(UniqueHandle<Type,Dispatch> & rhs)1318     void swap( UniqueHandle<Type, Dispatch> & rhs ) VULKAN_HPP_NOEXCEPT
1319     {
1320       std::swap( m_value, rhs.m_value );
1321       std::swap( static_cast<Deleter &>( *this ), static_cast<Deleter &>( rhs ) );
1322     }
1323 
1324   private:
1325     Type m_value;
1326   };
1327 
1328   template <typename UniqueType>
uniqueToRaw(std::vector<UniqueType> const & handles)1329   VULKAN_HPP_INLINE std::vector<typename UniqueType::element_type> uniqueToRaw( std::vector<UniqueType> const & handles )
1330   {
1331     std::vector<typename UniqueType::element_type> newBuffer( handles.size() );
1332     std::transform( handles.begin(), handles.end(), newBuffer.begin(), []( UniqueType const & handle ) { return handle.get(); } );
1333     return newBuffer;
1334   }
1335 
1336   template <typename Type, typename Dispatch>
swap(UniqueHandle<Type,Dispatch> & lhs,UniqueHandle<Type,Dispatch> & rhs)1337   VULKAN_HPP_INLINE void swap( UniqueHandle<Type, Dispatch> & lhs, UniqueHandle<Type, Dispatch> & rhs ) VULKAN_HPP_NOEXCEPT
1338   {
1339     lhs.swap( rhs );
1340   }
1341 #  endif
1342 #endif  // VULKAN_HPP_DISABLE_ENHANCED_MODE
1343 
1344   class DispatchLoaderBase
1345   {
1346   public:
1347     DispatchLoaderBase() = default;
DispatchLoaderBase(std::nullptr_t)1348     DispatchLoaderBase( std::nullptr_t )
1349 #if !defined( NDEBUG )
1350       : m_valid( false )
1351 #endif
1352     {
1353     }
1354 
1355 #if !defined( NDEBUG )
getVkHeaderVersion() const1356     size_t getVkHeaderVersion() const
1357     {
1358       VULKAN_HPP_ASSERT( m_valid );
1359       return vkHeaderVersion;
1360     }
1361 
1362   private:
1363     size_t vkHeaderVersion = VK_HEADER_VERSION;
1364     bool   m_valid         = true;
1365 #endif
1366   };
1367 
1368 #if !defined( VK_NO_PROTOTYPES )
1369   class DispatchLoaderStatic : public DispatchLoaderBase
1370   {
1371   public:
1372     //=== VK_VERSION_1_0 ===
1373 
1374     VkResult
vkCreateInstance(const VkInstanceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkInstance * pInstance) const1375       vkCreateInstance( const VkInstanceCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkInstance * pInstance ) const VULKAN_HPP_NOEXCEPT
1376     {
1377       return ::vkCreateInstance( pCreateInfo, pAllocator, pInstance );
1378     }
1379 
vkDestroyInstance(VkInstance instance,const VkAllocationCallbacks * pAllocator) const1380     void vkDestroyInstance( VkInstance instance, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1381     {
1382       return ::vkDestroyInstance( instance, pAllocator );
1383     }
1384 
vkEnumeratePhysicalDevices(VkInstance instance,uint32_t * pPhysicalDeviceCount,VkPhysicalDevice * pPhysicalDevices) const1385     VkResult vkEnumeratePhysicalDevices( VkInstance instance, uint32_t * pPhysicalDeviceCount, VkPhysicalDevice * pPhysicalDevices ) const VULKAN_HPP_NOEXCEPT
1386     {
1387       return ::vkEnumeratePhysicalDevices( instance, pPhysicalDeviceCount, pPhysicalDevices );
1388     }
1389 
vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures * pFeatures) const1390     void vkGetPhysicalDeviceFeatures( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures * pFeatures ) const VULKAN_HPP_NOEXCEPT
1391     {
1392       return ::vkGetPhysicalDeviceFeatures( physicalDevice, pFeatures );
1393     }
1394 
1395     void
vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties * pFormatProperties) const1396       vkGetPhysicalDeviceFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties * pFormatProperties ) const VULKAN_HPP_NOEXCEPT
1397     {
1398       return ::vkGetPhysicalDeviceFormatProperties( physicalDevice, format, pFormatProperties );
1399     }
1400 
vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkImageFormatProperties * pImageFormatProperties) const1401     VkResult vkGetPhysicalDeviceImageFormatProperties( VkPhysicalDevice          physicalDevice,
1402                                                        VkFormat                  format,
1403                                                        VkImageType               type,
1404                                                        VkImageTiling             tiling,
1405                                                        VkImageUsageFlags         usage,
1406                                                        VkImageCreateFlags        flags,
1407                                                        VkImageFormatProperties * pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
1408     {
1409       return ::vkGetPhysicalDeviceImageFormatProperties( physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties );
1410     }
1411 
vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties * pProperties) const1412     void vkGetPhysicalDeviceProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties * pProperties ) const VULKAN_HPP_NOEXCEPT
1413     {
1414       return ::vkGetPhysicalDeviceProperties( physicalDevice, pProperties );
1415     }
1416 
vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties * pQueueFamilyProperties) const1417     void vkGetPhysicalDeviceQueueFamilyProperties( VkPhysicalDevice          physicalDevice,
1418                                                    uint32_t *                pQueueFamilyPropertyCount,
1419                                                    VkQueueFamilyProperties * pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
1420     {
1421       return ::vkGetPhysicalDeviceQueueFamilyProperties( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
1422     }
1423 
vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties * pMemoryProperties) const1424     void vkGetPhysicalDeviceMemoryProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties * pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
1425     {
1426       return ::vkGetPhysicalDeviceMemoryProperties( physicalDevice, pMemoryProperties );
1427     }
1428 
vkGetInstanceProcAddr(VkInstance instance,const char * pName) const1429     PFN_vkVoidFunction vkGetInstanceProcAddr( VkInstance instance, const char * pName ) const VULKAN_HPP_NOEXCEPT
1430     {
1431       return ::vkGetInstanceProcAddr( instance, pName );
1432     }
1433 
vkGetDeviceProcAddr(VkDevice device,const char * pName) const1434     PFN_vkVoidFunction vkGetDeviceProcAddr( VkDevice device, const char * pName ) const VULKAN_HPP_NOEXCEPT
1435     {
1436       return ::vkGetDeviceProcAddr( device, pName );
1437     }
1438 
vkCreateDevice(VkPhysicalDevice physicalDevice,const VkDeviceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDevice * pDevice) const1439     VkResult vkCreateDevice( VkPhysicalDevice              physicalDevice,
1440                              const VkDeviceCreateInfo *    pCreateInfo,
1441                              const VkAllocationCallbacks * pAllocator,
1442                              VkDevice *                    pDevice ) const VULKAN_HPP_NOEXCEPT
1443     {
1444       return ::vkCreateDevice( physicalDevice, pCreateInfo, pAllocator, pDevice );
1445     }
1446 
vkDestroyDevice(VkDevice device,const VkAllocationCallbacks * pAllocator) const1447     void vkDestroyDevice( VkDevice device, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1448     {
1449       return ::vkDestroyDevice( device, pAllocator );
1450     }
1451 
vkEnumerateInstanceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties) const1452     VkResult vkEnumerateInstanceExtensionProperties( const char *            pLayerName,
1453                                                      uint32_t *              pPropertyCount,
1454                                                      VkExtensionProperties * pProperties ) const VULKAN_HPP_NOEXCEPT
1455     {
1456       return ::vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, pProperties );
1457     }
1458 
vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice,const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties) const1459     VkResult vkEnumerateDeviceExtensionProperties( VkPhysicalDevice        physicalDevice,
1460                                                    const char *            pLayerName,
1461                                                    uint32_t *              pPropertyCount,
1462                                                    VkExtensionProperties * pProperties ) const VULKAN_HPP_NOEXCEPT
1463     {
1464       return ::vkEnumerateDeviceExtensionProperties( physicalDevice, pLayerName, pPropertyCount, pProperties );
1465     }
1466 
vkEnumerateInstanceLayerProperties(uint32_t * pPropertyCount,VkLayerProperties * pProperties) const1467     VkResult vkEnumerateInstanceLayerProperties( uint32_t * pPropertyCount, VkLayerProperties * pProperties ) const VULKAN_HPP_NOEXCEPT
1468     {
1469       return ::vkEnumerateInstanceLayerProperties( pPropertyCount, pProperties );
1470     }
1471 
1472     VkResult
vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkLayerProperties * pProperties) const1473       vkEnumerateDeviceLayerProperties( VkPhysicalDevice physicalDevice, uint32_t * pPropertyCount, VkLayerProperties * pProperties ) const VULKAN_HPP_NOEXCEPT
1474     {
1475       return ::vkEnumerateDeviceLayerProperties( physicalDevice, pPropertyCount, pProperties );
1476     }
1477 
vkGetDeviceQueue(VkDevice device,uint32_t queueFamilyIndex,uint32_t queueIndex,VkQueue * pQueue) const1478     void vkGetDeviceQueue( VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue * pQueue ) const VULKAN_HPP_NOEXCEPT
1479     {
1480       return ::vkGetDeviceQueue( device, queueFamilyIndex, queueIndex, pQueue );
1481     }
1482 
vkQueueSubmit(VkQueue queue,uint32_t submitCount,const VkSubmitInfo * pSubmits,VkFence fence) const1483     VkResult vkQueueSubmit( VkQueue queue, uint32_t submitCount, const VkSubmitInfo * pSubmits, VkFence fence ) const VULKAN_HPP_NOEXCEPT
1484     {
1485       return ::vkQueueSubmit( queue, submitCount, pSubmits, fence );
1486     }
1487 
vkQueueWaitIdle(VkQueue queue) const1488     VkResult vkQueueWaitIdle( VkQueue queue ) const VULKAN_HPP_NOEXCEPT
1489     {
1490       return ::vkQueueWaitIdle( queue );
1491     }
1492 
vkDeviceWaitIdle(VkDevice device) const1493     VkResult vkDeviceWaitIdle( VkDevice device ) const VULKAN_HPP_NOEXCEPT
1494     {
1495       return ::vkDeviceWaitIdle( device );
1496     }
1497 
vkAllocateMemory(VkDevice device,const VkMemoryAllocateInfo * pAllocateInfo,const VkAllocationCallbacks * pAllocator,VkDeviceMemory * pMemory) const1498     VkResult vkAllocateMemory( VkDevice                      device,
1499                                const VkMemoryAllocateInfo *  pAllocateInfo,
1500                                const VkAllocationCallbacks * pAllocator,
1501                                VkDeviceMemory *              pMemory ) const VULKAN_HPP_NOEXCEPT
1502     {
1503       return ::vkAllocateMemory( device, pAllocateInfo, pAllocator, pMemory );
1504     }
1505 
vkFreeMemory(VkDevice device,VkDeviceMemory memory,const VkAllocationCallbacks * pAllocator) const1506     void vkFreeMemory( VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1507     {
1508       return ::vkFreeMemory( device, memory, pAllocator );
1509     }
1510 
vkMapMemory(VkDevice device,VkDeviceMemory memory,VkDeviceSize offset,VkDeviceSize size,VkMemoryMapFlags flags,void ** ppData) const1511     VkResult vkMapMemory( VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void ** ppData ) const
1512       VULKAN_HPP_NOEXCEPT
1513     {
1514       return ::vkMapMemory( device, memory, offset, size, flags, ppData );
1515     }
1516 
vkUnmapMemory(VkDevice device,VkDeviceMemory memory) const1517     void vkUnmapMemory( VkDevice device, VkDeviceMemory memory ) const VULKAN_HPP_NOEXCEPT
1518     {
1519       return ::vkUnmapMemory( device, memory );
1520     }
1521 
vkFlushMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges) const1522     VkResult vkFlushMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange * pMemoryRanges ) const VULKAN_HPP_NOEXCEPT
1523     {
1524       return ::vkFlushMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges );
1525     }
1526 
vkInvalidateMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges) const1527     VkResult vkInvalidateMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange * pMemoryRanges ) const VULKAN_HPP_NOEXCEPT
1528     {
1529       return ::vkInvalidateMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges );
1530     }
1531 
vkGetDeviceMemoryCommitment(VkDevice device,VkDeviceMemory memory,VkDeviceSize * pCommittedMemoryInBytes) const1532     void vkGetDeviceMemoryCommitment( VkDevice device, VkDeviceMemory memory, VkDeviceSize * pCommittedMemoryInBytes ) const VULKAN_HPP_NOEXCEPT
1533     {
1534       return ::vkGetDeviceMemoryCommitment( device, memory, pCommittedMemoryInBytes );
1535     }
1536 
vkBindBufferMemory(VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset) const1537     VkResult vkBindBufferMemory( VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT
1538     {
1539       return ::vkBindBufferMemory( device, buffer, memory, memoryOffset );
1540     }
1541 
vkBindImageMemory(VkDevice device,VkImage image,VkDeviceMemory memory,VkDeviceSize memoryOffset) const1542     VkResult vkBindImageMemory( VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT
1543     {
1544       return ::vkBindImageMemory( device, image, memory, memoryOffset );
1545     }
1546 
vkGetBufferMemoryRequirements(VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements) const1547     void vkGetBufferMemoryRequirements( VkDevice device, VkBuffer buffer, VkMemoryRequirements * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
1548     {
1549       return ::vkGetBufferMemoryRequirements( device, buffer, pMemoryRequirements );
1550     }
1551 
vkGetImageMemoryRequirements(VkDevice device,VkImage image,VkMemoryRequirements * pMemoryRequirements) const1552     void vkGetImageMemoryRequirements( VkDevice device, VkImage image, VkMemoryRequirements * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
1553     {
1554       return ::vkGetImageMemoryRequirements( device, image, pMemoryRequirements );
1555     }
1556 
vkGetImageSparseMemoryRequirements(VkDevice device,VkImage image,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements * pSparseMemoryRequirements) const1557     void vkGetImageSparseMemoryRequirements( VkDevice                          device,
1558                                              VkImage                           image,
1559                                              uint32_t *                        pSparseMemoryRequirementCount,
1560                                              VkSparseImageMemoryRequirements * pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
1561     {
1562       return ::vkGetImageSparseMemoryRequirements( device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
1563     }
1564 
vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkSampleCountFlagBits samples,VkImageUsageFlags usage,VkImageTiling tiling,uint32_t * pPropertyCount,VkSparseImageFormatProperties * pProperties) const1565     void vkGetPhysicalDeviceSparseImageFormatProperties( VkPhysicalDevice                physicalDevice,
1566                                                          VkFormat                        format,
1567                                                          VkImageType                     type,
1568                                                          VkSampleCountFlagBits           samples,
1569                                                          VkImageUsageFlags               usage,
1570                                                          VkImageTiling                   tiling,
1571                                                          uint32_t *                      pPropertyCount,
1572                                                          VkSparseImageFormatProperties * pProperties ) const VULKAN_HPP_NOEXCEPT
1573     {
1574       return ::vkGetPhysicalDeviceSparseImageFormatProperties( physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties );
1575     }
1576 
vkQueueBindSparse(VkQueue queue,uint32_t bindInfoCount,const VkBindSparseInfo * pBindInfo,VkFence fence) const1577     VkResult vkQueueBindSparse( VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo * pBindInfo, VkFence fence ) const VULKAN_HPP_NOEXCEPT
1578     {
1579       return ::vkQueueBindSparse( queue, bindInfoCount, pBindInfo, fence );
1580     }
1581 
vkCreateFence(VkDevice device,const VkFenceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const1582     VkResult vkCreateFence( VkDevice                      device,
1583                             const VkFenceCreateInfo *     pCreateInfo,
1584                             const VkAllocationCallbacks * pAllocator,
1585                             VkFence *                     pFence ) const VULKAN_HPP_NOEXCEPT
1586     {
1587       return ::vkCreateFence( device, pCreateInfo, pAllocator, pFence );
1588     }
1589 
vkDestroyFence(VkDevice device,VkFence fence,const VkAllocationCallbacks * pAllocator) const1590     void vkDestroyFence( VkDevice device, VkFence fence, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1591     {
1592       return ::vkDestroyFence( device, fence, pAllocator );
1593     }
1594 
vkResetFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences) const1595     VkResult vkResetFences( VkDevice device, uint32_t fenceCount, const VkFence * pFences ) const VULKAN_HPP_NOEXCEPT
1596     {
1597       return ::vkResetFences( device, fenceCount, pFences );
1598     }
1599 
vkGetFenceStatus(VkDevice device,VkFence fence) const1600     VkResult vkGetFenceStatus( VkDevice device, VkFence fence ) const VULKAN_HPP_NOEXCEPT
1601     {
1602       return ::vkGetFenceStatus( device, fence );
1603     }
1604 
vkWaitForFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences,VkBool32 waitAll,uint64_t timeout) const1605     VkResult vkWaitForFences( VkDevice device, uint32_t fenceCount, const VkFence * pFences, VkBool32 waitAll, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
1606     {
1607       return ::vkWaitForFences( device, fenceCount, pFences, waitAll, timeout );
1608     }
1609 
vkCreateSemaphore(VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore) const1610     VkResult vkCreateSemaphore( VkDevice                      device,
1611                                 const VkSemaphoreCreateInfo * pCreateInfo,
1612                                 const VkAllocationCallbacks * pAllocator,
1613                                 VkSemaphore *                 pSemaphore ) const VULKAN_HPP_NOEXCEPT
1614     {
1615       return ::vkCreateSemaphore( device, pCreateInfo, pAllocator, pSemaphore );
1616     }
1617 
vkDestroySemaphore(VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator) const1618     void vkDestroySemaphore( VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1619     {
1620       return ::vkDestroySemaphore( device, semaphore, pAllocator );
1621     }
1622 
vkCreateEvent(VkDevice device,const VkEventCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkEvent * pEvent) const1623     VkResult vkCreateEvent( VkDevice                      device,
1624                             const VkEventCreateInfo *     pCreateInfo,
1625                             const VkAllocationCallbacks * pAllocator,
1626                             VkEvent *                     pEvent ) const VULKAN_HPP_NOEXCEPT
1627     {
1628       return ::vkCreateEvent( device, pCreateInfo, pAllocator, pEvent );
1629     }
1630 
vkDestroyEvent(VkDevice device,VkEvent event,const VkAllocationCallbacks * pAllocator) const1631     void vkDestroyEvent( VkDevice device, VkEvent event, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1632     {
1633       return ::vkDestroyEvent( device, event, pAllocator );
1634     }
1635 
vkGetEventStatus(VkDevice device,VkEvent event) const1636     VkResult vkGetEventStatus( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
1637     {
1638       return ::vkGetEventStatus( device, event );
1639     }
1640 
vkSetEvent(VkDevice device,VkEvent event) const1641     VkResult vkSetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
1642     {
1643       return ::vkSetEvent( device, event );
1644     }
1645 
vkResetEvent(VkDevice device,VkEvent event) const1646     VkResult vkResetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
1647     {
1648       return ::vkResetEvent( device, event );
1649     }
1650 
vkCreateQueryPool(VkDevice device,const VkQueryPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkQueryPool * pQueryPool) const1651     VkResult vkCreateQueryPool( VkDevice                      device,
1652                                 const VkQueryPoolCreateInfo * pCreateInfo,
1653                                 const VkAllocationCallbacks * pAllocator,
1654                                 VkQueryPool *                 pQueryPool ) const VULKAN_HPP_NOEXCEPT
1655     {
1656       return ::vkCreateQueryPool( device, pCreateInfo, pAllocator, pQueryPool );
1657     }
1658 
vkDestroyQueryPool(VkDevice device,VkQueryPool queryPool,const VkAllocationCallbacks * pAllocator) const1659     void vkDestroyQueryPool( VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1660     {
1661       return ::vkDestroyQueryPool( device, queryPool, pAllocator );
1662     }
1663 
vkGetQueryPoolResults(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,size_t dataSize,void * pData,VkDeviceSize stride,VkQueryResultFlags flags) const1664     VkResult vkGetQueryPoolResults( VkDevice           device,
1665                                     VkQueryPool        queryPool,
1666                                     uint32_t           firstQuery,
1667                                     uint32_t           queryCount,
1668                                     size_t             dataSize,
1669                                     void *             pData,
1670                                     VkDeviceSize       stride,
1671                                     VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT
1672     {
1673       return ::vkGetQueryPoolResults( device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags );
1674     }
1675 
vkCreateBuffer(VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer) const1676     VkResult vkCreateBuffer( VkDevice                      device,
1677                              const VkBufferCreateInfo *    pCreateInfo,
1678                              const VkAllocationCallbacks * pAllocator,
1679                              VkBuffer *                    pBuffer ) const VULKAN_HPP_NOEXCEPT
1680     {
1681       return ::vkCreateBuffer( device, pCreateInfo, pAllocator, pBuffer );
1682     }
1683 
vkDestroyBuffer(VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator) const1684     void vkDestroyBuffer( VkDevice device, VkBuffer buffer, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1685     {
1686       return ::vkDestroyBuffer( device, buffer, pAllocator );
1687     }
1688 
vkCreateBufferView(VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView) const1689     VkResult vkCreateBufferView( VkDevice                       device,
1690                                  const VkBufferViewCreateInfo * pCreateInfo,
1691                                  const VkAllocationCallbacks *  pAllocator,
1692                                  VkBufferView *                 pView ) const VULKAN_HPP_NOEXCEPT
1693     {
1694       return ::vkCreateBufferView( device, pCreateInfo, pAllocator, pView );
1695     }
1696 
vkDestroyBufferView(VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator) const1697     void vkDestroyBufferView( VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1698     {
1699       return ::vkDestroyBufferView( device, bufferView, pAllocator );
1700     }
1701 
vkCreateImage(VkDevice device,const VkImageCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImage * pImage) const1702     VkResult vkCreateImage( VkDevice                      device,
1703                             const VkImageCreateInfo *     pCreateInfo,
1704                             const VkAllocationCallbacks * pAllocator,
1705                             VkImage *                     pImage ) const VULKAN_HPP_NOEXCEPT
1706     {
1707       return ::vkCreateImage( device, pCreateInfo, pAllocator, pImage );
1708     }
1709 
vkDestroyImage(VkDevice device,VkImage image,const VkAllocationCallbacks * pAllocator) const1710     void vkDestroyImage( VkDevice device, VkImage image, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1711     {
1712       return ::vkDestroyImage( device, image, pAllocator );
1713     }
1714 
vkGetImageSubresourceLayout(VkDevice device,VkImage image,const VkImageSubresource * pSubresource,VkSubresourceLayout * pLayout) const1715     void vkGetImageSubresourceLayout( VkDevice                   device,
1716                                       VkImage                    image,
1717                                       const VkImageSubresource * pSubresource,
1718                                       VkSubresourceLayout *      pLayout ) const VULKAN_HPP_NOEXCEPT
1719     {
1720       return ::vkGetImageSubresourceLayout( device, image, pSubresource, pLayout );
1721     }
1722 
vkCreateImageView(VkDevice device,const VkImageViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImageView * pView) const1723     VkResult vkCreateImageView( VkDevice                      device,
1724                                 const VkImageViewCreateInfo * pCreateInfo,
1725                                 const VkAllocationCallbacks * pAllocator,
1726                                 VkImageView *                 pView ) const VULKAN_HPP_NOEXCEPT
1727     {
1728       return ::vkCreateImageView( device, pCreateInfo, pAllocator, pView );
1729     }
1730 
vkDestroyImageView(VkDevice device,VkImageView imageView,const VkAllocationCallbacks * pAllocator) const1731     void vkDestroyImageView( VkDevice device, VkImageView imageView, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1732     {
1733       return ::vkDestroyImageView( device, imageView, pAllocator );
1734     }
1735 
vkCreateShaderModule(VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule) const1736     VkResult vkCreateShaderModule( VkDevice                         device,
1737                                    const VkShaderModuleCreateInfo * pCreateInfo,
1738                                    const VkAllocationCallbacks *    pAllocator,
1739                                    VkShaderModule *                 pShaderModule ) const VULKAN_HPP_NOEXCEPT
1740     {
1741       return ::vkCreateShaderModule( device, pCreateInfo, pAllocator, pShaderModule );
1742     }
1743 
vkDestroyShaderModule(VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator) const1744     void vkDestroyShaderModule( VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1745     {
1746       return ::vkDestroyShaderModule( device, shaderModule, pAllocator );
1747     }
1748 
vkCreatePipelineCache(VkDevice device,const VkPipelineCacheCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineCache * pPipelineCache) const1749     VkResult vkCreatePipelineCache( VkDevice                          device,
1750                                     const VkPipelineCacheCreateInfo * pCreateInfo,
1751                                     const VkAllocationCallbacks *     pAllocator,
1752                                     VkPipelineCache *                 pPipelineCache ) const VULKAN_HPP_NOEXCEPT
1753     {
1754       return ::vkCreatePipelineCache( device, pCreateInfo, pAllocator, pPipelineCache );
1755     }
1756 
vkDestroyPipelineCache(VkDevice device,VkPipelineCache pipelineCache,const VkAllocationCallbacks * pAllocator) const1757     void vkDestroyPipelineCache( VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1758     {
1759       return ::vkDestroyPipelineCache( device, pipelineCache, pAllocator );
1760     }
1761 
vkGetPipelineCacheData(VkDevice device,VkPipelineCache pipelineCache,size_t * pDataSize,void * pData) const1762     VkResult vkGetPipelineCacheData( VkDevice device, VkPipelineCache pipelineCache, size_t * pDataSize, void * pData ) const VULKAN_HPP_NOEXCEPT
1763     {
1764       return ::vkGetPipelineCacheData( device, pipelineCache, pDataSize, pData );
1765     }
1766 
1767     VkResult
vkMergePipelineCaches(VkDevice device,VkPipelineCache dstCache,uint32_t srcCacheCount,const VkPipelineCache * pSrcCaches) const1768       vkMergePipelineCaches( VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache * pSrcCaches ) const VULKAN_HPP_NOEXCEPT
1769     {
1770       return ::vkMergePipelineCaches( device, dstCache, srcCacheCount, pSrcCaches );
1771     }
1772 
vkCreateGraphicsPipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkGraphicsPipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const1773     VkResult vkCreateGraphicsPipelines( VkDevice                             device,
1774                                         VkPipelineCache                      pipelineCache,
1775                                         uint32_t                             createInfoCount,
1776                                         const VkGraphicsPipelineCreateInfo * pCreateInfos,
1777                                         const VkAllocationCallbacks *        pAllocator,
1778                                         VkPipeline *                         pPipelines ) const VULKAN_HPP_NOEXCEPT
1779     {
1780       return ::vkCreateGraphicsPipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
1781     }
1782 
vkCreateComputePipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkComputePipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const1783     VkResult vkCreateComputePipelines( VkDevice                            device,
1784                                        VkPipelineCache                     pipelineCache,
1785                                        uint32_t                            createInfoCount,
1786                                        const VkComputePipelineCreateInfo * pCreateInfos,
1787                                        const VkAllocationCallbacks *       pAllocator,
1788                                        VkPipeline *                        pPipelines ) const VULKAN_HPP_NOEXCEPT
1789     {
1790       return ::vkCreateComputePipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
1791     }
1792 
vkDestroyPipeline(VkDevice device,VkPipeline pipeline,const VkAllocationCallbacks * pAllocator) const1793     void vkDestroyPipeline( VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1794     {
1795       return ::vkDestroyPipeline( device, pipeline, pAllocator );
1796     }
1797 
vkCreatePipelineLayout(VkDevice device,const VkPipelineLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineLayout * pPipelineLayout) const1798     VkResult vkCreatePipelineLayout( VkDevice                           device,
1799                                      const VkPipelineLayoutCreateInfo * pCreateInfo,
1800                                      const VkAllocationCallbacks *      pAllocator,
1801                                      VkPipelineLayout *                 pPipelineLayout ) const VULKAN_HPP_NOEXCEPT
1802     {
1803       return ::vkCreatePipelineLayout( device, pCreateInfo, pAllocator, pPipelineLayout );
1804     }
1805 
vkDestroyPipelineLayout(VkDevice device,VkPipelineLayout pipelineLayout,const VkAllocationCallbacks * pAllocator) const1806     void vkDestroyPipelineLayout( VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1807     {
1808       return ::vkDestroyPipelineLayout( device, pipelineLayout, pAllocator );
1809     }
1810 
vkCreateSampler(VkDevice device,const VkSamplerCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSampler * pSampler) const1811     VkResult vkCreateSampler( VkDevice                      device,
1812                               const VkSamplerCreateInfo *   pCreateInfo,
1813                               const VkAllocationCallbacks * pAllocator,
1814                               VkSampler *                   pSampler ) const VULKAN_HPP_NOEXCEPT
1815     {
1816       return ::vkCreateSampler( device, pCreateInfo, pAllocator, pSampler );
1817     }
1818 
vkDestroySampler(VkDevice device,VkSampler sampler,const VkAllocationCallbacks * pAllocator) const1819     void vkDestroySampler( VkDevice device, VkSampler sampler, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1820     {
1821       return ::vkDestroySampler( device, sampler, pAllocator );
1822     }
1823 
vkCreateDescriptorSetLayout(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorSetLayout * pSetLayout) const1824     VkResult vkCreateDescriptorSetLayout( VkDevice                                device,
1825                                           const VkDescriptorSetLayoutCreateInfo * pCreateInfo,
1826                                           const VkAllocationCallbacks *           pAllocator,
1827                                           VkDescriptorSetLayout *                 pSetLayout ) const VULKAN_HPP_NOEXCEPT
1828     {
1829       return ::vkCreateDescriptorSetLayout( device, pCreateInfo, pAllocator, pSetLayout );
1830     }
1831 
vkDestroyDescriptorSetLayout(VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator) const1832     void vkDestroyDescriptorSetLayout( VkDevice                      device,
1833                                        VkDescriptorSetLayout         descriptorSetLayout,
1834                                        const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1835     {
1836       return ::vkDestroyDescriptorSetLayout( device, descriptorSetLayout, pAllocator );
1837     }
1838 
vkCreateDescriptorPool(VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool) const1839     VkResult vkCreateDescriptorPool( VkDevice                           device,
1840                                      const VkDescriptorPoolCreateInfo * pCreateInfo,
1841                                      const VkAllocationCallbacks *      pAllocator,
1842                                      VkDescriptorPool *                 pDescriptorPool ) const VULKAN_HPP_NOEXCEPT
1843     {
1844       return ::vkCreateDescriptorPool( device, pCreateInfo, pAllocator, pDescriptorPool );
1845     }
1846 
vkDestroyDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator) const1847     void vkDestroyDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1848     {
1849       return ::vkDestroyDescriptorPool( device, descriptorPool, pAllocator );
1850     }
1851 
vkResetDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags) const1852     VkResult vkResetDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT
1853     {
1854       return ::vkResetDescriptorPool( device, descriptorPool, flags );
1855     }
1856 
vkAllocateDescriptorSets(VkDevice device,const VkDescriptorSetAllocateInfo * pAllocateInfo,VkDescriptorSet * pDescriptorSets) const1857     VkResult vkAllocateDescriptorSets( VkDevice                            device,
1858                                        const VkDescriptorSetAllocateInfo * pAllocateInfo,
1859                                        VkDescriptorSet *                   pDescriptorSets ) const VULKAN_HPP_NOEXCEPT
1860     {
1861       return ::vkAllocateDescriptorSets( device, pAllocateInfo, pDescriptorSets );
1862     }
1863 
vkFreeDescriptorSets(VkDevice device,VkDescriptorPool descriptorPool,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets) const1864     VkResult vkFreeDescriptorSets( VkDevice                device,
1865                                    VkDescriptorPool        descriptorPool,
1866                                    uint32_t                descriptorSetCount,
1867                                    const VkDescriptorSet * pDescriptorSets ) const VULKAN_HPP_NOEXCEPT
1868     {
1869       return ::vkFreeDescriptorSets( device, descriptorPool, descriptorSetCount, pDescriptorSets );
1870     }
1871 
vkUpdateDescriptorSets(VkDevice device,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites,uint32_t descriptorCopyCount,const VkCopyDescriptorSet * pDescriptorCopies) const1872     void vkUpdateDescriptorSets( VkDevice                     device,
1873                                  uint32_t                     descriptorWriteCount,
1874                                  const VkWriteDescriptorSet * pDescriptorWrites,
1875                                  uint32_t                     descriptorCopyCount,
1876                                  const VkCopyDescriptorSet *  pDescriptorCopies ) const VULKAN_HPP_NOEXCEPT
1877     {
1878       return ::vkUpdateDescriptorSets( device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies );
1879     }
1880 
vkCreateFramebuffer(VkDevice device,const VkFramebufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFramebuffer * pFramebuffer) const1881     VkResult vkCreateFramebuffer( VkDevice                        device,
1882                                   const VkFramebufferCreateInfo * pCreateInfo,
1883                                   const VkAllocationCallbacks *   pAllocator,
1884                                   VkFramebuffer *                 pFramebuffer ) const VULKAN_HPP_NOEXCEPT
1885     {
1886       return ::vkCreateFramebuffer( device, pCreateInfo, pAllocator, pFramebuffer );
1887     }
1888 
vkDestroyFramebuffer(VkDevice device,VkFramebuffer framebuffer,const VkAllocationCallbacks * pAllocator) const1889     void vkDestroyFramebuffer( VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1890     {
1891       return ::vkDestroyFramebuffer( device, framebuffer, pAllocator );
1892     }
1893 
vkCreateRenderPass(VkDevice device,const VkRenderPassCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass) const1894     VkResult vkCreateRenderPass( VkDevice                       device,
1895                                  const VkRenderPassCreateInfo * pCreateInfo,
1896                                  const VkAllocationCallbacks *  pAllocator,
1897                                  VkRenderPass *                 pRenderPass ) const VULKAN_HPP_NOEXCEPT
1898     {
1899       return ::vkCreateRenderPass( device, pCreateInfo, pAllocator, pRenderPass );
1900     }
1901 
vkDestroyRenderPass(VkDevice device,VkRenderPass renderPass,const VkAllocationCallbacks * pAllocator) const1902     void vkDestroyRenderPass( VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1903     {
1904       return ::vkDestroyRenderPass( device, renderPass, pAllocator );
1905     }
1906 
vkGetRenderAreaGranularity(VkDevice device,VkRenderPass renderPass,VkExtent2D * pGranularity) const1907     void vkGetRenderAreaGranularity( VkDevice device, VkRenderPass renderPass, VkExtent2D * pGranularity ) const VULKAN_HPP_NOEXCEPT
1908     {
1909       return ::vkGetRenderAreaGranularity( device, renderPass, pGranularity );
1910     }
1911 
vkCreateCommandPool(VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool) const1912     VkResult vkCreateCommandPool( VkDevice                        device,
1913                                   const VkCommandPoolCreateInfo * pCreateInfo,
1914                                   const VkAllocationCallbacks *   pAllocator,
1915                                   VkCommandPool *                 pCommandPool ) const VULKAN_HPP_NOEXCEPT
1916     {
1917       return ::vkCreateCommandPool( device, pCreateInfo, pAllocator, pCommandPool );
1918     }
1919 
vkDestroyCommandPool(VkDevice device,VkCommandPool commandPool,const VkAllocationCallbacks * pAllocator) const1920     void vkDestroyCommandPool( VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1921     {
1922       return ::vkDestroyCommandPool( device, commandPool, pAllocator );
1923     }
1924 
vkResetCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags) const1925     VkResult vkResetCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT
1926     {
1927       return ::vkResetCommandPool( device, commandPool, flags );
1928     }
1929 
vkAllocateCommandBuffers(VkDevice device,const VkCommandBufferAllocateInfo * pAllocateInfo,VkCommandBuffer * pCommandBuffers) const1930     VkResult vkAllocateCommandBuffers( VkDevice                            device,
1931                                        const VkCommandBufferAllocateInfo * pAllocateInfo,
1932                                        VkCommandBuffer *                   pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
1933     {
1934       return ::vkAllocateCommandBuffers( device, pAllocateInfo, pCommandBuffers );
1935     }
1936 
vkFreeCommandBuffers(VkDevice device,VkCommandPool commandPool,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers) const1937     void vkFreeCommandBuffers( VkDevice                device,
1938                                VkCommandPool           commandPool,
1939                                uint32_t                commandBufferCount,
1940                                const VkCommandBuffer * pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
1941     {
1942       return ::vkFreeCommandBuffers( device, commandPool, commandBufferCount, pCommandBuffers );
1943     }
1944 
vkBeginCommandBuffer(VkCommandBuffer commandBuffer,const VkCommandBufferBeginInfo * pBeginInfo) const1945     VkResult vkBeginCommandBuffer( VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo * pBeginInfo ) const VULKAN_HPP_NOEXCEPT
1946     {
1947       return ::vkBeginCommandBuffer( commandBuffer, pBeginInfo );
1948     }
1949 
vkEndCommandBuffer(VkCommandBuffer commandBuffer) const1950     VkResult vkEndCommandBuffer( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1951     {
1952       return ::vkEndCommandBuffer( commandBuffer );
1953     }
1954 
vkResetCommandBuffer(VkCommandBuffer commandBuffer,VkCommandBufferResetFlags flags) const1955     VkResult vkResetCommandBuffer( VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags ) const VULKAN_HPP_NOEXCEPT
1956     {
1957       return ::vkResetCommandBuffer( commandBuffer, flags );
1958     }
1959 
vkCmdBindPipeline(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline) const1960     void vkCmdBindPipeline( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline ) const VULKAN_HPP_NOEXCEPT
1961     {
1962       return ::vkCmdBindPipeline( commandBuffer, pipelineBindPoint, pipeline );
1963     }
1964 
1965     void
vkCmdSetViewport(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewport * pViewports) const1966       vkCmdSetViewport( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport * pViewports ) const VULKAN_HPP_NOEXCEPT
1967     {
1968       return ::vkCmdSetViewport( commandBuffer, firstViewport, viewportCount, pViewports );
1969     }
1970 
vkCmdSetScissor(VkCommandBuffer commandBuffer,uint32_t firstScissor,uint32_t scissorCount,const VkRect2D * pScissors) const1971     void vkCmdSetScissor( VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D * pScissors ) const VULKAN_HPP_NOEXCEPT
1972     {
1973       return ::vkCmdSetScissor( commandBuffer, firstScissor, scissorCount, pScissors );
1974     }
1975 
vkCmdSetLineWidth(VkCommandBuffer commandBuffer,float lineWidth) const1976     void vkCmdSetLineWidth( VkCommandBuffer commandBuffer, float lineWidth ) const VULKAN_HPP_NOEXCEPT
1977     {
1978       return ::vkCmdSetLineWidth( commandBuffer, lineWidth );
1979     }
1980 
vkCmdSetDepthBias(VkCommandBuffer commandBuffer,float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor) const1981     void vkCmdSetDepthBias( VkCommandBuffer commandBuffer,
1982                             float           depthBiasConstantFactor,
1983                             float           depthBiasClamp,
1984                             float           depthBiasSlopeFactor ) const VULKAN_HPP_NOEXCEPT
1985     {
1986       return ::vkCmdSetDepthBias( commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
1987     }
1988 
vkCmdSetBlendConstants(VkCommandBuffer commandBuffer,const float blendConstants[4]) const1989     void vkCmdSetBlendConstants( VkCommandBuffer commandBuffer, const float blendConstants[4] ) const VULKAN_HPP_NOEXCEPT
1990     {
1991       return ::vkCmdSetBlendConstants( commandBuffer, blendConstants );
1992     }
1993 
vkCmdSetDepthBounds(VkCommandBuffer commandBuffer,float minDepthBounds,float maxDepthBounds) const1994     void vkCmdSetDepthBounds( VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds ) const VULKAN_HPP_NOEXCEPT
1995     {
1996       return ::vkCmdSetDepthBounds( commandBuffer, minDepthBounds, maxDepthBounds );
1997     }
1998 
vkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t compareMask) const1999     void vkCmdSetStencilCompareMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask ) const VULKAN_HPP_NOEXCEPT
2000     {
2001       return ::vkCmdSetStencilCompareMask( commandBuffer, faceMask, compareMask );
2002     }
2003 
vkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t writeMask) const2004     void vkCmdSetStencilWriteMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask ) const VULKAN_HPP_NOEXCEPT
2005     {
2006       return ::vkCmdSetStencilWriteMask( commandBuffer, faceMask, writeMask );
2007     }
2008 
vkCmdSetStencilReference(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t reference) const2009     void vkCmdSetStencilReference( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference ) const VULKAN_HPP_NOEXCEPT
2010     {
2011       return ::vkCmdSetStencilReference( commandBuffer, faceMask, reference );
2012     }
2013 
vkCmdBindDescriptorSets(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t firstSet,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets,uint32_t dynamicOffsetCount,const uint32_t * pDynamicOffsets) const2014     void vkCmdBindDescriptorSets( VkCommandBuffer         commandBuffer,
2015                                   VkPipelineBindPoint     pipelineBindPoint,
2016                                   VkPipelineLayout        layout,
2017                                   uint32_t                firstSet,
2018                                   uint32_t                descriptorSetCount,
2019                                   const VkDescriptorSet * pDescriptorSets,
2020                                   uint32_t                dynamicOffsetCount,
2021                                   const uint32_t *        pDynamicOffsets ) const VULKAN_HPP_NOEXCEPT
2022     {
2023       return ::vkCmdBindDescriptorSets(
2024         commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets );
2025     }
2026 
vkCmdBindIndexBuffer(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkIndexType indexType) const2027     void vkCmdBindIndexBuffer( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType ) const VULKAN_HPP_NOEXCEPT
2028     {
2029       return ::vkCmdBindIndexBuffer( commandBuffer, buffer, offset, indexType );
2030     }
2031 
vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets) const2032     void vkCmdBindVertexBuffers( VkCommandBuffer      commandBuffer,
2033                                  uint32_t             firstBinding,
2034                                  uint32_t             bindingCount,
2035                                  const VkBuffer *     pBuffers,
2036                                  const VkDeviceSize * pOffsets ) const VULKAN_HPP_NOEXCEPT
2037     {
2038       return ::vkCmdBindVertexBuffers( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets );
2039     }
2040 
vkCmdDraw(VkCommandBuffer commandBuffer,uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance) const2041     void vkCmdDraw( VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance ) const
2042       VULKAN_HPP_NOEXCEPT
2043     {
2044       return ::vkCmdDraw( commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
2045     }
2046 
vkCmdDrawIndexed(VkCommandBuffer commandBuffer,uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance) const2047     void vkCmdDrawIndexed( VkCommandBuffer commandBuffer,
2048                            uint32_t        indexCount,
2049                            uint32_t        instanceCount,
2050                            uint32_t        firstIndex,
2051                            int32_t         vertexOffset,
2052                            uint32_t        firstInstance ) const VULKAN_HPP_NOEXCEPT
2053     {
2054       return ::vkCmdDrawIndexed( commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
2055     }
2056 
vkCmdDrawIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const2057     void vkCmdDrawIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
2058     {
2059       return ::vkCmdDrawIndirect( commandBuffer, buffer, offset, drawCount, stride );
2060     }
2061 
vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const2062     void vkCmdDrawIndexedIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const
2063       VULKAN_HPP_NOEXCEPT
2064     {
2065       return ::vkCmdDrawIndexedIndirect( commandBuffer, buffer, offset, drawCount, stride );
2066     }
2067 
vkCmdDispatch(VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const2068     void vkCmdDispatch( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT
2069     {
2070       return ::vkCmdDispatch( commandBuffer, groupCountX, groupCountY, groupCountZ );
2071     }
2072 
vkCmdDispatchIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset) const2073     void vkCmdDispatchIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset ) const VULKAN_HPP_NOEXCEPT
2074     {
2075       return ::vkCmdDispatchIndirect( commandBuffer, buffer, offset );
2076     }
2077 
vkCmdCopyBuffer(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferCopy * pRegions) const2078     void vkCmdCopyBuffer( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy * pRegions ) const
2079       VULKAN_HPP_NOEXCEPT
2080     {
2081       return ::vkCmdCopyBuffer( commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions );
2082     }
2083 
vkCmdCopyImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageCopy * pRegions) const2084     void vkCmdCopyImage( VkCommandBuffer     commandBuffer,
2085                          VkImage             srcImage,
2086                          VkImageLayout       srcImageLayout,
2087                          VkImage             dstImage,
2088                          VkImageLayout       dstImageLayout,
2089                          uint32_t            regionCount,
2090                          const VkImageCopy * pRegions ) const VULKAN_HPP_NOEXCEPT
2091     {
2092       return ::vkCmdCopyImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
2093     }
2094 
vkCmdBlitImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageBlit * pRegions,VkFilter filter) const2095     void vkCmdBlitImage( VkCommandBuffer     commandBuffer,
2096                          VkImage             srcImage,
2097                          VkImageLayout       srcImageLayout,
2098                          VkImage             dstImage,
2099                          VkImageLayout       dstImageLayout,
2100                          uint32_t            regionCount,
2101                          const VkImageBlit * pRegions,
2102                          VkFilter            filter ) const VULKAN_HPP_NOEXCEPT
2103     {
2104       return ::vkCmdBlitImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter );
2105     }
2106 
vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkBufferImageCopy * pRegions) const2107     void vkCmdCopyBufferToImage( VkCommandBuffer           commandBuffer,
2108                                  VkBuffer                  srcBuffer,
2109                                  VkImage                   dstImage,
2110                                  VkImageLayout             dstImageLayout,
2111                                  uint32_t                  regionCount,
2112                                  const VkBufferImageCopy * pRegions ) const VULKAN_HPP_NOEXCEPT
2113     {
2114       return ::vkCmdCopyBufferToImage( commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions );
2115     }
2116 
vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferImageCopy * pRegions) const2117     void vkCmdCopyImageToBuffer( VkCommandBuffer           commandBuffer,
2118                                  VkImage                   srcImage,
2119                                  VkImageLayout             srcImageLayout,
2120                                  VkBuffer                  dstBuffer,
2121                                  uint32_t                  regionCount,
2122                                  const VkBufferImageCopy * pRegions ) const VULKAN_HPP_NOEXCEPT
2123     {
2124       return ::vkCmdCopyImageToBuffer( commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions );
2125     }
2126 
vkCmdUpdateBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize dataSize,const void * pData) const2127     void vkCmdUpdateBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void * pData ) const
2128       VULKAN_HPP_NOEXCEPT
2129     {
2130       return ::vkCmdUpdateBuffer( commandBuffer, dstBuffer, dstOffset, dataSize, pData );
2131     }
2132 
2133     void
vkCmdFillBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize size,uint32_t data) const2134       vkCmdFillBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data ) const VULKAN_HPP_NOEXCEPT
2135     {
2136       return ::vkCmdFillBuffer( commandBuffer, dstBuffer, dstOffset, size, data );
2137     }
2138 
vkCmdClearColorImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearColorValue * pColor,uint32_t rangeCount,const VkImageSubresourceRange * pRanges) const2139     void vkCmdClearColorImage( VkCommandBuffer                 commandBuffer,
2140                                VkImage                         image,
2141                                VkImageLayout                   imageLayout,
2142                                const VkClearColorValue *       pColor,
2143                                uint32_t                        rangeCount,
2144                                const VkImageSubresourceRange * pRanges ) const VULKAN_HPP_NOEXCEPT
2145     {
2146       return ::vkCmdClearColorImage( commandBuffer, image, imageLayout, pColor, rangeCount, pRanges );
2147     }
2148 
vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearDepthStencilValue * pDepthStencil,uint32_t rangeCount,const VkImageSubresourceRange * pRanges) const2149     void vkCmdClearDepthStencilImage( VkCommandBuffer                  commandBuffer,
2150                                       VkImage                          image,
2151                                       VkImageLayout                    imageLayout,
2152                                       const VkClearDepthStencilValue * pDepthStencil,
2153                                       uint32_t                         rangeCount,
2154                                       const VkImageSubresourceRange *  pRanges ) const VULKAN_HPP_NOEXCEPT
2155     {
2156       return ::vkCmdClearDepthStencilImage( commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges );
2157     }
2158 
vkCmdClearAttachments(VkCommandBuffer commandBuffer,uint32_t attachmentCount,const VkClearAttachment * pAttachments,uint32_t rectCount,const VkClearRect * pRects) const2159     void vkCmdClearAttachments( VkCommandBuffer           commandBuffer,
2160                                 uint32_t                  attachmentCount,
2161                                 const VkClearAttachment * pAttachments,
2162                                 uint32_t                  rectCount,
2163                                 const VkClearRect *       pRects ) const VULKAN_HPP_NOEXCEPT
2164     {
2165       return ::vkCmdClearAttachments( commandBuffer, attachmentCount, pAttachments, rectCount, pRects );
2166     }
2167 
vkCmdResolveImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageResolve * pRegions) const2168     void vkCmdResolveImage( VkCommandBuffer        commandBuffer,
2169                             VkImage                srcImage,
2170                             VkImageLayout          srcImageLayout,
2171                             VkImage                dstImage,
2172                             VkImageLayout          dstImageLayout,
2173                             uint32_t               regionCount,
2174                             const VkImageResolve * pRegions ) const VULKAN_HPP_NOEXCEPT
2175     {
2176       return ::vkCmdResolveImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
2177     }
2178 
vkCmdSetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask) const2179     void vkCmdSetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT
2180     {
2181       return ::vkCmdSetEvent( commandBuffer, event, stageMask );
2182     }
2183 
vkCmdResetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask) const2184     void vkCmdResetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT
2185     {
2186       return ::vkCmdResetEvent( commandBuffer, event, stageMask );
2187     }
2188 
vkCmdWaitEvents(VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,VkPipelineStageFlags srcStageMask,VkPipelineStageFlags dstStageMask,uint32_t memoryBarrierCount,const VkMemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const VkBufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const VkImageMemoryBarrier * pImageMemoryBarriers) const2189     void vkCmdWaitEvents( VkCommandBuffer               commandBuffer,
2190                           uint32_t                      eventCount,
2191                           const VkEvent *               pEvents,
2192                           VkPipelineStageFlags          srcStageMask,
2193                           VkPipelineStageFlags          dstStageMask,
2194                           uint32_t                      memoryBarrierCount,
2195                           const VkMemoryBarrier *       pMemoryBarriers,
2196                           uint32_t                      bufferMemoryBarrierCount,
2197                           const VkBufferMemoryBarrier * pBufferMemoryBarriers,
2198                           uint32_t                      imageMemoryBarrierCount,
2199                           const VkImageMemoryBarrier *  pImageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT
2200     {
2201       return ::vkCmdWaitEvents( commandBuffer,
2202                                 eventCount,
2203                                 pEvents,
2204                                 srcStageMask,
2205                                 dstStageMask,
2206                                 memoryBarrierCount,
2207                                 pMemoryBarriers,
2208                                 bufferMemoryBarrierCount,
2209                                 pBufferMemoryBarriers,
2210                                 imageMemoryBarrierCount,
2211                                 pImageMemoryBarriers );
2212     }
2213 
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) const2214     void vkCmdPipelineBarrier( VkCommandBuffer               commandBuffer,
2215                                VkPipelineStageFlags          srcStageMask,
2216                                VkPipelineStageFlags          dstStageMask,
2217                                VkDependencyFlags             dependencyFlags,
2218                                uint32_t                      memoryBarrierCount,
2219                                const VkMemoryBarrier *       pMemoryBarriers,
2220                                uint32_t                      bufferMemoryBarrierCount,
2221                                const VkBufferMemoryBarrier * pBufferMemoryBarriers,
2222                                uint32_t                      imageMemoryBarrierCount,
2223                                const VkImageMemoryBarrier *  pImageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT
2224     {
2225       return ::vkCmdPipelineBarrier( commandBuffer,
2226                                      srcStageMask,
2227                                      dstStageMask,
2228                                      dependencyFlags,
2229                                      memoryBarrierCount,
2230                                      pMemoryBarriers,
2231                                      bufferMemoryBarrierCount,
2232                                      pBufferMemoryBarriers,
2233                                      imageMemoryBarrierCount,
2234                                      pImageMemoryBarriers );
2235     }
2236 
vkCmdBeginQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags) const2237     void vkCmdBeginQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags ) const VULKAN_HPP_NOEXCEPT
2238     {
2239       return ::vkCmdBeginQuery( commandBuffer, queryPool, query, flags );
2240     }
2241 
vkCmdEndQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query) const2242     void vkCmdEndQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT
2243     {
2244       return ::vkCmdEndQuery( commandBuffer, queryPool, query );
2245     }
2246 
vkCmdResetQueryPool(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const2247     void vkCmdResetQueryPool( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
2248     {
2249       return ::vkCmdResetQueryPool( commandBuffer, queryPool, firstQuery, queryCount );
2250     }
2251 
vkCmdWriteTimestamp(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkQueryPool queryPool,uint32_t query) const2252     void vkCmdWriteTimestamp( VkCommandBuffer         commandBuffer,
2253                               VkPipelineStageFlagBits pipelineStage,
2254                               VkQueryPool             queryPool,
2255                               uint32_t                query ) const VULKAN_HPP_NOEXCEPT
2256     {
2257       return ::vkCmdWriteTimestamp( commandBuffer, pipelineStage, queryPool, query );
2258     }
2259 
vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize stride,VkQueryResultFlags flags) const2260     void vkCmdCopyQueryPoolResults( VkCommandBuffer    commandBuffer,
2261                                     VkQueryPool        queryPool,
2262                                     uint32_t           firstQuery,
2263                                     uint32_t           queryCount,
2264                                     VkBuffer           dstBuffer,
2265                                     VkDeviceSize       dstOffset,
2266                                     VkDeviceSize       stride,
2267                                     VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT
2268     {
2269       return ::vkCmdCopyQueryPoolResults( commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags );
2270     }
2271 
vkCmdPushConstants(VkCommandBuffer commandBuffer,VkPipelineLayout layout,VkShaderStageFlags stageFlags,uint32_t offset,uint32_t size,const void * pValues) const2272     void vkCmdPushConstants( VkCommandBuffer    commandBuffer,
2273                              VkPipelineLayout   layout,
2274                              VkShaderStageFlags stageFlags,
2275                              uint32_t           offset,
2276                              uint32_t           size,
2277                              const void *       pValues ) const VULKAN_HPP_NOEXCEPT
2278     {
2279       return ::vkCmdPushConstants( commandBuffer, layout, stageFlags, offset, size, pValues );
2280     }
2281 
vkCmdBeginRenderPass(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,VkSubpassContents contents) const2282     void vkCmdBeginRenderPass( VkCommandBuffer               commandBuffer,
2283                                const VkRenderPassBeginInfo * pRenderPassBegin,
2284                                VkSubpassContents             contents ) const VULKAN_HPP_NOEXCEPT
2285     {
2286       return ::vkCmdBeginRenderPass( commandBuffer, pRenderPassBegin, contents );
2287     }
2288 
vkCmdNextSubpass(VkCommandBuffer commandBuffer,VkSubpassContents contents) const2289     void vkCmdNextSubpass( VkCommandBuffer commandBuffer, VkSubpassContents contents ) const VULKAN_HPP_NOEXCEPT
2290     {
2291       return ::vkCmdNextSubpass( commandBuffer, contents );
2292     }
2293 
vkCmdEndRenderPass(VkCommandBuffer commandBuffer) const2294     void vkCmdEndRenderPass( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
2295     {
2296       return ::vkCmdEndRenderPass( commandBuffer );
2297     }
2298 
vkCmdExecuteCommands(VkCommandBuffer commandBuffer,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers) const2299     void vkCmdExecuteCommands( VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer * pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
2300     {
2301       return ::vkCmdExecuteCommands( commandBuffer, commandBufferCount, pCommandBuffers );
2302     }
2303 
2304     //=== VK_VERSION_1_1 ===
2305 
vkEnumerateInstanceVersion(uint32_t * pApiVersion) const2306     VkResult vkEnumerateInstanceVersion( uint32_t * pApiVersion ) const VULKAN_HPP_NOEXCEPT
2307     {
2308       return ::vkEnumerateInstanceVersion( pApiVersion );
2309     }
2310 
vkBindBufferMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos) const2311     VkResult vkBindBufferMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT
2312     {
2313       return ::vkBindBufferMemory2( device, bindInfoCount, pBindInfos );
2314     }
2315 
vkBindImageMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos) const2316     VkResult vkBindImageMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT
2317     {
2318       return ::vkBindImageMemory2( device, bindInfoCount, pBindInfos );
2319     }
2320 
vkGetDeviceGroupPeerMemoryFeatures(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures) const2321     void vkGetDeviceGroupPeerMemoryFeatures( VkDevice                   device,
2322                                              uint32_t                   heapIndex,
2323                                              uint32_t                   localDeviceIndex,
2324                                              uint32_t                   remoteDeviceIndex,
2325                                              VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT
2326     {
2327       return ::vkGetDeviceGroupPeerMemoryFeatures( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures );
2328     }
2329 
vkCmdSetDeviceMask(VkCommandBuffer commandBuffer,uint32_t deviceMask) const2330     void vkCmdSetDeviceMask( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT
2331     {
2332       return ::vkCmdSetDeviceMask( commandBuffer, deviceMask );
2333     }
2334 
vkCmdDispatchBase(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const2335     void vkCmdDispatchBase( VkCommandBuffer commandBuffer,
2336                             uint32_t        baseGroupX,
2337                             uint32_t        baseGroupY,
2338                             uint32_t        baseGroupZ,
2339                             uint32_t        groupCountX,
2340                             uint32_t        groupCountY,
2341                             uint32_t        groupCountZ ) const VULKAN_HPP_NOEXCEPT
2342     {
2343       return ::vkCmdDispatchBase( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
2344     }
2345 
vkEnumeratePhysicalDeviceGroups(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties) const2346     VkResult vkEnumeratePhysicalDeviceGroups( VkInstance                        instance,
2347                                               uint32_t *                        pPhysicalDeviceGroupCount,
2348                                               VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT
2349     {
2350       return ::vkEnumeratePhysicalDeviceGroups( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties );
2351     }
2352 
vkGetImageMemoryRequirements2(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2353     void vkGetImageMemoryRequirements2( VkDevice                               device,
2354                                         const VkImageMemoryRequirementsInfo2 * pInfo,
2355                                         VkMemoryRequirements2 *                pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2356     {
2357       return ::vkGetImageMemoryRequirements2( device, pInfo, pMemoryRequirements );
2358     }
2359 
vkGetBufferMemoryRequirements2(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2360     void vkGetBufferMemoryRequirements2( VkDevice                                device,
2361                                          const VkBufferMemoryRequirementsInfo2 * pInfo,
2362                                          VkMemoryRequirements2 *                 pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2363     {
2364       return ::vkGetBufferMemoryRequirements2( device, pInfo, pMemoryRequirements );
2365     }
2366 
vkGetImageSparseMemoryRequirements2(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements) const2367     void vkGetImageSparseMemoryRequirements2( VkDevice                                     device,
2368                                               const VkImageSparseMemoryRequirementsInfo2 * pInfo,
2369                                               uint32_t *                                   pSparseMemoryRequirementCount,
2370                                               VkSparseImageMemoryRequirements2 *           pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2371     {
2372       return ::vkGetImageSparseMemoryRequirements2( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
2373     }
2374 
vkGetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures) const2375     void vkGetPhysicalDeviceFeatures2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2 * pFeatures ) const VULKAN_HPP_NOEXCEPT
2376     {
2377       return ::vkGetPhysicalDeviceFeatures2( physicalDevice, pFeatures );
2378     }
2379 
vkGetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties) const2380     void vkGetPhysicalDeviceProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2 * pProperties ) const VULKAN_HPP_NOEXCEPT
2381     {
2382       return ::vkGetPhysicalDeviceProperties2( physicalDevice, pProperties );
2383     }
2384 
vkGetPhysicalDeviceFormatProperties2(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties) const2385     void vkGetPhysicalDeviceFormatProperties2( VkPhysicalDevice      physicalDevice,
2386                                                VkFormat              format,
2387                                                VkFormatProperties2 * pFormatProperties ) const VULKAN_HPP_NOEXCEPT
2388     {
2389       return ::vkGetPhysicalDeviceFormatProperties2( physicalDevice, format, pFormatProperties );
2390     }
2391 
vkGetPhysicalDeviceImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties) const2392     VkResult vkGetPhysicalDeviceImageFormatProperties2( VkPhysicalDevice                         physicalDevice,
2393                                                         const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,
2394                                                         VkImageFormatProperties2 *               pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
2395     {
2396       return ::vkGetPhysicalDeviceImageFormatProperties2( physicalDevice, pImageFormatInfo, pImageFormatProperties );
2397     }
2398 
vkGetPhysicalDeviceQueueFamilyProperties2(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties) const2399     void vkGetPhysicalDeviceQueueFamilyProperties2( VkPhysicalDevice           physicalDevice,
2400                                                     uint32_t *                 pQueueFamilyPropertyCount,
2401                                                     VkQueueFamilyProperties2 * pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
2402     {
2403       return ::vkGetPhysicalDeviceQueueFamilyProperties2( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
2404     }
2405 
vkGetPhysicalDeviceMemoryProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties) const2406     void vkGetPhysicalDeviceMemoryProperties2( VkPhysicalDevice                    physicalDevice,
2407                                                VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
2408     {
2409       return ::vkGetPhysicalDeviceMemoryProperties2( physicalDevice, pMemoryProperties );
2410     }
2411 
vkGetPhysicalDeviceSparseImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties) const2412     void vkGetPhysicalDeviceSparseImageFormatProperties2( VkPhysicalDevice                               physicalDevice,
2413                                                           const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,
2414                                                           uint32_t *                                     pPropertyCount,
2415                                                           VkSparseImageFormatProperties2 *               pProperties ) const VULKAN_HPP_NOEXCEPT
2416     {
2417       return ::vkGetPhysicalDeviceSparseImageFormatProperties2( physicalDevice, pFormatInfo, pPropertyCount, pProperties );
2418     }
2419 
vkTrimCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags) const2420     void vkTrimCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT
2421     {
2422       return ::vkTrimCommandPool( device, commandPool, flags );
2423     }
2424 
vkGetDeviceQueue2(VkDevice device,const VkDeviceQueueInfo2 * pQueueInfo,VkQueue * pQueue) const2425     void vkGetDeviceQueue2( VkDevice device, const VkDeviceQueueInfo2 * pQueueInfo, VkQueue * pQueue ) const VULKAN_HPP_NOEXCEPT
2426     {
2427       return ::vkGetDeviceQueue2( device, pQueueInfo, pQueue );
2428     }
2429 
vkCreateSamplerYcbcrConversion(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion) const2430     VkResult vkCreateSamplerYcbcrConversion( VkDevice                                   device,
2431                                              const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,
2432                                              const VkAllocationCallbacks *              pAllocator,
2433                                              VkSamplerYcbcrConversion *                 pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT
2434     {
2435       return ::vkCreateSamplerYcbcrConversion( device, pCreateInfo, pAllocator, pYcbcrConversion );
2436     }
2437 
vkDestroySamplerYcbcrConversion(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator) const2438     void vkDestroySamplerYcbcrConversion( VkDevice                      device,
2439                                           VkSamplerYcbcrConversion      ycbcrConversion,
2440                                           const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
2441     {
2442       return ::vkDestroySamplerYcbcrConversion( device, ycbcrConversion, pAllocator );
2443     }
2444 
vkCreateDescriptorUpdateTemplate(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate) const2445     VkResult vkCreateDescriptorUpdateTemplate( VkDevice                                     device,
2446                                                const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,
2447                                                const VkAllocationCallbacks *                pAllocator,
2448                                                VkDescriptorUpdateTemplate *                 pDescriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT
2449     {
2450       return ::vkCreateDescriptorUpdateTemplate( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate );
2451     }
2452 
vkDestroyDescriptorUpdateTemplate(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator) const2453     void vkDestroyDescriptorUpdateTemplate( VkDevice                      device,
2454                                             VkDescriptorUpdateTemplate    descriptorUpdateTemplate,
2455                                             const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
2456     {
2457       return ::vkDestroyDescriptorUpdateTemplate( device, descriptorUpdateTemplate, pAllocator );
2458     }
2459 
vkUpdateDescriptorSetWithTemplate(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData) const2460     void vkUpdateDescriptorSetWithTemplate( VkDevice                   device,
2461                                             VkDescriptorSet            descriptorSet,
2462                                             VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2463                                             const void *               pData ) const VULKAN_HPP_NOEXCEPT
2464     {
2465       return ::vkUpdateDescriptorSetWithTemplate( device, descriptorSet, descriptorUpdateTemplate, pData );
2466     }
2467 
vkGetPhysicalDeviceExternalBufferProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties) const2468     void vkGetPhysicalDeviceExternalBufferProperties( VkPhysicalDevice                           physicalDevice,
2469                                                       const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,
2470                                                       VkExternalBufferProperties *               pExternalBufferProperties ) const VULKAN_HPP_NOEXCEPT
2471     {
2472       return ::vkGetPhysicalDeviceExternalBufferProperties( physicalDevice, pExternalBufferInfo, pExternalBufferProperties );
2473     }
2474 
vkGetPhysicalDeviceExternalFenceProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties) const2475     void vkGetPhysicalDeviceExternalFenceProperties( VkPhysicalDevice                          physicalDevice,
2476                                                      const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,
2477                                                      VkExternalFenceProperties *               pExternalFenceProperties ) const VULKAN_HPP_NOEXCEPT
2478     {
2479       return ::vkGetPhysicalDeviceExternalFenceProperties( physicalDevice, pExternalFenceInfo, pExternalFenceProperties );
2480     }
2481 
vkGetPhysicalDeviceExternalSemaphoreProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties) const2482     void vkGetPhysicalDeviceExternalSemaphoreProperties( VkPhysicalDevice                              physicalDevice,
2483                                                          const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,
2484                                                          VkExternalSemaphoreProperties *               pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT
2485     {
2486       return ::vkGetPhysicalDeviceExternalSemaphoreProperties( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties );
2487     }
2488 
vkGetDescriptorSetLayoutSupport(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport) const2489     void vkGetDescriptorSetLayoutSupport( VkDevice                                device,
2490                                           const VkDescriptorSetLayoutCreateInfo * pCreateInfo,
2491                                           VkDescriptorSetLayoutSupport *          pSupport ) const VULKAN_HPP_NOEXCEPT
2492     {
2493       return ::vkGetDescriptorSetLayoutSupport( device, pCreateInfo, pSupport );
2494     }
2495 
2496     //=== VK_VERSION_1_2 ===
2497 
vkCmdDrawIndirectCount(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const2498     void vkCmdDrawIndirectCount( VkCommandBuffer commandBuffer,
2499                                  VkBuffer        buffer,
2500                                  VkDeviceSize    offset,
2501                                  VkBuffer        countBuffer,
2502                                  VkDeviceSize    countBufferOffset,
2503                                  uint32_t        maxDrawCount,
2504                                  uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
2505     {
2506       return ::vkCmdDrawIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
2507     }
2508 
vkCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const2509     void vkCmdDrawIndexedIndirectCount( VkCommandBuffer commandBuffer,
2510                                         VkBuffer        buffer,
2511                                         VkDeviceSize    offset,
2512                                         VkBuffer        countBuffer,
2513                                         VkDeviceSize    countBufferOffset,
2514                                         uint32_t        maxDrawCount,
2515                                         uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
2516     {
2517       return ::vkCmdDrawIndexedIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
2518     }
2519 
vkCreateRenderPass2(VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass) const2520     VkResult vkCreateRenderPass2( VkDevice                        device,
2521                                   const VkRenderPassCreateInfo2 * pCreateInfo,
2522                                   const VkAllocationCallbacks *   pAllocator,
2523                                   VkRenderPass *                  pRenderPass ) const VULKAN_HPP_NOEXCEPT
2524     {
2525       return ::vkCreateRenderPass2( device, pCreateInfo, pAllocator, pRenderPass );
2526     }
2527 
vkCmdBeginRenderPass2(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo) const2528     void vkCmdBeginRenderPass2( VkCommandBuffer               commandBuffer,
2529                                 const VkRenderPassBeginInfo * pRenderPassBegin,
2530                                 const VkSubpassBeginInfo *    pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT
2531     {
2532       return ::vkCmdBeginRenderPass2( commandBuffer, pRenderPassBegin, pSubpassBeginInfo );
2533     }
2534 
vkCmdNextSubpass2(VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo) const2535     void vkCmdNextSubpass2( VkCommandBuffer            commandBuffer,
2536                             const VkSubpassBeginInfo * pSubpassBeginInfo,
2537                             const VkSubpassEndInfo *   pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
2538     {
2539       return ::vkCmdNextSubpass2( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo );
2540     }
2541 
vkCmdEndRenderPass2(VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo) const2542     void vkCmdEndRenderPass2( VkCommandBuffer commandBuffer, const VkSubpassEndInfo * pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
2543     {
2544       return ::vkCmdEndRenderPass2( commandBuffer, pSubpassEndInfo );
2545     }
2546 
vkResetQueryPool(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const2547     void vkResetQueryPool( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
2548     {
2549       return ::vkResetQueryPool( device, queryPool, firstQuery, queryCount );
2550     }
2551 
vkGetSemaphoreCounterValue(VkDevice device,VkSemaphore semaphore,uint64_t * pValue) const2552     VkResult vkGetSemaphoreCounterValue( VkDevice device, VkSemaphore semaphore, uint64_t * pValue ) const VULKAN_HPP_NOEXCEPT
2553     {
2554       return ::vkGetSemaphoreCounterValue( device, semaphore, pValue );
2555     }
2556 
vkWaitSemaphores(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout) const2557     VkResult vkWaitSemaphores( VkDevice device, const VkSemaphoreWaitInfo * pWaitInfo, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
2558     {
2559       return ::vkWaitSemaphores( device, pWaitInfo, timeout );
2560     }
2561 
vkSignalSemaphore(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo) const2562     VkResult vkSignalSemaphore( VkDevice device, const VkSemaphoreSignalInfo * pSignalInfo ) const VULKAN_HPP_NOEXCEPT
2563     {
2564       return ::vkSignalSemaphore( device, pSignalInfo );
2565     }
2566 
vkGetBufferDeviceAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2567     VkDeviceAddress vkGetBufferDeviceAddress( VkDevice device, const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
2568     {
2569       return ::vkGetBufferDeviceAddress( device, pInfo );
2570     }
2571 
vkGetBufferOpaqueCaptureAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2572     uint64_t vkGetBufferOpaqueCaptureAddress( VkDevice device, const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
2573     {
2574       return ::vkGetBufferOpaqueCaptureAddress( device, pInfo );
2575     }
2576 
vkGetDeviceMemoryOpaqueCaptureAddress(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo) const2577     uint64_t vkGetDeviceMemoryOpaqueCaptureAddress( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
2578     {
2579       return ::vkGetDeviceMemoryOpaqueCaptureAddress( device, pInfo );
2580     }
2581 
2582     //=== VK_VERSION_1_3 ===
2583 
vkGetPhysicalDeviceToolProperties(VkPhysicalDevice physicalDevice,uint32_t * pToolCount,VkPhysicalDeviceToolProperties * pToolProperties) const2584     VkResult vkGetPhysicalDeviceToolProperties( VkPhysicalDevice                 physicalDevice,
2585                                                 uint32_t *                       pToolCount,
2586                                                 VkPhysicalDeviceToolProperties * pToolProperties ) const VULKAN_HPP_NOEXCEPT
2587     {
2588       return ::vkGetPhysicalDeviceToolProperties( physicalDevice, pToolCount, pToolProperties );
2589     }
2590 
vkCreatePrivateDataSlot(VkDevice device,const VkPrivateDataSlotCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPrivateDataSlot * pPrivateDataSlot) const2591     VkResult vkCreatePrivateDataSlot( VkDevice                            device,
2592                                       const VkPrivateDataSlotCreateInfo * pCreateInfo,
2593                                       const VkAllocationCallbacks *       pAllocator,
2594                                       VkPrivateDataSlot *                 pPrivateDataSlot ) const VULKAN_HPP_NOEXCEPT
2595     {
2596       return ::vkCreatePrivateDataSlot( device, pCreateInfo, pAllocator, pPrivateDataSlot );
2597     }
2598 
vkDestroyPrivateDataSlot(VkDevice device,VkPrivateDataSlot privateDataSlot,const VkAllocationCallbacks * pAllocator) const2599     void vkDestroyPrivateDataSlot( VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
2600     {
2601       return ::vkDestroyPrivateDataSlot( device, privateDataSlot, pAllocator );
2602     }
2603 
vkSetPrivateData(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t data) const2604     VkResult vkSetPrivateData( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data ) const
2605       VULKAN_HPP_NOEXCEPT
2606     {
2607       return ::vkSetPrivateData( device, objectType, objectHandle, privateDataSlot, data );
2608     }
2609 
vkGetPrivateData(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t * pData) const2610     void vkGetPrivateData( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t * pData ) const
2611       VULKAN_HPP_NOEXCEPT
2612     {
2613       return ::vkGetPrivateData( device, objectType, objectHandle, privateDataSlot, pData );
2614     }
2615 
vkCmdSetEvent2(VkCommandBuffer commandBuffer,VkEvent event,const VkDependencyInfo * pDependencyInfo) const2616     void vkCmdSetEvent2( VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo * pDependencyInfo ) const VULKAN_HPP_NOEXCEPT
2617     {
2618       return ::vkCmdSetEvent2( commandBuffer, event, pDependencyInfo );
2619     }
2620 
vkCmdResetEvent2(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags2 stageMask) const2621     void vkCmdResetEvent2( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask ) const VULKAN_HPP_NOEXCEPT
2622     {
2623       return ::vkCmdResetEvent2( commandBuffer, event, stageMask );
2624     }
2625 
vkCmdWaitEvents2(VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,const VkDependencyInfo * pDependencyInfos) const2626     void vkCmdWaitEvents2( VkCommandBuffer          commandBuffer,
2627                            uint32_t                 eventCount,
2628                            const VkEvent *          pEvents,
2629                            const VkDependencyInfo * pDependencyInfos ) const VULKAN_HPP_NOEXCEPT
2630     {
2631       return ::vkCmdWaitEvents2( commandBuffer, eventCount, pEvents, pDependencyInfos );
2632     }
2633 
vkCmdPipelineBarrier2(VkCommandBuffer commandBuffer,const VkDependencyInfo * pDependencyInfo) const2634     void vkCmdPipelineBarrier2( VkCommandBuffer commandBuffer, const VkDependencyInfo * pDependencyInfo ) const VULKAN_HPP_NOEXCEPT
2635     {
2636       return ::vkCmdPipelineBarrier2( commandBuffer, pDependencyInfo );
2637     }
2638 
vkCmdWriteTimestamp2(VkCommandBuffer commandBuffer,VkPipelineStageFlags2 stage,VkQueryPool queryPool,uint32_t query) const2639     void vkCmdWriteTimestamp2( VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT
2640     {
2641       return ::vkCmdWriteTimestamp2( commandBuffer, stage, queryPool, query );
2642     }
2643 
vkQueueSubmit2(VkQueue queue,uint32_t submitCount,const VkSubmitInfo2 * pSubmits,VkFence fence) const2644     VkResult vkQueueSubmit2( VkQueue queue, uint32_t submitCount, const VkSubmitInfo2 * pSubmits, VkFence fence ) const VULKAN_HPP_NOEXCEPT
2645     {
2646       return ::vkQueueSubmit2( queue, submitCount, pSubmits, fence );
2647     }
2648 
vkCmdCopyBuffer2(VkCommandBuffer commandBuffer,const VkCopyBufferInfo2 * pCopyBufferInfo) const2649     void vkCmdCopyBuffer2( VkCommandBuffer commandBuffer, const VkCopyBufferInfo2 * pCopyBufferInfo ) const VULKAN_HPP_NOEXCEPT
2650     {
2651       return ::vkCmdCopyBuffer2( commandBuffer, pCopyBufferInfo );
2652     }
2653 
vkCmdCopyImage2(VkCommandBuffer commandBuffer,const VkCopyImageInfo2 * pCopyImageInfo) const2654     void vkCmdCopyImage2( VkCommandBuffer commandBuffer, const VkCopyImageInfo2 * pCopyImageInfo ) const VULKAN_HPP_NOEXCEPT
2655     {
2656       return ::vkCmdCopyImage2( commandBuffer, pCopyImageInfo );
2657     }
2658 
vkCmdCopyBufferToImage2(VkCommandBuffer commandBuffer,const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo) const2659     void vkCmdCopyBufferToImage2( VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT
2660     {
2661       return ::vkCmdCopyBufferToImage2( commandBuffer, pCopyBufferToImageInfo );
2662     }
2663 
vkCmdCopyImageToBuffer2(VkCommandBuffer commandBuffer,const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo) const2664     void vkCmdCopyImageToBuffer2( VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT
2665     {
2666       return ::vkCmdCopyImageToBuffer2( commandBuffer, pCopyImageToBufferInfo );
2667     }
2668 
vkCmdBlitImage2(VkCommandBuffer commandBuffer,const VkBlitImageInfo2 * pBlitImageInfo) const2669     void vkCmdBlitImage2( VkCommandBuffer commandBuffer, const VkBlitImageInfo2 * pBlitImageInfo ) const VULKAN_HPP_NOEXCEPT
2670     {
2671       return ::vkCmdBlitImage2( commandBuffer, pBlitImageInfo );
2672     }
2673 
vkCmdResolveImage2(VkCommandBuffer commandBuffer,const VkResolveImageInfo2 * pResolveImageInfo) const2674     void vkCmdResolveImage2( VkCommandBuffer commandBuffer, const VkResolveImageInfo2 * pResolveImageInfo ) const VULKAN_HPP_NOEXCEPT
2675     {
2676       return ::vkCmdResolveImage2( commandBuffer, pResolveImageInfo );
2677     }
2678 
vkCmdBeginRendering(VkCommandBuffer commandBuffer,const VkRenderingInfo * pRenderingInfo) const2679     void vkCmdBeginRendering( VkCommandBuffer commandBuffer, const VkRenderingInfo * pRenderingInfo ) const VULKAN_HPP_NOEXCEPT
2680     {
2681       return ::vkCmdBeginRendering( commandBuffer, pRenderingInfo );
2682     }
2683 
vkCmdEndRendering(VkCommandBuffer commandBuffer) const2684     void vkCmdEndRendering( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
2685     {
2686       return ::vkCmdEndRendering( commandBuffer );
2687     }
2688 
vkCmdSetCullMode(VkCommandBuffer commandBuffer,VkCullModeFlags cullMode) const2689     void vkCmdSetCullMode( VkCommandBuffer commandBuffer, VkCullModeFlags cullMode ) const VULKAN_HPP_NOEXCEPT
2690     {
2691       return ::vkCmdSetCullMode( commandBuffer, cullMode );
2692     }
2693 
vkCmdSetFrontFace(VkCommandBuffer commandBuffer,VkFrontFace frontFace) const2694     void vkCmdSetFrontFace( VkCommandBuffer commandBuffer, VkFrontFace frontFace ) const VULKAN_HPP_NOEXCEPT
2695     {
2696       return ::vkCmdSetFrontFace( commandBuffer, frontFace );
2697     }
2698 
vkCmdSetPrimitiveTopology(VkCommandBuffer commandBuffer,VkPrimitiveTopology primitiveTopology) const2699     void vkCmdSetPrimitiveTopology( VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT
2700     {
2701       return ::vkCmdSetPrimitiveTopology( commandBuffer, primitiveTopology );
2702     }
2703 
vkCmdSetViewportWithCount(VkCommandBuffer commandBuffer,uint32_t viewportCount,const VkViewport * pViewports) const2704     void vkCmdSetViewportWithCount( VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport * pViewports ) const VULKAN_HPP_NOEXCEPT
2705     {
2706       return ::vkCmdSetViewportWithCount( commandBuffer, viewportCount, pViewports );
2707     }
2708 
vkCmdSetScissorWithCount(VkCommandBuffer commandBuffer,uint32_t scissorCount,const VkRect2D * pScissors) const2709     void vkCmdSetScissorWithCount( VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D * pScissors ) const VULKAN_HPP_NOEXCEPT
2710     {
2711       return ::vkCmdSetScissorWithCount( commandBuffer, scissorCount, pScissors );
2712     }
2713 
vkCmdBindVertexBuffers2(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes,const VkDeviceSize * pStrides) const2714     void vkCmdBindVertexBuffers2( VkCommandBuffer      commandBuffer,
2715                                   uint32_t             firstBinding,
2716                                   uint32_t             bindingCount,
2717                                   const VkBuffer *     pBuffers,
2718                                   const VkDeviceSize * pOffsets,
2719                                   const VkDeviceSize * pSizes,
2720                                   const VkDeviceSize * pStrides ) const VULKAN_HPP_NOEXCEPT
2721     {
2722       return ::vkCmdBindVertexBuffers2( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides );
2723     }
2724 
vkCmdSetDepthTestEnable(VkCommandBuffer commandBuffer,VkBool32 depthTestEnable) const2725     void vkCmdSetDepthTestEnable( VkCommandBuffer commandBuffer, VkBool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT
2726     {
2727       return ::vkCmdSetDepthTestEnable( commandBuffer, depthTestEnable );
2728     }
2729 
vkCmdSetDepthWriteEnable(VkCommandBuffer commandBuffer,VkBool32 depthWriteEnable) const2730     void vkCmdSetDepthWriteEnable( VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT
2731     {
2732       return ::vkCmdSetDepthWriteEnable( commandBuffer, depthWriteEnable );
2733     }
2734 
vkCmdSetDepthCompareOp(VkCommandBuffer commandBuffer,VkCompareOp depthCompareOp) const2735     void vkCmdSetDepthCompareOp( VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT
2736     {
2737       return ::vkCmdSetDepthCompareOp( commandBuffer, depthCompareOp );
2738     }
2739 
vkCmdSetDepthBoundsTestEnable(VkCommandBuffer commandBuffer,VkBool32 depthBoundsTestEnable) const2740     void vkCmdSetDepthBoundsTestEnable( VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT
2741     {
2742       return ::vkCmdSetDepthBoundsTestEnable( commandBuffer, depthBoundsTestEnable );
2743     }
2744 
vkCmdSetStencilTestEnable(VkCommandBuffer commandBuffer,VkBool32 stencilTestEnable) const2745     void vkCmdSetStencilTestEnable( VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT
2746     {
2747       return ::vkCmdSetStencilTestEnable( commandBuffer, stencilTestEnable );
2748     }
2749 
vkCmdSetStencilOp(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,VkStencilOp failOp,VkStencilOp passOp,VkStencilOp depthFailOp,VkCompareOp compareOp) const2750     void vkCmdSetStencilOp( VkCommandBuffer    commandBuffer,
2751                             VkStencilFaceFlags faceMask,
2752                             VkStencilOp        failOp,
2753                             VkStencilOp        passOp,
2754                             VkStencilOp        depthFailOp,
2755                             VkCompareOp        compareOp ) const VULKAN_HPP_NOEXCEPT
2756     {
2757       return ::vkCmdSetStencilOp( commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp );
2758     }
2759 
vkCmdSetRasterizerDiscardEnable(VkCommandBuffer commandBuffer,VkBool32 rasterizerDiscardEnable) const2760     void vkCmdSetRasterizerDiscardEnable( VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable ) const VULKAN_HPP_NOEXCEPT
2761     {
2762       return ::vkCmdSetRasterizerDiscardEnable( commandBuffer, rasterizerDiscardEnable );
2763     }
2764 
vkCmdSetDepthBiasEnable(VkCommandBuffer commandBuffer,VkBool32 depthBiasEnable) const2765     void vkCmdSetDepthBiasEnable( VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable ) const VULKAN_HPP_NOEXCEPT
2766     {
2767       return ::vkCmdSetDepthBiasEnable( commandBuffer, depthBiasEnable );
2768     }
2769 
vkCmdSetPrimitiveRestartEnable(VkCommandBuffer commandBuffer,VkBool32 primitiveRestartEnable) const2770     void vkCmdSetPrimitiveRestartEnable( VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable ) const VULKAN_HPP_NOEXCEPT
2771     {
2772       return ::vkCmdSetPrimitiveRestartEnable( commandBuffer, primitiveRestartEnable );
2773     }
2774 
vkGetDeviceBufferMemoryRequirements(VkDevice device,const VkDeviceBufferMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2775     void vkGetDeviceBufferMemoryRequirements( VkDevice                                 device,
2776                                               const VkDeviceBufferMemoryRequirements * pInfo,
2777                                               VkMemoryRequirements2 *                  pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2778     {
2779       return ::vkGetDeviceBufferMemoryRequirements( device, pInfo, pMemoryRequirements );
2780     }
2781 
vkGetDeviceImageMemoryRequirements(VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2782     void vkGetDeviceImageMemoryRequirements( VkDevice                                device,
2783                                              const VkDeviceImageMemoryRequirements * pInfo,
2784                                              VkMemoryRequirements2 *                 pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2785     {
2786       return ::vkGetDeviceImageMemoryRequirements( device, pInfo, pMemoryRequirements );
2787     }
2788 
vkGetDeviceImageSparseMemoryRequirements(VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements) const2789     void vkGetDeviceImageSparseMemoryRequirements( VkDevice                                device,
2790                                                    const VkDeviceImageMemoryRequirements * pInfo,
2791                                                    uint32_t *                              pSparseMemoryRequirementCount,
2792                                                    VkSparseImageMemoryRequirements2 *      pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2793     {
2794       return ::vkGetDeviceImageSparseMemoryRequirements( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
2795     }
2796 
2797     //=== VK_KHR_surface ===
2798 
vkDestroySurfaceKHR(VkInstance instance,VkSurfaceKHR surface,const VkAllocationCallbacks * pAllocator) const2799     void vkDestroySurfaceKHR( VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
2800     {
2801       return ::vkDestroySurfaceKHR( instance, surface, pAllocator );
2802     }
2803 
vkGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,VkSurfaceKHR surface,VkBool32 * pSupported) const2804     VkResult vkGetPhysicalDeviceSurfaceSupportKHR( VkPhysicalDevice physicalDevice,
2805                                                    uint32_t         queueFamilyIndex,
2806                                                    VkSurfaceKHR     surface,
2807                                                    VkBool32 *       pSupported ) const VULKAN_HPP_NOEXCEPT
2808     {
2809       return ::vkGetPhysicalDeviceSurfaceSupportKHR( physicalDevice, queueFamilyIndex, surface, pSupported );
2810     }
2811 
vkGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilitiesKHR * pSurfaceCapabilities) const2812     VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR( VkPhysicalDevice           physicalDevice,
2813                                                         VkSurfaceKHR               surface,
2814                                                         VkSurfaceCapabilitiesKHR * pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
2815     {
2816       return ::vkGetPhysicalDeviceSurfaceCapabilitiesKHR( physicalDevice, surface, pSurfaceCapabilities );
2817     }
2818 
vkGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pSurfaceFormatCount,VkSurfaceFormatKHR * pSurfaceFormats) const2819     VkResult vkGetPhysicalDeviceSurfaceFormatsKHR( VkPhysicalDevice     physicalDevice,
2820                                                    VkSurfaceKHR         surface,
2821                                                    uint32_t *           pSurfaceFormatCount,
2822                                                    VkSurfaceFormatKHR * pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT
2823     {
2824       return ::vkGetPhysicalDeviceSurfaceFormatsKHR( physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats );
2825     }
2826 
vkGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pPresentModeCount,VkPresentModeKHR * pPresentModes) const2827     VkResult vkGetPhysicalDeviceSurfacePresentModesKHR( VkPhysicalDevice   physicalDevice,
2828                                                         VkSurfaceKHR       surface,
2829                                                         uint32_t *         pPresentModeCount,
2830                                                         VkPresentModeKHR * pPresentModes ) const VULKAN_HPP_NOEXCEPT
2831     {
2832       return ::vkGetPhysicalDeviceSurfacePresentModesKHR( physicalDevice, surface, pPresentModeCount, pPresentModes );
2833     }
2834 
2835     //=== VK_KHR_swapchain ===
2836 
vkCreateSwapchainKHR(VkDevice device,const VkSwapchainCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchain) const2837     VkResult vkCreateSwapchainKHR( VkDevice                         device,
2838                                    const VkSwapchainCreateInfoKHR * pCreateInfo,
2839                                    const VkAllocationCallbacks *    pAllocator,
2840                                    VkSwapchainKHR *                 pSwapchain ) const VULKAN_HPP_NOEXCEPT
2841     {
2842       return ::vkCreateSwapchainKHR( device, pCreateInfo, pAllocator, pSwapchain );
2843     }
2844 
vkDestroySwapchainKHR(VkDevice device,VkSwapchainKHR swapchain,const VkAllocationCallbacks * pAllocator) const2845     void vkDestroySwapchainKHR( VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
2846     {
2847       return ::vkDestroySwapchainKHR( device, swapchain, pAllocator );
2848     }
2849 
vkGetSwapchainImagesKHR(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VkImage * pSwapchainImages) const2850     VkResult vkGetSwapchainImagesKHR( VkDevice       device,
2851                                       VkSwapchainKHR swapchain,
2852                                       uint32_t *     pSwapchainImageCount,
2853                                       VkImage *      pSwapchainImages ) const VULKAN_HPP_NOEXCEPT
2854     {
2855       return ::vkGetSwapchainImagesKHR( device, swapchain, pSwapchainImageCount, pSwapchainImages );
2856     }
2857 
vkAcquireNextImageKHR(VkDevice device,VkSwapchainKHR swapchain,uint64_t timeout,VkSemaphore semaphore,VkFence fence,uint32_t * pImageIndex) const2858     VkResult vkAcquireNextImageKHR(
2859       VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t * pImageIndex ) const VULKAN_HPP_NOEXCEPT
2860     {
2861       return ::vkAcquireNextImageKHR( device, swapchain, timeout, semaphore, fence, pImageIndex );
2862     }
2863 
vkQueuePresentKHR(VkQueue queue,const VkPresentInfoKHR * pPresentInfo) const2864     VkResult vkQueuePresentKHR( VkQueue queue, const VkPresentInfoKHR * pPresentInfo ) const VULKAN_HPP_NOEXCEPT
2865     {
2866       return ::vkQueuePresentKHR( queue, pPresentInfo );
2867     }
2868 
vkGetDeviceGroupPresentCapabilitiesKHR(VkDevice device,VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities) const2869     VkResult vkGetDeviceGroupPresentCapabilitiesKHR( VkDevice                              device,
2870                                                      VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities ) const VULKAN_HPP_NOEXCEPT
2871     {
2872       return ::vkGetDeviceGroupPresentCapabilitiesKHR( device, pDeviceGroupPresentCapabilities );
2873     }
2874 
2875     VkResult
vkGetDeviceGroupSurfacePresentModesKHR(VkDevice device,VkSurfaceKHR surface,VkDeviceGroupPresentModeFlagsKHR * pModes) const2876       vkGetDeviceGroupSurfacePresentModesKHR( VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR * pModes ) const VULKAN_HPP_NOEXCEPT
2877     {
2878       return ::vkGetDeviceGroupSurfacePresentModesKHR( device, surface, pModes );
2879     }
2880 
vkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pRectCount,VkRect2D * pRects) const2881     VkResult vkGetPhysicalDevicePresentRectanglesKHR( VkPhysicalDevice physicalDevice,
2882                                                       VkSurfaceKHR     surface,
2883                                                       uint32_t *       pRectCount,
2884                                                       VkRect2D *       pRects ) const VULKAN_HPP_NOEXCEPT
2885     {
2886       return ::vkGetPhysicalDevicePresentRectanglesKHR( physicalDevice, surface, pRectCount, pRects );
2887     }
2888 
vkAcquireNextImage2KHR(VkDevice device,const VkAcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex) const2889     VkResult vkAcquireNextImage2KHR( VkDevice device, const VkAcquireNextImageInfoKHR * pAcquireInfo, uint32_t * pImageIndex ) const VULKAN_HPP_NOEXCEPT
2890     {
2891       return ::vkAcquireNextImage2KHR( device, pAcquireInfo, pImageIndex );
2892     }
2893 
2894     //=== VK_KHR_display ===
2895 
vkGetPhysicalDeviceDisplayPropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPropertiesKHR * pProperties) const2896     VkResult vkGetPhysicalDeviceDisplayPropertiesKHR( VkPhysicalDevice         physicalDevice,
2897                                                       uint32_t *               pPropertyCount,
2898                                                       VkDisplayPropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT
2899     {
2900       return ::vkGetPhysicalDeviceDisplayPropertiesKHR( physicalDevice, pPropertyCount, pProperties );
2901     }
2902 
vkGetPhysicalDeviceDisplayPlanePropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPlanePropertiesKHR * pProperties) const2903     VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR( VkPhysicalDevice              physicalDevice,
2904                                                            uint32_t *                    pPropertyCount,
2905                                                            VkDisplayPlanePropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT
2906     {
2907       return ::vkGetPhysicalDeviceDisplayPlanePropertiesKHR( physicalDevice, pPropertyCount, pProperties );
2908     }
2909 
vkGetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDevice physicalDevice,uint32_t planeIndex,uint32_t * pDisplayCount,VkDisplayKHR * pDisplays) const2910     VkResult vkGetDisplayPlaneSupportedDisplaysKHR( VkPhysicalDevice physicalDevice,
2911                                                     uint32_t         planeIndex,
2912                                                     uint32_t *       pDisplayCount,
2913                                                     VkDisplayKHR *   pDisplays ) const VULKAN_HPP_NOEXCEPT
2914     {
2915       return ::vkGetDisplayPlaneSupportedDisplaysKHR( physicalDevice, planeIndex, pDisplayCount, pDisplays );
2916     }
2917 
vkGetDisplayModePropertiesKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,uint32_t * pPropertyCount,VkDisplayModePropertiesKHR * pProperties) const2918     VkResult vkGetDisplayModePropertiesKHR( VkPhysicalDevice             physicalDevice,
2919                                             VkDisplayKHR                 display,
2920                                             uint32_t *                   pPropertyCount,
2921                                             VkDisplayModePropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT
2922     {
2923       return ::vkGetDisplayModePropertiesKHR( physicalDevice, display, pPropertyCount, pProperties );
2924     }
2925 
vkCreateDisplayModeKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,const VkDisplayModeCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDisplayModeKHR * pMode) const2926     VkResult vkCreateDisplayModeKHR( VkPhysicalDevice                   physicalDevice,
2927                                      VkDisplayKHR                       display,
2928                                      const VkDisplayModeCreateInfoKHR * pCreateInfo,
2929                                      const VkAllocationCallbacks *      pAllocator,
2930                                      VkDisplayModeKHR *                 pMode ) const VULKAN_HPP_NOEXCEPT
2931     {
2932       return ::vkCreateDisplayModeKHR( physicalDevice, display, pCreateInfo, pAllocator, pMode );
2933     }
2934 
vkGetDisplayPlaneCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkDisplayModeKHR mode,uint32_t planeIndex,VkDisplayPlaneCapabilitiesKHR * pCapabilities) const2935     VkResult vkGetDisplayPlaneCapabilitiesKHR( VkPhysicalDevice                physicalDevice,
2936                                                VkDisplayModeKHR                mode,
2937                                                uint32_t                        planeIndex,
2938                                                VkDisplayPlaneCapabilitiesKHR * pCapabilities ) const VULKAN_HPP_NOEXCEPT
2939     {
2940       return ::vkGetDisplayPlaneCapabilitiesKHR( physicalDevice, mode, planeIndex, pCapabilities );
2941     }
2942 
vkCreateDisplayPlaneSurfaceKHR(VkInstance instance,const VkDisplaySurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2943     VkResult vkCreateDisplayPlaneSurfaceKHR( VkInstance                            instance,
2944                                              const VkDisplaySurfaceCreateInfoKHR * pCreateInfo,
2945                                              const VkAllocationCallbacks *         pAllocator,
2946                                              VkSurfaceKHR *                        pSurface ) const VULKAN_HPP_NOEXCEPT
2947     {
2948       return ::vkCreateDisplayPlaneSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2949     }
2950 
2951     //=== VK_KHR_display_swapchain ===
2952 
vkCreateSharedSwapchainsKHR(VkDevice device,uint32_t swapchainCount,const VkSwapchainCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchains) const2953     VkResult vkCreateSharedSwapchainsKHR( VkDevice                         device,
2954                                           uint32_t                         swapchainCount,
2955                                           const VkSwapchainCreateInfoKHR * pCreateInfos,
2956                                           const VkAllocationCallbacks *    pAllocator,
2957                                           VkSwapchainKHR *                 pSwapchains ) const VULKAN_HPP_NOEXCEPT
2958     {
2959       return ::vkCreateSharedSwapchainsKHR( device, swapchainCount, pCreateInfos, pAllocator, pSwapchains );
2960     }
2961 
2962 #  if defined( VK_USE_PLATFORM_XLIB_KHR )
2963     //=== VK_KHR_xlib_surface ===
2964 
vkCreateXlibSurfaceKHR(VkInstance instance,const VkXlibSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2965     VkResult vkCreateXlibSurfaceKHR( VkInstance                         instance,
2966                                      const VkXlibSurfaceCreateInfoKHR * pCreateInfo,
2967                                      const VkAllocationCallbacks *      pAllocator,
2968                                      VkSurfaceKHR *                     pSurface ) const VULKAN_HPP_NOEXCEPT
2969     {
2970       return ::vkCreateXlibSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2971     }
2972 
vkGetPhysicalDeviceXlibPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,Display * dpy,VisualID visualID) const2973     VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR( VkPhysicalDevice physicalDevice,
2974                                                             uint32_t         queueFamilyIndex,
2975                                                             Display *        dpy,
2976                                                             VisualID         visualID ) const VULKAN_HPP_NOEXCEPT
2977     {
2978       return ::vkGetPhysicalDeviceXlibPresentationSupportKHR( physicalDevice, queueFamilyIndex, dpy, visualID );
2979     }
2980 #  endif /*VK_USE_PLATFORM_XLIB_KHR*/
2981 
2982 #  if defined( VK_USE_PLATFORM_XCB_KHR )
2983     //=== VK_KHR_xcb_surface ===
2984 
vkCreateXcbSurfaceKHR(VkInstance instance,const VkXcbSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2985     VkResult vkCreateXcbSurfaceKHR( VkInstance                        instance,
2986                                     const VkXcbSurfaceCreateInfoKHR * pCreateInfo,
2987                                     const VkAllocationCallbacks *     pAllocator,
2988                                     VkSurfaceKHR *                    pSurface ) const VULKAN_HPP_NOEXCEPT
2989     {
2990       return ::vkCreateXcbSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2991     }
2992 
vkGetPhysicalDeviceXcbPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,xcb_connection_t * connection,xcb_visualid_t visual_id) const2993     VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR( VkPhysicalDevice   physicalDevice,
2994                                                            uint32_t           queueFamilyIndex,
2995                                                            xcb_connection_t * connection,
2996                                                            xcb_visualid_t     visual_id ) const VULKAN_HPP_NOEXCEPT
2997     {
2998       return ::vkGetPhysicalDeviceXcbPresentationSupportKHR( physicalDevice, queueFamilyIndex, connection, visual_id );
2999     }
3000 #  endif /*VK_USE_PLATFORM_XCB_KHR*/
3001 
3002 #  if defined( VK_USE_PLATFORM_WAYLAND_KHR )
3003     //=== VK_KHR_wayland_surface ===
3004 
vkCreateWaylandSurfaceKHR(VkInstance instance,const VkWaylandSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const3005     VkResult vkCreateWaylandSurfaceKHR( VkInstance                            instance,
3006                                         const VkWaylandSurfaceCreateInfoKHR * pCreateInfo,
3007                                         const VkAllocationCallbacks *         pAllocator,
3008                                         VkSurfaceKHR *                        pSurface ) const VULKAN_HPP_NOEXCEPT
3009     {
3010       return ::vkCreateWaylandSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
3011     }
3012 
vkGetPhysicalDeviceWaylandPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,struct wl_display * display) const3013     VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR( VkPhysicalDevice    physicalDevice,
3014                                                                uint32_t            queueFamilyIndex,
3015                                                                struct wl_display * display ) const VULKAN_HPP_NOEXCEPT
3016     {
3017       return ::vkGetPhysicalDeviceWaylandPresentationSupportKHR( physicalDevice, queueFamilyIndex, display );
3018     }
3019 #  endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
3020 
3021 #  if defined( VK_USE_PLATFORM_ANDROID_KHR )
3022     //=== VK_KHR_android_surface ===
3023 
vkCreateAndroidSurfaceKHR(VkInstance instance,const VkAndroidSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const3024     VkResult vkCreateAndroidSurfaceKHR( VkInstance                            instance,
3025                                         const VkAndroidSurfaceCreateInfoKHR * pCreateInfo,
3026                                         const VkAllocationCallbacks *         pAllocator,
3027                                         VkSurfaceKHR *                        pSurface ) const VULKAN_HPP_NOEXCEPT
3028     {
3029       return ::vkCreateAndroidSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
3030     }
3031 #  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
3032 
3033 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
3034     //=== VK_KHR_win32_surface ===
3035 
vkCreateWin32SurfaceKHR(VkInstance instance,const VkWin32SurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const3036     VkResult vkCreateWin32SurfaceKHR( VkInstance                          instance,
3037                                       const VkWin32SurfaceCreateInfoKHR * pCreateInfo,
3038                                       const VkAllocationCallbacks *       pAllocator,
3039                                       VkSurfaceKHR *                      pSurface ) const VULKAN_HPP_NOEXCEPT
3040     {
3041       return ::vkCreateWin32SurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
3042     }
3043 
vkGetPhysicalDeviceWin32PresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex) const3044     VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT
3045     {
3046       return ::vkGetPhysicalDeviceWin32PresentationSupportKHR( physicalDevice, queueFamilyIndex );
3047     }
3048 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
3049 
3050     //=== VK_EXT_debug_report ===
3051 
vkCreateDebugReportCallbackEXT(VkInstance instance,const VkDebugReportCallbackCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugReportCallbackEXT * pCallback) const3052     VkResult vkCreateDebugReportCallbackEXT( VkInstance                                 instance,
3053                                              const VkDebugReportCallbackCreateInfoEXT * pCreateInfo,
3054                                              const VkAllocationCallbacks *              pAllocator,
3055                                              VkDebugReportCallbackEXT *                 pCallback ) const VULKAN_HPP_NOEXCEPT
3056     {
3057       return ::vkCreateDebugReportCallbackEXT( instance, pCreateInfo, pAllocator, pCallback );
3058     }
3059 
vkDestroyDebugReportCallbackEXT(VkInstance instance,VkDebugReportCallbackEXT callback,const VkAllocationCallbacks * pAllocator) const3060     void vkDestroyDebugReportCallbackEXT( VkInstance                    instance,
3061                                           VkDebugReportCallbackEXT      callback,
3062                                           const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
3063     {
3064       return ::vkDestroyDebugReportCallbackEXT( instance, callback, pAllocator );
3065     }
3066 
vkDebugReportMessageEXT(VkInstance instance,VkDebugReportFlagsEXT flags,VkDebugReportObjectTypeEXT objectType,uint64_t object,size_t location,int32_t messageCode,const char * pLayerPrefix,const char * pMessage) const3067     void vkDebugReportMessageEXT( VkInstance                 instance,
3068                                   VkDebugReportFlagsEXT      flags,
3069                                   VkDebugReportObjectTypeEXT objectType,
3070                                   uint64_t                   object,
3071                                   size_t                     location,
3072                                   int32_t                    messageCode,
3073                                   const char *               pLayerPrefix,
3074                                   const char *               pMessage ) const VULKAN_HPP_NOEXCEPT
3075     {
3076       return ::vkDebugReportMessageEXT( instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage );
3077     }
3078 
3079     //=== VK_EXT_debug_marker ===
3080 
vkDebugMarkerSetObjectTagEXT(VkDevice device,const VkDebugMarkerObjectTagInfoEXT * pTagInfo) const3081     VkResult vkDebugMarkerSetObjectTagEXT( VkDevice device, const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) const VULKAN_HPP_NOEXCEPT
3082     {
3083       return ::vkDebugMarkerSetObjectTagEXT( device, pTagInfo );
3084     }
3085 
vkDebugMarkerSetObjectNameEXT(VkDevice device,const VkDebugMarkerObjectNameInfoEXT * pNameInfo) const3086     VkResult vkDebugMarkerSetObjectNameEXT( VkDevice device, const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) const VULKAN_HPP_NOEXCEPT
3087     {
3088       return ::vkDebugMarkerSetObjectNameEXT( device, pNameInfo );
3089     }
3090 
vkCmdDebugMarkerBeginEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo) const3091     void vkCmdDebugMarkerBeginEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
3092     {
3093       return ::vkCmdDebugMarkerBeginEXT( commandBuffer, pMarkerInfo );
3094     }
3095 
vkCmdDebugMarkerEndEXT(VkCommandBuffer commandBuffer) const3096     void vkCmdDebugMarkerEndEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
3097     {
3098       return ::vkCmdDebugMarkerEndEXT( commandBuffer );
3099     }
3100 
vkCmdDebugMarkerInsertEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo) const3101     void vkCmdDebugMarkerInsertEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
3102     {
3103       return ::vkCmdDebugMarkerInsertEXT( commandBuffer, pMarkerInfo );
3104     }
3105 
3106     //=== VK_KHR_video_queue ===
3107 
vkGetPhysicalDeviceVideoCapabilitiesKHR(VkPhysicalDevice physicalDevice,const VkVideoProfileInfoKHR * pVideoProfile,VkVideoCapabilitiesKHR * pCapabilities) const3108     VkResult vkGetPhysicalDeviceVideoCapabilitiesKHR( VkPhysicalDevice              physicalDevice,
3109                                                       const VkVideoProfileInfoKHR * pVideoProfile,
3110                                                       VkVideoCapabilitiesKHR *      pCapabilities ) const VULKAN_HPP_NOEXCEPT
3111     {
3112       return ::vkGetPhysicalDeviceVideoCapabilitiesKHR( physicalDevice, pVideoProfile, pCapabilities );
3113     }
3114 
vkGetPhysicalDeviceVideoFormatPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo,uint32_t * pVideoFormatPropertyCount,VkVideoFormatPropertiesKHR * pVideoFormatProperties) const3115     VkResult vkGetPhysicalDeviceVideoFormatPropertiesKHR( VkPhysicalDevice                           physicalDevice,
3116                                                           const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo,
3117                                                           uint32_t *                                 pVideoFormatPropertyCount,
3118                                                           VkVideoFormatPropertiesKHR *               pVideoFormatProperties ) const VULKAN_HPP_NOEXCEPT
3119     {
3120       return ::vkGetPhysicalDeviceVideoFormatPropertiesKHR( physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties );
3121     }
3122 
vkCreateVideoSessionKHR(VkDevice device,const VkVideoSessionCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkVideoSessionKHR * pVideoSession) const3123     VkResult vkCreateVideoSessionKHR( VkDevice                            device,
3124                                       const VkVideoSessionCreateInfoKHR * pCreateInfo,
3125                                       const VkAllocationCallbacks *       pAllocator,
3126                                       VkVideoSessionKHR *                 pVideoSession ) const VULKAN_HPP_NOEXCEPT
3127     {
3128       return ::vkCreateVideoSessionKHR( device, pCreateInfo, pAllocator, pVideoSession );
3129     }
3130 
vkDestroyVideoSessionKHR(VkDevice device,VkVideoSessionKHR videoSession,const VkAllocationCallbacks * pAllocator) const3131     void vkDestroyVideoSessionKHR( VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
3132     {
3133       return ::vkDestroyVideoSessionKHR( device, videoSession, pAllocator );
3134     }
3135 
vkGetVideoSessionMemoryRequirementsKHR(VkDevice device,VkVideoSessionKHR videoSession,uint32_t * pMemoryRequirementsCount,VkVideoSessionMemoryRequirementsKHR * pMemoryRequirements) const3136     VkResult vkGetVideoSessionMemoryRequirementsKHR( VkDevice                              device,
3137                                                      VkVideoSessionKHR                     videoSession,
3138                                                      uint32_t *                            pMemoryRequirementsCount,
3139                                                      VkVideoSessionMemoryRequirementsKHR * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
3140     {
3141       return ::vkGetVideoSessionMemoryRequirementsKHR( device, videoSession, pMemoryRequirementsCount, pMemoryRequirements );
3142     }
3143 
vkBindVideoSessionMemoryKHR(VkDevice device,VkVideoSessionKHR videoSession,uint32_t bindSessionMemoryInfoCount,const VkBindVideoSessionMemoryInfoKHR * pBindSessionMemoryInfos) const3144     VkResult vkBindVideoSessionMemoryKHR( VkDevice                                device,
3145                                           VkVideoSessionKHR                       videoSession,
3146                                           uint32_t                                bindSessionMemoryInfoCount,
3147                                           const VkBindVideoSessionMemoryInfoKHR * pBindSessionMemoryInfos ) const VULKAN_HPP_NOEXCEPT
3148     {
3149       return ::vkBindVideoSessionMemoryKHR( device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos );
3150     }
3151 
vkCreateVideoSessionParametersKHR(VkDevice device,const VkVideoSessionParametersCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkVideoSessionParametersKHR * pVideoSessionParameters) const3152     VkResult vkCreateVideoSessionParametersKHR( VkDevice                                      device,
3153                                                 const VkVideoSessionParametersCreateInfoKHR * pCreateInfo,
3154                                                 const VkAllocationCallbacks *                 pAllocator,
3155                                                 VkVideoSessionParametersKHR *                 pVideoSessionParameters ) const VULKAN_HPP_NOEXCEPT
3156     {
3157       return ::vkCreateVideoSessionParametersKHR( device, pCreateInfo, pAllocator, pVideoSessionParameters );
3158     }
3159 
vkUpdateVideoSessionParametersKHR(VkDevice device,VkVideoSessionParametersKHR videoSessionParameters,const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo) const3160     VkResult vkUpdateVideoSessionParametersKHR( VkDevice                                      device,
3161                                                 VkVideoSessionParametersKHR                   videoSessionParameters,
3162                                                 const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo ) const VULKAN_HPP_NOEXCEPT
3163     {
3164       return ::vkUpdateVideoSessionParametersKHR( device, videoSessionParameters, pUpdateInfo );
3165     }
3166 
vkDestroyVideoSessionParametersKHR(VkDevice device,VkVideoSessionParametersKHR videoSessionParameters,const VkAllocationCallbacks * pAllocator) const3167     void vkDestroyVideoSessionParametersKHR( VkDevice                      device,
3168                                              VkVideoSessionParametersKHR   videoSessionParameters,
3169                                              const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
3170     {
3171       return ::vkDestroyVideoSessionParametersKHR( device, videoSessionParameters, pAllocator );
3172     }
3173 
vkCmdBeginVideoCodingKHR(VkCommandBuffer commandBuffer,const VkVideoBeginCodingInfoKHR * pBeginInfo) const3174     void vkCmdBeginVideoCodingKHR( VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR * pBeginInfo ) const VULKAN_HPP_NOEXCEPT
3175     {
3176       return ::vkCmdBeginVideoCodingKHR( commandBuffer, pBeginInfo );
3177     }
3178 
vkCmdEndVideoCodingKHR(VkCommandBuffer commandBuffer,const VkVideoEndCodingInfoKHR * pEndCodingInfo) const3179     void vkCmdEndVideoCodingKHR( VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR * pEndCodingInfo ) const VULKAN_HPP_NOEXCEPT
3180     {
3181       return ::vkCmdEndVideoCodingKHR( commandBuffer, pEndCodingInfo );
3182     }
3183 
vkCmdControlVideoCodingKHR(VkCommandBuffer commandBuffer,const VkVideoCodingControlInfoKHR * pCodingControlInfo) const3184     void vkCmdControlVideoCodingKHR( VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR * pCodingControlInfo ) const VULKAN_HPP_NOEXCEPT
3185     {
3186       return ::vkCmdControlVideoCodingKHR( commandBuffer, pCodingControlInfo );
3187     }
3188 
3189     //=== VK_KHR_video_decode_queue ===
3190 
vkCmdDecodeVideoKHR(VkCommandBuffer commandBuffer,const VkVideoDecodeInfoKHR * pDecodeInfo) const3191     void vkCmdDecodeVideoKHR( VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR * pDecodeInfo ) const VULKAN_HPP_NOEXCEPT
3192     {
3193       return ::vkCmdDecodeVideoKHR( commandBuffer, pDecodeInfo );
3194     }
3195 
3196     //=== VK_EXT_transform_feedback ===
3197 
vkCmdBindTransformFeedbackBuffersEXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes) const3198     void vkCmdBindTransformFeedbackBuffersEXT( VkCommandBuffer      commandBuffer,
3199                                                uint32_t             firstBinding,
3200                                                uint32_t             bindingCount,
3201                                                const VkBuffer *     pBuffers,
3202                                                const VkDeviceSize * pOffsets,
3203                                                const VkDeviceSize * pSizes ) const VULKAN_HPP_NOEXCEPT
3204     {
3205       return ::vkCmdBindTransformFeedbackBuffersEXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes );
3206     }
3207 
vkCmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets) const3208     void vkCmdBeginTransformFeedbackEXT( VkCommandBuffer      commandBuffer,
3209                                          uint32_t             firstCounterBuffer,
3210                                          uint32_t             counterBufferCount,
3211                                          const VkBuffer *     pCounterBuffers,
3212                                          const VkDeviceSize * pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT
3213     {
3214       return ::vkCmdBeginTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets );
3215     }
3216 
vkCmdEndTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets) const3217     void vkCmdEndTransformFeedbackEXT( VkCommandBuffer      commandBuffer,
3218                                        uint32_t             firstCounterBuffer,
3219                                        uint32_t             counterBufferCount,
3220                                        const VkBuffer *     pCounterBuffers,
3221                                        const VkDeviceSize * pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT
3222     {
3223       return ::vkCmdEndTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets );
3224     }
3225 
vkCmdBeginQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags,uint32_t index) const3226     void vkCmdBeginQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index ) const
3227       VULKAN_HPP_NOEXCEPT
3228     {
3229       return ::vkCmdBeginQueryIndexedEXT( commandBuffer, queryPool, query, flags, index );
3230     }
3231 
vkCmdEndQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,uint32_t index) const3232     void vkCmdEndQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index ) const VULKAN_HPP_NOEXCEPT
3233     {
3234       return ::vkCmdEndQueryIndexedEXT( commandBuffer, queryPool, query, index );
3235     }
3236 
vkCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer,uint32_t instanceCount,uint32_t firstInstance,VkBuffer counterBuffer,VkDeviceSize counterBufferOffset,uint32_t counterOffset,uint32_t vertexStride) const3237     void vkCmdDrawIndirectByteCountEXT( VkCommandBuffer commandBuffer,
3238                                         uint32_t        instanceCount,
3239                                         uint32_t        firstInstance,
3240                                         VkBuffer        counterBuffer,
3241                                         VkDeviceSize    counterBufferOffset,
3242                                         uint32_t        counterOffset,
3243                                         uint32_t        vertexStride ) const VULKAN_HPP_NOEXCEPT
3244     {
3245       return ::vkCmdDrawIndirectByteCountEXT( commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride );
3246     }
3247 
3248     //=== VK_NVX_binary_import ===
3249 
vkCreateCuModuleNVX(VkDevice device,const VkCuModuleCreateInfoNVX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCuModuleNVX * pModule) const3250     VkResult vkCreateCuModuleNVX( VkDevice                        device,
3251                                   const VkCuModuleCreateInfoNVX * pCreateInfo,
3252                                   const VkAllocationCallbacks *   pAllocator,
3253                                   VkCuModuleNVX *                 pModule ) const VULKAN_HPP_NOEXCEPT
3254     {
3255       return ::vkCreateCuModuleNVX( device, pCreateInfo, pAllocator, pModule );
3256     }
3257 
vkCreateCuFunctionNVX(VkDevice device,const VkCuFunctionCreateInfoNVX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCuFunctionNVX * pFunction) const3258     VkResult vkCreateCuFunctionNVX( VkDevice                          device,
3259                                     const VkCuFunctionCreateInfoNVX * pCreateInfo,
3260                                     const VkAllocationCallbacks *     pAllocator,
3261                                     VkCuFunctionNVX *                 pFunction ) const VULKAN_HPP_NOEXCEPT
3262     {
3263       return ::vkCreateCuFunctionNVX( device, pCreateInfo, pAllocator, pFunction );
3264     }
3265 
vkDestroyCuModuleNVX(VkDevice device,VkCuModuleNVX module,const VkAllocationCallbacks * pAllocator) const3266     void vkDestroyCuModuleNVX( VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
3267     {
3268       return ::vkDestroyCuModuleNVX( device, module, pAllocator );
3269     }
3270 
vkDestroyCuFunctionNVX(VkDevice device,VkCuFunctionNVX function,const VkAllocationCallbacks * pAllocator) const3271     void vkDestroyCuFunctionNVX( VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
3272     {
3273       return ::vkDestroyCuFunctionNVX( device, function, pAllocator );
3274     }
3275 
vkCmdCuLaunchKernelNVX(VkCommandBuffer commandBuffer,const VkCuLaunchInfoNVX * pLaunchInfo) const3276     void vkCmdCuLaunchKernelNVX( VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX * pLaunchInfo ) const VULKAN_HPP_NOEXCEPT
3277     {
3278       return ::vkCmdCuLaunchKernelNVX( commandBuffer, pLaunchInfo );
3279     }
3280 
3281     //=== VK_NVX_image_view_handle ===
3282 
vkGetImageViewHandleNVX(VkDevice device,const VkImageViewHandleInfoNVX * pInfo) const3283     uint32_t vkGetImageViewHandleNVX( VkDevice device, const VkImageViewHandleInfoNVX * pInfo ) const VULKAN_HPP_NOEXCEPT
3284     {
3285       return ::vkGetImageViewHandleNVX( device, pInfo );
3286     }
3287 
vkGetImageViewAddressNVX(VkDevice device,VkImageView imageView,VkImageViewAddressPropertiesNVX * pProperties) const3288     VkResult vkGetImageViewAddressNVX( VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX * pProperties ) const VULKAN_HPP_NOEXCEPT
3289     {
3290       return ::vkGetImageViewAddressNVX( device, imageView, pProperties );
3291     }
3292 
3293     //=== VK_AMD_draw_indirect_count ===
3294 
vkCmdDrawIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const3295     void vkCmdDrawIndirectCountAMD( VkCommandBuffer commandBuffer,
3296                                     VkBuffer        buffer,
3297                                     VkDeviceSize    offset,
3298                                     VkBuffer        countBuffer,
3299                                     VkDeviceSize    countBufferOffset,
3300                                     uint32_t        maxDrawCount,
3301                                     uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
3302     {
3303       return ::vkCmdDrawIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
3304     }
3305 
vkCmdDrawIndexedIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const3306     void vkCmdDrawIndexedIndirectCountAMD( VkCommandBuffer commandBuffer,
3307                                            VkBuffer        buffer,
3308                                            VkDeviceSize    offset,
3309                                            VkBuffer        countBuffer,
3310                                            VkDeviceSize    countBufferOffset,
3311                                            uint32_t        maxDrawCount,
3312                                            uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
3313     {
3314       return ::vkCmdDrawIndexedIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
3315     }
3316 
3317     //=== VK_AMD_shader_info ===
3318 
vkGetShaderInfoAMD(VkDevice device,VkPipeline pipeline,VkShaderStageFlagBits shaderStage,VkShaderInfoTypeAMD infoType,size_t * pInfoSize,void * pInfo) const3319     VkResult vkGetShaderInfoAMD( VkDevice              device,
3320                                  VkPipeline            pipeline,
3321                                  VkShaderStageFlagBits shaderStage,
3322                                  VkShaderInfoTypeAMD   infoType,
3323                                  size_t *              pInfoSize,
3324                                  void *                pInfo ) const VULKAN_HPP_NOEXCEPT
3325     {
3326       return ::vkGetShaderInfoAMD( device, pipeline, shaderStage, infoType, pInfoSize, pInfo );
3327     }
3328 
3329     //=== VK_KHR_dynamic_rendering ===
3330 
vkCmdBeginRenderingKHR(VkCommandBuffer commandBuffer,const VkRenderingInfo * pRenderingInfo) const3331     void vkCmdBeginRenderingKHR( VkCommandBuffer commandBuffer, const VkRenderingInfo * pRenderingInfo ) const VULKAN_HPP_NOEXCEPT
3332     {
3333       return ::vkCmdBeginRenderingKHR( commandBuffer, pRenderingInfo );
3334     }
3335 
vkCmdEndRenderingKHR(VkCommandBuffer commandBuffer) const3336     void vkCmdEndRenderingKHR( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
3337     {
3338       return ::vkCmdEndRenderingKHR( commandBuffer );
3339     }
3340 
3341 #  if defined( VK_USE_PLATFORM_GGP )
3342     //=== VK_GGP_stream_descriptor_surface ===
3343 
vkCreateStreamDescriptorSurfaceGGP(VkInstance instance,const VkStreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const3344     VkResult vkCreateStreamDescriptorSurfaceGGP( VkInstance                                     instance,
3345                                                  const VkStreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,
3346                                                  const VkAllocationCallbacks *                  pAllocator,
3347                                                  VkSurfaceKHR *                                 pSurface ) const VULKAN_HPP_NOEXCEPT
3348     {
3349       return ::vkCreateStreamDescriptorSurfaceGGP( instance, pCreateInfo, pAllocator, pSurface );
3350     }
3351 #  endif /*VK_USE_PLATFORM_GGP*/
3352 
3353     //=== VK_NV_external_memory_capabilities ===
3354 
vkGetPhysicalDeviceExternalImageFormatPropertiesNV(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkExternalMemoryHandleTypeFlagsNV externalHandleType,VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties) const3355     VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV( VkPhysicalDevice                    physicalDevice,
3356                                                                  VkFormat                            format,
3357                                                                  VkImageType                         type,
3358                                                                  VkImageTiling                       tiling,
3359                                                                  VkImageUsageFlags                   usage,
3360                                                                  VkImageCreateFlags                  flags,
3361                                                                  VkExternalMemoryHandleTypeFlagsNV   externalHandleType,
3362                                                                  VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
3363     {
3364       return ::vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
3365         physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties );
3366     }
3367 
3368 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
3369     //=== VK_NV_external_memory_win32 ===
3370 
vkGetMemoryWin32HandleNV(VkDevice device,VkDeviceMemory memory,VkExternalMemoryHandleTypeFlagsNV handleType,HANDLE * pHandle) const3371     VkResult vkGetMemoryWin32HandleNV( VkDevice                          device,
3372                                        VkDeviceMemory                    memory,
3373                                        VkExternalMemoryHandleTypeFlagsNV handleType,
3374                                        HANDLE *                          pHandle ) const VULKAN_HPP_NOEXCEPT
3375     {
3376       return ::vkGetMemoryWin32HandleNV( device, memory, handleType, pHandle );
3377     }
3378 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
3379 
3380     //=== VK_KHR_get_physical_device_properties2 ===
3381 
vkGetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures) const3382     void vkGetPhysicalDeviceFeatures2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2 * pFeatures ) const VULKAN_HPP_NOEXCEPT
3383     {
3384       return ::vkGetPhysicalDeviceFeatures2KHR( physicalDevice, pFeatures );
3385     }
3386 
vkGetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties) const3387     void vkGetPhysicalDeviceProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2 * pProperties ) const VULKAN_HPP_NOEXCEPT
3388     {
3389       return ::vkGetPhysicalDeviceProperties2KHR( physicalDevice, pProperties );
3390     }
3391 
vkGetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties) const3392     void vkGetPhysicalDeviceFormatProperties2KHR( VkPhysicalDevice      physicalDevice,
3393                                                   VkFormat              format,
3394                                                   VkFormatProperties2 * pFormatProperties ) const VULKAN_HPP_NOEXCEPT
3395     {
3396       return ::vkGetPhysicalDeviceFormatProperties2KHR( physicalDevice, format, pFormatProperties );
3397     }
3398 
vkGetPhysicalDeviceImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties) const3399     VkResult vkGetPhysicalDeviceImageFormatProperties2KHR( VkPhysicalDevice                         physicalDevice,
3400                                                            const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,
3401                                                            VkImageFormatProperties2 *               pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
3402     {
3403       return ::vkGetPhysicalDeviceImageFormatProperties2KHR( physicalDevice, pImageFormatInfo, pImageFormatProperties );
3404     }
3405 
vkGetPhysicalDeviceQueueFamilyProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties) const3406     void vkGetPhysicalDeviceQueueFamilyProperties2KHR( VkPhysicalDevice           physicalDevice,
3407                                                        uint32_t *                 pQueueFamilyPropertyCount,
3408                                                        VkQueueFamilyProperties2 * pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
3409     {
3410       return ::vkGetPhysicalDeviceQueueFamilyProperties2KHR( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
3411     }
3412 
vkGetPhysicalDeviceMemoryProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties) const3413     void vkGetPhysicalDeviceMemoryProperties2KHR( VkPhysicalDevice                    physicalDevice,
3414                                                   VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
3415     {
3416       return ::vkGetPhysicalDeviceMemoryProperties2KHR( physicalDevice, pMemoryProperties );
3417     }
3418 
vkGetPhysicalDeviceSparseImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties) const3419     void vkGetPhysicalDeviceSparseImageFormatProperties2KHR( VkPhysicalDevice                               physicalDevice,
3420                                                              const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,
3421                                                              uint32_t *                                     pPropertyCount,
3422                                                              VkSparseImageFormatProperties2 *               pProperties ) const VULKAN_HPP_NOEXCEPT
3423     {
3424       return ::vkGetPhysicalDeviceSparseImageFormatProperties2KHR( physicalDevice, pFormatInfo, pPropertyCount, pProperties );
3425     }
3426 
3427     //=== VK_KHR_device_group ===
3428 
vkGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures) const3429     void vkGetDeviceGroupPeerMemoryFeaturesKHR( VkDevice                   device,
3430                                                 uint32_t                   heapIndex,
3431                                                 uint32_t                   localDeviceIndex,
3432                                                 uint32_t                   remoteDeviceIndex,
3433                                                 VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT
3434     {
3435       return ::vkGetDeviceGroupPeerMemoryFeaturesKHR( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures );
3436     }
3437 
vkCmdSetDeviceMaskKHR(VkCommandBuffer commandBuffer,uint32_t deviceMask) const3438     void vkCmdSetDeviceMaskKHR( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT
3439     {
3440       return ::vkCmdSetDeviceMaskKHR( commandBuffer, deviceMask );
3441     }
3442 
vkCmdDispatchBaseKHR(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const3443     void vkCmdDispatchBaseKHR( VkCommandBuffer commandBuffer,
3444                                uint32_t        baseGroupX,
3445                                uint32_t        baseGroupY,
3446                                uint32_t        baseGroupZ,
3447                                uint32_t        groupCountX,
3448                                uint32_t        groupCountY,
3449                                uint32_t        groupCountZ ) const VULKAN_HPP_NOEXCEPT
3450     {
3451       return ::vkCmdDispatchBaseKHR( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
3452     }
3453 
3454 #  if defined( VK_USE_PLATFORM_VI_NN )
3455     //=== VK_NN_vi_surface ===
3456 
vkCreateViSurfaceNN(VkInstance instance,const VkViSurfaceCreateInfoNN * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const3457     VkResult vkCreateViSurfaceNN( VkInstance                      instance,
3458                                   const VkViSurfaceCreateInfoNN * pCreateInfo,
3459                                   const VkAllocationCallbacks *   pAllocator,
3460                                   VkSurfaceKHR *                  pSurface ) const VULKAN_HPP_NOEXCEPT
3461     {
3462       return ::vkCreateViSurfaceNN( instance, pCreateInfo, pAllocator, pSurface );
3463     }
3464 #  endif /*VK_USE_PLATFORM_VI_NN*/
3465 
3466     //=== VK_KHR_maintenance1 ===
3467 
vkTrimCommandPoolKHR(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags) const3468     void vkTrimCommandPoolKHR( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT
3469     {
3470       return ::vkTrimCommandPoolKHR( device, commandPool, flags );
3471     }
3472 
3473     //=== VK_KHR_device_group_creation ===
3474 
vkEnumeratePhysicalDeviceGroupsKHR(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties) const3475     VkResult vkEnumeratePhysicalDeviceGroupsKHR( VkInstance                        instance,
3476                                                  uint32_t *                        pPhysicalDeviceGroupCount,
3477                                                  VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT
3478     {
3479       return ::vkEnumeratePhysicalDeviceGroupsKHR( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties );
3480     }
3481 
3482     //=== VK_KHR_external_memory_capabilities ===
3483 
vkGetPhysicalDeviceExternalBufferPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties) const3484     void vkGetPhysicalDeviceExternalBufferPropertiesKHR( VkPhysicalDevice                           physicalDevice,
3485                                                          const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,
3486                                                          VkExternalBufferProperties *               pExternalBufferProperties ) const VULKAN_HPP_NOEXCEPT
3487     {
3488       return ::vkGetPhysicalDeviceExternalBufferPropertiesKHR( physicalDevice, pExternalBufferInfo, pExternalBufferProperties );
3489     }
3490 
3491 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
3492     //=== VK_KHR_external_memory_win32 ===
3493 
vkGetMemoryWin32HandleKHR(VkDevice device,const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const3494     VkResult vkGetMemoryWin32HandleKHR( VkDevice device, const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo, HANDLE * pHandle ) const VULKAN_HPP_NOEXCEPT
3495     {
3496       return ::vkGetMemoryWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
3497     }
3498 
vkGetMemoryWin32HandlePropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties) const3499     VkResult vkGetMemoryWin32HandlePropertiesKHR( VkDevice                           device,
3500                                                   VkExternalMemoryHandleTypeFlagBits handleType,
3501                                                   HANDLE                             handle,
3502                                                   VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties ) const VULKAN_HPP_NOEXCEPT
3503     {
3504       return ::vkGetMemoryWin32HandlePropertiesKHR( device, handleType, handle, pMemoryWin32HandleProperties );
3505     }
3506 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
3507 
3508     //=== VK_KHR_external_memory_fd ===
3509 
vkGetMemoryFdKHR(VkDevice device,const VkMemoryGetFdInfoKHR * pGetFdInfo,int * pFd) const3510     VkResult vkGetMemoryFdKHR( VkDevice device, const VkMemoryGetFdInfoKHR * pGetFdInfo, int * pFd ) const VULKAN_HPP_NOEXCEPT
3511     {
3512       return ::vkGetMemoryFdKHR( device, pGetFdInfo, pFd );
3513     }
3514 
vkGetMemoryFdPropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,int fd,VkMemoryFdPropertiesKHR * pMemoryFdProperties) const3515     VkResult vkGetMemoryFdPropertiesKHR( VkDevice                           device,
3516                                          VkExternalMemoryHandleTypeFlagBits handleType,
3517                                          int                                fd,
3518                                          VkMemoryFdPropertiesKHR *          pMemoryFdProperties ) const VULKAN_HPP_NOEXCEPT
3519     {
3520       return ::vkGetMemoryFdPropertiesKHR( device, handleType, fd, pMemoryFdProperties );
3521     }
3522 
3523     //=== VK_KHR_external_semaphore_capabilities ===
3524 
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties) const3525     void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( VkPhysicalDevice                              physicalDevice,
3526                                                             const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,
3527                                                             VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT
3528     {
3529       return ::vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties );
3530     }
3531 
3532 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
3533     //=== VK_KHR_external_semaphore_win32 ===
3534 
vkImportSemaphoreWin32HandleKHR(VkDevice device,const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo) const3535     VkResult vkImportSemaphoreWin32HandleKHR( VkDevice                                    device,
3536                                               const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT
3537     {
3538       return ::vkImportSemaphoreWin32HandleKHR( device, pImportSemaphoreWin32HandleInfo );
3539     }
3540 
3541     VkResult
vkGetSemaphoreWin32HandleKHR(VkDevice device,const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const3542       vkGetSemaphoreWin32HandleKHR( VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo, HANDLE * pHandle ) const VULKAN_HPP_NOEXCEPT
3543     {
3544       return ::vkGetSemaphoreWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
3545     }
3546 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
3547 
3548     //=== VK_KHR_external_semaphore_fd ===
3549 
vkImportSemaphoreFdKHR(VkDevice device,const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo) const3550     VkResult vkImportSemaphoreFdKHR( VkDevice device, const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) const VULKAN_HPP_NOEXCEPT
3551     {
3552       return ::vkImportSemaphoreFdKHR( device, pImportSemaphoreFdInfo );
3553     }
3554 
vkGetSemaphoreFdKHR(VkDevice device,const VkSemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd) const3555     VkResult vkGetSemaphoreFdKHR( VkDevice device, const VkSemaphoreGetFdInfoKHR * pGetFdInfo, int * pFd ) const VULKAN_HPP_NOEXCEPT
3556     {
3557       return ::vkGetSemaphoreFdKHR( device, pGetFdInfo, pFd );
3558     }
3559 
3560     //=== VK_KHR_push_descriptor ===
3561 
vkCmdPushDescriptorSetKHR(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t set,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites) const3562     void vkCmdPushDescriptorSetKHR( VkCommandBuffer              commandBuffer,
3563                                     VkPipelineBindPoint          pipelineBindPoint,
3564                                     VkPipelineLayout             layout,
3565                                     uint32_t                     set,
3566                                     uint32_t                     descriptorWriteCount,
3567                                     const VkWriteDescriptorSet * pDescriptorWrites ) const VULKAN_HPP_NOEXCEPT
3568     {
3569       return ::vkCmdPushDescriptorSetKHR( commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites );
3570     }
3571 
vkCmdPushDescriptorSetWithTemplateKHR(VkCommandBuffer commandBuffer,VkDescriptorUpdateTemplate descriptorUpdateTemplate,VkPipelineLayout layout,uint32_t set,const void * pData) const3572     void vkCmdPushDescriptorSetWithTemplateKHR( VkCommandBuffer            commandBuffer,
3573                                                 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3574                                                 VkPipelineLayout           layout,
3575                                                 uint32_t                   set,
3576                                                 const void *               pData ) const VULKAN_HPP_NOEXCEPT
3577     {
3578       return ::vkCmdPushDescriptorSetWithTemplateKHR( commandBuffer, descriptorUpdateTemplate, layout, set, pData );
3579     }
3580 
3581     //=== VK_EXT_conditional_rendering ===
3582 
vkCmdBeginConditionalRenderingEXT(VkCommandBuffer commandBuffer,const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin) const3583     void vkCmdBeginConditionalRenderingEXT( VkCommandBuffer                            commandBuffer,
3584                                             const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) const VULKAN_HPP_NOEXCEPT
3585     {
3586       return ::vkCmdBeginConditionalRenderingEXT( commandBuffer, pConditionalRenderingBegin );
3587     }
3588 
vkCmdEndConditionalRenderingEXT(VkCommandBuffer commandBuffer) const3589     void vkCmdEndConditionalRenderingEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
3590     {
3591       return ::vkCmdEndConditionalRenderingEXT( commandBuffer );
3592     }
3593 
3594     //=== VK_KHR_descriptor_update_template ===
3595 
vkCreateDescriptorUpdateTemplateKHR(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate) const3596     VkResult vkCreateDescriptorUpdateTemplateKHR( VkDevice                                     device,
3597                                                   const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,
3598                                                   const VkAllocationCallbacks *                pAllocator,
3599                                                   VkDescriptorUpdateTemplate *                 pDescriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT
3600     {
3601       return ::vkCreateDescriptorUpdateTemplateKHR( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate );
3602     }
3603 
vkDestroyDescriptorUpdateTemplateKHR(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator) const3604     void vkDestroyDescriptorUpdateTemplateKHR( VkDevice                      device,
3605                                                VkDescriptorUpdateTemplate    descriptorUpdateTemplate,
3606                                                const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
3607     {
3608       return ::vkDestroyDescriptorUpdateTemplateKHR( device, descriptorUpdateTemplate, pAllocator );
3609     }
3610 
vkUpdateDescriptorSetWithTemplateKHR(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData) const3611     void vkUpdateDescriptorSetWithTemplateKHR( VkDevice                   device,
3612                                                VkDescriptorSet            descriptorSet,
3613                                                VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3614                                                const void *               pData ) const VULKAN_HPP_NOEXCEPT
3615     {
3616       return ::vkUpdateDescriptorSetWithTemplateKHR( device, descriptorSet, descriptorUpdateTemplate, pData );
3617     }
3618 
3619     //=== VK_NV_clip_space_w_scaling ===
3620 
vkCmdSetViewportWScalingNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewportWScalingNV * pViewportWScalings) const3621     void vkCmdSetViewportWScalingNV( VkCommandBuffer              commandBuffer,
3622                                      uint32_t                     firstViewport,
3623                                      uint32_t                     viewportCount,
3624                                      const VkViewportWScalingNV * pViewportWScalings ) const VULKAN_HPP_NOEXCEPT
3625     {
3626       return ::vkCmdSetViewportWScalingNV( commandBuffer, firstViewport, viewportCount, pViewportWScalings );
3627     }
3628 
3629     //=== VK_EXT_direct_mode_display ===
3630 
vkReleaseDisplayEXT(VkPhysicalDevice physicalDevice,VkDisplayKHR display) const3631     VkResult vkReleaseDisplayEXT( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
3632     {
3633       return ::vkReleaseDisplayEXT( physicalDevice, display );
3634     }
3635 
3636 #  if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
3637     //=== VK_EXT_acquire_xlib_display ===
3638 
vkAcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice,Display * dpy,VkDisplayKHR display) const3639     VkResult vkAcquireXlibDisplayEXT( VkPhysicalDevice physicalDevice, Display * dpy, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
3640     {
3641       return ::vkAcquireXlibDisplayEXT( physicalDevice, dpy, display );
3642     }
3643 
vkGetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice,Display * dpy,RROutput rrOutput,VkDisplayKHR * pDisplay) const3644     VkResult vkGetRandROutputDisplayEXT( VkPhysicalDevice physicalDevice, Display * dpy, RROutput rrOutput, VkDisplayKHR * pDisplay ) const VULKAN_HPP_NOEXCEPT
3645     {
3646       return ::vkGetRandROutputDisplayEXT( physicalDevice, dpy, rrOutput, pDisplay );
3647     }
3648 #  endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
3649 
3650     //=== VK_EXT_display_surface_counter ===
3651 
vkGetPhysicalDeviceSurfaceCapabilities2EXT(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilities2EXT * pSurfaceCapabilities) const3652     VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT( VkPhysicalDevice            physicalDevice,
3653                                                          VkSurfaceKHR                surface,
3654                                                          VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
3655     {
3656       return ::vkGetPhysicalDeviceSurfaceCapabilities2EXT( physicalDevice, surface, pSurfaceCapabilities );
3657     }
3658 
3659     //=== VK_EXT_display_control ===
3660 
vkDisplayPowerControlEXT(VkDevice device,VkDisplayKHR display,const VkDisplayPowerInfoEXT * pDisplayPowerInfo) const3661     VkResult vkDisplayPowerControlEXT( VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) const VULKAN_HPP_NOEXCEPT
3662     {
3663       return ::vkDisplayPowerControlEXT( device, display, pDisplayPowerInfo );
3664     }
3665 
vkRegisterDeviceEventEXT(VkDevice device,const VkDeviceEventInfoEXT * pDeviceEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const3666     VkResult vkRegisterDeviceEventEXT( VkDevice                      device,
3667                                        const VkDeviceEventInfoEXT *  pDeviceEventInfo,
3668                                        const VkAllocationCallbacks * pAllocator,
3669                                        VkFence *                     pFence ) const VULKAN_HPP_NOEXCEPT
3670     {
3671       return ::vkRegisterDeviceEventEXT( device, pDeviceEventInfo, pAllocator, pFence );
3672     }
3673 
vkRegisterDisplayEventEXT(VkDevice device,VkDisplayKHR display,const VkDisplayEventInfoEXT * pDisplayEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const3674     VkResult vkRegisterDisplayEventEXT( VkDevice                      device,
3675                                         VkDisplayKHR                  display,
3676                                         const VkDisplayEventInfoEXT * pDisplayEventInfo,
3677                                         const VkAllocationCallbacks * pAllocator,
3678                                         VkFence *                     pFence ) const VULKAN_HPP_NOEXCEPT
3679     {
3680       return ::vkRegisterDisplayEventEXT( device, display, pDisplayEventInfo, pAllocator, pFence );
3681     }
3682 
vkGetSwapchainCounterEXT(VkDevice device,VkSwapchainKHR swapchain,VkSurfaceCounterFlagBitsEXT counter,uint64_t * pCounterValue) const3683     VkResult vkGetSwapchainCounterEXT( VkDevice                    device,
3684                                        VkSwapchainKHR              swapchain,
3685                                        VkSurfaceCounterFlagBitsEXT counter,
3686                                        uint64_t *                  pCounterValue ) const VULKAN_HPP_NOEXCEPT
3687     {
3688       return ::vkGetSwapchainCounterEXT( device, swapchain, counter, pCounterValue );
3689     }
3690 
3691     //=== VK_GOOGLE_display_timing ===
3692 
vkGetRefreshCycleDurationGOOGLE(VkDevice device,VkSwapchainKHR swapchain,VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties) const3693     VkResult vkGetRefreshCycleDurationGOOGLE( VkDevice                       device,
3694                                               VkSwapchainKHR                 swapchain,
3695                                               VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) const VULKAN_HPP_NOEXCEPT
3696     {
3697       return ::vkGetRefreshCycleDurationGOOGLE( device, swapchain, pDisplayTimingProperties );
3698     }
3699 
vkGetPastPresentationTimingGOOGLE(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pPresentationTimingCount,VkPastPresentationTimingGOOGLE * pPresentationTimings) const3700     VkResult vkGetPastPresentationTimingGOOGLE( VkDevice                         device,
3701                                                 VkSwapchainKHR                   swapchain,
3702                                                 uint32_t *                       pPresentationTimingCount,
3703                                                 VkPastPresentationTimingGOOGLE * pPresentationTimings ) const VULKAN_HPP_NOEXCEPT
3704     {
3705       return ::vkGetPastPresentationTimingGOOGLE( device, swapchain, pPresentationTimingCount, pPresentationTimings );
3706     }
3707 
3708     //=== VK_EXT_discard_rectangles ===
3709 
vkCmdSetDiscardRectangleEXT(VkCommandBuffer commandBuffer,uint32_t firstDiscardRectangle,uint32_t discardRectangleCount,const VkRect2D * pDiscardRectangles) const3710     void vkCmdSetDiscardRectangleEXT( VkCommandBuffer  commandBuffer,
3711                                       uint32_t         firstDiscardRectangle,
3712                                       uint32_t         discardRectangleCount,
3713                                       const VkRect2D * pDiscardRectangles ) const VULKAN_HPP_NOEXCEPT
3714     {
3715       return ::vkCmdSetDiscardRectangleEXT( commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles );
3716     }
3717 
vkCmdSetDiscardRectangleEnableEXT(VkCommandBuffer commandBuffer,VkBool32 discardRectangleEnable) const3718     void vkCmdSetDiscardRectangleEnableEXT( VkCommandBuffer commandBuffer, VkBool32 discardRectangleEnable ) const VULKAN_HPP_NOEXCEPT
3719     {
3720       return ::vkCmdSetDiscardRectangleEnableEXT( commandBuffer, discardRectangleEnable );
3721     }
3722 
vkCmdSetDiscardRectangleModeEXT(VkCommandBuffer commandBuffer,VkDiscardRectangleModeEXT discardRectangleMode) const3723     void vkCmdSetDiscardRectangleModeEXT( VkCommandBuffer commandBuffer, VkDiscardRectangleModeEXT discardRectangleMode ) const VULKAN_HPP_NOEXCEPT
3724     {
3725       return ::vkCmdSetDiscardRectangleModeEXT( commandBuffer, discardRectangleMode );
3726     }
3727 
3728     //=== VK_EXT_hdr_metadata ===
3729 
vkSetHdrMetadataEXT(VkDevice device,uint32_t swapchainCount,const VkSwapchainKHR * pSwapchains,const VkHdrMetadataEXT * pMetadata) const3730     void vkSetHdrMetadataEXT( VkDevice                 device,
3731                               uint32_t                 swapchainCount,
3732                               const VkSwapchainKHR *   pSwapchains,
3733                               const VkHdrMetadataEXT * pMetadata ) const VULKAN_HPP_NOEXCEPT
3734     {
3735       return ::vkSetHdrMetadataEXT( device, swapchainCount, pSwapchains, pMetadata );
3736     }
3737 
3738     //=== VK_KHR_create_renderpass2 ===
3739 
vkCreateRenderPass2KHR(VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass) const3740     VkResult vkCreateRenderPass2KHR( VkDevice                        device,
3741                                      const VkRenderPassCreateInfo2 * pCreateInfo,
3742                                      const VkAllocationCallbacks *   pAllocator,
3743                                      VkRenderPass *                  pRenderPass ) const VULKAN_HPP_NOEXCEPT
3744     {
3745       return ::vkCreateRenderPass2KHR( device, pCreateInfo, pAllocator, pRenderPass );
3746     }
3747 
vkCmdBeginRenderPass2KHR(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo) const3748     void vkCmdBeginRenderPass2KHR( VkCommandBuffer               commandBuffer,
3749                                    const VkRenderPassBeginInfo * pRenderPassBegin,
3750                                    const VkSubpassBeginInfo *    pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT
3751     {
3752       return ::vkCmdBeginRenderPass2KHR( commandBuffer, pRenderPassBegin, pSubpassBeginInfo );
3753     }
3754 
vkCmdNextSubpass2KHR(VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo) const3755     void vkCmdNextSubpass2KHR( VkCommandBuffer            commandBuffer,
3756                                const VkSubpassBeginInfo * pSubpassBeginInfo,
3757                                const VkSubpassEndInfo *   pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
3758     {
3759       return ::vkCmdNextSubpass2KHR( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo );
3760     }
3761 
vkCmdEndRenderPass2KHR(VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo) const3762     void vkCmdEndRenderPass2KHR( VkCommandBuffer commandBuffer, const VkSubpassEndInfo * pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
3763     {
3764       return ::vkCmdEndRenderPass2KHR( commandBuffer, pSubpassEndInfo );
3765     }
3766 
3767     //=== VK_KHR_shared_presentable_image ===
3768 
vkGetSwapchainStatusKHR(VkDevice device,VkSwapchainKHR swapchain) const3769     VkResult vkGetSwapchainStatusKHR( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
3770     {
3771       return ::vkGetSwapchainStatusKHR( device, swapchain );
3772     }
3773 
3774     //=== VK_KHR_external_fence_capabilities ===
3775 
vkGetPhysicalDeviceExternalFencePropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties) const3776     void vkGetPhysicalDeviceExternalFencePropertiesKHR( VkPhysicalDevice                          physicalDevice,
3777                                                         const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,
3778                                                         VkExternalFenceProperties *               pExternalFenceProperties ) const VULKAN_HPP_NOEXCEPT
3779     {
3780       return ::vkGetPhysicalDeviceExternalFencePropertiesKHR( physicalDevice, pExternalFenceInfo, pExternalFenceProperties );
3781     }
3782 
3783 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
3784     //=== VK_KHR_external_fence_win32 ===
3785 
vkImportFenceWin32HandleKHR(VkDevice device,const VkImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo) const3786     VkResult vkImportFenceWin32HandleKHR( VkDevice device, const VkImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT
3787     {
3788       return ::vkImportFenceWin32HandleKHR( device, pImportFenceWin32HandleInfo );
3789     }
3790 
vkGetFenceWin32HandleKHR(VkDevice device,const VkFenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const3791     VkResult vkGetFenceWin32HandleKHR( VkDevice device, const VkFenceGetWin32HandleInfoKHR * pGetWin32HandleInfo, HANDLE * pHandle ) const VULKAN_HPP_NOEXCEPT
3792     {
3793       return ::vkGetFenceWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
3794     }
3795 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
3796 
3797     //=== VK_KHR_external_fence_fd ===
3798 
vkImportFenceFdKHR(VkDevice device,const VkImportFenceFdInfoKHR * pImportFenceFdInfo) const3799     VkResult vkImportFenceFdKHR( VkDevice device, const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) const VULKAN_HPP_NOEXCEPT
3800     {
3801       return ::vkImportFenceFdKHR( device, pImportFenceFdInfo );
3802     }
3803 
vkGetFenceFdKHR(VkDevice device,const VkFenceGetFdInfoKHR * pGetFdInfo,int * pFd) const3804     VkResult vkGetFenceFdKHR( VkDevice device, const VkFenceGetFdInfoKHR * pGetFdInfo, int * pFd ) const VULKAN_HPP_NOEXCEPT
3805     {
3806       return ::vkGetFenceFdKHR( device, pGetFdInfo, pFd );
3807     }
3808 
3809     //=== VK_KHR_performance_query ===
3810 
3811     VkResult
vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,uint32_t * pCounterCount,VkPerformanceCounterKHR * pCounters,VkPerformanceCounterDescriptionKHR * pCounterDescriptions) const3812       vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( VkPhysicalDevice                     physicalDevice,
3813                                                                        uint32_t                             queueFamilyIndex,
3814                                                                        uint32_t *                           pCounterCount,
3815                                                                        VkPerformanceCounterKHR *            pCounters,
3816                                                                        VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) const VULKAN_HPP_NOEXCEPT
3817     {
3818       return ::vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
3819         physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions );
3820     }
3821 
vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(VkPhysicalDevice physicalDevice,const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,uint32_t * pNumPasses) const3822     void vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( VkPhysicalDevice                            physicalDevice,
3823                                                                   const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,
3824                                                                   uint32_t *                                  pNumPasses ) const VULKAN_HPP_NOEXCEPT
3825     {
3826       return ::vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( physicalDevice, pPerformanceQueryCreateInfo, pNumPasses );
3827     }
3828 
vkAcquireProfilingLockKHR(VkDevice device,const VkAcquireProfilingLockInfoKHR * pInfo) const3829     VkResult vkAcquireProfilingLockKHR( VkDevice device, const VkAcquireProfilingLockInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
3830     {
3831       return ::vkAcquireProfilingLockKHR( device, pInfo );
3832     }
3833 
vkReleaseProfilingLockKHR(VkDevice device) const3834     void vkReleaseProfilingLockKHR( VkDevice device ) const VULKAN_HPP_NOEXCEPT
3835     {
3836       return ::vkReleaseProfilingLockKHR( device );
3837     }
3838 
3839     //=== VK_KHR_get_surface_capabilities2 ===
3840 
vkGetPhysicalDeviceSurfaceCapabilities2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VkSurfaceCapabilities2KHR * pSurfaceCapabilities) const3841     VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR( VkPhysicalDevice                        physicalDevice,
3842                                                          const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,
3843                                                          VkSurfaceCapabilities2KHR *             pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
3844     {
3845       return ::vkGetPhysicalDeviceSurfaceCapabilities2KHR( physicalDevice, pSurfaceInfo, pSurfaceCapabilities );
3846     }
3847 
vkGetPhysicalDeviceSurfaceFormats2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pSurfaceFormatCount,VkSurfaceFormat2KHR * pSurfaceFormats) const3848     VkResult vkGetPhysicalDeviceSurfaceFormats2KHR( VkPhysicalDevice                        physicalDevice,
3849                                                     const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,
3850                                                     uint32_t *                              pSurfaceFormatCount,
3851                                                     VkSurfaceFormat2KHR *                   pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT
3852     {
3853       return ::vkGetPhysicalDeviceSurfaceFormats2KHR( physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats );
3854     }
3855 
3856     //=== VK_KHR_get_display_properties2 ===
3857 
vkGetPhysicalDeviceDisplayProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayProperties2KHR * pProperties) const3858     VkResult vkGetPhysicalDeviceDisplayProperties2KHR( VkPhysicalDevice          physicalDevice,
3859                                                        uint32_t *                pPropertyCount,
3860                                                        VkDisplayProperties2KHR * pProperties ) const VULKAN_HPP_NOEXCEPT
3861     {
3862       return ::vkGetPhysicalDeviceDisplayProperties2KHR( physicalDevice, pPropertyCount, pProperties );
3863     }
3864 
vkGetPhysicalDeviceDisplayPlaneProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPlaneProperties2KHR * pProperties) const3865     VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR( VkPhysicalDevice               physicalDevice,
3866                                                             uint32_t *                     pPropertyCount,
3867                                                             VkDisplayPlaneProperties2KHR * pProperties ) const VULKAN_HPP_NOEXCEPT
3868     {
3869       return ::vkGetPhysicalDeviceDisplayPlaneProperties2KHR( physicalDevice, pPropertyCount, pProperties );
3870     }
3871 
vkGetDisplayModeProperties2KHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,uint32_t * pPropertyCount,VkDisplayModeProperties2KHR * pProperties) const3872     VkResult vkGetDisplayModeProperties2KHR( VkPhysicalDevice              physicalDevice,
3873                                              VkDisplayKHR                  display,
3874                                              uint32_t *                    pPropertyCount,
3875                                              VkDisplayModeProperties2KHR * pProperties ) const VULKAN_HPP_NOEXCEPT
3876     {
3877       return ::vkGetDisplayModeProperties2KHR( physicalDevice, display, pPropertyCount, pProperties );
3878     }
3879 
vkGetDisplayPlaneCapabilities2KHR(VkPhysicalDevice physicalDevice,const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo,VkDisplayPlaneCapabilities2KHR * pCapabilities) const3880     VkResult vkGetDisplayPlaneCapabilities2KHR( VkPhysicalDevice                 physicalDevice,
3881                                                 const VkDisplayPlaneInfo2KHR *   pDisplayPlaneInfo,
3882                                                 VkDisplayPlaneCapabilities2KHR * pCapabilities ) const VULKAN_HPP_NOEXCEPT
3883     {
3884       return ::vkGetDisplayPlaneCapabilities2KHR( physicalDevice, pDisplayPlaneInfo, pCapabilities );
3885     }
3886 
3887 #  if defined( VK_USE_PLATFORM_IOS_MVK )
3888     //=== VK_MVK_ios_surface ===
3889 
vkCreateIOSSurfaceMVK(VkInstance instance,const VkIOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const3890     VkResult vkCreateIOSSurfaceMVK( VkInstance                        instance,
3891                                     const VkIOSSurfaceCreateInfoMVK * pCreateInfo,
3892                                     const VkAllocationCallbacks *     pAllocator,
3893                                     VkSurfaceKHR *                    pSurface ) const VULKAN_HPP_NOEXCEPT
3894     {
3895       return ::vkCreateIOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface );
3896     }
3897 #  endif /*VK_USE_PLATFORM_IOS_MVK*/
3898 
3899 #  if defined( VK_USE_PLATFORM_MACOS_MVK )
3900     //=== VK_MVK_macos_surface ===
3901 
vkCreateMacOSSurfaceMVK(VkInstance instance,const VkMacOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const3902     VkResult vkCreateMacOSSurfaceMVK( VkInstance                          instance,
3903                                       const VkMacOSSurfaceCreateInfoMVK * pCreateInfo,
3904                                       const VkAllocationCallbacks *       pAllocator,
3905                                       VkSurfaceKHR *                      pSurface ) const VULKAN_HPP_NOEXCEPT
3906     {
3907       return ::vkCreateMacOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface );
3908     }
3909 #  endif /*VK_USE_PLATFORM_MACOS_MVK*/
3910 
3911     //=== VK_EXT_debug_utils ===
3912 
vkSetDebugUtilsObjectNameEXT(VkDevice device,const VkDebugUtilsObjectNameInfoEXT * pNameInfo) const3913     VkResult vkSetDebugUtilsObjectNameEXT( VkDevice device, const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) const VULKAN_HPP_NOEXCEPT
3914     {
3915       return ::vkSetDebugUtilsObjectNameEXT( device, pNameInfo );
3916     }
3917 
vkSetDebugUtilsObjectTagEXT(VkDevice device,const VkDebugUtilsObjectTagInfoEXT * pTagInfo) const3918     VkResult vkSetDebugUtilsObjectTagEXT( VkDevice device, const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) const VULKAN_HPP_NOEXCEPT
3919     {
3920       return ::vkSetDebugUtilsObjectTagEXT( device, pTagInfo );
3921     }
3922 
vkQueueBeginDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo) const3923     void vkQueueBeginDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT
3924     {
3925       return ::vkQueueBeginDebugUtilsLabelEXT( queue, pLabelInfo );
3926     }
3927 
vkQueueEndDebugUtilsLabelEXT(VkQueue queue) const3928     void vkQueueEndDebugUtilsLabelEXT( VkQueue queue ) const VULKAN_HPP_NOEXCEPT
3929     {
3930       return ::vkQueueEndDebugUtilsLabelEXT( queue );
3931     }
3932 
vkQueueInsertDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo) const3933     void vkQueueInsertDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT
3934     {
3935       return ::vkQueueInsertDebugUtilsLabelEXT( queue, pLabelInfo );
3936     }
3937 
vkCmdBeginDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo) const3938     void vkCmdBeginDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT
3939     {
3940       return ::vkCmdBeginDebugUtilsLabelEXT( commandBuffer, pLabelInfo );
3941     }
3942 
vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) const3943     void vkCmdEndDebugUtilsLabelEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
3944     {
3945       return ::vkCmdEndDebugUtilsLabelEXT( commandBuffer );
3946     }
3947 
vkCmdInsertDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo) const3948     void vkCmdInsertDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT
3949     {
3950       return ::vkCmdInsertDebugUtilsLabelEXT( commandBuffer, pLabelInfo );
3951     }
3952 
vkCreateDebugUtilsMessengerEXT(VkInstance instance,const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugUtilsMessengerEXT * pMessenger) const3953     VkResult vkCreateDebugUtilsMessengerEXT( VkInstance                                 instance,
3954                                              const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo,
3955                                              const VkAllocationCallbacks *              pAllocator,
3956                                              VkDebugUtilsMessengerEXT *                 pMessenger ) const VULKAN_HPP_NOEXCEPT
3957     {
3958       return ::vkCreateDebugUtilsMessengerEXT( instance, pCreateInfo, pAllocator, pMessenger );
3959     }
3960 
vkDestroyDebugUtilsMessengerEXT(VkInstance instance,VkDebugUtilsMessengerEXT messenger,const VkAllocationCallbacks * pAllocator) const3961     void vkDestroyDebugUtilsMessengerEXT( VkInstance                    instance,
3962                                           VkDebugUtilsMessengerEXT      messenger,
3963                                           const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
3964     {
3965       return ::vkDestroyDebugUtilsMessengerEXT( instance, messenger, pAllocator );
3966     }
3967 
vkSubmitDebugUtilsMessageEXT(VkInstance instance,VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VkDebugUtilsMessageTypeFlagsEXT messageTypes,const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData) const3968     void vkSubmitDebugUtilsMessageEXT( VkInstance                                   instance,
3969                                        VkDebugUtilsMessageSeverityFlagBitsEXT       messageSeverity,
3970                                        VkDebugUtilsMessageTypeFlagsEXT              messageTypes,
3971                                        const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) const VULKAN_HPP_NOEXCEPT
3972     {
3973       return ::vkSubmitDebugUtilsMessageEXT( instance, messageSeverity, messageTypes, pCallbackData );
3974     }
3975 
3976 #  if defined( VK_USE_PLATFORM_ANDROID_KHR )
3977     //=== VK_ANDROID_external_memory_android_hardware_buffer ===
3978 
vkGetAndroidHardwareBufferPropertiesANDROID(VkDevice device,const struct AHardwareBuffer * buffer,VkAndroidHardwareBufferPropertiesANDROID * pProperties) const3979     VkResult vkGetAndroidHardwareBufferPropertiesANDROID( VkDevice                                   device,
3980                                                           const struct AHardwareBuffer *             buffer,
3981                                                           VkAndroidHardwareBufferPropertiesANDROID * pProperties ) const VULKAN_HPP_NOEXCEPT
3982     {
3983       return ::vkGetAndroidHardwareBufferPropertiesANDROID( device, buffer, pProperties );
3984     }
3985 
vkGetMemoryAndroidHardwareBufferANDROID(VkDevice device,const VkMemoryGetAndroidHardwareBufferInfoANDROID * pInfo,struct AHardwareBuffer ** pBuffer) const3986     VkResult vkGetMemoryAndroidHardwareBufferANDROID( VkDevice                                            device,
3987                                                       const VkMemoryGetAndroidHardwareBufferInfoANDROID * pInfo,
3988                                                       struct AHardwareBuffer **                           pBuffer ) const VULKAN_HPP_NOEXCEPT
3989     {
3990       return ::vkGetMemoryAndroidHardwareBufferANDROID( device, pInfo, pBuffer );
3991     }
3992 #  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
3993 
3994     //=== VK_EXT_sample_locations ===
3995 
vkCmdSetSampleLocationsEXT(VkCommandBuffer commandBuffer,const VkSampleLocationsInfoEXT * pSampleLocationsInfo) const3996     void vkCmdSetSampleLocationsEXT( VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) const VULKAN_HPP_NOEXCEPT
3997     {
3998       return ::vkCmdSetSampleLocationsEXT( commandBuffer, pSampleLocationsInfo );
3999     }
4000 
vkGetPhysicalDeviceMultisamplePropertiesEXT(VkPhysicalDevice physicalDevice,VkSampleCountFlagBits samples,VkMultisamplePropertiesEXT * pMultisampleProperties) const4001     void vkGetPhysicalDeviceMultisamplePropertiesEXT( VkPhysicalDevice             physicalDevice,
4002                                                       VkSampleCountFlagBits        samples,
4003                                                       VkMultisamplePropertiesEXT * pMultisampleProperties ) const VULKAN_HPP_NOEXCEPT
4004     {
4005       return ::vkGetPhysicalDeviceMultisamplePropertiesEXT( physicalDevice, samples, pMultisampleProperties );
4006     }
4007 
4008     //=== VK_KHR_get_memory_requirements2 ===
4009 
vkGetImageMemoryRequirements2KHR(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const4010     void vkGetImageMemoryRequirements2KHR( VkDevice                               device,
4011                                            const VkImageMemoryRequirementsInfo2 * pInfo,
4012                                            VkMemoryRequirements2 *                pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
4013     {
4014       return ::vkGetImageMemoryRequirements2KHR( device, pInfo, pMemoryRequirements );
4015     }
4016 
vkGetBufferMemoryRequirements2KHR(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const4017     void vkGetBufferMemoryRequirements2KHR( VkDevice                                device,
4018                                             const VkBufferMemoryRequirementsInfo2 * pInfo,
4019                                             VkMemoryRequirements2 *                 pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
4020     {
4021       return ::vkGetBufferMemoryRequirements2KHR( device, pInfo, pMemoryRequirements );
4022     }
4023 
vkGetImageSparseMemoryRequirements2KHR(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements) const4024     void vkGetImageSparseMemoryRequirements2KHR( VkDevice                                     device,
4025                                                  const VkImageSparseMemoryRequirementsInfo2 * pInfo,
4026                                                  uint32_t *                                   pSparseMemoryRequirementCount,
4027                                                  VkSparseImageMemoryRequirements2 *           pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
4028     {
4029       return ::vkGetImageSparseMemoryRequirements2KHR( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
4030     }
4031 
4032     //=== VK_KHR_acceleration_structure ===
4033 
vkCreateAccelerationStructureKHR(VkDevice device,const VkAccelerationStructureCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureKHR * pAccelerationStructure) const4034     VkResult vkCreateAccelerationStructureKHR( VkDevice                                     device,
4035                                                const VkAccelerationStructureCreateInfoKHR * pCreateInfo,
4036                                                const VkAllocationCallbacks *                pAllocator,
4037                                                VkAccelerationStructureKHR *                 pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT
4038     {
4039       return ::vkCreateAccelerationStructureKHR( device, pCreateInfo, pAllocator, pAccelerationStructure );
4040     }
4041 
vkDestroyAccelerationStructureKHR(VkDevice device,VkAccelerationStructureKHR accelerationStructure,const VkAllocationCallbacks * pAllocator) const4042     void vkDestroyAccelerationStructureKHR( VkDevice                      device,
4043                                             VkAccelerationStructureKHR    accelerationStructure,
4044                                             const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
4045     {
4046       return ::vkDestroyAccelerationStructureKHR( device, accelerationStructure, pAllocator );
4047     }
4048 
vkCmdBuildAccelerationStructuresKHR(VkCommandBuffer commandBuffer,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos) const4049     void vkCmdBuildAccelerationStructuresKHR( VkCommandBuffer                                          commandBuffer,
4050                                               uint32_t                                                 infoCount,
4051                                               const VkAccelerationStructureBuildGeometryInfoKHR *      pInfos,
4052                                               const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos ) const VULKAN_HPP_NOEXCEPT
4053     {
4054       return ::vkCmdBuildAccelerationStructuresKHR( commandBuffer, infoCount, pInfos, ppBuildRangeInfos );
4055     }
4056 
vkCmdBuildAccelerationStructuresIndirectKHR(VkCommandBuffer commandBuffer,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkDeviceAddress * pIndirectDeviceAddresses,const uint32_t * pIndirectStrides,const uint32_t * const * ppMaxPrimitiveCounts) const4057     void vkCmdBuildAccelerationStructuresIndirectKHR( VkCommandBuffer                                     commandBuffer,
4058                                                       uint32_t                                            infoCount,
4059                                                       const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,
4060                                                       const VkDeviceAddress *                             pIndirectDeviceAddresses,
4061                                                       const uint32_t *                                    pIndirectStrides,
4062                                                       const uint32_t * const *                            ppMaxPrimitiveCounts ) const VULKAN_HPP_NOEXCEPT
4063     {
4064       return ::vkCmdBuildAccelerationStructuresIndirectKHR(
4065         commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts );
4066     }
4067 
vkBuildAccelerationStructuresKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos) const4068     VkResult vkBuildAccelerationStructuresKHR( VkDevice                                                 device,
4069                                                VkDeferredOperationKHR                                   deferredOperation,
4070                                                uint32_t                                                 infoCount,
4071                                                const VkAccelerationStructureBuildGeometryInfoKHR *      pInfos,
4072                                                const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos ) const VULKAN_HPP_NOEXCEPT
4073     {
4074       return ::vkBuildAccelerationStructuresKHR( device, deferredOperation, infoCount, pInfos, ppBuildRangeInfos );
4075     }
4076 
vkCopyAccelerationStructureKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyAccelerationStructureInfoKHR * pInfo) const4077     VkResult vkCopyAccelerationStructureKHR( VkDevice                                   device,
4078                                              VkDeferredOperationKHR                     deferredOperation,
4079                                              const VkCopyAccelerationStructureInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
4080     {
4081       return ::vkCopyAccelerationStructureKHR( device, deferredOperation, pInfo );
4082     }
4083 
vkCopyAccelerationStructureToMemoryKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo) const4084     VkResult vkCopyAccelerationStructureToMemoryKHR( VkDevice                                           device,
4085                                                      VkDeferredOperationKHR                             deferredOperation,
4086                                                      const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
4087     {
4088       return ::vkCopyAccelerationStructureToMemoryKHR( device, deferredOperation, pInfo );
4089     }
4090 
vkCopyMemoryToAccelerationStructureKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo) const4091     VkResult vkCopyMemoryToAccelerationStructureKHR( VkDevice                                           device,
4092                                                      VkDeferredOperationKHR                             deferredOperation,
4093                                                      const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
4094     {
4095       return ::vkCopyMemoryToAccelerationStructureKHR( device, deferredOperation, pInfo );
4096     }
4097 
vkWriteAccelerationStructuresPropertiesKHR(VkDevice device,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,size_t dataSize,void * pData,size_t stride) const4098     VkResult vkWriteAccelerationStructuresPropertiesKHR( VkDevice                           device,
4099                                                          uint32_t                           accelerationStructureCount,
4100                                                          const VkAccelerationStructureKHR * pAccelerationStructures,
4101                                                          VkQueryType                        queryType,
4102                                                          size_t                             dataSize,
4103                                                          void *                             pData,
4104                                                          size_t                             stride ) const VULKAN_HPP_NOEXCEPT
4105     {
4106       return ::vkWriteAccelerationStructuresPropertiesKHR( device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride );
4107     }
4108 
vkCmdCopyAccelerationStructureKHR(VkCommandBuffer commandBuffer,const VkCopyAccelerationStructureInfoKHR * pInfo) const4109     void vkCmdCopyAccelerationStructureKHR( VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
4110     {
4111       return ::vkCmdCopyAccelerationStructureKHR( commandBuffer, pInfo );
4112     }
4113 
vkCmdCopyAccelerationStructureToMemoryKHR(VkCommandBuffer commandBuffer,const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo) const4114     void vkCmdCopyAccelerationStructureToMemoryKHR( VkCommandBuffer                                    commandBuffer,
4115                                                     const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
4116     {
4117       return ::vkCmdCopyAccelerationStructureToMemoryKHR( commandBuffer, pInfo );
4118     }
4119 
vkCmdCopyMemoryToAccelerationStructureKHR(VkCommandBuffer commandBuffer,const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo) const4120     void vkCmdCopyMemoryToAccelerationStructureKHR( VkCommandBuffer                                    commandBuffer,
4121                                                     const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
4122     {
4123       return ::vkCmdCopyMemoryToAccelerationStructureKHR( commandBuffer, pInfo );
4124     }
4125 
vkGetAccelerationStructureDeviceAddressKHR(VkDevice device,const VkAccelerationStructureDeviceAddressInfoKHR * pInfo) const4126     VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR( VkDevice                                            device,
4127                                                                 const VkAccelerationStructureDeviceAddressInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
4128     {
4129       return ::vkGetAccelerationStructureDeviceAddressKHR( device, pInfo );
4130     }
4131 
vkCmdWriteAccelerationStructuresPropertiesKHR(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery) const4132     void vkCmdWriteAccelerationStructuresPropertiesKHR( VkCommandBuffer                    commandBuffer,
4133                                                         uint32_t                           accelerationStructureCount,
4134                                                         const VkAccelerationStructureKHR * pAccelerationStructures,
4135                                                         VkQueryType                        queryType,
4136                                                         VkQueryPool                        queryPool,
4137                                                         uint32_t                           firstQuery ) const VULKAN_HPP_NOEXCEPT
4138     {
4139       return ::vkCmdWriteAccelerationStructuresPropertiesKHR(
4140         commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery );
4141     }
4142 
vkGetDeviceAccelerationStructureCompatibilityKHR(VkDevice device,const VkAccelerationStructureVersionInfoKHR * pVersionInfo,VkAccelerationStructureCompatibilityKHR * pCompatibility) const4143     void vkGetDeviceAccelerationStructureCompatibilityKHR( VkDevice                                      device,
4144                                                            const VkAccelerationStructureVersionInfoKHR * pVersionInfo,
4145                                                            VkAccelerationStructureCompatibilityKHR *     pCompatibility ) const VULKAN_HPP_NOEXCEPT
4146     {
4147       return ::vkGetDeviceAccelerationStructureCompatibilityKHR( device, pVersionInfo, pCompatibility );
4148     }
4149 
vkGetAccelerationStructureBuildSizesKHR(VkDevice device,VkAccelerationStructureBuildTypeKHR buildType,const VkAccelerationStructureBuildGeometryInfoKHR * pBuildInfo,const uint32_t * pMaxPrimitiveCounts,VkAccelerationStructureBuildSizesInfoKHR * pSizeInfo) const4150     void vkGetAccelerationStructureBuildSizesKHR( VkDevice                                            device,
4151                                                   VkAccelerationStructureBuildTypeKHR                 buildType,
4152                                                   const VkAccelerationStructureBuildGeometryInfoKHR * pBuildInfo,
4153                                                   const uint32_t *                                    pMaxPrimitiveCounts,
4154                                                   VkAccelerationStructureBuildSizesInfoKHR *          pSizeInfo ) const VULKAN_HPP_NOEXCEPT
4155     {
4156       return ::vkGetAccelerationStructureBuildSizesKHR( device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo );
4157     }
4158 
4159     //=== VK_KHR_ray_tracing_pipeline ===
4160 
vkCmdTraceRaysKHR(VkCommandBuffer commandBuffer,const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,uint32_t width,uint32_t height,uint32_t depth) const4161     void vkCmdTraceRaysKHR( VkCommandBuffer                         commandBuffer,
4162                             const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,
4163                             const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,
4164                             const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,
4165                             const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,
4166                             uint32_t                                width,
4167                             uint32_t                                height,
4168                             uint32_t                                depth ) const VULKAN_HPP_NOEXCEPT
4169     {
4170       return ::vkCmdTraceRaysKHR(
4171         commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth );
4172     }
4173 
vkCreateRayTracingPipelinesKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const4174     VkResult vkCreateRayTracingPipelinesKHR( VkDevice                                  device,
4175                                              VkDeferredOperationKHR                    deferredOperation,
4176                                              VkPipelineCache                           pipelineCache,
4177                                              uint32_t                                  createInfoCount,
4178                                              const VkRayTracingPipelineCreateInfoKHR * pCreateInfos,
4179                                              const VkAllocationCallbacks *             pAllocator,
4180                                              VkPipeline *                              pPipelines ) const VULKAN_HPP_NOEXCEPT
4181     {
4182       return ::vkCreateRayTracingPipelinesKHR( device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
4183     }
4184 
vkGetRayTracingShaderGroupHandlesKHR(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData) const4185     VkResult vkGetRayTracingShaderGroupHandlesKHR(
4186       VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void * pData ) const VULKAN_HPP_NOEXCEPT
4187     {
4188       return ::vkGetRayTracingShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData );
4189     }
4190 
vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData) const4191     VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
4192       VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void * pData ) const VULKAN_HPP_NOEXCEPT
4193     {
4194       return ::vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData );
4195     }
4196 
vkCmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer,const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,VkDeviceAddress indirectDeviceAddress) const4197     void vkCmdTraceRaysIndirectKHR( VkCommandBuffer                         commandBuffer,
4198                                     const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,
4199                                     const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,
4200                                     const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,
4201                                     const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,
4202                                     VkDeviceAddress                         indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT
4203     {
4204       return ::vkCmdTraceRaysIndirectKHR(
4205         commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress );
4206     }
4207 
vkGetRayTracingShaderGroupStackSizeKHR(VkDevice device,VkPipeline pipeline,uint32_t group,VkShaderGroupShaderKHR groupShader) const4208     VkDeviceSize vkGetRayTracingShaderGroupStackSizeKHR( VkDevice               device,
4209                                                          VkPipeline             pipeline,
4210                                                          uint32_t               group,
4211                                                          VkShaderGroupShaderKHR groupShader ) const VULKAN_HPP_NOEXCEPT
4212     {
4213       return ::vkGetRayTracingShaderGroupStackSizeKHR( device, pipeline, group, groupShader );
4214     }
4215 
vkCmdSetRayTracingPipelineStackSizeKHR(VkCommandBuffer commandBuffer,uint32_t pipelineStackSize) const4216     void vkCmdSetRayTracingPipelineStackSizeKHR( VkCommandBuffer commandBuffer, uint32_t pipelineStackSize ) const VULKAN_HPP_NOEXCEPT
4217     {
4218       return ::vkCmdSetRayTracingPipelineStackSizeKHR( commandBuffer, pipelineStackSize );
4219     }
4220 
4221     //=== VK_KHR_sampler_ycbcr_conversion ===
4222 
vkCreateSamplerYcbcrConversionKHR(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion) const4223     VkResult vkCreateSamplerYcbcrConversionKHR( VkDevice                                   device,
4224                                                 const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,
4225                                                 const VkAllocationCallbacks *              pAllocator,
4226                                                 VkSamplerYcbcrConversion *                 pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT
4227     {
4228       return ::vkCreateSamplerYcbcrConversionKHR( device, pCreateInfo, pAllocator, pYcbcrConversion );
4229     }
4230 
vkDestroySamplerYcbcrConversionKHR(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator) const4231     void vkDestroySamplerYcbcrConversionKHR( VkDevice                      device,
4232                                              VkSamplerYcbcrConversion      ycbcrConversion,
4233                                              const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
4234     {
4235       return ::vkDestroySamplerYcbcrConversionKHR( device, ycbcrConversion, pAllocator );
4236     }
4237 
4238     //=== VK_KHR_bind_memory2 ===
4239 
vkBindBufferMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos) const4240     VkResult vkBindBufferMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT
4241     {
4242       return ::vkBindBufferMemory2KHR( device, bindInfoCount, pBindInfos );
4243     }
4244 
vkBindImageMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos) const4245     VkResult vkBindImageMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT
4246     {
4247       return ::vkBindImageMemory2KHR( device, bindInfoCount, pBindInfos );
4248     }
4249 
4250     //=== VK_EXT_image_drm_format_modifier ===
4251 
4252     VkResult
vkGetImageDrmFormatModifierPropertiesEXT(VkDevice device,VkImage image,VkImageDrmFormatModifierPropertiesEXT * pProperties) const4253       vkGetImageDrmFormatModifierPropertiesEXT( VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT * pProperties ) const VULKAN_HPP_NOEXCEPT
4254     {
4255       return ::vkGetImageDrmFormatModifierPropertiesEXT( device, image, pProperties );
4256     }
4257 
4258     //=== VK_EXT_validation_cache ===
4259 
vkCreateValidationCacheEXT(VkDevice device,const VkValidationCacheCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkValidationCacheEXT * pValidationCache) const4260     VkResult vkCreateValidationCacheEXT( VkDevice                               device,
4261                                          const VkValidationCacheCreateInfoEXT * pCreateInfo,
4262                                          const VkAllocationCallbacks *          pAllocator,
4263                                          VkValidationCacheEXT *                 pValidationCache ) const VULKAN_HPP_NOEXCEPT
4264     {
4265       return ::vkCreateValidationCacheEXT( device, pCreateInfo, pAllocator, pValidationCache );
4266     }
4267 
4268     void
vkDestroyValidationCacheEXT(VkDevice device,VkValidationCacheEXT validationCache,const VkAllocationCallbacks * pAllocator) const4269       vkDestroyValidationCacheEXT( VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
4270     {
4271       return ::vkDestroyValidationCacheEXT( device, validationCache, pAllocator );
4272     }
4273 
vkMergeValidationCachesEXT(VkDevice device,VkValidationCacheEXT dstCache,uint32_t srcCacheCount,const VkValidationCacheEXT * pSrcCaches) const4274     VkResult vkMergeValidationCachesEXT( VkDevice                     device,
4275                                          VkValidationCacheEXT         dstCache,
4276                                          uint32_t                     srcCacheCount,
4277                                          const VkValidationCacheEXT * pSrcCaches ) const VULKAN_HPP_NOEXCEPT
4278     {
4279       return ::vkMergeValidationCachesEXT( device, dstCache, srcCacheCount, pSrcCaches );
4280     }
4281 
vkGetValidationCacheDataEXT(VkDevice device,VkValidationCacheEXT validationCache,size_t * pDataSize,void * pData) const4282     VkResult vkGetValidationCacheDataEXT( VkDevice device, VkValidationCacheEXT validationCache, size_t * pDataSize, void * pData ) const VULKAN_HPP_NOEXCEPT
4283     {
4284       return ::vkGetValidationCacheDataEXT( device, validationCache, pDataSize, pData );
4285     }
4286 
4287     //=== VK_NV_shading_rate_image ===
4288 
vkCmdBindShadingRateImageNV(VkCommandBuffer commandBuffer,VkImageView imageView,VkImageLayout imageLayout) const4289     void vkCmdBindShadingRateImageNV( VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT
4290     {
4291       return ::vkCmdBindShadingRateImageNV( commandBuffer, imageView, imageLayout );
4292     }
4293 
vkCmdSetViewportShadingRatePaletteNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkShadingRatePaletteNV * pShadingRatePalettes) const4294     void vkCmdSetViewportShadingRatePaletteNV( VkCommandBuffer                commandBuffer,
4295                                                uint32_t                       firstViewport,
4296                                                uint32_t                       viewportCount,
4297                                                const VkShadingRatePaletteNV * pShadingRatePalettes ) const VULKAN_HPP_NOEXCEPT
4298     {
4299       return ::vkCmdSetViewportShadingRatePaletteNV( commandBuffer, firstViewport, viewportCount, pShadingRatePalettes );
4300     }
4301 
vkCmdSetCoarseSampleOrderNV(VkCommandBuffer commandBuffer,VkCoarseSampleOrderTypeNV sampleOrderType,uint32_t customSampleOrderCount,const VkCoarseSampleOrderCustomNV * pCustomSampleOrders) const4302     void vkCmdSetCoarseSampleOrderNV( VkCommandBuffer                     commandBuffer,
4303                                       VkCoarseSampleOrderTypeNV           sampleOrderType,
4304                                       uint32_t                            customSampleOrderCount,
4305                                       const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) const VULKAN_HPP_NOEXCEPT
4306     {
4307       return ::vkCmdSetCoarseSampleOrderNV( commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders );
4308     }
4309 
4310     //=== VK_NV_ray_tracing ===
4311 
vkCreateAccelerationStructureNV(VkDevice device,const VkAccelerationStructureCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureNV * pAccelerationStructure) const4312     VkResult vkCreateAccelerationStructureNV( VkDevice                                    device,
4313                                               const VkAccelerationStructureCreateInfoNV * pCreateInfo,
4314                                               const VkAllocationCallbacks *               pAllocator,
4315                                               VkAccelerationStructureNV *                 pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT
4316     {
4317       return ::vkCreateAccelerationStructureNV( device, pCreateInfo, pAllocator, pAccelerationStructure );
4318     }
4319 
vkDestroyAccelerationStructureNV(VkDevice device,VkAccelerationStructureNV accelerationStructure,const VkAllocationCallbacks * pAllocator) const4320     void vkDestroyAccelerationStructureNV( VkDevice                      device,
4321                                            VkAccelerationStructureNV     accelerationStructure,
4322                                            const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
4323     {
4324       return ::vkDestroyAccelerationStructureNV( device, accelerationStructure, pAllocator );
4325     }
4326 
vkGetAccelerationStructureMemoryRequirementsNV(VkDevice device,const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2KHR * pMemoryRequirements) const4327     void vkGetAccelerationStructureMemoryRequirementsNV( VkDevice                                                device,
4328                                                          const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo,
4329                                                          VkMemoryRequirements2KHR *                              pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
4330     {
4331       return ::vkGetAccelerationStructureMemoryRequirementsNV( device, pInfo, pMemoryRequirements );
4332     }
4333 
vkBindAccelerationStructureMemoryNV(VkDevice device,uint32_t bindInfoCount,const VkBindAccelerationStructureMemoryInfoNV * pBindInfos) const4334     VkResult vkBindAccelerationStructureMemoryNV( VkDevice                                        device,
4335                                                   uint32_t                                        bindInfoCount,
4336                                                   const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) const VULKAN_HPP_NOEXCEPT
4337     {
4338       return ::vkBindAccelerationStructureMemoryNV( device, bindInfoCount, pBindInfos );
4339     }
4340 
vkCmdBuildAccelerationStructureNV(VkCommandBuffer commandBuffer,const VkAccelerationStructureInfoNV * pInfo,VkBuffer instanceData,VkDeviceSize instanceOffset,VkBool32 update,VkAccelerationStructureNV dst,VkAccelerationStructureNV src,VkBuffer scratch,VkDeviceSize scratchOffset) const4341     void vkCmdBuildAccelerationStructureNV( VkCommandBuffer                       commandBuffer,
4342                                             const VkAccelerationStructureInfoNV * pInfo,
4343                                             VkBuffer                              instanceData,
4344                                             VkDeviceSize                          instanceOffset,
4345                                             VkBool32                              update,
4346                                             VkAccelerationStructureNV             dst,
4347                                             VkAccelerationStructureNV             src,
4348                                             VkBuffer                              scratch,
4349                                             VkDeviceSize                          scratchOffset ) const VULKAN_HPP_NOEXCEPT
4350     {
4351       return ::vkCmdBuildAccelerationStructureNV( commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset );
4352     }
4353 
vkCmdCopyAccelerationStructureNV(VkCommandBuffer commandBuffer,VkAccelerationStructureNV dst,VkAccelerationStructureNV src,VkCopyAccelerationStructureModeKHR mode) const4354     void vkCmdCopyAccelerationStructureNV( VkCommandBuffer                    commandBuffer,
4355                                            VkAccelerationStructureNV          dst,
4356                                            VkAccelerationStructureNV          src,
4357                                            VkCopyAccelerationStructureModeKHR mode ) const VULKAN_HPP_NOEXCEPT
4358     {
4359       return ::vkCmdCopyAccelerationStructureNV( commandBuffer, dst, src, mode );
4360     }
4361 
vkCmdTraceRaysNV(VkCommandBuffer commandBuffer,VkBuffer raygenShaderBindingTableBuffer,VkDeviceSize raygenShaderBindingOffset,VkBuffer missShaderBindingTableBuffer,VkDeviceSize missShaderBindingOffset,VkDeviceSize missShaderBindingStride,VkBuffer hitShaderBindingTableBuffer,VkDeviceSize hitShaderBindingOffset,VkDeviceSize hitShaderBindingStride,VkBuffer callableShaderBindingTableBuffer,VkDeviceSize callableShaderBindingOffset,VkDeviceSize callableShaderBindingStride,uint32_t width,uint32_t height,uint32_t depth) const4362     void vkCmdTraceRaysNV( VkCommandBuffer commandBuffer,
4363                            VkBuffer        raygenShaderBindingTableBuffer,
4364                            VkDeviceSize    raygenShaderBindingOffset,
4365                            VkBuffer        missShaderBindingTableBuffer,
4366                            VkDeviceSize    missShaderBindingOffset,
4367                            VkDeviceSize    missShaderBindingStride,
4368                            VkBuffer        hitShaderBindingTableBuffer,
4369                            VkDeviceSize    hitShaderBindingOffset,
4370                            VkDeviceSize    hitShaderBindingStride,
4371                            VkBuffer        callableShaderBindingTableBuffer,
4372                            VkDeviceSize    callableShaderBindingOffset,
4373                            VkDeviceSize    callableShaderBindingStride,
4374                            uint32_t        width,
4375                            uint32_t        height,
4376                            uint32_t        depth ) const VULKAN_HPP_NOEXCEPT
4377     {
4378       return ::vkCmdTraceRaysNV( commandBuffer,
4379                                  raygenShaderBindingTableBuffer,
4380                                  raygenShaderBindingOffset,
4381                                  missShaderBindingTableBuffer,
4382                                  missShaderBindingOffset,
4383                                  missShaderBindingStride,
4384                                  hitShaderBindingTableBuffer,
4385                                  hitShaderBindingOffset,
4386                                  hitShaderBindingStride,
4387                                  callableShaderBindingTableBuffer,
4388                                  callableShaderBindingOffset,
4389                                  callableShaderBindingStride,
4390                                  width,
4391                                  height,
4392                                  depth );
4393     }
4394 
vkCreateRayTracingPipelinesNV(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoNV * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const4395     VkResult vkCreateRayTracingPipelinesNV( VkDevice                                 device,
4396                                             VkPipelineCache                          pipelineCache,
4397                                             uint32_t                                 createInfoCount,
4398                                             const VkRayTracingPipelineCreateInfoNV * pCreateInfos,
4399                                             const VkAllocationCallbacks *            pAllocator,
4400                                             VkPipeline *                             pPipelines ) const VULKAN_HPP_NOEXCEPT
4401     {
4402       return ::vkCreateRayTracingPipelinesNV( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
4403     }
4404 
vkGetRayTracingShaderGroupHandlesNV(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData) const4405     VkResult vkGetRayTracingShaderGroupHandlesNV(
4406       VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void * pData ) const VULKAN_HPP_NOEXCEPT
4407     {
4408       return ::vkGetRayTracingShaderGroupHandlesNV( device, pipeline, firstGroup, groupCount, dataSize, pData );
4409     }
4410 
vkGetAccelerationStructureHandleNV(VkDevice device,VkAccelerationStructureNV accelerationStructure,size_t dataSize,void * pData) const4411     VkResult vkGetAccelerationStructureHandleNV( VkDevice                  device,
4412                                                  VkAccelerationStructureNV accelerationStructure,
4413                                                  size_t                    dataSize,
4414                                                  void *                    pData ) const VULKAN_HPP_NOEXCEPT
4415     {
4416       return ::vkGetAccelerationStructureHandleNV( device, accelerationStructure, dataSize, pData );
4417     }
4418 
vkCmdWriteAccelerationStructuresPropertiesNV(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureNV * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery) const4419     void vkCmdWriteAccelerationStructuresPropertiesNV( VkCommandBuffer                   commandBuffer,
4420                                                        uint32_t                          accelerationStructureCount,
4421                                                        const VkAccelerationStructureNV * pAccelerationStructures,
4422                                                        VkQueryType                       queryType,
4423                                                        VkQueryPool                       queryPool,
4424                                                        uint32_t                          firstQuery ) const VULKAN_HPP_NOEXCEPT
4425     {
4426       return ::vkCmdWriteAccelerationStructuresPropertiesNV(
4427         commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery );
4428     }
4429 
vkCompileDeferredNV(VkDevice device,VkPipeline pipeline,uint32_t shader) const4430     VkResult vkCompileDeferredNV( VkDevice device, VkPipeline pipeline, uint32_t shader ) const VULKAN_HPP_NOEXCEPT
4431     {
4432       return ::vkCompileDeferredNV( device, pipeline, shader );
4433     }
4434 
4435     //=== VK_KHR_maintenance3 ===
4436 
vkGetDescriptorSetLayoutSupportKHR(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport) const4437     void vkGetDescriptorSetLayoutSupportKHR( VkDevice                                device,
4438                                              const VkDescriptorSetLayoutCreateInfo * pCreateInfo,
4439                                              VkDescriptorSetLayoutSupport *          pSupport ) const VULKAN_HPP_NOEXCEPT
4440     {
4441       return ::vkGetDescriptorSetLayoutSupportKHR( device, pCreateInfo, pSupport );
4442     }
4443 
4444     //=== VK_KHR_draw_indirect_count ===
4445 
vkCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const4446     void vkCmdDrawIndirectCountKHR( VkCommandBuffer commandBuffer,
4447                                     VkBuffer        buffer,
4448                                     VkDeviceSize    offset,
4449                                     VkBuffer        countBuffer,
4450                                     VkDeviceSize    countBufferOffset,
4451                                     uint32_t        maxDrawCount,
4452                                     uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
4453     {
4454       return ::vkCmdDrawIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
4455     }
4456 
vkCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const4457     void vkCmdDrawIndexedIndirectCountKHR( VkCommandBuffer commandBuffer,
4458                                            VkBuffer        buffer,
4459                                            VkDeviceSize    offset,
4460                                            VkBuffer        countBuffer,
4461                                            VkDeviceSize    countBufferOffset,
4462                                            uint32_t        maxDrawCount,
4463                                            uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
4464     {
4465       return ::vkCmdDrawIndexedIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
4466     }
4467 
4468     //=== VK_EXT_external_memory_host ===
4469 
vkGetMemoryHostPointerPropertiesEXT(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties) const4470     VkResult vkGetMemoryHostPointerPropertiesEXT( VkDevice                           device,
4471                                                   VkExternalMemoryHandleTypeFlagBits handleType,
4472                                                   const void *                       pHostPointer,
4473                                                   VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) const VULKAN_HPP_NOEXCEPT
4474     {
4475       return ::vkGetMemoryHostPointerPropertiesEXT( device, handleType, pHostPointer, pMemoryHostPointerProperties );
4476     }
4477 
4478     //=== VK_AMD_buffer_marker ===
4479 
vkCmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker) const4480     void vkCmdWriteBufferMarkerAMD( VkCommandBuffer         commandBuffer,
4481                                     VkPipelineStageFlagBits pipelineStage,
4482                                     VkBuffer                dstBuffer,
4483                                     VkDeviceSize            dstOffset,
4484                                     uint32_t                marker ) const VULKAN_HPP_NOEXCEPT
4485     {
4486       return ::vkCmdWriteBufferMarkerAMD( commandBuffer, pipelineStage, dstBuffer, dstOffset, marker );
4487     }
4488 
4489     //=== VK_EXT_calibrated_timestamps ===
4490 
vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice,uint32_t * pTimeDomainCount,VkTimeDomainEXT * pTimeDomains) const4491     VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( VkPhysicalDevice  physicalDevice,
4492                                                              uint32_t *        pTimeDomainCount,
4493                                                              VkTimeDomainEXT * pTimeDomains ) const VULKAN_HPP_NOEXCEPT
4494     {
4495       return ::vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( physicalDevice, pTimeDomainCount, pTimeDomains );
4496     }
4497 
vkGetCalibratedTimestampsEXT(VkDevice device,uint32_t timestampCount,const VkCalibratedTimestampInfoEXT * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation) const4498     VkResult vkGetCalibratedTimestampsEXT( VkDevice                             device,
4499                                            uint32_t                             timestampCount,
4500                                            const VkCalibratedTimestampInfoEXT * pTimestampInfos,
4501                                            uint64_t *                           pTimestamps,
4502                                            uint64_t *                           pMaxDeviation ) const VULKAN_HPP_NOEXCEPT
4503     {
4504       return ::vkGetCalibratedTimestampsEXT( device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation );
4505     }
4506 
4507     //=== VK_NV_mesh_shader ===
4508 
vkCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer,uint32_t taskCount,uint32_t firstTask) const4509     void vkCmdDrawMeshTasksNV( VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask ) const VULKAN_HPP_NOEXCEPT
4510     {
4511       return ::vkCmdDrawMeshTasksNV( commandBuffer, taskCount, firstTask );
4512     }
4513 
vkCmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const4514     void vkCmdDrawMeshTasksIndirectNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const
4515       VULKAN_HPP_NOEXCEPT
4516     {
4517       return ::vkCmdDrawMeshTasksIndirectNV( commandBuffer, buffer, offset, drawCount, stride );
4518     }
4519 
vkCmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const4520     void vkCmdDrawMeshTasksIndirectCountNV( VkCommandBuffer commandBuffer,
4521                                             VkBuffer        buffer,
4522                                             VkDeviceSize    offset,
4523                                             VkBuffer        countBuffer,
4524                                             VkDeviceSize    countBufferOffset,
4525                                             uint32_t        maxDrawCount,
4526                                             uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
4527     {
4528       return ::vkCmdDrawMeshTasksIndirectCountNV( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
4529     }
4530 
4531     //=== VK_NV_scissor_exclusive ===
4532 
vkCmdSetExclusiveScissorEnableNV(VkCommandBuffer commandBuffer,uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VkBool32 * pExclusiveScissorEnables) const4533     void vkCmdSetExclusiveScissorEnableNV( VkCommandBuffer  commandBuffer,
4534                                            uint32_t         firstExclusiveScissor,
4535                                            uint32_t         exclusiveScissorCount,
4536                                            const VkBool32 * pExclusiveScissorEnables ) const VULKAN_HPP_NOEXCEPT
4537     {
4538       return ::vkCmdSetExclusiveScissorEnableNV( commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissorEnables );
4539     }
4540 
vkCmdSetExclusiveScissorNV(VkCommandBuffer commandBuffer,uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VkRect2D * pExclusiveScissors) const4541     void vkCmdSetExclusiveScissorNV( VkCommandBuffer  commandBuffer,
4542                                      uint32_t         firstExclusiveScissor,
4543                                      uint32_t         exclusiveScissorCount,
4544                                      const VkRect2D * pExclusiveScissors ) const VULKAN_HPP_NOEXCEPT
4545     {
4546       return ::vkCmdSetExclusiveScissorNV( commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors );
4547     }
4548 
4549     //=== VK_NV_device_diagnostic_checkpoints ===
4550 
vkCmdSetCheckpointNV(VkCommandBuffer commandBuffer,const void * pCheckpointMarker) const4551     void vkCmdSetCheckpointNV( VkCommandBuffer commandBuffer, const void * pCheckpointMarker ) const VULKAN_HPP_NOEXCEPT
4552     {
4553       return ::vkCmdSetCheckpointNV( commandBuffer, pCheckpointMarker );
4554     }
4555 
vkGetQueueCheckpointDataNV(VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointDataNV * pCheckpointData) const4556     void vkGetQueueCheckpointDataNV( VkQueue queue, uint32_t * pCheckpointDataCount, VkCheckpointDataNV * pCheckpointData ) const VULKAN_HPP_NOEXCEPT
4557     {
4558       return ::vkGetQueueCheckpointDataNV( queue, pCheckpointDataCount, pCheckpointData );
4559     }
4560 
4561     //=== VK_KHR_timeline_semaphore ===
4562 
vkGetSemaphoreCounterValueKHR(VkDevice device,VkSemaphore semaphore,uint64_t * pValue) const4563     VkResult vkGetSemaphoreCounterValueKHR( VkDevice device, VkSemaphore semaphore, uint64_t * pValue ) const VULKAN_HPP_NOEXCEPT
4564     {
4565       return ::vkGetSemaphoreCounterValueKHR( device, semaphore, pValue );
4566     }
4567 
vkWaitSemaphoresKHR(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout) const4568     VkResult vkWaitSemaphoresKHR( VkDevice device, const VkSemaphoreWaitInfo * pWaitInfo, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
4569     {
4570       return ::vkWaitSemaphoresKHR( device, pWaitInfo, timeout );
4571     }
4572 
vkSignalSemaphoreKHR(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo) const4573     VkResult vkSignalSemaphoreKHR( VkDevice device, const VkSemaphoreSignalInfo * pSignalInfo ) const VULKAN_HPP_NOEXCEPT
4574     {
4575       return ::vkSignalSemaphoreKHR( device, pSignalInfo );
4576     }
4577 
4578     //=== VK_INTEL_performance_query ===
4579 
vkInitializePerformanceApiINTEL(VkDevice device,const VkInitializePerformanceApiInfoINTEL * pInitializeInfo) const4580     VkResult vkInitializePerformanceApiINTEL( VkDevice device, const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) const VULKAN_HPP_NOEXCEPT
4581     {
4582       return ::vkInitializePerformanceApiINTEL( device, pInitializeInfo );
4583     }
4584 
vkUninitializePerformanceApiINTEL(VkDevice device) const4585     void vkUninitializePerformanceApiINTEL( VkDevice device ) const VULKAN_HPP_NOEXCEPT
4586     {
4587       return ::vkUninitializePerformanceApiINTEL( device );
4588     }
4589 
vkCmdSetPerformanceMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceMarkerInfoINTEL * pMarkerInfo) const4590     VkResult vkCmdSetPerformanceMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
4591     {
4592       return ::vkCmdSetPerformanceMarkerINTEL( commandBuffer, pMarkerInfo );
4593     }
4594 
vkCmdSetPerformanceStreamMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo) const4595     VkResult vkCmdSetPerformanceStreamMarkerINTEL( VkCommandBuffer                            commandBuffer,
4596                                                    const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
4597     {
4598       return ::vkCmdSetPerformanceStreamMarkerINTEL( commandBuffer, pMarkerInfo );
4599     }
4600 
vkCmdSetPerformanceOverrideINTEL(VkCommandBuffer commandBuffer,const VkPerformanceOverrideInfoINTEL * pOverrideInfo) const4601     VkResult vkCmdSetPerformanceOverrideINTEL( VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) const VULKAN_HPP_NOEXCEPT
4602     {
4603       return ::vkCmdSetPerformanceOverrideINTEL( commandBuffer, pOverrideInfo );
4604     }
4605 
vkAcquirePerformanceConfigurationINTEL(VkDevice device,const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,VkPerformanceConfigurationINTEL * pConfiguration) const4606     VkResult vkAcquirePerformanceConfigurationINTEL( VkDevice                                           device,
4607                                                      const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,
4608                                                      VkPerformanceConfigurationINTEL *                  pConfiguration ) const VULKAN_HPP_NOEXCEPT
4609     {
4610       return ::vkAcquirePerformanceConfigurationINTEL( device, pAcquireInfo, pConfiguration );
4611     }
4612 
vkReleasePerformanceConfigurationINTEL(VkDevice device,VkPerformanceConfigurationINTEL configuration) const4613     VkResult vkReleasePerformanceConfigurationINTEL( VkDevice device, VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT
4614     {
4615       return ::vkReleasePerformanceConfigurationINTEL( device, configuration );
4616     }
4617 
vkQueueSetPerformanceConfigurationINTEL(VkQueue queue,VkPerformanceConfigurationINTEL configuration) const4618     VkResult vkQueueSetPerformanceConfigurationINTEL( VkQueue queue, VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT
4619     {
4620       return ::vkQueueSetPerformanceConfigurationINTEL( queue, configuration );
4621     }
4622 
4623     VkResult
vkGetPerformanceParameterINTEL(VkDevice device,VkPerformanceParameterTypeINTEL parameter,VkPerformanceValueINTEL * pValue) const4624       vkGetPerformanceParameterINTEL( VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL * pValue ) const VULKAN_HPP_NOEXCEPT
4625     {
4626       return ::vkGetPerformanceParameterINTEL( device, parameter, pValue );
4627     }
4628 
4629     //=== VK_AMD_display_native_hdr ===
4630 
vkSetLocalDimmingAMD(VkDevice device,VkSwapchainKHR swapChain,VkBool32 localDimmingEnable) const4631     void vkSetLocalDimmingAMD( VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable ) const VULKAN_HPP_NOEXCEPT
4632     {
4633       return ::vkSetLocalDimmingAMD( device, swapChain, localDimmingEnable );
4634     }
4635 
4636 #  if defined( VK_USE_PLATFORM_FUCHSIA )
4637     //=== VK_FUCHSIA_imagepipe_surface ===
4638 
vkCreateImagePipeSurfaceFUCHSIA(VkInstance instance,const VkImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const4639     VkResult vkCreateImagePipeSurfaceFUCHSIA( VkInstance                                  instance,
4640                                               const VkImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,
4641                                               const VkAllocationCallbacks *               pAllocator,
4642                                               VkSurfaceKHR *                              pSurface ) const VULKAN_HPP_NOEXCEPT
4643     {
4644       return ::vkCreateImagePipeSurfaceFUCHSIA( instance, pCreateInfo, pAllocator, pSurface );
4645     }
4646 #  endif /*VK_USE_PLATFORM_FUCHSIA*/
4647 
4648 #  if defined( VK_USE_PLATFORM_METAL_EXT )
4649     //=== VK_EXT_metal_surface ===
4650 
vkCreateMetalSurfaceEXT(VkInstance instance,const VkMetalSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const4651     VkResult vkCreateMetalSurfaceEXT( VkInstance                          instance,
4652                                       const VkMetalSurfaceCreateInfoEXT * pCreateInfo,
4653                                       const VkAllocationCallbacks *       pAllocator,
4654                                       VkSurfaceKHR *                      pSurface ) const VULKAN_HPP_NOEXCEPT
4655     {
4656       return ::vkCreateMetalSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
4657     }
4658 #  endif /*VK_USE_PLATFORM_METAL_EXT*/
4659 
4660     //=== VK_KHR_fragment_shading_rate ===
4661 
vkGetPhysicalDeviceFragmentShadingRatesKHR(VkPhysicalDevice physicalDevice,uint32_t * pFragmentShadingRateCount,VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates) const4662     VkResult vkGetPhysicalDeviceFragmentShadingRatesKHR( VkPhysicalDevice                         physicalDevice,
4663                                                          uint32_t *                               pFragmentShadingRateCount,
4664                                                          VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) const VULKAN_HPP_NOEXCEPT
4665     {
4666       return ::vkGetPhysicalDeviceFragmentShadingRatesKHR( physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates );
4667     }
4668 
vkCmdSetFragmentShadingRateKHR(VkCommandBuffer commandBuffer,const VkExtent2D * pFragmentSize,const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const4669     void vkCmdSetFragmentShadingRateKHR( VkCommandBuffer                          commandBuffer,
4670                                          const VkExtent2D *                       pFragmentSize,
4671                                          const VkFragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT
4672     {
4673       return ::vkCmdSetFragmentShadingRateKHR( commandBuffer, pFragmentSize, combinerOps );
4674     }
4675 
4676     //=== VK_EXT_buffer_device_address ===
4677 
vkGetBufferDeviceAddressEXT(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const4678     VkDeviceAddress vkGetBufferDeviceAddressEXT( VkDevice device, const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
4679     {
4680       return ::vkGetBufferDeviceAddressEXT( device, pInfo );
4681     }
4682 
4683     //=== VK_EXT_tooling_info ===
4684 
vkGetPhysicalDeviceToolPropertiesEXT(VkPhysicalDevice physicalDevice,uint32_t * pToolCount,VkPhysicalDeviceToolProperties * pToolProperties) const4685     VkResult vkGetPhysicalDeviceToolPropertiesEXT( VkPhysicalDevice                 physicalDevice,
4686                                                    uint32_t *                       pToolCount,
4687                                                    VkPhysicalDeviceToolProperties * pToolProperties ) const VULKAN_HPP_NOEXCEPT
4688     {
4689       return ::vkGetPhysicalDeviceToolPropertiesEXT( physicalDevice, pToolCount, pToolProperties );
4690     }
4691 
4692     //=== VK_KHR_present_wait ===
4693 
vkWaitForPresentKHR(VkDevice device,VkSwapchainKHR swapchain,uint64_t presentId,uint64_t timeout) const4694     VkResult vkWaitForPresentKHR( VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
4695     {
4696       return ::vkWaitForPresentKHR( device, swapchain, presentId, timeout );
4697     }
4698 
4699     //=== VK_NV_cooperative_matrix ===
4700 
vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeMatrixPropertiesNV * pProperties) const4701     VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDevice                  physicalDevice,
4702                                                                uint32_t *                        pPropertyCount,
4703                                                                VkCooperativeMatrixPropertiesNV * pProperties ) const VULKAN_HPP_NOEXCEPT
4704     {
4705       return ::vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( physicalDevice, pPropertyCount, pProperties );
4706     }
4707 
4708     //=== VK_NV_coverage_reduction_mode ===
4709 
vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(VkPhysicalDevice physicalDevice,uint32_t * pCombinationCount,VkFramebufferMixedSamplesCombinationNV * pCombinations) const4710     VkResult vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
4711       VkPhysicalDevice physicalDevice, uint32_t * pCombinationCount, VkFramebufferMixedSamplesCombinationNV * pCombinations ) const VULKAN_HPP_NOEXCEPT
4712     {
4713       return ::vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( physicalDevice, pCombinationCount, pCombinations );
4714     }
4715 
4716 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
4717     //=== VK_EXT_full_screen_exclusive ===
4718 
vkGetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pPresentModeCount,VkPresentModeKHR * pPresentModes) const4719     VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT( VkPhysicalDevice                        physicalDevice,
4720                                                          const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,
4721                                                          uint32_t *                              pPresentModeCount,
4722                                                          VkPresentModeKHR *                      pPresentModes ) const VULKAN_HPP_NOEXCEPT
4723     {
4724       return ::vkGetPhysicalDeviceSurfacePresentModes2EXT( physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes );
4725     }
4726 
vkAcquireFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain) const4727     VkResult vkAcquireFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
4728     {
4729       return ::vkAcquireFullScreenExclusiveModeEXT( device, swapchain );
4730     }
4731 
vkReleaseFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain) const4732     VkResult vkReleaseFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
4733     {
4734       return ::vkReleaseFullScreenExclusiveModeEXT( device, swapchain );
4735     }
4736 
vkGetDeviceGroupSurfacePresentModes2EXT(VkDevice device,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VkDeviceGroupPresentModeFlagsKHR * pModes) const4737     VkResult vkGetDeviceGroupSurfacePresentModes2EXT( VkDevice                                device,
4738                                                       const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,
4739                                                       VkDeviceGroupPresentModeFlagsKHR *      pModes ) const VULKAN_HPP_NOEXCEPT
4740     {
4741       return ::vkGetDeviceGroupSurfacePresentModes2EXT( device, pSurfaceInfo, pModes );
4742     }
4743 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
4744 
4745     //=== VK_EXT_headless_surface ===
4746 
vkCreateHeadlessSurfaceEXT(VkInstance instance,const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const4747     VkResult vkCreateHeadlessSurfaceEXT( VkInstance                             instance,
4748                                          const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo,
4749                                          const VkAllocationCallbacks *          pAllocator,
4750                                          VkSurfaceKHR *                         pSurface ) const VULKAN_HPP_NOEXCEPT
4751     {
4752       return ::vkCreateHeadlessSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
4753     }
4754 
4755     //=== VK_KHR_buffer_device_address ===
4756 
vkGetBufferDeviceAddressKHR(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const4757     VkDeviceAddress vkGetBufferDeviceAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
4758     {
4759       return ::vkGetBufferDeviceAddressKHR( device, pInfo );
4760     }
4761 
vkGetBufferOpaqueCaptureAddressKHR(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const4762     uint64_t vkGetBufferOpaqueCaptureAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
4763     {
4764       return ::vkGetBufferOpaqueCaptureAddressKHR( device, pInfo );
4765     }
4766 
vkGetDeviceMemoryOpaqueCaptureAddressKHR(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo) const4767     uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
4768     {
4769       return ::vkGetDeviceMemoryOpaqueCaptureAddressKHR( device, pInfo );
4770     }
4771 
4772     //=== VK_EXT_line_rasterization ===
4773 
vkCmdSetLineStippleEXT(VkCommandBuffer commandBuffer,uint32_t lineStippleFactor,uint16_t lineStipplePattern) const4774     void vkCmdSetLineStippleEXT( VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern ) const VULKAN_HPP_NOEXCEPT
4775     {
4776       return ::vkCmdSetLineStippleEXT( commandBuffer, lineStippleFactor, lineStipplePattern );
4777     }
4778 
4779     //=== VK_EXT_host_query_reset ===
4780 
vkResetQueryPoolEXT(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const4781     void vkResetQueryPoolEXT( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
4782     {
4783       return ::vkResetQueryPoolEXT( device, queryPool, firstQuery, queryCount );
4784     }
4785 
4786     //=== VK_EXT_extended_dynamic_state ===
4787 
vkCmdSetCullModeEXT(VkCommandBuffer commandBuffer,VkCullModeFlags cullMode) const4788     void vkCmdSetCullModeEXT( VkCommandBuffer commandBuffer, VkCullModeFlags cullMode ) const VULKAN_HPP_NOEXCEPT
4789     {
4790       return ::vkCmdSetCullModeEXT( commandBuffer, cullMode );
4791     }
4792 
vkCmdSetFrontFaceEXT(VkCommandBuffer commandBuffer,VkFrontFace frontFace) const4793     void vkCmdSetFrontFaceEXT( VkCommandBuffer commandBuffer, VkFrontFace frontFace ) const VULKAN_HPP_NOEXCEPT
4794     {
4795       return ::vkCmdSetFrontFaceEXT( commandBuffer, frontFace );
4796     }
4797 
vkCmdSetPrimitiveTopologyEXT(VkCommandBuffer commandBuffer,VkPrimitiveTopology primitiveTopology) const4798     void vkCmdSetPrimitiveTopologyEXT( VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT
4799     {
4800       return ::vkCmdSetPrimitiveTopologyEXT( commandBuffer, primitiveTopology );
4801     }
4802 
vkCmdSetViewportWithCountEXT(VkCommandBuffer commandBuffer,uint32_t viewportCount,const VkViewport * pViewports) const4803     void vkCmdSetViewportWithCountEXT( VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport * pViewports ) const VULKAN_HPP_NOEXCEPT
4804     {
4805       return ::vkCmdSetViewportWithCountEXT( commandBuffer, viewportCount, pViewports );
4806     }
4807 
vkCmdSetScissorWithCountEXT(VkCommandBuffer commandBuffer,uint32_t scissorCount,const VkRect2D * pScissors) const4808     void vkCmdSetScissorWithCountEXT( VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D * pScissors ) const VULKAN_HPP_NOEXCEPT
4809     {
4810       return ::vkCmdSetScissorWithCountEXT( commandBuffer, scissorCount, pScissors );
4811     }
4812 
vkCmdBindVertexBuffers2EXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes,const VkDeviceSize * pStrides) const4813     void vkCmdBindVertexBuffers2EXT( VkCommandBuffer      commandBuffer,
4814                                      uint32_t             firstBinding,
4815                                      uint32_t             bindingCount,
4816                                      const VkBuffer *     pBuffers,
4817                                      const VkDeviceSize * pOffsets,
4818                                      const VkDeviceSize * pSizes,
4819                                      const VkDeviceSize * pStrides ) const VULKAN_HPP_NOEXCEPT
4820     {
4821       return ::vkCmdBindVertexBuffers2EXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides );
4822     }
4823 
vkCmdSetDepthTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthTestEnable) const4824     void vkCmdSetDepthTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT
4825     {
4826       return ::vkCmdSetDepthTestEnableEXT( commandBuffer, depthTestEnable );
4827     }
4828 
vkCmdSetDepthWriteEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthWriteEnable) const4829     void vkCmdSetDepthWriteEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT
4830     {
4831       return ::vkCmdSetDepthWriteEnableEXT( commandBuffer, depthWriteEnable );
4832     }
4833 
vkCmdSetDepthCompareOpEXT(VkCommandBuffer commandBuffer,VkCompareOp depthCompareOp) const4834     void vkCmdSetDepthCompareOpEXT( VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT
4835     {
4836       return ::vkCmdSetDepthCompareOpEXT( commandBuffer, depthCompareOp );
4837     }
4838 
vkCmdSetDepthBoundsTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthBoundsTestEnable) const4839     void vkCmdSetDepthBoundsTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT
4840     {
4841       return ::vkCmdSetDepthBoundsTestEnableEXT( commandBuffer, depthBoundsTestEnable );
4842     }
4843 
vkCmdSetStencilTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 stencilTestEnable) const4844     void vkCmdSetStencilTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT
4845     {
4846       return ::vkCmdSetStencilTestEnableEXT( commandBuffer, stencilTestEnable );
4847     }
4848 
vkCmdSetStencilOpEXT(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,VkStencilOp failOp,VkStencilOp passOp,VkStencilOp depthFailOp,VkCompareOp compareOp) const4849     void vkCmdSetStencilOpEXT( VkCommandBuffer    commandBuffer,
4850                                VkStencilFaceFlags faceMask,
4851                                VkStencilOp        failOp,
4852                                VkStencilOp        passOp,
4853                                VkStencilOp        depthFailOp,
4854                                VkCompareOp        compareOp ) const VULKAN_HPP_NOEXCEPT
4855     {
4856       return ::vkCmdSetStencilOpEXT( commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp );
4857     }
4858 
4859     //=== VK_KHR_deferred_host_operations ===
4860 
vkCreateDeferredOperationKHR(VkDevice device,const VkAllocationCallbacks * pAllocator,VkDeferredOperationKHR * pDeferredOperation) const4861     VkResult vkCreateDeferredOperationKHR( VkDevice                      device,
4862                                            const VkAllocationCallbacks * pAllocator,
4863                                            VkDeferredOperationKHR *      pDeferredOperation ) const VULKAN_HPP_NOEXCEPT
4864     {
4865       return ::vkCreateDeferredOperationKHR( device, pAllocator, pDeferredOperation );
4866     }
4867 
vkDestroyDeferredOperationKHR(VkDevice device,VkDeferredOperationKHR operation,const VkAllocationCallbacks * pAllocator) const4868     void vkDestroyDeferredOperationKHR( VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
4869     {
4870       return ::vkDestroyDeferredOperationKHR( device, operation, pAllocator );
4871     }
4872 
vkGetDeferredOperationMaxConcurrencyKHR(VkDevice device,VkDeferredOperationKHR operation) const4873     uint32_t vkGetDeferredOperationMaxConcurrencyKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
4874     {
4875       return ::vkGetDeferredOperationMaxConcurrencyKHR( device, operation );
4876     }
4877 
vkGetDeferredOperationResultKHR(VkDevice device,VkDeferredOperationKHR operation) const4878     VkResult vkGetDeferredOperationResultKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
4879     {
4880       return ::vkGetDeferredOperationResultKHR( device, operation );
4881     }
4882 
vkDeferredOperationJoinKHR(VkDevice device,VkDeferredOperationKHR operation) const4883     VkResult vkDeferredOperationJoinKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
4884     {
4885       return ::vkDeferredOperationJoinKHR( device, operation );
4886     }
4887 
4888     //=== VK_KHR_pipeline_executable_properties ===
4889 
vkGetPipelineExecutablePropertiesKHR(VkDevice device,const VkPipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VkPipelineExecutablePropertiesKHR * pProperties) const4890     VkResult vkGetPipelineExecutablePropertiesKHR( VkDevice                            device,
4891                                                    const VkPipelineInfoKHR *           pPipelineInfo,
4892                                                    uint32_t *                          pExecutableCount,
4893                                                    VkPipelineExecutablePropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT
4894     {
4895       return ::vkGetPipelineExecutablePropertiesKHR( device, pPipelineInfo, pExecutableCount, pProperties );
4896     }
4897 
vkGetPipelineExecutableStatisticsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VkPipelineExecutableStatisticKHR * pStatistics) const4898     VkResult vkGetPipelineExecutableStatisticsKHR( VkDevice                            device,
4899                                                    const VkPipelineExecutableInfoKHR * pExecutableInfo,
4900                                                    uint32_t *                          pStatisticCount,
4901                                                    VkPipelineExecutableStatisticKHR *  pStatistics ) const VULKAN_HPP_NOEXCEPT
4902     {
4903       return ::vkGetPipelineExecutableStatisticsKHR( device, pExecutableInfo, pStatisticCount, pStatistics );
4904     }
4905 
4906     VkResult
vkGetPipelineExecutableInternalRepresentationsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations) const4907       vkGetPipelineExecutableInternalRepresentationsKHR( VkDevice                                        device,
4908                                                          const VkPipelineExecutableInfoKHR *             pExecutableInfo,
4909                                                          uint32_t *                                      pInternalRepresentationCount,
4910                                                          VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) const VULKAN_HPP_NOEXCEPT
4911     {
4912       return ::vkGetPipelineExecutableInternalRepresentationsKHR( device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations );
4913     }
4914 
4915     //=== VK_EXT_host_image_copy ===
4916 
vkCopyMemoryToImageEXT(VkDevice device,const VkCopyMemoryToImageInfoEXT * pCopyMemoryToImageInfo) const4917     VkResult vkCopyMemoryToImageEXT( VkDevice device, const VkCopyMemoryToImageInfoEXT * pCopyMemoryToImageInfo ) const VULKAN_HPP_NOEXCEPT
4918     {
4919       return ::vkCopyMemoryToImageEXT( device, pCopyMemoryToImageInfo );
4920     }
4921 
vkCopyImageToMemoryEXT(VkDevice device,const VkCopyImageToMemoryInfoEXT * pCopyImageToMemoryInfo) const4922     VkResult vkCopyImageToMemoryEXT( VkDevice device, const VkCopyImageToMemoryInfoEXT * pCopyImageToMemoryInfo ) const VULKAN_HPP_NOEXCEPT
4923     {
4924       return ::vkCopyImageToMemoryEXT( device, pCopyImageToMemoryInfo );
4925     }
4926 
vkCopyImageToImageEXT(VkDevice device,const VkCopyImageToImageInfoEXT * pCopyImageToImageInfo) const4927     VkResult vkCopyImageToImageEXT( VkDevice device, const VkCopyImageToImageInfoEXT * pCopyImageToImageInfo ) const VULKAN_HPP_NOEXCEPT
4928     {
4929       return ::vkCopyImageToImageEXT( device, pCopyImageToImageInfo );
4930     }
4931 
4932     VkResult
vkTransitionImageLayoutEXT(VkDevice device,uint32_t transitionCount,const VkHostImageLayoutTransitionInfoEXT * pTransitions) const4933       vkTransitionImageLayoutEXT( VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfoEXT * pTransitions ) const VULKAN_HPP_NOEXCEPT
4934     {
4935       return ::vkTransitionImageLayoutEXT( device, transitionCount, pTransitions );
4936     }
4937 
vkGetImageSubresourceLayout2EXT(VkDevice device,VkImage image,const VkImageSubresource2EXT * pSubresource,VkSubresourceLayout2EXT * pLayout) const4938     void vkGetImageSubresourceLayout2EXT( VkDevice                       device,
4939                                           VkImage                        image,
4940                                           const VkImageSubresource2EXT * pSubresource,
4941                                           VkSubresourceLayout2EXT *      pLayout ) const VULKAN_HPP_NOEXCEPT
4942     {
4943       return ::vkGetImageSubresourceLayout2EXT( device, image, pSubresource, pLayout );
4944     }
4945 
4946     //=== VK_KHR_map_memory2 ===
4947 
vkMapMemory2KHR(VkDevice device,const VkMemoryMapInfoKHR * pMemoryMapInfo,void ** ppData) const4948     VkResult vkMapMemory2KHR( VkDevice device, const VkMemoryMapInfoKHR * pMemoryMapInfo, void ** ppData ) const VULKAN_HPP_NOEXCEPT
4949     {
4950       return ::vkMapMemory2KHR( device, pMemoryMapInfo, ppData );
4951     }
4952 
vkUnmapMemory2KHR(VkDevice device,const VkMemoryUnmapInfoKHR * pMemoryUnmapInfo) const4953     VkResult vkUnmapMemory2KHR( VkDevice device, const VkMemoryUnmapInfoKHR * pMemoryUnmapInfo ) const VULKAN_HPP_NOEXCEPT
4954     {
4955       return ::vkUnmapMemory2KHR( device, pMemoryUnmapInfo );
4956     }
4957 
4958     //=== VK_EXT_swapchain_maintenance1 ===
4959 
vkReleaseSwapchainImagesEXT(VkDevice device,const VkReleaseSwapchainImagesInfoEXT * pReleaseInfo) const4960     VkResult vkReleaseSwapchainImagesEXT( VkDevice device, const VkReleaseSwapchainImagesInfoEXT * pReleaseInfo ) const VULKAN_HPP_NOEXCEPT
4961     {
4962       return ::vkReleaseSwapchainImagesEXT( device, pReleaseInfo );
4963     }
4964 
4965     //=== VK_NV_device_generated_commands ===
4966 
vkGetGeneratedCommandsMemoryRequirementsNV(VkDevice device,const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const4967     void vkGetGeneratedCommandsMemoryRequirementsNV( VkDevice                                            device,
4968                                                      const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo,
4969                                                      VkMemoryRequirements2 *                             pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
4970     {
4971       return ::vkGetGeneratedCommandsMemoryRequirementsNV( device, pInfo, pMemoryRequirements );
4972     }
4973 
vkCmdPreprocessGeneratedCommandsNV(VkCommandBuffer commandBuffer,const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo) const4974     void vkCmdPreprocessGeneratedCommandsNV( VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) const VULKAN_HPP_NOEXCEPT
4975     {
4976       return ::vkCmdPreprocessGeneratedCommandsNV( commandBuffer, pGeneratedCommandsInfo );
4977     }
4978 
vkCmdExecuteGeneratedCommandsNV(VkCommandBuffer commandBuffer,VkBool32 isPreprocessed,const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo) const4979     void vkCmdExecuteGeneratedCommandsNV( VkCommandBuffer                   commandBuffer,
4980                                           VkBool32                          isPreprocessed,
4981                                           const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) const VULKAN_HPP_NOEXCEPT
4982     {
4983       return ::vkCmdExecuteGeneratedCommandsNV( commandBuffer, isPreprocessed, pGeneratedCommandsInfo );
4984     }
4985 
vkCmdBindPipelineShaderGroupNV(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline,uint32_t groupIndex) const4986     void vkCmdBindPipelineShaderGroupNV( VkCommandBuffer     commandBuffer,
4987                                          VkPipelineBindPoint pipelineBindPoint,
4988                                          VkPipeline          pipeline,
4989                                          uint32_t            groupIndex ) const VULKAN_HPP_NOEXCEPT
4990     {
4991       return ::vkCmdBindPipelineShaderGroupNV( commandBuffer, pipelineBindPoint, pipeline, groupIndex );
4992     }
4993 
vkCreateIndirectCommandsLayoutNV(VkDevice device,const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkIndirectCommandsLayoutNV * pIndirectCommandsLayout) const4994     VkResult vkCreateIndirectCommandsLayoutNV( VkDevice                                     device,
4995                                                const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo,
4996                                                const VkAllocationCallbacks *                pAllocator,
4997                                                VkIndirectCommandsLayoutNV *                 pIndirectCommandsLayout ) const VULKAN_HPP_NOEXCEPT
4998     {
4999       return ::vkCreateIndirectCommandsLayoutNV( device, pCreateInfo, pAllocator, pIndirectCommandsLayout );
5000     }
5001 
vkDestroyIndirectCommandsLayoutNV(VkDevice device,VkIndirectCommandsLayoutNV indirectCommandsLayout,const VkAllocationCallbacks * pAllocator) const5002     void vkDestroyIndirectCommandsLayoutNV( VkDevice                      device,
5003                                             VkIndirectCommandsLayoutNV    indirectCommandsLayout,
5004                                             const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
5005     {
5006       return ::vkDestroyIndirectCommandsLayoutNV( device, indirectCommandsLayout, pAllocator );
5007     }
5008 
5009     //=== VK_EXT_depth_bias_control ===
5010 
vkCmdSetDepthBias2EXT(VkCommandBuffer commandBuffer,const VkDepthBiasInfoEXT * pDepthBiasInfo) const5011     void vkCmdSetDepthBias2EXT( VkCommandBuffer commandBuffer, const VkDepthBiasInfoEXT * pDepthBiasInfo ) const VULKAN_HPP_NOEXCEPT
5012     {
5013       return ::vkCmdSetDepthBias2EXT( commandBuffer, pDepthBiasInfo );
5014     }
5015 
5016     //=== VK_EXT_acquire_drm_display ===
5017 
vkAcquireDrmDisplayEXT(VkPhysicalDevice physicalDevice,int32_t drmFd,VkDisplayKHR display) const5018     VkResult vkAcquireDrmDisplayEXT( VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
5019     {
5020       return ::vkAcquireDrmDisplayEXT( physicalDevice, drmFd, display );
5021     }
5022 
vkGetDrmDisplayEXT(VkPhysicalDevice physicalDevice,int32_t drmFd,uint32_t connectorId,VkDisplayKHR * display) const5023     VkResult vkGetDrmDisplayEXT( VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR * display ) const VULKAN_HPP_NOEXCEPT
5024     {
5025       return ::vkGetDrmDisplayEXT( physicalDevice, drmFd, connectorId, display );
5026     }
5027 
5028     //=== VK_EXT_private_data ===
5029 
vkCreatePrivateDataSlotEXT(VkDevice device,const VkPrivateDataSlotCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPrivateDataSlot * pPrivateDataSlot) const5030     VkResult vkCreatePrivateDataSlotEXT( VkDevice                            device,
5031                                          const VkPrivateDataSlotCreateInfo * pCreateInfo,
5032                                          const VkAllocationCallbacks *       pAllocator,
5033                                          VkPrivateDataSlot *                 pPrivateDataSlot ) const VULKAN_HPP_NOEXCEPT
5034     {
5035       return ::vkCreatePrivateDataSlotEXT( device, pCreateInfo, pAllocator, pPrivateDataSlot );
5036     }
5037 
vkDestroyPrivateDataSlotEXT(VkDevice device,VkPrivateDataSlot privateDataSlot,const VkAllocationCallbacks * pAllocator) const5038     void vkDestroyPrivateDataSlotEXT( VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
5039     {
5040       return ::vkDestroyPrivateDataSlotEXT( device, privateDataSlot, pAllocator );
5041     }
5042 
vkSetPrivateDataEXT(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t data) const5043     VkResult vkSetPrivateDataEXT( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data ) const
5044       VULKAN_HPP_NOEXCEPT
5045     {
5046       return ::vkSetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, data );
5047     }
5048 
vkGetPrivateDataEXT(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t * pData) const5049     void vkGetPrivateDataEXT( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t * pData ) const
5050       VULKAN_HPP_NOEXCEPT
5051     {
5052       return ::vkGetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, pData );
5053     }
5054 
5055 #  if defined( VK_ENABLE_BETA_EXTENSIONS )
5056     //=== VK_KHR_video_encode_queue ===
5057 
5058     VkResult
vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR * pQualityLevelInfo,VkVideoEncodeQualityLevelPropertiesKHR * pQualityLevelProperties) const5059       vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR( VkPhysicalDevice                                       physicalDevice,
5060                                                                const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR * pQualityLevelInfo,
5061                                                                VkVideoEncodeQualityLevelPropertiesKHR * pQualityLevelProperties ) const VULKAN_HPP_NOEXCEPT
5062     {
5063       return ::vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR( physicalDevice, pQualityLevelInfo, pQualityLevelProperties );
5064     }
5065 
vkGetEncodedVideoSessionParametersKHR(VkDevice device,const VkVideoEncodeSessionParametersGetInfoKHR * pVideoSessionParametersInfo,VkVideoEncodeSessionParametersFeedbackInfoKHR * pFeedbackInfo,size_t * pDataSize,void * pData) const5066     VkResult vkGetEncodedVideoSessionParametersKHR( VkDevice                                         device,
5067                                                     const VkVideoEncodeSessionParametersGetInfoKHR * pVideoSessionParametersInfo,
5068                                                     VkVideoEncodeSessionParametersFeedbackInfoKHR *  pFeedbackInfo,
5069                                                     size_t *                                         pDataSize,
5070                                                     void *                                           pData ) const VULKAN_HPP_NOEXCEPT
5071     {
5072       return ::vkGetEncodedVideoSessionParametersKHR( device, pVideoSessionParametersInfo, pFeedbackInfo, pDataSize, pData );
5073     }
5074 
vkCmdEncodeVideoKHR(VkCommandBuffer commandBuffer,const VkVideoEncodeInfoKHR * pEncodeInfo) const5075     void vkCmdEncodeVideoKHR( VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR * pEncodeInfo ) const VULKAN_HPP_NOEXCEPT
5076     {
5077       return ::vkCmdEncodeVideoKHR( commandBuffer, pEncodeInfo );
5078     }
5079 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
5080 
5081 #  if defined( VK_USE_PLATFORM_METAL_EXT )
5082     //=== VK_EXT_metal_objects ===
5083 
vkExportMetalObjectsEXT(VkDevice device,VkExportMetalObjectsInfoEXT * pMetalObjectsInfo) const5084     void vkExportMetalObjectsEXT( VkDevice device, VkExportMetalObjectsInfoEXT * pMetalObjectsInfo ) const VULKAN_HPP_NOEXCEPT
5085     {
5086       return ::vkExportMetalObjectsEXT( device, pMetalObjectsInfo );
5087     }
5088 #  endif /*VK_USE_PLATFORM_METAL_EXT*/
5089 
5090     //=== VK_KHR_synchronization2 ===
5091 
vkCmdSetEvent2KHR(VkCommandBuffer commandBuffer,VkEvent event,const VkDependencyInfo * pDependencyInfo) const5092     void vkCmdSetEvent2KHR( VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo * pDependencyInfo ) const VULKAN_HPP_NOEXCEPT
5093     {
5094       return ::vkCmdSetEvent2KHR( commandBuffer, event, pDependencyInfo );
5095     }
5096 
vkCmdResetEvent2KHR(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags2 stageMask) const5097     void vkCmdResetEvent2KHR( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask ) const VULKAN_HPP_NOEXCEPT
5098     {
5099       return ::vkCmdResetEvent2KHR( commandBuffer, event, stageMask );
5100     }
5101 
vkCmdWaitEvents2KHR(VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,const VkDependencyInfo * pDependencyInfos) const5102     void vkCmdWaitEvents2KHR( VkCommandBuffer          commandBuffer,
5103                               uint32_t                 eventCount,
5104                               const VkEvent *          pEvents,
5105                               const VkDependencyInfo * pDependencyInfos ) const VULKAN_HPP_NOEXCEPT
5106     {
5107       return ::vkCmdWaitEvents2KHR( commandBuffer, eventCount, pEvents, pDependencyInfos );
5108     }
5109 
vkCmdPipelineBarrier2KHR(VkCommandBuffer commandBuffer,const VkDependencyInfo * pDependencyInfo) const5110     void vkCmdPipelineBarrier2KHR( VkCommandBuffer commandBuffer, const VkDependencyInfo * pDependencyInfo ) const VULKAN_HPP_NOEXCEPT
5111     {
5112       return ::vkCmdPipelineBarrier2KHR( commandBuffer, pDependencyInfo );
5113     }
5114 
vkCmdWriteTimestamp2KHR(VkCommandBuffer commandBuffer,VkPipelineStageFlags2 stage,VkQueryPool queryPool,uint32_t query) const5115     void vkCmdWriteTimestamp2KHR( VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT
5116     {
5117       return ::vkCmdWriteTimestamp2KHR( commandBuffer, stage, queryPool, query );
5118     }
5119 
vkQueueSubmit2KHR(VkQueue queue,uint32_t submitCount,const VkSubmitInfo2 * pSubmits,VkFence fence) const5120     VkResult vkQueueSubmit2KHR( VkQueue queue, uint32_t submitCount, const VkSubmitInfo2 * pSubmits, VkFence fence ) const VULKAN_HPP_NOEXCEPT
5121     {
5122       return ::vkQueueSubmit2KHR( queue, submitCount, pSubmits, fence );
5123     }
5124 
vkCmdWriteBufferMarker2AMD(VkCommandBuffer commandBuffer,VkPipelineStageFlags2 stage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker) const5125     void vkCmdWriteBufferMarker2AMD(
5126       VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker ) const VULKAN_HPP_NOEXCEPT
5127     {
5128       return ::vkCmdWriteBufferMarker2AMD( commandBuffer, stage, dstBuffer, dstOffset, marker );
5129     }
5130 
vkGetQueueCheckpointData2NV(VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointData2NV * pCheckpointData) const5131     void vkGetQueueCheckpointData2NV( VkQueue queue, uint32_t * pCheckpointDataCount, VkCheckpointData2NV * pCheckpointData ) const VULKAN_HPP_NOEXCEPT
5132     {
5133       return ::vkGetQueueCheckpointData2NV( queue, pCheckpointDataCount, pCheckpointData );
5134     }
5135 
5136     //=== VK_EXT_descriptor_buffer ===
5137 
vkGetDescriptorSetLayoutSizeEXT(VkDevice device,VkDescriptorSetLayout layout,VkDeviceSize * pLayoutSizeInBytes) const5138     void vkGetDescriptorSetLayoutSizeEXT( VkDevice device, VkDescriptorSetLayout layout, VkDeviceSize * pLayoutSizeInBytes ) const VULKAN_HPP_NOEXCEPT
5139     {
5140       return ::vkGetDescriptorSetLayoutSizeEXT( device, layout, pLayoutSizeInBytes );
5141     }
5142 
vkGetDescriptorSetLayoutBindingOffsetEXT(VkDevice device,VkDescriptorSetLayout layout,uint32_t binding,VkDeviceSize * pOffset) const5143     void vkGetDescriptorSetLayoutBindingOffsetEXT( VkDevice              device,
5144                                                    VkDescriptorSetLayout layout,
5145                                                    uint32_t              binding,
5146                                                    VkDeviceSize *        pOffset ) const VULKAN_HPP_NOEXCEPT
5147     {
5148       return ::vkGetDescriptorSetLayoutBindingOffsetEXT( device, layout, binding, pOffset );
5149     }
5150 
vkGetDescriptorEXT(VkDevice device,const VkDescriptorGetInfoEXT * pDescriptorInfo,size_t dataSize,void * pDescriptor) const5151     void vkGetDescriptorEXT( VkDevice device, const VkDescriptorGetInfoEXT * pDescriptorInfo, size_t dataSize, void * pDescriptor ) const VULKAN_HPP_NOEXCEPT
5152     {
5153       return ::vkGetDescriptorEXT( device, pDescriptorInfo, dataSize, pDescriptor );
5154     }
5155 
vkCmdBindDescriptorBuffersEXT(VkCommandBuffer commandBuffer,uint32_t bufferCount,const VkDescriptorBufferBindingInfoEXT * pBindingInfos) const5156     void vkCmdBindDescriptorBuffersEXT( VkCommandBuffer                          commandBuffer,
5157                                         uint32_t                                 bufferCount,
5158                                         const VkDescriptorBufferBindingInfoEXT * pBindingInfos ) const VULKAN_HPP_NOEXCEPT
5159     {
5160       return ::vkCmdBindDescriptorBuffersEXT( commandBuffer, bufferCount, pBindingInfos );
5161     }
5162 
vkCmdSetDescriptorBufferOffsetsEXT(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t firstSet,uint32_t setCount,const uint32_t * pBufferIndices,const VkDeviceSize * pOffsets) const5163     void vkCmdSetDescriptorBufferOffsetsEXT( VkCommandBuffer      commandBuffer,
5164                                              VkPipelineBindPoint  pipelineBindPoint,
5165                                              VkPipelineLayout     layout,
5166                                              uint32_t             firstSet,
5167                                              uint32_t             setCount,
5168                                              const uint32_t *     pBufferIndices,
5169                                              const VkDeviceSize * pOffsets ) const VULKAN_HPP_NOEXCEPT
5170     {
5171       return ::vkCmdSetDescriptorBufferOffsetsEXT( commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets );
5172     }
5173 
vkCmdBindDescriptorBufferEmbeddedSamplersEXT(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t set) const5174     void vkCmdBindDescriptorBufferEmbeddedSamplersEXT( VkCommandBuffer     commandBuffer,
5175                                                        VkPipelineBindPoint pipelineBindPoint,
5176                                                        VkPipelineLayout    layout,
5177                                                        uint32_t            set ) const VULKAN_HPP_NOEXCEPT
5178     {
5179       return ::vkCmdBindDescriptorBufferEmbeddedSamplersEXT( commandBuffer, pipelineBindPoint, layout, set );
5180     }
5181 
5182     VkResult
vkGetBufferOpaqueCaptureDescriptorDataEXT(VkDevice device,const VkBufferCaptureDescriptorDataInfoEXT * pInfo,void * pData) const5183       vkGetBufferOpaqueCaptureDescriptorDataEXT( VkDevice device, const VkBufferCaptureDescriptorDataInfoEXT * pInfo, void * pData ) const VULKAN_HPP_NOEXCEPT
5184     {
5185       return ::vkGetBufferOpaqueCaptureDescriptorDataEXT( device, pInfo, pData );
5186     }
5187 
5188     VkResult
vkGetImageOpaqueCaptureDescriptorDataEXT(VkDevice device,const VkImageCaptureDescriptorDataInfoEXT * pInfo,void * pData) const5189       vkGetImageOpaqueCaptureDescriptorDataEXT( VkDevice device, const VkImageCaptureDescriptorDataInfoEXT * pInfo, void * pData ) const VULKAN_HPP_NOEXCEPT
5190     {
5191       return ::vkGetImageOpaqueCaptureDescriptorDataEXT( device, pInfo, pData );
5192     }
5193 
vkGetImageViewOpaqueCaptureDescriptorDataEXT(VkDevice device,const VkImageViewCaptureDescriptorDataInfoEXT * pInfo,void * pData) const5194     VkResult vkGetImageViewOpaqueCaptureDescriptorDataEXT( VkDevice                                        device,
5195                                                            const VkImageViewCaptureDescriptorDataInfoEXT * pInfo,
5196                                                            void *                                          pData ) const VULKAN_HPP_NOEXCEPT
5197     {
5198       return ::vkGetImageViewOpaqueCaptureDescriptorDataEXT( device, pInfo, pData );
5199     }
5200 
5201     VkResult
vkGetSamplerOpaqueCaptureDescriptorDataEXT(VkDevice device,const VkSamplerCaptureDescriptorDataInfoEXT * pInfo,void * pData) const5202       vkGetSamplerOpaqueCaptureDescriptorDataEXT( VkDevice device, const VkSamplerCaptureDescriptorDataInfoEXT * pInfo, void * pData ) const VULKAN_HPP_NOEXCEPT
5203     {
5204       return ::vkGetSamplerOpaqueCaptureDescriptorDataEXT( device, pInfo, pData );
5205     }
5206 
vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(VkDevice device,const VkAccelerationStructureCaptureDescriptorDataInfoEXT * pInfo,void * pData) const5207     VkResult vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT( VkDevice                                                    device,
5208                                                                        const VkAccelerationStructureCaptureDescriptorDataInfoEXT * pInfo,
5209                                                                        void * pData ) const VULKAN_HPP_NOEXCEPT
5210     {
5211       return ::vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT( device, pInfo, pData );
5212     }
5213 
5214     //=== VK_NV_fragment_shading_rate_enums ===
5215 
vkCmdSetFragmentShadingRateEnumNV(VkCommandBuffer commandBuffer,VkFragmentShadingRateNV shadingRate,const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const5216     void vkCmdSetFragmentShadingRateEnumNV( VkCommandBuffer                          commandBuffer,
5217                                             VkFragmentShadingRateNV                  shadingRate,
5218                                             const VkFragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT
5219     {
5220       return ::vkCmdSetFragmentShadingRateEnumNV( commandBuffer, shadingRate, combinerOps );
5221     }
5222 
5223     //=== VK_EXT_mesh_shader ===
5224 
vkCmdDrawMeshTasksEXT(VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const5225     void vkCmdDrawMeshTasksEXT( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT
5226     {
5227       return ::vkCmdDrawMeshTasksEXT( commandBuffer, groupCountX, groupCountY, groupCountZ );
5228     }
5229 
vkCmdDrawMeshTasksIndirectEXT(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const5230     void vkCmdDrawMeshTasksIndirectEXT( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const
5231       VULKAN_HPP_NOEXCEPT
5232     {
5233       return ::vkCmdDrawMeshTasksIndirectEXT( commandBuffer, buffer, offset, drawCount, stride );
5234     }
5235 
vkCmdDrawMeshTasksIndirectCountEXT(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const5236     void vkCmdDrawMeshTasksIndirectCountEXT( VkCommandBuffer commandBuffer,
5237                                              VkBuffer        buffer,
5238                                              VkDeviceSize    offset,
5239                                              VkBuffer        countBuffer,
5240                                              VkDeviceSize    countBufferOffset,
5241                                              uint32_t        maxDrawCount,
5242                                              uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
5243     {
5244       return ::vkCmdDrawMeshTasksIndirectCountEXT( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
5245     }
5246 
5247     //=== VK_KHR_copy_commands2 ===
5248 
vkCmdCopyBuffer2KHR(VkCommandBuffer commandBuffer,const VkCopyBufferInfo2 * pCopyBufferInfo) const5249     void vkCmdCopyBuffer2KHR( VkCommandBuffer commandBuffer, const VkCopyBufferInfo2 * pCopyBufferInfo ) const VULKAN_HPP_NOEXCEPT
5250     {
5251       return ::vkCmdCopyBuffer2KHR( commandBuffer, pCopyBufferInfo );
5252     }
5253 
vkCmdCopyImage2KHR(VkCommandBuffer commandBuffer,const VkCopyImageInfo2 * pCopyImageInfo) const5254     void vkCmdCopyImage2KHR( VkCommandBuffer commandBuffer, const VkCopyImageInfo2 * pCopyImageInfo ) const VULKAN_HPP_NOEXCEPT
5255     {
5256       return ::vkCmdCopyImage2KHR( commandBuffer, pCopyImageInfo );
5257     }
5258 
vkCmdCopyBufferToImage2KHR(VkCommandBuffer commandBuffer,const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo) const5259     void vkCmdCopyBufferToImage2KHR( VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT
5260     {
5261       return ::vkCmdCopyBufferToImage2KHR( commandBuffer, pCopyBufferToImageInfo );
5262     }
5263 
vkCmdCopyImageToBuffer2KHR(VkCommandBuffer commandBuffer,const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo) const5264     void vkCmdCopyImageToBuffer2KHR( VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT
5265     {
5266       return ::vkCmdCopyImageToBuffer2KHR( commandBuffer, pCopyImageToBufferInfo );
5267     }
5268 
vkCmdBlitImage2KHR(VkCommandBuffer commandBuffer,const VkBlitImageInfo2 * pBlitImageInfo) const5269     void vkCmdBlitImage2KHR( VkCommandBuffer commandBuffer, const VkBlitImageInfo2 * pBlitImageInfo ) const VULKAN_HPP_NOEXCEPT
5270     {
5271       return ::vkCmdBlitImage2KHR( commandBuffer, pBlitImageInfo );
5272     }
5273 
vkCmdResolveImage2KHR(VkCommandBuffer commandBuffer,const VkResolveImageInfo2 * pResolveImageInfo) const5274     void vkCmdResolveImage2KHR( VkCommandBuffer commandBuffer, const VkResolveImageInfo2 * pResolveImageInfo ) const VULKAN_HPP_NOEXCEPT
5275     {
5276       return ::vkCmdResolveImage2KHR( commandBuffer, pResolveImageInfo );
5277     }
5278 
5279     //=== VK_EXT_device_fault ===
5280 
vkGetDeviceFaultInfoEXT(VkDevice device,VkDeviceFaultCountsEXT * pFaultCounts,VkDeviceFaultInfoEXT * pFaultInfo) const5281     VkResult vkGetDeviceFaultInfoEXT( VkDevice device, VkDeviceFaultCountsEXT * pFaultCounts, VkDeviceFaultInfoEXT * pFaultInfo ) const VULKAN_HPP_NOEXCEPT
5282     {
5283       return ::vkGetDeviceFaultInfoEXT( device, pFaultCounts, pFaultInfo );
5284     }
5285 
5286 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
5287     //=== VK_NV_acquire_winrt_display ===
5288 
vkAcquireWinrtDisplayNV(VkPhysicalDevice physicalDevice,VkDisplayKHR display) const5289     VkResult vkAcquireWinrtDisplayNV( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
5290     {
5291       return ::vkAcquireWinrtDisplayNV( physicalDevice, display );
5292     }
5293 
vkGetWinrtDisplayNV(VkPhysicalDevice physicalDevice,uint32_t deviceRelativeId,VkDisplayKHR * pDisplay) const5294     VkResult vkGetWinrtDisplayNV( VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR * pDisplay ) const VULKAN_HPP_NOEXCEPT
5295     {
5296       return ::vkGetWinrtDisplayNV( physicalDevice, deviceRelativeId, pDisplay );
5297     }
5298 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
5299 
5300 #  if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
5301     //=== VK_EXT_directfb_surface ===
5302 
vkCreateDirectFBSurfaceEXT(VkInstance instance,const VkDirectFBSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const5303     VkResult vkCreateDirectFBSurfaceEXT( VkInstance                             instance,
5304                                          const VkDirectFBSurfaceCreateInfoEXT * pCreateInfo,
5305                                          const VkAllocationCallbacks *          pAllocator,
5306                                          VkSurfaceKHR *                         pSurface ) const VULKAN_HPP_NOEXCEPT
5307     {
5308       return ::vkCreateDirectFBSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
5309     }
5310 
5311     VkBool32
vkGetPhysicalDeviceDirectFBPresentationSupportEXT(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,IDirectFB * dfb) const5312       vkGetPhysicalDeviceDirectFBPresentationSupportEXT( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, IDirectFB * dfb ) const VULKAN_HPP_NOEXCEPT
5313     {
5314       return ::vkGetPhysicalDeviceDirectFBPresentationSupportEXT( physicalDevice, queueFamilyIndex, dfb );
5315     }
5316 #  endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
5317 
5318     //=== VK_EXT_vertex_input_dynamic_state ===
5319 
vkCmdSetVertexInputEXT(VkCommandBuffer commandBuffer,uint32_t vertexBindingDescriptionCount,const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions,uint32_t vertexAttributeDescriptionCount,const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions) const5320     void vkCmdSetVertexInputEXT( VkCommandBuffer                               commandBuffer,
5321                                  uint32_t                                      vertexBindingDescriptionCount,
5322                                  const VkVertexInputBindingDescription2EXT *   pVertexBindingDescriptions,
5323                                  uint32_t                                      vertexAttributeDescriptionCount,
5324                                  const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) const VULKAN_HPP_NOEXCEPT
5325     {
5326       return ::vkCmdSetVertexInputEXT(
5327         commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions );
5328     }
5329 
5330 #  if defined( VK_USE_PLATFORM_FUCHSIA )
5331     //=== VK_FUCHSIA_external_memory ===
5332 
vkGetMemoryZirconHandleFUCHSIA(VkDevice device,const VkMemoryGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo,zx_handle_t * pZirconHandle) const5333     VkResult vkGetMemoryZirconHandleFUCHSIA( VkDevice                                   device,
5334                                              const VkMemoryGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo,
5335                                              zx_handle_t *                              pZirconHandle ) const VULKAN_HPP_NOEXCEPT
5336     {
5337       return ::vkGetMemoryZirconHandleFUCHSIA( device, pGetZirconHandleInfo, pZirconHandle );
5338     }
5339 
vkGetMemoryZirconHandlePropertiesFUCHSIA(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,zx_handle_t zirconHandle,VkMemoryZirconHandlePropertiesFUCHSIA * pMemoryZirconHandleProperties) const5340     VkResult vkGetMemoryZirconHandlePropertiesFUCHSIA( VkDevice                                device,
5341                                                        VkExternalMemoryHandleTypeFlagBits      handleType,
5342                                                        zx_handle_t                             zirconHandle,
5343                                                        VkMemoryZirconHandlePropertiesFUCHSIA * pMemoryZirconHandleProperties ) const VULKAN_HPP_NOEXCEPT
5344     {
5345       return ::vkGetMemoryZirconHandlePropertiesFUCHSIA( device, handleType, zirconHandle, pMemoryZirconHandleProperties );
5346     }
5347 #  endif /*VK_USE_PLATFORM_FUCHSIA*/
5348 
5349 #  if defined( VK_USE_PLATFORM_FUCHSIA )
5350     //=== VK_FUCHSIA_external_semaphore ===
5351 
vkImportSemaphoreZirconHandleFUCHSIA(VkDevice device,const VkImportSemaphoreZirconHandleInfoFUCHSIA * pImportSemaphoreZirconHandleInfo) const5352     VkResult vkImportSemaphoreZirconHandleFUCHSIA( VkDevice                                         device,
5353                                                    const VkImportSemaphoreZirconHandleInfoFUCHSIA * pImportSemaphoreZirconHandleInfo ) const VULKAN_HPP_NOEXCEPT
5354     {
5355       return ::vkImportSemaphoreZirconHandleFUCHSIA( device, pImportSemaphoreZirconHandleInfo );
5356     }
5357 
vkGetSemaphoreZirconHandleFUCHSIA(VkDevice device,const VkSemaphoreGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo,zx_handle_t * pZirconHandle) const5358     VkResult vkGetSemaphoreZirconHandleFUCHSIA( VkDevice                                      device,
5359                                                 const VkSemaphoreGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo,
5360                                                 zx_handle_t *                                 pZirconHandle ) const VULKAN_HPP_NOEXCEPT
5361     {
5362       return ::vkGetSemaphoreZirconHandleFUCHSIA( device, pGetZirconHandleInfo, pZirconHandle );
5363     }
5364 #  endif /*VK_USE_PLATFORM_FUCHSIA*/
5365 
5366 #  if defined( VK_USE_PLATFORM_FUCHSIA )
5367     //=== VK_FUCHSIA_buffer_collection ===
5368 
vkCreateBufferCollectionFUCHSIA(VkDevice device,const VkBufferCollectionCreateInfoFUCHSIA * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferCollectionFUCHSIA * pCollection) const5369     VkResult vkCreateBufferCollectionFUCHSIA( VkDevice                                    device,
5370                                               const VkBufferCollectionCreateInfoFUCHSIA * pCreateInfo,
5371                                               const VkAllocationCallbacks *               pAllocator,
5372                                               VkBufferCollectionFUCHSIA *                 pCollection ) const VULKAN_HPP_NOEXCEPT
5373     {
5374       return ::vkCreateBufferCollectionFUCHSIA( device, pCreateInfo, pAllocator, pCollection );
5375     }
5376 
vkSetBufferCollectionImageConstraintsFUCHSIA(VkDevice device,VkBufferCollectionFUCHSIA collection,const VkImageConstraintsInfoFUCHSIA * pImageConstraintsInfo) const5377     VkResult vkSetBufferCollectionImageConstraintsFUCHSIA( VkDevice                              device,
5378                                                            VkBufferCollectionFUCHSIA             collection,
5379                                                            const VkImageConstraintsInfoFUCHSIA * pImageConstraintsInfo ) const VULKAN_HPP_NOEXCEPT
5380     {
5381       return ::vkSetBufferCollectionImageConstraintsFUCHSIA( device, collection, pImageConstraintsInfo );
5382     }
5383 
vkSetBufferCollectionBufferConstraintsFUCHSIA(VkDevice device,VkBufferCollectionFUCHSIA collection,const VkBufferConstraintsInfoFUCHSIA * pBufferConstraintsInfo) const5384     VkResult vkSetBufferCollectionBufferConstraintsFUCHSIA( VkDevice                               device,
5385                                                             VkBufferCollectionFUCHSIA              collection,
5386                                                             const VkBufferConstraintsInfoFUCHSIA * pBufferConstraintsInfo ) const VULKAN_HPP_NOEXCEPT
5387     {
5388       return ::vkSetBufferCollectionBufferConstraintsFUCHSIA( device, collection, pBufferConstraintsInfo );
5389     }
5390 
vkDestroyBufferCollectionFUCHSIA(VkDevice device,VkBufferCollectionFUCHSIA collection,const VkAllocationCallbacks * pAllocator) const5391     void vkDestroyBufferCollectionFUCHSIA( VkDevice                      device,
5392                                            VkBufferCollectionFUCHSIA     collection,
5393                                            const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
5394     {
5395       return ::vkDestroyBufferCollectionFUCHSIA( device, collection, pAllocator );
5396     }
5397 
vkGetBufferCollectionPropertiesFUCHSIA(VkDevice device,VkBufferCollectionFUCHSIA collection,VkBufferCollectionPropertiesFUCHSIA * pProperties) const5398     VkResult vkGetBufferCollectionPropertiesFUCHSIA( VkDevice                              device,
5399                                                      VkBufferCollectionFUCHSIA             collection,
5400                                                      VkBufferCollectionPropertiesFUCHSIA * pProperties ) const VULKAN_HPP_NOEXCEPT
5401     {
5402       return ::vkGetBufferCollectionPropertiesFUCHSIA( device, collection, pProperties );
5403     }
5404 #  endif /*VK_USE_PLATFORM_FUCHSIA*/
5405 
5406     //=== VK_HUAWEI_subpass_shading ===
5407 
5408     VkResult
vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(VkDevice device,VkRenderPass renderpass,VkExtent2D * pMaxWorkgroupSize) const5409       vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( VkDevice device, VkRenderPass renderpass, VkExtent2D * pMaxWorkgroupSize ) const VULKAN_HPP_NOEXCEPT
5410     {
5411       return ::vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( device, renderpass, pMaxWorkgroupSize );
5412     }
5413 
vkCmdSubpassShadingHUAWEI(VkCommandBuffer commandBuffer) const5414     void vkCmdSubpassShadingHUAWEI( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
5415     {
5416       return ::vkCmdSubpassShadingHUAWEI( commandBuffer );
5417     }
5418 
5419     //=== VK_HUAWEI_invocation_mask ===
5420 
vkCmdBindInvocationMaskHUAWEI(VkCommandBuffer commandBuffer,VkImageView imageView,VkImageLayout imageLayout) const5421     void vkCmdBindInvocationMaskHUAWEI( VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT
5422     {
5423       return ::vkCmdBindInvocationMaskHUAWEI( commandBuffer, imageView, imageLayout );
5424     }
5425 
5426     //=== VK_NV_external_memory_rdma ===
5427 
vkGetMemoryRemoteAddressNV(VkDevice device,const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo,VkRemoteAddressNV * pAddress) const5428     VkResult vkGetMemoryRemoteAddressNV( VkDevice                               device,
5429                                          const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo,
5430                                          VkRemoteAddressNV *                    pAddress ) const VULKAN_HPP_NOEXCEPT
5431     {
5432       return ::vkGetMemoryRemoteAddressNV( device, pMemoryGetRemoteAddressInfo, pAddress );
5433     }
5434 
5435     //=== VK_EXT_pipeline_properties ===
5436 
5437     VkResult
vkGetPipelinePropertiesEXT(VkDevice device,const VkPipelineInfoEXT * pPipelineInfo,VkBaseOutStructure * pPipelineProperties) const5438       vkGetPipelinePropertiesEXT( VkDevice device, const VkPipelineInfoEXT * pPipelineInfo, VkBaseOutStructure * pPipelineProperties ) const VULKAN_HPP_NOEXCEPT
5439     {
5440       return ::vkGetPipelinePropertiesEXT( device, pPipelineInfo, pPipelineProperties );
5441     }
5442 
5443     //=== VK_EXT_extended_dynamic_state2 ===
5444 
vkCmdSetPatchControlPointsEXT(VkCommandBuffer commandBuffer,uint32_t patchControlPoints) const5445     void vkCmdSetPatchControlPointsEXT( VkCommandBuffer commandBuffer, uint32_t patchControlPoints ) const VULKAN_HPP_NOEXCEPT
5446     {
5447       return ::vkCmdSetPatchControlPointsEXT( commandBuffer, patchControlPoints );
5448     }
5449 
vkCmdSetRasterizerDiscardEnableEXT(VkCommandBuffer commandBuffer,VkBool32 rasterizerDiscardEnable) const5450     void vkCmdSetRasterizerDiscardEnableEXT( VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable ) const VULKAN_HPP_NOEXCEPT
5451     {
5452       return ::vkCmdSetRasterizerDiscardEnableEXT( commandBuffer, rasterizerDiscardEnable );
5453     }
5454 
vkCmdSetDepthBiasEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthBiasEnable) const5455     void vkCmdSetDepthBiasEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable ) const VULKAN_HPP_NOEXCEPT
5456     {
5457       return ::vkCmdSetDepthBiasEnableEXT( commandBuffer, depthBiasEnable );
5458     }
5459 
vkCmdSetLogicOpEXT(VkCommandBuffer commandBuffer,VkLogicOp logicOp) const5460     void vkCmdSetLogicOpEXT( VkCommandBuffer commandBuffer, VkLogicOp logicOp ) const VULKAN_HPP_NOEXCEPT
5461     {
5462       return ::vkCmdSetLogicOpEXT( commandBuffer, logicOp );
5463     }
5464 
vkCmdSetPrimitiveRestartEnableEXT(VkCommandBuffer commandBuffer,VkBool32 primitiveRestartEnable) const5465     void vkCmdSetPrimitiveRestartEnableEXT( VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable ) const VULKAN_HPP_NOEXCEPT
5466     {
5467       return ::vkCmdSetPrimitiveRestartEnableEXT( commandBuffer, primitiveRestartEnable );
5468     }
5469 
5470 #  if defined( VK_USE_PLATFORM_SCREEN_QNX )
5471     //=== VK_QNX_screen_surface ===
5472 
vkCreateScreenSurfaceQNX(VkInstance instance,const VkScreenSurfaceCreateInfoQNX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const5473     VkResult vkCreateScreenSurfaceQNX( VkInstance                           instance,
5474                                        const VkScreenSurfaceCreateInfoQNX * pCreateInfo,
5475                                        const VkAllocationCallbacks *        pAllocator,
5476                                        VkSurfaceKHR *                       pSurface ) const VULKAN_HPP_NOEXCEPT
5477     {
5478       return ::vkCreateScreenSurfaceQNX( instance, pCreateInfo, pAllocator, pSurface );
5479     }
5480 
vkGetPhysicalDeviceScreenPresentationSupportQNX(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,struct _screen_window * window) const5481     VkBool32 vkGetPhysicalDeviceScreenPresentationSupportQNX( VkPhysicalDevice        physicalDevice,
5482                                                               uint32_t                queueFamilyIndex,
5483                                                               struct _screen_window * window ) const VULKAN_HPP_NOEXCEPT
5484     {
5485       return ::vkGetPhysicalDeviceScreenPresentationSupportQNX( physicalDevice, queueFamilyIndex, window );
5486     }
5487 #  endif /*VK_USE_PLATFORM_SCREEN_QNX*/
5488 
5489     //=== VK_EXT_color_write_enable ===
5490 
vkCmdSetColorWriteEnableEXT(VkCommandBuffer commandBuffer,uint32_t attachmentCount,const VkBool32 * pColorWriteEnables) const5491     void vkCmdSetColorWriteEnableEXT( VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32 * pColorWriteEnables ) const VULKAN_HPP_NOEXCEPT
5492     {
5493       return ::vkCmdSetColorWriteEnableEXT( commandBuffer, attachmentCount, pColorWriteEnables );
5494     }
5495 
5496     //=== VK_KHR_ray_tracing_maintenance1 ===
5497 
vkCmdTraceRaysIndirect2KHR(VkCommandBuffer commandBuffer,VkDeviceAddress indirectDeviceAddress) const5498     void vkCmdTraceRaysIndirect2KHR( VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT
5499     {
5500       return ::vkCmdTraceRaysIndirect2KHR( commandBuffer, indirectDeviceAddress );
5501     }
5502 
5503     //=== VK_EXT_multi_draw ===
5504 
vkCmdDrawMultiEXT(VkCommandBuffer commandBuffer,uint32_t drawCount,const VkMultiDrawInfoEXT * pVertexInfo,uint32_t instanceCount,uint32_t firstInstance,uint32_t stride) const5505     void vkCmdDrawMultiEXT( VkCommandBuffer            commandBuffer,
5506                             uint32_t                   drawCount,
5507                             const VkMultiDrawInfoEXT * pVertexInfo,
5508                             uint32_t                   instanceCount,
5509                             uint32_t                   firstInstance,
5510                             uint32_t                   stride ) const VULKAN_HPP_NOEXCEPT
5511     {
5512       return ::vkCmdDrawMultiEXT( commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride );
5513     }
5514 
vkCmdDrawMultiIndexedEXT(VkCommandBuffer commandBuffer,uint32_t drawCount,const VkMultiDrawIndexedInfoEXT * pIndexInfo,uint32_t instanceCount,uint32_t firstInstance,uint32_t stride,const int32_t * pVertexOffset) const5515     void vkCmdDrawMultiIndexedEXT( VkCommandBuffer                   commandBuffer,
5516                                    uint32_t                          drawCount,
5517                                    const VkMultiDrawIndexedInfoEXT * pIndexInfo,
5518                                    uint32_t                          instanceCount,
5519                                    uint32_t                          firstInstance,
5520                                    uint32_t                          stride,
5521                                    const int32_t *                   pVertexOffset ) const VULKAN_HPP_NOEXCEPT
5522     {
5523       return ::vkCmdDrawMultiIndexedEXT( commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset );
5524     }
5525 
5526     //=== VK_EXT_opacity_micromap ===
5527 
vkCreateMicromapEXT(VkDevice device,const VkMicromapCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkMicromapEXT * pMicromap) const5528     VkResult vkCreateMicromapEXT( VkDevice                        device,
5529                                   const VkMicromapCreateInfoEXT * pCreateInfo,
5530                                   const VkAllocationCallbacks *   pAllocator,
5531                                   VkMicromapEXT *                 pMicromap ) const VULKAN_HPP_NOEXCEPT
5532     {
5533       return ::vkCreateMicromapEXT( device, pCreateInfo, pAllocator, pMicromap );
5534     }
5535 
vkDestroyMicromapEXT(VkDevice device,VkMicromapEXT micromap,const VkAllocationCallbacks * pAllocator) const5536     void vkDestroyMicromapEXT( VkDevice device, VkMicromapEXT micromap, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
5537     {
5538       return ::vkDestroyMicromapEXT( device, micromap, pAllocator );
5539     }
5540 
vkCmdBuildMicromapsEXT(VkCommandBuffer commandBuffer,uint32_t infoCount,const VkMicromapBuildInfoEXT * pInfos) const5541     void vkCmdBuildMicromapsEXT( VkCommandBuffer commandBuffer, uint32_t infoCount, const VkMicromapBuildInfoEXT * pInfos ) const VULKAN_HPP_NOEXCEPT
5542     {
5543       return ::vkCmdBuildMicromapsEXT( commandBuffer, infoCount, pInfos );
5544     }
5545 
vkBuildMicromapsEXT(VkDevice device,VkDeferredOperationKHR deferredOperation,uint32_t infoCount,const VkMicromapBuildInfoEXT * pInfos) const5546     VkResult vkBuildMicromapsEXT( VkDevice                       device,
5547                                   VkDeferredOperationKHR         deferredOperation,
5548                                   uint32_t                       infoCount,
5549                                   const VkMicromapBuildInfoEXT * pInfos ) const VULKAN_HPP_NOEXCEPT
5550     {
5551       return ::vkBuildMicromapsEXT( device, deferredOperation, infoCount, pInfos );
5552     }
5553 
vkCopyMicromapEXT(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyMicromapInfoEXT * pInfo) const5554     VkResult vkCopyMicromapEXT( VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapInfoEXT * pInfo ) const VULKAN_HPP_NOEXCEPT
5555     {
5556       return ::vkCopyMicromapEXT( device, deferredOperation, pInfo );
5557     }
5558 
vkCopyMicromapToMemoryEXT(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyMicromapToMemoryInfoEXT * pInfo) const5559     VkResult vkCopyMicromapToMemoryEXT( VkDevice                              device,
5560                                         VkDeferredOperationKHR                deferredOperation,
5561                                         const VkCopyMicromapToMemoryInfoEXT * pInfo ) const VULKAN_HPP_NOEXCEPT
5562     {
5563       return ::vkCopyMicromapToMemoryEXT( device, deferredOperation, pInfo );
5564     }
5565 
vkCopyMemoryToMicromapEXT(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyMemoryToMicromapInfoEXT * pInfo) const5566     VkResult vkCopyMemoryToMicromapEXT( VkDevice                              device,
5567                                         VkDeferredOperationKHR                deferredOperation,
5568                                         const VkCopyMemoryToMicromapInfoEXT * pInfo ) const VULKAN_HPP_NOEXCEPT
5569     {
5570       return ::vkCopyMemoryToMicromapEXT( device, deferredOperation, pInfo );
5571     }
5572 
vkWriteMicromapsPropertiesEXT(VkDevice device,uint32_t micromapCount,const VkMicromapEXT * pMicromaps,VkQueryType queryType,size_t dataSize,void * pData,size_t stride) const5573     VkResult vkWriteMicromapsPropertiesEXT( VkDevice              device,
5574                                             uint32_t              micromapCount,
5575                                             const VkMicromapEXT * pMicromaps,
5576                                             VkQueryType           queryType,
5577                                             size_t                dataSize,
5578                                             void *                pData,
5579                                             size_t                stride ) const VULKAN_HPP_NOEXCEPT
5580     {
5581       return ::vkWriteMicromapsPropertiesEXT( device, micromapCount, pMicromaps, queryType, dataSize, pData, stride );
5582     }
5583 
vkCmdCopyMicromapEXT(VkCommandBuffer commandBuffer,const VkCopyMicromapInfoEXT * pInfo) const5584     void vkCmdCopyMicromapEXT( VkCommandBuffer commandBuffer, const VkCopyMicromapInfoEXT * pInfo ) const VULKAN_HPP_NOEXCEPT
5585     {
5586       return ::vkCmdCopyMicromapEXT( commandBuffer, pInfo );
5587     }
5588 
vkCmdCopyMicromapToMemoryEXT(VkCommandBuffer commandBuffer,const VkCopyMicromapToMemoryInfoEXT * pInfo) const5589     void vkCmdCopyMicromapToMemoryEXT( VkCommandBuffer commandBuffer, const VkCopyMicromapToMemoryInfoEXT * pInfo ) const VULKAN_HPP_NOEXCEPT
5590     {
5591       return ::vkCmdCopyMicromapToMemoryEXT( commandBuffer, pInfo );
5592     }
5593 
vkCmdCopyMemoryToMicromapEXT(VkCommandBuffer commandBuffer,const VkCopyMemoryToMicromapInfoEXT * pInfo) const5594     void vkCmdCopyMemoryToMicromapEXT( VkCommandBuffer commandBuffer, const VkCopyMemoryToMicromapInfoEXT * pInfo ) const VULKAN_HPP_NOEXCEPT
5595     {
5596       return ::vkCmdCopyMemoryToMicromapEXT( commandBuffer, pInfo );
5597     }
5598 
vkCmdWriteMicromapsPropertiesEXT(VkCommandBuffer commandBuffer,uint32_t micromapCount,const VkMicromapEXT * pMicromaps,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery) const5599     void vkCmdWriteMicromapsPropertiesEXT( VkCommandBuffer       commandBuffer,
5600                                            uint32_t              micromapCount,
5601                                            const VkMicromapEXT * pMicromaps,
5602                                            VkQueryType           queryType,
5603                                            VkQueryPool           queryPool,
5604                                            uint32_t              firstQuery ) const VULKAN_HPP_NOEXCEPT
5605     {
5606       return ::vkCmdWriteMicromapsPropertiesEXT( commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery );
5607     }
5608 
vkGetDeviceMicromapCompatibilityEXT(VkDevice device,const VkMicromapVersionInfoEXT * pVersionInfo,VkAccelerationStructureCompatibilityKHR * pCompatibility) const5609     void vkGetDeviceMicromapCompatibilityEXT( VkDevice                                  device,
5610                                               const VkMicromapVersionInfoEXT *          pVersionInfo,
5611                                               VkAccelerationStructureCompatibilityKHR * pCompatibility ) const VULKAN_HPP_NOEXCEPT
5612     {
5613       return ::vkGetDeviceMicromapCompatibilityEXT( device, pVersionInfo, pCompatibility );
5614     }
5615 
vkGetMicromapBuildSizesEXT(VkDevice device,VkAccelerationStructureBuildTypeKHR buildType,const VkMicromapBuildInfoEXT * pBuildInfo,VkMicromapBuildSizesInfoEXT * pSizeInfo) const5616     void vkGetMicromapBuildSizesEXT( VkDevice                            device,
5617                                      VkAccelerationStructureBuildTypeKHR buildType,
5618                                      const VkMicromapBuildInfoEXT *      pBuildInfo,
5619                                      VkMicromapBuildSizesInfoEXT *       pSizeInfo ) const VULKAN_HPP_NOEXCEPT
5620     {
5621       return ::vkGetMicromapBuildSizesEXT( device, buildType, pBuildInfo, pSizeInfo );
5622     }
5623 
5624     //=== VK_HUAWEI_cluster_culling_shader ===
5625 
vkCmdDrawClusterHUAWEI(VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const5626     void vkCmdDrawClusterHUAWEI( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT
5627     {
5628       return ::vkCmdDrawClusterHUAWEI( commandBuffer, groupCountX, groupCountY, groupCountZ );
5629     }
5630 
vkCmdDrawClusterIndirectHUAWEI(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset) const5631     void vkCmdDrawClusterIndirectHUAWEI( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset ) const VULKAN_HPP_NOEXCEPT
5632     {
5633       return ::vkCmdDrawClusterIndirectHUAWEI( commandBuffer, buffer, offset );
5634     }
5635 
5636     //=== VK_EXT_pageable_device_local_memory ===
5637 
vkSetDeviceMemoryPriorityEXT(VkDevice device,VkDeviceMemory memory,float priority) const5638     void vkSetDeviceMemoryPriorityEXT( VkDevice device, VkDeviceMemory memory, float priority ) const VULKAN_HPP_NOEXCEPT
5639     {
5640       return ::vkSetDeviceMemoryPriorityEXT( device, memory, priority );
5641     }
5642 
5643     //=== VK_KHR_maintenance4 ===
5644 
vkGetDeviceBufferMemoryRequirementsKHR(VkDevice device,const VkDeviceBufferMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const5645     void vkGetDeviceBufferMemoryRequirementsKHR( VkDevice                                 device,
5646                                                  const VkDeviceBufferMemoryRequirements * pInfo,
5647                                                  VkMemoryRequirements2 *                  pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
5648     {
5649       return ::vkGetDeviceBufferMemoryRequirementsKHR( device, pInfo, pMemoryRequirements );
5650     }
5651 
vkGetDeviceImageMemoryRequirementsKHR(VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const5652     void vkGetDeviceImageMemoryRequirementsKHR( VkDevice                                device,
5653                                                 const VkDeviceImageMemoryRequirements * pInfo,
5654                                                 VkMemoryRequirements2 *                 pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
5655     {
5656       return ::vkGetDeviceImageMemoryRequirementsKHR( device, pInfo, pMemoryRequirements );
5657     }
5658 
vkGetDeviceImageSparseMemoryRequirementsKHR(VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements) const5659     void vkGetDeviceImageSparseMemoryRequirementsKHR( VkDevice                                device,
5660                                                       const VkDeviceImageMemoryRequirements * pInfo,
5661                                                       uint32_t *                              pSparseMemoryRequirementCount,
5662                                                       VkSparseImageMemoryRequirements2 *      pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
5663     {
5664       return ::vkGetDeviceImageSparseMemoryRequirementsKHR( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
5665     }
5666 
5667     //=== VK_VALVE_descriptor_set_host_mapping ===
5668 
vkGetDescriptorSetLayoutHostMappingInfoVALVE(VkDevice device,const VkDescriptorSetBindingReferenceVALVE * pBindingReference,VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping) const5669     void vkGetDescriptorSetLayoutHostMappingInfoVALVE( VkDevice                                     device,
5670                                                        const VkDescriptorSetBindingReferenceVALVE * pBindingReference,
5671                                                        VkDescriptorSetLayoutHostMappingInfoVALVE *  pHostMapping ) const VULKAN_HPP_NOEXCEPT
5672     {
5673       return ::vkGetDescriptorSetLayoutHostMappingInfoVALVE( device, pBindingReference, pHostMapping );
5674     }
5675 
vkGetDescriptorSetHostMappingVALVE(VkDevice device,VkDescriptorSet descriptorSet,void ** ppData) const5676     void vkGetDescriptorSetHostMappingVALVE( VkDevice device, VkDescriptorSet descriptorSet, void ** ppData ) const VULKAN_HPP_NOEXCEPT
5677     {
5678       return ::vkGetDescriptorSetHostMappingVALVE( device, descriptorSet, ppData );
5679     }
5680 
5681     //=== VK_NV_copy_memory_indirect ===
5682 
vkCmdCopyMemoryIndirectNV(VkCommandBuffer commandBuffer,VkDeviceAddress copyBufferAddress,uint32_t copyCount,uint32_t stride) const5683     void vkCmdCopyMemoryIndirectNV( VkCommandBuffer commandBuffer,
5684                                     VkDeviceAddress copyBufferAddress,
5685                                     uint32_t        copyCount,
5686                                     uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
5687     {
5688       return ::vkCmdCopyMemoryIndirectNV( commandBuffer, copyBufferAddress, copyCount, stride );
5689     }
5690 
vkCmdCopyMemoryToImageIndirectNV(VkCommandBuffer commandBuffer,VkDeviceAddress copyBufferAddress,uint32_t copyCount,uint32_t stride,VkImage dstImage,VkImageLayout dstImageLayout,const VkImageSubresourceLayers * pImageSubresources) const5691     void vkCmdCopyMemoryToImageIndirectNV( VkCommandBuffer                  commandBuffer,
5692                                            VkDeviceAddress                  copyBufferAddress,
5693                                            uint32_t                         copyCount,
5694                                            uint32_t                         stride,
5695                                            VkImage                          dstImage,
5696                                            VkImageLayout                    dstImageLayout,
5697                                            const VkImageSubresourceLayers * pImageSubresources ) const VULKAN_HPP_NOEXCEPT
5698     {
5699       return ::vkCmdCopyMemoryToImageIndirectNV( commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources );
5700     }
5701 
5702     //=== VK_NV_memory_decompression ===
5703 
vkCmdDecompressMemoryNV(VkCommandBuffer commandBuffer,uint32_t decompressRegionCount,const VkDecompressMemoryRegionNV * pDecompressMemoryRegions) const5704     void vkCmdDecompressMemoryNV( VkCommandBuffer                    commandBuffer,
5705                                   uint32_t                           decompressRegionCount,
5706                                   const VkDecompressMemoryRegionNV * pDecompressMemoryRegions ) const VULKAN_HPP_NOEXCEPT
5707     {
5708       return ::vkCmdDecompressMemoryNV( commandBuffer, decompressRegionCount, pDecompressMemoryRegions );
5709     }
5710 
vkCmdDecompressMemoryIndirectCountNV(VkCommandBuffer commandBuffer,VkDeviceAddress indirectCommandsAddress,VkDeviceAddress indirectCommandsCountAddress,uint32_t stride) const5711     void vkCmdDecompressMemoryIndirectCountNV( VkCommandBuffer commandBuffer,
5712                                                VkDeviceAddress indirectCommandsAddress,
5713                                                VkDeviceAddress indirectCommandsCountAddress,
5714                                                uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
5715     {
5716       return ::vkCmdDecompressMemoryIndirectCountNV( commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride );
5717     }
5718 
5719     //=== VK_NV_device_generated_commands_compute ===
5720 
vkGetPipelineIndirectMemoryRequirementsNV(VkDevice device,const VkComputePipelineCreateInfo * pCreateInfo,VkMemoryRequirements2 * pMemoryRequirements) const5721     void vkGetPipelineIndirectMemoryRequirementsNV( VkDevice                            device,
5722                                                     const VkComputePipelineCreateInfo * pCreateInfo,
5723                                                     VkMemoryRequirements2 *             pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
5724     {
5725       return ::vkGetPipelineIndirectMemoryRequirementsNV( device, pCreateInfo, pMemoryRequirements );
5726     }
5727 
5728     void
vkCmdUpdatePipelineIndirectBufferNV(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline) const5729       vkCmdUpdatePipelineIndirectBufferNV( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline ) const VULKAN_HPP_NOEXCEPT
5730     {
5731       return ::vkCmdUpdatePipelineIndirectBufferNV( commandBuffer, pipelineBindPoint, pipeline );
5732     }
5733 
vkGetPipelineIndirectDeviceAddressNV(VkDevice device,const VkPipelineIndirectDeviceAddressInfoNV * pInfo) const5734     VkDeviceAddress vkGetPipelineIndirectDeviceAddressNV( VkDevice device, const VkPipelineIndirectDeviceAddressInfoNV * pInfo ) const VULKAN_HPP_NOEXCEPT
5735     {
5736       return ::vkGetPipelineIndirectDeviceAddressNV( device, pInfo );
5737     }
5738 
5739     //=== VK_EXT_extended_dynamic_state3 ===
5740 
vkCmdSetTessellationDomainOriginEXT(VkCommandBuffer commandBuffer,VkTessellationDomainOrigin domainOrigin) const5741     void vkCmdSetTessellationDomainOriginEXT( VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin ) const VULKAN_HPP_NOEXCEPT
5742     {
5743       return ::vkCmdSetTessellationDomainOriginEXT( commandBuffer, domainOrigin );
5744     }
5745 
vkCmdSetDepthClampEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthClampEnable) const5746     void vkCmdSetDepthClampEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthClampEnable ) const VULKAN_HPP_NOEXCEPT
5747     {
5748       return ::vkCmdSetDepthClampEnableEXT( commandBuffer, depthClampEnable );
5749     }
5750 
vkCmdSetPolygonModeEXT(VkCommandBuffer commandBuffer,VkPolygonMode polygonMode) const5751     void vkCmdSetPolygonModeEXT( VkCommandBuffer commandBuffer, VkPolygonMode polygonMode ) const VULKAN_HPP_NOEXCEPT
5752     {
5753       return ::vkCmdSetPolygonModeEXT( commandBuffer, polygonMode );
5754     }
5755 
vkCmdSetRasterizationSamplesEXT(VkCommandBuffer commandBuffer,VkSampleCountFlagBits rasterizationSamples) const5756     void vkCmdSetRasterizationSamplesEXT( VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples ) const VULKAN_HPP_NOEXCEPT
5757     {
5758       return ::vkCmdSetRasterizationSamplesEXT( commandBuffer, rasterizationSamples );
5759     }
5760 
vkCmdSetSampleMaskEXT(VkCommandBuffer commandBuffer,VkSampleCountFlagBits samples,const VkSampleMask * pSampleMask) const5761     void vkCmdSetSampleMaskEXT( VkCommandBuffer commandBuffer, VkSampleCountFlagBits samples, const VkSampleMask * pSampleMask ) const VULKAN_HPP_NOEXCEPT
5762     {
5763       return ::vkCmdSetSampleMaskEXT( commandBuffer, samples, pSampleMask );
5764     }
5765 
vkCmdSetAlphaToCoverageEnableEXT(VkCommandBuffer commandBuffer,VkBool32 alphaToCoverageEnable) const5766     void vkCmdSetAlphaToCoverageEnableEXT( VkCommandBuffer commandBuffer, VkBool32 alphaToCoverageEnable ) const VULKAN_HPP_NOEXCEPT
5767     {
5768       return ::vkCmdSetAlphaToCoverageEnableEXT( commandBuffer, alphaToCoverageEnable );
5769     }
5770 
vkCmdSetAlphaToOneEnableEXT(VkCommandBuffer commandBuffer,VkBool32 alphaToOneEnable) const5771     void vkCmdSetAlphaToOneEnableEXT( VkCommandBuffer commandBuffer, VkBool32 alphaToOneEnable ) const VULKAN_HPP_NOEXCEPT
5772     {
5773       return ::vkCmdSetAlphaToOneEnableEXT( commandBuffer, alphaToOneEnable );
5774     }
5775 
vkCmdSetLogicOpEnableEXT(VkCommandBuffer commandBuffer,VkBool32 logicOpEnable) const5776     void vkCmdSetLogicOpEnableEXT( VkCommandBuffer commandBuffer, VkBool32 logicOpEnable ) const VULKAN_HPP_NOEXCEPT
5777     {
5778       return ::vkCmdSetLogicOpEnableEXT( commandBuffer, logicOpEnable );
5779     }
5780 
vkCmdSetColorBlendEnableEXT(VkCommandBuffer commandBuffer,uint32_t firstAttachment,uint32_t attachmentCount,const VkBool32 * pColorBlendEnables) const5781     void vkCmdSetColorBlendEnableEXT( VkCommandBuffer  commandBuffer,
5782                                       uint32_t         firstAttachment,
5783                                       uint32_t         attachmentCount,
5784                                       const VkBool32 * pColorBlendEnables ) const VULKAN_HPP_NOEXCEPT
5785     {
5786       return ::vkCmdSetColorBlendEnableEXT( commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables );
5787     }
5788 
vkCmdSetColorBlendEquationEXT(VkCommandBuffer commandBuffer,uint32_t firstAttachment,uint32_t attachmentCount,const VkColorBlendEquationEXT * pColorBlendEquations) const5789     void vkCmdSetColorBlendEquationEXT( VkCommandBuffer                 commandBuffer,
5790                                         uint32_t                        firstAttachment,
5791                                         uint32_t                        attachmentCount,
5792                                         const VkColorBlendEquationEXT * pColorBlendEquations ) const VULKAN_HPP_NOEXCEPT
5793     {
5794       return ::vkCmdSetColorBlendEquationEXT( commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations );
5795     }
5796 
vkCmdSetColorWriteMaskEXT(VkCommandBuffer commandBuffer,uint32_t firstAttachment,uint32_t attachmentCount,const VkColorComponentFlags * pColorWriteMasks) const5797     void vkCmdSetColorWriteMaskEXT( VkCommandBuffer               commandBuffer,
5798                                     uint32_t                      firstAttachment,
5799                                     uint32_t                      attachmentCount,
5800                                     const VkColorComponentFlags * pColorWriteMasks ) const VULKAN_HPP_NOEXCEPT
5801     {
5802       return ::vkCmdSetColorWriteMaskEXT( commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks );
5803     }
5804 
vkCmdSetRasterizationStreamEXT(VkCommandBuffer commandBuffer,uint32_t rasterizationStream) const5805     void vkCmdSetRasterizationStreamEXT( VkCommandBuffer commandBuffer, uint32_t rasterizationStream ) const VULKAN_HPP_NOEXCEPT
5806     {
5807       return ::vkCmdSetRasterizationStreamEXT( commandBuffer, rasterizationStream );
5808     }
5809 
vkCmdSetConservativeRasterizationModeEXT(VkCommandBuffer commandBuffer,VkConservativeRasterizationModeEXT conservativeRasterizationMode) const5810     void vkCmdSetConservativeRasterizationModeEXT( VkCommandBuffer                    commandBuffer,
5811                                                    VkConservativeRasterizationModeEXT conservativeRasterizationMode ) const VULKAN_HPP_NOEXCEPT
5812     {
5813       return ::vkCmdSetConservativeRasterizationModeEXT( commandBuffer, conservativeRasterizationMode );
5814     }
5815 
vkCmdSetExtraPrimitiveOverestimationSizeEXT(VkCommandBuffer commandBuffer,float extraPrimitiveOverestimationSize) const5816     void vkCmdSetExtraPrimitiveOverestimationSizeEXT( VkCommandBuffer commandBuffer, float extraPrimitiveOverestimationSize ) const VULKAN_HPP_NOEXCEPT
5817     {
5818       return ::vkCmdSetExtraPrimitiveOverestimationSizeEXT( commandBuffer, extraPrimitiveOverestimationSize );
5819     }
5820 
vkCmdSetDepthClipEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthClipEnable) const5821     void vkCmdSetDepthClipEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthClipEnable ) const VULKAN_HPP_NOEXCEPT
5822     {
5823       return ::vkCmdSetDepthClipEnableEXT( commandBuffer, depthClipEnable );
5824     }
5825 
vkCmdSetSampleLocationsEnableEXT(VkCommandBuffer commandBuffer,VkBool32 sampleLocationsEnable) const5826     void vkCmdSetSampleLocationsEnableEXT( VkCommandBuffer commandBuffer, VkBool32 sampleLocationsEnable ) const VULKAN_HPP_NOEXCEPT
5827     {
5828       return ::vkCmdSetSampleLocationsEnableEXT( commandBuffer, sampleLocationsEnable );
5829     }
5830 
vkCmdSetColorBlendAdvancedEXT(VkCommandBuffer commandBuffer,uint32_t firstAttachment,uint32_t attachmentCount,const VkColorBlendAdvancedEXT * pColorBlendAdvanced) const5831     void vkCmdSetColorBlendAdvancedEXT( VkCommandBuffer                 commandBuffer,
5832                                         uint32_t                        firstAttachment,
5833                                         uint32_t                        attachmentCount,
5834                                         const VkColorBlendAdvancedEXT * pColorBlendAdvanced ) const VULKAN_HPP_NOEXCEPT
5835     {
5836       return ::vkCmdSetColorBlendAdvancedEXT( commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced );
5837     }
5838 
vkCmdSetProvokingVertexModeEXT(VkCommandBuffer commandBuffer,VkProvokingVertexModeEXT provokingVertexMode) const5839     void vkCmdSetProvokingVertexModeEXT( VkCommandBuffer commandBuffer, VkProvokingVertexModeEXT provokingVertexMode ) const VULKAN_HPP_NOEXCEPT
5840     {
5841       return ::vkCmdSetProvokingVertexModeEXT( commandBuffer, provokingVertexMode );
5842     }
5843 
vkCmdSetLineRasterizationModeEXT(VkCommandBuffer commandBuffer,VkLineRasterizationModeEXT lineRasterizationMode) const5844     void vkCmdSetLineRasterizationModeEXT( VkCommandBuffer commandBuffer, VkLineRasterizationModeEXT lineRasterizationMode ) const VULKAN_HPP_NOEXCEPT
5845     {
5846       return ::vkCmdSetLineRasterizationModeEXT( commandBuffer, lineRasterizationMode );
5847     }
5848 
vkCmdSetLineStippleEnableEXT(VkCommandBuffer commandBuffer,VkBool32 stippledLineEnable) const5849     void vkCmdSetLineStippleEnableEXT( VkCommandBuffer commandBuffer, VkBool32 stippledLineEnable ) const VULKAN_HPP_NOEXCEPT
5850     {
5851       return ::vkCmdSetLineStippleEnableEXT( commandBuffer, stippledLineEnable );
5852     }
5853 
vkCmdSetDepthClipNegativeOneToOneEXT(VkCommandBuffer commandBuffer,VkBool32 negativeOneToOne) const5854     void vkCmdSetDepthClipNegativeOneToOneEXT( VkCommandBuffer commandBuffer, VkBool32 negativeOneToOne ) const VULKAN_HPP_NOEXCEPT
5855     {
5856       return ::vkCmdSetDepthClipNegativeOneToOneEXT( commandBuffer, negativeOneToOne );
5857     }
5858 
vkCmdSetViewportWScalingEnableNV(VkCommandBuffer commandBuffer,VkBool32 viewportWScalingEnable) const5859     void vkCmdSetViewportWScalingEnableNV( VkCommandBuffer commandBuffer, VkBool32 viewportWScalingEnable ) const VULKAN_HPP_NOEXCEPT
5860     {
5861       return ::vkCmdSetViewportWScalingEnableNV( commandBuffer, viewportWScalingEnable );
5862     }
5863 
vkCmdSetViewportSwizzleNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewportSwizzleNV * pViewportSwizzles) const5864     void vkCmdSetViewportSwizzleNV( VkCommandBuffer             commandBuffer,
5865                                     uint32_t                    firstViewport,
5866                                     uint32_t                    viewportCount,
5867                                     const VkViewportSwizzleNV * pViewportSwizzles ) const VULKAN_HPP_NOEXCEPT
5868     {
5869       return ::vkCmdSetViewportSwizzleNV( commandBuffer, firstViewport, viewportCount, pViewportSwizzles );
5870     }
5871 
vkCmdSetCoverageToColorEnableNV(VkCommandBuffer commandBuffer,VkBool32 coverageToColorEnable) const5872     void vkCmdSetCoverageToColorEnableNV( VkCommandBuffer commandBuffer, VkBool32 coverageToColorEnable ) const VULKAN_HPP_NOEXCEPT
5873     {
5874       return ::vkCmdSetCoverageToColorEnableNV( commandBuffer, coverageToColorEnable );
5875     }
5876 
vkCmdSetCoverageToColorLocationNV(VkCommandBuffer commandBuffer,uint32_t coverageToColorLocation) const5877     void vkCmdSetCoverageToColorLocationNV( VkCommandBuffer commandBuffer, uint32_t coverageToColorLocation ) const VULKAN_HPP_NOEXCEPT
5878     {
5879       return ::vkCmdSetCoverageToColorLocationNV( commandBuffer, coverageToColorLocation );
5880     }
5881 
vkCmdSetCoverageModulationModeNV(VkCommandBuffer commandBuffer,VkCoverageModulationModeNV coverageModulationMode) const5882     void vkCmdSetCoverageModulationModeNV( VkCommandBuffer commandBuffer, VkCoverageModulationModeNV coverageModulationMode ) const VULKAN_HPP_NOEXCEPT
5883     {
5884       return ::vkCmdSetCoverageModulationModeNV( commandBuffer, coverageModulationMode );
5885     }
5886 
vkCmdSetCoverageModulationTableEnableNV(VkCommandBuffer commandBuffer,VkBool32 coverageModulationTableEnable) const5887     void vkCmdSetCoverageModulationTableEnableNV( VkCommandBuffer commandBuffer, VkBool32 coverageModulationTableEnable ) const VULKAN_HPP_NOEXCEPT
5888     {
5889       return ::vkCmdSetCoverageModulationTableEnableNV( commandBuffer, coverageModulationTableEnable );
5890     }
5891 
vkCmdSetCoverageModulationTableNV(VkCommandBuffer commandBuffer,uint32_t coverageModulationTableCount,const float * pCoverageModulationTable) const5892     void vkCmdSetCoverageModulationTableNV( VkCommandBuffer commandBuffer,
5893                                             uint32_t        coverageModulationTableCount,
5894                                             const float *   pCoverageModulationTable ) const VULKAN_HPP_NOEXCEPT
5895     {
5896       return ::vkCmdSetCoverageModulationTableNV( commandBuffer, coverageModulationTableCount, pCoverageModulationTable );
5897     }
5898 
vkCmdSetShadingRateImageEnableNV(VkCommandBuffer commandBuffer,VkBool32 shadingRateImageEnable) const5899     void vkCmdSetShadingRateImageEnableNV( VkCommandBuffer commandBuffer, VkBool32 shadingRateImageEnable ) const VULKAN_HPP_NOEXCEPT
5900     {
5901       return ::vkCmdSetShadingRateImageEnableNV( commandBuffer, shadingRateImageEnable );
5902     }
5903 
vkCmdSetRepresentativeFragmentTestEnableNV(VkCommandBuffer commandBuffer,VkBool32 representativeFragmentTestEnable) const5904     void vkCmdSetRepresentativeFragmentTestEnableNV( VkCommandBuffer commandBuffer, VkBool32 representativeFragmentTestEnable ) const VULKAN_HPP_NOEXCEPT
5905     {
5906       return ::vkCmdSetRepresentativeFragmentTestEnableNV( commandBuffer, representativeFragmentTestEnable );
5907     }
5908 
vkCmdSetCoverageReductionModeNV(VkCommandBuffer commandBuffer,VkCoverageReductionModeNV coverageReductionMode) const5909     void vkCmdSetCoverageReductionModeNV( VkCommandBuffer commandBuffer, VkCoverageReductionModeNV coverageReductionMode ) const VULKAN_HPP_NOEXCEPT
5910     {
5911       return ::vkCmdSetCoverageReductionModeNV( commandBuffer, coverageReductionMode );
5912     }
5913 
5914     //=== VK_EXT_shader_module_identifier ===
5915 
vkGetShaderModuleIdentifierEXT(VkDevice device,VkShaderModule shaderModule,VkShaderModuleIdentifierEXT * pIdentifier) const5916     void vkGetShaderModuleIdentifierEXT( VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT * pIdentifier ) const VULKAN_HPP_NOEXCEPT
5917     {
5918       return ::vkGetShaderModuleIdentifierEXT( device, shaderModule, pIdentifier );
5919     }
5920 
vkGetShaderModuleCreateInfoIdentifierEXT(VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,VkShaderModuleIdentifierEXT * pIdentifier) const5921     void vkGetShaderModuleCreateInfoIdentifierEXT( VkDevice                         device,
5922                                                    const VkShaderModuleCreateInfo * pCreateInfo,
5923                                                    VkShaderModuleIdentifierEXT *    pIdentifier ) const VULKAN_HPP_NOEXCEPT
5924     {
5925       return ::vkGetShaderModuleCreateInfoIdentifierEXT( device, pCreateInfo, pIdentifier );
5926     }
5927 
5928     //=== VK_NV_optical_flow ===
5929 
vkGetPhysicalDeviceOpticalFlowImageFormatsNV(VkPhysicalDevice physicalDevice,const VkOpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo,uint32_t * pFormatCount,VkOpticalFlowImageFormatPropertiesNV * pImageFormatProperties) const5930     VkResult vkGetPhysicalDeviceOpticalFlowImageFormatsNV( VkPhysicalDevice                       physicalDevice,
5931                                                            const VkOpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo,
5932                                                            uint32_t *                             pFormatCount,
5933                                                            VkOpticalFlowImageFormatPropertiesNV * pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
5934     {
5935       return ::vkGetPhysicalDeviceOpticalFlowImageFormatsNV( physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties );
5936     }
5937 
vkCreateOpticalFlowSessionNV(VkDevice device,const VkOpticalFlowSessionCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkOpticalFlowSessionNV * pSession) const5938     VkResult vkCreateOpticalFlowSessionNV( VkDevice                                 device,
5939                                            const VkOpticalFlowSessionCreateInfoNV * pCreateInfo,
5940                                            const VkAllocationCallbacks *            pAllocator,
5941                                            VkOpticalFlowSessionNV *                 pSession ) const VULKAN_HPP_NOEXCEPT
5942     {
5943       return ::vkCreateOpticalFlowSessionNV( device, pCreateInfo, pAllocator, pSession );
5944     }
5945 
vkDestroyOpticalFlowSessionNV(VkDevice device,VkOpticalFlowSessionNV session,const VkAllocationCallbacks * pAllocator) const5946     void vkDestroyOpticalFlowSessionNV( VkDevice device, VkOpticalFlowSessionNV session, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
5947     {
5948       return ::vkDestroyOpticalFlowSessionNV( device, session, pAllocator );
5949     }
5950 
vkBindOpticalFlowSessionImageNV(VkDevice device,VkOpticalFlowSessionNV session,VkOpticalFlowSessionBindingPointNV bindingPoint,VkImageView view,VkImageLayout layout) const5951     VkResult vkBindOpticalFlowSessionImageNV( VkDevice                           device,
5952                                               VkOpticalFlowSessionNV             session,
5953                                               VkOpticalFlowSessionBindingPointNV bindingPoint,
5954                                               VkImageView                        view,
5955                                               VkImageLayout                      layout ) const VULKAN_HPP_NOEXCEPT
5956     {
5957       return ::vkBindOpticalFlowSessionImageNV( device, session, bindingPoint, view, layout );
5958     }
5959 
vkCmdOpticalFlowExecuteNV(VkCommandBuffer commandBuffer,VkOpticalFlowSessionNV session,const VkOpticalFlowExecuteInfoNV * pExecuteInfo) const5960     void vkCmdOpticalFlowExecuteNV( VkCommandBuffer                    commandBuffer,
5961                                     VkOpticalFlowSessionNV             session,
5962                                     const VkOpticalFlowExecuteInfoNV * pExecuteInfo ) const VULKAN_HPP_NOEXCEPT
5963     {
5964       return ::vkCmdOpticalFlowExecuteNV( commandBuffer, session, pExecuteInfo );
5965     }
5966 
5967     //=== VK_EXT_shader_object ===
5968 
vkCreateShadersEXT(VkDevice device,uint32_t createInfoCount,const VkShaderCreateInfoEXT * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkShaderEXT * pShaders) const5969     VkResult vkCreateShadersEXT( VkDevice                      device,
5970                                  uint32_t                      createInfoCount,
5971                                  const VkShaderCreateInfoEXT * pCreateInfos,
5972                                  const VkAllocationCallbacks * pAllocator,
5973                                  VkShaderEXT *                 pShaders ) const VULKAN_HPP_NOEXCEPT
5974     {
5975       return ::vkCreateShadersEXT( device, createInfoCount, pCreateInfos, pAllocator, pShaders );
5976     }
5977 
vkDestroyShaderEXT(VkDevice device,VkShaderEXT shader,const VkAllocationCallbacks * pAllocator) const5978     void vkDestroyShaderEXT( VkDevice device, VkShaderEXT shader, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
5979     {
5980       return ::vkDestroyShaderEXT( device, shader, pAllocator );
5981     }
5982 
vkGetShaderBinaryDataEXT(VkDevice device,VkShaderEXT shader,size_t * pDataSize,void * pData) const5983     VkResult vkGetShaderBinaryDataEXT( VkDevice device, VkShaderEXT shader, size_t * pDataSize, void * pData ) const VULKAN_HPP_NOEXCEPT
5984     {
5985       return ::vkGetShaderBinaryDataEXT( device, shader, pDataSize, pData );
5986     }
5987 
vkCmdBindShadersEXT(VkCommandBuffer commandBuffer,uint32_t stageCount,const VkShaderStageFlagBits * pStages,const VkShaderEXT * pShaders) const5988     void vkCmdBindShadersEXT( VkCommandBuffer               commandBuffer,
5989                               uint32_t                      stageCount,
5990                               const VkShaderStageFlagBits * pStages,
5991                               const VkShaderEXT *           pShaders ) const VULKAN_HPP_NOEXCEPT
5992     {
5993       return ::vkCmdBindShadersEXT( commandBuffer, stageCount, pStages, pShaders );
5994     }
5995 
5996     //=== VK_QCOM_tile_properties ===
5997 
vkGetFramebufferTilePropertiesQCOM(VkDevice device,VkFramebuffer framebuffer,uint32_t * pPropertiesCount,VkTilePropertiesQCOM * pProperties) const5998     VkResult vkGetFramebufferTilePropertiesQCOM( VkDevice               device,
5999                                                  VkFramebuffer          framebuffer,
6000                                                  uint32_t *             pPropertiesCount,
6001                                                  VkTilePropertiesQCOM * pProperties ) const VULKAN_HPP_NOEXCEPT
6002     {
6003       return ::vkGetFramebufferTilePropertiesQCOM( device, framebuffer, pPropertiesCount, pProperties );
6004     }
6005 
vkGetDynamicRenderingTilePropertiesQCOM(VkDevice device,const VkRenderingInfo * pRenderingInfo,VkTilePropertiesQCOM * pProperties) const6006     VkResult vkGetDynamicRenderingTilePropertiesQCOM( VkDevice                device,
6007                                                       const VkRenderingInfo * pRenderingInfo,
6008                                                       VkTilePropertiesQCOM *  pProperties ) const VULKAN_HPP_NOEXCEPT
6009     {
6010       return ::vkGetDynamicRenderingTilePropertiesQCOM( device, pRenderingInfo, pProperties );
6011     }
6012 
6013     //=== VK_KHR_cooperative_matrix ===
6014 
vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeMatrixPropertiesKHR * pProperties) const6015     VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR( VkPhysicalDevice                   physicalDevice,
6016                                                                 uint32_t *                         pPropertyCount,
6017                                                                 VkCooperativeMatrixPropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT
6018     {
6019       return ::vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR( physicalDevice, pPropertyCount, pProperties );
6020     }
6021 
6022     //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
6023 
vkCmdSetAttachmentFeedbackLoopEnableEXT(VkCommandBuffer commandBuffer,VkImageAspectFlags aspectMask) const6024     void vkCmdSetAttachmentFeedbackLoopEnableEXT( VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask ) const VULKAN_HPP_NOEXCEPT
6025     {
6026       return ::vkCmdSetAttachmentFeedbackLoopEnableEXT( commandBuffer, aspectMask );
6027     }
6028 
6029 #  if defined( VK_USE_PLATFORM_SCREEN_QNX )
6030     //=== VK_QNX_external_memory_screen_buffer ===
6031 
vkGetScreenBufferPropertiesQNX(VkDevice device,const struct _screen_buffer * buffer,VkScreenBufferPropertiesQNX * pProperties) const6032     VkResult vkGetScreenBufferPropertiesQNX( VkDevice                      device,
6033                                              const struct _screen_buffer * buffer,
6034                                              VkScreenBufferPropertiesQNX * pProperties ) const VULKAN_HPP_NOEXCEPT
6035     {
6036       return ::vkGetScreenBufferPropertiesQNX( device, buffer, pProperties );
6037     }
6038 #  endif /*VK_USE_PLATFORM_SCREEN_QNX*/
6039   };
6040 #endif
6041 
6042   class DispatchLoaderDynamic;
6043 #if !defined( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC )
6044 #  if defined( VK_NO_PROTOTYPES )
6045 #    define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1
6046 #  else
6047 #    define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 0
6048 #  endif
6049 #endif
6050 
6051 #if !defined( VULKAN_HPP_STORAGE_API )
6052 #  if defined( VULKAN_HPP_STORAGE_SHARED )
6053 #    if defined( _MSC_VER )
6054 #      if defined( VULKAN_HPP_STORAGE_SHARED_EXPORT )
6055 #        define VULKAN_HPP_STORAGE_API __declspec( dllexport )
6056 #      else
6057 #        define VULKAN_HPP_STORAGE_API __declspec( dllimport )
6058 #      endif
6059 #    elif defined( __clang__ ) || defined( __GNUC__ )
6060 #      if defined( VULKAN_HPP_STORAGE_SHARED_EXPORT )
6061 #        define VULKAN_HPP_STORAGE_API __attribute__( ( visibility( "default" ) ) )
6062 #      else
6063 #        define VULKAN_HPP_STORAGE_API
6064 #      endif
6065 #    else
6066 #      define VULKAN_HPP_STORAGE_API
6067 #      pragma warning Unknown import / export semantics
6068 #    endif
6069 #  else
6070 #    define VULKAN_HPP_STORAGE_API
6071 #  endif
6072 #endif
6073 
6074 #if !defined( VULKAN_HPP_DEFAULT_DISPATCHER )
6075 #  if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
6076 #    define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::defaultDispatchLoaderDynamic
6077 #    define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE                     \
6078       namespace VULKAN_HPP_NAMESPACE                                               \
6079       {                                                                            \
6080         VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic; \
6081       }
6082   extern VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic;
6083 #  else
getDispatchLoaderStatic()6084   inline ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic & getDispatchLoaderStatic()
6085   {
6086     static ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic dls;
6087     return dls;
6088   }
6089 #    define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::getDispatchLoaderStatic()
6090 #    define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE
6091 #  endif
6092 #endif
6093 
6094 #if !defined( VULKAN_HPP_DEFAULT_DISPATCHER_TYPE )
6095 #  if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
6096 #    define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic
6097 #  else
6098 #    define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic
6099 #  endif
6100 #endif
6101 
6102 #if defined( VULKAN_HPP_NO_DEFAULT_DISPATCHER )
6103 #  define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT
6104 #  define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT
6105 #  define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT
6106 #else
6107 #  define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT         = {}
6108 #  define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT = nullptr
6109 #  define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT       = VULKAN_HPP_DEFAULT_DISPATCHER
6110 #endif
6111 
6112 #if !defined( VULKAN_HPP_NO_SMART_HANDLE )
6113   struct AllocationCallbacks;
6114 
6115   template <typename OwnerType, typename Dispatch>
6116   class ObjectDestroy
6117   {
6118   public:
6119     ObjectDestroy() = default;
6120 
ObjectDestroy(OwnerType owner,Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT)6121     ObjectDestroy( OwnerType                                               owner,
6122                    Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
6123                    Dispatch const & dispatch                               VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
6124       : m_owner( owner )
6125       , m_allocationCallbacks( allocationCallbacks )
6126       , m_dispatch( &dispatch )
6127     {
6128     }
6129 
getOwner() const6130     OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
6131     {
6132       return m_owner;
6133     }
getAllocator() const6134     Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT
6135     {
6136       return m_allocationCallbacks;
6137     }
getDispatch() const6138     Dispatch const & getDispatch() const VULKAN_HPP_NOEXCEPT
6139     {
6140       return *m_dispatch;
6141     }
6142 
6143   protected:
6144     template <typename T>
destroy(T t)6145     void destroy( T t ) VULKAN_HPP_NOEXCEPT
6146     {
6147       VULKAN_HPP_ASSERT( m_owner && m_dispatch );
6148       m_owner.destroy( t, m_allocationCallbacks, *m_dispatch );
6149     }
6150 
6151   private:
6152     OwnerType                           m_owner               = {};
6153     Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
6154     Dispatch const *                    m_dispatch            = nullptr;
6155   };
6156 
6157   class NoParent;
6158 
6159   template <typename Dispatch>
6160   class ObjectDestroy<NoParent, Dispatch>
6161   {
6162   public:
6163     ObjectDestroy() = default;
6164 
ObjectDestroy(Optional<const AllocationCallbacks> allocationCallbacks,Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT)6165     ObjectDestroy( Optional<const AllocationCallbacks> allocationCallbacks,
6166                    Dispatch const & dispatch           VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
6167       : m_allocationCallbacks( allocationCallbacks )
6168       , m_dispatch( &dispatch )
6169     {
6170     }
6171 
getAllocator() const6172     Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT
6173     {
6174       return m_allocationCallbacks;
6175     }
getDispatch() const6176     Dispatch const & getDispatch() const VULKAN_HPP_NOEXCEPT
6177     {
6178       return *m_dispatch;
6179     }
6180 
6181   protected:
6182     template <typename T>
destroy(T t)6183     void destroy( T t ) VULKAN_HPP_NOEXCEPT
6184     {
6185       VULKAN_HPP_ASSERT( m_dispatch );
6186       t.destroy( m_allocationCallbacks, *m_dispatch );
6187     }
6188 
6189   private:
6190     Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
6191     Dispatch const *                    m_dispatch            = nullptr;
6192   };
6193 
6194   template <typename OwnerType, typename Dispatch>
6195   class ObjectFree
6196   {
6197   public:
6198     ObjectFree() = default;
6199 
ObjectFree(OwnerType owner,Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT)6200     ObjectFree( OwnerType                                               owner,
6201                 Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
6202                 Dispatch const & dispatch                               VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
6203       : m_owner( owner )
6204       , m_allocationCallbacks( allocationCallbacks )
6205       , m_dispatch( &dispatch )
6206     {
6207     }
6208 
getOwner() const6209     OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
6210     {
6211       return m_owner;
6212     }
6213 
getAllocator() const6214     Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT
6215     {
6216       return m_allocationCallbacks;
6217     }
6218 
getDispatch() const6219     Dispatch const & getDispatch() const VULKAN_HPP_NOEXCEPT
6220     {
6221       return *m_dispatch;
6222     }
6223 
6224   protected:
6225     template <typename T>
destroy(T t)6226     void destroy( T t ) VULKAN_HPP_NOEXCEPT
6227     {
6228       VULKAN_HPP_ASSERT( m_owner && m_dispatch );
6229       ( m_owner.free )( t, m_allocationCallbacks, *m_dispatch );
6230     }
6231 
6232   private:
6233     OwnerType                           m_owner               = {};
6234     Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
6235     Dispatch const *                    m_dispatch            = nullptr;
6236   };
6237 
6238   template <typename OwnerType, typename Dispatch>
6239   class ObjectRelease
6240   {
6241   public:
6242     ObjectRelease() = default;
6243 
ObjectRelease(OwnerType owner,Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT)6244     ObjectRelease( OwnerType owner, Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
6245       : m_owner( owner )
6246       , m_dispatch( &dispatch )
6247     {
6248     }
6249 
getOwner() const6250     OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
6251     {
6252       return m_owner;
6253     }
6254 
getDispatch() const6255     Dispatch const & getDispatch() const VULKAN_HPP_NOEXCEPT
6256     {
6257       return *m_dispatch;
6258     }
6259 
6260   protected:
6261     template <typename T>
destroy(T t)6262     void destroy( T t ) VULKAN_HPP_NOEXCEPT
6263     {
6264       VULKAN_HPP_ASSERT( m_owner && m_dispatch );
6265       m_owner.release( t, *m_dispatch );
6266     }
6267 
6268   private:
6269     OwnerType        m_owner    = {};
6270     Dispatch const * m_dispatch = nullptr;
6271   };
6272 
6273   template <typename OwnerType, typename PoolType, typename Dispatch>
6274   class PoolFree
6275   {
6276   public:
6277     PoolFree() = default;
6278 
PoolFree(OwnerType owner,PoolType pool,Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT)6279     PoolFree( OwnerType owner, PoolType pool, Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
6280       : m_owner( owner )
6281       , m_pool( pool )
6282       , m_dispatch( &dispatch )
6283     {
6284     }
6285 
getOwner() const6286     OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
6287     {
6288       return m_owner;
6289     }
getPool() const6290     PoolType getPool() const VULKAN_HPP_NOEXCEPT
6291     {
6292       return m_pool;
6293     }
getDispatch() const6294     Dispatch const & getDispatch() const VULKAN_HPP_NOEXCEPT
6295     {
6296       return *m_dispatch;
6297     }
6298 
6299   protected:
6300     template <typename T>
destroy(T t)6301     void destroy( T t ) VULKAN_HPP_NOEXCEPT
6302     {
6303       ( m_owner.free )( m_pool, t, *m_dispatch );
6304     }
6305 
6306   private:
6307     OwnerType        m_owner    = OwnerType();
6308     PoolType         m_pool     = PoolType();
6309     Dispatch const * m_dispatch = nullptr;
6310   };
6311 
6312 #endif  // !VULKAN_HPP_NO_SMART_HANDLE
6313 
6314   //==================
6315   //=== BASE TYPEs ===
6316   //==================
6317 
6318   using Bool32          = uint32_t;
6319   using DeviceAddress   = uint64_t;
6320   using DeviceSize      = uint64_t;
6321   using RemoteAddressNV = void *;
6322   using SampleMask      = uint32_t;
6323 
6324 }  // namespace VULKAN_HPP_NAMESPACE
6325 
6326 #include <vulkan/vulkan_enums.hpp>
6327 #if !defined( VULKAN_HPP_NO_TO_STRING )
6328 #  include <vulkan/vulkan_to_string.hpp>
6329 #endif
6330 
6331 #ifndef VULKAN_HPP_NO_EXCEPTIONS
6332 namespace std
6333 {
6334   template <>
6335   struct is_error_code_enum<VULKAN_HPP_NAMESPACE::Result> : public true_type
6336   {
6337   };
6338 }  // namespace std
6339 #endif
6340 
6341 namespace VULKAN_HPP_NAMESPACE
6342 {
6343 #ifndef VULKAN_HPP_NO_EXCEPTIONS
6344   class ErrorCategoryImpl : public std::error_category
6345   {
6346   public:
name() const6347     virtual const char * name() const VULKAN_HPP_NOEXCEPT override
6348     {
6349       return VULKAN_HPP_NAMESPACE_STRING "::Result";
6350     }
message(int ev) const6351     virtual std::string message( int ev ) const override
6352     {
6353 #  if defined( VULKAN_HPP_NO_TO_STRING )
6354       return std::to_string( ev );
6355 #  else
6356       return VULKAN_HPP_NAMESPACE::to_string( static_cast<VULKAN_HPP_NAMESPACE::Result>( ev ) );
6357 #  endif
6358     }
6359   };
6360 
6361   class Error
6362   {
6363   public:
6364     Error() VULKAN_HPP_NOEXCEPT                = default;
6365     Error( const Error & ) VULKAN_HPP_NOEXCEPT = default;
6366     virtual ~Error() VULKAN_HPP_NOEXCEPT       = default;
6367 
6368     virtual const char * what() const VULKAN_HPP_NOEXCEPT = 0;
6369   };
6370 
6371   class LogicError
6372     : public Error
6373     , public std::logic_error
6374   {
6375   public:
LogicError(const std::string & what)6376     explicit LogicError( const std::string & what ) : Error(), std::logic_error( what ) {}
LogicError(char const * what)6377     explicit LogicError( char const * what ) : Error(), std::logic_error( what ) {}
6378 
what() const6379     virtual const char * what() const VULKAN_HPP_NOEXCEPT
6380     {
6381       return std::logic_error::what();
6382     }
6383   };
6384 
6385   class SystemError
6386     : public Error
6387     , public std::system_error
6388   {
6389   public:
SystemError(std::error_code ec)6390     SystemError( std::error_code ec ) : Error(), std::system_error( ec ) {}
SystemError(std::error_code ec,std::string const & what)6391     SystemError( std::error_code ec, std::string const & what ) : Error(), std::system_error( ec, what ) {}
SystemError(std::error_code ec,char const * what)6392     SystemError( std::error_code ec, char const * what ) : Error(), std::system_error( ec, what ) {}
SystemError(int ev,std::error_category const & ecat)6393     SystemError( int ev, std::error_category const & ecat ) : Error(), std::system_error( ev, ecat ) {}
SystemError(int ev,std::error_category const & ecat,std::string const & what)6394     SystemError( int ev, std::error_category const & ecat, std::string const & what ) : Error(), std::system_error( ev, ecat, what ) {}
SystemError(int ev,std::error_category const & ecat,char const * what)6395     SystemError( int ev, std::error_category const & ecat, char const * what ) : Error(), std::system_error( ev, ecat, what ) {}
6396 
what() const6397     virtual const char * what() const VULKAN_HPP_NOEXCEPT
6398     {
6399       return std::system_error::what();
6400     }
6401   };
6402 
errorCategory()6403   VULKAN_HPP_INLINE const std::error_category & errorCategory() VULKAN_HPP_NOEXCEPT
6404   {
6405     static ErrorCategoryImpl instance;
6406     return instance;
6407   }
6408 
make_error_code(Result e)6409   VULKAN_HPP_INLINE std::error_code make_error_code( Result e ) VULKAN_HPP_NOEXCEPT
6410   {
6411     return std::error_code( static_cast<int>( e ), errorCategory() );
6412   }
6413 
make_error_condition(Result e)6414   VULKAN_HPP_INLINE std::error_condition make_error_condition( Result e ) VULKAN_HPP_NOEXCEPT
6415   {
6416     return std::error_condition( static_cast<int>( e ), errorCategory() );
6417   }
6418 
6419   class OutOfHostMemoryError : public SystemError
6420   {
6421   public:
OutOfHostMemoryError(std::string const & message)6422     OutOfHostMemoryError( std::string const & message ) : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {}
OutOfHostMemoryError(char const * message)6423     OutOfHostMemoryError( char const * message ) : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {}
6424   };
6425 
6426   class OutOfDeviceMemoryError : public SystemError
6427   {
6428   public:
OutOfDeviceMemoryError(std::string const & message)6429     OutOfDeviceMemoryError( std::string const & message ) : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {}
OutOfDeviceMemoryError(char const * message)6430     OutOfDeviceMemoryError( char const * message ) : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {}
6431   };
6432 
6433   class InitializationFailedError : public SystemError
6434   {
6435   public:
InitializationFailedError(std::string const & message)6436     InitializationFailedError( std::string const & message ) : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {}
InitializationFailedError(char const * message)6437     InitializationFailedError( char const * message ) : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {}
6438   };
6439 
6440   class DeviceLostError : public SystemError
6441   {
6442   public:
DeviceLostError(std::string const & message)6443     DeviceLostError( std::string const & message ) : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {}
DeviceLostError(char const * message)6444     DeviceLostError( char const * message ) : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {}
6445   };
6446 
6447   class MemoryMapFailedError : public SystemError
6448   {
6449   public:
MemoryMapFailedError(std::string const & message)6450     MemoryMapFailedError( std::string const & message ) : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {}
MemoryMapFailedError(char const * message)6451     MemoryMapFailedError( char const * message ) : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {}
6452   };
6453 
6454   class LayerNotPresentError : public SystemError
6455   {
6456   public:
LayerNotPresentError(std::string const & message)6457     LayerNotPresentError( std::string const & message ) : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {}
LayerNotPresentError(char const * message)6458     LayerNotPresentError( char const * message ) : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {}
6459   };
6460 
6461   class ExtensionNotPresentError : public SystemError
6462   {
6463   public:
ExtensionNotPresentError(std::string const & message)6464     ExtensionNotPresentError( std::string const & message ) : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {}
ExtensionNotPresentError(char const * message)6465     ExtensionNotPresentError( char const * message ) : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {}
6466   };
6467 
6468   class FeatureNotPresentError : public SystemError
6469   {
6470   public:
FeatureNotPresentError(std::string const & message)6471     FeatureNotPresentError( std::string const & message ) : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {}
FeatureNotPresentError(char const * message)6472     FeatureNotPresentError( char const * message ) : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {}
6473   };
6474 
6475   class IncompatibleDriverError : public SystemError
6476   {
6477   public:
IncompatibleDriverError(std::string const & message)6478     IncompatibleDriverError( std::string const & message ) : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {}
IncompatibleDriverError(char const * message)6479     IncompatibleDriverError( char const * message ) : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {}
6480   };
6481 
6482   class TooManyObjectsError : public SystemError
6483   {
6484   public:
TooManyObjectsError(std::string const & message)6485     TooManyObjectsError( std::string const & message ) : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {}
TooManyObjectsError(char const * message)6486     TooManyObjectsError( char const * message ) : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {}
6487   };
6488 
6489   class FormatNotSupportedError : public SystemError
6490   {
6491   public:
FormatNotSupportedError(std::string const & message)6492     FormatNotSupportedError( std::string const & message ) : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {}
FormatNotSupportedError(char const * message)6493     FormatNotSupportedError( char const * message ) : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {}
6494   };
6495 
6496   class FragmentedPoolError : public SystemError
6497   {
6498   public:
FragmentedPoolError(std::string const & message)6499     FragmentedPoolError( std::string const & message ) : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {}
FragmentedPoolError(char const * message)6500     FragmentedPoolError( char const * message ) : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {}
6501   };
6502 
6503   class UnknownError : public SystemError
6504   {
6505   public:
UnknownError(std::string const & message)6506     UnknownError( std::string const & message ) : SystemError( make_error_code( Result::eErrorUnknown ), message ) {}
UnknownError(char const * message)6507     UnknownError( char const * message ) : SystemError( make_error_code( Result::eErrorUnknown ), message ) {}
6508   };
6509 
6510   class OutOfPoolMemoryError : public SystemError
6511   {
6512   public:
OutOfPoolMemoryError(std::string const & message)6513     OutOfPoolMemoryError( std::string const & message ) : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {}
OutOfPoolMemoryError(char const * message)6514     OutOfPoolMemoryError( char const * message ) : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {}
6515   };
6516 
6517   class InvalidExternalHandleError : public SystemError
6518   {
6519   public:
InvalidExternalHandleError(std::string const & message)6520     InvalidExternalHandleError( std::string const & message ) : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {}
InvalidExternalHandleError(char const * message)6521     InvalidExternalHandleError( char const * message ) : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {}
6522   };
6523 
6524   class FragmentationError : public SystemError
6525   {
6526   public:
FragmentationError(std::string const & message)6527     FragmentationError( std::string const & message ) : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {}
FragmentationError(char const * message)6528     FragmentationError( char const * message ) : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {}
6529   };
6530 
6531   class InvalidOpaqueCaptureAddressError : public SystemError
6532   {
6533   public:
InvalidOpaqueCaptureAddressError(std::string const & message)6534     InvalidOpaqueCaptureAddressError( std::string const & message ) : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {}
InvalidOpaqueCaptureAddressError(char const * message)6535     InvalidOpaqueCaptureAddressError( char const * message ) : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {}
6536   };
6537 
6538   class SurfaceLostKHRError : public SystemError
6539   {
6540   public:
SurfaceLostKHRError(std::string const & message)6541     SurfaceLostKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {}
SurfaceLostKHRError(char const * message)6542     SurfaceLostKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {}
6543   };
6544 
6545   class NativeWindowInUseKHRError : public SystemError
6546   {
6547   public:
NativeWindowInUseKHRError(std::string const & message)6548     NativeWindowInUseKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {}
NativeWindowInUseKHRError(char const * message)6549     NativeWindowInUseKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {}
6550   };
6551 
6552   class OutOfDateKHRError : public SystemError
6553   {
6554   public:
OutOfDateKHRError(std::string const & message)6555     OutOfDateKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {}
OutOfDateKHRError(char const * message)6556     OutOfDateKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {}
6557   };
6558 
6559   class IncompatibleDisplayKHRError : public SystemError
6560   {
6561   public:
IncompatibleDisplayKHRError(std::string const & message)6562     IncompatibleDisplayKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {}
IncompatibleDisplayKHRError(char const * message)6563     IncompatibleDisplayKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {}
6564   };
6565 
6566   class ValidationFailedEXTError : public SystemError
6567   {
6568   public:
ValidationFailedEXTError(std::string const & message)6569     ValidationFailedEXTError( std::string const & message ) : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {}
ValidationFailedEXTError(char const * message)6570     ValidationFailedEXTError( char const * message ) : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {}
6571   };
6572 
6573   class InvalidShaderNVError : public SystemError
6574   {
6575   public:
InvalidShaderNVError(std::string const & message)6576     InvalidShaderNVError( std::string const & message ) : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {}
InvalidShaderNVError(char const * message)6577     InvalidShaderNVError( char const * message ) : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {}
6578   };
6579 
6580   class ImageUsageNotSupportedKHRError : public SystemError
6581   {
6582   public:
ImageUsageNotSupportedKHRError(std::string const & message)6583     ImageUsageNotSupportedKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorImageUsageNotSupportedKHR ), message ) {}
ImageUsageNotSupportedKHRError(char const * message)6584     ImageUsageNotSupportedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorImageUsageNotSupportedKHR ), message ) {}
6585   };
6586 
6587   class VideoPictureLayoutNotSupportedKHRError : public SystemError
6588   {
6589   public:
VideoPictureLayoutNotSupportedKHRError(std::string const & message)6590     VideoPictureLayoutNotSupportedKHRError( std::string const & message )
6591       : SystemError( make_error_code( Result::eErrorVideoPictureLayoutNotSupportedKHR ), message )
6592     {
6593     }
VideoPictureLayoutNotSupportedKHRError(char const * message)6594     VideoPictureLayoutNotSupportedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorVideoPictureLayoutNotSupportedKHR ), message )
6595     {
6596     }
6597   };
6598 
6599   class VideoProfileOperationNotSupportedKHRError : public SystemError
6600   {
6601   public:
VideoProfileOperationNotSupportedKHRError(std::string const & message)6602     VideoProfileOperationNotSupportedKHRError( std::string const & message )
6603       : SystemError( make_error_code( Result::eErrorVideoProfileOperationNotSupportedKHR ), message )
6604     {
6605     }
VideoProfileOperationNotSupportedKHRError(char const * message)6606     VideoProfileOperationNotSupportedKHRError( char const * message )
6607       : SystemError( make_error_code( Result::eErrorVideoProfileOperationNotSupportedKHR ), message )
6608     {
6609     }
6610   };
6611 
6612   class VideoProfileFormatNotSupportedKHRError : public SystemError
6613   {
6614   public:
VideoProfileFormatNotSupportedKHRError(std::string const & message)6615     VideoProfileFormatNotSupportedKHRError( std::string const & message )
6616       : SystemError( make_error_code( Result::eErrorVideoProfileFormatNotSupportedKHR ), message )
6617     {
6618     }
VideoProfileFormatNotSupportedKHRError(char const * message)6619     VideoProfileFormatNotSupportedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorVideoProfileFormatNotSupportedKHR ), message )
6620     {
6621     }
6622   };
6623 
6624   class VideoProfileCodecNotSupportedKHRError : public SystemError
6625   {
6626   public:
VideoProfileCodecNotSupportedKHRError(std::string const & message)6627     VideoProfileCodecNotSupportedKHRError( std::string const & message )
6628       : SystemError( make_error_code( Result::eErrorVideoProfileCodecNotSupportedKHR ), message )
6629     {
6630     }
VideoProfileCodecNotSupportedKHRError(char const * message)6631     VideoProfileCodecNotSupportedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorVideoProfileCodecNotSupportedKHR ), message ) {}
6632   };
6633 
6634   class VideoStdVersionNotSupportedKHRError : public SystemError
6635   {
6636   public:
VideoStdVersionNotSupportedKHRError(std::string const & message)6637     VideoStdVersionNotSupportedKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorVideoStdVersionNotSupportedKHR ), message )
6638     {
6639     }
VideoStdVersionNotSupportedKHRError(char const * message)6640     VideoStdVersionNotSupportedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorVideoStdVersionNotSupportedKHR ), message ) {}
6641   };
6642 
6643   class InvalidDrmFormatModifierPlaneLayoutEXTError : public SystemError
6644   {
6645   public:
InvalidDrmFormatModifierPlaneLayoutEXTError(std::string const & message)6646     InvalidDrmFormatModifierPlaneLayoutEXTError( std::string const & message )
6647       : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message )
6648     {
6649     }
InvalidDrmFormatModifierPlaneLayoutEXTError(char const * message)6650     InvalidDrmFormatModifierPlaneLayoutEXTError( char const * message )
6651       : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message )
6652     {
6653     }
6654   };
6655 
6656   class NotPermittedKHRError : public SystemError
6657   {
6658   public:
NotPermittedKHRError(std::string const & message)6659     NotPermittedKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorNotPermittedKHR ), message ) {}
NotPermittedKHRError(char const * message)6660     NotPermittedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorNotPermittedKHR ), message ) {}
6661   };
6662 
6663 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
6664   class FullScreenExclusiveModeLostEXTError : public SystemError
6665   {
6666   public:
FullScreenExclusiveModeLostEXTError(std::string const & message)6667     FullScreenExclusiveModeLostEXTError( std::string const & message ) : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message )
6668     {
6669     }
FullScreenExclusiveModeLostEXTError(char const * message)6670     FullScreenExclusiveModeLostEXTError( char const * message ) : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {}
6671   };
6672 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
6673 
6674 #  if defined( VK_ENABLE_BETA_EXTENSIONS )
6675   class InvalidVideoStdParametersKHRError : public SystemError
6676   {
6677   public:
InvalidVideoStdParametersKHRError(std::string const & message)6678     InvalidVideoStdParametersKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorInvalidVideoStdParametersKHR ), message ) {}
InvalidVideoStdParametersKHRError(char const * message)6679     InvalidVideoStdParametersKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorInvalidVideoStdParametersKHR ), message ) {}
6680   };
6681 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
6682 
6683   class CompressionExhaustedEXTError : public SystemError
6684   {
6685   public:
CompressionExhaustedEXTError(std::string const & message)6686     CompressionExhaustedEXTError( std::string const & message ) : SystemError( make_error_code( Result::eErrorCompressionExhaustedEXT ), message ) {}
CompressionExhaustedEXTError(char const * message)6687     CompressionExhaustedEXTError( char const * message ) : SystemError( make_error_code( Result::eErrorCompressionExhaustedEXT ), message ) {}
6688   };
6689 
6690   class IncompatibleShaderBinaryEXTError : public SystemError
6691   {
6692   public:
IncompatibleShaderBinaryEXTError(std::string const & message)6693     IncompatibleShaderBinaryEXTError( std::string const & message ) : SystemError( make_error_code( Result::eErrorIncompatibleShaderBinaryEXT ), message ) {}
IncompatibleShaderBinaryEXTError(char const * message)6694     IncompatibleShaderBinaryEXTError( char const * message ) : SystemError( make_error_code( Result::eErrorIncompatibleShaderBinaryEXT ), message ) {}
6695   };
6696 
6697   namespace detail
6698   {
throwResultException(Result result,char const * message)6699     [[noreturn]] VULKAN_HPP_INLINE void throwResultException( Result result, char const * message )
6700     {
6701       switch ( result )
6702       {
6703         case Result::eErrorOutOfHostMemory: throw OutOfHostMemoryError( message );
6704         case Result::eErrorOutOfDeviceMemory: throw OutOfDeviceMemoryError( message );
6705         case Result::eErrorInitializationFailed: throw InitializationFailedError( message );
6706         case Result::eErrorDeviceLost: throw DeviceLostError( message );
6707         case Result::eErrorMemoryMapFailed: throw MemoryMapFailedError( message );
6708         case Result::eErrorLayerNotPresent: throw LayerNotPresentError( message );
6709         case Result::eErrorExtensionNotPresent: throw ExtensionNotPresentError( message );
6710         case Result::eErrorFeatureNotPresent: throw FeatureNotPresentError( message );
6711         case Result::eErrorIncompatibleDriver: throw IncompatibleDriverError( message );
6712         case Result::eErrorTooManyObjects: throw TooManyObjectsError( message );
6713         case Result::eErrorFormatNotSupported: throw FormatNotSupportedError( message );
6714         case Result::eErrorFragmentedPool: throw FragmentedPoolError( message );
6715         case Result::eErrorUnknown: throw UnknownError( message );
6716         case Result::eErrorOutOfPoolMemory: throw OutOfPoolMemoryError( message );
6717         case Result::eErrorInvalidExternalHandle: throw InvalidExternalHandleError( message );
6718         case Result::eErrorFragmentation: throw FragmentationError( message );
6719         case Result::eErrorInvalidOpaqueCaptureAddress: throw InvalidOpaqueCaptureAddressError( message );
6720         case Result::eErrorSurfaceLostKHR: throw SurfaceLostKHRError( message );
6721         case Result::eErrorNativeWindowInUseKHR: throw NativeWindowInUseKHRError( message );
6722         case Result::eErrorOutOfDateKHR: throw OutOfDateKHRError( message );
6723         case Result::eErrorIncompatibleDisplayKHR: throw IncompatibleDisplayKHRError( message );
6724         case Result::eErrorValidationFailedEXT: throw ValidationFailedEXTError( message );
6725         case Result::eErrorInvalidShaderNV: throw InvalidShaderNVError( message );
6726         case Result::eErrorImageUsageNotSupportedKHR: throw ImageUsageNotSupportedKHRError( message );
6727         case Result::eErrorVideoPictureLayoutNotSupportedKHR: throw VideoPictureLayoutNotSupportedKHRError( message );
6728         case Result::eErrorVideoProfileOperationNotSupportedKHR: throw VideoProfileOperationNotSupportedKHRError( message );
6729         case Result::eErrorVideoProfileFormatNotSupportedKHR: throw VideoProfileFormatNotSupportedKHRError( message );
6730         case Result::eErrorVideoProfileCodecNotSupportedKHR: throw VideoProfileCodecNotSupportedKHRError( message );
6731         case Result::eErrorVideoStdVersionNotSupportedKHR: throw VideoStdVersionNotSupportedKHRError( message );
6732         case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT: throw InvalidDrmFormatModifierPlaneLayoutEXTError( message );
6733         case Result::eErrorNotPermittedKHR: throw NotPermittedKHRError( message );
6734 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
6735         case Result::eErrorFullScreenExclusiveModeLostEXT: throw FullScreenExclusiveModeLostEXTError( message );
6736 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
6737 #  if defined( VK_ENABLE_BETA_EXTENSIONS )
6738         case Result::eErrorInvalidVideoStdParametersKHR: throw InvalidVideoStdParametersKHRError( message );
6739 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
6740         case Result::eErrorCompressionExhaustedEXT: throw CompressionExhaustedEXTError( message );
6741         case Result::eErrorIncompatibleShaderBinaryEXT: throw IncompatibleShaderBinaryEXTError( message );
6742         default: throw SystemError( make_error_code( result ), message );
6743       }
6744     }
6745   }  // namespace detail
6746 #endif
6747 
6748   template <typename T>
ignore(T const &)6749   void ignore( T const & ) VULKAN_HPP_NOEXCEPT
6750   {
6751   }
6752 
6753   template <typename T>
6754   struct ResultValue
6755   {
6756 #ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue6757     ResultValue( Result r, T & v ) VULKAN_HPP_NOEXCEPT( VULKAN_HPP_NOEXCEPT( T( v ) ) )
6758 #else
6759     ResultValue( Result r, T & v )
6760 #endif
6761       : result( r ), value( v )
6762     {
6763     }
6764 
6765 #ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue6766     ResultValue( Result r, T && v ) VULKAN_HPP_NOEXCEPT( VULKAN_HPP_NOEXCEPT( T( std::move( v ) ) ) )
6767 #else
6768     ResultValue( Result r, T && v )
6769 #endif
6770       : result( r ), value( std::move( v ) )
6771     {
6772     }
6773 
6774     Result result;
6775     T      value;
6776 
operator std::tuple<Result&,T&>VULKAN_HPP_NAMESPACE::ResultValue6777     operator std::tuple<Result &, T &>() VULKAN_HPP_NOEXCEPT
6778     {
6779       return std::tuple<Result &, T &>( result, value );
6780     }
6781   };
6782 
6783 #if !defined( VULKAN_HPP_NO_SMART_HANDLE )
6784   template <typename Type, typename Dispatch>
6785   struct ResultValue<UniqueHandle<Type, Dispatch>>
6786   {
6787 #  ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue6788     ResultValue( Result r, UniqueHandle<Type, Dispatch> && v ) VULKAN_HPP_NOEXCEPT
6789 #  else
6790     ResultValue( Result r, UniqueHandle<Type, Dispatch> && v )
6791 #  endif
6792       : result( r )
6793       , value( std::move( v ) )
6794     {
6795     }
6796 
6797     VULKAN_HPP_DEPRECATED(
6798       "asTuple() on an l-value is deprecated, as it implicitly moves the UniqueHandle out of the ResultValue. Use asTuple() on an r-value instead, requiring to explicitly move the UniqueHandle." )
asTupleVULKAN_HPP_NAMESPACE::ResultValue6799     std::tuple<Result, UniqueHandle<Type, Dispatch>> asTuple() &
6800     {
6801       return std::make_tuple( result, std::move( value ) );
6802     }
6803 
asTupleVULKAN_HPP_NAMESPACE::ResultValue6804     std::tuple<Result, UniqueHandle<Type, Dispatch>> asTuple() &&
6805     {
6806       return std::make_tuple( result, std::move( value ) );
6807     }
6808 
6809     Result                       result;
6810     UniqueHandle<Type, Dispatch> value;
6811   };
6812 
6813   template <typename Type, typename Dispatch>
6814   struct ResultValue<std::vector<UniqueHandle<Type, Dispatch>>>
6815   {
6816 #  ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue6817     ResultValue( Result r, std::vector<UniqueHandle<Type, Dispatch>> && v ) VULKAN_HPP_NOEXCEPT
6818 #  else
6819     ResultValue( Result r, std::vector<UniqueHandle<Type, Dispatch>> && v )
6820 #  endif
6821       : result( r )
6822       , value( std::move( v ) )
6823     {
6824     }
6825 
6826     VULKAN_HPP_DEPRECATED(
6827       "asTuple() on an l-value is deprecated, as it implicitly moves the UniqueHandle out of the ResultValue. Use asTuple() on an r-value instead, requiring to explicitly move the UniqueHandle." )
asTupleVULKAN_HPP_NAMESPACE::ResultValue6828     std::tuple<Result, std::vector<UniqueHandle<Type, Dispatch>>> asTuple() &
6829     {
6830       return std::make_tuple( result, std::move( value ) );
6831     }
6832 
asTupleVULKAN_HPP_NAMESPACE::ResultValue6833     std::tuple<Result, std::vector<UniqueHandle<Type, Dispatch>>> asTuple() &&
6834     {
6835       return std::make_tuple( result, std::move( value ) );
6836     }
6837 
6838     Result                                    result;
6839     std::vector<UniqueHandle<Type, Dispatch>> value;
6840   };
6841 #endif
6842 
6843   template <typename T>
6844   struct ResultValueType
6845   {
6846 #ifdef VULKAN_HPP_NO_EXCEPTIONS
6847     typedef ResultValue<T> type;
6848 #else
6849     typedef T    type;
6850 #endif
6851   };
6852 
6853   template <>
6854   struct ResultValueType<void>
6855   {
6856 #ifdef VULKAN_HPP_NO_EXCEPTIONS
6857     typedef Result type;
6858 #else
6859     typedef void type;
6860 #endif
6861   };
6862 
createResultValueType(Result result)6863   VULKAN_HPP_INLINE typename ResultValueType<void>::type createResultValueType( Result result )
6864   {
6865 #ifdef VULKAN_HPP_NO_EXCEPTIONS
6866     return result;
6867 #else
6868     ignore( result );
6869 #endif
6870   }
6871 
6872   template <typename T>
createResultValueType(Result result,T & data)6873   VULKAN_HPP_INLINE typename ResultValueType<T>::type createResultValueType( Result result, T & data )
6874   {
6875 #ifdef VULKAN_HPP_NO_EXCEPTIONS
6876     return ResultValue<T>( result, data );
6877 #else
6878     ignore( result );
6879     return data;
6880 #endif
6881   }
6882 
6883   template <typename T>
createResultValueType(Result result,T && data)6884   VULKAN_HPP_INLINE typename ResultValueType<T>::type createResultValueType( Result result, T && data )
6885   {
6886 #ifdef VULKAN_HPP_NO_EXCEPTIONS
6887     return ResultValue<T>( result, std::move( data ) );
6888 #else
6889     ignore( result );
6890     return std::move( data );
6891 #endif
6892   }
6893 
resultCheck(Result result,char const * message)6894   VULKAN_HPP_INLINE void resultCheck( Result result, char const * message )
6895   {
6896 #ifdef VULKAN_HPP_NO_EXCEPTIONS
6897     ignore( result );  // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty
6898     ignore( message );
6899     VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess );
6900 #else
6901     if ( result != Result::eSuccess )
6902     {
6903       detail::throwResultException( result, message );
6904     }
6905 #endif
6906   }
6907 
resultCheck(Result result,char const * message,std::initializer_list<Result> successCodes)6908   VULKAN_HPP_INLINE void resultCheck( Result result, char const * message, std::initializer_list<Result> successCodes )
6909   {
6910 #ifdef VULKAN_HPP_NO_EXCEPTIONS
6911     ignore( result );  // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty
6912     ignore( message );
6913     ignore( successCodes );  // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty
6914     VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
6915 #else
6916     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
6917     {
6918       detail::throwResultException( result, message );
6919     }
6920 #endif
6921   }
6922 
6923   //=========================================
6924   //=== CONSTEXPR CONSTANTs AND FUNCTIONs ===
6925   //=========================================
6926   VULKAN_HPP_CONSTEXPR_INLINE uint32_t AttachmentUnused                 = VK_ATTACHMENT_UNUSED;
6927   VULKAN_HPP_CONSTEXPR_INLINE uint32_t False                            = VK_FALSE;
6928   VULKAN_HPP_CONSTEXPR_INLINE float    LodClampNone                     = VK_LOD_CLAMP_NONE;
6929   VULKAN_HPP_CONSTEXPR_INLINE uint32_t LuidSize                         = VK_LUID_SIZE;
6930   VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDescriptionSize               = VK_MAX_DESCRIPTION_SIZE;
6931   VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDeviceGroupSize               = VK_MAX_DEVICE_GROUP_SIZE;
6932   VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDriverInfoSize                = VK_MAX_DRIVER_INFO_SIZE;
6933   VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDriverNameSize                = VK_MAX_DRIVER_NAME_SIZE;
6934   VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxExtensionNameSize             = VK_MAX_EXTENSION_NAME_SIZE;
6935   VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxGlobalPrioritySizeKhr         = VK_MAX_GLOBAL_PRIORITY_SIZE_KHR;
6936   VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxMemoryHeaps                   = VK_MAX_MEMORY_HEAPS;
6937   VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxMemoryTypes                   = VK_MAX_MEMORY_TYPES;
6938   VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxPhysicalDeviceNameSize        = VK_MAX_PHYSICAL_DEVICE_NAME_SIZE;
6939   VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxShaderModuleIdentifierSizeExt = VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT;
6940   VULKAN_HPP_CONSTEXPR_INLINE uint32_t QueueFamilyExternal              = VK_QUEUE_FAMILY_EXTERNAL;
6941   VULKAN_HPP_CONSTEXPR_INLINE uint32_t QueueFamilyForeignExt            = VK_QUEUE_FAMILY_FOREIGN_EXT;
6942   VULKAN_HPP_CONSTEXPR_INLINE uint32_t QueueFamilyIgnored               = VK_QUEUE_FAMILY_IGNORED;
6943   VULKAN_HPP_CONSTEXPR_INLINE uint32_t Remaining3DSlicesExt             = VK_REMAINING_3D_SLICES_EXT;
6944   VULKAN_HPP_CONSTEXPR_INLINE uint32_t RemainingArrayLayers             = VK_REMAINING_ARRAY_LAYERS;
6945   VULKAN_HPP_CONSTEXPR_INLINE uint32_t RemainingMipLevels               = VK_REMAINING_MIP_LEVELS;
6946   VULKAN_HPP_CONSTEXPR_INLINE uint32_t ShaderUnusedKhr                  = VK_SHADER_UNUSED_KHR;
6947   VULKAN_HPP_CONSTEXPR_INLINE uint32_t SubpassExternal                  = VK_SUBPASS_EXTERNAL;
6948   VULKAN_HPP_CONSTEXPR_INLINE uint32_t True                             = VK_TRUE;
6949   VULKAN_HPP_CONSTEXPR_INLINE uint32_t UuidSize                         = VK_UUID_SIZE;
6950   VULKAN_HPP_CONSTEXPR_INLINE uint64_t WholeSize                        = VK_WHOLE_SIZE;
6951   VULKAN_HPP_CONSTEXPR_INLINE uint32_t HeaderVersion                    = VK_HEADER_VERSION;
6952   template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
apiVersionMajor(T const version)6953   VULKAN_HPP_CONSTEXPR uint32_t apiVersionMajor( T const version )
6954   {
6955     return ( ( ( uint32_t )( version ) >> 22U ) & 0x7FU );
6956   }
6957   template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
apiVersionMinor(T const version)6958   VULKAN_HPP_CONSTEXPR uint32_t apiVersionMinor( T const version )
6959   {
6960     return ( ( ( uint32_t )( version ) >> 12U ) & 0x3FFU );
6961   }
6962   template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
apiVersionPatch(T const version)6963   VULKAN_HPP_CONSTEXPR uint32_t apiVersionPatch( T const version )
6964   {
6965     return ( ( uint32_t )(version)&0xFFFU );
6966   }
6967   template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
apiVersionVariant(T const version)6968   VULKAN_HPP_CONSTEXPR uint32_t apiVersionVariant( T const version )
6969   {
6970     return ( ( uint32_t )( version ) >> 29U );
6971   }
6972   template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
makeApiVersion(T const variant,T const major,T const minor,T const patch)6973   VULKAN_HPP_CONSTEXPR uint32_t makeApiVersion( T const variant, T const major, T const minor, T const patch )
6974   {
6975     return ( ( ( ( uint32_t )( variant ) ) << 29U ) | ( ( ( uint32_t )( major ) ) << 22U ) | ( ( ( uint32_t )( minor ) ) << 12U ) | ( ( uint32_t )( patch ) ) );
6976   }
6977   template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
6978   VULKAN_HPP_DEPRECATED( "This define is deprecated. VK_MAKE_API_VERSION should be used instead." )
makeVersion(T const major,T const minor,T const patch)6979   VULKAN_HPP_CONSTEXPR uint32_t makeVersion( T const major, T const minor, T const patch )
6980   {
6981     return ( ( ( ( uint32_t )( major ) ) << 22U ) | ( ( ( uint32_t )( minor ) ) << 12U ) | ( ( uint32_t )( patch ) ) );
6982   }
6983   template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
6984   VULKAN_HPP_DEPRECATED( "This define is deprecated. VK_API_VERSION_MAJOR should be used instead." )
versionMajor(T const version)6985   VULKAN_HPP_CONSTEXPR uint32_t versionMajor( T const version )
6986   {
6987     return ( ( uint32_t )( version ) >> 22U );
6988   }
6989   template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
6990   VULKAN_HPP_DEPRECATED( "This define is deprecated. VK_API_VERSION_MINOR should be used instead." )
versionMinor(T const version)6991   VULKAN_HPP_CONSTEXPR uint32_t versionMinor( T const version )
6992   {
6993     return ( ( ( uint32_t )( version ) >> 12U ) & 0x3FFU );
6994   }
6995   template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
6996   VULKAN_HPP_DEPRECATED( "This define is deprecated. VK_API_VERSION_PATCH should be used instead." )
versionPatch(T const version)6997   VULKAN_HPP_CONSTEXPR uint32_t versionPatch( T const version )
6998   {
6999     return ( ( uint32_t )(version)&0xFFFU );
7000   }
7001   VULKAN_HPP_CONSTEXPR_INLINE auto ApiVersion            = makeApiVersion( 0, 1, 0, 0 );
7002   VULKAN_HPP_CONSTEXPR_INLINE auto ApiVersion10          = makeApiVersion( 0, 1, 0, 0 );
7003   VULKAN_HPP_CONSTEXPR_INLINE auto ApiVersion11          = makeApiVersion( 0, 1, 1, 0 );
7004   VULKAN_HPP_CONSTEXPR_INLINE auto ApiVersion12          = makeApiVersion( 0, 1, 2, 0 );
7005   VULKAN_HPP_CONSTEXPR_INLINE auto ApiVersion13          = makeApiVersion( 0, 1, 3, 0 );
7006   VULKAN_HPP_CONSTEXPR_INLINE auto HeaderVersionComplete = makeApiVersion( 0, 1, 3, VK_HEADER_VERSION );
7007 
7008 }  // namespace VULKAN_HPP_NAMESPACE
7009 
7010 // clang-format off
7011 #include <vulkan/vulkan_handles.hpp>
7012 #include <vulkan/vulkan_structs.hpp>
7013 #include <vulkan/vulkan_funcs.hpp>
7014 // clang-format on
7015 
7016 namespace VULKAN_HPP_NAMESPACE
7017 {
7018 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
7019 
7020   //=======================
7021   //=== STRUCTS EXTENDS ===
7022   //=======================
7023 
7024   //=== VK_VERSION_1_0 ===
7025   template <>
7026   struct StructExtends<ShaderModuleCreateInfo, PipelineShaderStageCreateInfo>
7027   {
7028     enum
7029     {
7030       value = true
7031     };
7032   };
7033 
7034   //=== VK_VERSION_1_1 ===
7035   template <>
7036   struct StructExtends<PhysicalDeviceSubgroupProperties, PhysicalDeviceProperties2>
7037   {
7038     enum
7039     {
7040       value = true
7041     };
7042   };
7043   template <>
7044   struct StructExtends<PhysicalDevice16BitStorageFeatures, PhysicalDeviceFeatures2>
7045   {
7046     enum
7047     {
7048       value = true
7049     };
7050   };
7051   template <>
7052   struct StructExtends<PhysicalDevice16BitStorageFeatures, DeviceCreateInfo>
7053   {
7054     enum
7055     {
7056       value = true
7057     };
7058   };
7059   template <>
7060   struct StructExtends<MemoryDedicatedRequirements, MemoryRequirements2>
7061   {
7062     enum
7063     {
7064       value = true
7065     };
7066   };
7067   template <>
7068   struct StructExtends<MemoryDedicatedAllocateInfo, MemoryAllocateInfo>
7069   {
7070     enum
7071     {
7072       value = true
7073     };
7074   };
7075   template <>
7076   struct StructExtends<MemoryAllocateFlagsInfo, MemoryAllocateInfo>
7077   {
7078     enum
7079     {
7080       value = true
7081     };
7082   };
7083   template <>
7084   struct StructExtends<DeviceGroupRenderPassBeginInfo, RenderPassBeginInfo>
7085   {
7086     enum
7087     {
7088       value = true
7089     };
7090   };
7091   template <>
7092   struct StructExtends<DeviceGroupRenderPassBeginInfo, RenderingInfo>
7093   {
7094     enum
7095     {
7096       value = true
7097     };
7098   };
7099   template <>
7100   struct StructExtends<DeviceGroupCommandBufferBeginInfo, CommandBufferBeginInfo>
7101   {
7102     enum
7103     {
7104       value = true
7105     };
7106   };
7107   template <>
7108   struct StructExtends<DeviceGroupSubmitInfo, SubmitInfo>
7109   {
7110     enum
7111     {
7112       value = true
7113     };
7114   };
7115   template <>
7116   struct StructExtends<DeviceGroupBindSparseInfo, BindSparseInfo>
7117   {
7118     enum
7119     {
7120       value = true
7121     };
7122   };
7123   template <>
7124   struct StructExtends<BindBufferMemoryDeviceGroupInfo, BindBufferMemoryInfo>
7125   {
7126     enum
7127     {
7128       value = true
7129     };
7130   };
7131   template <>
7132   struct StructExtends<BindImageMemoryDeviceGroupInfo, BindImageMemoryInfo>
7133   {
7134     enum
7135     {
7136       value = true
7137     };
7138   };
7139   template <>
7140   struct StructExtends<DeviceGroupDeviceCreateInfo, DeviceCreateInfo>
7141   {
7142     enum
7143     {
7144       value = true
7145     };
7146   };
7147   template <>
7148   struct StructExtends<PhysicalDeviceFeatures2, DeviceCreateInfo>
7149   {
7150     enum
7151     {
7152       value = true
7153     };
7154   };
7155   template <>
7156   struct StructExtends<PhysicalDevicePointClippingProperties, PhysicalDeviceProperties2>
7157   {
7158     enum
7159     {
7160       value = true
7161     };
7162   };
7163   template <>
7164   struct StructExtends<RenderPassInputAttachmentAspectCreateInfo, RenderPassCreateInfo>
7165   {
7166     enum
7167     {
7168       value = true
7169     };
7170   };
7171   template <>
7172   struct StructExtends<ImageViewUsageCreateInfo, ImageViewCreateInfo>
7173   {
7174     enum
7175     {
7176       value = true
7177     };
7178   };
7179   template <>
7180   struct StructExtends<PipelineTessellationDomainOriginStateCreateInfo, PipelineTessellationStateCreateInfo>
7181   {
7182     enum
7183     {
7184       value = true
7185     };
7186   };
7187   template <>
7188   struct StructExtends<RenderPassMultiviewCreateInfo, RenderPassCreateInfo>
7189   {
7190     enum
7191     {
7192       value = true
7193     };
7194   };
7195   template <>
7196   struct StructExtends<PhysicalDeviceMultiviewFeatures, PhysicalDeviceFeatures2>
7197   {
7198     enum
7199     {
7200       value = true
7201     };
7202   };
7203   template <>
7204   struct StructExtends<PhysicalDeviceMultiviewFeatures, DeviceCreateInfo>
7205   {
7206     enum
7207     {
7208       value = true
7209     };
7210   };
7211   template <>
7212   struct StructExtends<PhysicalDeviceMultiviewProperties, PhysicalDeviceProperties2>
7213   {
7214     enum
7215     {
7216       value = true
7217     };
7218   };
7219   template <>
7220   struct StructExtends<PhysicalDeviceVariablePointersFeatures, PhysicalDeviceFeatures2>
7221   {
7222     enum
7223     {
7224       value = true
7225     };
7226   };
7227   template <>
7228   struct StructExtends<PhysicalDeviceVariablePointersFeatures, DeviceCreateInfo>
7229   {
7230     enum
7231     {
7232       value = true
7233     };
7234   };
7235   template <>
7236   struct StructExtends<PhysicalDeviceProtectedMemoryFeatures, PhysicalDeviceFeatures2>
7237   {
7238     enum
7239     {
7240       value = true
7241     };
7242   };
7243   template <>
7244   struct StructExtends<PhysicalDeviceProtectedMemoryFeatures, DeviceCreateInfo>
7245   {
7246     enum
7247     {
7248       value = true
7249     };
7250   };
7251   template <>
7252   struct StructExtends<PhysicalDeviceProtectedMemoryProperties, PhysicalDeviceProperties2>
7253   {
7254     enum
7255     {
7256       value = true
7257     };
7258   };
7259   template <>
7260   struct StructExtends<ProtectedSubmitInfo, SubmitInfo>
7261   {
7262     enum
7263     {
7264       value = true
7265     };
7266   };
7267   template <>
7268   struct StructExtends<SamplerYcbcrConversionInfo, SamplerCreateInfo>
7269   {
7270     enum
7271     {
7272       value = true
7273     };
7274   };
7275   template <>
7276   struct StructExtends<SamplerYcbcrConversionInfo, ImageViewCreateInfo>
7277   {
7278     enum
7279     {
7280       value = true
7281     };
7282   };
7283   template <>
7284   struct StructExtends<BindImagePlaneMemoryInfo, BindImageMemoryInfo>
7285   {
7286     enum
7287     {
7288       value = true
7289     };
7290   };
7291   template <>
7292   struct StructExtends<ImagePlaneMemoryRequirementsInfo, ImageMemoryRequirementsInfo2>
7293   {
7294     enum
7295     {
7296       value = true
7297     };
7298   };
7299   template <>
7300   struct StructExtends<PhysicalDeviceSamplerYcbcrConversionFeatures, PhysicalDeviceFeatures2>
7301   {
7302     enum
7303     {
7304       value = true
7305     };
7306   };
7307   template <>
7308   struct StructExtends<PhysicalDeviceSamplerYcbcrConversionFeatures, DeviceCreateInfo>
7309   {
7310     enum
7311     {
7312       value = true
7313     };
7314   };
7315   template <>
7316   struct StructExtends<SamplerYcbcrConversionImageFormatProperties, ImageFormatProperties2>
7317   {
7318     enum
7319     {
7320       value = true
7321     };
7322   };
7323   template <>
7324   struct StructExtends<PhysicalDeviceExternalImageFormatInfo, PhysicalDeviceImageFormatInfo2>
7325   {
7326     enum
7327     {
7328       value = true
7329     };
7330   };
7331   template <>
7332   struct StructExtends<ExternalImageFormatProperties, ImageFormatProperties2>
7333   {
7334     enum
7335     {
7336       value = true
7337     };
7338   };
7339   template <>
7340   struct StructExtends<PhysicalDeviceIDProperties, PhysicalDeviceProperties2>
7341   {
7342     enum
7343     {
7344       value = true
7345     };
7346   };
7347   template <>
7348   struct StructExtends<ExternalMemoryImageCreateInfo, ImageCreateInfo>
7349   {
7350     enum
7351     {
7352       value = true
7353     };
7354   };
7355   template <>
7356   struct StructExtends<ExternalMemoryBufferCreateInfo, BufferCreateInfo>
7357   {
7358     enum
7359     {
7360       value = true
7361     };
7362   };
7363   template <>
7364   struct StructExtends<ExportMemoryAllocateInfo, MemoryAllocateInfo>
7365   {
7366     enum
7367     {
7368       value = true
7369     };
7370   };
7371   template <>
7372   struct StructExtends<ExportFenceCreateInfo, FenceCreateInfo>
7373   {
7374     enum
7375     {
7376       value = true
7377     };
7378   };
7379   template <>
7380   struct StructExtends<ExportSemaphoreCreateInfo, SemaphoreCreateInfo>
7381   {
7382     enum
7383     {
7384       value = true
7385     };
7386   };
7387   template <>
7388   struct StructExtends<PhysicalDeviceMaintenance3Properties, PhysicalDeviceProperties2>
7389   {
7390     enum
7391     {
7392       value = true
7393     };
7394   };
7395   template <>
7396   struct StructExtends<PhysicalDeviceShaderDrawParametersFeatures, PhysicalDeviceFeatures2>
7397   {
7398     enum
7399     {
7400       value = true
7401     };
7402   };
7403   template <>
7404   struct StructExtends<PhysicalDeviceShaderDrawParametersFeatures, DeviceCreateInfo>
7405   {
7406     enum
7407     {
7408       value = true
7409     };
7410   };
7411 
7412   //=== VK_VERSION_1_2 ===
7413   template <>
7414   struct StructExtends<PhysicalDeviceVulkan11Features, PhysicalDeviceFeatures2>
7415   {
7416     enum
7417     {
7418       value = true
7419     };
7420   };
7421   template <>
7422   struct StructExtends<PhysicalDeviceVulkan11Features, DeviceCreateInfo>
7423   {
7424     enum
7425     {
7426       value = true
7427     };
7428   };
7429   template <>
7430   struct StructExtends<PhysicalDeviceVulkan11Properties, PhysicalDeviceProperties2>
7431   {
7432     enum
7433     {
7434       value = true
7435     };
7436   };
7437   template <>
7438   struct StructExtends<PhysicalDeviceVulkan12Features, PhysicalDeviceFeatures2>
7439   {
7440     enum
7441     {
7442       value = true
7443     };
7444   };
7445   template <>
7446   struct StructExtends<PhysicalDeviceVulkan12Features, DeviceCreateInfo>
7447   {
7448     enum
7449     {
7450       value = true
7451     };
7452   };
7453   template <>
7454   struct StructExtends<PhysicalDeviceVulkan12Properties, PhysicalDeviceProperties2>
7455   {
7456     enum
7457     {
7458       value = true
7459     };
7460   };
7461   template <>
7462   struct StructExtends<ImageFormatListCreateInfo, ImageCreateInfo>
7463   {
7464     enum
7465     {
7466       value = true
7467     };
7468   };
7469   template <>
7470   struct StructExtends<ImageFormatListCreateInfo, SwapchainCreateInfoKHR>
7471   {
7472     enum
7473     {
7474       value = true
7475     };
7476   };
7477   template <>
7478   struct StructExtends<ImageFormatListCreateInfo, PhysicalDeviceImageFormatInfo2>
7479   {
7480     enum
7481     {
7482       value = true
7483     };
7484   };
7485   template <>
7486   struct StructExtends<PhysicalDevice8BitStorageFeatures, PhysicalDeviceFeatures2>
7487   {
7488     enum
7489     {
7490       value = true
7491     };
7492   };
7493   template <>
7494   struct StructExtends<PhysicalDevice8BitStorageFeatures, DeviceCreateInfo>
7495   {
7496     enum
7497     {
7498       value = true
7499     };
7500   };
7501   template <>
7502   struct StructExtends<PhysicalDeviceDriverProperties, PhysicalDeviceProperties2>
7503   {
7504     enum
7505     {
7506       value = true
7507     };
7508   };
7509   template <>
7510   struct StructExtends<PhysicalDeviceShaderAtomicInt64Features, PhysicalDeviceFeatures2>
7511   {
7512     enum
7513     {
7514       value = true
7515     };
7516   };
7517   template <>
7518   struct StructExtends<PhysicalDeviceShaderAtomicInt64Features, DeviceCreateInfo>
7519   {
7520     enum
7521     {
7522       value = true
7523     };
7524   };
7525   template <>
7526   struct StructExtends<PhysicalDeviceShaderFloat16Int8Features, PhysicalDeviceFeatures2>
7527   {
7528     enum
7529     {
7530       value = true
7531     };
7532   };
7533   template <>
7534   struct StructExtends<PhysicalDeviceShaderFloat16Int8Features, DeviceCreateInfo>
7535   {
7536     enum
7537     {
7538       value = true
7539     };
7540   };
7541   template <>
7542   struct StructExtends<PhysicalDeviceFloatControlsProperties, PhysicalDeviceProperties2>
7543   {
7544     enum
7545     {
7546       value = true
7547     };
7548   };
7549   template <>
7550   struct StructExtends<DescriptorSetLayoutBindingFlagsCreateInfo, DescriptorSetLayoutCreateInfo>
7551   {
7552     enum
7553     {
7554       value = true
7555     };
7556   };
7557   template <>
7558   struct StructExtends<PhysicalDeviceDescriptorIndexingFeatures, PhysicalDeviceFeatures2>
7559   {
7560     enum
7561     {
7562       value = true
7563     };
7564   };
7565   template <>
7566   struct StructExtends<PhysicalDeviceDescriptorIndexingFeatures, DeviceCreateInfo>
7567   {
7568     enum
7569     {
7570       value = true
7571     };
7572   };
7573   template <>
7574   struct StructExtends<PhysicalDeviceDescriptorIndexingProperties, PhysicalDeviceProperties2>
7575   {
7576     enum
7577     {
7578       value = true
7579     };
7580   };
7581   template <>
7582   struct StructExtends<DescriptorSetVariableDescriptorCountAllocateInfo, DescriptorSetAllocateInfo>
7583   {
7584     enum
7585     {
7586       value = true
7587     };
7588   };
7589   template <>
7590   struct StructExtends<DescriptorSetVariableDescriptorCountLayoutSupport, DescriptorSetLayoutSupport>
7591   {
7592     enum
7593     {
7594       value = true
7595     };
7596   };
7597   template <>
7598   struct StructExtends<SubpassDescriptionDepthStencilResolve, SubpassDescription2>
7599   {
7600     enum
7601     {
7602       value = true
7603     };
7604   };
7605   template <>
7606   struct StructExtends<PhysicalDeviceDepthStencilResolveProperties, PhysicalDeviceProperties2>
7607   {
7608     enum
7609     {
7610       value = true
7611     };
7612   };
7613   template <>
7614   struct StructExtends<PhysicalDeviceScalarBlockLayoutFeatures, PhysicalDeviceFeatures2>
7615   {
7616     enum
7617     {
7618       value = true
7619     };
7620   };
7621   template <>
7622   struct StructExtends<PhysicalDeviceScalarBlockLayoutFeatures, DeviceCreateInfo>
7623   {
7624     enum
7625     {
7626       value = true
7627     };
7628   };
7629   template <>
7630   struct StructExtends<ImageStencilUsageCreateInfo, ImageCreateInfo>
7631   {
7632     enum
7633     {
7634       value = true
7635     };
7636   };
7637   template <>
7638   struct StructExtends<ImageStencilUsageCreateInfo, PhysicalDeviceImageFormatInfo2>
7639   {
7640     enum
7641     {
7642       value = true
7643     };
7644   };
7645   template <>
7646   struct StructExtends<SamplerReductionModeCreateInfo, SamplerCreateInfo>
7647   {
7648     enum
7649     {
7650       value = true
7651     };
7652   };
7653   template <>
7654   struct StructExtends<PhysicalDeviceSamplerFilterMinmaxProperties, PhysicalDeviceProperties2>
7655   {
7656     enum
7657     {
7658       value = true
7659     };
7660   };
7661   template <>
7662   struct StructExtends<PhysicalDeviceVulkanMemoryModelFeatures, PhysicalDeviceFeatures2>
7663   {
7664     enum
7665     {
7666       value = true
7667     };
7668   };
7669   template <>
7670   struct StructExtends<PhysicalDeviceVulkanMemoryModelFeatures, DeviceCreateInfo>
7671   {
7672     enum
7673     {
7674       value = true
7675     };
7676   };
7677   template <>
7678   struct StructExtends<PhysicalDeviceImagelessFramebufferFeatures, PhysicalDeviceFeatures2>
7679   {
7680     enum
7681     {
7682       value = true
7683     };
7684   };
7685   template <>
7686   struct StructExtends<PhysicalDeviceImagelessFramebufferFeatures, DeviceCreateInfo>
7687   {
7688     enum
7689     {
7690       value = true
7691     };
7692   };
7693   template <>
7694   struct StructExtends<FramebufferAttachmentsCreateInfo, FramebufferCreateInfo>
7695   {
7696     enum
7697     {
7698       value = true
7699     };
7700   };
7701   template <>
7702   struct StructExtends<RenderPassAttachmentBeginInfo, RenderPassBeginInfo>
7703   {
7704     enum
7705     {
7706       value = true
7707     };
7708   };
7709   template <>
7710   struct StructExtends<PhysicalDeviceUniformBufferStandardLayoutFeatures, PhysicalDeviceFeatures2>
7711   {
7712     enum
7713     {
7714       value = true
7715     };
7716   };
7717   template <>
7718   struct StructExtends<PhysicalDeviceUniformBufferStandardLayoutFeatures, DeviceCreateInfo>
7719   {
7720     enum
7721     {
7722       value = true
7723     };
7724   };
7725   template <>
7726   struct StructExtends<PhysicalDeviceShaderSubgroupExtendedTypesFeatures, PhysicalDeviceFeatures2>
7727   {
7728     enum
7729     {
7730       value = true
7731     };
7732   };
7733   template <>
7734   struct StructExtends<PhysicalDeviceShaderSubgroupExtendedTypesFeatures, DeviceCreateInfo>
7735   {
7736     enum
7737     {
7738       value = true
7739     };
7740   };
7741   template <>
7742   struct StructExtends<PhysicalDeviceSeparateDepthStencilLayoutsFeatures, PhysicalDeviceFeatures2>
7743   {
7744     enum
7745     {
7746       value = true
7747     };
7748   };
7749   template <>
7750   struct StructExtends<PhysicalDeviceSeparateDepthStencilLayoutsFeatures, DeviceCreateInfo>
7751   {
7752     enum
7753     {
7754       value = true
7755     };
7756   };
7757   template <>
7758   struct StructExtends<AttachmentReferenceStencilLayout, AttachmentReference2>
7759   {
7760     enum
7761     {
7762       value = true
7763     };
7764   };
7765   template <>
7766   struct StructExtends<AttachmentDescriptionStencilLayout, AttachmentDescription2>
7767   {
7768     enum
7769     {
7770       value = true
7771     };
7772   };
7773   template <>
7774   struct StructExtends<PhysicalDeviceHostQueryResetFeatures, PhysicalDeviceFeatures2>
7775   {
7776     enum
7777     {
7778       value = true
7779     };
7780   };
7781   template <>
7782   struct StructExtends<PhysicalDeviceHostQueryResetFeatures, DeviceCreateInfo>
7783   {
7784     enum
7785     {
7786       value = true
7787     };
7788   };
7789   template <>
7790   struct StructExtends<PhysicalDeviceTimelineSemaphoreFeatures, PhysicalDeviceFeatures2>
7791   {
7792     enum
7793     {
7794       value = true
7795     };
7796   };
7797   template <>
7798   struct StructExtends<PhysicalDeviceTimelineSemaphoreFeatures, DeviceCreateInfo>
7799   {
7800     enum
7801     {
7802       value = true
7803     };
7804   };
7805   template <>
7806   struct StructExtends<PhysicalDeviceTimelineSemaphoreProperties, PhysicalDeviceProperties2>
7807   {
7808     enum
7809     {
7810       value = true
7811     };
7812   };
7813   template <>
7814   struct StructExtends<SemaphoreTypeCreateInfo, SemaphoreCreateInfo>
7815   {
7816     enum
7817     {
7818       value = true
7819     };
7820   };
7821   template <>
7822   struct StructExtends<SemaphoreTypeCreateInfo, PhysicalDeviceExternalSemaphoreInfo>
7823   {
7824     enum
7825     {
7826       value = true
7827     };
7828   };
7829   template <>
7830   struct StructExtends<TimelineSemaphoreSubmitInfo, SubmitInfo>
7831   {
7832     enum
7833     {
7834       value = true
7835     };
7836   };
7837   template <>
7838   struct StructExtends<TimelineSemaphoreSubmitInfo, BindSparseInfo>
7839   {
7840     enum
7841     {
7842       value = true
7843     };
7844   };
7845   template <>
7846   struct StructExtends<PhysicalDeviceBufferDeviceAddressFeatures, PhysicalDeviceFeatures2>
7847   {
7848     enum
7849     {
7850       value = true
7851     };
7852   };
7853   template <>
7854   struct StructExtends<PhysicalDeviceBufferDeviceAddressFeatures, DeviceCreateInfo>
7855   {
7856     enum
7857     {
7858       value = true
7859     };
7860   };
7861   template <>
7862   struct StructExtends<BufferOpaqueCaptureAddressCreateInfo, BufferCreateInfo>
7863   {
7864     enum
7865     {
7866       value = true
7867     };
7868   };
7869   template <>
7870   struct StructExtends<MemoryOpaqueCaptureAddressAllocateInfo, MemoryAllocateInfo>
7871   {
7872     enum
7873     {
7874       value = true
7875     };
7876   };
7877 
7878   //=== VK_VERSION_1_3 ===
7879   template <>
7880   struct StructExtends<PhysicalDeviceVulkan13Features, PhysicalDeviceFeatures2>
7881   {
7882     enum
7883     {
7884       value = true
7885     };
7886   };
7887   template <>
7888   struct StructExtends<PhysicalDeviceVulkan13Features, DeviceCreateInfo>
7889   {
7890     enum
7891     {
7892       value = true
7893     };
7894   };
7895   template <>
7896   struct StructExtends<PhysicalDeviceVulkan13Properties, PhysicalDeviceProperties2>
7897   {
7898     enum
7899     {
7900       value = true
7901     };
7902   };
7903   template <>
7904   struct StructExtends<PipelineCreationFeedbackCreateInfo, GraphicsPipelineCreateInfo>
7905   {
7906     enum
7907     {
7908       value = true
7909     };
7910   };
7911   template <>
7912   struct StructExtends<PipelineCreationFeedbackCreateInfo, ComputePipelineCreateInfo>
7913   {
7914     enum
7915     {
7916       value = true
7917     };
7918   };
7919   template <>
7920   struct StructExtends<PipelineCreationFeedbackCreateInfo, RayTracingPipelineCreateInfoNV>
7921   {
7922     enum
7923     {
7924       value = true
7925     };
7926   };
7927   template <>
7928   struct StructExtends<PipelineCreationFeedbackCreateInfo, RayTracingPipelineCreateInfoKHR>
7929   {
7930     enum
7931     {
7932       value = true
7933     };
7934   };
7935   template <>
7936   struct StructExtends<PhysicalDeviceShaderTerminateInvocationFeatures, PhysicalDeviceFeatures2>
7937   {
7938     enum
7939     {
7940       value = true
7941     };
7942   };
7943   template <>
7944   struct StructExtends<PhysicalDeviceShaderTerminateInvocationFeatures, DeviceCreateInfo>
7945   {
7946     enum
7947     {
7948       value = true
7949     };
7950   };
7951   template <>
7952   struct StructExtends<PhysicalDeviceShaderDemoteToHelperInvocationFeatures, PhysicalDeviceFeatures2>
7953   {
7954     enum
7955     {
7956       value = true
7957     };
7958   };
7959   template <>
7960   struct StructExtends<PhysicalDeviceShaderDemoteToHelperInvocationFeatures, DeviceCreateInfo>
7961   {
7962     enum
7963     {
7964       value = true
7965     };
7966   };
7967   template <>
7968   struct StructExtends<PhysicalDevicePrivateDataFeatures, PhysicalDeviceFeatures2>
7969   {
7970     enum
7971     {
7972       value = true
7973     };
7974   };
7975   template <>
7976   struct StructExtends<PhysicalDevicePrivateDataFeatures, DeviceCreateInfo>
7977   {
7978     enum
7979     {
7980       value = true
7981     };
7982   };
7983   template <>
7984   struct StructExtends<DevicePrivateDataCreateInfo, DeviceCreateInfo>
7985   {
7986     enum
7987     {
7988       value = true
7989     };
7990   };
7991   template <>
7992   struct StructExtends<PhysicalDevicePipelineCreationCacheControlFeatures, PhysicalDeviceFeatures2>
7993   {
7994     enum
7995     {
7996       value = true
7997     };
7998   };
7999   template <>
8000   struct StructExtends<PhysicalDevicePipelineCreationCacheControlFeatures, DeviceCreateInfo>
8001   {
8002     enum
8003     {
8004       value = true
8005     };
8006   };
8007   template <>
8008   struct StructExtends<MemoryBarrier2, SubpassDependency2>
8009   {
8010     enum
8011     {
8012       value = true
8013     };
8014   };
8015   template <>
8016   struct StructExtends<PhysicalDeviceSynchronization2Features, PhysicalDeviceFeatures2>
8017   {
8018     enum
8019     {
8020       value = true
8021     };
8022   };
8023   template <>
8024   struct StructExtends<PhysicalDeviceSynchronization2Features, DeviceCreateInfo>
8025   {
8026     enum
8027     {
8028       value = true
8029     };
8030   };
8031   template <>
8032   struct StructExtends<PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures, PhysicalDeviceFeatures2>
8033   {
8034     enum
8035     {
8036       value = true
8037     };
8038   };
8039   template <>
8040   struct StructExtends<PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures, DeviceCreateInfo>
8041   {
8042     enum
8043     {
8044       value = true
8045     };
8046   };
8047   template <>
8048   struct StructExtends<PhysicalDeviceImageRobustnessFeatures, PhysicalDeviceFeatures2>
8049   {
8050     enum
8051     {
8052       value = true
8053     };
8054   };
8055   template <>
8056   struct StructExtends<PhysicalDeviceImageRobustnessFeatures, DeviceCreateInfo>
8057   {
8058     enum
8059     {
8060       value = true
8061     };
8062   };
8063   template <>
8064   struct StructExtends<PhysicalDeviceSubgroupSizeControlFeatures, PhysicalDeviceFeatures2>
8065   {
8066     enum
8067     {
8068       value = true
8069     };
8070   };
8071   template <>
8072   struct StructExtends<PhysicalDeviceSubgroupSizeControlFeatures, DeviceCreateInfo>
8073   {
8074     enum
8075     {
8076       value = true
8077     };
8078   };
8079   template <>
8080   struct StructExtends<PhysicalDeviceSubgroupSizeControlProperties, PhysicalDeviceProperties2>
8081   {
8082     enum
8083     {
8084       value = true
8085     };
8086   };
8087   template <>
8088   struct StructExtends<PipelineShaderStageRequiredSubgroupSizeCreateInfo, PipelineShaderStageCreateInfo>
8089   {
8090     enum
8091     {
8092       value = true
8093     };
8094   };
8095   template <>
8096   struct StructExtends<PipelineShaderStageRequiredSubgroupSizeCreateInfo, ShaderCreateInfoEXT>
8097   {
8098     enum
8099     {
8100       value = true
8101     };
8102   };
8103   template <>
8104   struct StructExtends<PhysicalDeviceInlineUniformBlockFeatures, PhysicalDeviceFeatures2>
8105   {
8106     enum
8107     {
8108       value = true
8109     };
8110   };
8111   template <>
8112   struct StructExtends<PhysicalDeviceInlineUniformBlockFeatures, DeviceCreateInfo>
8113   {
8114     enum
8115     {
8116       value = true
8117     };
8118   };
8119   template <>
8120   struct StructExtends<PhysicalDeviceInlineUniformBlockProperties, PhysicalDeviceProperties2>
8121   {
8122     enum
8123     {
8124       value = true
8125     };
8126   };
8127   template <>
8128   struct StructExtends<WriteDescriptorSetInlineUniformBlock, WriteDescriptorSet>
8129   {
8130     enum
8131     {
8132       value = true
8133     };
8134   };
8135   template <>
8136   struct StructExtends<DescriptorPoolInlineUniformBlockCreateInfo, DescriptorPoolCreateInfo>
8137   {
8138     enum
8139     {
8140       value = true
8141     };
8142   };
8143   template <>
8144   struct StructExtends<PhysicalDeviceTextureCompressionASTCHDRFeatures, PhysicalDeviceFeatures2>
8145   {
8146     enum
8147     {
8148       value = true
8149     };
8150   };
8151   template <>
8152   struct StructExtends<PhysicalDeviceTextureCompressionASTCHDRFeatures, DeviceCreateInfo>
8153   {
8154     enum
8155     {
8156       value = true
8157     };
8158   };
8159   template <>
8160   struct StructExtends<PipelineRenderingCreateInfo, GraphicsPipelineCreateInfo>
8161   {
8162     enum
8163     {
8164       value = true
8165     };
8166   };
8167   template <>
8168   struct StructExtends<PhysicalDeviceDynamicRenderingFeatures, PhysicalDeviceFeatures2>
8169   {
8170     enum
8171     {
8172       value = true
8173     };
8174   };
8175   template <>
8176   struct StructExtends<PhysicalDeviceDynamicRenderingFeatures, DeviceCreateInfo>
8177   {
8178     enum
8179     {
8180       value = true
8181     };
8182   };
8183   template <>
8184   struct StructExtends<CommandBufferInheritanceRenderingInfo, CommandBufferInheritanceInfo>
8185   {
8186     enum
8187     {
8188       value = true
8189     };
8190   };
8191   template <>
8192   struct StructExtends<PhysicalDeviceShaderIntegerDotProductFeatures, PhysicalDeviceFeatures2>
8193   {
8194     enum
8195     {
8196       value = true
8197     };
8198   };
8199   template <>
8200   struct StructExtends<PhysicalDeviceShaderIntegerDotProductFeatures, DeviceCreateInfo>
8201   {
8202     enum
8203     {
8204       value = true
8205     };
8206   };
8207   template <>
8208   struct StructExtends<PhysicalDeviceShaderIntegerDotProductProperties, PhysicalDeviceProperties2>
8209   {
8210     enum
8211     {
8212       value = true
8213     };
8214   };
8215   template <>
8216   struct StructExtends<PhysicalDeviceTexelBufferAlignmentProperties, PhysicalDeviceProperties2>
8217   {
8218     enum
8219     {
8220       value = true
8221     };
8222   };
8223   template <>
8224   struct StructExtends<FormatProperties3, FormatProperties2>
8225   {
8226     enum
8227     {
8228       value = true
8229     };
8230   };
8231   template <>
8232   struct StructExtends<PhysicalDeviceMaintenance4Features, PhysicalDeviceFeatures2>
8233   {
8234     enum
8235     {
8236       value = true
8237     };
8238   };
8239   template <>
8240   struct StructExtends<PhysicalDeviceMaintenance4Features, DeviceCreateInfo>
8241   {
8242     enum
8243     {
8244       value = true
8245     };
8246   };
8247   template <>
8248   struct StructExtends<PhysicalDeviceMaintenance4Properties, PhysicalDeviceProperties2>
8249   {
8250     enum
8251     {
8252       value = true
8253     };
8254   };
8255 
8256   //=== VK_KHR_swapchain ===
8257   template <>
8258   struct StructExtends<ImageSwapchainCreateInfoKHR, ImageCreateInfo>
8259   {
8260     enum
8261     {
8262       value = true
8263     };
8264   };
8265   template <>
8266   struct StructExtends<BindImageMemorySwapchainInfoKHR, BindImageMemoryInfo>
8267   {
8268     enum
8269     {
8270       value = true
8271     };
8272   };
8273   template <>
8274   struct StructExtends<DeviceGroupPresentInfoKHR, PresentInfoKHR>
8275   {
8276     enum
8277     {
8278       value = true
8279     };
8280   };
8281   template <>
8282   struct StructExtends<DeviceGroupSwapchainCreateInfoKHR, SwapchainCreateInfoKHR>
8283   {
8284     enum
8285     {
8286       value = true
8287     };
8288   };
8289 
8290   //=== VK_KHR_display_swapchain ===
8291   template <>
8292   struct StructExtends<DisplayPresentInfoKHR, PresentInfoKHR>
8293   {
8294     enum
8295     {
8296       value = true
8297     };
8298   };
8299 
8300   //=== VK_EXT_debug_report ===
8301   template <>
8302   struct StructExtends<DebugReportCallbackCreateInfoEXT, InstanceCreateInfo>
8303   {
8304     enum
8305     {
8306       value = true
8307     };
8308   };
8309 
8310   //=== VK_AMD_rasterization_order ===
8311   template <>
8312   struct StructExtends<PipelineRasterizationStateRasterizationOrderAMD, PipelineRasterizationStateCreateInfo>
8313   {
8314     enum
8315     {
8316       value = true
8317     };
8318   };
8319 
8320   //=== VK_KHR_video_queue ===
8321   template <>
8322   struct StructExtends<QueueFamilyQueryResultStatusPropertiesKHR, QueueFamilyProperties2>
8323   {
8324     enum
8325     {
8326       value = true
8327     };
8328   };
8329   template <>
8330   struct StructExtends<QueueFamilyVideoPropertiesKHR, QueueFamilyProperties2>
8331   {
8332     enum
8333     {
8334       value = true
8335     };
8336   };
8337   template <>
8338   struct StructExtends<VideoProfileInfoKHR, QueryPoolCreateInfo>
8339   {
8340     enum
8341     {
8342       value = true
8343     };
8344   };
8345   template <>
8346   struct StructExtends<VideoProfileListInfoKHR, PhysicalDeviceImageFormatInfo2>
8347   {
8348     enum
8349     {
8350       value = true
8351     };
8352   };
8353   template <>
8354   struct StructExtends<VideoProfileListInfoKHR, PhysicalDeviceVideoFormatInfoKHR>
8355   {
8356     enum
8357     {
8358       value = true
8359     };
8360   };
8361   template <>
8362   struct StructExtends<VideoProfileListInfoKHR, ImageCreateInfo>
8363   {
8364     enum
8365     {
8366       value = true
8367     };
8368   };
8369   template <>
8370   struct StructExtends<VideoProfileListInfoKHR, BufferCreateInfo>
8371   {
8372     enum
8373     {
8374       value = true
8375     };
8376   };
8377 
8378   //=== VK_KHR_video_decode_queue ===
8379   template <>
8380   struct StructExtends<VideoDecodeCapabilitiesKHR, VideoCapabilitiesKHR>
8381   {
8382     enum
8383     {
8384       value = true
8385     };
8386   };
8387   template <>
8388   struct StructExtends<VideoDecodeUsageInfoKHR, VideoProfileInfoKHR>
8389   {
8390     enum
8391     {
8392       value = true
8393     };
8394   };
8395   template <>
8396   struct StructExtends<VideoDecodeUsageInfoKHR, QueryPoolCreateInfo>
8397   {
8398     enum
8399     {
8400       value = true
8401     };
8402   };
8403 
8404   //=== VK_NV_dedicated_allocation ===
8405   template <>
8406   struct StructExtends<DedicatedAllocationImageCreateInfoNV, ImageCreateInfo>
8407   {
8408     enum
8409     {
8410       value = true
8411     };
8412   };
8413   template <>
8414   struct StructExtends<DedicatedAllocationBufferCreateInfoNV, BufferCreateInfo>
8415   {
8416     enum
8417     {
8418       value = true
8419     };
8420   };
8421   template <>
8422   struct StructExtends<DedicatedAllocationMemoryAllocateInfoNV, MemoryAllocateInfo>
8423   {
8424     enum
8425     {
8426       value = true
8427     };
8428   };
8429 
8430   //=== VK_EXT_transform_feedback ===
8431   template <>
8432   struct StructExtends<PhysicalDeviceTransformFeedbackFeaturesEXT, PhysicalDeviceFeatures2>
8433   {
8434     enum
8435     {
8436       value = true
8437     };
8438   };
8439   template <>
8440   struct StructExtends<PhysicalDeviceTransformFeedbackFeaturesEXT, DeviceCreateInfo>
8441   {
8442     enum
8443     {
8444       value = true
8445     };
8446   };
8447   template <>
8448   struct StructExtends<PhysicalDeviceTransformFeedbackPropertiesEXT, PhysicalDeviceProperties2>
8449   {
8450     enum
8451     {
8452       value = true
8453     };
8454   };
8455   template <>
8456   struct StructExtends<PipelineRasterizationStateStreamCreateInfoEXT, PipelineRasterizationStateCreateInfo>
8457   {
8458     enum
8459     {
8460       value = true
8461     };
8462   };
8463 
8464 #  if defined( VK_ENABLE_BETA_EXTENSIONS )
8465   //=== VK_EXT_video_encode_h264 ===
8466   template <>
8467   struct StructExtends<VideoEncodeH264CapabilitiesEXT, VideoCapabilitiesKHR>
8468   {
8469     enum
8470     {
8471       value = true
8472     };
8473   };
8474   template <>
8475   struct StructExtends<VideoEncodeH264QualityLevelPropertiesEXT, VideoEncodeQualityLevelPropertiesKHR>
8476   {
8477     enum
8478     {
8479       value = true
8480     };
8481   };
8482   template <>
8483   struct StructExtends<VideoEncodeH264SessionCreateInfoEXT, VideoSessionCreateInfoKHR>
8484   {
8485     enum
8486     {
8487       value = true
8488     };
8489   };
8490   template <>
8491   struct StructExtends<VideoEncodeH264SessionParametersCreateInfoEXT, VideoSessionParametersCreateInfoKHR>
8492   {
8493     enum
8494     {
8495       value = true
8496     };
8497   };
8498   template <>
8499   struct StructExtends<VideoEncodeH264SessionParametersAddInfoEXT, VideoSessionParametersUpdateInfoKHR>
8500   {
8501     enum
8502     {
8503       value = true
8504     };
8505   };
8506   template <>
8507   struct StructExtends<VideoEncodeH264SessionParametersGetInfoEXT, VideoEncodeSessionParametersGetInfoKHR>
8508   {
8509     enum
8510     {
8511       value = true
8512     };
8513   };
8514   template <>
8515   struct StructExtends<VideoEncodeH264SessionParametersFeedbackInfoEXT, VideoEncodeSessionParametersFeedbackInfoKHR>
8516   {
8517     enum
8518     {
8519       value = true
8520     };
8521   };
8522   template <>
8523   struct StructExtends<VideoEncodeH264PictureInfoEXT, VideoEncodeInfoKHR>
8524   {
8525     enum
8526     {
8527       value = true
8528     };
8529   };
8530   template <>
8531   struct StructExtends<VideoEncodeH264DpbSlotInfoEXT, VideoReferenceSlotInfoKHR>
8532   {
8533     enum
8534     {
8535       value = true
8536     };
8537   };
8538   template <>
8539   struct StructExtends<VideoEncodeH264ProfileInfoEXT, VideoProfileInfoKHR>
8540   {
8541     enum
8542     {
8543       value = true
8544     };
8545   };
8546   template <>
8547   struct StructExtends<VideoEncodeH264ProfileInfoEXT, QueryPoolCreateInfo>
8548   {
8549     enum
8550     {
8551       value = true
8552     };
8553   };
8554   template <>
8555   struct StructExtends<VideoEncodeH264RateControlInfoEXT, VideoCodingControlInfoKHR>
8556   {
8557     enum
8558     {
8559       value = true
8560     };
8561   };
8562   template <>
8563   struct StructExtends<VideoEncodeH264RateControlInfoEXT, VideoBeginCodingInfoKHR>
8564   {
8565     enum
8566     {
8567       value = true
8568     };
8569   };
8570   template <>
8571   struct StructExtends<VideoEncodeH264RateControlLayerInfoEXT, VideoEncodeRateControlLayerInfoKHR>
8572   {
8573     enum
8574     {
8575       value = true
8576     };
8577   };
8578   template <>
8579   struct StructExtends<VideoEncodeH264GopRemainingFrameInfoEXT, VideoBeginCodingInfoKHR>
8580   {
8581     enum
8582     {
8583       value = true
8584     };
8585   };
8586 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
8587 
8588 #  if defined( VK_ENABLE_BETA_EXTENSIONS )
8589   //=== VK_EXT_video_encode_h265 ===
8590   template <>
8591   struct StructExtends<VideoEncodeH265CapabilitiesEXT, VideoCapabilitiesKHR>
8592   {
8593     enum
8594     {
8595       value = true
8596     };
8597   };
8598   template <>
8599   struct StructExtends<VideoEncodeH265SessionCreateInfoEXT, VideoSessionCreateInfoKHR>
8600   {
8601     enum
8602     {
8603       value = true
8604     };
8605   };
8606   template <>
8607   struct StructExtends<VideoEncodeH265QualityLevelPropertiesEXT, VideoEncodeQualityLevelPropertiesKHR>
8608   {
8609     enum
8610     {
8611       value = true
8612     };
8613   };
8614   template <>
8615   struct StructExtends<VideoEncodeH265SessionParametersCreateInfoEXT, VideoSessionParametersCreateInfoKHR>
8616   {
8617     enum
8618     {
8619       value = true
8620     };
8621   };
8622   template <>
8623   struct StructExtends<VideoEncodeH265SessionParametersAddInfoEXT, VideoSessionParametersUpdateInfoKHR>
8624   {
8625     enum
8626     {
8627       value = true
8628     };
8629   };
8630   template <>
8631   struct StructExtends<VideoEncodeH265SessionParametersGetInfoEXT, VideoEncodeSessionParametersGetInfoKHR>
8632   {
8633     enum
8634     {
8635       value = true
8636     };
8637   };
8638   template <>
8639   struct StructExtends<VideoEncodeH265SessionParametersFeedbackInfoEXT, VideoEncodeSessionParametersFeedbackInfoKHR>
8640   {
8641     enum
8642     {
8643       value = true
8644     };
8645   };
8646   template <>
8647   struct StructExtends<VideoEncodeH265PictureInfoEXT, VideoEncodeInfoKHR>
8648   {
8649     enum
8650     {
8651       value = true
8652     };
8653   };
8654   template <>
8655   struct StructExtends<VideoEncodeH265DpbSlotInfoEXT, VideoReferenceSlotInfoKHR>
8656   {
8657     enum
8658     {
8659       value = true
8660     };
8661   };
8662   template <>
8663   struct StructExtends<VideoEncodeH265ProfileInfoEXT, VideoProfileInfoKHR>
8664   {
8665     enum
8666     {
8667       value = true
8668     };
8669   };
8670   template <>
8671   struct StructExtends<VideoEncodeH265ProfileInfoEXT, QueryPoolCreateInfo>
8672   {
8673     enum
8674     {
8675       value = true
8676     };
8677   };
8678   template <>
8679   struct StructExtends<VideoEncodeH265RateControlInfoEXT, VideoCodingControlInfoKHR>
8680   {
8681     enum
8682     {
8683       value = true
8684     };
8685   };
8686   template <>
8687   struct StructExtends<VideoEncodeH265RateControlInfoEXT, VideoBeginCodingInfoKHR>
8688   {
8689     enum
8690     {
8691       value = true
8692     };
8693   };
8694   template <>
8695   struct StructExtends<VideoEncodeH265RateControlLayerInfoEXT, VideoEncodeRateControlLayerInfoKHR>
8696   {
8697     enum
8698     {
8699       value = true
8700     };
8701   };
8702   template <>
8703   struct StructExtends<VideoEncodeH265GopRemainingFrameInfoEXT, VideoBeginCodingInfoKHR>
8704   {
8705     enum
8706     {
8707       value = true
8708     };
8709   };
8710 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
8711 
8712   //=== VK_KHR_video_decode_h264 ===
8713   template <>
8714   struct StructExtends<VideoDecodeH264ProfileInfoKHR, VideoProfileInfoKHR>
8715   {
8716     enum
8717     {
8718       value = true
8719     };
8720   };
8721   template <>
8722   struct StructExtends<VideoDecodeH264ProfileInfoKHR, QueryPoolCreateInfo>
8723   {
8724     enum
8725     {
8726       value = true
8727     };
8728   };
8729   template <>
8730   struct StructExtends<VideoDecodeH264CapabilitiesKHR, VideoCapabilitiesKHR>
8731   {
8732     enum
8733     {
8734       value = true
8735     };
8736   };
8737   template <>
8738   struct StructExtends<VideoDecodeH264SessionParametersCreateInfoKHR, VideoSessionParametersCreateInfoKHR>
8739   {
8740     enum
8741     {
8742       value = true
8743     };
8744   };
8745   template <>
8746   struct StructExtends<VideoDecodeH264SessionParametersAddInfoKHR, VideoSessionParametersUpdateInfoKHR>
8747   {
8748     enum
8749     {
8750       value = true
8751     };
8752   };
8753   template <>
8754   struct StructExtends<VideoDecodeH264PictureInfoKHR, VideoDecodeInfoKHR>
8755   {
8756     enum
8757     {
8758       value = true
8759     };
8760   };
8761   template <>
8762   struct StructExtends<VideoDecodeH264DpbSlotInfoKHR, VideoReferenceSlotInfoKHR>
8763   {
8764     enum
8765     {
8766       value = true
8767     };
8768   };
8769 
8770   //=== VK_AMD_texture_gather_bias_lod ===
8771   template <>
8772   struct StructExtends<TextureLODGatherFormatPropertiesAMD, ImageFormatProperties2>
8773   {
8774     enum
8775     {
8776       value = true
8777     };
8778   };
8779 
8780   //=== VK_KHR_dynamic_rendering ===
8781   template <>
8782   struct StructExtends<RenderingFragmentShadingRateAttachmentInfoKHR, RenderingInfo>
8783   {
8784     enum
8785     {
8786       value = true
8787     };
8788   };
8789   template <>
8790   struct StructExtends<RenderingFragmentDensityMapAttachmentInfoEXT, RenderingInfo>
8791   {
8792     enum
8793     {
8794       value = true
8795     };
8796   };
8797   template <>
8798   struct StructExtends<AttachmentSampleCountInfoAMD, CommandBufferInheritanceInfo>
8799   {
8800     enum
8801     {
8802       value = true
8803     };
8804   };
8805   template <>
8806   struct StructExtends<AttachmentSampleCountInfoAMD, GraphicsPipelineCreateInfo>
8807   {
8808     enum
8809     {
8810       value = true
8811     };
8812   };
8813   template <>
8814   struct StructExtends<MultiviewPerViewAttributesInfoNVX, CommandBufferInheritanceInfo>
8815   {
8816     enum
8817     {
8818       value = true
8819     };
8820   };
8821   template <>
8822   struct StructExtends<MultiviewPerViewAttributesInfoNVX, GraphicsPipelineCreateInfo>
8823   {
8824     enum
8825     {
8826       value = true
8827     };
8828   };
8829   template <>
8830   struct StructExtends<MultiviewPerViewAttributesInfoNVX, RenderingInfo>
8831   {
8832     enum
8833     {
8834       value = true
8835     };
8836   };
8837 
8838   //=== VK_NV_corner_sampled_image ===
8839   template <>
8840   struct StructExtends<PhysicalDeviceCornerSampledImageFeaturesNV, PhysicalDeviceFeatures2>
8841   {
8842     enum
8843     {
8844       value = true
8845     };
8846   };
8847   template <>
8848   struct StructExtends<PhysicalDeviceCornerSampledImageFeaturesNV, DeviceCreateInfo>
8849   {
8850     enum
8851     {
8852       value = true
8853     };
8854   };
8855 
8856   //=== VK_NV_external_memory ===
8857   template <>
8858   struct StructExtends<ExternalMemoryImageCreateInfoNV, ImageCreateInfo>
8859   {
8860     enum
8861     {
8862       value = true
8863     };
8864   };
8865   template <>
8866   struct StructExtends<ExportMemoryAllocateInfoNV, MemoryAllocateInfo>
8867   {
8868     enum
8869     {
8870       value = true
8871     };
8872   };
8873 
8874 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
8875   //=== VK_NV_external_memory_win32 ===
8876   template <>
8877   struct StructExtends<ImportMemoryWin32HandleInfoNV, MemoryAllocateInfo>
8878   {
8879     enum
8880     {
8881       value = true
8882     };
8883   };
8884   template <>
8885   struct StructExtends<ExportMemoryWin32HandleInfoNV, MemoryAllocateInfo>
8886   {
8887     enum
8888     {
8889       value = true
8890     };
8891   };
8892 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
8893 
8894 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
8895   //=== VK_NV_win32_keyed_mutex ===
8896   template <>
8897   struct StructExtends<Win32KeyedMutexAcquireReleaseInfoNV, SubmitInfo>
8898   {
8899     enum
8900     {
8901       value = true
8902     };
8903   };
8904   template <>
8905   struct StructExtends<Win32KeyedMutexAcquireReleaseInfoNV, SubmitInfo2>
8906   {
8907     enum
8908     {
8909       value = true
8910     };
8911   };
8912 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
8913 
8914   //=== VK_EXT_validation_flags ===
8915   template <>
8916   struct StructExtends<ValidationFlagsEXT, InstanceCreateInfo>
8917   {
8918     enum
8919     {
8920       value = true
8921     };
8922   };
8923 
8924   //=== VK_EXT_astc_decode_mode ===
8925   template <>
8926   struct StructExtends<ImageViewASTCDecodeModeEXT, ImageViewCreateInfo>
8927   {
8928     enum
8929     {
8930       value = true
8931     };
8932   };
8933   template <>
8934   struct StructExtends<PhysicalDeviceASTCDecodeFeaturesEXT, PhysicalDeviceFeatures2>
8935   {
8936     enum
8937     {
8938       value = true
8939     };
8940   };
8941   template <>
8942   struct StructExtends<PhysicalDeviceASTCDecodeFeaturesEXT, DeviceCreateInfo>
8943   {
8944     enum
8945     {
8946       value = true
8947     };
8948   };
8949 
8950   //=== VK_EXT_pipeline_robustness ===
8951   template <>
8952   struct StructExtends<PhysicalDevicePipelineRobustnessFeaturesEXT, PhysicalDeviceFeatures2>
8953   {
8954     enum
8955     {
8956       value = true
8957     };
8958   };
8959   template <>
8960   struct StructExtends<PhysicalDevicePipelineRobustnessFeaturesEXT, DeviceCreateInfo>
8961   {
8962     enum
8963     {
8964       value = true
8965     };
8966   };
8967   template <>
8968   struct StructExtends<PhysicalDevicePipelineRobustnessPropertiesEXT, PhysicalDeviceProperties2>
8969   {
8970     enum
8971     {
8972       value = true
8973     };
8974   };
8975   template <>
8976   struct StructExtends<PipelineRobustnessCreateInfoEXT, GraphicsPipelineCreateInfo>
8977   {
8978     enum
8979     {
8980       value = true
8981     };
8982   };
8983   template <>
8984   struct StructExtends<PipelineRobustnessCreateInfoEXT, ComputePipelineCreateInfo>
8985   {
8986     enum
8987     {
8988       value = true
8989     };
8990   };
8991   template <>
8992   struct StructExtends<PipelineRobustnessCreateInfoEXT, PipelineShaderStageCreateInfo>
8993   {
8994     enum
8995     {
8996       value = true
8997     };
8998   };
8999   template <>
9000   struct StructExtends<PipelineRobustnessCreateInfoEXT, RayTracingPipelineCreateInfoKHR>
9001   {
9002     enum
9003     {
9004       value = true
9005     };
9006   };
9007 
9008 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
9009   //=== VK_KHR_external_memory_win32 ===
9010   template <>
9011   struct StructExtends<ImportMemoryWin32HandleInfoKHR, MemoryAllocateInfo>
9012   {
9013     enum
9014     {
9015       value = true
9016     };
9017   };
9018   template <>
9019   struct StructExtends<ExportMemoryWin32HandleInfoKHR, MemoryAllocateInfo>
9020   {
9021     enum
9022     {
9023       value = true
9024     };
9025   };
9026 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
9027 
9028   //=== VK_KHR_external_memory_fd ===
9029   template <>
9030   struct StructExtends<ImportMemoryFdInfoKHR, MemoryAllocateInfo>
9031   {
9032     enum
9033     {
9034       value = true
9035     };
9036   };
9037 
9038 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
9039   //=== VK_KHR_win32_keyed_mutex ===
9040   template <>
9041   struct StructExtends<Win32KeyedMutexAcquireReleaseInfoKHR, SubmitInfo>
9042   {
9043     enum
9044     {
9045       value = true
9046     };
9047   };
9048   template <>
9049   struct StructExtends<Win32KeyedMutexAcquireReleaseInfoKHR, SubmitInfo2>
9050   {
9051     enum
9052     {
9053       value = true
9054     };
9055   };
9056 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
9057 
9058 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
9059   //=== VK_KHR_external_semaphore_win32 ===
9060   template <>
9061   struct StructExtends<ExportSemaphoreWin32HandleInfoKHR, SemaphoreCreateInfo>
9062   {
9063     enum
9064     {
9065       value = true
9066     };
9067   };
9068   template <>
9069   struct StructExtends<D3D12FenceSubmitInfoKHR, SubmitInfo>
9070   {
9071     enum
9072     {
9073       value = true
9074     };
9075   };
9076 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
9077 
9078   //=== VK_KHR_push_descriptor ===
9079   template <>
9080   struct StructExtends<PhysicalDevicePushDescriptorPropertiesKHR, PhysicalDeviceProperties2>
9081   {
9082     enum
9083     {
9084       value = true
9085     };
9086   };
9087 
9088   //=== VK_EXT_conditional_rendering ===
9089   template <>
9090   struct StructExtends<PhysicalDeviceConditionalRenderingFeaturesEXT, PhysicalDeviceFeatures2>
9091   {
9092     enum
9093     {
9094       value = true
9095     };
9096   };
9097   template <>
9098   struct StructExtends<PhysicalDeviceConditionalRenderingFeaturesEXT, DeviceCreateInfo>
9099   {
9100     enum
9101     {
9102       value = true
9103     };
9104   };
9105   template <>
9106   struct StructExtends<CommandBufferInheritanceConditionalRenderingInfoEXT, CommandBufferInheritanceInfo>
9107   {
9108     enum
9109     {
9110       value = true
9111     };
9112   };
9113 
9114   //=== VK_KHR_incremental_present ===
9115   template <>
9116   struct StructExtends<PresentRegionsKHR, PresentInfoKHR>
9117   {
9118     enum
9119     {
9120       value = true
9121     };
9122   };
9123 
9124   //=== VK_NV_clip_space_w_scaling ===
9125   template <>
9126   struct StructExtends<PipelineViewportWScalingStateCreateInfoNV, PipelineViewportStateCreateInfo>
9127   {
9128     enum
9129     {
9130       value = true
9131     };
9132   };
9133 
9134   //=== VK_EXT_display_control ===
9135   template <>
9136   struct StructExtends<SwapchainCounterCreateInfoEXT, SwapchainCreateInfoKHR>
9137   {
9138     enum
9139     {
9140       value = true
9141     };
9142   };
9143 
9144   //=== VK_GOOGLE_display_timing ===
9145   template <>
9146   struct StructExtends<PresentTimesInfoGOOGLE, PresentInfoKHR>
9147   {
9148     enum
9149     {
9150       value = true
9151     };
9152   };
9153 
9154   //=== VK_NVX_multiview_per_view_attributes ===
9155   template <>
9156   struct StructExtends<PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, PhysicalDeviceProperties2>
9157   {
9158     enum
9159     {
9160       value = true
9161     };
9162   };
9163 
9164   //=== VK_NV_viewport_swizzle ===
9165   template <>
9166   struct StructExtends<PipelineViewportSwizzleStateCreateInfoNV, PipelineViewportStateCreateInfo>
9167   {
9168     enum
9169     {
9170       value = true
9171     };
9172   };
9173 
9174   //=== VK_EXT_discard_rectangles ===
9175   template <>
9176   struct StructExtends<PhysicalDeviceDiscardRectanglePropertiesEXT, PhysicalDeviceProperties2>
9177   {
9178     enum
9179     {
9180       value = true
9181     };
9182   };
9183   template <>
9184   struct StructExtends<PipelineDiscardRectangleStateCreateInfoEXT, GraphicsPipelineCreateInfo>
9185   {
9186     enum
9187     {
9188       value = true
9189     };
9190   };
9191 
9192   //=== VK_EXT_conservative_rasterization ===
9193   template <>
9194   struct StructExtends<PhysicalDeviceConservativeRasterizationPropertiesEXT, PhysicalDeviceProperties2>
9195   {
9196     enum
9197     {
9198       value = true
9199     };
9200   };
9201   template <>
9202   struct StructExtends<PipelineRasterizationConservativeStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
9203   {
9204     enum
9205     {
9206       value = true
9207     };
9208   };
9209 
9210   //=== VK_EXT_depth_clip_enable ===
9211   template <>
9212   struct StructExtends<PhysicalDeviceDepthClipEnableFeaturesEXT, PhysicalDeviceFeatures2>
9213   {
9214     enum
9215     {
9216       value = true
9217     };
9218   };
9219   template <>
9220   struct StructExtends<PhysicalDeviceDepthClipEnableFeaturesEXT, DeviceCreateInfo>
9221   {
9222     enum
9223     {
9224       value = true
9225     };
9226   };
9227   template <>
9228   struct StructExtends<PipelineRasterizationDepthClipStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
9229   {
9230     enum
9231     {
9232       value = true
9233     };
9234   };
9235 
9236   //=== VK_KHR_shared_presentable_image ===
9237   template <>
9238   struct StructExtends<SharedPresentSurfaceCapabilitiesKHR, SurfaceCapabilities2KHR>
9239   {
9240     enum
9241     {
9242       value = true
9243     };
9244   };
9245 
9246 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
9247   //=== VK_KHR_external_fence_win32 ===
9248   template <>
9249   struct StructExtends<ExportFenceWin32HandleInfoKHR, FenceCreateInfo>
9250   {
9251     enum
9252     {
9253       value = true
9254     };
9255   };
9256 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
9257 
9258   //=== VK_KHR_performance_query ===
9259   template <>
9260   struct StructExtends<PhysicalDevicePerformanceQueryFeaturesKHR, PhysicalDeviceFeatures2>
9261   {
9262     enum
9263     {
9264       value = true
9265     };
9266   };
9267   template <>
9268   struct StructExtends<PhysicalDevicePerformanceQueryFeaturesKHR, DeviceCreateInfo>
9269   {
9270     enum
9271     {
9272       value = true
9273     };
9274   };
9275   template <>
9276   struct StructExtends<PhysicalDevicePerformanceQueryPropertiesKHR, PhysicalDeviceProperties2>
9277   {
9278     enum
9279     {
9280       value = true
9281     };
9282   };
9283   template <>
9284   struct StructExtends<QueryPoolPerformanceCreateInfoKHR, QueryPoolCreateInfo>
9285   {
9286     enum
9287     {
9288       value = true
9289     };
9290   };
9291   template <>
9292   struct StructExtends<PerformanceQuerySubmitInfoKHR, SubmitInfo>
9293   {
9294     enum
9295     {
9296       value = true
9297     };
9298   };
9299   template <>
9300   struct StructExtends<PerformanceQuerySubmitInfoKHR, SubmitInfo2>
9301   {
9302     enum
9303     {
9304       value = true
9305     };
9306   };
9307 
9308   //=== VK_EXT_debug_utils ===
9309   template <>
9310   struct StructExtends<DebugUtilsMessengerCreateInfoEXT, InstanceCreateInfo>
9311   {
9312     enum
9313     {
9314       value = true
9315     };
9316   };
9317   template <>
9318   struct StructExtends<DebugUtilsObjectNameInfoEXT, PipelineShaderStageCreateInfo>
9319   {
9320     enum
9321     {
9322       value = true
9323     };
9324   };
9325 
9326 #  if defined( VK_USE_PLATFORM_ANDROID_KHR )
9327   //=== VK_ANDROID_external_memory_android_hardware_buffer ===
9328   template <>
9329   struct StructExtends<AndroidHardwareBufferUsageANDROID, ImageFormatProperties2>
9330   {
9331     enum
9332     {
9333       value = true
9334     };
9335   };
9336   template <>
9337   struct StructExtends<AndroidHardwareBufferFormatPropertiesANDROID, AndroidHardwareBufferPropertiesANDROID>
9338   {
9339     enum
9340     {
9341       value = true
9342     };
9343   };
9344   template <>
9345   struct StructExtends<ImportAndroidHardwareBufferInfoANDROID, MemoryAllocateInfo>
9346   {
9347     enum
9348     {
9349       value = true
9350     };
9351   };
9352   template <>
9353   struct StructExtends<ExternalFormatANDROID, ImageCreateInfo>
9354   {
9355     enum
9356     {
9357       value = true
9358     };
9359   };
9360   template <>
9361   struct StructExtends<ExternalFormatANDROID, SamplerYcbcrConversionCreateInfo>
9362   {
9363     enum
9364     {
9365       value = true
9366     };
9367   };
9368   template <>
9369   struct StructExtends<AndroidHardwareBufferFormatProperties2ANDROID, AndroidHardwareBufferPropertiesANDROID>
9370   {
9371     enum
9372     {
9373       value = true
9374     };
9375   };
9376 #  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
9377 
9378   //=== VK_EXT_sample_locations ===
9379   template <>
9380   struct StructExtends<SampleLocationsInfoEXT, ImageMemoryBarrier>
9381   {
9382     enum
9383     {
9384       value = true
9385     };
9386   };
9387   template <>
9388   struct StructExtends<SampleLocationsInfoEXT, ImageMemoryBarrier2>
9389   {
9390     enum
9391     {
9392       value = true
9393     };
9394   };
9395   template <>
9396   struct StructExtends<RenderPassSampleLocationsBeginInfoEXT, RenderPassBeginInfo>
9397   {
9398     enum
9399     {
9400       value = true
9401     };
9402   };
9403   template <>
9404   struct StructExtends<PipelineSampleLocationsStateCreateInfoEXT, PipelineMultisampleStateCreateInfo>
9405   {
9406     enum
9407     {
9408       value = true
9409     };
9410   };
9411   template <>
9412   struct StructExtends<PhysicalDeviceSampleLocationsPropertiesEXT, PhysicalDeviceProperties2>
9413   {
9414     enum
9415     {
9416       value = true
9417     };
9418   };
9419 
9420   //=== VK_EXT_blend_operation_advanced ===
9421   template <>
9422   struct StructExtends<PhysicalDeviceBlendOperationAdvancedFeaturesEXT, PhysicalDeviceFeatures2>
9423   {
9424     enum
9425     {
9426       value = true
9427     };
9428   };
9429   template <>
9430   struct StructExtends<PhysicalDeviceBlendOperationAdvancedFeaturesEXT, DeviceCreateInfo>
9431   {
9432     enum
9433     {
9434       value = true
9435     };
9436   };
9437   template <>
9438   struct StructExtends<PhysicalDeviceBlendOperationAdvancedPropertiesEXT, PhysicalDeviceProperties2>
9439   {
9440     enum
9441     {
9442       value = true
9443     };
9444   };
9445   template <>
9446   struct StructExtends<PipelineColorBlendAdvancedStateCreateInfoEXT, PipelineColorBlendStateCreateInfo>
9447   {
9448     enum
9449     {
9450       value = true
9451     };
9452   };
9453 
9454   //=== VK_NV_fragment_coverage_to_color ===
9455   template <>
9456   struct StructExtends<PipelineCoverageToColorStateCreateInfoNV, PipelineMultisampleStateCreateInfo>
9457   {
9458     enum
9459     {
9460       value = true
9461     };
9462   };
9463 
9464   //=== VK_KHR_acceleration_structure ===
9465   template <>
9466   struct StructExtends<WriteDescriptorSetAccelerationStructureKHR, WriteDescriptorSet>
9467   {
9468     enum
9469     {
9470       value = true
9471     };
9472   };
9473   template <>
9474   struct StructExtends<PhysicalDeviceAccelerationStructureFeaturesKHR, PhysicalDeviceFeatures2>
9475   {
9476     enum
9477     {
9478       value = true
9479     };
9480   };
9481   template <>
9482   struct StructExtends<PhysicalDeviceAccelerationStructureFeaturesKHR, DeviceCreateInfo>
9483   {
9484     enum
9485     {
9486       value = true
9487     };
9488   };
9489   template <>
9490   struct StructExtends<PhysicalDeviceAccelerationStructurePropertiesKHR, PhysicalDeviceProperties2>
9491   {
9492     enum
9493     {
9494       value = true
9495     };
9496   };
9497 
9498   //=== VK_KHR_ray_tracing_pipeline ===
9499   template <>
9500   struct StructExtends<PhysicalDeviceRayTracingPipelineFeaturesKHR, PhysicalDeviceFeatures2>
9501   {
9502     enum
9503     {
9504       value = true
9505     };
9506   };
9507   template <>
9508   struct StructExtends<PhysicalDeviceRayTracingPipelineFeaturesKHR, DeviceCreateInfo>
9509   {
9510     enum
9511     {
9512       value = true
9513     };
9514   };
9515   template <>
9516   struct StructExtends<PhysicalDeviceRayTracingPipelinePropertiesKHR, PhysicalDeviceProperties2>
9517   {
9518     enum
9519     {
9520       value = true
9521     };
9522   };
9523 
9524   //=== VK_KHR_ray_query ===
9525   template <>
9526   struct StructExtends<PhysicalDeviceRayQueryFeaturesKHR, PhysicalDeviceFeatures2>
9527   {
9528     enum
9529     {
9530       value = true
9531     };
9532   };
9533   template <>
9534   struct StructExtends<PhysicalDeviceRayQueryFeaturesKHR, DeviceCreateInfo>
9535   {
9536     enum
9537     {
9538       value = true
9539     };
9540   };
9541 
9542   //=== VK_NV_framebuffer_mixed_samples ===
9543   template <>
9544   struct StructExtends<PipelineCoverageModulationStateCreateInfoNV, PipelineMultisampleStateCreateInfo>
9545   {
9546     enum
9547     {
9548       value = true
9549     };
9550   };
9551 
9552   //=== VK_NV_shader_sm_builtins ===
9553   template <>
9554   struct StructExtends<PhysicalDeviceShaderSMBuiltinsPropertiesNV, PhysicalDeviceProperties2>
9555   {
9556     enum
9557     {
9558       value = true
9559     };
9560   };
9561   template <>
9562   struct StructExtends<PhysicalDeviceShaderSMBuiltinsFeaturesNV, PhysicalDeviceFeatures2>
9563   {
9564     enum
9565     {
9566       value = true
9567     };
9568   };
9569   template <>
9570   struct StructExtends<PhysicalDeviceShaderSMBuiltinsFeaturesNV, DeviceCreateInfo>
9571   {
9572     enum
9573     {
9574       value = true
9575     };
9576   };
9577 
9578   //=== VK_EXT_image_drm_format_modifier ===
9579   template <>
9580   struct StructExtends<DrmFormatModifierPropertiesListEXT, FormatProperties2>
9581   {
9582     enum
9583     {
9584       value = true
9585     };
9586   };
9587   template <>
9588   struct StructExtends<PhysicalDeviceImageDrmFormatModifierInfoEXT, PhysicalDeviceImageFormatInfo2>
9589   {
9590     enum
9591     {
9592       value = true
9593     };
9594   };
9595   template <>
9596   struct StructExtends<ImageDrmFormatModifierListCreateInfoEXT, ImageCreateInfo>
9597   {
9598     enum
9599     {
9600       value = true
9601     };
9602   };
9603   template <>
9604   struct StructExtends<ImageDrmFormatModifierExplicitCreateInfoEXT, ImageCreateInfo>
9605   {
9606     enum
9607     {
9608       value = true
9609     };
9610   };
9611   template <>
9612   struct StructExtends<DrmFormatModifierPropertiesList2EXT, FormatProperties2>
9613   {
9614     enum
9615     {
9616       value = true
9617     };
9618   };
9619 
9620   //=== VK_EXT_validation_cache ===
9621   template <>
9622   struct StructExtends<ShaderModuleValidationCacheCreateInfoEXT, ShaderModuleCreateInfo>
9623   {
9624     enum
9625     {
9626       value = true
9627     };
9628   };
9629   template <>
9630   struct StructExtends<ShaderModuleValidationCacheCreateInfoEXT, PipelineShaderStageCreateInfo>
9631   {
9632     enum
9633     {
9634       value = true
9635     };
9636   };
9637 
9638 #  if defined( VK_ENABLE_BETA_EXTENSIONS )
9639   //=== VK_KHR_portability_subset ===
9640   template <>
9641   struct StructExtends<PhysicalDevicePortabilitySubsetFeaturesKHR, PhysicalDeviceFeatures2>
9642   {
9643     enum
9644     {
9645       value = true
9646     };
9647   };
9648   template <>
9649   struct StructExtends<PhysicalDevicePortabilitySubsetFeaturesKHR, DeviceCreateInfo>
9650   {
9651     enum
9652     {
9653       value = true
9654     };
9655   };
9656   template <>
9657   struct StructExtends<PhysicalDevicePortabilitySubsetPropertiesKHR, PhysicalDeviceProperties2>
9658   {
9659     enum
9660     {
9661       value = true
9662     };
9663   };
9664 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
9665 
9666   //=== VK_NV_shading_rate_image ===
9667   template <>
9668   struct StructExtends<PipelineViewportShadingRateImageStateCreateInfoNV, PipelineViewportStateCreateInfo>
9669   {
9670     enum
9671     {
9672       value = true
9673     };
9674   };
9675   template <>
9676   struct StructExtends<PhysicalDeviceShadingRateImageFeaturesNV, PhysicalDeviceFeatures2>
9677   {
9678     enum
9679     {
9680       value = true
9681     };
9682   };
9683   template <>
9684   struct StructExtends<PhysicalDeviceShadingRateImageFeaturesNV, DeviceCreateInfo>
9685   {
9686     enum
9687     {
9688       value = true
9689     };
9690   };
9691   template <>
9692   struct StructExtends<PhysicalDeviceShadingRateImagePropertiesNV, PhysicalDeviceProperties2>
9693   {
9694     enum
9695     {
9696       value = true
9697     };
9698   };
9699   template <>
9700   struct StructExtends<PipelineViewportCoarseSampleOrderStateCreateInfoNV, PipelineViewportStateCreateInfo>
9701   {
9702     enum
9703     {
9704       value = true
9705     };
9706   };
9707 
9708   //=== VK_NV_ray_tracing ===
9709   template <>
9710   struct StructExtends<WriteDescriptorSetAccelerationStructureNV, WriteDescriptorSet>
9711   {
9712     enum
9713     {
9714       value = true
9715     };
9716   };
9717   template <>
9718   struct StructExtends<PhysicalDeviceRayTracingPropertiesNV, PhysicalDeviceProperties2>
9719   {
9720     enum
9721     {
9722       value = true
9723     };
9724   };
9725 
9726   //=== VK_NV_representative_fragment_test ===
9727   template <>
9728   struct StructExtends<PhysicalDeviceRepresentativeFragmentTestFeaturesNV, PhysicalDeviceFeatures2>
9729   {
9730     enum
9731     {
9732       value = true
9733     };
9734   };
9735   template <>
9736   struct StructExtends<PhysicalDeviceRepresentativeFragmentTestFeaturesNV, DeviceCreateInfo>
9737   {
9738     enum
9739     {
9740       value = true
9741     };
9742   };
9743   template <>
9744   struct StructExtends<PipelineRepresentativeFragmentTestStateCreateInfoNV, GraphicsPipelineCreateInfo>
9745   {
9746     enum
9747     {
9748       value = true
9749     };
9750   };
9751 
9752   //=== VK_EXT_filter_cubic ===
9753   template <>
9754   struct StructExtends<PhysicalDeviceImageViewImageFormatInfoEXT, PhysicalDeviceImageFormatInfo2>
9755   {
9756     enum
9757     {
9758       value = true
9759     };
9760   };
9761   template <>
9762   struct StructExtends<FilterCubicImageViewImageFormatPropertiesEXT, ImageFormatProperties2>
9763   {
9764     enum
9765     {
9766       value = true
9767     };
9768   };
9769 
9770   //=== VK_EXT_external_memory_host ===
9771   template <>
9772   struct StructExtends<ImportMemoryHostPointerInfoEXT, MemoryAllocateInfo>
9773   {
9774     enum
9775     {
9776       value = true
9777     };
9778   };
9779   template <>
9780   struct StructExtends<PhysicalDeviceExternalMemoryHostPropertiesEXT, PhysicalDeviceProperties2>
9781   {
9782     enum
9783     {
9784       value = true
9785     };
9786   };
9787 
9788   //=== VK_KHR_shader_clock ===
9789   template <>
9790   struct StructExtends<PhysicalDeviceShaderClockFeaturesKHR, PhysicalDeviceFeatures2>
9791   {
9792     enum
9793     {
9794       value = true
9795     };
9796   };
9797   template <>
9798   struct StructExtends<PhysicalDeviceShaderClockFeaturesKHR, DeviceCreateInfo>
9799   {
9800     enum
9801     {
9802       value = true
9803     };
9804   };
9805 
9806   //=== VK_AMD_pipeline_compiler_control ===
9807   template <>
9808   struct StructExtends<PipelineCompilerControlCreateInfoAMD, GraphicsPipelineCreateInfo>
9809   {
9810     enum
9811     {
9812       value = true
9813     };
9814   };
9815   template <>
9816   struct StructExtends<PipelineCompilerControlCreateInfoAMD, ComputePipelineCreateInfo>
9817   {
9818     enum
9819     {
9820       value = true
9821     };
9822   };
9823 
9824   //=== VK_AMD_shader_core_properties ===
9825   template <>
9826   struct StructExtends<PhysicalDeviceShaderCorePropertiesAMD, PhysicalDeviceProperties2>
9827   {
9828     enum
9829     {
9830       value = true
9831     };
9832   };
9833 
9834   //=== VK_KHR_video_decode_h265 ===
9835   template <>
9836   struct StructExtends<VideoDecodeH265ProfileInfoKHR, VideoProfileInfoKHR>
9837   {
9838     enum
9839     {
9840       value = true
9841     };
9842   };
9843   template <>
9844   struct StructExtends<VideoDecodeH265ProfileInfoKHR, QueryPoolCreateInfo>
9845   {
9846     enum
9847     {
9848       value = true
9849     };
9850   };
9851   template <>
9852   struct StructExtends<VideoDecodeH265CapabilitiesKHR, VideoCapabilitiesKHR>
9853   {
9854     enum
9855     {
9856       value = true
9857     };
9858   };
9859   template <>
9860   struct StructExtends<VideoDecodeH265SessionParametersCreateInfoKHR, VideoSessionParametersCreateInfoKHR>
9861   {
9862     enum
9863     {
9864       value = true
9865     };
9866   };
9867   template <>
9868   struct StructExtends<VideoDecodeH265SessionParametersAddInfoKHR, VideoSessionParametersUpdateInfoKHR>
9869   {
9870     enum
9871     {
9872       value = true
9873     };
9874   };
9875   template <>
9876   struct StructExtends<VideoDecodeH265PictureInfoKHR, VideoDecodeInfoKHR>
9877   {
9878     enum
9879     {
9880       value = true
9881     };
9882   };
9883   template <>
9884   struct StructExtends<VideoDecodeH265DpbSlotInfoKHR, VideoReferenceSlotInfoKHR>
9885   {
9886     enum
9887     {
9888       value = true
9889     };
9890   };
9891 
9892   //=== VK_KHR_global_priority ===
9893   template <>
9894   struct StructExtends<DeviceQueueGlobalPriorityCreateInfoKHR, DeviceQueueCreateInfo>
9895   {
9896     enum
9897     {
9898       value = true
9899     };
9900   };
9901   template <>
9902   struct StructExtends<PhysicalDeviceGlobalPriorityQueryFeaturesKHR, PhysicalDeviceFeatures2>
9903   {
9904     enum
9905     {
9906       value = true
9907     };
9908   };
9909   template <>
9910   struct StructExtends<PhysicalDeviceGlobalPriorityQueryFeaturesKHR, DeviceCreateInfo>
9911   {
9912     enum
9913     {
9914       value = true
9915     };
9916   };
9917   template <>
9918   struct StructExtends<QueueFamilyGlobalPriorityPropertiesKHR, QueueFamilyProperties2>
9919   {
9920     enum
9921     {
9922       value = true
9923     };
9924   };
9925 
9926   //=== VK_AMD_memory_overallocation_behavior ===
9927   template <>
9928   struct StructExtends<DeviceMemoryOverallocationCreateInfoAMD, DeviceCreateInfo>
9929   {
9930     enum
9931     {
9932       value = true
9933     };
9934   };
9935 
9936   //=== VK_EXT_vertex_attribute_divisor ===
9937   template <>
9938   struct StructExtends<PhysicalDeviceVertexAttributeDivisorPropertiesEXT, PhysicalDeviceProperties2>
9939   {
9940     enum
9941     {
9942       value = true
9943     };
9944   };
9945   template <>
9946   struct StructExtends<PipelineVertexInputDivisorStateCreateInfoEXT, PipelineVertexInputStateCreateInfo>
9947   {
9948     enum
9949     {
9950       value = true
9951     };
9952   };
9953   template <>
9954   struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesEXT, PhysicalDeviceFeatures2>
9955   {
9956     enum
9957     {
9958       value = true
9959     };
9960   };
9961   template <>
9962   struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesEXT, DeviceCreateInfo>
9963   {
9964     enum
9965     {
9966       value = true
9967     };
9968   };
9969 
9970 #  if defined( VK_USE_PLATFORM_GGP )
9971   //=== VK_GGP_frame_token ===
9972   template <>
9973   struct StructExtends<PresentFrameTokenGGP, PresentInfoKHR>
9974   {
9975     enum
9976     {
9977       value = true
9978     };
9979   };
9980 #  endif /*VK_USE_PLATFORM_GGP*/
9981 
9982   //=== VK_NV_compute_shader_derivatives ===
9983   template <>
9984   struct StructExtends<PhysicalDeviceComputeShaderDerivativesFeaturesNV, PhysicalDeviceFeatures2>
9985   {
9986     enum
9987     {
9988       value = true
9989     };
9990   };
9991   template <>
9992   struct StructExtends<PhysicalDeviceComputeShaderDerivativesFeaturesNV, DeviceCreateInfo>
9993   {
9994     enum
9995     {
9996       value = true
9997     };
9998   };
9999 
10000   //=== VK_NV_mesh_shader ===
10001   template <>
10002   struct StructExtends<PhysicalDeviceMeshShaderFeaturesNV, PhysicalDeviceFeatures2>
10003   {
10004     enum
10005     {
10006       value = true
10007     };
10008   };
10009   template <>
10010   struct StructExtends<PhysicalDeviceMeshShaderFeaturesNV, DeviceCreateInfo>
10011   {
10012     enum
10013     {
10014       value = true
10015     };
10016   };
10017   template <>
10018   struct StructExtends<PhysicalDeviceMeshShaderPropertiesNV, PhysicalDeviceProperties2>
10019   {
10020     enum
10021     {
10022       value = true
10023     };
10024   };
10025 
10026   //=== VK_NV_shader_image_footprint ===
10027   template <>
10028   struct StructExtends<PhysicalDeviceShaderImageFootprintFeaturesNV, PhysicalDeviceFeatures2>
10029   {
10030     enum
10031     {
10032       value = true
10033     };
10034   };
10035   template <>
10036   struct StructExtends<PhysicalDeviceShaderImageFootprintFeaturesNV, DeviceCreateInfo>
10037   {
10038     enum
10039     {
10040       value = true
10041     };
10042   };
10043 
10044   //=== VK_NV_scissor_exclusive ===
10045   template <>
10046   struct StructExtends<PipelineViewportExclusiveScissorStateCreateInfoNV, PipelineViewportStateCreateInfo>
10047   {
10048     enum
10049     {
10050       value = true
10051     };
10052   };
10053   template <>
10054   struct StructExtends<PhysicalDeviceExclusiveScissorFeaturesNV, PhysicalDeviceFeatures2>
10055   {
10056     enum
10057     {
10058       value = true
10059     };
10060   };
10061   template <>
10062   struct StructExtends<PhysicalDeviceExclusiveScissorFeaturesNV, DeviceCreateInfo>
10063   {
10064     enum
10065     {
10066       value = true
10067     };
10068   };
10069 
10070   //=== VK_NV_device_diagnostic_checkpoints ===
10071   template <>
10072   struct StructExtends<QueueFamilyCheckpointPropertiesNV, QueueFamilyProperties2>
10073   {
10074     enum
10075     {
10076       value = true
10077     };
10078   };
10079 
10080   //=== VK_INTEL_shader_integer_functions2 ===
10081   template <>
10082   struct StructExtends<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, PhysicalDeviceFeatures2>
10083   {
10084     enum
10085     {
10086       value = true
10087     };
10088   };
10089   template <>
10090   struct StructExtends<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, DeviceCreateInfo>
10091   {
10092     enum
10093     {
10094       value = true
10095     };
10096   };
10097 
10098   //=== VK_INTEL_performance_query ===
10099   template <>
10100   struct StructExtends<QueryPoolPerformanceQueryCreateInfoINTEL, QueryPoolCreateInfo>
10101   {
10102     enum
10103     {
10104       value = true
10105     };
10106   };
10107 
10108   //=== VK_EXT_pci_bus_info ===
10109   template <>
10110   struct StructExtends<PhysicalDevicePCIBusInfoPropertiesEXT, PhysicalDeviceProperties2>
10111   {
10112     enum
10113     {
10114       value = true
10115     };
10116   };
10117 
10118   //=== VK_AMD_display_native_hdr ===
10119   template <>
10120   struct StructExtends<DisplayNativeHdrSurfaceCapabilitiesAMD, SurfaceCapabilities2KHR>
10121   {
10122     enum
10123     {
10124       value = true
10125     };
10126   };
10127   template <>
10128   struct StructExtends<SwapchainDisplayNativeHdrCreateInfoAMD, SwapchainCreateInfoKHR>
10129   {
10130     enum
10131     {
10132       value = true
10133     };
10134   };
10135 
10136   //=== VK_EXT_fragment_density_map ===
10137   template <>
10138   struct StructExtends<PhysicalDeviceFragmentDensityMapFeaturesEXT, PhysicalDeviceFeatures2>
10139   {
10140     enum
10141     {
10142       value = true
10143     };
10144   };
10145   template <>
10146   struct StructExtends<PhysicalDeviceFragmentDensityMapFeaturesEXT, DeviceCreateInfo>
10147   {
10148     enum
10149     {
10150       value = true
10151     };
10152   };
10153   template <>
10154   struct StructExtends<PhysicalDeviceFragmentDensityMapPropertiesEXT, PhysicalDeviceProperties2>
10155   {
10156     enum
10157     {
10158       value = true
10159     };
10160   };
10161   template <>
10162   struct StructExtends<RenderPassFragmentDensityMapCreateInfoEXT, RenderPassCreateInfo>
10163   {
10164     enum
10165     {
10166       value = true
10167     };
10168   };
10169   template <>
10170   struct StructExtends<RenderPassFragmentDensityMapCreateInfoEXT, RenderPassCreateInfo2>
10171   {
10172     enum
10173     {
10174       value = true
10175     };
10176   };
10177 
10178   //=== VK_KHR_fragment_shading_rate ===
10179   template <>
10180   struct StructExtends<FragmentShadingRateAttachmentInfoKHR, SubpassDescription2>
10181   {
10182     enum
10183     {
10184       value = true
10185     };
10186   };
10187   template <>
10188   struct StructExtends<PipelineFragmentShadingRateStateCreateInfoKHR, GraphicsPipelineCreateInfo>
10189   {
10190     enum
10191     {
10192       value = true
10193     };
10194   };
10195   template <>
10196   struct StructExtends<PhysicalDeviceFragmentShadingRateFeaturesKHR, PhysicalDeviceFeatures2>
10197   {
10198     enum
10199     {
10200       value = true
10201     };
10202   };
10203   template <>
10204   struct StructExtends<PhysicalDeviceFragmentShadingRateFeaturesKHR, DeviceCreateInfo>
10205   {
10206     enum
10207     {
10208       value = true
10209     };
10210   };
10211   template <>
10212   struct StructExtends<PhysicalDeviceFragmentShadingRatePropertiesKHR, PhysicalDeviceProperties2>
10213   {
10214     enum
10215     {
10216       value = true
10217     };
10218   };
10219 
10220   //=== VK_AMD_shader_core_properties2 ===
10221   template <>
10222   struct StructExtends<PhysicalDeviceShaderCoreProperties2AMD, PhysicalDeviceProperties2>
10223   {
10224     enum
10225     {
10226       value = true
10227     };
10228   };
10229 
10230   //=== VK_AMD_device_coherent_memory ===
10231   template <>
10232   struct StructExtends<PhysicalDeviceCoherentMemoryFeaturesAMD, PhysicalDeviceFeatures2>
10233   {
10234     enum
10235     {
10236       value = true
10237     };
10238   };
10239   template <>
10240   struct StructExtends<PhysicalDeviceCoherentMemoryFeaturesAMD, DeviceCreateInfo>
10241   {
10242     enum
10243     {
10244       value = true
10245     };
10246   };
10247 
10248   //=== VK_EXT_shader_image_atomic_int64 ===
10249   template <>
10250   struct StructExtends<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT, PhysicalDeviceFeatures2>
10251   {
10252     enum
10253     {
10254       value = true
10255     };
10256   };
10257   template <>
10258   struct StructExtends<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT, DeviceCreateInfo>
10259   {
10260     enum
10261     {
10262       value = true
10263     };
10264   };
10265 
10266   //=== VK_EXT_memory_budget ===
10267   template <>
10268   struct StructExtends<PhysicalDeviceMemoryBudgetPropertiesEXT, PhysicalDeviceMemoryProperties2>
10269   {
10270     enum
10271     {
10272       value = true
10273     };
10274   };
10275 
10276   //=== VK_EXT_memory_priority ===
10277   template <>
10278   struct StructExtends<PhysicalDeviceMemoryPriorityFeaturesEXT, PhysicalDeviceFeatures2>
10279   {
10280     enum
10281     {
10282       value = true
10283     };
10284   };
10285   template <>
10286   struct StructExtends<PhysicalDeviceMemoryPriorityFeaturesEXT, DeviceCreateInfo>
10287   {
10288     enum
10289     {
10290       value = true
10291     };
10292   };
10293   template <>
10294   struct StructExtends<MemoryPriorityAllocateInfoEXT, MemoryAllocateInfo>
10295   {
10296     enum
10297     {
10298       value = true
10299     };
10300   };
10301 
10302   //=== VK_KHR_surface_protected_capabilities ===
10303   template <>
10304   struct StructExtends<SurfaceProtectedCapabilitiesKHR, SurfaceCapabilities2KHR>
10305   {
10306     enum
10307     {
10308       value = true
10309     };
10310   };
10311 
10312   //=== VK_NV_dedicated_allocation_image_aliasing ===
10313   template <>
10314   struct StructExtends<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, PhysicalDeviceFeatures2>
10315   {
10316     enum
10317     {
10318       value = true
10319     };
10320   };
10321   template <>
10322   struct StructExtends<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, DeviceCreateInfo>
10323   {
10324     enum
10325     {
10326       value = true
10327     };
10328   };
10329 
10330   //=== VK_EXT_buffer_device_address ===
10331   template <>
10332   struct StructExtends<PhysicalDeviceBufferDeviceAddressFeaturesEXT, PhysicalDeviceFeatures2>
10333   {
10334     enum
10335     {
10336       value = true
10337     };
10338   };
10339   template <>
10340   struct StructExtends<PhysicalDeviceBufferDeviceAddressFeaturesEXT, DeviceCreateInfo>
10341   {
10342     enum
10343     {
10344       value = true
10345     };
10346   };
10347   template <>
10348   struct StructExtends<BufferDeviceAddressCreateInfoEXT, BufferCreateInfo>
10349   {
10350     enum
10351     {
10352       value = true
10353     };
10354   };
10355 
10356   //=== VK_EXT_validation_features ===
10357   template <>
10358   struct StructExtends<ValidationFeaturesEXT, InstanceCreateInfo>
10359   {
10360     enum
10361     {
10362       value = true
10363     };
10364   };
10365 
10366   //=== VK_KHR_present_wait ===
10367   template <>
10368   struct StructExtends<PhysicalDevicePresentWaitFeaturesKHR, PhysicalDeviceFeatures2>
10369   {
10370     enum
10371     {
10372       value = true
10373     };
10374   };
10375   template <>
10376   struct StructExtends<PhysicalDevicePresentWaitFeaturesKHR, DeviceCreateInfo>
10377   {
10378     enum
10379     {
10380       value = true
10381     };
10382   };
10383 
10384   //=== VK_NV_cooperative_matrix ===
10385   template <>
10386   struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesNV, PhysicalDeviceFeatures2>
10387   {
10388     enum
10389     {
10390       value = true
10391     };
10392   };
10393   template <>
10394   struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesNV, DeviceCreateInfo>
10395   {
10396     enum
10397     {
10398       value = true
10399     };
10400   };
10401   template <>
10402   struct StructExtends<PhysicalDeviceCooperativeMatrixPropertiesNV, PhysicalDeviceProperties2>
10403   {
10404     enum
10405     {
10406       value = true
10407     };
10408   };
10409 
10410   //=== VK_NV_coverage_reduction_mode ===
10411   template <>
10412   struct StructExtends<PhysicalDeviceCoverageReductionModeFeaturesNV, PhysicalDeviceFeatures2>
10413   {
10414     enum
10415     {
10416       value = true
10417     };
10418   };
10419   template <>
10420   struct StructExtends<PhysicalDeviceCoverageReductionModeFeaturesNV, DeviceCreateInfo>
10421   {
10422     enum
10423     {
10424       value = true
10425     };
10426   };
10427   template <>
10428   struct StructExtends<PipelineCoverageReductionStateCreateInfoNV, PipelineMultisampleStateCreateInfo>
10429   {
10430     enum
10431     {
10432       value = true
10433     };
10434   };
10435 
10436   //=== VK_EXT_fragment_shader_interlock ===
10437   template <>
10438   struct StructExtends<PhysicalDeviceFragmentShaderInterlockFeaturesEXT, PhysicalDeviceFeatures2>
10439   {
10440     enum
10441     {
10442       value = true
10443     };
10444   };
10445   template <>
10446   struct StructExtends<PhysicalDeviceFragmentShaderInterlockFeaturesEXT, DeviceCreateInfo>
10447   {
10448     enum
10449     {
10450       value = true
10451     };
10452   };
10453 
10454   //=== VK_EXT_ycbcr_image_arrays ===
10455   template <>
10456   struct StructExtends<PhysicalDeviceYcbcrImageArraysFeaturesEXT, PhysicalDeviceFeatures2>
10457   {
10458     enum
10459     {
10460       value = true
10461     };
10462   };
10463   template <>
10464   struct StructExtends<PhysicalDeviceYcbcrImageArraysFeaturesEXT, DeviceCreateInfo>
10465   {
10466     enum
10467     {
10468       value = true
10469     };
10470   };
10471 
10472   //=== VK_EXT_provoking_vertex ===
10473   template <>
10474   struct StructExtends<PhysicalDeviceProvokingVertexFeaturesEXT, PhysicalDeviceFeatures2>
10475   {
10476     enum
10477     {
10478       value = true
10479     };
10480   };
10481   template <>
10482   struct StructExtends<PhysicalDeviceProvokingVertexFeaturesEXT, DeviceCreateInfo>
10483   {
10484     enum
10485     {
10486       value = true
10487     };
10488   };
10489   template <>
10490   struct StructExtends<PhysicalDeviceProvokingVertexPropertiesEXT, PhysicalDeviceProperties2>
10491   {
10492     enum
10493     {
10494       value = true
10495     };
10496   };
10497   template <>
10498   struct StructExtends<PipelineRasterizationProvokingVertexStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
10499   {
10500     enum
10501     {
10502       value = true
10503     };
10504   };
10505 
10506 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
10507   //=== VK_EXT_full_screen_exclusive ===
10508   template <>
10509   struct StructExtends<SurfaceFullScreenExclusiveInfoEXT, PhysicalDeviceSurfaceInfo2KHR>
10510   {
10511     enum
10512     {
10513       value = true
10514     };
10515   };
10516   template <>
10517   struct StructExtends<SurfaceFullScreenExclusiveInfoEXT, SwapchainCreateInfoKHR>
10518   {
10519     enum
10520     {
10521       value = true
10522     };
10523   };
10524   template <>
10525   struct StructExtends<SurfaceCapabilitiesFullScreenExclusiveEXT, SurfaceCapabilities2KHR>
10526   {
10527     enum
10528     {
10529       value = true
10530     };
10531   };
10532   template <>
10533   struct StructExtends<SurfaceFullScreenExclusiveWin32InfoEXT, PhysicalDeviceSurfaceInfo2KHR>
10534   {
10535     enum
10536     {
10537       value = true
10538     };
10539   };
10540   template <>
10541   struct StructExtends<SurfaceFullScreenExclusiveWin32InfoEXT, SwapchainCreateInfoKHR>
10542   {
10543     enum
10544     {
10545       value = true
10546     };
10547   };
10548 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
10549 
10550   //=== VK_EXT_line_rasterization ===
10551   template <>
10552   struct StructExtends<PhysicalDeviceLineRasterizationFeaturesEXT, PhysicalDeviceFeatures2>
10553   {
10554     enum
10555     {
10556       value = true
10557     };
10558   };
10559   template <>
10560   struct StructExtends<PhysicalDeviceLineRasterizationFeaturesEXT, DeviceCreateInfo>
10561   {
10562     enum
10563     {
10564       value = true
10565     };
10566   };
10567   template <>
10568   struct StructExtends<PhysicalDeviceLineRasterizationPropertiesEXT, PhysicalDeviceProperties2>
10569   {
10570     enum
10571     {
10572       value = true
10573     };
10574   };
10575   template <>
10576   struct StructExtends<PipelineRasterizationLineStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
10577   {
10578     enum
10579     {
10580       value = true
10581     };
10582   };
10583 
10584   //=== VK_EXT_shader_atomic_float ===
10585   template <>
10586   struct StructExtends<PhysicalDeviceShaderAtomicFloatFeaturesEXT, PhysicalDeviceFeatures2>
10587   {
10588     enum
10589     {
10590       value = true
10591     };
10592   };
10593   template <>
10594   struct StructExtends<PhysicalDeviceShaderAtomicFloatFeaturesEXT, DeviceCreateInfo>
10595   {
10596     enum
10597     {
10598       value = true
10599     };
10600   };
10601 
10602   //=== VK_EXT_index_type_uint8 ===
10603   template <>
10604   struct StructExtends<PhysicalDeviceIndexTypeUint8FeaturesEXT, PhysicalDeviceFeatures2>
10605   {
10606     enum
10607     {
10608       value = true
10609     };
10610   };
10611   template <>
10612   struct StructExtends<PhysicalDeviceIndexTypeUint8FeaturesEXT, DeviceCreateInfo>
10613   {
10614     enum
10615     {
10616       value = true
10617     };
10618   };
10619 
10620   //=== VK_EXT_extended_dynamic_state ===
10621   template <>
10622   struct StructExtends<PhysicalDeviceExtendedDynamicStateFeaturesEXT, PhysicalDeviceFeatures2>
10623   {
10624     enum
10625     {
10626       value = true
10627     };
10628   };
10629   template <>
10630   struct StructExtends<PhysicalDeviceExtendedDynamicStateFeaturesEXT, DeviceCreateInfo>
10631   {
10632     enum
10633     {
10634       value = true
10635     };
10636   };
10637 
10638   //=== VK_KHR_pipeline_executable_properties ===
10639   template <>
10640   struct StructExtends<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, PhysicalDeviceFeatures2>
10641   {
10642     enum
10643     {
10644       value = true
10645     };
10646   };
10647   template <>
10648   struct StructExtends<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, DeviceCreateInfo>
10649   {
10650     enum
10651     {
10652       value = true
10653     };
10654   };
10655 
10656   //=== VK_EXT_host_image_copy ===
10657   template <>
10658   struct StructExtends<PhysicalDeviceHostImageCopyFeaturesEXT, PhysicalDeviceFeatures2>
10659   {
10660     enum
10661     {
10662       value = true
10663     };
10664   };
10665   template <>
10666   struct StructExtends<PhysicalDeviceHostImageCopyFeaturesEXT, DeviceCreateInfo>
10667   {
10668     enum
10669     {
10670       value = true
10671     };
10672   };
10673   template <>
10674   struct StructExtends<PhysicalDeviceHostImageCopyPropertiesEXT, PhysicalDeviceProperties2>
10675   {
10676     enum
10677     {
10678       value = true
10679     };
10680   };
10681   template <>
10682   struct StructExtends<SubresourceHostMemcpySizeEXT, SubresourceLayout2EXT>
10683   {
10684     enum
10685     {
10686       value = true
10687     };
10688   };
10689   template <>
10690   struct StructExtends<HostImageCopyDevicePerformanceQueryEXT, ImageFormatProperties2>
10691   {
10692     enum
10693     {
10694       value = true
10695     };
10696   };
10697 
10698   //=== VK_EXT_shader_atomic_float2 ===
10699   template <>
10700   struct StructExtends<PhysicalDeviceShaderAtomicFloat2FeaturesEXT, PhysicalDeviceFeatures2>
10701   {
10702     enum
10703     {
10704       value = true
10705     };
10706   };
10707   template <>
10708   struct StructExtends<PhysicalDeviceShaderAtomicFloat2FeaturesEXT, DeviceCreateInfo>
10709   {
10710     enum
10711     {
10712       value = true
10713     };
10714   };
10715 
10716   //=== VK_EXT_surface_maintenance1 ===
10717   template <>
10718   struct StructExtends<SurfacePresentModeEXT, PhysicalDeviceSurfaceInfo2KHR>
10719   {
10720     enum
10721     {
10722       value = true
10723     };
10724   };
10725   template <>
10726   struct StructExtends<SurfacePresentScalingCapabilitiesEXT, SurfaceCapabilities2KHR>
10727   {
10728     enum
10729     {
10730       value = true
10731     };
10732   };
10733   template <>
10734   struct StructExtends<SurfacePresentModeCompatibilityEXT, SurfaceCapabilities2KHR>
10735   {
10736     enum
10737     {
10738       value = true
10739     };
10740   };
10741 
10742   //=== VK_EXT_swapchain_maintenance1 ===
10743   template <>
10744   struct StructExtends<PhysicalDeviceSwapchainMaintenance1FeaturesEXT, PhysicalDeviceFeatures2>
10745   {
10746     enum
10747     {
10748       value = true
10749     };
10750   };
10751   template <>
10752   struct StructExtends<PhysicalDeviceSwapchainMaintenance1FeaturesEXT, DeviceCreateInfo>
10753   {
10754     enum
10755     {
10756       value = true
10757     };
10758   };
10759   template <>
10760   struct StructExtends<SwapchainPresentFenceInfoEXT, PresentInfoKHR>
10761   {
10762     enum
10763     {
10764       value = true
10765     };
10766   };
10767   template <>
10768   struct StructExtends<SwapchainPresentModesCreateInfoEXT, SwapchainCreateInfoKHR>
10769   {
10770     enum
10771     {
10772       value = true
10773     };
10774   };
10775   template <>
10776   struct StructExtends<SwapchainPresentModeInfoEXT, PresentInfoKHR>
10777   {
10778     enum
10779     {
10780       value = true
10781     };
10782   };
10783   template <>
10784   struct StructExtends<SwapchainPresentScalingCreateInfoEXT, SwapchainCreateInfoKHR>
10785   {
10786     enum
10787     {
10788       value = true
10789     };
10790   };
10791 
10792   //=== VK_NV_device_generated_commands ===
10793   template <>
10794   struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsPropertiesNV, PhysicalDeviceProperties2>
10795   {
10796     enum
10797     {
10798       value = true
10799     };
10800   };
10801   template <>
10802   struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV, PhysicalDeviceFeatures2>
10803   {
10804     enum
10805     {
10806       value = true
10807     };
10808   };
10809   template <>
10810   struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV, DeviceCreateInfo>
10811   {
10812     enum
10813     {
10814       value = true
10815     };
10816   };
10817   template <>
10818   struct StructExtends<GraphicsPipelineShaderGroupsCreateInfoNV, GraphicsPipelineCreateInfo>
10819   {
10820     enum
10821     {
10822       value = true
10823     };
10824   };
10825 
10826   //=== VK_NV_inherited_viewport_scissor ===
10827   template <>
10828   struct StructExtends<PhysicalDeviceInheritedViewportScissorFeaturesNV, PhysicalDeviceFeatures2>
10829   {
10830     enum
10831     {
10832       value = true
10833     };
10834   };
10835   template <>
10836   struct StructExtends<PhysicalDeviceInheritedViewportScissorFeaturesNV, DeviceCreateInfo>
10837   {
10838     enum
10839     {
10840       value = true
10841     };
10842   };
10843   template <>
10844   struct StructExtends<CommandBufferInheritanceViewportScissorInfoNV, CommandBufferInheritanceInfo>
10845   {
10846     enum
10847     {
10848       value = true
10849     };
10850   };
10851 
10852   //=== VK_EXT_texel_buffer_alignment ===
10853   template <>
10854   struct StructExtends<PhysicalDeviceTexelBufferAlignmentFeaturesEXT, PhysicalDeviceFeatures2>
10855   {
10856     enum
10857     {
10858       value = true
10859     };
10860   };
10861   template <>
10862   struct StructExtends<PhysicalDeviceTexelBufferAlignmentFeaturesEXT, DeviceCreateInfo>
10863   {
10864     enum
10865     {
10866       value = true
10867     };
10868   };
10869 
10870   //=== VK_QCOM_render_pass_transform ===
10871   template <>
10872   struct StructExtends<RenderPassTransformBeginInfoQCOM, RenderPassBeginInfo>
10873   {
10874     enum
10875     {
10876       value = true
10877     };
10878   };
10879   template <>
10880   struct StructExtends<CommandBufferInheritanceRenderPassTransformInfoQCOM, CommandBufferInheritanceInfo>
10881   {
10882     enum
10883     {
10884       value = true
10885     };
10886   };
10887 
10888   //=== VK_EXT_depth_bias_control ===
10889   template <>
10890   struct StructExtends<PhysicalDeviceDepthBiasControlFeaturesEXT, PhysicalDeviceFeatures2>
10891   {
10892     enum
10893     {
10894       value = true
10895     };
10896   };
10897   template <>
10898   struct StructExtends<PhysicalDeviceDepthBiasControlFeaturesEXT, DeviceCreateInfo>
10899   {
10900     enum
10901     {
10902       value = true
10903     };
10904   };
10905   template <>
10906   struct StructExtends<DepthBiasRepresentationInfoEXT, DepthBiasInfoEXT>
10907   {
10908     enum
10909     {
10910       value = true
10911     };
10912   };
10913   template <>
10914   struct StructExtends<DepthBiasRepresentationInfoEXT, PipelineRasterizationStateCreateInfo>
10915   {
10916     enum
10917     {
10918       value = true
10919     };
10920   };
10921 
10922   //=== VK_EXT_device_memory_report ===
10923   template <>
10924   struct StructExtends<PhysicalDeviceDeviceMemoryReportFeaturesEXT, PhysicalDeviceFeatures2>
10925   {
10926     enum
10927     {
10928       value = true
10929     };
10930   };
10931   template <>
10932   struct StructExtends<PhysicalDeviceDeviceMemoryReportFeaturesEXT, DeviceCreateInfo>
10933   {
10934     enum
10935     {
10936       value = true
10937     };
10938   };
10939   template <>
10940   struct StructExtends<DeviceDeviceMemoryReportCreateInfoEXT, DeviceCreateInfo>
10941   {
10942     enum
10943     {
10944       value = true
10945     };
10946   };
10947 
10948   //=== VK_EXT_robustness2 ===
10949   template <>
10950   struct StructExtends<PhysicalDeviceRobustness2FeaturesEXT, PhysicalDeviceFeatures2>
10951   {
10952     enum
10953     {
10954       value = true
10955     };
10956   };
10957   template <>
10958   struct StructExtends<PhysicalDeviceRobustness2FeaturesEXT, DeviceCreateInfo>
10959   {
10960     enum
10961     {
10962       value = true
10963     };
10964   };
10965   template <>
10966   struct StructExtends<PhysicalDeviceRobustness2PropertiesEXT, PhysicalDeviceProperties2>
10967   {
10968     enum
10969     {
10970       value = true
10971     };
10972   };
10973 
10974   //=== VK_EXT_custom_border_color ===
10975   template <>
10976   struct StructExtends<SamplerCustomBorderColorCreateInfoEXT, SamplerCreateInfo>
10977   {
10978     enum
10979     {
10980       value = true
10981     };
10982   };
10983   template <>
10984   struct StructExtends<PhysicalDeviceCustomBorderColorPropertiesEXT, PhysicalDeviceProperties2>
10985   {
10986     enum
10987     {
10988       value = true
10989     };
10990   };
10991   template <>
10992   struct StructExtends<PhysicalDeviceCustomBorderColorFeaturesEXT, PhysicalDeviceFeatures2>
10993   {
10994     enum
10995     {
10996       value = true
10997     };
10998   };
10999   template <>
11000   struct StructExtends<PhysicalDeviceCustomBorderColorFeaturesEXT, DeviceCreateInfo>
11001   {
11002     enum
11003     {
11004       value = true
11005     };
11006   };
11007 
11008   //=== VK_KHR_pipeline_library ===
11009   template <>
11010   struct StructExtends<PipelineLibraryCreateInfoKHR, GraphicsPipelineCreateInfo>
11011   {
11012     enum
11013     {
11014       value = true
11015     };
11016   };
11017 
11018   //=== VK_NV_present_barrier ===
11019   template <>
11020   struct StructExtends<PhysicalDevicePresentBarrierFeaturesNV, PhysicalDeviceFeatures2>
11021   {
11022     enum
11023     {
11024       value = true
11025     };
11026   };
11027   template <>
11028   struct StructExtends<PhysicalDevicePresentBarrierFeaturesNV, DeviceCreateInfo>
11029   {
11030     enum
11031     {
11032       value = true
11033     };
11034   };
11035   template <>
11036   struct StructExtends<SurfaceCapabilitiesPresentBarrierNV, SurfaceCapabilities2KHR>
11037   {
11038     enum
11039     {
11040       value = true
11041     };
11042   };
11043   template <>
11044   struct StructExtends<SwapchainPresentBarrierCreateInfoNV, SwapchainCreateInfoKHR>
11045   {
11046     enum
11047     {
11048       value = true
11049     };
11050   };
11051 
11052   //=== VK_KHR_present_id ===
11053   template <>
11054   struct StructExtends<PresentIdKHR, PresentInfoKHR>
11055   {
11056     enum
11057     {
11058       value = true
11059     };
11060   };
11061   template <>
11062   struct StructExtends<PhysicalDevicePresentIdFeaturesKHR, PhysicalDeviceFeatures2>
11063   {
11064     enum
11065     {
11066       value = true
11067     };
11068   };
11069   template <>
11070   struct StructExtends<PhysicalDevicePresentIdFeaturesKHR, DeviceCreateInfo>
11071   {
11072     enum
11073     {
11074       value = true
11075     };
11076   };
11077 
11078 #  if defined( VK_ENABLE_BETA_EXTENSIONS )
11079   //=== VK_KHR_video_encode_queue ===
11080   template <>
11081   struct StructExtends<VideoEncodeCapabilitiesKHR, VideoCapabilitiesKHR>
11082   {
11083     enum
11084     {
11085       value = true
11086     };
11087   };
11088   template <>
11089   struct StructExtends<QueryPoolVideoEncodeFeedbackCreateInfoKHR, QueryPoolCreateInfo>
11090   {
11091     enum
11092     {
11093       value = true
11094     };
11095   };
11096   template <>
11097   struct StructExtends<VideoEncodeUsageInfoKHR, VideoProfileInfoKHR>
11098   {
11099     enum
11100     {
11101       value = true
11102     };
11103   };
11104   template <>
11105   struct StructExtends<VideoEncodeUsageInfoKHR, QueryPoolCreateInfo>
11106   {
11107     enum
11108     {
11109       value = true
11110     };
11111   };
11112   template <>
11113   struct StructExtends<VideoEncodeRateControlInfoKHR, VideoCodingControlInfoKHR>
11114   {
11115     enum
11116     {
11117       value = true
11118     };
11119   };
11120   template <>
11121   struct StructExtends<VideoEncodeRateControlInfoKHR, VideoBeginCodingInfoKHR>
11122   {
11123     enum
11124     {
11125       value = true
11126     };
11127   };
11128   template <>
11129   struct StructExtends<VideoEncodeQualityLevelInfoKHR, VideoCodingControlInfoKHR>
11130   {
11131     enum
11132     {
11133       value = true
11134     };
11135   };
11136   template <>
11137   struct StructExtends<VideoEncodeQualityLevelInfoKHR, VideoSessionParametersCreateInfoKHR>
11138   {
11139     enum
11140     {
11141       value = true
11142     };
11143   };
11144 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
11145 
11146   //=== VK_NV_device_diagnostics_config ===
11147   template <>
11148   struct StructExtends<PhysicalDeviceDiagnosticsConfigFeaturesNV, PhysicalDeviceFeatures2>
11149   {
11150     enum
11151     {
11152       value = true
11153     };
11154   };
11155   template <>
11156   struct StructExtends<PhysicalDeviceDiagnosticsConfigFeaturesNV, DeviceCreateInfo>
11157   {
11158     enum
11159     {
11160       value = true
11161     };
11162   };
11163   template <>
11164   struct StructExtends<DeviceDiagnosticsConfigCreateInfoNV, DeviceCreateInfo>
11165   {
11166     enum
11167     {
11168       value = true
11169     };
11170   };
11171 
11172   //=== VK_NV_low_latency ===
11173   template <>
11174   struct StructExtends<QueryLowLatencySupportNV, SemaphoreCreateInfo>
11175   {
11176     enum
11177     {
11178       value = true
11179     };
11180   };
11181 
11182 #  if defined( VK_USE_PLATFORM_METAL_EXT )
11183   //=== VK_EXT_metal_objects ===
11184   template <>
11185   struct StructExtends<ExportMetalObjectCreateInfoEXT, InstanceCreateInfo>
11186   {
11187     enum
11188     {
11189       value = true
11190     };
11191   };
11192   template <>
11193   struct StructExtends<ExportMetalObjectCreateInfoEXT, MemoryAllocateInfo>
11194   {
11195     enum
11196     {
11197       value = true
11198     };
11199   };
11200   template <>
11201   struct StructExtends<ExportMetalObjectCreateInfoEXT, ImageCreateInfo>
11202   {
11203     enum
11204     {
11205       value = true
11206     };
11207   };
11208   template <>
11209   struct StructExtends<ExportMetalObjectCreateInfoEXT, ImageViewCreateInfo>
11210   {
11211     enum
11212     {
11213       value = true
11214     };
11215   };
11216   template <>
11217   struct StructExtends<ExportMetalObjectCreateInfoEXT, BufferViewCreateInfo>
11218   {
11219     enum
11220     {
11221       value = true
11222     };
11223   };
11224   template <>
11225   struct StructExtends<ExportMetalObjectCreateInfoEXT, SemaphoreCreateInfo>
11226   {
11227     enum
11228     {
11229       value = true
11230     };
11231   };
11232   template <>
11233   struct StructExtends<ExportMetalObjectCreateInfoEXT, EventCreateInfo>
11234   {
11235     enum
11236     {
11237       value = true
11238     };
11239   };
11240   template <>
11241   struct StructExtends<ExportMetalDeviceInfoEXT, ExportMetalObjectsInfoEXT>
11242   {
11243     enum
11244     {
11245       value = true
11246     };
11247   };
11248   template <>
11249   struct StructExtends<ExportMetalCommandQueueInfoEXT, ExportMetalObjectsInfoEXT>
11250   {
11251     enum
11252     {
11253       value = true
11254     };
11255   };
11256   template <>
11257   struct StructExtends<ExportMetalBufferInfoEXT, ExportMetalObjectsInfoEXT>
11258   {
11259     enum
11260     {
11261       value = true
11262     };
11263   };
11264   template <>
11265   struct StructExtends<ImportMetalBufferInfoEXT, MemoryAllocateInfo>
11266   {
11267     enum
11268     {
11269       value = true
11270     };
11271   };
11272   template <>
11273   struct StructExtends<ExportMetalTextureInfoEXT, ExportMetalObjectsInfoEXT>
11274   {
11275     enum
11276     {
11277       value = true
11278     };
11279   };
11280   template <>
11281   struct StructExtends<ImportMetalTextureInfoEXT, ImageCreateInfo>
11282   {
11283     enum
11284     {
11285       value = true
11286     };
11287   };
11288   template <>
11289   struct StructExtends<ExportMetalIOSurfaceInfoEXT, ExportMetalObjectsInfoEXT>
11290   {
11291     enum
11292     {
11293       value = true
11294     };
11295   };
11296   template <>
11297   struct StructExtends<ImportMetalIOSurfaceInfoEXT, ImageCreateInfo>
11298   {
11299     enum
11300     {
11301       value = true
11302     };
11303   };
11304   template <>
11305   struct StructExtends<ExportMetalSharedEventInfoEXT, ExportMetalObjectsInfoEXT>
11306   {
11307     enum
11308     {
11309       value = true
11310     };
11311   };
11312   template <>
11313   struct StructExtends<ImportMetalSharedEventInfoEXT, SemaphoreCreateInfo>
11314   {
11315     enum
11316     {
11317       value = true
11318     };
11319   };
11320   template <>
11321   struct StructExtends<ImportMetalSharedEventInfoEXT, EventCreateInfo>
11322   {
11323     enum
11324     {
11325       value = true
11326     };
11327   };
11328 #  endif /*VK_USE_PLATFORM_METAL_EXT*/
11329 
11330   //=== VK_KHR_synchronization2 ===
11331   template <>
11332   struct StructExtends<QueueFamilyCheckpointProperties2NV, QueueFamilyProperties2>
11333   {
11334     enum
11335     {
11336       value = true
11337     };
11338   };
11339 
11340   //=== VK_EXT_descriptor_buffer ===
11341   template <>
11342   struct StructExtends<PhysicalDeviceDescriptorBufferPropertiesEXT, PhysicalDeviceProperties2>
11343   {
11344     enum
11345     {
11346       value = true
11347     };
11348   };
11349   template <>
11350   struct StructExtends<PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, PhysicalDeviceProperties2>
11351   {
11352     enum
11353     {
11354       value = true
11355     };
11356   };
11357   template <>
11358   struct StructExtends<PhysicalDeviceDescriptorBufferFeaturesEXT, PhysicalDeviceFeatures2>
11359   {
11360     enum
11361     {
11362       value = true
11363     };
11364   };
11365   template <>
11366   struct StructExtends<PhysicalDeviceDescriptorBufferFeaturesEXT, DeviceCreateInfo>
11367   {
11368     enum
11369     {
11370       value = true
11371     };
11372   };
11373   template <>
11374   struct StructExtends<DescriptorBufferBindingPushDescriptorBufferHandleEXT, DescriptorBufferBindingInfoEXT>
11375   {
11376     enum
11377     {
11378       value = true
11379     };
11380   };
11381   template <>
11382   struct StructExtends<OpaqueCaptureDescriptorDataCreateInfoEXT, BufferCreateInfo>
11383   {
11384     enum
11385     {
11386       value = true
11387     };
11388   };
11389   template <>
11390   struct StructExtends<OpaqueCaptureDescriptorDataCreateInfoEXT, ImageCreateInfo>
11391   {
11392     enum
11393     {
11394       value = true
11395     };
11396   };
11397   template <>
11398   struct StructExtends<OpaqueCaptureDescriptorDataCreateInfoEXT, ImageViewCreateInfo>
11399   {
11400     enum
11401     {
11402       value = true
11403     };
11404   };
11405   template <>
11406   struct StructExtends<OpaqueCaptureDescriptorDataCreateInfoEXT, SamplerCreateInfo>
11407   {
11408     enum
11409     {
11410       value = true
11411     };
11412   };
11413   template <>
11414   struct StructExtends<OpaqueCaptureDescriptorDataCreateInfoEXT, AccelerationStructureCreateInfoKHR>
11415   {
11416     enum
11417     {
11418       value = true
11419     };
11420   };
11421   template <>
11422   struct StructExtends<OpaqueCaptureDescriptorDataCreateInfoEXT, AccelerationStructureCreateInfoNV>
11423   {
11424     enum
11425     {
11426       value = true
11427     };
11428   };
11429 
11430   //=== VK_EXT_graphics_pipeline_library ===
11431   template <>
11432   struct StructExtends<PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, PhysicalDeviceFeatures2>
11433   {
11434     enum
11435     {
11436       value = true
11437     };
11438   };
11439   template <>
11440   struct StructExtends<PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, DeviceCreateInfo>
11441   {
11442     enum
11443     {
11444       value = true
11445     };
11446   };
11447   template <>
11448   struct StructExtends<PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, PhysicalDeviceProperties2>
11449   {
11450     enum
11451     {
11452       value = true
11453     };
11454   };
11455   template <>
11456   struct StructExtends<GraphicsPipelineLibraryCreateInfoEXT, GraphicsPipelineCreateInfo>
11457   {
11458     enum
11459     {
11460       value = true
11461     };
11462   };
11463 
11464   //=== VK_AMD_shader_early_and_late_fragment_tests ===
11465   template <>
11466   struct StructExtends<PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, PhysicalDeviceFeatures2>
11467   {
11468     enum
11469     {
11470       value = true
11471     };
11472   };
11473   template <>
11474   struct StructExtends<PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, DeviceCreateInfo>
11475   {
11476     enum
11477     {
11478       value = true
11479     };
11480   };
11481 
11482   //=== VK_KHR_fragment_shader_barycentric ===
11483   template <>
11484   struct StructExtends<PhysicalDeviceFragmentShaderBarycentricFeaturesKHR, PhysicalDeviceFeatures2>
11485   {
11486     enum
11487     {
11488       value = true
11489     };
11490   };
11491   template <>
11492   struct StructExtends<PhysicalDeviceFragmentShaderBarycentricFeaturesKHR, DeviceCreateInfo>
11493   {
11494     enum
11495     {
11496       value = true
11497     };
11498   };
11499   template <>
11500   struct StructExtends<PhysicalDeviceFragmentShaderBarycentricPropertiesKHR, PhysicalDeviceProperties2>
11501   {
11502     enum
11503     {
11504       value = true
11505     };
11506   };
11507 
11508   //=== VK_KHR_shader_subgroup_uniform_control_flow ===
11509   template <>
11510   struct StructExtends<PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, PhysicalDeviceFeatures2>
11511   {
11512     enum
11513     {
11514       value = true
11515     };
11516   };
11517   template <>
11518   struct StructExtends<PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, DeviceCreateInfo>
11519   {
11520     enum
11521     {
11522       value = true
11523     };
11524   };
11525 
11526   //=== VK_NV_fragment_shading_rate_enums ===
11527   template <>
11528   struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsFeaturesNV, PhysicalDeviceFeatures2>
11529   {
11530     enum
11531     {
11532       value = true
11533     };
11534   };
11535   template <>
11536   struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsFeaturesNV, DeviceCreateInfo>
11537   {
11538     enum
11539     {
11540       value = true
11541     };
11542   };
11543   template <>
11544   struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsPropertiesNV, PhysicalDeviceProperties2>
11545   {
11546     enum
11547     {
11548       value = true
11549     };
11550   };
11551   template <>
11552   struct StructExtends<PipelineFragmentShadingRateEnumStateCreateInfoNV, GraphicsPipelineCreateInfo>
11553   {
11554     enum
11555     {
11556       value = true
11557     };
11558   };
11559 
11560   //=== VK_NV_ray_tracing_motion_blur ===
11561   template <>
11562   struct StructExtends<AccelerationStructureGeometryMotionTrianglesDataNV, AccelerationStructureGeometryTrianglesDataKHR>
11563   {
11564     enum
11565     {
11566       value = true
11567     };
11568   };
11569   template <>
11570   struct StructExtends<AccelerationStructureMotionInfoNV, AccelerationStructureCreateInfoKHR>
11571   {
11572     enum
11573     {
11574       value = true
11575     };
11576   };
11577   template <>
11578   struct StructExtends<PhysicalDeviceRayTracingMotionBlurFeaturesNV, PhysicalDeviceFeatures2>
11579   {
11580     enum
11581     {
11582       value = true
11583     };
11584   };
11585   template <>
11586   struct StructExtends<PhysicalDeviceRayTracingMotionBlurFeaturesNV, DeviceCreateInfo>
11587   {
11588     enum
11589     {
11590       value = true
11591     };
11592   };
11593 
11594   //=== VK_EXT_mesh_shader ===
11595   template <>
11596   struct StructExtends<PhysicalDeviceMeshShaderFeaturesEXT, PhysicalDeviceFeatures2>
11597   {
11598     enum
11599     {
11600       value = true
11601     };
11602   };
11603   template <>
11604   struct StructExtends<PhysicalDeviceMeshShaderFeaturesEXT, DeviceCreateInfo>
11605   {
11606     enum
11607     {
11608       value = true
11609     };
11610   };
11611   template <>
11612   struct StructExtends<PhysicalDeviceMeshShaderPropertiesEXT, PhysicalDeviceProperties2>
11613   {
11614     enum
11615     {
11616       value = true
11617     };
11618   };
11619 
11620   //=== VK_EXT_ycbcr_2plane_444_formats ===
11621   template <>
11622   struct StructExtends<PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, PhysicalDeviceFeatures2>
11623   {
11624     enum
11625     {
11626       value = true
11627     };
11628   };
11629   template <>
11630   struct StructExtends<PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, DeviceCreateInfo>
11631   {
11632     enum
11633     {
11634       value = true
11635     };
11636   };
11637 
11638   //=== VK_EXT_fragment_density_map2 ===
11639   template <>
11640   struct StructExtends<PhysicalDeviceFragmentDensityMap2FeaturesEXT, PhysicalDeviceFeatures2>
11641   {
11642     enum
11643     {
11644       value = true
11645     };
11646   };
11647   template <>
11648   struct StructExtends<PhysicalDeviceFragmentDensityMap2FeaturesEXT, DeviceCreateInfo>
11649   {
11650     enum
11651     {
11652       value = true
11653     };
11654   };
11655   template <>
11656   struct StructExtends<PhysicalDeviceFragmentDensityMap2PropertiesEXT, PhysicalDeviceProperties2>
11657   {
11658     enum
11659     {
11660       value = true
11661     };
11662   };
11663 
11664   //=== VK_QCOM_rotated_copy_commands ===
11665   template <>
11666   struct StructExtends<CopyCommandTransformInfoQCOM, BufferImageCopy2>
11667   {
11668     enum
11669     {
11670       value = true
11671     };
11672   };
11673   template <>
11674   struct StructExtends<CopyCommandTransformInfoQCOM, ImageBlit2>
11675   {
11676     enum
11677     {
11678       value = true
11679     };
11680   };
11681 
11682   //=== VK_KHR_workgroup_memory_explicit_layout ===
11683   template <>
11684   struct StructExtends<PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, PhysicalDeviceFeatures2>
11685   {
11686     enum
11687     {
11688       value = true
11689     };
11690   };
11691   template <>
11692   struct StructExtends<PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, DeviceCreateInfo>
11693   {
11694     enum
11695     {
11696       value = true
11697     };
11698   };
11699 
11700   //=== VK_EXT_image_compression_control ===
11701   template <>
11702   struct StructExtends<PhysicalDeviceImageCompressionControlFeaturesEXT, PhysicalDeviceFeatures2>
11703   {
11704     enum
11705     {
11706       value = true
11707     };
11708   };
11709   template <>
11710   struct StructExtends<PhysicalDeviceImageCompressionControlFeaturesEXT, DeviceCreateInfo>
11711   {
11712     enum
11713     {
11714       value = true
11715     };
11716   };
11717   template <>
11718   struct StructExtends<ImageCompressionControlEXT, ImageCreateInfo>
11719   {
11720     enum
11721     {
11722       value = true
11723     };
11724   };
11725   template <>
11726   struct StructExtends<ImageCompressionControlEXT, SwapchainCreateInfoKHR>
11727   {
11728     enum
11729     {
11730       value = true
11731     };
11732   };
11733   template <>
11734   struct StructExtends<ImageCompressionControlEXT, PhysicalDeviceImageFormatInfo2>
11735   {
11736     enum
11737     {
11738       value = true
11739     };
11740   };
11741   template <>
11742   struct StructExtends<ImageCompressionPropertiesEXT, ImageFormatProperties2>
11743   {
11744     enum
11745     {
11746       value = true
11747     };
11748   };
11749   template <>
11750   struct StructExtends<ImageCompressionPropertiesEXT, SurfaceFormat2KHR>
11751   {
11752     enum
11753     {
11754       value = true
11755     };
11756   };
11757   template <>
11758   struct StructExtends<ImageCompressionPropertiesEXT, SubresourceLayout2EXT>
11759   {
11760     enum
11761     {
11762       value = true
11763     };
11764   };
11765 
11766   //=== VK_EXT_attachment_feedback_loop_layout ===
11767   template <>
11768   struct StructExtends<PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, PhysicalDeviceFeatures2>
11769   {
11770     enum
11771     {
11772       value = true
11773     };
11774   };
11775   template <>
11776   struct StructExtends<PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, DeviceCreateInfo>
11777   {
11778     enum
11779     {
11780       value = true
11781     };
11782   };
11783 
11784   //=== VK_EXT_4444_formats ===
11785   template <>
11786   struct StructExtends<PhysicalDevice4444FormatsFeaturesEXT, PhysicalDeviceFeatures2>
11787   {
11788     enum
11789     {
11790       value = true
11791     };
11792   };
11793   template <>
11794   struct StructExtends<PhysicalDevice4444FormatsFeaturesEXT, DeviceCreateInfo>
11795   {
11796     enum
11797     {
11798       value = true
11799     };
11800   };
11801 
11802   //=== VK_EXT_device_fault ===
11803   template <>
11804   struct StructExtends<PhysicalDeviceFaultFeaturesEXT, PhysicalDeviceFeatures2>
11805   {
11806     enum
11807     {
11808       value = true
11809     };
11810   };
11811   template <>
11812   struct StructExtends<PhysicalDeviceFaultFeaturesEXT, DeviceCreateInfo>
11813   {
11814     enum
11815     {
11816       value = true
11817     };
11818   };
11819 
11820   //=== VK_EXT_rgba10x6_formats ===
11821   template <>
11822   struct StructExtends<PhysicalDeviceRGBA10X6FormatsFeaturesEXT, PhysicalDeviceFeatures2>
11823   {
11824     enum
11825     {
11826       value = true
11827     };
11828   };
11829   template <>
11830   struct StructExtends<PhysicalDeviceRGBA10X6FormatsFeaturesEXT, DeviceCreateInfo>
11831   {
11832     enum
11833     {
11834       value = true
11835     };
11836   };
11837 
11838   //=== VK_EXT_vertex_input_dynamic_state ===
11839   template <>
11840   struct StructExtends<PhysicalDeviceVertexInputDynamicStateFeaturesEXT, PhysicalDeviceFeatures2>
11841   {
11842     enum
11843     {
11844       value = true
11845     };
11846   };
11847   template <>
11848   struct StructExtends<PhysicalDeviceVertexInputDynamicStateFeaturesEXT, DeviceCreateInfo>
11849   {
11850     enum
11851     {
11852       value = true
11853     };
11854   };
11855 
11856   //=== VK_EXT_physical_device_drm ===
11857   template <>
11858   struct StructExtends<PhysicalDeviceDrmPropertiesEXT, PhysicalDeviceProperties2>
11859   {
11860     enum
11861     {
11862       value = true
11863     };
11864   };
11865 
11866   //=== VK_EXT_device_address_binding_report ===
11867   template <>
11868   struct StructExtends<PhysicalDeviceAddressBindingReportFeaturesEXT, PhysicalDeviceFeatures2>
11869   {
11870     enum
11871     {
11872       value = true
11873     };
11874   };
11875   template <>
11876   struct StructExtends<PhysicalDeviceAddressBindingReportFeaturesEXT, DeviceCreateInfo>
11877   {
11878     enum
11879     {
11880       value = true
11881     };
11882   };
11883   template <>
11884   struct StructExtends<DeviceAddressBindingCallbackDataEXT, DebugUtilsMessengerCallbackDataEXT>
11885   {
11886     enum
11887     {
11888       value = true
11889     };
11890   };
11891 
11892   //=== VK_EXT_depth_clip_control ===
11893   template <>
11894   struct StructExtends<PhysicalDeviceDepthClipControlFeaturesEXT, PhysicalDeviceFeatures2>
11895   {
11896     enum
11897     {
11898       value = true
11899     };
11900   };
11901   template <>
11902   struct StructExtends<PhysicalDeviceDepthClipControlFeaturesEXT, DeviceCreateInfo>
11903   {
11904     enum
11905     {
11906       value = true
11907     };
11908   };
11909   template <>
11910   struct StructExtends<PipelineViewportDepthClipControlCreateInfoEXT, PipelineViewportStateCreateInfo>
11911   {
11912     enum
11913     {
11914       value = true
11915     };
11916   };
11917 
11918   //=== VK_EXT_primitive_topology_list_restart ===
11919   template <>
11920   struct StructExtends<PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, PhysicalDeviceFeatures2>
11921   {
11922     enum
11923     {
11924       value = true
11925     };
11926   };
11927   template <>
11928   struct StructExtends<PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, DeviceCreateInfo>
11929   {
11930     enum
11931     {
11932       value = true
11933     };
11934   };
11935 
11936 #  if defined( VK_USE_PLATFORM_FUCHSIA )
11937   //=== VK_FUCHSIA_external_memory ===
11938   template <>
11939   struct StructExtends<ImportMemoryZirconHandleInfoFUCHSIA, MemoryAllocateInfo>
11940   {
11941     enum
11942     {
11943       value = true
11944     };
11945   };
11946 #  endif /*VK_USE_PLATFORM_FUCHSIA*/
11947 
11948 #  if defined( VK_USE_PLATFORM_FUCHSIA )
11949   //=== VK_FUCHSIA_buffer_collection ===
11950   template <>
11951   struct StructExtends<ImportMemoryBufferCollectionFUCHSIA, MemoryAllocateInfo>
11952   {
11953     enum
11954     {
11955       value = true
11956     };
11957   };
11958   template <>
11959   struct StructExtends<BufferCollectionImageCreateInfoFUCHSIA, ImageCreateInfo>
11960   {
11961     enum
11962     {
11963       value = true
11964     };
11965   };
11966   template <>
11967   struct StructExtends<BufferCollectionBufferCreateInfoFUCHSIA, BufferCreateInfo>
11968   {
11969     enum
11970     {
11971       value = true
11972     };
11973   };
11974 #  endif /*VK_USE_PLATFORM_FUCHSIA*/
11975 
11976   //=== VK_HUAWEI_subpass_shading ===
11977   template <>
11978   struct StructExtends<SubpassShadingPipelineCreateInfoHUAWEI, ComputePipelineCreateInfo>
11979   {
11980     enum
11981     {
11982       value = true
11983     };
11984   };
11985   template <>
11986   struct StructExtends<PhysicalDeviceSubpassShadingFeaturesHUAWEI, PhysicalDeviceFeatures2>
11987   {
11988     enum
11989     {
11990       value = true
11991     };
11992   };
11993   template <>
11994   struct StructExtends<PhysicalDeviceSubpassShadingFeaturesHUAWEI, DeviceCreateInfo>
11995   {
11996     enum
11997     {
11998       value = true
11999     };
12000   };
12001   template <>
12002   struct StructExtends<PhysicalDeviceSubpassShadingPropertiesHUAWEI, PhysicalDeviceProperties2>
12003   {
12004     enum
12005     {
12006       value = true
12007     };
12008   };
12009 
12010   //=== VK_HUAWEI_invocation_mask ===
12011   template <>
12012   struct StructExtends<PhysicalDeviceInvocationMaskFeaturesHUAWEI, PhysicalDeviceFeatures2>
12013   {
12014     enum
12015     {
12016       value = true
12017     };
12018   };
12019   template <>
12020   struct StructExtends<PhysicalDeviceInvocationMaskFeaturesHUAWEI, DeviceCreateInfo>
12021   {
12022     enum
12023     {
12024       value = true
12025     };
12026   };
12027 
12028   //=== VK_NV_external_memory_rdma ===
12029   template <>
12030   struct StructExtends<PhysicalDeviceExternalMemoryRDMAFeaturesNV, PhysicalDeviceFeatures2>
12031   {
12032     enum
12033     {
12034       value = true
12035     };
12036   };
12037   template <>
12038   struct StructExtends<PhysicalDeviceExternalMemoryRDMAFeaturesNV, DeviceCreateInfo>
12039   {
12040     enum
12041     {
12042       value = true
12043     };
12044   };
12045 
12046   //=== VK_EXT_pipeline_properties ===
12047   template <>
12048   struct StructExtends<PhysicalDevicePipelinePropertiesFeaturesEXT, PhysicalDeviceFeatures2>
12049   {
12050     enum
12051     {
12052       value = true
12053     };
12054   };
12055   template <>
12056   struct StructExtends<PhysicalDevicePipelinePropertiesFeaturesEXT, DeviceCreateInfo>
12057   {
12058     enum
12059     {
12060       value = true
12061     };
12062   };
12063 
12064   //=== VK_EXT_multisampled_render_to_single_sampled ===
12065   template <>
12066   struct StructExtends<PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, PhysicalDeviceFeatures2>
12067   {
12068     enum
12069     {
12070       value = true
12071     };
12072   };
12073   template <>
12074   struct StructExtends<PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, DeviceCreateInfo>
12075   {
12076     enum
12077     {
12078       value = true
12079     };
12080   };
12081   template <>
12082   struct StructExtends<SubpassResolvePerformanceQueryEXT, FormatProperties2>
12083   {
12084     enum
12085     {
12086       value = true
12087     };
12088   };
12089   template <>
12090   struct StructExtends<MultisampledRenderToSingleSampledInfoEXT, SubpassDescription2>
12091   {
12092     enum
12093     {
12094       value = true
12095     };
12096   };
12097   template <>
12098   struct StructExtends<MultisampledRenderToSingleSampledInfoEXT, RenderingInfo>
12099   {
12100     enum
12101     {
12102       value = true
12103     };
12104   };
12105 
12106   //=== VK_EXT_extended_dynamic_state2 ===
12107   template <>
12108   struct StructExtends<PhysicalDeviceExtendedDynamicState2FeaturesEXT, PhysicalDeviceFeatures2>
12109   {
12110     enum
12111     {
12112       value = true
12113     };
12114   };
12115   template <>
12116   struct StructExtends<PhysicalDeviceExtendedDynamicState2FeaturesEXT, DeviceCreateInfo>
12117   {
12118     enum
12119     {
12120       value = true
12121     };
12122   };
12123 
12124   //=== VK_EXT_color_write_enable ===
12125   template <>
12126   struct StructExtends<PhysicalDeviceColorWriteEnableFeaturesEXT, PhysicalDeviceFeatures2>
12127   {
12128     enum
12129     {
12130       value = true
12131     };
12132   };
12133   template <>
12134   struct StructExtends<PhysicalDeviceColorWriteEnableFeaturesEXT, DeviceCreateInfo>
12135   {
12136     enum
12137     {
12138       value = true
12139     };
12140   };
12141   template <>
12142   struct StructExtends<PipelineColorWriteCreateInfoEXT, PipelineColorBlendStateCreateInfo>
12143   {
12144     enum
12145     {
12146       value = true
12147     };
12148   };
12149 
12150   //=== VK_EXT_primitives_generated_query ===
12151   template <>
12152   struct StructExtends<PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, PhysicalDeviceFeatures2>
12153   {
12154     enum
12155     {
12156       value = true
12157     };
12158   };
12159   template <>
12160   struct StructExtends<PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, DeviceCreateInfo>
12161   {
12162     enum
12163     {
12164       value = true
12165     };
12166   };
12167 
12168   //=== VK_KHR_ray_tracing_maintenance1 ===
12169   template <>
12170   struct StructExtends<PhysicalDeviceRayTracingMaintenance1FeaturesKHR, PhysicalDeviceFeatures2>
12171   {
12172     enum
12173     {
12174       value = true
12175     };
12176   };
12177   template <>
12178   struct StructExtends<PhysicalDeviceRayTracingMaintenance1FeaturesKHR, DeviceCreateInfo>
12179   {
12180     enum
12181     {
12182       value = true
12183     };
12184   };
12185 
12186   //=== VK_EXT_image_view_min_lod ===
12187   template <>
12188   struct StructExtends<PhysicalDeviceImageViewMinLodFeaturesEXT, PhysicalDeviceFeatures2>
12189   {
12190     enum
12191     {
12192       value = true
12193     };
12194   };
12195   template <>
12196   struct StructExtends<PhysicalDeviceImageViewMinLodFeaturesEXT, DeviceCreateInfo>
12197   {
12198     enum
12199     {
12200       value = true
12201     };
12202   };
12203   template <>
12204   struct StructExtends<ImageViewMinLodCreateInfoEXT, ImageViewCreateInfo>
12205   {
12206     enum
12207     {
12208       value = true
12209     };
12210   };
12211 
12212   //=== VK_EXT_multi_draw ===
12213   template <>
12214   struct StructExtends<PhysicalDeviceMultiDrawFeaturesEXT, PhysicalDeviceFeatures2>
12215   {
12216     enum
12217     {
12218       value = true
12219     };
12220   };
12221   template <>
12222   struct StructExtends<PhysicalDeviceMultiDrawFeaturesEXT, DeviceCreateInfo>
12223   {
12224     enum
12225     {
12226       value = true
12227     };
12228   };
12229   template <>
12230   struct StructExtends<PhysicalDeviceMultiDrawPropertiesEXT, PhysicalDeviceProperties2>
12231   {
12232     enum
12233     {
12234       value = true
12235     };
12236   };
12237 
12238   //=== VK_EXT_image_2d_view_of_3d ===
12239   template <>
12240   struct StructExtends<PhysicalDeviceImage2DViewOf3DFeaturesEXT, PhysicalDeviceFeatures2>
12241   {
12242     enum
12243     {
12244       value = true
12245     };
12246   };
12247   template <>
12248   struct StructExtends<PhysicalDeviceImage2DViewOf3DFeaturesEXT, DeviceCreateInfo>
12249   {
12250     enum
12251     {
12252       value = true
12253     };
12254   };
12255 
12256   //=== VK_EXT_shader_tile_image ===
12257   template <>
12258   struct StructExtends<PhysicalDeviceShaderTileImageFeaturesEXT, PhysicalDeviceFeatures2>
12259   {
12260     enum
12261     {
12262       value = true
12263     };
12264   };
12265   template <>
12266   struct StructExtends<PhysicalDeviceShaderTileImageFeaturesEXT, DeviceCreateInfo>
12267   {
12268     enum
12269     {
12270       value = true
12271     };
12272   };
12273   template <>
12274   struct StructExtends<PhysicalDeviceShaderTileImagePropertiesEXT, PhysicalDeviceProperties2>
12275   {
12276     enum
12277     {
12278       value = true
12279     };
12280   };
12281 
12282   //=== VK_EXT_opacity_micromap ===
12283   template <>
12284   struct StructExtends<PhysicalDeviceOpacityMicromapFeaturesEXT, PhysicalDeviceFeatures2>
12285   {
12286     enum
12287     {
12288       value = true
12289     };
12290   };
12291   template <>
12292   struct StructExtends<PhysicalDeviceOpacityMicromapFeaturesEXT, DeviceCreateInfo>
12293   {
12294     enum
12295     {
12296       value = true
12297     };
12298   };
12299   template <>
12300   struct StructExtends<PhysicalDeviceOpacityMicromapPropertiesEXT, PhysicalDeviceProperties2>
12301   {
12302     enum
12303     {
12304       value = true
12305     };
12306   };
12307   template <>
12308   struct StructExtends<AccelerationStructureTrianglesOpacityMicromapEXT, AccelerationStructureGeometryTrianglesDataKHR>
12309   {
12310     enum
12311     {
12312       value = true
12313     };
12314   };
12315 
12316 #  if defined( VK_ENABLE_BETA_EXTENSIONS )
12317   //=== VK_NV_displacement_micromap ===
12318   template <>
12319   struct StructExtends<PhysicalDeviceDisplacementMicromapFeaturesNV, PhysicalDeviceFeatures2>
12320   {
12321     enum
12322     {
12323       value = true
12324     };
12325   };
12326   template <>
12327   struct StructExtends<PhysicalDeviceDisplacementMicromapFeaturesNV, DeviceCreateInfo>
12328   {
12329     enum
12330     {
12331       value = true
12332     };
12333   };
12334   template <>
12335   struct StructExtends<PhysicalDeviceDisplacementMicromapPropertiesNV, PhysicalDeviceProperties2>
12336   {
12337     enum
12338     {
12339       value = true
12340     };
12341   };
12342   template <>
12343   struct StructExtends<AccelerationStructureTrianglesDisplacementMicromapNV, AccelerationStructureGeometryTrianglesDataKHR>
12344   {
12345     enum
12346     {
12347       value = true
12348     };
12349   };
12350 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
12351 
12352   //=== VK_HUAWEI_cluster_culling_shader ===
12353   template <>
12354   struct StructExtends<PhysicalDeviceClusterCullingShaderFeaturesHUAWEI, PhysicalDeviceFeatures2>
12355   {
12356     enum
12357     {
12358       value = true
12359     };
12360   };
12361   template <>
12362   struct StructExtends<PhysicalDeviceClusterCullingShaderFeaturesHUAWEI, DeviceCreateInfo>
12363   {
12364     enum
12365     {
12366       value = true
12367     };
12368   };
12369   template <>
12370   struct StructExtends<PhysicalDeviceClusterCullingShaderPropertiesHUAWEI, PhysicalDeviceProperties2>
12371   {
12372     enum
12373     {
12374       value = true
12375     };
12376   };
12377 
12378   //=== VK_EXT_border_color_swizzle ===
12379   template <>
12380   struct StructExtends<PhysicalDeviceBorderColorSwizzleFeaturesEXT, PhysicalDeviceFeatures2>
12381   {
12382     enum
12383     {
12384       value = true
12385     };
12386   };
12387   template <>
12388   struct StructExtends<PhysicalDeviceBorderColorSwizzleFeaturesEXT, DeviceCreateInfo>
12389   {
12390     enum
12391     {
12392       value = true
12393     };
12394   };
12395   template <>
12396   struct StructExtends<SamplerBorderColorComponentMappingCreateInfoEXT, SamplerCreateInfo>
12397   {
12398     enum
12399     {
12400       value = true
12401     };
12402   };
12403 
12404   //=== VK_EXT_pageable_device_local_memory ===
12405   template <>
12406   struct StructExtends<PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, PhysicalDeviceFeatures2>
12407   {
12408     enum
12409     {
12410       value = true
12411     };
12412   };
12413   template <>
12414   struct StructExtends<PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, DeviceCreateInfo>
12415   {
12416     enum
12417     {
12418       value = true
12419     };
12420   };
12421 
12422   //=== VK_ARM_shader_core_properties ===
12423   template <>
12424   struct StructExtends<PhysicalDeviceShaderCorePropertiesARM, PhysicalDeviceProperties2>
12425   {
12426     enum
12427     {
12428       value = true
12429     };
12430   };
12431 
12432   //=== VK_EXT_image_sliced_view_of_3d ===
12433   template <>
12434   struct StructExtends<PhysicalDeviceImageSlicedViewOf3DFeaturesEXT, PhysicalDeviceFeatures2>
12435   {
12436     enum
12437     {
12438       value = true
12439     };
12440   };
12441   template <>
12442   struct StructExtends<PhysicalDeviceImageSlicedViewOf3DFeaturesEXT, DeviceCreateInfo>
12443   {
12444     enum
12445     {
12446       value = true
12447     };
12448   };
12449   template <>
12450   struct StructExtends<ImageViewSlicedCreateInfoEXT, ImageViewCreateInfo>
12451   {
12452     enum
12453     {
12454       value = true
12455     };
12456   };
12457 
12458   //=== VK_VALVE_descriptor_set_host_mapping ===
12459   template <>
12460   struct StructExtends<PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, PhysicalDeviceFeatures2>
12461   {
12462     enum
12463     {
12464       value = true
12465     };
12466   };
12467   template <>
12468   struct StructExtends<PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, DeviceCreateInfo>
12469   {
12470     enum
12471     {
12472       value = true
12473     };
12474   };
12475 
12476   //=== VK_EXT_depth_clamp_zero_one ===
12477   template <>
12478   struct StructExtends<PhysicalDeviceDepthClampZeroOneFeaturesEXT, PhysicalDeviceFeatures2>
12479   {
12480     enum
12481     {
12482       value = true
12483     };
12484   };
12485   template <>
12486   struct StructExtends<PhysicalDeviceDepthClampZeroOneFeaturesEXT, DeviceCreateInfo>
12487   {
12488     enum
12489     {
12490       value = true
12491     };
12492   };
12493 
12494   //=== VK_EXT_non_seamless_cube_map ===
12495   template <>
12496   struct StructExtends<PhysicalDeviceNonSeamlessCubeMapFeaturesEXT, PhysicalDeviceFeatures2>
12497   {
12498     enum
12499     {
12500       value = true
12501     };
12502   };
12503   template <>
12504   struct StructExtends<PhysicalDeviceNonSeamlessCubeMapFeaturesEXT, DeviceCreateInfo>
12505   {
12506     enum
12507     {
12508       value = true
12509     };
12510   };
12511 
12512   //=== VK_QCOM_fragment_density_map_offset ===
12513   template <>
12514   struct StructExtends<PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, PhysicalDeviceFeatures2>
12515   {
12516     enum
12517     {
12518       value = true
12519     };
12520   };
12521   template <>
12522   struct StructExtends<PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, DeviceCreateInfo>
12523   {
12524     enum
12525     {
12526       value = true
12527     };
12528   };
12529   template <>
12530   struct StructExtends<PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, PhysicalDeviceProperties2>
12531   {
12532     enum
12533     {
12534       value = true
12535     };
12536   };
12537   template <>
12538   struct StructExtends<SubpassFragmentDensityMapOffsetEndInfoQCOM, SubpassEndInfo>
12539   {
12540     enum
12541     {
12542       value = true
12543     };
12544   };
12545 
12546   //=== VK_NV_copy_memory_indirect ===
12547   template <>
12548   struct StructExtends<PhysicalDeviceCopyMemoryIndirectFeaturesNV, PhysicalDeviceFeatures2>
12549   {
12550     enum
12551     {
12552       value = true
12553     };
12554   };
12555   template <>
12556   struct StructExtends<PhysicalDeviceCopyMemoryIndirectFeaturesNV, DeviceCreateInfo>
12557   {
12558     enum
12559     {
12560       value = true
12561     };
12562   };
12563   template <>
12564   struct StructExtends<PhysicalDeviceCopyMemoryIndirectPropertiesNV, PhysicalDeviceProperties2>
12565   {
12566     enum
12567     {
12568       value = true
12569     };
12570   };
12571 
12572   //=== VK_NV_memory_decompression ===
12573   template <>
12574   struct StructExtends<PhysicalDeviceMemoryDecompressionFeaturesNV, PhysicalDeviceFeatures2>
12575   {
12576     enum
12577     {
12578       value = true
12579     };
12580   };
12581   template <>
12582   struct StructExtends<PhysicalDeviceMemoryDecompressionFeaturesNV, DeviceCreateInfo>
12583   {
12584     enum
12585     {
12586       value = true
12587     };
12588   };
12589   template <>
12590   struct StructExtends<PhysicalDeviceMemoryDecompressionPropertiesNV, PhysicalDeviceProperties2>
12591   {
12592     enum
12593     {
12594       value = true
12595     };
12596   };
12597 
12598   //=== VK_NV_device_generated_commands_compute ===
12599   template <>
12600   struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, PhysicalDeviceFeatures2>
12601   {
12602     enum
12603     {
12604       value = true
12605     };
12606   };
12607   template <>
12608   struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, DeviceCreateInfo>
12609   {
12610     enum
12611     {
12612       value = true
12613     };
12614   };
12615 
12616   //=== VK_NV_linear_color_attachment ===
12617   template <>
12618   struct StructExtends<PhysicalDeviceLinearColorAttachmentFeaturesNV, PhysicalDeviceFeatures2>
12619   {
12620     enum
12621     {
12622       value = true
12623     };
12624   };
12625   template <>
12626   struct StructExtends<PhysicalDeviceLinearColorAttachmentFeaturesNV, DeviceCreateInfo>
12627   {
12628     enum
12629     {
12630       value = true
12631     };
12632   };
12633 
12634   //=== VK_EXT_image_compression_control_swapchain ===
12635   template <>
12636   struct StructExtends<PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, PhysicalDeviceFeatures2>
12637   {
12638     enum
12639     {
12640       value = true
12641     };
12642   };
12643   template <>
12644   struct StructExtends<PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, DeviceCreateInfo>
12645   {
12646     enum
12647     {
12648       value = true
12649     };
12650   };
12651 
12652   //=== VK_QCOM_image_processing ===
12653   template <>
12654   struct StructExtends<ImageViewSampleWeightCreateInfoQCOM, ImageViewCreateInfo>
12655   {
12656     enum
12657     {
12658       value = true
12659     };
12660   };
12661   template <>
12662   struct StructExtends<PhysicalDeviceImageProcessingFeaturesQCOM, PhysicalDeviceFeatures2>
12663   {
12664     enum
12665     {
12666       value = true
12667     };
12668   };
12669   template <>
12670   struct StructExtends<PhysicalDeviceImageProcessingFeaturesQCOM, DeviceCreateInfo>
12671   {
12672     enum
12673     {
12674       value = true
12675     };
12676   };
12677   template <>
12678   struct StructExtends<PhysicalDeviceImageProcessingPropertiesQCOM, PhysicalDeviceProperties2>
12679   {
12680     enum
12681     {
12682       value = true
12683     };
12684   };
12685 
12686   //=== VK_EXT_external_memory_acquire_unmodified ===
12687   template <>
12688   struct StructExtends<ExternalMemoryAcquireUnmodifiedEXT, BufferMemoryBarrier>
12689   {
12690     enum
12691     {
12692       value = true
12693     };
12694   };
12695   template <>
12696   struct StructExtends<ExternalMemoryAcquireUnmodifiedEXT, BufferMemoryBarrier2>
12697   {
12698     enum
12699     {
12700       value = true
12701     };
12702   };
12703   template <>
12704   struct StructExtends<ExternalMemoryAcquireUnmodifiedEXT, ImageMemoryBarrier>
12705   {
12706     enum
12707     {
12708       value = true
12709     };
12710   };
12711   template <>
12712   struct StructExtends<ExternalMemoryAcquireUnmodifiedEXT, ImageMemoryBarrier2>
12713   {
12714     enum
12715     {
12716       value = true
12717     };
12718   };
12719 
12720   //=== VK_EXT_extended_dynamic_state3 ===
12721   template <>
12722   struct StructExtends<PhysicalDeviceExtendedDynamicState3FeaturesEXT, PhysicalDeviceFeatures2>
12723   {
12724     enum
12725     {
12726       value = true
12727     };
12728   };
12729   template <>
12730   struct StructExtends<PhysicalDeviceExtendedDynamicState3FeaturesEXT, DeviceCreateInfo>
12731   {
12732     enum
12733     {
12734       value = true
12735     };
12736   };
12737   template <>
12738   struct StructExtends<PhysicalDeviceExtendedDynamicState3PropertiesEXT, PhysicalDeviceProperties2>
12739   {
12740     enum
12741     {
12742       value = true
12743     };
12744   };
12745 
12746   //=== VK_EXT_subpass_merge_feedback ===
12747   template <>
12748   struct StructExtends<PhysicalDeviceSubpassMergeFeedbackFeaturesEXT, PhysicalDeviceFeatures2>
12749   {
12750     enum
12751     {
12752       value = true
12753     };
12754   };
12755   template <>
12756   struct StructExtends<PhysicalDeviceSubpassMergeFeedbackFeaturesEXT, DeviceCreateInfo>
12757   {
12758     enum
12759     {
12760       value = true
12761     };
12762   };
12763   template <>
12764   struct StructExtends<RenderPassCreationControlEXT, RenderPassCreateInfo2>
12765   {
12766     enum
12767     {
12768       value = true
12769     };
12770   };
12771   template <>
12772   struct StructExtends<RenderPassCreationControlEXT, SubpassDescription2>
12773   {
12774     enum
12775     {
12776       value = true
12777     };
12778   };
12779   template <>
12780   struct StructExtends<RenderPassCreationFeedbackCreateInfoEXT, RenderPassCreateInfo2>
12781   {
12782     enum
12783     {
12784       value = true
12785     };
12786   };
12787   template <>
12788   struct StructExtends<RenderPassSubpassFeedbackCreateInfoEXT, SubpassDescription2>
12789   {
12790     enum
12791     {
12792       value = true
12793     };
12794   };
12795 
12796   //=== VK_LUNARG_direct_driver_loading ===
12797   template <>
12798   struct StructExtends<DirectDriverLoadingListLUNARG, InstanceCreateInfo>
12799   {
12800     enum
12801     {
12802       value = true
12803     };
12804   };
12805 
12806   //=== VK_EXT_shader_module_identifier ===
12807   template <>
12808   struct StructExtends<PhysicalDeviceShaderModuleIdentifierFeaturesEXT, PhysicalDeviceFeatures2>
12809   {
12810     enum
12811     {
12812       value = true
12813     };
12814   };
12815   template <>
12816   struct StructExtends<PhysicalDeviceShaderModuleIdentifierFeaturesEXT, DeviceCreateInfo>
12817   {
12818     enum
12819     {
12820       value = true
12821     };
12822   };
12823   template <>
12824   struct StructExtends<PhysicalDeviceShaderModuleIdentifierPropertiesEXT, PhysicalDeviceProperties2>
12825   {
12826     enum
12827     {
12828       value = true
12829     };
12830   };
12831   template <>
12832   struct StructExtends<PipelineShaderStageModuleIdentifierCreateInfoEXT, PipelineShaderStageCreateInfo>
12833   {
12834     enum
12835     {
12836       value = true
12837     };
12838   };
12839 
12840   //=== VK_EXT_rasterization_order_attachment_access ===
12841   template <>
12842   struct StructExtends<PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, PhysicalDeviceFeatures2>
12843   {
12844     enum
12845     {
12846       value = true
12847     };
12848   };
12849   template <>
12850   struct StructExtends<PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, DeviceCreateInfo>
12851   {
12852     enum
12853     {
12854       value = true
12855     };
12856   };
12857 
12858   //=== VK_NV_optical_flow ===
12859   template <>
12860   struct StructExtends<PhysicalDeviceOpticalFlowFeaturesNV, PhysicalDeviceFeatures2>
12861   {
12862     enum
12863     {
12864       value = true
12865     };
12866   };
12867   template <>
12868   struct StructExtends<PhysicalDeviceOpticalFlowFeaturesNV, DeviceCreateInfo>
12869   {
12870     enum
12871     {
12872       value = true
12873     };
12874   };
12875   template <>
12876   struct StructExtends<PhysicalDeviceOpticalFlowPropertiesNV, PhysicalDeviceProperties2>
12877   {
12878     enum
12879     {
12880       value = true
12881     };
12882   };
12883   template <>
12884   struct StructExtends<OpticalFlowImageFormatInfoNV, PhysicalDeviceImageFormatInfo2>
12885   {
12886     enum
12887     {
12888       value = true
12889     };
12890   };
12891   template <>
12892   struct StructExtends<OpticalFlowImageFormatInfoNV, ImageCreateInfo>
12893   {
12894     enum
12895     {
12896       value = true
12897     };
12898   };
12899   template <>
12900   struct StructExtends<OpticalFlowSessionCreatePrivateDataInfoNV, OpticalFlowSessionCreateInfoNV>
12901   {
12902     enum
12903     {
12904       value = true
12905     };
12906   };
12907 
12908   //=== VK_EXT_legacy_dithering ===
12909   template <>
12910   struct StructExtends<PhysicalDeviceLegacyDitheringFeaturesEXT, PhysicalDeviceFeatures2>
12911   {
12912     enum
12913     {
12914       value = true
12915     };
12916   };
12917   template <>
12918   struct StructExtends<PhysicalDeviceLegacyDitheringFeaturesEXT, DeviceCreateInfo>
12919   {
12920     enum
12921     {
12922       value = true
12923     };
12924   };
12925 
12926   //=== VK_EXT_pipeline_protected_access ===
12927   template <>
12928   struct StructExtends<PhysicalDevicePipelineProtectedAccessFeaturesEXT, PhysicalDeviceFeatures2>
12929   {
12930     enum
12931     {
12932       value = true
12933     };
12934   };
12935   template <>
12936   struct StructExtends<PhysicalDevicePipelineProtectedAccessFeaturesEXT, DeviceCreateInfo>
12937   {
12938     enum
12939     {
12940       value = true
12941     };
12942   };
12943 
12944   //=== VK_KHR_ray_tracing_position_fetch ===
12945   template <>
12946   struct StructExtends<PhysicalDeviceRayTracingPositionFetchFeaturesKHR, PhysicalDeviceFeatures2>
12947   {
12948     enum
12949     {
12950       value = true
12951     };
12952   };
12953   template <>
12954   struct StructExtends<PhysicalDeviceRayTracingPositionFetchFeaturesKHR, DeviceCreateInfo>
12955   {
12956     enum
12957     {
12958       value = true
12959     };
12960   };
12961 
12962   //=== VK_EXT_shader_object ===
12963   template <>
12964   struct StructExtends<PhysicalDeviceShaderObjectFeaturesEXT, PhysicalDeviceFeatures2>
12965   {
12966     enum
12967     {
12968       value = true
12969     };
12970   };
12971   template <>
12972   struct StructExtends<PhysicalDeviceShaderObjectFeaturesEXT, DeviceCreateInfo>
12973   {
12974     enum
12975     {
12976       value = true
12977     };
12978   };
12979   template <>
12980   struct StructExtends<PhysicalDeviceShaderObjectPropertiesEXT, PhysicalDeviceProperties2>
12981   {
12982     enum
12983     {
12984       value = true
12985     };
12986   };
12987 
12988   //=== VK_QCOM_tile_properties ===
12989   template <>
12990   struct StructExtends<PhysicalDeviceTilePropertiesFeaturesQCOM, PhysicalDeviceFeatures2>
12991   {
12992     enum
12993     {
12994       value = true
12995     };
12996   };
12997   template <>
12998   struct StructExtends<PhysicalDeviceTilePropertiesFeaturesQCOM, DeviceCreateInfo>
12999   {
13000     enum
13001     {
13002       value = true
13003     };
13004   };
13005 
13006   //=== VK_SEC_amigo_profiling ===
13007   template <>
13008   struct StructExtends<PhysicalDeviceAmigoProfilingFeaturesSEC, PhysicalDeviceFeatures2>
13009   {
13010     enum
13011     {
13012       value = true
13013     };
13014   };
13015   template <>
13016   struct StructExtends<PhysicalDeviceAmigoProfilingFeaturesSEC, DeviceCreateInfo>
13017   {
13018     enum
13019     {
13020       value = true
13021     };
13022   };
13023   template <>
13024   struct StructExtends<AmigoProfilingSubmitInfoSEC, SubmitInfo>
13025   {
13026     enum
13027     {
13028       value = true
13029     };
13030   };
13031 
13032   //=== VK_QCOM_multiview_per_view_viewports ===
13033   template <>
13034   struct StructExtends<PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, PhysicalDeviceFeatures2>
13035   {
13036     enum
13037     {
13038       value = true
13039     };
13040   };
13041   template <>
13042   struct StructExtends<PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, DeviceCreateInfo>
13043   {
13044     enum
13045     {
13046       value = true
13047     };
13048   };
13049 
13050   //=== VK_NV_ray_tracing_invocation_reorder ===
13051   template <>
13052   struct StructExtends<PhysicalDeviceRayTracingInvocationReorderPropertiesNV, PhysicalDeviceProperties2>
13053   {
13054     enum
13055     {
13056       value = true
13057     };
13058   };
13059   template <>
13060   struct StructExtends<PhysicalDeviceRayTracingInvocationReorderFeaturesNV, PhysicalDeviceFeatures2>
13061   {
13062     enum
13063     {
13064       value = true
13065     };
13066   };
13067   template <>
13068   struct StructExtends<PhysicalDeviceRayTracingInvocationReorderFeaturesNV, DeviceCreateInfo>
13069   {
13070     enum
13071     {
13072       value = true
13073     };
13074   };
13075 
13076   //=== VK_EXT_mutable_descriptor_type ===
13077   template <>
13078   struct StructExtends<PhysicalDeviceMutableDescriptorTypeFeaturesEXT, PhysicalDeviceFeatures2>
13079   {
13080     enum
13081     {
13082       value = true
13083     };
13084   };
13085   template <>
13086   struct StructExtends<PhysicalDeviceMutableDescriptorTypeFeaturesEXT, DeviceCreateInfo>
13087   {
13088     enum
13089     {
13090       value = true
13091     };
13092   };
13093   template <>
13094   struct StructExtends<MutableDescriptorTypeCreateInfoEXT, DescriptorSetLayoutCreateInfo>
13095   {
13096     enum
13097     {
13098       value = true
13099     };
13100   };
13101   template <>
13102   struct StructExtends<MutableDescriptorTypeCreateInfoEXT, DescriptorPoolCreateInfo>
13103   {
13104     enum
13105     {
13106       value = true
13107     };
13108   };
13109 
13110   //=== VK_ARM_shader_core_builtins ===
13111   template <>
13112   struct StructExtends<PhysicalDeviceShaderCoreBuiltinsFeaturesARM, PhysicalDeviceFeatures2>
13113   {
13114     enum
13115     {
13116       value = true
13117     };
13118   };
13119   template <>
13120   struct StructExtends<PhysicalDeviceShaderCoreBuiltinsFeaturesARM, DeviceCreateInfo>
13121   {
13122     enum
13123     {
13124       value = true
13125     };
13126   };
13127   template <>
13128   struct StructExtends<PhysicalDeviceShaderCoreBuiltinsPropertiesARM, PhysicalDeviceProperties2>
13129   {
13130     enum
13131     {
13132       value = true
13133     };
13134   };
13135 
13136   //=== VK_EXT_pipeline_library_group_handles ===
13137   template <>
13138   struct StructExtends<PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, PhysicalDeviceFeatures2>
13139   {
13140     enum
13141     {
13142       value = true
13143     };
13144   };
13145   template <>
13146   struct StructExtends<PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, DeviceCreateInfo>
13147   {
13148     enum
13149     {
13150       value = true
13151     };
13152   };
13153 
13154   //=== VK_EXT_dynamic_rendering_unused_attachments ===
13155   template <>
13156   struct StructExtends<PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, PhysicalDeviceFeatures2>
13157   {
13158     enum
13159     {
13160       value = true
13161     };
13162   };
13163   template <>
13164   struct StructExtends<PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, DeviceCreateInfo>
13165   {
13166     enum
13167     {
13168       value = true
13169     };
13170   };
13171 
13172   //=== VK_KHR_cooperative_matrix ===
13173   template <>
13174   struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesKHR, PhysicalDeviceFeatures2>
13175   {
13176     enum
13177     {
13178       value = true
13179     };
13180   };
13181   template <>
13182   struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesKHR, DeviceCreateInfo>
13183   {
13184     enum
13185     {
13186       value = true
13187     };
13188   };
13189   template <>
13190   struct StructExtends<PhysicalDeviceCooperativeMatrixPropertiesKHR, PhysicalDeviceProperties2>
13191   {
13192     enum
13193     {
13194       value = true
13195     };
13196   };
13197 
13198   //=== VK_QCOM_multiview_per_view_render_areas ===
13199   template <>
13200   struct StructExtends<PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, PhysicalDeviceFeatures2>
13201   {
13202     enum
13203     {
13204       value = true
13205     };
13206   };
13207   template <>
13208   struct StructExtends<PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, DeviceCreateInfo>
13209   {
13210     enum
13211     {
13212       value = true
13213     };
13214   };
13215   template <>
13216   struct StructExtends<MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM, RenderPassBeginInfo>
13217   {
13218     enum
13219     {
13220       value = true
13221     };
13222   };
13223   template <>
13224   struct StructExtends<MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM, RenderingInfo>
13225   {
13226     enum
13227     {
13228       value = true
13229     };
13230   };
13231 
13232   //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
13233   template <>
13234   struct StructExtends<PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, PhysicalDeviceFeatures2>
13235   {
13236     enum
13237     {
13238       value = true
13239     };
13240   };
13241   template <>
13242   struct StructExtends<PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, DeviceCreateInfo>
13243   {
13244     enum
13245     {
13246       value = true
13247     };
13248   };
13249 
13250 #  if defined( VK_USE_PLATFORM_SCREEN_QNX )
13251   //=== VK_QNX_external_memory_screen_buffer ===
13252   template <>
13253   struct StructExtends<ScreenBufferFormatPropertiesQNX, ScreenBufferPropertiesQNX>
13254   {
13255     enum
13256     {
13257       value = true
13258     };
13259   };
13260   template <>
13261   struct StructExtends<ImportScreenBufferInfoQNX, MemoryAllocateInfo>
13262   {
13263     enum
13264     {
13265       value = true
13266     };
13267   };
13268   template <>
13269   struct StructExtends<ExternalFormatQNX, ImageCreateInfo>
13270   {
13271     enum
13272     {
13273       value = true
13274     };
13275   };
13276   template <>
13277   struct StructExtends<ExternalFormatQNX, SamplerYcbcrConversionCreateInfo>
13278   {
13279     enum
13280     {
13281       value = true
13282     };
13283   };
13284   template <>
13285   struct StructExtends<PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX, PhysicalDeviceFeatures2>
13286   {
13287     enum
13288     {
13289       value = true
13290     };
13291   };
13292   template <>
13293   struct StructExtends<PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX, DeviceCreateInfo>
13294   {
13295     enum
13296     {
13297       value = true
13298     };
13299   };
13300 #  endif /*VK_USE_PLATFORM_SCREEN_QNX*/
13301 
13302 #endif  // VULKAN_HPP_DISABLE_ENHANCED_MODE
13303 
13304 #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
13305   class DynamicLoader
13306   {
13307   public:
13308 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
DynamicLoader(std::string const & vulkanLibraryName={} )13309     DynamicLoader( std::string const & vulkanLibraryName = {} ) VULKAN_HPP_NOEXCEPT
13310 #  else
13311     DynamicLoader( std::string const & vulkanLibraryName = {} )
13312 #  endif
13313     {
13314       if ( !vulkanLibraryName.empty() )
13315       {
13316 #  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
13317         m_library = dlopen( vulkanLibraryName.c_str(), RTLD_NOW | RTLD_LOCAL );
13318 #  elif defined( _WIN32 )
13319         m_library = ::LoadLibraryA( vulkanLibraryName.c_str() );
13320 #  else
13321 #    error unsupported platform
13322 #  endif
13323       }
13324       else
13325       {
13326 #  if defined( __unix__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
13327         m_library = dlopen( "libvulkan.so", RTLD_NOW | RTLD_LOCAL );
13328         if ( m_library == nullptr )
13329         {
13330           m_library = dlopen( "libvulkan.so.1", RTLD_NOW | RTLD_LOCAL );
13331         }
13332 #  elif defined( __APPLE__ )
13333         m_library = dlopen( "libvulkan.dylib", RTLD_NOW | RTLD_LOCAL );
13334 #  elif defined( _WIN32 )
13335         m_library = ::LoadLibraryA( "vulkan-1.dll" );
13336 #  else
13337 #    error unsupported platform
13338 #  endif
13339       }
13340 
13341 #  ifndef VULKAN_HPP_NO_EXCEPTIONS
13342       if ( m_library == nullptr )
13343       {
13344         // NOTE there should be an InitializationFailedError, but msvc insists on the symbol does not exist within the scope of this function.
13345         throw std::runtime_error( "Failed to load vulkan library!" );
13346       }
13347 #  endif
13348     }
13349 
13350     DynamicLoader( DynamicLoader const & ) = delete;
13351 
DynamicLoader(DynamicLoader && other)13352     DynamicLoader( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT : m_library( other.m_library )
13353     {
13354       other.m_library = nullptr;
13355     }
13356 
13357     DynamicLoader & operator=( DynamicLoader const & ) = delete;
13358 
operator =(DynamicLoader && other)13359     DynamicLoader & operator=( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT
13360     {
13361       std::swap( m_library, other.m_library );
13362       return *this;
13363     }
13364 
~DynamicLoader()13365     ~DynamicLoader() VULKAN_HPP_NOEXCEPT
13366     {
13367       if ( m_library )
13368       {
13369 #  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
13370         dlclose( m_library );
13371 #  elif defined( _WIN32 )
13372         ::FreeLibrary( m_library );
13373 #  else
13374 #    error unsupported platform
13375 #  endif
13376       }
13377     }
13378 
13379     template <typename T>
getProcAddress(const char * function) const13380     T getProcAddress( const char * function ) const VULKAN_HPP_NOEXCEPT
13381     {
13382 #  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
13383       return (T)dlsym( m_library, function );
13384 #  elif defined( _WIN32 )
13385       return ( T )::GetProcAddress( m_library, function );
13386 #  else
13387 #    error unsupported platform
13388 #  endif
13389     }
13390 
success() const13391     bool success() const VULKAN_HPP_NOEXCEPT
13392     {
13393       return m_library != nullptr;
13394     }
13395 
13396   private:
13397 #  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
13398     void * m_library;
13399 #  elif defined( _WIN32 )
13400     ::HINSTANCE m_library;
13401 #  else
13402 #    error unsupported platform
13403 #  endif
13404   };
13405 #endif
13406 
13407   using PFN_dummy = void ( * )();
13408 
13409   class DispatchLoaderDynamic : public DispatchLoaderBase
13410   {
13411   public:
13412     //=== VK_VERSION_1_0 ===
13413     PFN_vkCreateInstance                               vkCreateInstance                               = 0;
13414     PFN_vkDestroyInstance                              vkDestroyInstance                              = 0;
13415     PFN_vkEnumeratePhysicalDevices                     vkEnumeratePhysicalDevices                     = 0;
13416     PFN_vkGetPhysicalDeviceFeatures                    vkGetPhysicalDeviceFeatures                    = 0;
13417     PFN_vkGetPhysicalDeviceFormatProperties            vkGetPhysicalDeviceFormatProperties            = 0;
13418     PFN_vkGetPhysicalDeviceImageFormatProperties       vkGetPhysicalDeviceImageFormatProperties       = 0;
13419     PFN_vkGetPhysicalDeviceProperties                  vkGetPhysicalDeviceProperties                  = 0;
13420     PFN_vkGetPhysicalDeviceQueueFamilyProperties       vkGetPhysicalDeviceQueueFamilyProperties       = 0;
13421     PFN_vkGetPhysicalDeviceMemoryProperties            vkGetPhysicalDeviceMemoryProperties            = 0;
13422     PFN_vkGetInstanceProcAddr                          vkGetInstanceProcAddr                          = 0;
13423     PFN_vkGetDeviceProcAddr                            vkGetDeviceProcAddr                            = 0;
13424     PFN_vkCreateDevice                                 vkCreateDevice                                 = 0;
13425     PFN_vkDestroyDevice                                vkDestroyDevice                                = 0;
13426     PFN_vkEnumerateInstanceExtensionProperties         vkEnumerateInstanceExtensionProperties         = 0;
13427     PFN_vkEnumerateDeviceExtensionProperties           vkEnumerateDeviceExtensionProperties           = 0;
13428     PFN_vkEnumerateInstanceLayerProperties             vkEnumerateInstanceLayerProperties             = 0;
13429     PFN_vkEnumerateDeviceLayerProperties               vkEnumerateDeviceLayerProperties               = 0;
13430     PFN_vkGetDeviceQueue                               vkGetDeviceQueue                               = 0;
13431     PFN_vkQueueSubmit                                  vkQueueSubmit                                  = 0;
13432     PFN_vkQueueWaitIdle                                vkQueueWaitIdle                                = 0;
13433     PFN_vkDeviceWaitIdle                               vkDeviceWaitIdle                               = 0;
13434     PFN_vkAllocateMemory                               vkAllocateMemory                               = 0;
13435     PFN_vkFreeMemory                                   vkFreeMemory                                   = 0;
13436     PFN_vkMapMemory                                    vkMapMemory                                    = 0;
13437     PFN_vkUnmapMemory                                  vkUnmapMemory                                  = 0;
13438     PFN_vkFlushMappedMemoryRanges                      vkFlushMappedMemoryRanges                      = 0;
13439     PFN_vkInvalidateMappedMemoryRanges                 vkInvalidateMappedMemoryRanges                 = 0;
13440     PFN_vkGetDeviceMemoryCommitment                    vkGetDeviceMemoryCommitment                    = 0;
13441     PFN_vkBindBufferMemory                             vkBindBufferMemory                             = 0;
13442     PFN_vkBindImageMemory                              vkBindImageMemory                              = 0;
13443     PFN_vkGetBufferMemoryRequirements                  vkGetBufferMemoryRequirements                  = 0;
13444     PFN_vkGetImageMemoryRequirements                   vkGetImageMemoryRequirements                   = 0;
13445     PFN_vkGetImageSparseMemoryRequirements             vkGetImageSparseMemoryRequirements             = 0;
13446     PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties = 0;
13447     PFN_vkQueueBindSparse                              vkQueueBindSparse                              = 0;
13448     PFN_vkCreateFence                                  vkCreateFence                                  = 0;
13449     PFN_vkDestroyFence                                 vkDestroyFence                                 = 0;
13450     PFN_vkResetFences                                  vkResetFences                                  = 0;
13451     PFN_vkGetFenceStatus                               vkGetFenceStatus                               = 0;
13452     PFN_vkWaitForFences                                vkWaitForFences                                = 0;
13453     PFN_vkCreateSemaphore                              vkCreateSemaphore                              = 0;
13454     PFN_vkDestroySemaphore                             vkDestroySemaphore                             = 0;
13455     PFN_vkCreateEvent                                  vkCreateEvent                                  = 0;
13456     PFN_vkDestroyEvent                                 vkDestroyEvent                                 = 0;
13457     PFN_vkGetEventStatus                               vkGetEventStatus                               = 0;
13458     PFN_vkSetEvent                                     vkSetEvent                                     = 0;
13459     PFN_vkResetEvent                                   vkResetEvent                                   = 0;
13460     PFN_vkCreateQueryPool                              vkCreateQueryPool                              = 0;
13461     PFN_vkDestroyQueryPool                             vkDestroyQueryPool                             = 0;
13462     PFN_vkGetQueryPoolResults                          vkGetQueryPoolResults                          = 0;
13463     PFN_vkCreateBuffer                                 vkCreateBuffer                                 = 0;
13464     PFN_vkDestroyBuffer                                vkDestroyBuffer                                = 0;
13465     PFN_vkCreateBufferView                             vkCreateBufferView                             = 0;
13466     PFN_vkDestroyBufferView                            vkDestroyBufferView                            = 0;
13467     PFN_vkCreateImage                                  vkCreateImage                                  = 0;
13468     PFN_vkDestroyImage                                 vkDestroyImage                                 = 0;
13469     PFN_vkGetImageSubresourceLayout                    vkGetImageSubresourceLayout                    = 0;
13470     PFN_vkCreateImageView                              vkCreateImageView                              = 0;
13471     PFN_vkDestroyImageView                             vkDestroyImageView                             = 0;
13472     PFN_vkCreateShaderModule                           vkCreateShaderModule                           = 0;
13473     PFN_vkDestroyShaderModule                          vkDestroyShaderModule                          = 0;
13474     PFN_vkCreatePipelineCache                          vkCreatePipelineCache                          = 0;
13475     PFN_vkDestroyPipelineCache                         vkDestroyPipelineCache                         = 0;
13476     PFN_vkGetPipelineCacheData                         vkGetPipelineCacheData                         = 0;
13477     PFN_vkMergePipelineCaches                          vkMergePipelineCaches                          = 0;
13478     PFN_vkCreateGraphicsPipelines                      vkCreateGraphicsPipelines                      = 0;
13479     PFN_vkCreateComputePipelines                       vkCreateComputePipelines                       = 0;
13480     PFN_vkDestroyPipeline                              vkDestroyPipeline                              = 0;
13481     PFN_vkCreatePipelineLayout                         vkCreatePipelineLayout                         = 0;
13482     PFN_vkDestroyPipelineLayout                        vkDestroyPipelineLayout                        = 0;
13483     PFN_vkCreateSampler                                vkCreateSampler                                = 0;
13484     PFN_vkDestroySampler                               vkDestroySampler                               = 0;
13485     PFN_vkCreateDescriptorSetLayout                    vkCreateDescriptorSetLayout                    = 0;
13486     PFN_vkDestroyDescriptorSetLayout                   vkDestroyDescriptorSetLayout                   = 0;
13487     PFN_vkCreateDescriptorPool                         vkCreateDescriptorPool                         = 0;
13488     PFN_vkDestroyDescriptorPool                        vkDestroyDescriptorPool                        = 0;
13489     PFN_vkResetDescriptorPool                          vkResetDescriptorPool                          = 0;
13490     PFN_vkAllocateDescriptorSets                       vkAllocateDescriptorSets                       = 0;
13491     PFN_vkFreeDescriptorSets                           vkFreeDescriptorSets                           = 0;
13492     PFN_vkUpdateDescriptorSets                         vkUpdateDescriptorSets                         = 0;
13493     PFN_vkCreateFramebuffer                            vkCreateFramebuffer                            = 0;
13494     PFN_vkDestroyFramebuffer                           vkDestroyFramebuffer                           = 0;
13495     PFN_vkCreateRenderPass                             vkCreateRenderPass                             = 0;
13496     PFN_vkDestroyRenderPass                            vkDestroyRenderPass                            = 0;
13497     PFN_vkGetRenderAreaGranularity                     vkGetRenderAreaGranularity                     = 0;
13498     PFN_vkCreateCommandPool                            vkCreateCommandPool                            = 0;
13499     PFN_vkDestroyCommandPool                           vkDestroyCommandPool                           = 0;
13500     PFN_vkResetCommandPool                             vkResetCommandPool                             = 0;
13501     PFN_vkAllocateCommandBuffers                       vkAllocateCommandBuffers                       = 0;
13502     PFN_vkFreeCommandBuffers                           vkFreeCommandBuffers                           = 0;
13503     PFN_vkBeginCommandBuffer                           vkBeginCommandBuffer                           = 0;
13504     PFN_vkEndCommandBuffer                             vkEndCommandBuffer                             = 0;
13505     PFN_vkResetCommandBuffer                           vkResetCommandBuffer                           = 0;
13506     PFN_vkCmdBindPipeline                              vkCmdBindPipeline                              = 0;
13507     PFN_vkCmdSetViewport                               vkCmdSetViewport                               = 0;
13508     PFN_vkCmdSetScissor                                vkCmdSetScissor                                = 0;
13509     PFN_vkCmdSetLineWidth                              vkCmdSetLineWidth                              = 0;
13510     PFN_vkCmdSetDepthBias                              vkCmdSetDepthBias                              = 0;
13511     PFN_vkCmdSetBlendConstants                         vkCmdSetBlendConstants                         = 0;
13512     PFN_vkCmdSetDepthBounds                            vkCmdSetDepthBounds                            = 0;
13513     PFN_vkCmdSetStencilCompareMask                     vkCmdSetStencilCompareMask                     = 0;
13514     PFN_vkCmdSetStencilWriteMask                       vkCmdSetStencilWriteMask                       = 0;
13515     PFN_vkCmdSetStencilReference                       vkCmdSetStencilReference                       = 0;
13516     PFN_vkCmdBindDescriptorSets                        vkCmdBindDescriptorSets                        = 0;
13517     PFN_vkCmdBindIndexBuffer                           vkCmdBindIndexBuffer                           = 0;
13518     PFN_vkCmdBindVertexBuffers                         vkCmdBindVertexBuffers                         = 0;
13519     PFN_vkCmdDraw                                      vkCmdDraw                                      = 0;
13520     PFN_vkCmdDrawIndexed                               vkCmdDrawIndexed                               = 0;
13521     PFN_vkCmdDrawIndirect                              vkCmdDrawIndirect                              = 0;
13522     PFN_vkCmdDrawIndexedIndirect                       vkCmdDrawIndexedIndirect                       = 0;
13523     PFN_vkCmdDispatch                                  vkCmdDispatch                                  = 0;
13524     PFN_vkCmdDispatchIndirect                          vkCmdDispatchIndirect                          = 0;
13525     PFN_vkCmdCopyBuffer                                vkCmdCopyBuffer                                = 0;
13526     PFN_vkCmdCopyImage                                 vkCmdCopyImage                                 = 0;
13527     PFN_vkCmdBlitImage                                 vkCmdBlitImage                                 = 0;
13528     PFN_vkCmdCopyBufferToImage                         vkCmdCopyBufferToImage                         = 0;
13529     PFN_vkCmdCopyImageToBuffer                         vkCmdCopyImageToBuffer                         = 0;
13530     PFN_vkCmdUpdateBuffer                              vkCmdUpdateBuffer                              = 0;
13531     PFN_vkCmdFillBuffer                                vkCmdFillBuffer                                = 0;
13532     PFN_vkCmdClearColorImage                           vkCmdClearColorImage                           = 0;
13533     PFN_vkCmdClearDepthStencilImage                    vkCmdClearDepthStencilImage                    = 0;
13534     PFN_vkCmdClearAttachments                          vkCmdClearAttachments                          = 0;
13535     PFN_vkCmdResolveImage                              vkCmdResolveImage                              = 0;
13536     PFN_vkCmdSetEvent                                  vkCmdSetEvent                                  = 0;
13537     PFN_vkCmdResetEvent                                vkCmdResetEvent                                = 0;
13538     PFN_vkCmdWaitEvents                                vkCmdWaitEvents                                = 0;
13539     PFN_vkCmdPipelineBarrier                           vkCmdPipelineBarrier                           = 0;
13540     PFN_vkCmdBeginQuery                                vkCmdBeginQuery                                = 0;
13541     PFN_vkCmdEndQuery                                  vkCmdEndQuery                                  = 0;
13542     PFN_vkCmdResetQueryPool                            vkCmdResetQueryPool                            = 0;
13543     PFN_vkCmdWriteTimestamp                            vkCmdWriteTimestamp                            = 0;
13544     PFN_vkCmdCopyQueryPoolResults                      vkCmdCopyQueryPoolResults                      = 0;
13545     PFN_vkCmdPushConstants                             vkCmdPushConstants                             = 0;
13546     PFN_vkCmdBeginRenderPass                           vkCmdBeginRenderPass                           = 0;
13547     PFN_vkCmdNextSubpass                               vkCmdNextSubpass                               = 0;
13548     PFN_vkCmdEndRenderPass                             vkCmdEndRenderPass                             = 0;
13549     PFN_vkCmdExecuteCommands                           vkCmdExecuteCommands                           = 0;
13550 
13551     //=== VK_VERSION_1_1 ===
13552     PFN_vkEnumerateInstanceVersion                      vkEnumerateInstanceVersion                      = 0;
13553     PFN_vkBindBufferMemory2                             vkBindBufferMemory2                             = 0;
13554     PFN_vkBindImageMemory2                              vkBindImageMemory2                              = 0;
13555     PFN_vkGetDeviceGroupPeerMemoryFeatures              vkGetDeviceGroupPeerMemoryFeatures              = 0;
13556     PFN_vkCmdSetDeviceMask                              vkCmdSetDeviceMask                              = 0;
13557     PFN_vkCmdDispatchBase                               vkCmdDispatchBase                               = 0;
13558     PFN_vkEnumeratePhysicalDeviceGroups                 vkEnumeratePhysicalDeviceGroups                 = 0;
13559     PFN_vkGetImageMemoryRequirements2                   vkGetImageMemoryRequirements2                   = 0;
13560     PFN_vkGetBufferMemoryRequirements2                  vkGetBufferMemoryRequirements2                  = 0;
13561     PFN_vkGetImageSparseMemoryRequirements2             vkGetImageSparseMemoryRequirements2             = 0;
13562     PFN_vkGetPhysicalDeviceFeatures2                    vkGetPhysicalDeviceFeatures2                    = 0;
13563     PFN_vkGetPhysicalDeviceProperties2                  vkGetPhysicalDeviceProperties2                  = 0;
13564     PFN_vkGetPhysicalDeviceFormatProperties2            vkGetPhysicalDeviceFormatProperties2            = 0;
13565     PFN_vkGetPhysicalDeviceImageFormatProperties2       vkGetPhysicalDeviceImageFormatProperties2       = 0;
13566     PFN_vkGetPhysicalDeviceQueueFamilyProperties2       vkGetPhysicalDeviceQueueFamilyProperties2       = 0;
13567     PFN_vkGetPhysicalDeviceMemoryProperties2            vkGetPhysicalDeviceMemoryProperties2            = 0;
13568     PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 = 0;
13569     PFN_vkTrimCommandPool                               vkTrimCommandPool                               = 0;
13570     PFN_vkGetDeviceQueue2                               vkGetDeviceQueue2                               = 0;
13571     PFN_vkCreateSamplerYcbcrConversion                  vkCreateSamplerYcbcrConversion                  = 0;
13572     PFN_vkDestroySamplerYcbcrConversion                 vkDestroySamplerYcbcrConversion                 = 0;
13573     PFN_vkCreateDescriptorUpdateTemplate                vkCreateDescriptorUpdateTemplate                = 0;
13574     PFN_vkDestroyDescriptorUpdateTemplate               vkDestroyDescriptorUpdateTemplate               = 0;
13575     PFN_vkUpdateDescriptorSetWithTemplate               vkUpdateDescriptorSetWithTemplate               = 0;
13576     PFN_vkGetPhysicalDeviceExternalBufferProperties     vkGetPhysicalDeviceExternalBufferProperties     = 0;
13577     PFN_vkGetPhysicalDeviceExternalFenceProperties      vkGetPhysicalDeviceExternalFenceProperties      = 0;
13578     PFN_vkGetPhysicalDeviceExternalSemaphoreProperties  vkGetPhysicalDeviceExternalSemaphoreProperties  = 0;
13579     PFN_vkGetDescriptorSetLayoutSupport                 vkGetDescriptorSetLayoutSupport                 = 0;
13580 
13581     //=== VK_VERSION_1_2 ===
13582     PFN_vkCmdDrawIndirectCount                vkCmdDrawIndirectCount                = 0;
13583     PFN_vkCmdDrawIndexedIndirectCount         vkCmdDrawIndexedIndirectCount         = 0;
13584     PFN_vkCreateRenderPass2                   vkCreateRenderPass2                   = 0;
13585     PFN_vkCmdBeginRenderPass2                 vkCmdBeginRenderPass2                 = 0;
13586     PFN_vkCmdNextSubpass2                     vkCmdNextSubpass2                     = 0;
13587     PFN_vkCmdEndRenderPass2                   vkCmdEndRenderPass2                   = 0;
13588     PFN_vkResetQueryPool                      vkResetQueryPool                      = 0;
13589     PFN_vkGetSemaphoreCounterValue            vkGetSemaphoreCounterValue            = 0;
13590     PFN_vkWaitSemaphores                      vkWaitSemaphores                      = 0;
13591     PFN_vkSignalSemaphore                     vkSignalSemaphore                     = 0;
13592     PFN_vkGetBufferDeviceAddress              vkGetBufferDeviceAddress              = 0;
13593     PFN_vkGetBufferOpaqueCaptureAddress       vkGetBufferOpaqueCaptureAddress       = 0;
13594     PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress = 0;
13595 
13596     //=== VK_VERSION_1_3 ===
13597     PFN_vkGetPhysicalDeviceToolProperties        vkGetPhysicalDeviceToolProperties        = 0;
13598     PFN_vkCreatePrivateDataSlot                  vkCreatePrivateDataSlot                  = 0;
13599     PFN_vkDestroyPrivateDataSlot                 vkDestroyPrivateDataSlot                 = 0;
13600     PFN_vkSetPrivateData                         vkSetPrivateData                         = 0;
13601     PFN_vkGetPrivateData                         vkGetPrivateData                         = 0;
13602     PFN_vkCmdSetEvent2                           vkCmdSetEvent2                           = 0;
13603     PFN_vkCmdResetEvent2                         vkCmdResetEvent2                         = 0;
13604     PFN_vkCmdWaitEvents2                         vkCmdWaitEvents2                         = 0;
13605     PFN_vkCmdPipelineBarrier2                    vkCmdPipelineBarrier2                    = 0;
13606     PFN_vkCmdWriteTimestamp2                     vkCmdWriteTimestamp2                     = 0;
13607     PFN_vkQueueSubmit2                           vkQueueSubmit2                           = 0;
13608     PFN_vkCmdCopyBuffer2                         vkCmdCopyBuffer2                         = 0;
13609     PFN_vkCmdCopyImage2                          vkCmdCopyImage2                          = 0;
13610     PFN_vkCmdCopyBufferToImage2                  vkCmdCopyBufferToImage2                  = 0;
13611     PFN_vkCmdCopyImageToBuffer2                  vkCmdCopyImageToBuffer2                  = 0;
13612     PFN_vkCmdBlitImage2                          vkCmdBlitImage2                          = 0;
13613     PFN_vkCmdResolveImage2                       vkCmdResolveImage2                       = 0;
13614     PFN_vkCmdBeginRendering                      vkCmdBeginRendering                      = 0;
13615     PFN_vkCmdEndRendering                        vkCmdEndRendering                        = 0;
13616     PFN_vkCmdSetCullMode                         vkCmdSetCullMode                         = 0;
13617     PFN_vkCmdSetFrontFace                        vkCmdSetFrontFace                        = 0;
13618     PFN_vkCmdSetPrimitiveTopology                vkCmdSetPrimitiveTopology                = 0;
13619     PFN_vkCmdSetViewportWithCount                vkCmdSetViewportWithCount                = 0;
13620     PFN_vkCmdSetScissorWithCount                 vkCmdSetScissorWithCount                 = 0;
13621     PFN_vkCmdBindVertexBuffers2                  vkCmdBindVertexBuffers2                  = 0;
13622     PFN_vkCmdSetDepthTestEnable                  vkCmdSetDepthTestEnable                  = 0;
13623     PFN_vkCmdSetDepthWriteEnable                 vkCmdSetDepthWriteEnable                 = 0;
13624     PFN_vkCmdSetDepthCompareOp                   vkCmdSetDepthCompareOp                   = 0;
13625     PFN_vkCmdSetDepthBoundsTestEnable            vkCmdSetDepthBoundsTestEnable            = 0;
13626     PFN_vkCmdSetStencilTestEnable                vkCmdSetStencilTestEnable                = 0;
13627     PFN_vkCmdSetStencilOp                        vkCmdSetStencilOp                        = 0;
13628     PFN_vkCmdSetRasterizerDiscardEnable          vkCmdSetRasterizerDiscardEnable          = 0;
13629     PFN_vkCmdSetDepthBiasEnable                  vkCmdSetDepthBiasEnable                  = 0;
13630     PFN_vkCmdSetPrimitiveRestartEnable           vkCmdSetPrimitiveRestartEnable           = 0;
13631     PFN_vkGetDeviceBufferMemoryRequirements      vkGetDeviceBufferMemoryRequirements      = 0;
13632     PFN_vkGetDeviceImageMemoryRequirements       vkGetDeviceImageMemoryRequirements       = 0;
13633     PFN_vkGetDeviceImageSparseMemoryRequirements vkGetDeviceImageSparseMemoryRequirements = 0;
13634 
13635     //=== VK_KHR_surface ===
13636     PFN_vkDestroySurfaceKHR                       vkDestroySurfaceKHR                       = 0;
13637     PFN_vkGetPhysicalDeviceSurfaceSupportKHR      vkGetPhysicalDeviceSurfaceSupportKHR      = 0;
13638     PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0;
13639     PFN_vkGetPhysicalDeviceSurfaceFormatsKHR      vkGetPhysicalDeviceSurfaceFormatsKHR      = 0;
13640     PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0;
13641 
13642     //=== VK_KHR_swapchain ===
13643     PFN_vkCreateSwapchainKHR                    vkCreateSwapchainKHR                    = 0;
13644     PFN_vkDestroySwapchainKHR                   vkDestroySwapchainKHR                   = 0;
13645     PFN_vkGetSwapchainImagesKHR                 vkGetSwapchainImagesKHR                 = 0;
13646     PFN_vkAcquireNextImageKHR                   vkAcquireNextImageKHR                   = 0;
13647     PFN_vkQueuePresentKHR                       vkQueuePresentKHR                       = 0;
13648     PFN_vkGetDeviceGroupPresentCapabilitiesKHR  vkGetDeviceGroupPresentCapabilitiesKHR  = 0;
13649     PFN_vkGetDeviceGroupSurfacePresentModesKHR  vkGetDeviceGroupSurfacePresentModesKHR  = 0;
13650     PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0;
13651     PFN_vkAcquireNextImage2KHR                  vkAcquireNextImage2KHR                  = 0;
13652 
13653     //=== VK_KHR_display ===
13654     PFN_vkGetPhysicalDeviceDisplayPropertiesKHR      vkGetPhysicalDeviceDisplayPropertiesKHR      = 0;
13655     PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0;
13656     PFN_vkGetDisplayPlaneSupportedDisplaysKHR        vkGetDisplayPlaneSupportedDisplaysKHR        = 0;
13657     PFN_vkGetDisplayModePropertiesKHR                vkGetDisplayModePropertiesKHR                = 0;
13658     PFN_vkCreateDisplayModeKHR                       vkCreateDisplayModeKHR                       = 0;
13659     PFN_vkGetDisplayPlaneCapabilitiesKHR             vkGetDisplayPlaneCapabilitiesKHR             = 0;
13660     PFN_vkCreateDisplayPlaneSurfaceKHR               vkCreateDisplayPlaneSurfaceKHR               = 0;
13661 
13662     //=== VK_KHR_display_swapchain ===
13663     PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0;
13664 
13665 #if defined( VK_USE_PLATFORM_XLIB_KHR )
13666     //=== VK_KHR_xlib_surface ===
13667     PFN_vkCreateXlibSurfaceKHR                        vkCreateXlibSurfaceKHR                        = 0;
13668     PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR = 0;
13669 #else
13670     PFN_dummy vkCreateXlibSurfaceKHR_placeholder                                  = 0;
13671     PFN_dummy vkGetPhysicalDeviceXlibPresentationSupportKHR_placeholder           = 0;
13672 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
13673 
13674 #if defined( VK_USE_PLATFORM_XCB_KHR )
13675     //=== VK_KHR_xcb_surface ===
13676     PFN_vkCreateXcbSurfaceKHR                        vkCreateXcbSurfaceKHR                        = 0;
13677     PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR = 0;
13678 #else
13679     PFN_dummy vkCreateXcbSurfaceKHR_placeholder                                   = 0;
13680     PFN_dummy vkGetPhysicalDeviceXcbPresentationSupportKHR_placeholder            = 0;
13681 #endif /*VK_USE_PLATFORM_XCB_KHR*/
13682 
13683 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
13684     //=== VK_KHR_wayland_surface ===
13685     PFN_vkCreateWaylandSurfaceKHR                        vkCreateWaylandSurfaceKHR                        = 0;
13686     PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0;
13687 #else
13688     PFN_dummy vkCreateWaylandSurfaceKHR_placeholder                               = 0;
13689     PFN_dummy vkGetPhysicalDeviceWaylandPresentationSupportKHR_placeholder        = 0;
13690 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
13691 
13692 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
13693     //=== VK_KHR_android_surface ===
13694     PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0;
13695 #else
13696     PFN_dummy vkCreateAndroidSurfaceKHR_placeholder                               = 0;
13697 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
13698 
13699 #if defined( VK_USE_PLATFORM_WIN32_KHR )
13700     //=== VK_KHR_win32_surface ===
13701     PFN_vkCreateWin32SurfaceKHR                        vkCreateWin32SurfaceKHR                        = 0;
13702     PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR = 0;
13703 #else
13704     PFN_dummy vkCreateWin32SurfaceKHR_placeholder                                 = 0;
13705     PFN_dummy vkGetPhysicalDeviceWin32PresentationSupportKHR_placeholder          = 0;
13706 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13707 
13708     //=== VK_EXT_debug_report ===
13709     PFN_vkCreateDebugReportCallbackEXT  vkCreateDebugReportCallbackEXT  = 0;
13710     PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0;
13711     PFN_vkDebugReportMessageEXT         vkDebugReportMessageEXT         = 0;
13712 
13713     //=== VK_EXT_debug_marker ===
13714     PFN_vkDebugMarkerSetObjectTagEXT  vkDebugMarkerSetObjectTagEXT  = 0;
13715     PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0;
13716     PFN_vkCmdDebugMarkerBeginEXT      vkCmdDebugMarkerBeginEXT      = 0;
13717     PFN_vkCmdDebugMarkerEndEXT        vkCmdDebugMarkerEndEXT        = 0;
13718     PFN_vkCmdDebugMarkerInsertEXT     vkCmdDebugMarkerInsertEXT     = 0;
13719 
13720     //=== VK_KHR_video_queue ===
13721     PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR     vkGetPhysicalDeviceVideoCapabilitiesKHR     = 0;
13722     PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR = 0;
13723     PFN_vkCreateVideoSessionKHR                     vkCreateVideoSessionKHR                     = 0;
13724     PFN_vkDestroyVideoSessionKHR                    vkDestroyVideoSessionKHR                    = 0;
13725     PFN_vkGetVideoSessionMemoryRequirementsKHR      vkGetVideoSessionMemoryRequirementsKHR      = 0;
13726     PFN_vkBindVideoSessionMemoryKHR                 vkBindVideoSessionMemoryKHR                 = 0;
13727     PFN_vkCreateVideoSessionParametersKHR           vkCreateVideoSessionParametersKHR           = 0;
13728     PFN_vkUpdateVideoSessionParametersKHR           vkUpdateVideoSessionParametersKHR           = 0;
13729     PFN_vkDestroyVideoSessionParametersKHR          vkDestroyVideoSessionParametersKHR          = 0;
13730     PFN_vkCmdBeginVideoCodingKHR                    vkCmdBeginVideoCodingKHR                    = 0;
13731     PFN_vkCmdEndVideoCodingKHR                      vkCmdEndVideoCodingKHR                      = 0;
13732     PFN_vkCmdControlVideoCodingKHR                  vkCmdControlVideoCodingKHR                  = 0;
13733 
13734     //=== VK_KHR_video_decode_queue ===
13735     PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR = 0;
13736 
13737     //=== VK_EXT_transform_feedback ===
13738     PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0;
13739     PFN_vkCmdBeginTransformFeedbackEXT       vkCmdBeginTransformFeedbackEXT       = 0;
13740     PFN_vkCmdEndTransformFeedbackEXT         vkCmdEndTransformFeedbackEXT         = 0;
13741     PFN_vkCmdBeginQueryIndexedEXT            vkCmdBeginQueryIndexedEXT            = 0;
13742     PFN_vkCmdEndQueryIndexedEXT              vkCmdEndQueryIndexedEXT              = 0;
13743     PFN_vkCmdDrawIndirectByteCountEXT        vkCmdDrawIndirectByteCountEXT        = 0;
13744 
13745     //=== VK_NVX_binary_import ===
13746     PFN_vkCreateCuModuleNVX    vkCreateCuModuleNVX    = 0;
13747     PFN_vkCreateCuFunctionNVX  vkCreateCuFunctionNVX  = 0;
13748     PFN_vkDestroyCuModuleNVX   vkDestroyCuModuleNVX   = 0;
13749     PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX = 0;
13750     PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX = 0;
13751 
13752     //=== VK_NVX_image_view_handle ===
13753     PFN_vkGetImageViewHandleNVX  vkGetImageViewHandleNVX  = 0;
13754     PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX = 0;
13755 
13756     //=== VK_AMD_draw_indirect_count ===
13757     PFN_vkCmdDrawIndirectCountAMD        vkCmdDrawIndirectCountAMD        = 0;
13758     PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD = 0;
13759 
13760     //=== VK_AMD_shader_info ===
13761     PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0;
13762 
13763     //=== VK_KHR_dynamic_rendering ===
13764     PFN_vkCmdBeginRenderingKHR vkCmdBeginRenderingKHR = 0;
13765     PFN_vkCmdEndRenderingKHR   vkCmdEndRenderingKHR   = 0;
13766 
13767 #if defined( VK_USE_PLATFORM_GGP )
13768     //=== VK_GGP_stream_descriptor_surface ===
13769     PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP = 0;
13770 #else
13771     PFN_dummy vkCreateStreamDescriptorSurfaceGGP_placeholder                      = 0;
13772 #endif /*VK_USE_PLATFORM_GGP*/
13773 
13774     //=== VK_NV_external_memory_capabilities ===
13775     PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0;
13776 
13777 #if defined( VK_USE_PLATFORM_WIN32_KHR )
13778     //=== VK_NV_external_memory_win32 ===
13779     PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0;
13780 #else
13781     PFN_dummy vkGetMemoryWin32HandleNV_placeholder                                = 0;
13782 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13783 
13784     //=== VK_KHR_get_physical_device_properties2 ===
13785     PFN_vkGetPhysicalDeviceFeatures2KHR                    vkGetPhysicalDeviceFeatures2KHR                    = 0;
13786     PFN_vkGetPhysicalDeviceProperties2KHR                  vkGetPhysicalDeviceProperties2KHR                  = 0;
13787     PFN_vkGetPhysicalDeviceFormatProperties2KHR            vkGetPhysicalDeviceFormatProperties2KHR            = 0;
13788     PFN_vkGetPhysicalDeviceImageFormatProperties2KHR       vkGetPhysicalDeviceImageFormatProperties2KHR       = 0;
13789     PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR       vkGetPhysicalDeviceQueueFamilyProperties2KHR       = 0;
13790     PFN_vkGetPhysicalDeviceMemoryProperties2KHR            vkGetPhysicalDeviceMemoryProperties2KHR            = 0;
13791     PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 0;
13792 
13793     //=== VK_KHR_device_group ===
13794     PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0;
13795     PFN_vkCmdSetDeviceMaskKHR                 vkCmdSetDeviceMaskKHR                 = 0;
13796     PFN_vkCmdDispatchBaseKHR                  vkCmdDispatchBaseKHR                  = 0;
13797 
13798 #if defined( VK_USE_PLATFORM_VI_NN )
13799     //=== VK_NN_vi_surface ===
13800     PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN = 0;
13801 #else
13802     PFN_dummy vkCreateViSurfaceNN_placeholder                                     = 0;
13803 #endif /*VK_USE_PLATFORM_VI_NN*/
13804 
13805     //=== VK_KHR_maintenance1 ===
13806     PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0;
13807 
13808     //=== VK_KHR_device_group_creation ===
13809     PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0;
13810 
13811     //=== VK_KHR_external_memory_capabilities ===
13812     PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0;
13813 
13814 #if defined( VK_USE_PLATFORM_WIN32_KHR )
13815     //=== VK_KHR_external_memory_win32 ===
13816     PFN_vkGetMemoryWin32HandleKHR           vkGetMemoryWin32HandleKHR           = 0;
13817     PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR = 0;
13818 #else
13819     PFN_dummy vkGetMemoryWin32HandleKHR_placeholder                               = 0;
13820     PFN_dummy vkGetMemoryWin32HandlePropertiesKHR_placeholder                     = 0;
13821 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13822 
13823     //=== VK_KHR_external_memory_fd ===
13824     PFN_vkGetMemoryFdKHR           vkGetMemoryFdKHR           = 0;
13825     PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0;
13826 
13827     //=== VK_KHR_external_semaphore_capabilities ===
13828     PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0;
13829 
13830 #if defined( VK_USE_PLATFORM_WIN32_KHR )
13831     //=== VK_KHR_external_semaphore_win32 ===
13832     PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0;
13833     PFN_vkGetSemaphoreWin32HandleKHR    vkGetSemaphoreWin32HandleKHR    = 0;
13834 #else
13835     PFN_dummy vkImportSemaphoreWin32HandleKHR_placeholder                         = 0;
13836     PFN_dummy vkGetSemaphoreWin32HandleKHR_placeholder                            = 0;
13837 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13838 
13839     //=== VK_KHR_external_semaphore_fd ===
13840     PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0;
13841     PFN_vkGetSemaphoreFdKHR    vkGetSemaphoreFdKHR    = 0;
13842 
13843     //=== VK_KHR_push_descriptor ===
13844     PFN_vkCmdPushDescriptorSetKHR             vkCmdPushDescriptorSetKHR             = 0;
13845     PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0;
13846 
13847     //=== VK_EXT_conditional_rendering ===
13848     PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0;
13849     PFN_vkCmdEndConditionalRenderingEXT   vkCmdEndConditionalRenderingEXT   = 0;
13850 
13851     //=== VK_KHR_descriptor_update_template ===
13852     PFN_vkCreateDescriptorUpdateTemplateKHR  vkCreateDescriptorUpdateTemplateKHR  = 0;
13853     PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR = 0;
13854     PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0;
13855 
13856     //=== VK_NV_clip_space_w_scaling ===
13857     PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0;
13858 
13859     //=== VK_EXT_direct_mode_display ===
13860     PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0;
13861 
13862 #if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
13863     //=== VK_EXT_acquire_xlib_display ===
13864     PFN_vkAcquireXlibDisplayEXT    vkAcquireXlibDisplayEXT    = 0;
13865     PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0;
13866 #else
13867     PFN_dummy vkAcquireXlibDisplayEXT_placeholder                                 = 0;
13868     PFN_dummy vkGetRandROutputDisplayEXT_placeholder                              = 0;
13869 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
13870 
13871     //=== VK_EXT_display_surface_counter ===
13872     PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0;
13873 
13874     //=== VK_EXT_display_control ===
13875     PFN_vkDisplayPowerControlEXT  vkDisplayPowerControlEXT  = 0;
13876     PFN_vkRegisterDeviceEventEXT  vkRegisterDeviceEventEXT  = 0;
13877     PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0;
13878     PFN_vkGetSwapchainCounterEXT  vkGetSwapchainCounterEXT  = 0;
13879 
13880     //=== VK_GOOGLE_display_timing ===
13881     PFN_vkGetRefreshCycleDurationGOOGLE   vkGetRefreshCycleDurationGOOGLE   = 0;
13882     PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0;
13883 
13884     //=== VK_EXT_discard_rectangles ===
13885     PFN_vkCmdSetDiscardRectangleEXT       vkCmdSetDiscardRectangleEXT       = 0;
13886     PFN_vkCmdSetDiscardRectangleEnableEXT vkCmdSetDiscardRectangleEnableEXT = 0;
13887     PFN_vkCmdSetDiscardRectangleModeEXT   vkCmdSetDiscardRectangleModeEXT   = 0;
13888 
13889     //=== VK_EXT_hdr_metadata ===
13890     PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0;
13891 
13892     //=== VK_KHR_create_renderpass2 ===
13893     PFN_vkCreateRenderPass2KHR   vkCreateRenderPass2KHR   = 0;
13894     PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0;
13895     PFN_vkCmdNextSubpass2KHR     vkCmdNextSubpass2KHR     = 0;
13896     PFN_vkCmdEndRenderPass2KHR   vkCmdEndRenderPass2KHR   = 0;
13897 
13898     //=== VK_KHR_shared_presentable_image ===
13899     PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0;
13900 
13901     //=== VK_KHR_external_fence_capabilities ===
13902     PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0;
13903 
13904 #if defined( VK_USE_PLATFORM_WIN32_KHR )
13905     //=== VK_KHR_external_fence_win32 ===
13906     PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0;
13907     PFN_vkGetFenceWin32HandleKHR    vkGetFenceWin32HandleKHR    = 0;
13908 #else
13909     PFN_dummy vkImportFenceWin32HandleKHR_placeholder                             = 0;
13910     PFN_dummy vkGetFenceWin32HandleKHR_placeholder                                = 0;
13911 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13912 
13913     //=== VK_KHR_external_fence_fd ===
13914     PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0;
13915     PFN_vkGetFenceFdKHR    vkGetFenceFdKHR    = 0;
13916 
13917     //=== VK_KHR_performance_query ===
13918     PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 0;
13919     PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR         vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR         = 0;
13920     PFN_vkAcquireProfilingLockKHR                                       vkAcquireProfilingLockKHR                                       = 0;
13921     PFN_vkReleaseProfilingLockKHR                                       vkReleaseProfilingLockKHR                                       = 0;
13922 
13923     //=== VK_KHR_get_surface_capabilities2 ===
13924     PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR = 0;
13925     PFN_vkGetPhysicalDeviceSurfaceFormats2KHR      vkGetPhysicalDeviceSurfaceFormats2KHR      = 0;
13926 
13927     //=== VK_KHR_get_display_properties2 ===
13928     PFN_vkGetPhysicalDeviceDisplayProperties2KHR      vkGetPhysicalDeviceDisplayProperties2KHR      = 0;
13929     PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0;
13930     PFN_vkGetDisplayModeProperties2KHR                vkGetDisplayModeProperties2KHR                = 0;
13931     PFN_vkGetDisplayPlaneCapabilities2KHR             vkGetDisplayPlaneCapabilities2KHR             = 0;
13932 
13933 #if defined( VK_USE_PLATFORM_IOS_MVK )
13934     //=== VK_MVK_ios_surface ===
13935     PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0;
13936 #else
13937     PFN_dummy vkCreateIOSSurfaceMVK_placeholder                                   = 0;
13938 #endif /*VK_USE_PLATFORM_IOS_MVK*/
13939 
13940 #if defined( VK_USE_PLATFORM_MACOS_MVK )
13941     //=== VK_MVK_macos_surface ===
13942     PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK = 0;
13943 #else
13944     PFN_dummy vkCreateMacOSSurfaceMVK_placeholder                                 = 0;
13945 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
13946 
13947     //=== VK_EXT_debug_utils ===
13948     PFN_vkSetDebugUtilsObjectNameEXT    vkSetDebugUtilsObjectNameEXT    = 0;
13949     PFN_vkSetDebugUtilsObjectTagEXT     vkSetDebugUtilsObjectTagEXT     = 0;
13950     PFN_vkQueueBeginDebugUtilsLabelEXT  vkQueueBeginDebugUtilsLabelEXT  = 0;
13951     PFN_vkQueueEndDebugUtilsLabelEXT    vkQueueEndDebugUtilsLabelEXT    = 0;
13952     PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT = 0;
13953     PFN_vkCmdBeginDebugUtilsLabelEXT    vkCmdBeginDebugUtilsLabelEXT    = 0;
13954     PFN_vkCmdEndDebugUtilsLabelEXT      vkCmdEndDebugUtilsLabelEXT      = 0;
13955     PFN_vkCmdInsertDebugUtilsLabelEXT   vkCmdInsertDebugUtilsLabelEXT   = 0;
13956     PFN_vkCreateDebugUtilsMessengerEXT  vkCreateDebugUtilsMessengerEXT  = 0;
13957     PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0;
13958     PFN_vkSubmitDebugUtilsMessageEXT    vkSubmitDebugUtilsMessageEXT    = 0;
13959 
13960 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
13961     //=== VK_ANDROID_external_memory_android_hardware_buffer ===
13962     PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0;
13963     PFN_vkGetMemoryAndroidHardwareBufferANDROID     vkGetMemoryAndroidHardwareBufferANDROID     = 0;
13964 #else
13965     PFN_dummy vkGetAndroidHardwareBufferPropertiesANDROID_placeholder             = 0;
13966     PFN_dummy vkGetMemoryAndroidHardwareBufferANDROID_placeholder                 = 0;
13967 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
13968 
13969     //=== VK_EXT_sample_locations ===
13970     PFN_vkCmdSetSampleLocationsEXT                  vkCmdSetSampleLocationsEXT                  = 0;
13971     PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0;
13972 
13973     //=== VK_KHR_get_memory_requirements2 ===
13974     PFN_vkGetImageMemoryRequirements2KHR       vkGetImageMemoryRequirements2KHR       = 0;
13975     PFN_vkGetBufferMemoryRequirements2KHR      vkGetBufferMemoryRequirements2KHR      = 0;
13976     PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0;
13977 
13978     //=== VK_KHR_acceleration_structure ===
13979     PFN_vkCreateAccelerationStructureKHR                 vkCreateAccelerationStructureKHR                 = 0;
13980     PFN_vkDestroyAccelerationStructureKHR                vkDestroyAccelerationStructureKHR                = 0;
13981     PFN_vkCmdBuildAccelerationStructuresKHR              vkCmdBuildAccelerationStructuresKHR              = 0;
13982     PFN_vkCmdBuildAccelerationStructuresIndirectKHR      vkCmdBuildAccelerationStructuresIndirectKHR      = 0;
13983     PFN_vkBuildAccelerationStructuresKHR                 vkBuildAccelerationStructuresKHR                 = 0;
13984     PFN_vkCopyAccelerationStructureKHR                   vkCopyAccelerationStructureKHR                   = 0;
13985     PFN_vkCopyAccelerationStructureToMemoryKHR           vkCopyAccelerationStructureToMemoryKHR           = 0;
13986     PFN_vkCopyMemoryToAccelerationStructureKHR           vkCopyMemoryToAccelerationStructureKHR           = 0;
13987     PFN_vkWriteAccelerationStructuresPropertiesKHR       vkWriteAccelerationStructuresPropertiesKHR       = 0;
13988     PFN_vkCmdCopyAccelerationStructureKHR                vkCmdCopyAccelerationStructureKHR                = 0;
13989     PFN_vkCmdCopyAccelerationStructureToMemoryKHR        vkCmdCopyAccelerationStructureToMemoryKHR        = 0;
13990     PFN_vkCmdCopyMemoryToAccelerationStructureKHR        vkCmdCopyMemoryToAccelerationStructureKHR        = 0;
13991     PFN_vkGetAccelerationStructureDeviceAddressKHR       vkGetAccelerationStructureDeviceAddressKHR       = 0;
13992     PFN_vkCmdWriteAccelerationStructuresPropertiesKHR    vkCmdWriteAccelerationStructuresPropertiesKHR    = 0;
13993     PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR = 0;
13994     PFN_vkGetAccelerationStructureBuildSizesKHR          vkGetAccelerationStructureBuildSizesKHR          = 0;
13995 
13996     //=== VK_KHR_ray_tracing_pipeline ===
13997     PFN_vkCmdTraceRaysKHR                                 vkCmdTraceRaysKHR                                 = 0;
13998     PFN_vkCreateRayTracingPipelinesKHR                    vkCreateRayTracingPipelinesKHR                    = 0;
13999     PFN_vkGetRayTracingShaderGroupHandlesKHR              vkGetRayTracingShaderGroupHandlesKHR              = 0;
14000     PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0;
14001     PFN_vkCmdTraceRaysIndirectKHR                         vkCmdTraceRaysIndirectKHR                         = 0;
14002     PFN_vkGetRayTracingShaderGroupStackSizeKHR            vkGetRayTracingShaderGroupStackSizeKHR            = 0;
14003     PFN_vkCmdSetRayTracingPipelineStackSizeKHR            vkCmdSetRayTracingPipelineStackSizeKHR            = 0;
14004 
14005     //=== VK_KHR_sampler_ycbcr_conversion ===
14006     PFN_vkCreateSamplerYcbcrConversionKHR  vkCreateSamplerYcbcrConversionKHR  = 0;
14007     PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0;
14008 
14009     //=== VK_KHR_bind_memory2 ===
14010     PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0;
14011     PFN_vkBindImageMemory2KHR  vkBindImageMemory2KHR  = 0;
14012 
14013     //=== VK_EXT_image_drm_format_modifier ===
14014     PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0;
14015 
14016     //=== VK_EXT_validation_cache ===
14017     PFN_vkCreateValidationCacheEXT  vkCreateValidationCacheEXT  = 0;
14018     PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0;
14019     PFN_vkMergeValidationCachesEXT  vkMergeValidationCachesEXT  = 0;
14020     PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0;
14021 
14022     //=== VK_NV_shading_rate_image ===
14023     PFN_vkCmdBindShadingRateImageNV          vkCmdBindShadingRateImageNV          = 0;
14024     PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0;
14025     PFN_vkCmdSetCoarseSampleOrderNV          vkCmdSetCoarseSampleOrderNV          = 0;
14026 
14027     //=== VK_NV_ray_tracing ===
14028     PFN_vkCreateAccelerationStructureNV                vkCreateAccelerationStructureNV                = 0;
14029     PFN_vkDestroyAccelerationStructureNV               vkDestroyAccelerationStructureNV               = 0;
14030     PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0;
14031     PFN_vkBindAccelerationStructureMemoryNV            vkBindAccelerationStructureMemoryNV            = 0;
14032     PFN_vkCmdBuildAccelerationStructureNV              vkCmdBuildAccelerationStructureNV              = 0;
14033     PFN_vkCmdCopyAccelerationStructureNV               vkCmdCopyAccelerationStructureNV               = 0;
14034     PFN_vkCmdTraceRaysNV                               vkCmdTraceRaysNV                               = 0;
14035     PFN_vkCreateRayTracingPipelinesNV                  vkCreateRayTracingPipelinesNV                  = 0;
14036     PFN_vkGetRayTracingShaderGroupHandlesNV            vkGetRayTracingShaderGroupHandlesNV            = 0;
14037     PFN_vkGetAccelerationStructureHandleNV             vkGetAccelerationStructureHandleNV             = 0;
14038     PFN_vkCmdWriteAccelerationStructuresPropertiesNV   vkCmdWriteAccelerationStructuresPropertiesNV   = 0;
14039     PFN_vkCompileDeferredNV                            vkCompileDeferredNV                            = 0;
14040 
14041     //=== VK_KHR_maintenance3 ===
14042     PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0;
14043 
14044     //=== VK_KHR_draw_indirect_count ===
14045     PFN_vkCmdDrawIndirectCountKHR        vkCmdDrawIndirectCountKHR        = 0;
14046     PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0;
14047 
14048     //=== VK_EXT_external_memory_host ===
14049     PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT = 0;
14050 
14051     //=== VK_AMD_buffer_marker ===
14052     PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0;
14053 
14054     //=== VK_EXT_calibrated_timestamps ===
14055     PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0;
14056     PFN_vkGetCalibratedTimestampsEXT                   vkGetCalibratedTimestampsEXT                   = 0;
14057 
14058     //=== VK_NV_mesh_shader ===
14059     PFN_vkCmdDrawMeshTasksNV              vkCmdDrawMeshTasksNV              = 0;
14060     PFN_vkCmdDrawMeshTasksIndirectNV      vkCmdDrawMeshTasksIndirectNV      = 0;
14061     PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0;
14062 
14063     //=== VK_NV_scissor_exclusive ===
14064     PFN_vkCmdSetExclusiveScissorEnableNV vkCmdSetExclusiveScissorEnableNV = 0;
14065     PFN_vkCmdSetExclusiveScissorNV       vkCmdSetExclusiveScissorNV       = 0;
14066 
14067     //=== VK_NV_device_diagnostic_checkpoints ===
14068     PFN_vkCmdSetCheckpointNV       vkCmdSetCheckpointNV       = 0;
14069     PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0;
14070 
14071     //=== VK_KHR_timeline_semaphore ===
14072     PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR = 0;
14073     PFN_vkWaitSemaphoresKHR           vkWaitSemaphoresKHR           = 0;
14074     PFN_vkSignalSemaphoreKHR          vkSignalSemaphoreKHR          = 0;
14075 
14076     //=== VK_INTEL_performance_query ===
14077     PFN_vkInitializePerformanceApiINTEL         vkInitializePerformanceApiINTEL         = 0;
14078     PFN_vkUninitializePerformanceApiINTEL       vkUninitializePerformanceApiINTEL       = 0;
14079     PFN_vkCmdSetPerformanceMarkerINTEL          vkCmdSetPerformanceMarkerINTEL          = 0;
14080     PFN_vkCmdSetPerformanceStreamMarkerINTEL    vkCmdSetPerformanceStreamMarkerINTEL    = 0;
14081     PFN_vkCmdSetPerformanceOverrideINTEL        vkCmdSetPerformanceOverrideINTEL        = 0;
14082     PFN_vkAcquirePerformanceConfigurationINTEL  vkAcquirePerformanceConfigurationINTEL  = 0;
14083     PFN_vkReleasePerformanceConfigurationINTEL  vkReleasePerformanceConfigurationINTEL  = 0;
14084     PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0;
14085     PFN_vkGetPerformanceParameterINTEL          vkGetPerformanceParameterINTEL          = 0;
14086 
14087     //=== VK_AMD_display_native_hdr ===
14088     PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0;
14089 
14090 #if defined( VK_USE_PLATFORM_FUCHSIA )
14091     //=== VK_FUCHSIA_imagepipe_surface ===
14092     PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0;
14093 #else
14094     PFN_dummy vkCreateImagePipeSurfaceFUCHSIA_placeholder                         = 0;
14095 #endif /*VK_USE_PLATFORM_FUCHSIA*/
14096 
14097 #if defined( VK_USE_PLATFORM_METAL_EXT )
14098     //=== VK_EXT_metal_surface ===
14099     PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0;
14100 #else
14101     PFN_dummy vkCreateMetalSurfaceEXT_placeholder                                 = 0;
14102 #endif /*VK_USE_PLATFORM_METAL_EXT*/
14103 
14104     //=== VK_KHR_fragment_shading_rate ===
14105     PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR = 0;
14106     PFN_vkCmdSetFragmentShadingRateKHR             vkCmdSetFragmentShadingRateKHR             = 0;
14107 
14108     //=== VK_EXT_buffer_device_address ===
14109     PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0;
14110 
14111     //=== VK_EXT_tooling_info ===
14112     PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT = 0;
14113 
14114     //=== VK_KHR_present_wait ===
14115     PFN_vkWaitForPresentKHR vkWaitForPresentKHR = 0;
14116 
14117     //=== VK_NV_cooperative_matrix ===
14118     PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 0;
14119 
14120     //=== VK_NV_coverage_reduction_mode ===
14121     PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0;
14122 
14123 #if defined( VK_USE_PLATFORM_WIN32_KHR )
14124     //=== VK_EXT_full_screen_exclusive ===
14125     PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT = 0;
14126     PFN_vkAcquireFullScreenExclusiveModeEXT        vkAcquireFullScreenExclusiveModeEXT        = 0;
14127     PFN_vkReleaseFullScreenExclusiveModeEXT        vkReleaseFullScreenExclusiveModeEXT        = 0;
14128     PFN_vkGetDeviceGroupSurfacePresentModes2EXT    vkGetDeviceGroupSurfacePresentModes2EXT    = 0;
14129 #else
14130     PFN_dummy vkGetPhysicalDeviceSurfacePresentModes2EXT_placeholder              = 0;
14131     PFN_dummy vkAcquireFullScreenExclusiveModeEXT_placeholder                     = 0;
14132     PFN_dummy vkReleaseFullScreenExclusiveModeEXT_placeholder                     = 0;
14133     PFN_dummy vkGetDeviceGroupSurfacePresentModes2EXT_placeholder                 = 0;
14134 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
14135 
14136     //=== VK_EXT_headless_surface ===
14137     PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0;
14138 
14139     //=== VK_KHR_buffer_device_address ===
14140     PFN_vkGetBufferDeviceAddressKHR              vkGetBufferDeviceAddressKHR              = 0;
14141     PFN_vkGetBufferOpaqueCaptureAddressKHR       vkGetBufferOpaqueCaptureAddressKHR       = 0;
14142     PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR = 0;
14143 
14144     //=== VK_EXT_line_rasterization ===
14145     PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0;
14146 
14147     //=== VK_EXT_host_query_reset ===
14148     PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0;
14149 
14150     //=== VK_EXT_extended_dynamic_state ===
14151     PFN_vkCmdSetCullModeEXT              vkCmdSetCullModeEXT              = 0;
14152     PFN_vkCmdSetFrontFaceEXT             vkCmdSetFrontFaceEXT             = 0;
14153     PFN_vkCmdSetPrimitiveTopologyEXT     vkCmdSetPrimitiveTopologyEXT     = 0;
14154     PFN_vkCmdSetViewportWithCountEXT     vkCmdSetViewportWithCountEXT     = 0;
14155     PFN_vkCmdSetScissorWithCountEXT      vkCmdSetScissorWithCountEXT      = 0;
14156     PFN_vkCmdBindVertexBuffers2EXT       vkCmdBindVertexBuffers2EXT       = 0;
14157     PFN_vkCmdSetDepthTestEnableEXT       vkCmdSetDepthTestEnableEXT       = 0;
14158     PFN_vkCmdSetDepthWriteEnableEXT      vkCmdSetDepthWriteEnableEXT      = 0;
14159     PFN_vkCmdSetDepthCompareOpEXT        vkCmdSetDepthCompareOpEXT        = 0;
14160     PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT = 0;
14161     PFN_vkCmdSetStencilTestEnableEXT     vkCmdSetStencilTestEnableEXT     = 0;
14162     PFN_vkCmdSetStencilOpEXT             vkCmdSetStencilOpEXT             = 0;
14163 
14164     //=== VK_KHR_deferred_host_operations ===
14165     PFN_vkCreateDeferredOperationKHR            vkCreateDeferredOperationKHR            = 0;
14166     PFN_vkDestroyDeferredOperationKHR           vkDestroyDeferredOperationKHR           = 0;
14167     PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR = 0;
14168     PFN_vkGetDeferredOperationResultKHR         vkGetDeferredOperationResultKHR         = 0;
14169     PFN_vkDeferredOperationJoinKHR              vkDeferredOperationJoinKHR              = 0;
14170 
14171     //=== VK_KHR_pipeline_executable_properties ===
14172     PFN_vkGetPipelineExecutablePropertiesKHR              vkGetPipelineExecutablePropertiesKHR              = 0;
14173     PFN_vkGetPipelineExecutableStatisticsKHR              vkGetPipelineExecutableStatisticsKHR              = 0;
14174     PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0;
14175 
14176     //=== VK_EXT_host_image_copy ===
14177     PFN_vkCopyMemoryToImageEXT          vkCopyMemoryToImageEXT          = 0;
14178     PFN_vkCopyImageToMemoryEXT          vkCopyImageToMemoryEXT          = 0;
14179     PFN_vkCopyImageToImageEXT           vkCopyImageToImageEXT           = 0;
14180     PFN_vkTransitionImageLayoutEXT      vkTransitionImageLayoutEXT      = 0;
14181     PFN_vkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXT = 0;
14182 
14183     //=== VK_KHR_map_memory2 ===
14184     PFN_vkMapMemory2KHR   vkMapMemory2KHR   = 0;
14185     PFN_vkUnmapMemory2KHR vkUnmapMemory2KHR = 0;
14186 
14187     //=== VK_EXT_swapchain_maintenance1 ===
14188     PFN_vkReleaseSwapchainImagesEXT vkReleaseSwapchainImagesEXT = 0;
14189 
14190     //=== VK_NV_device_generated_commands ===
14191     PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV = 0;
14192     PFN_vkCmdPreprocessGeneratedCommandsNV         vkCmdPreprocessGeneratedCommandsNV         = 0;
14193     PFN_vkCmdExecuteGeneratedCommandsNV            vkCmdExecuteGeneratedCommandsNV            = 0;
14194     PFN_vkCmdBindPipelineShaderGroupNV             vkCmdBindPipelineShaderGroupNV             = 0;
14195     PFN_vkCreateIndirectCommandsLayoutNV           vkCreateIndirectCommandsLayoutNV           = 0;
14196     PFN_vkDestroyIndirectCommandsLayoutNV          vkDestroyIndirectCommandsLayoutNV          = 0;
14197 
14198     //=== VK_EXT_depth_bias_control ===
14199     PFN_vkCmdSetDepthBias2EXT vkCmdSetDepthBias2EXT = 0;
14200 
14201     //=== VK_EXT_acquire_drm_display ===
14202     PFN_vkAcquireDrmDisplayEXT vkAcquireDrmDisplayEXT = 0;
14203     PFN_vkGetDrmDisplayEXT     vkGetDrmDisplayEXT     = 0;
14204 
14205     //=== VK_EXT_private_data ===
14206     PFN_vkCreatePrivateDataSlotEXT  vkCreatePrivateDataSlotEXT  = 0;
14207     PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT = 0;
14208     PFN_vkSetPrivateDataEXT         vkSetPrivateDataEXT         = 0;
14209     PFN_vkGetPrivateDataEXT         vkGetPrivateDataEXT         = 0;
14210 
14211 #if defined( VK_ENABLE_BETA_EXTENSIONS )
14212     //=== VK_KHR_video_encode_queue ===
14213     PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = 0;
14214     PFN_vkGetEncodedVideoSessionParametersKHR                   vkGetEncodedVideoSessionParametersKHR                   = 0;
14215     PFN_vkCmdEncodeVideoKHR                                     vkCmdEncodeVideoKHR                                     = 0;
14216 #else
14217     PFN_dummy vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR_placeholder = 0;
14218     PFN_dummy vkGetEncodedVideoSessionParametersKHR_placeholder                   = 0;
14219     PFN_dummy vkCmdEncodeVideoKHR_placeholder                                     = 0;
14220 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14221 
14222 #if defined( VK_USE_PLATFORM_METAL_EXT )
14223     //=== VK_EXT_metal_objects ===
14224     PFN_vkExportMetalObjectsEXT vkExportMetalObjectsEXT = 0;
14225 #else
14226     PFN_dummy vkExportMetalObjectsEXT_placeholder                                 = 0;
14227 #endif /*VK_USE_PLATFORM_METAL_EXT*/
14228 
14229     //=== VK_KHR_synchronization2 ===
14230     PFN_vkCmdSetEvent2KHR           vkCmdSetEvent2KHR           = 0;
14231     PFN_vkCmdResetEvent2KHR         vkCmdResetEvent2KHR         = 0;
14232     PFN_vkCmdWaitEvents2KHR         vkCmdWaitEvents2KHR         = 0;
14233     PFN_vkCmdPipelineBarrier2KHR    vkCmdPipelineBarrier2KHR    = 0;
14234     PFN_vkCmdWriteTimestamp2KHR     vkCmdWriteTimestamp2KHR     = 0;
14235     PFN_vkQueueSubmit2KHR           vkQueueSubmit2KHR           = 0;
14236     PFN_vkCmdWriteBufferMarker2AMD  vkCmdWriteBufferMarker2AMD  = 0;
14237     PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV = 0;
14238 
14239     //=== VK_EXT_descriptor_buffer ===
14240     PFN_vkGetDescriptorSetLayoutSizeEXT                          vkGetDescriptorSetLayoutSizeEXT                          = 0;
14241     PFN_vkGetDescriptorSetLayoutBindingOffsetEXT                 vkGetDescriptorSetLayoutBindingOffsetEXT                 = 0;
14242     PFN_vkGetDescriptorEXT                                       vkGetDescriptorEXT                                       = 0;
14243     PFN_vkCmdBindDescriptorBuffersEXT                            vkCmdBindDescriptorBuffersEXT                            = 0;
14244     PFN_vkCmdSetDescriptorBufferOffsetsEXT                       vkCmdSetDescriptorBufferOffsetsEXT                       = 0;
14245     PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT             vkCmdBindDescriptorBufferEmbeddedSamplersEXT             = 0;
14246     PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT                vkGetBufferOpaqueCaptureDescriptorDataEXT                = 0;
14247     PFN_vkGetImageOpaqueCaptureDescriptorDataEXT                 vkGetImageOpaqueCaptureDescriptorDataEXT                 = 0;
14248     PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT             vkGetImageViewOpaqueCaptureDescriptorDataEXT             = 0;
14249     PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT               vkGetSamplerOpaqueCaptureDescriptorDataEXT               = 0;
14250     PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = 0;
14251 
14252     //=== VK_NV_fragment_shading_rate_enums ===
14253     PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV = 0;
14254 
14255     //=== VK_EXT_mesh_shader ===
14256     PFN_vkCmdDrawMeshTasksEXT              vkCmdDrawMeshTasksEXT              = 0;
14257     PFN_vkCmdDrawMeshTasksIndirectEXT      vkCmdDrawMeshTasksIndirectEXT      = 0;
14258     PFN_vkCmdDrawMeshTasksIndirectCountEXT vkCmdDrawMeshTasksIndirectCountEXT = 0;
14259 
14260     //=== VK_KHR_copy_commands2 ===
14261     PFN_vkCmdCopyBuffer2KHR        vkCmdCopyBuffer2KHR        = 0;
14262     PFN_vkCmdCopyImage2KHR         vkCmdCopyImage2KHR         = 0;
14263     PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR = 0;
14264     PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR = 0;
14265     PFN_vkCmdBlitImage2KHR         vkCmdBlitImage2KHR         = 0;
14266     PFN_vkCmdResolveImage2KHR      vkCmdResolveImage2KHR      = 0;
14267 
14268     //=== VK_EXT_device_fault ===
14269     PFN_vkGetDeviceFaultInfoEXT vkGetDeviceFaultInfoEXT = 0;
14270 
14271 #if defined( VK_USE_PLATFORM_WIN32_KHR )
14272     //=== VK_NV_acquire_winrt_display ===
14273     PFN_vkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNV = 0;
14274     PFN_vkGetWinrtDisplayNV     vkGetWinrtDisplayNV     = 0;
14275 #else
14276     PFN_dummy vkAcquireWinrtDisplayNV_placeholder                                 = 0;
14277     PFN_dummy vkGetWinrtDisplayNV_placeholder                                     = 0;
14278 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
14279 
14280 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
14281     //=== VK_EXT_directfb_surface ===
14282     PFN_vkCreateDirectFBSurfaceEXT                        vkCreateDirectFBSurfaceEXT                        = 0;
14283     PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0;
14284 #else
14285     PFN_dummy vkCreateDirectFBSurfaceEXT_placeholder                              = 0;
14286     PFN_dummy vkGetPhysicalDeviceDirectFBPresentationSupportEXT_placeholder       = 0;
14287 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
14288 
14289     //=== VK_EXT_vertex_input_dynamic_state ===
14290     PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT = 0;
14291 
14292 #if defined( VK_USE_PLATFORM_FUCHSIA )
14293     //=== VK_FUCHSIA_external_memory ===
14294     PFN_vkGetMemoryZirconHandleFUCHSIA           vkGetMemoryZirconHandleFUCHSIA           = 0;
14295     PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA = 0;
14296 #else
14297     PFN_dummy vkGetMemoryZirconHandleFUCHSIA_placeholder                          = 0;
14298     PFN_dummy vkGetMemoryZirconHandlePropertiesFUCHSIA_placeholder                = 0;
14299 #endif /*VK_USE_PLATFORM_FUCHSIA*/
14300 
14301 #if defined( VK_USE_PLATFORM_FUCHSIA )
14302     //=== VK_FUCHSIA_external_semaphore ===
14303     PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA = 0;
14304     PFN_vkGetSemaphoreZirconHandleFUCHSIA    vkGetSemaphoreZirconHandleFUCHSIA    = 0;
14305 #else
14306     PFN_dummy vkImportSemaphoreZirconHandleFUCHSIA_placeholder                    = 0;
14307     PFN_dummy vkGetSemaphoreZirconHandleFUCHSIA_placeholder                       = 0;
14308 #endif /*VK_USE_PLATFORM_FUCHSIA*/
14309 
14310 #if defined( VK_USE_PLATFORM_FUCHSIA )
14311     //=== VK_FUCHSIA_buffer_collection ===
14312     PFN_vkCreateBufferCollectionFUCHSIA               vkCreateBufferCollectionFUCHSIA               = 0;
14313     PFN_vkSetBufferCollectionImageConstraintsFUCHSIA  vkSetBufferCollectionImageConstraintsFUCHSIA  = 0;
14314     PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA vkSetBufferCollectionBufferConstraintsFUCHSIA = 0;
14315     PFN_vkDestroyBufferCollectionFUCHSIA              vkDestroyBufferCollectionFUCHSIA              = 0;
14316     PFN_vkGetBufferCollectionPropertiesFUCHSIA        vkGetBufferCollectionPropertiesFUCHSIA        = 0;
14317 #else
14318     PFN_dummy vkCreateBufferCollectionFUCHSIA_placeholder                         = 0;
14319     PFN_dummy vkSetBufferCollectionImageConstraintsFUCHSIA_placeholder            = 0;
14320     PFN_dummy vkSetBufferCollectionBufferConstraintsFUCHSIA_placeholder           = 0;
14321     PFN_dummy vkDestroyBufferCollectionFUCHSIA_placeholder                        = 0;
14322     PFN_dummy vkGetBufferCollectionPropertiesFUCHSIA_placeholder                  = 0;
14323 #endif /*VK_USE_PLATFORM_FUCHSIA*/
14324 
14325     //=== VK_HUAWEI_subpass_shading ===
14326     PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = 0;
14327     PFN_vkCmdSubpassShadingHUAWEI                       vkCmdSubpassShadingHUAWEI                       = 0;
14328 
14329     //=== VK_HUAWEI_invocation_mask ===
14330     PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI = 0;
14331 
14332     //=== VK_NV_external_memory_rdma ===
14333     PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV = 0;
14334 
14335     //=== VK_EXT_pipeline_properties ===
14336     PFN_vkGetPipelinePropertiesEXT vkGetPipelinePropertiesEXT = 0;
14337 
14338     //=== VK_EXT_extended_dynamic_state2 ===
14339     PFN_vkCmdSetPatchControlPointsEXT      vkCmdSetPatchControlPointsEXT      = 0;
14340     PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT = 0;
14341     PFN_vkCmdSetDepthBiasEnableEXT         vkCmdSetDepthBiasEnableEXT         = 0;
14342     PFN_vkCmdSetLogicOpEXT                 vkCmdSetLogicOpEXT                 = 0;
14343     PFN_vkCmdSetPrimitiveRestartEnableEXT  vkCmdSetPrimitiveRestartEnableEXT  = 0;
14344 
14345 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
14346     //=== VK_QNX_screen_surface ===
14347     PFN_vkCreateScreenSurfaceQNX                        vkCreateScreenSurfaceQNX                        = 0;
14348     PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX = 0;
14349 #else
14350     PFN_dummy vkCreateScreenSurfaceQNX_placeholder                                = 0;
14351     PFN_dummy vkGetPhysicalDeviceScreenPresentationSupportQNX_placeholder         = 0;
14352 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
14353 
14354     //=== VK_EXT_color_write_enable ===
14355     PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT = 0;
14356 
14357     //=== VK_KHR_ray_tracing_maintenance1 ===
14358     PFN_vkCmdTraceRaysIndirect2KHR vkCmdTraceRaysIndirect2KHR = 0;
14359 
14360     //=== VK_EXT_multi_draw ===
14361     PFN_vkCmdDrawMultiEXT        vkCmdDrawMultiEXT        = 0;
14362     PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT = 0;
14363 
14364     //=== VK_EXT_opacity_micromap ===
14365     PFN_vkCreateMicromapEXT                 vkCreateMicromapEXT                 = 0;
14366     PFN_vkDestroyMicromapEXT                vkDestroyMicromapEXT                = 0;
14367     PFN_vkCmdBuildMicromapsEXT              vkCmdBuildMicromapsEXT              = 0;
14368     PFN_vkBuildMicromapsEXT                 vkBuildMicromapsEXT                 = 0;
14369     PFN_vkCopyMicromapEXT                   vkCopyMicromapEXT                   = 0;
14370     PFN_vkCopyMicromapToMemoryEXT           vkCopyMicromapToMemoryEXT           = 0;
14371     PFN_vkCopyMemoryToMicromapEXT           vkCopyMemoryToMicromapEXT           = 0;
14372     PFN_vkWriteMicromapsPropertiesEXT       vkWriteMicromapsPropertiesEXT       = 0;
14373     PFN_vkCmdCopyMicromapEXT                vkCmdCopyMicromapEXT                = 0;
14374     PFN_vkCmdCopyMicromapToMemoryEXT        vkCmdCopyMicromapToMemoryEXT        = 0;
14375     PFN_vkCmdCopyMemoryToMicromapEXT        vkCmdCopyMemoryToMicromapEXT        = 0;
14376     PFN_vkCmdWriteMicromapsPropertiesEXT    vkCmdWriteMicromapsPropertiesEXT    = 0;
14377     PFN_vkGetDeviceMicromapCompatibilityEXT vkGetDeviceMicromapCompatibilityEXT = 0;
14378     PFN_vkGetMicromapBuildSizesEXT          vkGetMicromapBuildSizesEXT          = 0;
14379 
14380     //=== VK_HUAWEI_cluster_culling_shader ===
14381     PFN_vkCmdDrawClusterHUAWEI         vkCmdDrawClusterHUAWEI         = 0;
14382     PFN_vkCmdDrawClusterIndirectHUAWEI vkCmdDrawClusterIndirectHUAWEI = 0;
14383 
14384     //=== VK_EXT_pageable_device_local_memory ===
14385     PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT = 0;
14386 
14387     //=== VK_KHR_maintenance4 ===
14388     PFN_vkGetDeviceBufferMemoryRequirementsKHR      vkGetDeviceBufferMemoryRequirementsKHR      = 0;
14389     PFN_vkGetDeviceImageMemoryRequirementsKHR       vkGetDeviceImageMemoryRequirementsKHR       = 0;
14390     PFN_vkGetDeviceImageSparseMemoryRequirementsKHR vkGetDeviceImageSparseMemoryRequirementsKHR = 0;
14391 
14392     //=== VK_VALVE_descriptor_set_host_mapping ===
14393     PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE vkGetDescriptorSetLayoutHostMappingInfoVALVE = 0;
14394     PFN_vkGetDescriptorSetHostMappingVALVE           vkGetDescriptorSetHostMappingVALVE           = 0;
14395 
14396     //=== VK_NV_copy_memory_indirect ===
14397     PFN_vkCmdCopyMemoryIndirectNV        vkCmdCopyMemoryIndirectNV        = 0;
14398     PFN_vkCmdCopyMemoryToImageIndirectNV vkCmdCopyMemoryToImageIndirectNV = 0;
14399 
14400     //=== VK_NV_memory_decompression ===
14401     PFN_vkCmdDecompressMemoryNV              vkCmdDecompressMemoryNV              = 0;
14402     PFN_vkCmdDecompressMemoryIndirectCountNV vkCmdDecompressMemoryIndirectCountNV = 0;
14403 
14404     //=== VK_NV_device_generated_commands_compute ===
14405     PFN_vkGetPipelineIndirectMemoryRequirementsNV vkGetPipelineIndirectMemoryRequirementsNV = 0;
14406     PFN_vkCmdUpdatePipelineIndirectBufferNV       vkCmdUpdatePipelineIndirectBufferNV       = 0;
14407     PFN_vkGetPipelineIndirectDeviceAddressNV      vkGetPipelineIndirectDeviceAddressNV      = 0;
14408 
14409     //=== VK_EXT_extended_dynamic_state3 ===
14410     PFN_vkCmdSetTessellationDomainOriginEXT         vkCmdSetTessellationDomainOriginEXT         = 0;
14411     PFN_vkCmdSetDepthClampEnableEXT                 vkCmdSetDepthClampEnableEXT                 = 0;
14412     PFN_vkCmdSetPolygonModeEXT                      vkCmdSetPolygonModeEXT                      = 0;
14413     PFN_vkCmdSetRasterizationSamplesEXT             vkCmdSetRasterizationSamplesEXT             = 0;
14414     PFN_vkCmdSetSampleMaskEXT                       vkCmdSetSampleMaskEXT                       = 0;
14415     PFN_vkCmdSetAlphaToCoverageEnableEXT            vkCmdSetAlphaToCoverageEnableEXT            = 0;
14416     PFN_vkCmdSetAlphaToOneEnableEXT                 vkCmdSetAlphaToOneEnableEXT                 = 0;
14417     PFN_vkCmdSetLogicOpEnableEXT                    vkCmdSetLogicOpEnableEXT                    = 0;
14418     PFN_vkCmdSetColorBlendEnableEXT                 vkCmdSetColorBlendEnableEXT                 = 0;
14419     PFN_vkCmdSetColorBlendEquationEXT               vkCmdSetColorBlendEquationEXT               = 0;
14420     PFN_vkCmdSetColorWriteMaskEXT                   vkCmdSetColorWriteMaskEXT                   = 0;
14421     PFN_vkCmdSetRasterizationStreamEXT              vkCmdSetRasterizationStreamEXT              = 0;
14422     PFN_vkCmdSetConservativeRasterizationModeEXT    vkCmdSetConservativeRasterizationModeEXT    = 0;
14423     PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT vkCmdSetExtraPrimitiveOverestimationSizeEXT = 0;
14424     PFN_vkCmdSetDepthClipEnableEXT                  vkCmdSetDepthClipEnableEXT                  = 0;
14425     PFN_vkCmdSetSampleLocationsEnableEXT            vkCmdSetSampleLocationsEnableEXT            = 0;
14426     PFN_vkCmdSetColorBlendAdvancedEXT               vkCmdSetColorBlendAdvancedEXT               = 0;
14427     PFN_vkCmdSetProvokingVertexModeEXT              vkCmdSetProvokingVertexModeEXT              = 0;
14428     PFN_vkCmdSetLineRasterizationModeEXT            vkCmdSetLineRasterizationModeEXT            = 0;
14429     PFN_vkCmdSetLineStippleEnableEXT                vkCmdSetLineStippleEnableEXT                = 0;
14430     PFN_vkCmdSetDepthClipNegativeOneToOneEXT        vkCmdSetDepthClipNegativeOneToOneEXT        = 0;
14431     PFN_vkCmdSetViewportWScalingEnableNV            vkCmdSetViewportWScalingEnableNV            = 0;
14432     PFN_vkCmdSetViewportSwizzleNV                   vkCmdSetViewportSwizzleNV                   = 0;
14433     PFN_vkCmdSetCoverageToColorEnableNV             vkCmdSetCoverageToColorEnableNV             = 0;
14434     PFN_vkCmdSetCoverageToColorLocationNV           vkCmdSetCoverageToColorLocationNV           = 0;
14435     PFN_vkCmdSetCoverageModulationModeNV            vkCmdSetCoverageModulationModeNV            = 0;
14436     PFN_vkCmdSetCoverageModulationTableEnableNV     vkCmdSetCoverageModulationTableEnableNV     = 0;
14437     PFN_vkCmdSetCoverageModulationTableNV           vkCmdSetCoverageModulationTableNV           = 0;
14438     PFN_vkCmdSetShadingRateImageEnableNV            vkCmdSetShadingRateImageEnableNV            = 0;
14439     PFN_vkCmdSetRepresentativeFragmentTestEnableNV  vkCmdSetRepresentativeFragmentTestEnableNV  = 0;
14440     PFN_vkCmdSetCoverageReductionModeNV             vkCmdSetCoverageReductionModeNV             = 0;
14441 
14442     //=== VK_EXT_shader_module_identifier ===
14443     PFN_vkGetShaderModuleIdentifierEXT           vkGetShaderModuleIdentifierEXT           = 0;
14444     PFN_vkGetShaderModuleCreateInfoIdentifierEXT vkGetShaderModuleCreateInfoIdentifierEXT = 0;
14445 
14446     //=== VK_NV_optical_flow ===
14447     PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV vkGetPhysicalDeviceOpticalFlowImageFormatsNV = 0;
14448     PFN_vkCreateOpticalFlowSessionNV                 vkCreateOpticalFlowSessionNV                 = 0;
14449     PFN_vkDestroyOpticalFlowSessionNV                vkDestroyOpticalFlowSessionNV                = 0;
14450     PFN_vkBindOpticalFlowSessionImageNV              vkBindOpticalFlowSessionImageNV              = 0;
14451     PFN_vkCmdOpticalFlowExecuteNV                    vkCmdOpticalFlowExecuteNV                    = 0;
14452 
14453     //=== VK_EXT_shader_object ===
14454     PFN_vkCreateShadersEXT       vkCreateShadersEXT       = 0;
14455     PFN_vkDestroyShaderEXT       vkDestroyShaderEXT       = 0;
14456     PFN_vkGetShaderBinaryDataEXT vkGetShaderBinaryDataEXT = 0;
14457     PFN_vkCmdBindShadersEXT      vkCmdBindShadersEXT      = 0;
14458 
14459     //=== VK_QCOM_tile_properties ===
14460     PFN_vkGetFramebufferTilePropertiesQCOM      vkGetFramebufferTilePropertiesQCOM      = 0;
14461     PFN_vkGetDynamicRenderingTilePropertiesQCOM vkGetDynamicRenderingTilePropertiesQCOM = 0;
14462 
14463     //=== VK_KHR_cooperative_matrix ===
14464     PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = 0;
14465 
14466     //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
14467     PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT vkCmdSetAttachmentFeedbackLoopEnableEXT = 0;
14468 
14469 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
14470     //=== VK_QNX_external_memory_screen_buffer ===
14471     PFN_vkGetScreenBufferPropertiesQNX vkGetScreenBufferPropertiesQNX = 0;
14472 #else
14473     PFN_dummy vkGetScreenBufferPropertiesQNX_placeholder                          = 0;
14474 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
14475 
14476   public:
14477     DispatchLoaderDynamic() VULKAN_HPP_NOEXCEPT                                    = default;
14478     DispatchLoaderDynamic( DispatchLoaderDynamic const & rhs ) VULKAN_HPP_NOEXCEPT = default;
14479 
DispatchLoaderDynamic(PFN_vkGetInstanceProcAddr getInstanceProcAddr)14480     DispatchLoaderDynamic( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) VULKAN_HPP_NOEXCEPT
14481     {
14482       init( getInstanceProcAddr );
14483     }
14484 
init(PFN_vkGetInstanceProcAddr getInstanceProcAddr)14485     void init( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) VULKAN_HPP_NOEXCEPT
14486     {
14487       VULKAN_HPP_ASSERT( getInstanceProcAddr );
14488 
14489       vkGetInstanceProcAddr = getInstanceProcAddr;
14490 
14491       //=== VK_VERSION_1_0 ===
14492       vkCreateInstance = PFN_vkCreateInstance( vkGetInstanceProcAddr( NULL, "vkCreateInstance" ) );
14493       vkEnumerateInstanceExtensionProperties =
14494         PFN_vkEnumerateInstanceExtensionProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceExtensionProperties" ) );
14495       vkEnumerateInstanceLayerProperties = PFN_vkEnumerateInstanceLayerProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceLayerProperties" ) );
14496 
14497       //=== VK_VERSION_1_1 ===
14498       vkEnumerateInstanceVersion = PFN_vkEnumerateInstanceVersion( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceVersion" ) );
14499     }
14500 
14501     // This interface does not require a linked vulkan library.
DispatchLoaderDynamic(VkInstance instance,PFN_vkGetInstanceProcAddr getInstanceProcAddr,VkDevice device={},PFN_vkGetDeviceProcAddr getDeviceProcAddr=nullptr)14502     DispatchLoaderDynamic( VkInstance                instance,
14503                            PFN_vkGetInstanceProcAddr getInstanceProcAddr,
14504                            VkDevice                  device            = {},
14505                            PFN_vkGetDeviceProcAddr   getDeviceProcAddr = nullptr ) VULKAN_HPP_NOEXCEPT
14506     {
14507       init( instance, getInstanceProcAddr, device, getDeviceProcAddr );
14508     }
14509 
14510     // This interface does not require a linked vulkan library.
init(VkInstance instance,PFN_vkGetInstanceProcAddr getInstanceProcAddr,VkDevice device={},PFN_vkGetDeviceProcAddr=nullptr)14511     void init( VkInstance                instance,
14512                PFN_vkGetInstanceProcAddr getInstanceProcAddr,
14513                VkDevice                  device              = {},
14514                PFN_vkGetDeviceProcAddr /*getDeviceProcAddr*/ = nullptr ) VULKAN_HPP_NOEXCEPT
14515     {
14516       VULKAN_HPP_ASSERT( instance && getInstanceProcAddr );
14517       vkGetInstanceProcAddr = getInstanceProcAddr;
14518       init( VULKAN_HPP_NAMESPACE::Instance( instance ) );
14519       if ( device )
14520       {
14521         init( VULKAN_HPP_NAMESPACE::Device( device ) );
14522       }
14523     }
14524 
init(VULKAN_HPP_NAMESPACE::Instance instanceCpp)14525     void init( VULKAN_HPP_NAMESPACE::Instance instanceCpp ) VULKAN_HPP_NOEXCEPT
14526     {
14527       VkInstance instance = static_cast<VkInstance>( instanceCpp );
14528 
14529       //=== VK_VERSION_1_0 ===
14530       vkDestroyInstance                   = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) );
14531       vkEnumeratePhysicalDevices          = PFN_vkEnumeratePhysicalDevices( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ) );
14532       vkGetPhysicalDeviceFeatures         = PFN_vkGetPhysicalDeviceFeatures( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ) );
14533       vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ) );
14534       vkGetPhysicalDeviceImageFormatProperties =
14535         PFN_vkGetPhysicalDeviceImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ) );
14536       vkGetPhysicalDeviceProperties = PFN_vkGetPhysicalDeviceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ) );
14537       vkGetPhysicalDeviceQueueFamilyProperties =
14538         PFN_vkGetPhysicalDeviceQueueFamilyProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) );
14539       vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) );
14540       vkGetDeviceProcAddr                 = PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ) );
14541       vkCreateDevice                      = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) );
14542       vkDestroyDevice                     = PFN_vkDestroyDevice( vkGetInstanceProcAddr( instance, "vkDestroyDevice" ) );
14543       vkEnumerateDeviceExtensionProperties =
14544         PFN_vkEnumerateDeviceExtensionProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) );
14545       vkEnumerateDeviceLayerProperties   = PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) );
14546       vkGetDeviceQueue                   = PFN_vkGetDeviceQueue( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue" ) );
14547       vkQueueSubmit                      = PFN_vkQueueSubmit( vkGetInstanceProcAddr( instance, "vkQueueSubmit" ) );
14548       vkQueueWaitIdle                    = PFN_vkQueueWaitIdle( vkGetInstanceProcAddr( instance, "vkQueueWaitIdle" ) );
14549       vkDeviceWaitIdle                   = PFN_vkDeviceWaitIdle( vkGetInstanceProcAddr( instance, "vkDeviceWaitIdle" ) );
14550       vkAllocateMemory                   = PFN_vkAllocateMemory( vkGetInstanceProcAddr( instance, "vkAllocateMemory" ) );
14551       vkFreeMemory                       = PFN_vkFreeMemory( vkGetInstanceProcAddr( instance, "vkFreeMemory" ) );
14552       vkMapMemory                        = PFN_vkMapMemory( vkGetInstanceProcAddr( instance, "vkMapMemory" ) );
14553       vkUnmapMemory                      = PFN_vkUnmapMemory( vkGetInstanceProcAddr( instance, "vkUnmapMemory" ) );
14554       vkFlushMappedMemoryRanges          = PFN_vkFlushMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkFlushMappedMemoryRanges" ) );
14555       vkInvalidateMappedMemoryRanges     = PFN_vkInvalidateMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkInvalidateMappedMemoryRanges" ) );
14556       vkGetDeviceMemoryCommitment        = PFN_vkGetDeviceMemoryCommitment( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryCommitment" ) );
14557       vkBindBufferMemory                 = PFN_vkBindBufferMemory( vkGetInstanceProcAddr( instance, "vkBindBufferMemory" ) );
14558       vkBindImageMemory                  = PFN_vkBindImageMemory( vkGetInstanceProcAddr( instance, "vkBindImageMemory" ) );
14559       vkGetBufferMemoryRequirements      = PFN_vkGetBufferMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements" ) );
14560       vkGetImageMemoryRequirements       = PFN_vkGetImageMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements" ) );
14561       vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements" ) );
14562       vkGetPhysicalDeviceSparseImageFormatProperties =
14563         PFN_vkGetPhysicalDeviceSparseImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ) );
14564       vkQueueBindSparse            = PFN_vkQueueBindSparse( vkGetInstanceProcAddr( instance, "vkQueueBindSparse" ) );
14565       vkCreateFence                = PFN_vkCreateFence( vkGetInstanceProcAddr( instance, "vkCreateFence" ) );
14566       vkDestroyFence               = PFN_vkDestroyFence( vkGetInstanceProcAddr( instance, "vkDestroyFence" ) );
14567       vkResetFences                = PFN_vkResetFences( vkGetInstanceProcAddr( instance, "vkResetFences" ) );
14568       vkGetFenceStatus             = PFN_vkGetFenceStatus( vkGetInstanceProcAddr( instance, "vkGetFenceStatus" ) );
14569       vkWaitForFences              = PFN_vkWaitForFences( vkGetInstanceProcAddr( instance, "vkWaitForFences" ) );
14570       vkCreateSemaphore            = PFN_vkCreateSemaphore( vkGetInstanceProcAddr( instance, "vkCreateSemaphore" ) );
14571       vkDestroySemaphore           = PFN_vkDestroySemaphore( vkGetInstanceProcAddr( instance, "vkDestroySemaphore" ) );
14572       vkCreateEvent                = PFN_vkCreateEvent( vkGetInstanceProcAddr( instance, "vkCreateEvent" ) );
14573       vkDestroyEvent               = PFN_vkDestroyEvent( vkGetInstanceProcAddr( instance, "vkDestroyEvent" ) );
14574       vkGetEventStatus             = PFN_vkGetEventStatus( vkGetInstanceProcAddr( instance, "vkGetEventStatus" ) );
14575       vkSetEvent                   = PFN_vkSetEvent( vkGetInstanceProcAddr( instance, "vkSetEvent" ) );
14576       vkResetEvent                 = PFN_vkResetEvent( vkGetInstanceProcAddr( instance, "vkResetEvent" ) );
14577       vkCreateQueryPool            = PFN_vkCreateQueryPool( vkGetInstanceProcAddr( instance, "vkCreateQueryPool" ) );
14578       vkDestroyQueryPool           = PFN_vkDestroyQueryPool( vkGetInstanceProcAddr( instance, "vkDestroyQueryPool" ) );
14579       vkGetQueryPoolResults        = PFN_vkGetQueryPoolResults( vkGetInstanceProcAddr( instance, "vkGetQueryPoolResults" ) );
14580       vkCreateBuffer               = PFN_vkCreateBuffer( vkGetInstanceProcAddr( instance, "vkCreateBuffer" ) );
14581       vkDestroyBuffer              = PFN_vkDestroyBuffer( vkGetInstanceProcAddr( instance, "vkDestroyBuffer" ) );
14582       vkCreateBufferView           = PFN_vkCreateBufferView( vkGetInstanceProcAddr( instance, "vkCreateBufferView" ) );
14583       vkDestroyBufferView          = PFN_vkDestroyBufferView( vkGetInstanceProcAddr( instance, "vkDestroyBufferView" ) );
14584       vkCreateImage                = PFN_vkCreateImage( vkGetInstanceProcAddr( instance, "vkCreateImage" ) );
14585       vkDestroyImage               = PFN_vkDestroyImage( vkGetInstanceProcAddr( instance, "vkDestroyImage" ) );
14586       vkGetImageSubresourceLayout  = PFN_vkGetImageSubresourceLayout( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout" ) );
14587       vkCreateImageView            = PFN_vkCreateImageView( vkGetInstanceProcAddr( instance, "vkCreateImageView" ) );
14588       vkDestroyImageView           = PFN_vkDestroyImageView( vkGetInstanceProcAddr( instance, "vkDestroyImageView" ) );
14589       vkCreateShaderModule         = PFN_vkCreateShaderModule( vkGetInstanceProcAddr( instance, "vkCreateShaderModule" ) );
14590       vkDestroyShaderModule        = PFN_vkDestroyShaderModule( vkGetInstanceProcAddr( instance, "vkDestroyShaderModule" ) );
14591       vkCreatePipelineCache        = PFN_vkCreatePipelineCache( vkGetInstanceProcAddr( instance, "vkCreatePipelineCache" ) );
14592       vkDestroyPipelineCache       = PFN_vkDestroyPipelineCache( vkGetInstanceProcAddr( instance, "vkDestroyPipelineCache" ) );
14593       vkGetPipelineCacheData       = PFN_vkGetPipelineCacheData( vkGetInstanceProcAddr( instance, "vkGetPipelineCacheData" ) );
14594       vkMergePipelineCaches        = PFN_vkMergePipelineCaches( vkGetInstanceProcAddr( instance, "vkMergePipelineCaches" ) );
14595       vkCreateGraphicsPipelines    = PFN_vkCreateGraphicsPipelines( vkGetInstanceProcAddr( instance, "vkCreateGraphicsPipelines" ) );
14596       vkCreateComputePipelines     = PFN_vkCreateComputePipelines( vkGetInstanceProcAddr( instance, "vkCreateComputePipelines" ) );
14597       vkDestroyPipeline            = PFN_vkDestroyPipeline( vkGetInstanceProcAddr( instance, "vkDestroyPipeline" ) );
14598       vkCreatePipelineLayout       = PFN_vkCreatePipelineLayout( vkGetInstanceProcAddr( instance, "vkCreatePipelineLayout" ) );
14599       vkDestroyPipelineLayout      = PFN_vkDestroyPipelineLayout( vkGetInstanceProcAddr( instance, "vkDestroyPipelineLayout" ) );
14600       vkCreateSampler              = PFN_vkCreateSampler( vkGetInstanceProcAddr( instance, "vkCreateSampler" ) );
14601       vkDestroySampler             = PFN_vkDestroySampler( vkGetInstanceProcAddr( instance, "vkDestroySampler" ) );
14602       vkCreateDescriptorSetLayout  = PFN_vkCreateDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkCreateDescriptorSetLayout" ) );
14603       vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorSetLayout" ) );
14604       vkCreateDescriptorPool       = PFN_vkCreateDescriptorPool( vkGetInstanceProcAddr( instance, "vkCreateDescriptorPool" ) );
14605       vkDestroyDescriptorPool      = PFN_vkDestroyDescriptorPool( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorPool" ) );
14606       vkResetDescriptorPool        = PFN_vkResetDescriptorPool( vkGetInstanceProcAddr( instance, "vkResetDescriptorPool" ) );
14607       vkAllocateDescriptorSets     = PFN_vkAllocateDescriptorSets( vkGetInstanceProcAddr( instance, "vkAllocateDescriptorSets" ) );
14608       vkFreeDescriptorSets         = PFN_vkFreeDescriptorSets( vkGetInstanceProcAddr( instance, "vkFreeDescriptorSets" ) );
14609       vkUpdateDescriptorSets       = PFN_vkUpdateDescriptorSets( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSets" ) );
14610       vkCreateFramebuffer          = PFN_vkCreateFramebuffer( vkGetInstanceProcAddr( instance, "vkCreateFramebuffer" ) );
14611       vkDestroyFramebuffer         = PFN_vkDestroyFramebuffer( vkGetInstanceProcAddr( instance, "vkDestroyFramebuffer" ) );
14612       vkCreateRenderPass           = PFN_vkCreateRenderPass( vkGetInstanceProcAddr( instance, "vkCreateRenderPass" ) );
14613       vkDestroyRenderPass          = PFN_vkDestroyRenderPass( vkGetInstanceProcAddr( instance, "vkDestroyRenderPass" ) );
14614       vkGetRenderAreaGranularity   = PFN_vkGetRenderAreaGranularity( vkGetInstanceProcAddr( instance, "vkGetRenderAreaGranularity" ) );
14615       vkCreateCommandPool          = PFN_vkCreateCommandPool( vkGetInstanceProcAddr( instance, "vkCreateCommandPool" ) );
14616       vkDestroyCommandPool         = PFN_vkDestroyCommandPool( vkGetInstanceProcAddr( instance, "vkDestroyCommandPool" ) );
14617       vkResetCommandPool           = PFN_vkResetCommandPool( vkGetInstanceProcAddr( instance, "vkResetCommandPool" ) );
14618       vkAllocateCommandBuffers     = PFN_vkAllocateCommandBuffers( vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers" ) );
14619       vkFreeCommandBuffers         = PFN_vkFreeCommandBuffers( vkGetInstanceProcAddr( instance, "vkFreeCommandBuffers" ) );
14620       vkBeginCommandBuffer         = PFN_vkBeginCommandBuffer( vkGetInstanceProcAddr( instance, "vkBeginCommandBuffer" ) );
14621       vkEndCommandBuffer           = PFN_vkEndCommandBuffer( vkGetInstanceProcAddr( instance, "vkEndCommandBuffer" ) );
14622       vkResetCommandBuffer         = PFN_vkResetCommandBuffer( vkGetInstanceProcAddr( instance, "vkResetCommandBuffer" ) );
14623       vkCmdBindPipeline            = PFN_vkCmdBindPipeline( vkGetInstanceProcAddr( instance, "vkCmdBindPipeline" ) );
14624       vkCmdSetViewport             = PFN_vkCmdSetViewport( vkGetInstanceProcAddr( instance, "vkCmdSetViewport" ) );
14625       vkCmdSetScissor              = PFN_vkCmdSetScissor( vkGetInstanceProcAddr( instance, "vkCmdSetScissor" ) );
14626       vkCmdSetLineWidth            = PFN_vkCmdSetLineWidth( vkGetInstanceProcAddr( instance, "vkCmdSetLineWidth" ) );
14627       vkCmdSetDepthBias            = PFN_vkCmdSetDepthBias( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias" ) );
14628       vkCmdSetBlendConstants       = PFN_vkCmdSetBlendConstants( vkGetInstanceProcAddr( instance, "vkCmdSetBlendConstants" ) );
14629       vkCmdSetDepthBounds          = PFN_vkCmdSetDepthBounds( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBounds" ) );
14630       vkCmdSetStencilCompareMask   = PFN_vkCmdSetStencilCompareMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilCompareMask" ) );
14631       vkCmdSetStencilWriteMask     = PFN_vkCmdSetStencilWriteMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilWriteMask" ) );
14632       vkCmdSetStencilReference     = PFN_vkCmdSetStencilReference( vkGetInstanceProcAddr( instance, "vkCmdSetStencilReference" ) );
14633       vkCmdBindDescriptorSets      = PFN_vkCmdBindDescriptorSets( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets" ) );
14634       vkCmdBindIndexBuffer         = PFN_vkCmdBindIndexBuffer( vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer" ) );
14635       vkCmdBindVertexBuffers       = PFN_vkCmdBindVertexBuffers( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers" ) );
14636       vkCmdDraw                    = PFN_vkCmdDraw( vkGetInstanceProcAddr( instance, "vkCmdDraw" ) );
14637       vkCmdDrawIndexed             = PFN_vkCmdDrawIndexed( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexed" ) );
14638       vkCmdDrawIndirect            = PFN_vkCmdDrawIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirect" ) );
14639       vkCmdDrawIndexedIndirect     = PFN_vkCmdDrawIndexedIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirect" ) );
14640       vkCmdDispatch                = PFN_vkCmdDispatch( vkGetInstanceProcAddr( instance, "vkCmdDispatch" ) );
14641       vkCmdDispatchIndirect        = PFN_vkCmdDispatchIndirect( vkGetInstanceProcAddr( instance, "vkCmdDispatchIndirect" ) );
14642       vkCmdCopyBuffer              = PFN_vkCmdCopyBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer" ) );
14643       vkCmdCopyImage               = PFN_vkCmdCopyImage( vkGetInstanceProcAddr( instance, "vkCmdCopyImage" ) );
14644       vkCmdBlitImage               = PFN_vkCmdBlitImage( vkGetInstanceProcAddr( instance, "vkCmdBlitImage" ) );
14645       vkCmdCopyBufferToImage       = PFN_vkCmdCopyBufferToImage( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage" ) );
14646       vkCmdCopyImageToBuffer       = PFN_vkCmdCopyImageToBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer" ) );
14647       vkCmdUpdateBuffer            = PFN_vkCmdUpdateBuffer( vkGetInstanceProcAddr( instance, "vkCmdUpdateBuffer" ) );
14648       vkCmdFillBuffer              = PFN_vkCmdFillBuffer( vkGetInstanceProcAddr( instance, "vkCmdFillBuffer" ) );
14649       vkCmdClearColorImage         = PFN_vkCmdClearColorImage( vkGetInstanceProcAddr( instance, "vkCmdClearColorImage" ) );
14650       vkCmdClearDepthStencilImage  = PFN_vkCmdClearDepthStencilImage( vkGetInstanceProcAddr( instance, "vkCmdClearDepthStencilImage" ) );
14651       vkCmdClearAttachments        = PFN_vkCmdClearAttachments( vkGetInstanceProcAddr( instance, "vkCmdClearAttachments" ) );
14652       vkCmdResolveImage            = PFN_vkCmdResolveImage( vkGetInstanceProcAddr( instance, "vkCmdResolveImage" ) );
14653       vkCmdSetEvent                = PFN_vkCmdSetEvent( vkGetInstanceProcAddr( instance, "vkCmdSetEvent" ) );
14654       vkCmdResetEvent              = PFN_vkCmdResetEvent( vkGetInstanceProcAddr( instance, "vkCmdResetEvent" ) );
14655       vkCmdWaitEvents              = PFN_vkCmdWaitEvents( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents" ) );
14656       vkCmdPipelineBarrier         = PFN_vkCmdPipelineBarrier( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier" ) );
14657       vkCmdBeginQuery              = PFN_vkCmdBeginQuery( vkGetInstanceProcAddr( instance, "vkCmdBeginQuery" ) );
14658       vkCmdEndQuery                = PFN_vkCmdEndQuery( vkGetInstanceProcAddr( instance, "vkCmdEndQuery" ) );
14659       vkCmdResetQueryPool          = PFN_vkCmdResetQueryPool( vkGetInstanceProcAddr( instance, "vkCmdResetQueryPool" ) );
14660       vkCmdWriteTimestamp          = PFN_vkCmdWriteTimestamp( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp" ) );
14661       vkCmdCopyQueryPoolResults    = PFN_vkCmdCopyQueryPoolResults( vkGetInstanceProcAddr( instance, "vkCmdCopyQueryPoolResults" ) );
14662       vkCmdPushConstants           = PFN_vkCmdPushConstants( vkGetInstanceProcAddr( instance, "vkCmdPushConstants" ) );
14663       vkCmdBeginRenderPass         = PFN_vkCmdBeginRenderPass( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass" ) );
14664       vkCmdNextSubpass             = PFN_vkCmdNextSubpass( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass" ) );
14665       vkCmdEndRenderPass           = PFN_vkCmdEndRenderPass( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass" ) );
14666       vkCmdExecuteCommands         = PFN_vkCmdExecuteCommands( vkGetInstanceProcAddr( instance, "vkCmdExecuteCommands" ) );
14667 
14668       //=== VK_VERSION_1_1 ===
14669       vkBindBufferMemory2                 = PFN_vkBindBufferMemory2( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2" ) );
14670       vkBindImageMemory2                  = PFN_vkBindImageMemory2( vkGetInstanceProcAddr( instance, "vkBindImageMemory2" ) );
14671       vkGetDeviceGroupPeerMemoryFeatures  = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeatures" ) );
14672       vkCmdSetDeviceMask                  = PFN_vkCmdSetDeviceMask( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMask" ) );
14673       vkCmdDispatchBase                   = PFN_vkCmdDispatchBase( vkGetInstanceProcAddr( instance, "vkCmdDispatchBase" ) );
14674       vkEnumeratePhysicalDeviceGroups     = PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) );
14675       vkGetImageMemoryRequirements2       = PFN_vkGetImageMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2" ) );
14676       vkGetBufferMemoryRequirements2      = PFN_vkGetBufferMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2" ) );
14677       vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2" ) );
14678       vkGetPhysicalDeviceFeatures2        = PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) );
14679       vkGetPhysicalDeviceProperties2      = PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) );
14680       vkGetPhysicalDeviceFormatProperties2 =
14681         PFN_vkGetPhysicalDeviceFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) );
14682       vkGetPhysicalDeviceImageFormatProperties2 =
14683         PFN_vkGetPhysicalDeviceImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) );
14684       vkGetPhysicalDeviceQueueFamilyProperties2 =
14685         PFN_vkGetPhysicalDeviceQueueFamilyProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) );
14686       vkGetPhysicalDeviceMemoryProperties2 =
14687         PFN_vkGetPhysicalDeviceMemoryProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) );
14688       vkGetPhysicalDeviceSparseImageFormatProperties2 =
14689         PFN_vkGetPhysicalDeviceSparseImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ) );
14690       vkTrimCommandPool                 = PFN_vkTrimCommandPool( vkGetInstanceProcAddr( instance, "vkTrimCommandPool" ) );
14691       vkGetDeviceQueue2                 = PFN_vkGetDeviceQueue2( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue2" ) );
14692       vkCreateSamplerYcbcrConversion    = PFN_vkCreateSamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversion" ) );
14693       vkDestroySamplerYcbcrConversion   = PFN_vkDestroySamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversion" ) );
14694       vkCreateDescriptorUpdateTemplate  = PFN_vkCreateDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplate" ) );
14695       vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplate" ) );
14696       vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplate" ) );
14697       vkGetPhysicalDeviceExternalBufferProperties =
14698         PFN_vkGetPhysicalDeviceExternalBufferProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) );
14699       vkGetPhysicalDeviceExternalFenceProperties =
14700         PFN_vkGetPhysicalDeviceExternalFenceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) );
14701       vkGetPhysicalDeviceExternalSemaphoreProperties =
14702         PFN_vkGetPhysicalDeviceExternalSemaphoreProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) );
14703       vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupport" ) );
14704 
14705       //=== VK_VERSION_1_2 ===
14706       vkCmdDrawIndirectCount          = PFN_vkCmdDrawIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCount" ) );
14707       vkCmdDrawIndexedIndirectCount   = PFN_vkCmdDrawIndexedIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCount" ) );
14708       vkCreateRenderPass2             = PFN_vkCreateRenderPass2( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2" ) );
14709       vkCmdBeginRenderPass2           = PFN_vkCmdBeginRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2" ) );
14710       vkCmdNextSubpass2               = PFN_vkCmdNextSubpass2( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2" ) );
14711       vkCmdEndRenderPass2             = PFN_vkCmdEndRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2" ) );
14712       vkResetQueryPool                = PFN_vkResetQueryPool( vkGetInstanceProcAddr( instance, "vkResetQueryPool" ) );
14713       vkGetSemaphoreCounterValue      = PFN_vkGetSemaphoreCounterValue( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValue" ) );
14714       vkWaitSemaphores                = PFN_vkWaitSemaphores( vkGetInstanceProcAddr( instance, "vkWaitSemaphores" ) );
14715       vkSignalSemaphore               = PFN_vkSignalSemaphore( vkGetInstanceProcAddr( instance, "vkSignalSemaphore" ) );
14716       vkGetBufferDeviceAddress        = PFN_vkGetBufferDeviceAddress( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddress" ) );
14717       vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddress" ) );
14718       vkGetDeviceMemoryOpaqueCaptureAddress =
14719         PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
14720 
14721       //=== VK_VERSION_1_3 ===
14722       vkGetPhysicalDeviceToolProperties   = PFN_vkGetPhysicalDeviceToolProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolProperties" ) );
14723       vkCreatePrivateDataSlot             = PFN_vkCreatePrivateDataSlot( vkGetInstanceProcAddr( instance, "vkCreatePrivateDataSlot" ) );
14724       vkDestroyPrivateDataSlot            = PFN_vkDestroyPrivateDataSlot( vkGetInstanceProcAddr( instance, "vkDestroyPrivateDataSlot" ) );
14725       vkSetPrivateData                    = PFN_vkSetPrivateData( vkGetInstanceProcAddr( instance, "vkSetPrivateData" ) );
14726       vkGetPrivateData                    = PFN_vkGetPrivateData( vkGetInstanceProcAddr( instance, "vkGetPrivateData" ) );
14727       vkCmdSetEvent2                      = PFN_vkCmdSetEvent2( vkGetInstanceProcAddr( instance, "vkCmdSetEvent2" ) );
14728       vkCmdResetEvent2                    = PFN_vkCmdResetEvent2( vkGetInstanceProcAddr( instance, "vkCmdResetEvent2" ) );
14729       vkCmdWaitEvents2                    = PFN_vkCmdWaitEvents2( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents2" ) );
14730       vkCmdPipelineBarrier2               = PFN_vkCmdPipelineBarrier2( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier2" ) );
14731       vkCmdWriteTimestamp2                = PFN_vkCmdWriteTimestamp2( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp2" ) );
14732       vkQueueSubmit2                      = PFN_vkQueueSubmit2( vkGetInstanceProcAddr( instance, "vkQueueSubmit2" ) );
14733       vkCmdCopyBuffer2                    = PFN_vkCmdCopyBuffer2( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer2" ) );
14734       vkCmdCopyImage2                     = PFN_vkCmdCopyImage2( vkGetInstanceProcAddr( instance, "vkCmdCopyImage2" ) );
14735       vkCmdCopyBufferToImage2             = PFN_vkCmdCopyBufferToImage2( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage2" ) );
14736       vkCmdCopyImageToBuffer2             = PFN_vkCmdCopyImageToBuffer2( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer2" ) );
14737       vkCmdBlitImage2                     = PFN_vkCmdBlitImage2( vkGetInstanceProcAddr( instance, "vkCmdBlitImage2" ) );
14738       vkCmdResolveImage2                  = PFN_vkCmdResolveImage2( vkGetInstanceProcAddr( instance, "vkCmdResolveImage2" ) );
14739       vkCmdBeginRendering                 = PFN_vkCmdBeginRendering( vkGetInstanceProcAddr( instance, "vkCmdBeginRendering" ) );
14740       vkCmdEndRendering                   = PFN_vkCmdEndRendering( vkGetInstanceProcAddr( instance, "vkCmdEndRendering" ) );
14741       vkCmdSetCullMode                    = PFN_vkCmdSetCullMode( vkGetInstanceProcAddr( instance, "vkCmdSetCullMode" ) );
14742       vkCmdSetFrontFace                   = PFN_vkCmdSetFrontFace( vkGetInstanceProcAddr( instance, "vkCmdSetFrontFace" ) );
14743       vkCmdSetPrimitiveTopology           = PFN_vkCmdSetPrimitiveTopology( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveTopology" ) );
14744       vkCmdSetViewportWithCount           = PFN_vkCmdSetViewportWithCount( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWithCount" ) );
14745       vkCmdSetScissorWithCount            = PFN_vkCmdSetScissorWithCount( vkGetInstanceProcAddr( instance, "vkCmdSetScissorWithCount" ) );
14746       vkCmdBindVertexBuffers2             = PFN_vkCmdBindVertexBuffers2( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers2" ) );
14747       vkCmdSetDepthTestEnable             = PFN_vkCmdSetDepthTestEnable( vkGetInstanceProcAddr( instance, "vkCmdSetDepthTestEnable" ) );
14748       vkCmdSetDepthWriteEnable            = PFN_vkCmdSetDepthWriteEnable( vkGetInstanceProcAddr( instance, "vkCmdSetDepthWriteEnable" ) );
14749       vkCmdSetDepthCompareOp              = PFN_vkCmdSetDepthCompareOp( vkGetInstanceProcAddr( instance, "vkCmdSetDepthCompareOp" ) );
14750       vkCmdSetDepthBoundsTestEnable       = PFN_vkCmdSetDepthBoundsTestEnable( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBoundsTestEnable" ) );
14751       vkCmdSetStencilTestEnable           = PFN_vkCmdSetStencilTestEnable( vkGetInstanceProcAddr( instance, "vkCmdSetStencilTestEnable" ) );
14752       vkCmdSetStencilOp                   = PFN_vkCmdSetStencilOp( vkGetInstanceProcAddr( instance, "vkCmdSetStencilOp" ) );
14753       vkCmdSetRasterizerDiscardEnable     = PFN_vkCmdSetRasterizerDiscardEnable( vkGetInstanceProcAddr( instance, "vkCmdSetRasterizerDiscardEnable" ) );
14754       vkCmdSetDepthBiasEnable             = PFN_vkCmdSetDepthBiasEnable( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBiasEnable" ) );
14755       vkCmdSetPrimitiveRestartEnable      = PFN_vkCmdSetPrimitiveRestartEnable( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveRestartEnable" ) );
14756       vkGetDeviceBufferMemoryRequirements = PFN_vkGetDeviceBufferMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetDeviceBufferMemoryRequirements" ) );
14757       vkGetDeviceImageMemoryRequirements  = PFN_vkGetDeviceImageMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetDeviceImageMemoryRequirements" ) );
14758       vkGetDeviceImageSparseMemoryRequirements =
14759         PFN_vkGetDeviceImageSparseMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetDeviceImageSparseMemoryRequirements" ) );
14760 
14761       //=== VK_KHR_surface ===
14762       vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) );
14763       vkGetPhysicalDeviceSurfaceSupportKHR =
14764         PFN_vkGetPhysicalDeviceSurfaceSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) );
14765       vkGetPhysicalDeviceSurfaceCapabilitiesKHR =
14766         PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) );
14767       vkGetPhysicalDeviceSurfaceFormatsKHR =
14768         PFN_vkGetPhysicalDeviceSurfaceFormatsKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) );
14769       vkGetPhysicalDeviceSurfacePresentModesKHR =
14770         PFN_vkGetPhysicalDeviceSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) );
14771 
14772       //=== VK_KHR_swapchain ===
14773       vkCreateSwapchainKHR    = PFN_vkCreateSwapchainKHR( vkGetInstanceProcAddr( instance, "vkCreateSwapchainKHR" ) );
14774       vkDestroySwapchainKHR   = PFN_vkDestroySwapchainKHR( vkGetInstanceProcAddr( instance, "vkDestroySwapchainKHR" ) );
14775       vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainImagesKHR" ) );
14776       vkAcquireNextImageKHR   = PFN_vkAcquireNextImageKHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImageKHR" ) );
14777       vkQueuePresentKHR       = PFN_vkQueuePresentKHR( vkGetInstanceProcAddr( instance, "vkQueuePresentKHR" ) );
14778       vkGetDeviceGroupPresentCapabilitiesKHR =
14779         PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
14780       vkGetDeviceGroupSurfacePresentModesKHR =
14781         PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
14782       vkGetPhysicalDevicePresentRectanglesKHR =
14783         PFN_vkGetPhysicalDevicePresentRectanglesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) );
14784       vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImage2KHR" ) );
14785 
14786       //=== VK_KHR_display ===
14787       vkGetPhysicalDeviceDisplayPropertiesKHR =
14788         PFN_vkGetPhysicalDeviceDisplayPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) );
14789       vkGetPhysicalDeviceDisplayPlanePropertiesKHR =
14790         PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) );
14791       vkGetDisplayPlaneSupportedDisplaysKHR =
14792         PFN_vkGetDisplayPlaneSupportedDisplaysKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) );
14793       vkGetDisplayModePropertiesKHR    = PFN_vkGetDisplayModePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ) );
14794       vkCreateDisplayModeKHR           = PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) );
14795       vkGetDisplayPlaneCapabilitiesKHR = PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) );
14796       vkCreateDisplayPlaneSurfaceKHR   = PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) );
14797 
14798       //=== VK_KHR_display_swapchain ===
14799       vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetInstanceProcAddr( instance, "vkCreateSharedSwapchainsKHR" ) );
14800 
14801 #if defined( VK_USE_PLATFORM_XLIB_KHR )
14802       //=== VK_KHR_xlib_surface ===
14803       vkCreateXlibSurfaceKHR = PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) );
14804       vkGetPhysicalDeviceXlibPresentationSupportKHR =
14805         PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) );
14806 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
14807 
14808 #if defined( VK_USE_PLATFORM_XCB_KHR )
14809       //=== VK_KHR_xcb_surface ===
14810       vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) );
14811       vkGetPhysicalDeviceXcbPresentationSupportKHR =
14812         PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) );
14813 #endif /*VK_USE_PLATFORM_XCB_KHR*/
14814 
14815 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
14816       //=== VK_KHR_wayland_surface ===
14817       vkCreateWaylandSurfaceKHR = PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) );
14818       vkGetPhysicalDeviceWaylandPresentationSupportKHR =
14819         PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) );
14820 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
14821 
14822 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
14823       //=== VK_KHR_android_surface ===
14824       vkCreateAndroidSurfaceKHR = PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) );
14825 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
14826 
14827 #if defined( VK_USE_PLATFORM_WIN32_KHR )
14828       //=== VK_KHR_win32_surface ===
14829       vkCreateWin32SurfaceKHR = PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) );
14830       vkGetPhysicalDeviceWin32PresentationSupportKHR =
14831         PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) );
14832 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
14833 
14834       //=== VK_EXT_debug_report ===
14835       vkCreateDebugReportCallbackEXT  = PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) );
14836       vkDestroyDebugReportCallbackEXT = PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) );
14837       vkDebugReportMessageEXT         = PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) );
14838 
14839       //=== VK_EXT_debug_marker ===
14840       vkDebugMarkerSetObjectTagEXT  = PFN_vkDebugMarkerSetObjectTagEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectTagEXT" ) );
14841       vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectNameEXT" ) );
14842       vkCmdDebugMarkerBeginEXT      = PFN_vkCmdDebugMarkerBeginEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerBeginEXT" ) );
14843       vkCmdDebugMarkerEndEXT        = PFN_vkCmdDebugMarkerEndEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" ) );
14844       vkCmdDebugMarkerInsertEXT     = PFN_vkCmdDebugMarkerInsertEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" ) );
14845 
14846       //=== VK_KHR_video_queue ===
14847       vkGetPhysicalDeviceVideoCapabilitiesKHR =
14848         PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoCapabilitiesKHR" ) );
14849       vkGetPhysicalDeviceVideoFormatPropertiesKHR =
14850         PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoFormatPropertiesKHR" ) );
14851       vkCreateVideoSessionKHR  = PFN_vkCreateVideoSessionKHR( vkGetInstanceProcAddr( instance, "vkCreateVideoSessionKHR" ) );
14852       vkDestroyVideoSessionKHR = PFN_vkDestroyVideoSessionKHR( vkGetInstanceProcAddr( instance, "vkDestroyVideoSessionKHR" ) );
14853       vkGetVideoSessionMemoryRequirementsKHR =
14854         PFN_vkGetVideoSessionMemoryRequirementsKHR( vkGetInstanceProcAddr( instance, "vkGetVideoSessionMemoryRequirementsKHR" ) );
14855       vkBindVideoSessionMemoryKHR        = PFN_vkBindVideoSessionMemoryKHR( vkGetInstanceProcAddr( instance, "vkBindVideoSessionMemoryKHR" ) );
14856       vkCreateVideoSessionParametersKHR  = PFN_vkCreateVideoSessionParametersKHR( vkGetInstanceProcAddr( instance, "vkCreateVideoSessionParametersKHR" ) );
14857       vkUpdateVideoSessionParametersKHR  = PFN_vkUpdateVideoSessionParametersKHR( vkGetInstanceProcAddr( instance, "vkUpdateVideoSessionParametersKHR" ) );
14858       vkDestroyVideoSessionParametersKHR = PFN_vkDestroyVideoSessionParametersKHR( vkGetInstanceProcAddr( instance, "vkDestroyVideoSessionParametersKHR" ) );
14859       vkCmdBeginVideoCodingKHR           = PFN_vkCmdBeginVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdBeginVideoCodingKHR" ) );
14860       vkCmdEndVideoCodingKHR             = PFN_vkCmdEndVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdEndVideoCodingKHR" ) );
14861       vkCmdControlVideoCodingKHR         = PFN_vkCmdControlVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdControlVideoCodingKHR" ) );
14862 
14863       //=== VK_KHR_video_decode_queue ===
14864       vkCmdDecodeVideoKHR = PFN_vkCmdDecodeVideoKHR( vkGetInstanceProcAddr( instance, "vkCmdDecodeVideoKHR" ) );
14865 
14866       //=== VK_EXT_transform_feedback ===
14867       vkCmdBindTransformFeedbackBuffersEXT =
14868         PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetInstanceProcAddr( instance, "vkCmdBindTransformFeedbackBuffersEXT" ) );
14869       vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginTransformFeedbackEXT" ) );
14870       vkCmdEndTransformFeedbackEXT   = PFN_vkCmdEndTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdEndTransformFeedbackEXT" ) );
14871       vkCmdBeginQueryIndexedEXT      = PFN_vkCmdBeginQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginQueryIndexedEXT" ) );
14872       vkCmdEndQueryIndexedEXT        = PFN_vkCmdEndQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdEndQueryIndexedEXT" ) );
14873       vkCmdDrawIndirectByteCountEXT  = PFN_vkCmdDrawIndirectByteCountEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectByteCountEXT" ) );
14874 
14875       //=== VK_NVX_binary_import ===
14876       vkCreateCuModuleNVX    = PFN_vkCreateCuModuleNVX( vkGetInstanceProcAddr( instance, "vkCreateCuModuleNVX" ) );
14877       vkCreateCuFunctionNVX  = PFN_vkCreateCuFunctionNVX( vkGetInstanceProcAddr( instance, "vkCreateCuFunctionNVX" ) );
14878       vkDestroyCuModuleNVX   = PFN_vkDestroyCuModuleNVX( vkGetInstanceProcAddr( instance, "vkDestroyCuModuleNVX" ) );
14879       vkDestroyCuFunctionNVX = PFN_vkDestroyCuFunctionNVX( vkGetInstanceProcAddr( instance, "vkDestroyCuFunctionNVX" ) );
14880       vkCmdCuLaunchKernelNVX = PFN_vkCmdCuLaunchKernelNVX( vkGetInstanceProcAddr( instance, "vkCmdCuLaunchKernelNVX" ) );
14881 
14882       //=== VK_NVX_image_view_handle ===
14883       vkGetImageViewHandleNVX  = PFN_vkGetImageViewHandleNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewHandleNVX" ) );
14884       vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewAddressNVX" ) );
14885 
14886       //=== VK_AMD_draw_indirect_count ===
14887       vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountAMD" ) );
14888       if ( !vkCmdDrawIndirectCount )
14889         vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD;
14890       vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountAMD" ) );
14891       if ( !vkCmdDrawIndexedIndirectCount )
14892         vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD;
14893 
14894       //=== VK_AMD_shader_info ===
14895       vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetInstanceProcAddr( instance, "vkGetShaderInfoAMD" ) );
14896 
14897       //=== VK_KHR_dynamic_rendering ===
14898       vkCmdBeginRenderingKHR = PFN_vkCmdBeginRenderingKHR( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderingKHR" ) );
14899       if ( !vkCmdBeginRendering )
14900         vkCmdBeginRendering = vkCmdBeginRenderingKHR;
14901       vkCmdEndRenderingKHR = PFN_vkCmdEndRenderingKHR( vkGetInstanceProcAddr( instance, "vkCmdEndRenderingKHR" ) );
14902       if ( !vkCmdEndRendering )
14903         vkCmdEndRendering = vkCmdEndRenderingKHR;
14904 
14905 #if defined( VK_USE_PLATFORM_GGP )
14906       //=== VK_GGP_stream_descriptor_surface ===
14907       vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP( vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) );
14908 #endif /*VK_USE_PLATFORM_GGP*/
14909 
14910       //=== VK_NV_external_memory_capabilities ===
14911       vkGetPhysicalDeviceExternalImageFormatPropertiesNV =
14912         PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) );
14913 
14914 #if defined( VK_USE_PLATFORM_WIN32_KHR )
14915       //=== VK_NV_external_memory_win32 ===
14916       vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleNV" ) );
14917 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
14918 
14919       //=== VK_KHR_get_physical_device_properties2 ===
14920       vkGetPhysicalDeviceFeatures2KHR = PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) );
14921       if ( !vkGetPhysicalDeviceFeatures2 )
14922         vkGetPhysicalDeviceFeatures2 = vkGetPhysicalDeviceFeatures2KHR;
14923       vkGetPhysicalDeviceProperties2KHR = PFN_vkGetPhysicalDeviceProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) );
14924       if ( !vkGetPhysicalDeviceProperties2 )
14925         vkGetPhysicalDeviceProperties2 = vkGetPhysicalDeviceProperties2KHR;
14926       vkGetPhysicalDeviceFormatProperties2KHR =
14927         PFN_vkGetPhysicalDeviceFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ) );
14928       if ( !vkGetPhysicalDeviceFormatProperties2 )
14929         vkGetPhysicalDeviceFormatProperties2 = vkGetPhysicalDeviceFormatProperties2KHR;
14930       vkGetPhysicalDeviceImageFormatProperties2KHR =
14931         PFN_vkGetPhysicalDeviceImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ) );
14932       if ( !vkGetPhysicalDeviceImageFormatProperties2 )
14933         vkGetPhysicalDeviceImageFormatProperties2 = vkGetPhysicalDeviceImageFormatProperties2KHR;
14934       vkGetPhysicalDeviceQueueFamilyProperties2KHR =
14935         PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ) );
14936       if ( !vkGetPhysicalDeviceQueueFamilyProperties2 )
14937         vkGetPhysicalDeviceQueueFamilyProperties2 = vkGetPhysicalDeviceQueueFamilyProperties2KHR;
14938       vkGetPhysicalDeviceMemoryProperties2KHR =
14939         PFN_vkGetPhysicalDeviceMemoryProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) );
14940       if ( !vkGetPhysicalDeviceMemoryProperties2 )
14941         vkGetPhysicalDeviceMemoryProperties2 = vkGetPhysicalDeviceMemoryProperties2KHR;
14942       vkGetPhysicalDeviceSparseImageFormatProperties2KHR =
14943         PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ) );
14944       if ( !vkGetPhysicalDeviceSparseImageFormatProperties2 )
14945         vkGetPhysicalDeviceSparseImageFormatProperties2 = vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
14946 
14947       //=== VK_KHR_device_group ===
14948       vkGetDeviceGroupPeerMemoryFeaturesKHR =
14949         PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
14950       if ( !vkGetDeviceGroupPeerMemoryFeatures )
14951         vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
14952       vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMaskKHR" ) );
14953       if ( !vkCmdSetDeviceMask )
14954         vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
14955       vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetInstanceProcAddr( instance, "vkCmdDispatchBaseKHR" ) );
14956       if ( !vkCmdDispatchBase )
14957         vkCmdDispatchBase = vkCmdDispatchBaseKHR;
14958 
14959 #if defined( VK_USE_PLATFORM_VI_NN )
14960       //=== VK_NN_vi_surface ===
14961       vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) );
14962 #endif /*VK_USE_PLATFORM_VI_NN*/
14963 
14964       //=== VK_KHR_maintenance1 ===
14965       vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetInstanceProcAddr( instance, "vkTrimCommandPoolKHR" ) );
14966       if ( !vkTrimCommandPool )
14967         vkTrimCommandPool = vkTrimCommandPoolKHR;
14968 
14969       //=== VK_KHR_device_group_creation ===
14970       vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) );
14971       if ( !vkEnumeratePhysicalDeviceGroups )
14972         vkEnumeratePhysicalDeviceGroups = vkEnumeratePhysicalDeviceGroupsKHR;
14973 
14974       //=== VK_KHR_external_memory_capabilities ===
14975       vkGetPhysicalDeviceExternalBufferPropertiesKHR =
14976         PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) );
14977       if ( !vkGetPhysicalDeviceExternalBufferProperties )
14978         vkGetPhysicalDeviceExternalBufferProperties = vkGetPhysicalDeviceExternalBufferPropertiesKHR;
14979 
14980 #if defined( VK_USE_PLATFORM_WIN32_KHR )
14981       //=== VK_KHR_external_memory_win32 ===
14982       vkGetMemoryWin32HandleKHR           = PFN_vkGetMemoryWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleKHR" ) );
14983       vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandlePropertiesKHR" ) );
14984 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
14985 
14986       //=== VK_KHR_external_memory_fd ===
14987       vkGetMemoryFdKHR           = PFN_vkGetMemoryFdKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdKHR" ) );
14988       vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdPropertiesKHR" ) );
14989 
14990       //=== VK_KHR_external_semaphore_capabilities ===
14991       vkGetPhysicalDeviceExternalSemaphorePropertiesKHR =
14992         PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) );
14993       if ( !vkGetPhysicalDeviceExternalSemaphoreProperties )
14994         vkGetPhysicalDeviceExternalSemaphoreProperties = vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
14995 
14996 #if defined( VK_USE_PLATFORM_WIN32_KHR )
14997       //=== VK_KHR_external_semaphore_win32 ===
14998       vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreWin32HandleKHR" ) );
14999       vkGetSemaphoreWin32HandleKHR    = PFN_vkGetSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreWin32HandleKHR" ) );
15000 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
15001 
15002       //=== VK_KHR_external_semaphore_fd ===
15003       vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreFdKHR" ) );
15004       vkGetSemaphoreFdKHR    = PFN_vkGetSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreFdKHR" ) );
15005 
15006       //=== VK_KHR_push_descriptor ===
15007       vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetKHR" ) );
15008       vkCmdPushDescriptorSetWithTemplateKHR =
15009         PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
15010 
15011       //=== VK_EXT_conditional_rendering ===
15012       vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginConditionalRenderingEXT" ) );
15013       vkCmdEndConditionalRenderingEXT   = PFN_vkCmdEndConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdEndConditionalRenderingEXT" ) );
15014 
15015       //=== VK_KHR_descriptor_update_template ===
15016       vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplateKHR" ) );
15017       if ( !vkCreateDescriptorUpdateTemplate )
15018         vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
15019       vkDestroyDescriptorUpdateTemplateKHR =
15020         PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplateKHR" ) );
15021       if ( !vkDestroyDescriptorUpdateTemplate )
15022         vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
15023       vkUpdateDescriptorSetWithTemplateKHR =
15024         PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplateKHR" ) );
15025       if ( !vkUpdateDescriptorSetWithTemplate )
15026         vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
15027 
15028       //=== VK_NV_clip_space_w_scaling ===
15029       vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingNV" ) );
15030 
15031       //=== VK_EXT_direct_mode_display ===
15032       vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) );
15033 
15034 #if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
15035       //=== VK_EXT_acquire_xlib_display ===
15036       vkAcquireXlibDisplayEXT    = PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) );
15037       vkGetRandROutputDisplayEXT = PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) );
15038 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
15039 
15040       //=== VK_EXT_display_surface_counter ===
15041       vkGetPhysicalDeviceSurfaceCapabilities2EXT =
15042         PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) );
15043 
15044       //=== VK_EXT_display_control ===
15045       vkDisplayPowerControlEXT  = PFN_vkDisplayPowerControlEXT( vkGetInstanceProcAddr( instance, "vkDisplayPowerControlEXT" ) );
15046       vkRegisterDeviceEventEXT  = PFN_vkRegisterDeviceEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDeviceEventEXT" ) );
15047       vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDisplayEventEXT" ) );
15048       vkGetSwapchainCounterEXT  = PFN_vkGetSwapchainCounterEXT( vkGetInstanceProcAddr( instance, "vkGetSwapchainCounterEXT" ) );
15049 
15050       //=== VK_GOOGLE_display_timing ===
15051       vkGetRefreshCycleDurationGOOGLE   = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetInstanceProcAddr( instance, "vkGetRefreshCycleDurationGOOGLE" ) );
15052       vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" ) );
15053 
15054       //=== VK_EXT_discard_rectangles ===
15055       vkCmdSetDiscardRectangleEXT       = PFN_vkCmdSetDiscardRectangleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ) );
15056       vkCmdSetDiscardRectangleEnableEXT = PFN_vkCmdSetDiscardRectangleEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEnableEXT" ) );
15057       vkCmdSetDiscardRectangleModeEXT   = PFN_vkCmdSetDiscardRectangleModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleModeEXT" ) );
15058 
15059       //=== VK_EXT_hdr_metadata ===
15060       vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" ) );
15061 
15062       //=== VK_KHR_create_renderpass2 ===
15063       vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2KHR" ) );
15064       if ( !vkCreateRenderPass2 )
15065         vkCreateRenderPass2 = vkCreateRenderPass2KHR;
15066       vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2KHR" ) );
15067       if ( !vkCmdBeginRenderPass2 )
15068         vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
15069       vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2KHR" ) );
15070       if ( !vkCmdNextSubpass2 )
15071         vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
15072       vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2KHR" ) );
15073       if ( !vkCmdEndRenderPass2 )
15074         vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
15075 
15076       //=== VK_KHR_shared_presentable_image ===
15077       vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainStatusKHR" ) );
15078 
15079       //=== VK_KHR_external_fence_capabilities ===
15080       vkGetPhysicalDeviceExternalFencePropertiesKHR =
15081         PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) );
15082       if ( !vkGetPhysicalDeviceExternalFenceProperties )
15083         vkGetPhysicalDeviceExternalFenceProperties = vkGetPhysicalDeviceExternalFencePropertiesKHR;
15084 
15085 #if defined( VK_USE_PLATFORM_WIN32_KHR )
15086       //=== VK_KHR_external_fence_win32 ===
15087       vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportFenceWin32HandleKHR" ) );
15088       vkGetFenceWin32HandleKHR    = PFN_vkGetFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetFenceWin32HandleKHR" ) );
15089 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
15090 
15091       //=== VK_KHR_external_fence_fd ===
15092       vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetInstanceProcAddr( instance, "vkImportFenceFdKHR" ) );
15093       vkGetFenceFdKHR    = PFN_vkGetFenceFdKHR( vkGetInstanceProcAddr( instance, "vkGetFenceFdKHR" ) );
15094 
15095       //=== VK_KHR_performance_query ===
15096       vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
15097         vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" ) );
15098       vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
15099         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" ) );
15100       vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkAcquireProfilingLockKHR" ) );
15101       vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkReleaseProfilingLockKHR" ) );
15102 
15103       //=== VK_KHR_get_surface_capabilities2 ===
15104       vkGetPhysicalDeviceSurfaceCapabilities2KHR =
15105         PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) );
15106       vkGetPhysicalDeviceSurfaceFormats2KHR =
15107         PFN_vkGetPhysicalDeviceSurfaceFormats2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) );
15108 
15109       //=== VK_KHR_get_display_properties2 ===
15110       vkGetPhysicalDeviceDisplayProperties2KHR =
15111         PFN_vkGetPhysicalDeviceDisplayProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) );
15112       vkGetPhysicalDeviceDisplayPlaneProperties2KHR =
15113         PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) );
15114       vkGetDisplayModeProperties2KHR    = PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) );
15115       vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) );
15116 
15117 #if defined( VK_USE_PLATFORM_IOS_MVK )
15118       //=== VK_MVK_ios_surface ===
15119       vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ) );
15120 #endif /*VK_USE_PLATFORM_IOS_MVK*/
15121 
15122 #if defined( VK_USE_PLATFORM_MACOS_MVK )
15123       //=== VK_MVK_macos_surface ===
15124       vkCreateMacOSSurfaceMVK = PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) );
15125 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
15126 
15127       //=== VK_EXT_debug_utils ===
15128       vkSetDebugUtilsObjectNameEXT    = PFN_vkSetDebugUtilsObjectNameEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectNameEXT" ) );
15129       vkSetDebugUtilsObjectTagEXT     = PFN_vkSetDebugUtilsObjectTagEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectTagEXT" ) );
15130       vkQueueBeginDebugUtilsLabelEXT  = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueBeginDebugUtilsLabelEXT" ) );
15131       vkQueueEndDebugUtilsLabelEXT    = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueEndDebugUtilsLabelEXT" ) );
15132       vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueInsertDebugUtilsLabelEXT" ) );
15133       vkCmdBeginDebugUtilsLabelEXT    = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginDebugUtilsLabelEXT" ) );
15134       vkCmdEndDebugUtilsLabelEXT      = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdEndDebugUtilsLabelEXT" ) );
15135       vkCmdInsertDebugUtilsLabelEXT   = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdInsertDebugUtilsLabelEXT" ) );
15136       vkCreateDebugUtilsMessengerEXT  = PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) );
15137       vkDestroyDebugUtilsMessengerEXT = PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) );
15138       vkSubmitDebugUtilsMessageEXT    = PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) );
15139 
15140 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
15141       //=== VK_ANDROID_external_memory_android_hardware_buffer ===
15142       vkGetAndroidHardwareBufferPropertiesANDROID =
15143         PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetInstanceProcAddr( instance, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
15144       vkGetMemoryAndroidHardwareBufferANDROID =
15145         PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetInstanceProcAddr( instance, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
15146 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
15147 
15148       //=== VK_EXT_sample_locations ===
15149       vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEXT" ) );
15150       vkGetPhysicalDeviceMultisamplePropertiesEXT =
15151         PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) );
15152 
15153       //=== VK_KHR_get_memory_requirements2 ===
15154       vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2KHR" ) );
15155       if ( !vkGetImageMemoryRequirements2 )
15156         vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
15157       vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2KHR" ) );
15158       if ( !vkGetBufferMemoryRequirements2 )
15159         vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
15160       vkGetImageSparseMemoryRequirements2KHR =
15161         PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2KHR" ) );
15162       if ( !vkGetImageSparseMemoryRequirements2 )
15163         vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
15164 
15165       //=== VK_KHR_acceleration_structure ===
15166       vkCreateAccelerationStructureKHR    = PFN_vkCreateAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureKHR" ) );
15167       vkDestroyAccelerationStructureKHR   = PFN_vkDestroyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureKHR" ) );
15168       vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresKHR" ) );
15169       vkCmdBuildAccelerationStructuresIndirectKHR =
15170         PFN_vkCmdBuildAccelerationStructuresIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresIndirectKHR" ) );
15171       vkBuildAccelerationStructuresKHR = PFN_vkBuildAccelerationStructuresKHR( vkGetInstanceProcAddr( instance, "vkBuildAccelerationStructuresKHR" ) );
15172       vkCopyAccelerationStructureKHR   = PFN_vkCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureKHR" ) );
15173       vkCopyAccelerationStructureToMemoryKHR =
15174         PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureToMemoryKHR" ) );
15175       vkCopyMemoryToAccelerationStructureKHR =
15176         PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyMemoryToAccelerationStructureKHR" ) );
15177       vkWriteAccelerationStructuresPropertiesKHR =
15178         PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkWriteAccelerationStructuresPropertiesKHR" ) );
15179       vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureKHR" ) );
15180       vkCmdCopyAccelerationStructureToMemoryKHR =
15181         PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
15182       vkCmdCopyMemoryToAccelerationStructureKHR =
15183         PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
15184       vkGetAccelerationStructureDeviceAddressKHR =
15185         PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureDeviceAddressKHR" ) );
15186       vkCmdWriteAccelerationStructuresPropertiesKHR =
15187         PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
15188       vkGetDeviceAccelerationStructureCompatibilityKHR =
15189         PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
15190       vkGetAccelerationStructureBuildSizesKHR =
15191         PFN_vkGetAccelerationStructureBuildSizesKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureBuildSizesKHR" ) );
15192 
15193       //=== VK_KHR_ray_tracing_pipeline ===
15194       vkCmdTraceRaysKHR              = PFN_vkCmdTraceRaysKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysKHR" ) );
15195       vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesKHR" ) );
15196       vkGetRayTracingShaderGroupHandlesKHR =
15197         PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesKHR" ) );
15198       vkGetRayTracingCaptureReplayShaderGroupHandlesKHR =
15199         PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
15200       vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirectKHR" ) );
15201       vkGetRayTracingShaderGroupStackSizeKHR =
15202         PFN_vkGetRayTracingShaderGroupStackSizeKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupStackSizeKHR" ) );
15203       vkCmdSetRayTracingPipelineStackSizeKHR =
15204         PFN_vkCmdSetRayTracingPipelineStackSizeKHR( vkGetInstanceProcAddr( instance, "vkCmdSetRayTracingPipelineStackSizeKHR" ) );
15205 
15206       //=== VK_KHR_sampler_ycbcr_conversion ===
15207       vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversionKHR" ) );
15208       if ( !vkCreateSamplerYcbcrConversion )
15209         vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR;
15210       vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversionKHR" ) );
15211       if ( !vkDestroySamplerYcbcrConversion )
15212         vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR;
15213 
15214       //=== VK_KHR_bind_memory2 ===
15215       vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2KHR" ) );
15216       if ( !vkBindBufferMemory2 )
15217         vkBindBufferMemory2 = vkBindBufferMemory2KHR;
15218       vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindImageMemory2KHR" ) );
15219       if ( !vkBindImageMemory2 )
15220         vkBindImageMemory2 = vkBindImageMemory2KHR;
15221 
15222       //=== VK_EXT_image_drm_format_modifier ===
15223       vkGetImageDrmFormatModifierPropertiesEXT =
15224         PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
15225 
15226       //=== VK_EXT_validation_cache ===
15227       vkCreateValidationCacheEXT  = PFN_vkCreateValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkCreateValidationCacheEXT" ) );
15228       vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkDestroyValidationCacheEXT" ) );
15229       vkMergeValidationCachesEXT  = PFN_vkMergeValidationCachesEXT( vkGetInstanceProcAddr( instance, "vkMergeValidationCachesEXT" ) );
15230       vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetInstanceProcAddr( instance, "vkGetValidationCacheDataEXT" ) );
15231 
15232       //=== VK_NV_shading_rate_image ===
15233       vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetInstanceProcAddr( instance, "vkCmdBindShadingRateImageNV" ) );
15234       vkCmdSetViewportShadingRatePaletteNV =
15235         PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportShadingRatePaletteNV" ) );
15236       vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoarseSampleOrderNV" ) );
15237 
15238       //=== VK_NV_ray_tracing ===
15239       vkCreateAccelerationStructureNV  = PFN_vkCreateAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureNV" ) );
15240       vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureNV" ) );
15241       vkGetAccelerationStructureMemoryRequirementsNV =
15242         PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
15243       vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryNV" ) );
15244       vkCmdBuildAccelerationStructureNV   = PFN_vkCmdBuildAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureNV" ) );
15245       vkCmdCopyAccelerationStructureNV    = PFN_vkCmdCopyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureNV" ) );
15246       vkCmdTraceRaysNV                    = PFN_vkCmdTraceRaysNV( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysNV" ) );
15247       vkCreateRayTracingPipelinesNV       = PFN_vkCreateRayTracingPipelinesNV( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesNV" ) );
15248       vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesNV" ) );
15249       if ( !vkGetRayTracingShaderGroupHandlesKHR )
15250         vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
15251       vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureHandleNV" ) );
15252       vkCmdWriteAccelerationStructuresPropertiesNV =
15253         PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
15254       vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetInstanceProcAddr( instance, "vkCompileDeferredNV" ) );
15255 
15256       //=== VK_KHR_maintenance3 ===
15257       vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupportKHR" ) );
15258       if ( !vkGetDescriptorSetLayoutSupport )
15259         vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
15260 
15261       //=== VK_KHR_draw_indirect_count ===
15262       vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountKHR" ) );
15263       if ( !vkCmdDrawIndirectCount )
15264         vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
15265       vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountKHR" ) );
15266       if ( !vkCmdDrawIndexedIndirectCount )
15267         vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
15268 
15269       //=== VK_EXT_external_memory_host ===
15270       vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetMemoryHostPointerPropertiesEXT" ) );
15271 
15272       //=== VK_AMD_buffer_marker ===
15273       vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarkerAMD" ) );
15274 
15275       //=== VK_EXT_calibrated_timestamps ===
15276       vkGetPhysicalDeviceCalibrateableTimeDomainsEXT =
15277         PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) );
15278       vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsEXT" ) );
15279 
15280       //=== VK_NV_mesh_shader ===
15281       vkCmdDrawMeshTasksNV              = PFN_vkCmdDrawMeshTasksNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksNV" ) );
15282       vkCmdDrawMeshTasksIndirectNV      = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectNV" ) );
15283       vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountNV" ) );
15284 
15285       //=== VK_NV_scissor_exclusive ===
15286       vkCmdSetExclusiveScissorEnableNV = PFN_vkCmdSetExclusiveScissorEnableNV( vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorEnableNV" ) );
15287       vkCmdSetExclusiveScissorNV       = PFN_vkCmdSetExclusiveScissorNV( vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" ) );
15288 
15289       //=== VK_NV_device_diagnostic_checkpoints ===
15290       vkCmdSetCheckpointNV       = PFN_vkCmdSetCheckpointNV( vkGetInstanceProcAddr( instance, "vkCmdSetCheckpointNV" ) );
15291       vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointDataNV" ) );
15292 
15293       //=== VK_KHR_timeline_semaphore ===
15294       vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValueKHR" ) );
15295       if ( !vkGetSemaphoreCounterValue )
15296         vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
15297       vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetInstanceProcAddr( instance, "vkWaitSemaphoresKHR" ) );
15298       if ( !vkWaitSemaphores )
15299         vkWaitSemaphores = vkWaitSemaphoresKHR;
15300       vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetInstanceProcAddr( instance, "vkSignalSemaphoreKHR" ) );
15301       if ( !vkSignalSemaphore )
15302         vkSignalSemaphore = vkSignalSemaphoreKHR;
15303 
15304       //=== VK_INTEL_performance_query ===
15305       vkInitializePerformanceApiINTEL   = PFN_vkInitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkInitializePerformanceApiINTEL" ) );
15306       vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkUninitializePerformanceApiINTEL" ) );
15307       vkCmdSetPerformanceMarkerINTEL    = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceMarkerINTEL" ) );
15308       vkCmdSetPerformanceStreamMarkerINTEL =
15309         PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
15310       vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceOverrideINTEL" ) );
15311       vkAcquirePerformanceConfigurationINTEL =
15312         PFN_vkAcquirePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkAcquirePerformanceConfigurationINTEL" ) );
15313       vkReleasePerformanceConfigurationINTEL =
15314         PFN_vkReleasePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkReleasePerformanceConfigurationINTEL" ) );
15315       vkQueueSetPerformanceConfigurationINTEL =
15316         PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkQueueSetPerformanceConfigurationINTEL" ) );
15317       vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetInstanceProcAddr( instance, "vkGetPerformanceParameterINTEL" ) );
15318 
15319       //=== VK_AMD_display_native_hdr ===
15320       vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetInstanceProcAddr( instance, "vkSetLocalDimmingAMD" ) );
15321 
15322 #if defined( VK_USE_PLATFORM_FUCHSIA )
15323       //=== VK_FUCHSIA_imagepipe_surface ===
15324       vkCreateImagePipeSurfaceFUCHSIA = PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) );
15325 #endif /*VK_USE_PLATFORM_FUCHSIA*/
15326 
15327 #if defined( VK_USE_PLATFORM_METAL_EXT )
15328       //=== VK_EXT_metal_surface ===
15329       vkCreateMetalSurfaceEXT = PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) );
15330 #endif /*VK_USE_PLATFORM_METAL_EXT*/
15331 
15332       //=== VK_KHR_fragment_shading_rate ===
15333       vkGetPhysicalDeviceFragmentShadingRatesKHR =
15334         PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR" ) );
15335       vkCmdSetFragmentShadingRateKHR = PFN_vkCmdSetFragmentShadingRateKHR( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateKHR" ) );
15336 
15337       //=== VK_EXT_buffer_device_address ===
15338       vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressEXT" ) );
15339       if ( !vkGetBufferDeviceAddress )
15340         vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT;
15341 
15342       //=== VK_EXT_tooling_info ===
15343       vkGetPhysicalDeviceToolPropertiesEXT =
15344         PFN_vkGetPhysicalDeviceToolPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) );
15345       if ( !vkGetPhysicalDeviceToolProperties )
15346         vkGetPhysicalDeviceToolProperties = vkGetPhysicalDeviceToolPropertiesEXT;
15347 
15348       //=== VK_KHR_present_wait ===
15349       vkWaitForPresentKHR = PFN_vkWaitForPresentKHR( vkGetInstanceProcAddr( instance, "vkWaitForPresentKHR" ) );
15350 
15351       //=== VK_NV_cooperative_matrix ===
15352       vkGetPhysicalDeviceCooperativeMatrixPropertiesNV =
15353         PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) );
15354 
15355       //=== VK_NV_coverage_reduction_mode ===
15356       vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
15357         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) );
15358 
15359 #if defined( VK_USE_PLATFORM_WIN32_KHR )
15360       //=== VK_EXT_full_screen_exclusive ===
15361       vkGetPhysicalDeviceSurfacePresentModes2EXT =
15362         PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) );
15363       vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkAcquireFullScreenExclusiveModeEXT" ) );
15364       vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkReleaseFullScreenExclusiveModeEXT" ) );
15365       vkGetDeviceGroupSurfacePresentModes2EXT =
15366         PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
15367 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
15368 
15369       //=== VK_EXT_headless_surface ===
15370       vkCreateHeadlessSurfaceEXT = PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) );
15371 
15372       //=== VK_KHR_buffer_device_address ===
15373       vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressKHR" ) );
15374       if ( !vkGetBufferDeviceAddress )
15375         vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR;
15376       vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddressKHR" ) );
15377       if ( !vkGetBufferOpaqueCaptureAddress )
15378         vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR;
15379       vkGetDeviceMemoryOpaqueCaptureAddressKHR =
15380         PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
15381       if ( !vkGetDeviceMemoryOpaqueCaptureAddress )
15382         vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR;
15383 
15384       //=== VK_EXT_line_rasterization ===
15385       vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLineStippleEXT" ) );
15386 
15387       //=== VK_EXT_host_query_reset ===
15388       vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetInstanceProcAddr( instance, "vkResetQueryPoolEXT" ) );
15389       if ( !vkResetQueryPool )
15390         vkResetQueryPool = vkResetQueryPoolEXT;
15391 
15392       //=== VK_EXT_extended_dynamic_state ===
15393       vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetCullModeEXT" ) );
15394       if ( !vkCmdSetCullMode )
15395         vkCmdSetCullMode = vkCmdSetCullModeEXT;
15396       vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetInstanceProcAddr( instance, "vkCmdSetFrontFaceEXT" ) );
15397       if ( !vkCmdSetFrontFace )
15398         vkCmdSetFrontFace = vkCmdSetFrontFaceEXT;
15399       vkCmdSetPrimitiveTopologyEXT = PFN_vkCmdSetPrimitiveTopologyEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveTopologyEXT" ) );
15400       if ( !vkCmdSetPrimitiveTopology )
15401         vkCmdSetPrimitiveTopology = vkCmdSetPrimitiveTopologyEXT;
15402       vkCmdSetViewportWithCountEXT = PFN_vkCmdSetViewportWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWithCountEXT" ) );
15403       if ( !vkCmdSetViewportWithCount )
15404         vkCmdSetViewportWithCount = vkCmdSetViewportWithCountEXT;
15405       vkCmdSetScissorWithCountEXT = PFN_vkCmdSetScissorWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetScissorWithCountEXT" ) );
15406       if ( !vkCmdSetScissorWithCount )
15407         vkCmdSetScissorWithCount = vkCmdSetScissorWithCountEXT;
15408       vkCmdBindVertexBuffers2EXT = PFN_vkCmdBindVertexBuffers2EXT( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers2EXT" ) );
15409       if ( !vkCmdBindVertexBuffers2 )
15410         vkCmdBindVertexBuffers2 = vkCmdBindVertexBuffers2EXT;
15411       vkCmdSetDepthTestEnableEXT = PFN_vkCmdSetDepthTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthTestEnableEXT" ) );
15412       if ( !vkCmdSetDepthTestEnable )
15413         vkCmdSetDepthTestEnable = vkCmdSetDepthTestEnableEXT;
15414       vkCmdSetDepthWriteEnableEXT = PFN_vkCmdSetDepthWriteEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthWriteEnableEXT" ) );
15415       if ( !vkCmdSetDepthWriteEnable )
15416         vkCmdSetDepthWriteEnable = vkCmdSetDepthWriteEnableEXT;
15417       vkCmdSetDepthCompareOpEXT = PFN_vkCmdSetDepthCompareOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthCompareOpEXT" ) );
15418       if ( !vkCmdSetDepthCompareOp )
15419         vkCmdSetDepthCompareOp = vkCmdSetDepthCompareOpEXT;
15420       vkCmdSetDepthBoundsTestEnableEXT = PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBoundsTestEnableEXT" ) );
15421       if ( !vkCmdSetDepthBoundsTestEnable )
15422         vkCmdSetDepthBoundsTestEnable = vkCmdSetDepthBoundsTestEnableEXT;
15423       vkCmdSetStencilTestEnableEXT = PFN_vkCmdSetStencilTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilTestEnableEXT" ) );
15424       if ( !vkCmdSetStencilTestEnable )
15425         vkCmdSetStencilTestEnable = vkCmdSetStencilTestEnableEXT;
15426       vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilOpEXT" ) );
15427       if ( !vkCmdSetStencilOp )
15428         vkCmdSetStencilOp = vkCmdSetStencilOpEXT;
15429 
15430       //=== VK_KHR_deferred_host_operations ===
15431       vkCreateDeferredOperationKHR  = PFN_vkCreateDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkCreateDeferredOperationKHR" ) );
15432       vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkDestroyDeferredOperationKHR" ) );
15433       vkGetDeferredOperationMaxConcurrencyKHR =
15434         PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
15435       vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationResultKHR" ) );
15436       vkDeferredOperationJoinKHR      = PFN_vkDeferredOperationJoinKHR( vkGetInstanceProcAddr( instance, "vkDeferredOperationJoinKHR" ) );
15437 
15438       //=== VK_KHR_pipeline_executable_properties ===
15439       vkGetPipelineExecutablePropertiesKHR =
15440         PFN_vkGetPipelineExecutablePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutablePropertiesKHR" ) );
15441       vkGetPipelineExecutableStatisticsKHR =
15442         PFN_vkGetPipelineExecutableStatisticsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableStatisticsKHR" ) );
15443       vkGetPipelineExecutableInternalRepresentationsKHR =
15444         PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
15445 
15446       //=== VK_EXT_host_image_copy ===
15447       vkCopyMemoryToImageEXT          = PFN_vkCopyMemoryToImageEXT( vkGetInstanceProcAddr( instance, "vkCopyMemoryToImageEXT" ) );
15448       vkCopyImageToMemoryEXT          = PFN_vkCopyImageToMemoryEXT( vkGetInstanceProcAddr( instance, "vkCopyImageToMemoryEXT" ) );
15449       vkCopyImageToImageEXT           = PFN_vkCopyImageToImageEXT( vkGetInstanceProcAddr( instance, "vkCopyImageToImageEXT" ) );
15450       vkTransitionImageLayoutEXT      = PFN_vkTransitionImageLayoutEXT( vkGetInstanceProcAddr( instance, "vkTransitionImageLayoutEXT" ) );
15451       vkGetImageSubresourceLayout2EXT = PFN_vkGetImageSubresourceLayout2EXT( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout2EXT" ) );
15452 
15453       //=== VK_KHR_map_memory2 ===
15454       vkMapMemory2KHR   = PFN_vkMapMemory2KHR( vkGetInstanceProcAddr( instance, "vkMapMemory2KHR" ) );
15455       vkUnmapMemory2KHR = PFN_vkUnmapMemory2KHR( vkGetInstanceProcAddr( instance, "vkUnmapMemory2KHR" ) );
15456 
15457       //=== VK_EXT_swapchain_maintenance1 ===
15458       vkReleaseSwapchainImagesEXT = PFN_vkReleaseSwapchainImagesEXT( vkGetInstanceProcAddr( instance, "vkReleaseSwapchainImagesEXT" ) );
15459 
15460       //=== VK_NV_device_generated_commands ===
15461       vkGetGeneratedCommandsMemoryRequirementsNV =
15462         PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
15463       vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdPreprocessGeneratedCommandsNV" ) );
15464       vkCmdExecuteGeneratedCommandsNV    = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdExecuteGeneratedCommandsNV" ) );
15465       vkCmdBindPipelineShaderGroupNV     = PFN_vkCmdBindPipelineShaderGroupNV( vkGetInstanceProcAddr( instance, "vkCmdBindPipelineShaderGroupNV" ) );
15466       vkCreateIndirectCommandsLayoutNV   = PFN_vkCreateIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNV" ) );
15467       vkDestroyIndirectCommandsLayoutNV  = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNV" ) );
15468 
15469       //=== VK_EXT_depth_bias_control ===
15470       vkCmdSetDepthBias2EXT = PFN_vkCmdSetDepthBias2EXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias2EXT" ) );
15471 
15472       //=== VK_EXT_acquire_drm_display ===
15473       vkAcquireDrmDisplayEXT = PFN_vkAcquireDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireDrmDisplayEXT" ) );
15474       vkGetDrmDisplayEXT     = PFN_vkGetDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetDrmDisplayEXT" ) );
15475 
15476       //=== VK_EXT_private_data ===
15477       vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkCreatePrivateDataSlotEXT" ) );
15478       if ( !vkCreatePrivateDataSlot )
15479         vkCreatePrivateDataSlot = vkCreatePrivateDataSlotEXT;
15480       vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkDestroyPrivateDataSlotEXT" ) );
15481       if ( !vkDestroyPrivateDataSlot )
15482         vkDestroyPrivateDataSlot = vkDestroyPrivateDataSlotEXT;
15483       vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkSetPrivateDataEXT" ) );
15484       if ( !vkSetPrivateData )
15485         vkSetPrivateData = vkSetPrivateDataEXT;
15486       vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkGetPrivateDataEXT" ) );
15487       if ( !vkGetPrivateData )
15488         vkGetPrivateData = vkGetPrivateDataEXT;
15489 
15490 #if defined( VK_ENABLE_BETA_EXTENSIONS )
15491       //=== VK_KHR_video_encode_queue ===
15492       vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
15493         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR" ) );
15494       vkGetEncodedVideoSessionParametersKHR =
15495         PFN_vkGetEncodedVideoSessionParametersKHR( vkGetInstanceProcAddr( instance, "vkGetEncodedVideoSessionParametersKHR" ) );
15496       vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetInstanceProcAddr( instance, "vkCmdEncodeVideoKHR" ) );
15497 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
15498 
15499 #if defined( VK_USE_PLATFORM_METAL_EXT )
15500       //=== VK_EXT_metal_objects ===
15501       vkExportMetalObjectsEXT = PFN_vkExportMetalObjectsEXT( vkGetInstanceProcAddr( instance, "vkExportMetalObjectsEXT" ) );
15502 #endif /*VK_USE_PLATFORM_METAL_EXT*/
15503 
15504       //=== VK_KHR_synchronization2 ===
15505       vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetInstanceProcAddr( instance, "vkCmdSetEvent2KHR" ) );
15506       if ( !vkCmdSetEvent2 )
15507         vkCmdSetEvent2 = vkCmdSetEvent2KHR;
15508       vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetInstanceProcAddr( instance, "vkCmdResetEvent2KHR" ) );
15509       if ( !vkCmdResetEvent2 )
15510         vkCmdResetEvent2 = vkCmdResetEvent2KHR;
15511       vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents2KHR" ) );
15512       if ( !vkCmdWaitEvents2 )
15513         vkCmdWaitEvents2 = vkCmdWaitEvents2KHR;
15514       vkCmdPipelineBarrier2KHR = PFN_vkCmdPipelineBarrier2KHR( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier2KHR" ) );
15515       if ( !vkCmdPipelineBarrier2 )
15516         vkCmdPipelineBarrier2 = vkCmdPipelineBarrier2KHR;
15517       vkCmdWriteTimestamp2KHR = PFN_vkCmdWriteTimestamp2KHR( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp2KHR" ) );
15518       if ( !vkCmdWriteTimestamp2 )
15519         vkCmdWriteTimestamp2 = vkCmdWriteTimestamp2KHR;
15520       vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetInstanceProcAddr( instance, "vkQueueSubmit2KHR" ) );
15521       if ( !vkQueueSubmit2 )
15522         vkQueueSubmit2 = vkQueueSubmit2KHR;
15523       vkCmdWriteBufferMarker2AMD  = PFN_vkCmdWriteBufferMarker2AMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarker2AMD" ) );
15524       vkGetQueueCheckpointData2NV = PFN_vkGetQueueCheckpointData2NV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointData2NV" ) );
15525 
15526       //=== VK_EXT_descriptor_buffer ===
15527       vkGetDescriptorSetLayoutSizeEXT = PFN_vkGetDescriptorSetLayoutSizeEXT( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSizeEXT" ) );
15528       vkGetDescriptorSetLayoutBindingOffsetEXT =
15529         PFN_vkGetDescriptorSetLayoutBindingOffsetEXT( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutBindingOffsetEXT" ) );
15530       vkGetDescriptorEXT                 = PFN_vkGetDescriptorEXT( vkGetInstanceProcAddr( instance, "vkGetDescriptorEXT" ) );
15531       vkCmdBindDescriptorBuffersEXT      = PFN_vkCmdBindDescriptorBuffersEXT( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorBuffersEXT" ) );
15532       vkCmdSetDescriptorBufferOffsetsEXT = PFN_vkCmdSetDescriptorBufferOffsetsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDescriptorBufferOffsetsEXT" ) );
15533       vkCmdBindDescriptorBufferEmbeddedSamplersEXT =
15534         PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT" ) );
15535       vkGetBufferOpaqueCaptureDescriptorDataEXT =
15536         PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureDescriptorDataEXT" ) );
15537       vkGetImageOpaqueCaptureDescriptorDataEXT =
15538         PFN_vkGetImageOpaqueCaptureDescriptorDataEXT( vkGetInstanceProcAddr( instance, "vkGetImageOpaqueCaptureDescriptorDataEXT" ) );
15539       vkGetImageViewOpaqueCaptureDescriptorDataEXT =
15540         PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT( vkGetInstanceProcAddr( instance, "vkGetImageViewOpaqueCaptureDescriptorDataEXT" ) );
15541       vkGetSamplerOpaqueCaptureDescriptorDataEXT =
15542         PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT( vkGetInstanceProcAddr( instance, "vkGetSamplerOpaqueCaptureDescriptorDataEXT" ) );
15543       vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
15544         vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT" ) );
15545 
15546       //=== VK_NV_fragment_shading_rate_enums ===
15547       vkCmdSetFragmentShadingRateEnumNV = PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateEnumNV" ) );
15548 
15549       //=== VK_EXT_mesh_shader ===
15550       vkCmdDrawMeshTasksEXT              = PFN_vkCmdDrawMeshTasksEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksEXT" ) );
15551       vkCmdDrawMeshTasksIndirectEXT      = PFN_vkCmdDrawMeshTasksIndirectEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectEXT" ) );
15552       vkCmdDrawMeshTasksIndirectCountEXT = PFN_vkCmdDrawMeshTasksIndirectCountEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountEXT" ) );
15553 
15554       //=== VK_KHR_copy_commands2 ===
15555       vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer2KHR" ) );
15556       if ( !vkCmdCopyBuffer2 )
15557         vkCmdCopyBuffer2 = vkCmdCopyBuffer2KHR;
15558       vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImage2KHR" ) );
15559       if ( !vkCmdCopyImage2 )
15560         vkCmdCopyImage2 = vkCmdCopyImage2KHR;
15561       vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage2KHR" ) );
15562       if ( !vkCmdCopyBufferToImage2 )
15563         vkCmdCopyBufferToImage2 = vkCmdCopyBufferToImage2KHR;
15564       vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer2KHR" ) );
15565       if ( !vkCmdCopyImageToBuffer2 )
15566         vkCmdCopyImageToBuffer2 = vkCmdCopyImageToBuffer2KHR;
15567       vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdBlitImage2KHR" ) );
15568       if ( !vkCmdBlitImage2 )
15569         vkCmdBlitImage2 = vkCmdBlitImage2KHR;
15570       vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdResolveImage2KHR" ) );
15571       if ( !vkCmdResolveImage2 )
15572         vkCmdResolveImage2 = vkCmdResolveImage2KHR;
15573 
15574       //=== VK_EXT_device_fault ===
15575       vkGetDeviceFaultInfoEXT = PFN_vkGetDeviceFaultInfoEXT( vkGetInstanceProcAddr( instance, "vkGetDeviceFaultInfoEXT" ) );
15576 
15577 #if defined( VK_USE_PLATFORM_WIN32_KHR )
15578       //=== VK_NV_acquire_winrt_display ===
15579       vkAcquireWinrtDisplayNV = PFN_vkAcquireWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkAcquireWinrtDisplayNV" ) );
15580       vkGetWinrtDisplayNV     = PFN_vkGetWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkGetWinrtDisplayNV" ) );
15581 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
15582 
15583 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
15584       //=== VK_EXT_directfb_surface ===
15585       vkCreateDirectFBSurfaceEXT = PFN_vkCreateDirectFBSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateDirectFBSurfaceEXT" ) );
15586       vkGetPhysicalDeviceDirectFBPresentationSupportEXT =
15587         PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" ) );
15588 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
15589 
15590       //=== VK_EXT_vertex_input_dynamic_state ===
15591       vkCmdSetVertexInputEXT = PFN_vkCmdSetVertexInputEXT( vkGetInstanceProcAddr( instance, "vkCmdSetVertexInputEXT" ) );
15592 
15593 #if defined( VK_USE_PLATFORM_FUCHSIA )
15594       //=== VK_FUCHSIA_external_memory ===
15595       vkGetMemoryZirconHandleFUCHSIA = PFN_vkGetMemoryZirconHandleFUCHSIA( vkGetInstanceProcAddr( instance, "vkGetMemoryZirconHandleFUCHSIA" ) );
15596       vkGetMemoryZirconHandlePropertiesFUCHSIA =
15597         PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA( vkGetInstanceProcAddr( instance, "vkGetMemoryZirconHandlePropertiesFUCHSIA" ) );
15598 #endif /*VK_USE_PLATFORM_FUCHSIA*/
15599 
15600 #if defined( VK_USE_PLATFORM_FUCHSIA )
15601       //=== VK_FUCHSIA_external_semaphore ===
15602       vkImportSemaphoreZirconHandleFUCHSIA =
15603         PFN_vkImportSemaphoreZirconHandleFUCHSIA( vkGetInstanceProcAddr( instance, "vkImportSemaphoreZirconHandleFUCHSIA" ) );
15604       vkGetSemaphoreZirconHandleFUCHSIA = PFN_vkGetSemaphoreZirconHandleFUCHSIA( vkGetInstanceProcAddr( instance, "vkGetSemaphoreZirconHandleFUCHSIA" ) );
15605 #endif /*VK_USE_PLATFORM_FUCHSIA*/
15606 
15607 #if defined( VK_USE_PLATFORM_FUCHSIA )
15608       //=== VK_FUCHSIA_buffer_collection ===
15609       vkCreateBufferCollectionFUCHSIA = PFN_vkCreateBufferCollectionFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateBufferCollectionFUCHSIA" ) );
15610       vkSetBufferCollectionImageConstraintsFUCHSIA =
15611         PFN_vkSetBufferCollectionImageConstraintsFUCHSIA( vkGetInstanceProcAddr( instance, "vkSetBufferCollectionImageConstraintsFUCHSIA" ) );
15612       vkSetBufferCollectionBufferConstraintsFUCHSIA =
15613         PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA( vkGetInstanceProcAddr( instance, "vkSetBufferCollectionBufferConstraintsFUCHSIA" ) );
15614       vkDestroyBufferCollectionFUCHSIA = PFN_vkDestroyBufferCollectionFUCHSIA( vkGetInstanceProcAddr( instance, "vkDestroyBufferCollectionFUCHSIA" ) );
15615       vkGetBufferCollectionPropertiesFUCHSIA =
15616         PFN_vkGetBufferCollectionPropertiesFUCHSIA( vkGetInstanceProcAddr( instance, "vkGetBufferCollectionPropertiesFUCHSIA" ) );
15617 #endif /*VK_USE_PLATFORM_FUCHSIA*/
15618 
15619       //=== VK_HUAWEI_subpass_shading ===
15620       vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI =
15621         PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( vkGetInstanceProcAddr( instance, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" ) );
15622       vkCmdSubpassShadingHUAWEI = PFN_vkCmdSubpassShadingHUAWEI( vkGetInstanceProcAddr( instance, "vkCmdSubpassShadingHUAWEI" ) );
15623 
15624       //=== VK_HUAWEI_invocation_mask ===
15625       vkCmdBindInvocationMaskHUAWEI = PFN_vkCmdBindInvocationMaskHUAWEI( vkGetInstanceProcAddr( instance, "vkCmdBindInvocationMaskHUAWEI" ) );
15626 
15627       //=== VK_NV_external_memory_rdma ===
15628       vkGetMemoryRemoteAddressNV = PFN_vkGetMemoryRemoteAddressNV( vkGetInstanceProcAddr( instance, "vkGetMemoryRemoteAddressNV" ) );
15629 
15630       //=== VK_EXT_pipeline_properties ===
15631       vkGetPipelinePropertiesEXT = PFN_vkGetPipelinePropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPipelinePropertiesEXT" ) );
15632 
15633       //=== VK_EXT_extended_dynamic_state2 ===
15634       vkCmdSetPatchControlPointsEXT      = PFN_vkCmdSetPatchControlPointsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPatchControlPointsEXT" ) );
15635       vkCmdSetRasterizerDiscardEnableEXT = PFN_vkCmdSetRasterizerDiscardEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetRasterizerDiscardEnableEXT" ) );
15636       if ( !vkCmdSetRasterizerDiscardEnable )
15637         vkCmdSetRasterizerDiscardEnable = vkCmdSetRasterizerDiscardEnableEXT;
15638       vkCmdSetDepthBiasEnableEXT = PFN_vkCmdSetDepthBiasEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBiasEnableEXT" ) );
15639       if ( !vkCmdSetDepthBiasEnable )
15640         vkCmdSetDepthBiasEnable = vkCmdSetDepthBiasEnableEXT;
15641       vkCmdSetLogicOpEXT                = PFN_vkCmdSetLogicOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLogicOpEXT" ) );
15642       vkCmdSetPrimitiveRestartEnableEXT = PFN_vkCmdSetPrimitiveRestartEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveRestartEnableEXT" ) );
15643       if ( !vkCmdSetPrimitiveRestartEnable )
15644         vkCmdSetPrimitiveRestartEnable = vkCmdSetPrimitiveRestartEnableEXT;
15645 
15646 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
15647       //=== VK_QNX_screen_surface ===
15648       vkCreateScreenSurfaceQNX = PFN_vkCreateScreenSurfaceQNX( vkGetInstanceProcAddr( instance, "vkCreateScreenSurfaceQNX" ) );
15649       vkGetPhysicalDeviceScreenPresentationSupportQNX =
15650         PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceScreenPresentationSupportQNX" ) );
15651 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
15652 
15653       //=== VK_EXT_color_write_enable ===
15654       vkCmdSetColorWriteEnableEXT = PFN_vkCmdSetColorWriteEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetColorWriteEnableEXT" ) );
15655 
15656       //=== VK_KHR_ray_tracing_maintenance1 ===
15657       vkCmdTraceRaysIndirect2KHR = PFN_vkCmdTraceRaysIndirect2KHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirect2KHR" ) );
15658 
15659       //=== VK_EXT_multi_draw ===
15660       vkCmdDrawMultiEXT        = PFN_vkCmdDrawMultiEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawMultiEXT" ) );
15661       vkCmdDrawMultiIndexedEXT = PFN_vkCmdDrawMultiIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawMultiIndexedEXT" ) );
15662 
15663       //=== VK_EXT_opacity_micromap ===
15664       vkCreateMicromapEXT                 = PFN_vkCreateMicromapEXT( vkGetInstanceProcAddr( instance, "vkCreateMicromapEXT" ) );
15665       vkDestroyMicromapEXT                = PFN_vkDestroyMicromapEXT( vkGetInstanceProcAddr( instance, "vkDestroyMicromapEXT" ) );
15666       vkCmdBuildMicromapsEXT              = PFN_vkCmdBuildMicromapsEXT( vkGetInstanceProcAddr( instance, "vkCmdBuildMicromapsEXT" ) );
15667       vkBuildMicromapsEXT                 = PFN_vkBuildMicromapsEXT( vkGetInstanceProcAddr( instance, "vkBuildMicromapsEXT" ) );
15668       vkCopyMicromapEXT                   = PFN_vkCopyMicromapEXT( vkGetInstanceProcAddr( instance, "vkCopyMicromapEXT" ) );
15669       vkCopyMicromapToMemoryEXT           = PFN_vkCopyMicromapToMemoryEXT( vkGetInstanceProcAddr( instance, "vkCopyMicromapToMemoryEXT" ) );
15670       vkCopyMemoryToMicromapEXT           = PFN_vkCopyMemoryToMicromapEXT( vkGetInstanceProcAddr( instance, "vkCopyMemoryToMicromapEXT" ) );
15671       vkWriteMicromapsPropertiesEXT       = PFN_vkWriteMicromapsPropertiesEXT( vkGetInstanceProcAddr( instance, "vkWriteMicromapsPropertiesEXT" ) );
15672       vkCmdCopyMicromapEXT                = PFN_vkCmdCopyMicromapEXT( vkGetInstanceProcAddr( instance, "vkCmdCopyMicromapEXT" ) );
15673       vkCmdCopyMicromapToMemoryEXT        = PFN_vkCmdCopyMicromapToMemoryEXT( vkGetInstanceProcAddr( instance, "vkCmdCopyMicromapToMemoryEXT" ) );
15674       vkCmdCopyMemoryToMicromapEXT        = PFN_vkCmdCopyMemoryToMicromapEXT( vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToMicromapEXT" ) );
15675       vkCmdWriteMicromapsPropertiesEXT    = PFN_vkCmdWriteMicromapsPropertiesEXT( vkGetInstanceProcAddr( instance, "vkCmdWriteMicromapsPropertiesEXT" ) );
15676       vkGetDeviceMicromapCompatibilityEXT = PFN_vkGetDeviceMicromapCompatibilityEXT( vkGetInstanceProcAddr( instance, "vkGetDeviceMicromapCompatibilityEXT" ) );
15677       vkGetMicromapBuildSizesEXT          = PFN_vkGetMicromapBuildSizesEXT( vkGetInstanceProcAddr( instance, "vkGetMicromapBuildSizesEXT" ) );
15678 
15679       //=== VK_HUAWEI_cluster_culling_shader ===
15680       vkCmdDrawClusterHUAWEI         = PFN_vkCmdDrawClusterHUAWEI( vkGetInstanceProcAddr( instance, "vkCmdDrawClusterHUAWEI" ) );
15681       vkCmdDrawClusterIndirectHUAWEI = PFN_vkCmdDrawClusterIndirectHUAWEI( vkGetInstanceProcAddr( instance, "vkCmdDrawClusterIndirectHUAWEI" ) );
15682 
15683       //=== VK_EXT_pageable_device_local_memory ===
15684       vkSetDeviceMemoryPriorityEXT = PFN_vkSetDeviceMemoryPriorityEXT( vkGetInstanceProcAddr( instance, "vkSetDeviceMemoryPriorityEXT" ) );
15685 
15686       //=== VK_KHR_maintenance4 ===
15687       vkGetDeviceBufferMemoryRequirementsKHR =
15688         PFN_vkGetDeviceBufferMemoryRequirementsKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceBufferMemoryRequirementsKHR" ) );
15689       if ( !vkGetDeviceBufferMemoryRequirements )
15690         vkGetDeviceBufferMemoryRequirements = vkGetDeviceBufferMemoryRequirementsKHR;
15691       vkGetDeviceImageMemoryRequirementsKHR =
15692         PFN_vkGetDeviceImageMemoryRequirementsKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceImageMemoryRequirementsKHR" ) );
15693       if ( !vkGetDeviceImageMemoryRequirements )
15694         vkGetDeviceImageMemoryRequirements = vkGetDeviceImageMemoryRequirementsKHR;
15695       vkGetDeviceImageSparseMemoryRequirementsKHR =
15696         PFN_vkGetDeviceImageSparseMemoryRequirementsKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceImageSparseMemoryRequirementsKHR" ) );
15697       if ( !vkGetDeviceImageSparseMemoryRequirements )
15698         vkGetDeviceImageSparseMemoryRequirements = vkGetDeviceImageSparseMemoryRequirementsKHR;
15699 
15700       //=== VK_VALVE_descriptor_set_host_mapping ===
15701       vkGetDescriptorSetLayoutHostMappingInfoVALVE =
15702         PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutHostMappingInfoVALVE" ) );
15703       vkGetDescriptorSetHostMappingVALVE = PFN_vkGetDescriptorSetHostMappingVALVE( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetHostMappingVALVE" ) );
15704 
15705       //=== VK_NV_copy_memory_indirect ===
15706       vkCmdCopyMemoryIndirectNV        = PFN_vkCmdCopyMemoryIndirectNV( vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryIndirectNV" ) );
15707       vkCmdCopyMemoryToImageIndirectNV = PFN_vkCmdCopyMemoryToImageIndirectNV( vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToImageIndirectNV" ) );
15708 
15709       //=== VK_NV_memory_decompression ===
15710       vkCmdDecompressMemoryNV = PFN_vkCmdDecompressMemoryNV( vkGetInstanceProcAddr( instance, "vkCmdDecompressMemoryNV" ) );
15711       vkCmdDecompressMemoryIndirectCountNV =
15712         PFN_vkCmdDecompressMemoryIndirectCountNV( vkGetInstanceProcAddr( instance, "vkCmdDecompressMemoryIndirectCountNV" ) );
15713 
15714       //=== VK_NV_device_generated_commands_compute ===
15715       vkGetPipelineIndirectMemoryRequirementsNV =
15716         PFN_vkGetPipelineIndirectMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetPipelineIndirectMemoryRequirementsNV" ) );
15717       vkCmdUpdatePipelineIndirectBufferNV = PFN_vkCmdUpdatePipelineIndirectBufferNV( vkGetInstanceProcAddr( instance, "vkCmdUpdatePipelineIndirectBufferNV" ) );
15718       vkGetPipelineIndirectDeviceAddressNV =
15719         PFN_vkGetPipelineIndirectDeviceAddressNV( vkGetInstanceProcAddr( instance, "vkGetPipelineIndirectDeviceAddressNV" ) );
15720 
15721       //=== VK_EXT_extended_dynamic_state3 ===
15722       vkCmdSetTessellationDomainOriginEXT = PFN_vkCmdSetTessellationDomainOriginEXT( vkGetInstanceProcAddr( instance, "vkCmdSetTessellationDomainOriginEXT" ) );
15723       vkCmdSetDepthClampEnableEXT         = PFN_vkCmdSetDepthClampEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthClampEnableEXT" ) );
15724       vkCmdSetPolygonModeEXT              = PFN_vkCmdSetPolygonModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPolygonModeEXT" ) );
15725       vkCmdSetRasterizationSamplesEXT     = PFN_vkCmdSetRasterizationSamplesEXT( vkGetInstanceProcAddr( instance, "vkCmdSetRasterizationSamplesEXT" ) );
15726       vkCmdSetSampleMaskEXT               = PFN_vkCmdSetSampleMaskEXT( vkGetInstanceProcAddr( instance, "vkCmdSetSampleMaskEXT" ) );
15727       vkCmdSetAlphaToCoverageEnableEXT    = PFN_vkCmdSetAlphaToCoverageEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetAlphaToCoverageEnableEXT" ) );
15728       vkCmdSetAlphaToOneEnableEXT         = PFN_vkCmdSetAlphaToOneEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetAlphaToOneEnableEXT" ) );
15729       vkCmdSetLogicOpEnableEXT            = PFN_vkCmdSetLogicOpEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLogicOpEnableEXT" ) );
15730       vkCmdSetColorBlendEnableEXT         = PFN_vkCmdSetColorBlendEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetColorBlendEnableEXT" ) );
15731       vkCmdSetColorBlendEquationEXT       = PFN_vkCmdSetColorBlendEquationEXT( vkGetInstanceProcAddr( instance, "vkCmdSetColorBlendEquationEXT" ) );
15732       vkCmdSetColorWriteMaskEXT           = PFN_vkCmdSetColorWriteMaskEXT( vkGetInstanceProcAddr( instance, "vkCmdSetColorWriteMaskEXT" ) );
15733       vkCmdSetRasterizationStreamEXT      = PFN_vkCmdSetRasterizationStreamEXT( vkGetInstanceProcAddr( instance, "vkCmdSetRasterizationStreamEXT" ) );
15734       vkCmdSetConservativeRasterizationModeEXT =
15735         PFN_vkCmdSetConservativeRasterizationModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetConservativeRasterizationModeEXT" ) );
15736       vkCmdSetExtraPrimitiveOverestimationSizeEXT =
15737         PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetExtraPrimitiveOverestimationSizeEXT" ) );
15738       vkCmdSetDepthClipEnableEXT       = PFN_vkCmdSetDepthClipEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthClipEnableEXT" ) );
15739       vkCmdSetSampleLocationsEnableEXT = PFN_vkCmdSetSampleLocationsEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEnableEXT" ) );
15740       vkCmdSetColorBlendAdvancedEXT    = PFN_vkCmdSetColorBlendAdvancedEXT( vkGetInstanceProcAddr( instance, "vkCmdSetColorBlendAdvancedEXT" ) );
15741       vkCmdSetProvokingVertexModeEXT   = PFN_vkCmdSetProvokingVertexModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetProvokingVertexModeEXT" ) );
15742       vkCmdSetLineRasterizationModeEXT = PFN_vkCmdSetLineRasterizationModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLineRasterizationModeEXT" ) );
15743       vkCmdSetLineStippleEnableEXT     = PFN_vkCmdSetLineStippleEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLineStippleEnableEXT" ) );
15744       vkCmdSetDepthClipNegativeOneToOneEXT =
15745         PFN_vkCmdSetDepthClipNegativeOneToOneEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthClipNegativeOneToOneEXT" ) );
15746       vkCmdSetViewportWScalingEnableNV  = PFN_vkCmdSetViewportWScalingEnableNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingEnableNV" ) );
15747       vkCmdSetViewportSwizzleNV         = PFN_vkCmdSetViewportSwizzleNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportSwizzleNV" ) );
15748       vkCmdSetCoverageToColorEnableNV   = PFN_vkCmdSetCoverageToColorEnableNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoverageToColorEnableNV" ) );
15749       vkCmdSetCoverageToColorLocationNV = PFN_vkCmdSetCoverageToColorLocationNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoverageToColorLocationNV" ) );
15750       vkCmdSetCoverageModulationModeNV  = PFN_vkCmdSetCoverageModulationModeNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoverageModulationModeNV" ) );
15751       vkCmdSetCoverageModulationTableEnableNV =
15752         PFN_vkCmdSetCoverageModulationTableEnableNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoverageModulationTableEnableNV" ) );
15753       vkCmdSetCoverageModulationTableNV = PFN_vkCmdSetCoverageModulationTableNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoverageModulationTableNV" ) );
15754       vkCmdSetShadingRateImageEnableNV  = PFN_vkCmdSetShadingRateImageEnableNV( vkGetInstanceProcAddr( instance, "vkCmdSetShadingRateImageEnableNV" ) );
15755       vkCmdSetRepresentativeFragmentTestEnableNV =
15756         PFN_vkCmdSetRepresentativeFragmentTestEnableNV( vkGetInstanceProcAddr( instance, "vkCmdSetRepresentativeFragmentTestEnableNV" ) );
15757       vkCmdSetCoverageReductionModeNV = PFN_vkCmdSetCoverageReductionModeNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoverageReductionModeNV" ) );
15758 
15759       //=== VK_EXT_shader_module_identifier ===
15760       vkGetShaderModuleIdentifierEXT = PFN_vkGetShaderModuleIdentifierEXT( vkGetInstanceProcAddr( instance, "vkGetShaderModuleIdentifierEXT" ) );
15761       vkGetShaderModuleCreateInfoIdentifierEXT =
15762         PFN_vkGetShaderModuleCreateInfoIdentifierEXT( vkGetInstanceProcAddr( instance, "vkGetShaderModuleCreateInfoIdentifierEXT" ) );
15763 
15764       //=== VK_NV_optical_flow ===
15765       vkGetPhysicalDeviceOpticalFlowImageFormatsNV =
15766         PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV" ) );
15767       vkCreateOpticalFlowSessionNV    = PFN_vkCreateOpticalFlowSessionNV( vkGetInstanceProcAddr( instance, "vkCreateOpticalFlowSessionNV" ) );
15768       vkDestroyOpticalFlowSessionNV   = PFN_vkDestroyOpticalFlowSessionNV( vkGetInstanceProcAddr( instance, "vkDestroyOpticalFlowSessionNV" ) );
15769       vkBindOpticalFlowSessionImageNV = PFN_vkBindOpticalFlowSessionImageNV( vkGetInstanceProcAddr( instance, "vkBindOpticalFlowSessionImageNV" ) );
15770       vkCmdOpticalFlowExecuteNV       = PFN_vkCmdOpticalFlowExecuteNV( vkGetInstanceProcAddr( instance, "vkCmdOpticalFlowExecuteNV" ) );
15771 
15772       //=== VK_EXT_shader_object ===
15773       vkCreateShadersEXT       = PFN_vkCreateShadersEXT( vkGetInstanceProcAddr( instance, "vkCreateShadersEXT" ) );
15774       vkDestroyShaderEXT       = PFN_vkDestroyShaderEXT( vkGetInstanceProcAddr( instance, "vkDestroyShaderEXT" ) );
15775       vkGetShaderBinaryDataEXT = PFN_vkGetShaderBinaryDataEXT( vkGetInstanceProcAddr( instance, "vkGetShaderBinaryDataEXT" ) );
15776       vkCmdBindShadersEXT      = PFN_vkCmdBindShadersEXT( vkGetInstanceProcAddr( instance, "vkCmdBindShadersEXT" ) );
15777 
15778       //=== VK_QCOM_tile_properties ===
15779       vkGetFramebufferTilePropertiesQCOM = PFN_vkGetFramebufferTilePropertiesQCOM( vkGetInstanceProcAddr( instance, "vkGetFramebufferTilePropertiesQCOM" ) );
15780       vkGetDynamicRenderingTilePropertiesQCOM =
15781         PFN_vkGetDynamicRenderingTilePropertiesQCOM( vkGetInstanceProcAddr( instance, "vkGetDynamicRenderingTilePropertiesQCOM" ) );
15782 
15783       //=== VK_KHR_cooperative_matrix ===
15784       vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR =
15785         PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR" ) );
15786 
15787       //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
15788       vkCmdSetAttachmentFeedbackLoopEnableEXT =
15789         PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetAttachmentFeedbackLoopEnableEXT" ) );
15790 
15791 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
15792       //=== VK_QNX_external_memory_screen_buffer ===
15793       vkGetScreenBufferPropertiesQNX = PFN_vkGetScreenBufferPropertiesQNX( vkGetInstanceProcAddr( instance, "vkGetScreenBufferPropertiesQNX" ) );
15794 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
15795     }
15796 
init(VULKAN_HPP_NAMESPACE::Device deviceCpp)15797     void init( VULKAN_HPP_NAMESPACE::Device deviceCpp ) VULKAN_HPP_NOEXCEPT
15798     {
15799       VkDevice device = static_cast<VkDevice>( deviceCpp );
15800 
15801       //=== VK_VERSION_1_0 ===
15802       vkGetDeviceProcAddr                = PFN_vkGetDeviceProcAddr( vkGetDeviceProcAddr( device, "vkGetDeviceProcAddr" ) );
15803       vkDestroyDevice                    = PFN_vkDestroyDevice( vkGetDeviceProcAddr( device, "vkDestroyDevice" ) );
15804       vkGetDeviceQueue                   = PFN_vkGetDeviceQueue( vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) );
15805       vkQueueSubmit                      = PFN_vkQueueSubmit( vkGetDeviceProcAddr( device, "vkQueueSubmit" ) );
15806       vkQueueWaitIdle                    = PFN_vkQueueWaitIdle( vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) );
15807       vkDeviceWaitIdle                   = PFN_vkDeviceWaitIdle( vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ) );
15808       vkAllocateMemory                   = PFN_vkAllocateMemory( vkGetDeviceProcAddr( device, "vkAllocateMemory" ) );
15809       vkFreeMemory                       = PFN_vkFreeMemory( vkGetDeviceProcAddr( device, "vkFreeMemory" ) );
15810       vkMapMemory                        = PFN_vkMapMemory( vkGetDeviceProcAddr( device, "vkMapMemory" ) );
15811       vkUnmapMemory                      = PFN_vkUnmapMemory( vkGetDeviceProcAddr( device, "vkUnmapMemory" ) );
15812       vkFlushMappedMemoryRanges          = PFN_vkFlushMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) );
15813       vkInvalidateMappedMemoryRanges     = PFN_vkInvalidateMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) );
15814       vkGetDeviceMemoryCommitment        = PFN_vkGetDeviceMemoryCommitment( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) );
15815       vkBindBufferMemory                 = PFN_vkBindBufferMemory( vkGetDeviceProcAddr( device, "vkBindBufferMemory" ) );
15816       vkBindImageMemory                  = PFN_vkBindImageMemory( vkGetDeviceProcAddr( device, "vkBindImageMemory" ) );
15817       vkGetBufferMemoryRequirements      = PFN_vkGetBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) );
15818       vkGetImageMemoryRequirements       = PFN_vkGetImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) );
15819       vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) );
15820       vkQueueBindSparse                  = PFN_vkQueueBindSparse( vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) );
15821       vkCreateFence                      = PFN_vkCreateFence( vkGetDeviceProcAddr( device, "vkCreateFence" ) );
15822       vkDestroyFence                     = PFN_vkDestroyFence( vkGetDeviceProcAddr( device, "vkDestroyFence" ) );
15823       vkResetFences                      = PFN_vkResetFences( vkGetDeviceProcAddr( device, "vkResetFences" ) );
15824       vkGetFenceStatus                   = PFN_vkGetFenceStatus( vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) );
15825       vkWaitForFences                    = PFN_vkWaitForFences( vkGetDeviceProcAddr( device, "vkWaitForFences" ) );
15826       vkCreateSemaphore                  = PFN_vkCreateSemaphore( vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) );
15827       vkDestroySemaphore                 = PFN_vkDestroySemaphore( vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) );
15828       vkCreateEvent                      = PFN_vkCreateEvent( vkGetDeviceProcAddr( device, "vkCreateEvent" ) );
15829       vkDestroyEvent                     = PFN_vkDestroyEvent( vkGetDeviceProcAddr( device, "vkDestroyEvent" ) );
15830       vkGetEventStatus                   = PFN_vkGetEventStatus( vkGetDeviceProcAddr( device, "vkGetEventStatus" ) );
15831       vkSetEvent                         = PFN_vkSetEvent( vkGetDeviceProcAddr( device, "vkSetEvent" ) );
15832       vkResetEvent                       = PFN_vkResetEvent( vkGetDeviceProcAddr( device, "vkResetEvent" ) );
15833       vkCreateQueryPool                  = PFN_vkCreateQueryPool( vkGetDeviceProcAddr( device, "vkCreateQueryPool" ) );
15834       vkDestroyQueryPool                 = PFN_vkDestroyQueryPool( vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) );
15835       vkGetQueryPoolResults              = PFN_vkGetQueryPoolResults( vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ) );
15836       vkCreateBuffer                     = PFN_vkCreateBuffer( vkGetDeviceProcAddr( device, "vkCreateBuffer" ) );
15837       vkDestroyBuffer                    = PFN_vkDestroyBuffer( vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) );
15838       vkCreateBufferView                 = PFN_vkCreateBufferView( vkGetDeviceProcAddr( device, "vkCreateBufferView" ) );
15839       vkDestroyBufferView                = PFN_vkDestroyBufferView( vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) );
15840       vkCreateImage                      = PFN_vkCreateImage( vkGetDeviceProcAddr( device, "vkCreateImage" ) );
15841       vkDestroyImage                     = PFN_vkDestroyImage( vkGetDeviceProcAddr( device, "vkDestroyImage" ) );
15842       vkGetImageSubresourceLayout        = PFN_vkGetImageSubresourceLayout( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) );
15843       vkCreateImageView                  = PFN_vkCreateImageView( vkGetDeviceProcAddr( device, "vkCreateImageView" ) );
15844       vkDestroyImageView                 = PFN_vkDestroyImageView( vkGetDeviceProcAddr( device, "vkDestroyImageView" ) );
15845       vkCreateShaderModule               = PFN_vkCreateShaderModule( vkGetDeviceProcAddr( device, "vkCreateShaderModule" ) );
15846       vkDestroyShaderModule              = PFN_vkDestroyShaderModule( vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ) );
15847       vkCreatePipelineCache              = PFN_vkCreatePipelineCache( vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) );
15848       vkDestroyPipelineCache             = PFN_vkDestroyPipelineCache( vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) );
15849       vkGetPipelineCacheData             = PFN_vkGetPipelineCacheData( vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ) );
15850       vkMergePipelineCaches              = PFN_vkMergePipelineCaches( vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ) );
15851       vkCreateGraphicsPipelines          = PFN_vkCreateGraphicsPipelines( vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) );
15852       vkCreateComputePipelines           = PFN_vkCreateComputePipelines( vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) );
15853       vkDestroyPipeline                  = PFN_vkDestroyPipeline( vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) );
15854       vkCreatePipelineLayout             = PFN_vkCreatePipelineLayout( vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ) );
15855       vkDestroyPipelineLayout            = PFN_vkDestroyPipelineLayout( vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ) );
15856       vkCreateSampler                    = PFN_vkCreateSampler( vkGetDeviceProcAddr( device, "vkCreateSampler" ) );
15857       vkDestroySampler                   = PFN_vkDestroySampler( vkGetDeviceProcAddr( device, "vkDestroySampler" ) );
15858       vkCreateDescriptorSetLayout        = PFN_vkCreateDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) );
15859       vkDestroyDescriptorSetLayout       = PFN_vkDestroyDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) );
15860       vkCreateDescriptorPool             = PFN_vkCreateDescriptorPool( vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ) );
15861       vkDestroyDescriptorPool            = PFN_vkDestroyDescriptorPool( vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ) );
15862       vkResetDescriptorPool              = PFN_vkResetDescriptorPool( vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ) );
15863       vkAllocateDescriptorSets           = PFN_vkAllocateDescriptorSets( vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ) );
15864       vkFreeDescriptorSets               = PFN_vkFreeDescriptorSets( vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ) );
15865       vkUpdateDescriptorSets             = PFN_vkUpdateDescriptorSets( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ) );
15866       vkCreateFramebuffer                = PFN_vkCreateFramebuffer( vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ) );
15867       vkDestroyFramebuffer               = PFN_vkDestroyFramebuffer( vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ) );
15868       vkCreateRenderPass                 = PFN_vkCreateRenderPass( vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) );
15869       vkDestroyRenderPass                = PFN_vkDestroyRenderPass( vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ) );
15870       vkGetRenderAreaGranularity         = PFN_vkGetRenderAreaGranularity( vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) );
15871       vkCreateCommandPool                = PFN_vkCreateCommandPool( vkGetDeviceProcAddr( device, "vkCreateCommandPool" ) );
15872       vkDestroyCommandPool               = PFN_vkDestroyCommandPool( vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ) );
15873       vkResetCommandPool                 = PFN_vkResetCommandPool( vkGetDeviceProcAddr( device, "vkResetCommandPool" ) );
15874       vkAllocateCommandBuffers           = PFN_vkAllocateCommandBuffers( vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) );
15875       vkFreeCommandBuffers               = PFN_vkFreeCommandBuffers( vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ) );
15876       vkBeginCommandBuffer               = PFN_vkBeginCommandBuffer( vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ) );
15877       vkEndCommandBuffer                 = PFN_vkEndCommandBuffer( vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) );
15878       vkResetCommandBuffer               = PFN_vkResetCommandBuffer( vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) );
15879       vkCmdBindPipeline                  = PFN_vkCmdBindPipeline( vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) );
15880       vkCmdSetViewport                   = PFN_vkCmdSetViewport( vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) );
15881       vkCmdSetScissor                    = PFN_vkCmdSetScissor( vkGetDeviceProcAddr( device, "vkCmdSetScissor" ) );
15882       vkCmdSetLineWidth                  = PFN_vkCmdSetLineWidth( vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) );
15883       vkCmdSetDepthBias                  = PFN_vkCmdSetDepthBias( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) );
15884       vkCmdSetBlendConstants             = PFN_vkCmdSetBlendConstants( vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ) );
15885       vkCmdSetDepthBounds                = PFN_vkCmdSetDepthBounds( vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ) );
15886       vkCmdSetStencilCompareMask         = PFN_vkCmdSetStencilCompareMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) );
15887       vkCmdSetStencilWriteMask           = PFN_vkCmdSetStencilWriteMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) );
15888       vkCmdSetStencilReference           = PFN_vkCmdSetStencilReference( vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) );
15889       vkCmdBindDescriptorSets            = PFN_vkCmdBindDescriptorSets( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ) );
15890       vkCmdBindIndexBuffer               = PFN_vkCmdBindIndexBuffer( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ) );
15891       vkCmdBindVertexBuffers             = PFN_vkCmdBindVertexBuffers( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ) );
15892       vkCmdDraw                          = PFN_vkCmdDraw( vkGetDeviceProcAddr( device, "vkCmdDraw" ) );
15893       vkCmdDrawIndexed                   = PFN_vkCmdDrawIndexed( vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) );
15894       vkCmdDrawIndirect                  = PFN_vkCmdDrawIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ) );
15895       vkCmdDrawIndexedIndirect           = PFN_vkCmdDrawIndexedIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) );
15896       vkCmdDispatch                      = PFN_vkCmdDispatch( vkGetDeviceProcAddr( device, "vkCmdDispatch" ) );
15897       vkCmdDispatchIndirect              = PFN_vkCmdDispatchIndirect( vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ) );
15898       vkCmdCopyBuffer                    = PFN_vkCmdCopyBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ) );
15899       vkCmdCopyImage                     = PFN_vkCmdCopyImage( vkGetDeviceProcAddr( device, "vkCmdCopyImage" ) );
15900       vkCmdBlitImage                     = PFN_vkCmdBlitImage( vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) );
15901       vkCmdCopyBufferToImage             = PFN_vkCmdCopyBufferToImage( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ) );
15902       vkCmdCopyImageToBuffer             = PFN_vkCmdCopyImageToBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ) );
15903       vkCmdUpdateBuffer                  = PFN_vkCmdUpdateBuffer( vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) );
15904       vkCmdFillBuffer                    = PFN_vkCmdFillBuffer( vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ) );
15905       vkCmdClearColorImage               = PFN_vkCmdClearColorImage( vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) );
15906       vkCmdClearDepthStencilImage        = PFN_vkCmdClearDepthStencilImage( vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) );
15907       vkCmdClearAttachments              = PFN_vkCmdClearAttachments( vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ) );
15908       vkCmdResolveImage                  = PFN_vkCmdResolveImage( vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) );
15909       vkCmdSetEvent                      = PFN_vkCmdSetEvent( vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) );
15910       vkCmdResetEvent                    = PFN_vkCmdResetEvent( vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) );
15911       vkCmdWaitEvents                    = PFN_vkCmdWaitEvents( vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) );
15912       vkCmdPipelineBarrier               = PFN_vkCmdPipelineBarrier( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ) );
15913       vkCmdBeginQuery                    = PFN_vkCmdBeginQuery( vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ) );
15914       vkCmdEndQuery                      = PFN_vkCmdEndQuery( vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) );
15915       vkCmdResetQueryPool                = PFN_vkCmdResetQueryPool( vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) );
15916       vkCmdWriteTimestamp                = PFN_vkCmdWriteTimestamp( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) );
15917       vkCmdCopyQueryPoolResults          = PFN_vkCmdCopyQueryPoolResults( vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ) );
15918       vkCmdPushConstants                 = PFN_vkCmdPushConstants( vkGetDeviceProcAddr( device, "vkCmdPushConstants" ) );
15919       vkCmdBeginRenderPass               = PFN_vkCmdBeginRenderPass( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ) );
15920       vkCmdNextSubpass                   = PFN_vkCmdNextSubpass( vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) );
15921       vkCmdEndRenderPass                 = PFN_vkCmdEndRenderPass( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) );
15922       vkCmdExecuteCommands               = PFN_vkCmdExecuteCommands( vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ) );
15923 
15924       //=== VK_VERSION_1_1 ===
15925       vkBindBufferMemory2                 = PFN_vkBindBufferMemory2( vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) );
15926       vkBindImageMemory2                  = PFN_vkBindImageMemory2( vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) );
15927       vkGetDeviceGroupPeerMemoryFeatures  = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) );
15928       vkCmdSetDeviceMask                  = PFN_vkCmdSetDeviceMask( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ) );
15929       vkCmdDispatchBase                   = PFN_vkCmdDispatchBase( vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) );
15930       vkGetImageMemoryRequirements2       = PFN_vkGetImageMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) );
15931       vkGetBufferMemoryRequirements2      = PFN_vkGetBufferMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) );
15932       vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) );
15933       vkTrimCommandPool                   = PFN_vkTrimCommandPool( vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) );
15934       vkGetDeviceQueue2                   = PFN_vkGetDeviceQueue2( vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) );
15935       vkCreateSamplerYcbcrConversion      = PFN_vkCreateSamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) );
15936       vkDestroySamplerYcbcrConversion     = PFN_vkDestroySamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) );
15937       vkCreateDescriptorUpdateTemplate    = PFN_vkCreateDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) );
15938       vkDestroyDescriptorUpdateTemplate   = PFN_vkDestroyDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) );
15939       vkUpdateDescriptorSetWithTemplate   = PFN_vkUpdateDescriptorSetWithTemplate( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) );
15940       vkGetDescriptorSetLayoutSupport     = PFN_vkGetDescriptorSetLayoutSupport( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) );
15941 
15942       //=== VK_VERSION_1_2 ===
15943       vkCmdDrawIndirectCount          = PFN_vkCmdDrawIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCount" ) );
15944       vkCmdDrawIndexedIndirectCount   = PFN_vkCmdDrawIndexedIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCount" ) );
15945       vkCreateRenderPass2             = PFN_vkCreateRenderPass2( vkGetDeviceProcAddr( device, "vkCreateRenderPass2" ) );
15946       vkCmdBeginRenderPass2           = PFN_vkCmdBeginRenderPass2( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2" ) );
15947       vkCmdNextSubpass2               = PFN_vkCmdNextSubpass2( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" ) );
15948       vkCmdEndRenderPass2             = PFN_vkCmdEndRenderPass2( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" ) );
15949       vkResetQueryPool                = PFN_vkResetQueryPool( vkGetDeviceProcAddr( device, "vkResetQueryPool" ) );
15950       vkGetSemaphoreCounterValue      = PFN_vkGetSemaphoreCounterValue( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" ) );
15951       vkWaitSemaphores                = PFN_vkWaitSemaphores( vkGetDeviceProcAddr( device, "vkWaitSemaphores" ) );
15952       vkSignalSemaphore               = PFN_vkSignalSemaphore( vkGetDeviceProcAddr( device, "vkSignalSemaphore" ) );
15953       vkGetBufferDeviceAddress        = PFN_vkGetBufferDeviceAddress( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" ) );
15954       vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" ) );
15955       vkGetDeviceMemoryOpaqueCaptureAddress =
15956         PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
15957 
15958       //=== VK_VERSION_1_3 ===
15959       vkCreatePrivateDataSlot             = PFN_vkCreatePrivateDataSlot( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlot" ) );
15960       vkDestroyPrivateDataSlot            = PFN_vkDestroyPrivateDataSlot( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlot" ) );
15961       vkSetPrivateData                    = PFN_vkSetPrivateData( vkGetDeviceProcAddr( device, "vkSetPrivateData" ) );
15962       vkGetPrivateData                    = PFN_vkGetPrivateData( vkGetDeviceProcAddr( device, "vkGetPrivateData" ) );
15963       vkCmdSetEvent2                      = PFN_vkCmdSetEvent2( vkGetDeviceProcAddr( device, "vkCmdSetEvent2" ) );
15964       vkCmdResetEvent2                    = PFN_vkCmdResetEvent2( vkGetDeviceProcAddr( device, "vkCmdResetEvent2" ) );
15965       vkCmdWaitEvents2                    = PFN_vkCmdWaitEvents2( vkGetDeviceProcAddr( device, "vkCmdWaitEvents2" ) );
15966       vkCmdPipelineBarrier2               = PFN_vkCmdPipelineBarrier2( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier2" ) );
15967       vkCmdWriteTimestamp2                = PFN_vkCmdWriteTimestamp2( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp2" ) );
15968       vkQueueSubmit2                      = PFN_vkQueueSubmit2( vkGetDeviceProcAddr( device, "vkQueueSubmit2" ) );
15969       vkCmdCopyBuffer2                    = PFN_vkCmdCopyBuffer2( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2" ) );
15970       vkCmdCopyImage2                     = PFN_vkCmdCopyImage2( vkGetDeviceProcAddr( device, "vkCmdCopyImage2" ) );
15971       vkCmdCopyBufferToImage2             = PFN_vkCmdCopyBufferToImage2( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2" ) );
15972       vkCmdCopyImageToBuffer2             = PFN_vkCmdCopyImageToBuffer2( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2" ) );
15973       vkCmdBlitImage2                     = PFN_vkCmdBlitImage2( vkGetDeviceProcAddr( device, "vkCmdBlitImage2" ) );
15974       vkCmdResolveImage2                  = PFN_vkCmdResolveImage2( vkGetDeviceProcAddr( device, "vkCmdResolveImage2" ) );
15975       vkCmdBeginRendering                 = PFN_vkCmdBeginRendering( vkGetDeviceProcAddr( device, "vkCmdBeginRendering" ) );
15976       vkCmdEndRendering                   = PFN_vkCmdEndRendering( vkGetDeviceProcAddr( device, "vkCmdEndRendering" ) );
15977       vkCmdSetCullMode                    = PFN_vkCmdSetCullMode( vkGetDeviceProcAddr( device, "vkCmdSetCullMode" ) );
15978       vkCmdSetFrontFace                   = PFN_vkCmdSetFrontFace( vkGetDeviceProcAddr( device, "vkCmdSetFrontFace" ) );
15979       vkCmdSetPrimitiveTopology           = PFN_vkCmdSetPrimitiveTopology( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopology" ) );
15980       vkCmdSetViewportWithCount           = PFN_vkCmdSetViewportWithCount( vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCount" ) );
15981       vkCmdSetScissorWithCount            = PFN_vkCmdSetScissorWithCount( vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCount" ) );
15982       vkCmdBindVertexBuffers2             = PFN_vkCmdBindVertexBuffers2( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2" ) );
15983       vkCmdSetDepthTestEnable             = PFN_vkCmdSetDepthTestEnable( vkGetDeviceProcAddr( device, "vkCmdSetDepthTestEnable" ) );
15984       vkCmdSetDepthWriteEnable            = PFN_vkCmdSetDepthWriteEnable( vkGetDeviceProcAddr( device, "vkCmdSetDepthWriteEnable" ) );
15985       vkCmdSetDepthCompareOp              = PFN_vkCmdSetDepthCompareOp( vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOp" ) );
15986       vkCmdSetDepthBoundsTestEnable       = PFN_vkCmdSetDepthBoundsTestEnable( vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnable" ) );
15987       vkCmdSetStencilTestEnable           = PFN_vkCmdSetStencilTestEnable( vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnable" ) );
15988       vkCmdSetStencilOp                   = PFN_vkCmdSetStencilOp( vkGetDeviceProcAddr( device, "vkCmdSetStencilOp" ) );
15989       vkCmdSetRasterizerDiscardEnable     = PFN_vkCmdSetRasterizerDiscardEnable( vkGetDeviceProcAddr( device, "vkCmdSetRasterizerDiscardEnable" ) );
15990       vkCmdSetDepthBiasEnable             = PFN_vkCmdSetDepthBiasEnable( vkGetDeviceProcAddr( device, "vkCmdSetDepthBiasEnable" ) );
15991       vkCmdSetPrimitiveRestartEnable      = PFN_vkCmdSetPrimitiveRestartEnable( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveRestartEnable" ) );
15992       vkGetDeviceBufferMemoryRequirements = PFN_vkGetDeviceBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetDeviceBufferMemoryRequirements" ) );
15993       vkGetDeviceImageMemoryRequirements  = PFN_vkGetDeviceImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetDeviceImageMemoryRequirements" ) );
15994       vkGetDeviceImageSparseMemoryRequirements =
15995         PFN_vkGetDeviceImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetDeviceImageSparseMemoryRequirements" ) );
15996 
15997       //=== VK_KHR_swapchain ===
15998       vkCreateSwapchainKHR    = PFN_vkCreateSwapchainKHR( vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) );
15999       vkDestroySwapchainKHR   = PFN_vkDestroySwapchainKHR( vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) );
16000       vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) );
16001       vkAcquireNextImageKHR   = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) );
16002       vkQueuePresentKHR       = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) );
16003       vkGetDeviceGroupPresentCapabilitiesKHR =
16004         PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
16005       vkGetDeviceGroupSurfacePresentModesKHR =
16006         PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
16007       vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) );
16008 
16009       //=== VK_KHR_display_swapchain ===
16010       vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) );
16011 
16012       //=== VK_EXT_debug_marker ===
16013       vkDebugMarkerSetObjectTagEXT  = PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) );
16014       vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) );
16015       vkCmdDebugMarkerBeginEXT      = PFN_vkCmdDebugMarkerBeginEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) );
16016       vkCmdDebugMarkerEndEXT        = PFN_vkCmdDebugMarkerEndEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) );
16017       vkCmdDebugMarkerInsertEXT     = PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) );
16018 
16019       //=== VK_KHR_video_queue ===
16020       vkCreateVideoSessionKHR  = PFN_vkCreateVideoSessionKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionKHR" ) );
16021       vkDestroyVideoSessionKHR = PFN_vkDestroyVideoSessionKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionKHR" ) );
16022       vkGetVideoSessionMemoryRequirementsKHR =
16023         PFN_vkGetVideoSessionMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetVideoSessionMemoryRequirementsKHR" ) );
16024       vkBindVideoSessionMemoryKHR        = PFN_vkBindVideoSessionMemoryKHR( vkGetDeviceProcAddr( device, "vkBindVideoSessionMemoryKHR" ) );
16025       vkCreateVideoSessionParametersKHR  = PFN_vkCreateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionParametersKHR" ) );
16026       vkUpdateVideoSessionParametersKHR  = PFN_vkUpdateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkUpdateVideoSessionParametersKHR" ) );
16027       vkDestroyVideoSessionParametersKHR = PFN_vkDestroyVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionParametersKHR" ) );
16028       vkCmdBeginVideoCodingKHR           = PFN_vkCmdBeginVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdBeginVideoCodingKHR" ) );
16029       vkCmdEndVideoCodingKHR             = PFN_vkCmdEndVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdEndVideoCodingKHR" ) );
16030       vkCmdControlVideoCodingKHR         = PFN_vkCmdControlVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdControlVideoCodingKHR" ) );
16031 
16032       //=== VK_KHR_video_decode_queue ===
16033       vkCmdDecodeVideoKHR = PFN_vkCmdDecodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdDecodeVideoKHR" ) );
16034 
16035       //=== VK_EXT_transform_feedback ===
16036       vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) );
16037       vkCmdBeginTransformFeedbackEXT       = PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) );
16038       vkCmdEndTransformFeedbackEXT         = PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) );
16039       vkCmdBeginQueryIndexedEXT            = PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) );
16040       vkCmdEndQueryIndexedEXT              = PFN_vkCmdEndQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) );
16041       vkCmdDrawIndirectByteCountEXT        = PFN_vkCmdDrawIndirectByteCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) );
16042 
16043       //=== VK_NVX_binary_import ===
16044       vkCreateCuModuleNVX    = PFN_vkCreateCuModuleNVX( vkGetDeviceProcAddr( device, "vkCreateCuModuleNVX" ) );
16045       vkCreateCuFunctionNVX  = PFN_vkCreateCuFunctionNVX( vkGetDeviceProcAddr( device, "vkCreateCuFunctionNVX" ) );
16046       vkDestroyCuModuleNVX   = PFN_vkDestroyCuModuleNVX( vkGetDeviceProcAddr( device, "vkDestroyCuModuleNVX" ) );
16047       vkDestroyCuFunctionNVX = PFN_vkDestroyCuFunctionNVX( vkGetDeviceProcAddr( device, "vkDestroyCuFunctionNVX" ) );
16048       vkCmdCuLaunchKernelNVX = PFN_vkCmdCuLaunchKernelNVX( vkGetDeviceProcAddr( device, "vkCmdCuLaunchKernelNVX" ) );
16049 
16050       //=== VK_NVX_image_view_handle ===
16051       vkGetImageViewHandleNVX  = PFN_vkGetImageViewHandleNVX( vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) );
16052       vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ) );
16053 
16054       //=== VK_AMD_draw_indirect_count ===
16055       vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ) );
16056       if ( !vkCmdDrawIndirectCount )
16057         vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD;
16058       vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) );
16059       if ( !vkCmdDrawIndexedIndirectCount )
16060         vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD;
16061 
16062       //=== VK_AMD_shader_info ===
16063       vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) );
16064 
16065       //=== VK_KHR_dynamic_rendering ===
16066       vkCmdBeginRenderingKHR = PFN_vkCmdBeginRenderingKHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderingKHR" ) );
16067       if ( !vkCmdBeginRendering )
16068         vkCmdBeginRendering = vkCmdBeginRenderingKHR;
16069       vkCmdEndRenderingKHR = PFN_vkCmdEndRenderingKHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderingKHR" ) );
16070       if ( !vkCmdEndRendering )
16071         vkCmdEndRendering = vkCmdEndRenderingKHR;
16072 
16073 #if defined( VK_USE_PLATFORM_WIN32_KHR )
16074       //=== VK_NV_external_memory_win32 ===
16075       vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) );
16076 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
16077 
16078       //=== VK_KHR_device_group ===
16079       vkGetDeviceGroupPeerMemoryFeaturesKHR =
16080         PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
16081       if ( !vkGetDeviceGroupPeerMemoryFeatures )
16082         vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
16083       vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) );
16084       if ( !vkCmdSetDeviceMask )
16085         vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
16086       vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) );
16087       if ( !vkCmdDispatchBase )
16088         vkCmdDispatchBase = vkCmdDispatchBaseKHR;
16089 
16090       //=== VK_KHR_maintenance1 ===
16091       vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) );
16092       if ( !vkTrimCommandPool )
16093         vkTrimCommandPool = vkTrimCommandPoolKHR;
16094 
16095 #if defined( VK_USE_PLATFORM_WIN32_KHR )
16096       //=== VK_KHR_external_memory_win32 ===
16097       vkGetMemoryWin32HandleKHR           = PFN_vkGetMemoryWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) );
16098       vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) );
16099 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
16100 
16101       //=== VK_KHR_external_memory_fd ===
16102       vkGetMemoryFdKHR           = PFN_vkGetMemoryFdKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) );
16103       vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) );
16104 
16105 #if defined( VK_USE_PLATFORM_WIN32_KHR )
16106       //=== VK_KHR_external_semaphore_win32 ===
16107       vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) );
16108       vkGetSemaphoreWin32HandleKHR    = PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) );
16109 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
16110 
16111       //=== VK_KHR_external_semaphore_fd ===
16112       vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) );
16113       vkGetSemaphoreFdKHR    = PFN_vkGetSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) );
16114 
16115       //=== VK_KHR_push_descriptor ===
16116       vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) );
16117       vkCmdPushDescriptorSetWithTemplateKHR =
16118         PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
16119 
16120       //=== VK_EXT_conditional_rendering ===
16121       vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) );
16122       vkCmdEndConditionalRenderingEXT   = PFN_vkCmdEndConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) );
16123 
16124       //=== VK_KHR_descriptor_update_template ===
16125       vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) );
16126       if ( !vkCreateDescriptorUpdateTemplate )
16127         vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
16128       vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) );
16129       if ( !vkDestroyDescriptorUpdateTemplate )
16130         vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
16131       vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) );
16132       if ( !vkUpdateDescriptorSetWithTemplate )
16133         vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
16134 
16135       //=== VK_NV_clip_space_w_scaling ===
16136       vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) );
16137 
16138       //=== VK_EXT_display_control ===
16139       vkDisplayPowerControlEXT  = PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) );
16140       vkRegisterDeviceEventEXT  = PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) );
16141       vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) );
16142       vkGetSwapchainCounterEXT  = PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) );
16143 
16144       //=== VK_GOOGLE_display_timing ===
16145       vkGetRefreshCycleDurationGOOGLE   = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) );
16146       vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) );
16147 
16148       //=== VK_EXT_discard_rectangles ===
16149       vkCmdSetDiscardRectangleEXT       = PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) );
16150       vkCmdSetDiscardRectangleEnableEXT = PFN_vkCmdSetDiscardRectangleEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEnableEXT" ) );
16151       vkCmdSetDiscardRectangleModeEXT   = PFN_vkCmdSetDiscardRectangleModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleModeEXT" ) );
16152 
16153       //=== VK_EXT_hdr_metadata ===
16154       vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) );
16155 
16156       //=== VK_KHR_create_renderpass2 ===
16157       vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) );
16158       if ( !vkCreateRenderPass2 )
16159         vkCreateRenderPass2 = vkCreateRenderPass2KHR;
16160       vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) );
16161       if ( !vkCmdBeginRenderPass2 )
16162         vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
16163       vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) );
16164       if ( !vkCmdNextSubpass2 )
16165         vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
16166       vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) );
16167       if ( !vkCmdEndRenderPass2 )
16168         vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
16169 
16170       //=== VK_KHR_shared_presentable_image ===
16171       vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) );
16172 
16173 #if defined( VK_USE_PLATFORM_WIN32_KHR )
16174       //=== VK_KHR_external_fence_win32 ===
16175       vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) );
16176       vkGetFenceWin32HandleKHR    = PFN_vkGetFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) );
16177 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
16178 
16179       //=== VK_KHR_external_fence_fd ===
16180       vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) );
16181       vkGetFenceFdKHR    = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) );
16182 
16183       //=== VK_KHR_performance_query ===
16184       vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) );
16185       vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) );
16186 
16187       //=== VK_EXT_debug_utils ===
16188       vkSetDebugUtilsObjectNameEXT    = PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) );
16189       vkSetDebugUtilsObjectTagEXT     = PFN_vkSetDebugUtilsObjectTagEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) );
16190       vkQueueBeginDebugUtilsLabelEXT  = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) );
16191       vkQueueEndDebugUtilsLabelEXT    = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) );
16192       vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) );
16193       vkCmdBeginDebugUtilsLabelEXT    = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) );
16194       vkCmdEndDebugUtilsLabelEXT      = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) );
16195       vkCmdInsertDebugUtilsLabelEXT   = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) );
16196 
16197 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
16198       //=== VK_ANDROID_external_memory_android_hardware_buffer ===
16199       vkGetAndroidHardwareBufferPropertiesANDROID =
16200         PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
16201       vkGetMemoryAndroidHardwareBufferANDROID =
16202         PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
16203 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
16204 
16205       //=== VK_EXT_sample_locations ===
16206       vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) );
16207 
16208       //=== VK_KHR_get_memory_requirements2 ===
16209       vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) );
16210       if ( !vkGetImageMemoryRequirements2 )
16211         vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
16212       vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) );
16213       if ( !vkGetBufferMemoryRequirements2 )
16214         vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
16215       vkGetImageSparseMemoryRequirements2KHR =
16216         PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) );
16217       if ( !vkGetImageSparseMemoryRequirements2 )
16218         vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
16219 
16220       //=== VK_KHR_acceleration_structure ===
16221       vkCreateAccelerationStructureKHR    = PFN_vkCreateAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ) );
16222       vkDestroyAccelerationStructureKHR   = PFN_vkDestroyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ) );
16223       vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresKHR" ) );
16224       vkCmdBuildAccelerationStructuresIndirectKHR =
16225         PFN_vkCmdBuildAccelerationStructuresIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresIndirectKHR" ) );
16226       vkBuildAccelerationStructuresKHR = PFN_vkBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkBuildAccelerationStructuresKHR" ) );
16227       vkCopyAccelerationStructureKHR   = PFN_vkCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureKHR" ) );
16228       vkCopyAccelerationStructureToMemoryKHR =
16229         PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureToMemoryKHR" ) );
16230       vkCopyMemoryToAccelerationStructureKHR =
16231         PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyMemoryToAccelerationStructureKHR" ) );
16232       vkWriteAccelerationStructuresPropertiesKHR =
16233         PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ) );
16234       vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ) );
16235       vkCmdCopyAccelerationStructureToMemoryKHR =
16236         PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
16237       vkCmdCopyMemoryToAccelerationStructureKHR =
16238         PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
16239       vkGetAccelerationStructureDeviceAddressKHR =
16240         PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" ) );
16241       vkCmdWriteAccelerationStructuresPropertiesKHR =
16242         PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
16243       vkGetDeviceAccelerationStructureCompatibilityKHR =
16244         PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
16245       vkGetAccelerationStructureBuildSizesKHR =
16246         PFN_vkGetAccelerationStructureBuildSizesKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureBuildSizesKHR" ) );
16247 
16248       //=== VK_KHR_ray_tracing_pipeline ===
16249       vkCmdTraceRaysKHR                    = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) );
16250       vkCreateRayTracingPipelinesKHR       = PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) );
16251       vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ) );
16252       vkGetRayTracingCaptureReplayShaderGroupHandlesKHR =
16253         PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
16254       vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) );
16255       vkGetRayTracingShaderGroupStackSizeKHR =
16256         PFN_vkGetRayTracingShaderGroupStackSizeKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupStackSizeKHR" ) );
16257       vkCmdSetRayTracingPipelineStackSizeKHR =
16258         PFN_vkCmdSetRayTracingPipelineStackSizeKHR( vkGetDeviceProcAddr( device, "vkCmdSetRayTracingPipelineStackSizeKHR" ) );
16259 
16260       //=== VK_KHR_sampler_ycbcr_conversion ===
16261       vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) );
16262       if ( !vkCreateSamplerYcbcrConversion )
16263         vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR;
16264       vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) );
16265       if ( !vkDestroySamplerYcbcrConversion )
16266         vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR;
16267 
16268       //=== VK_KHR_bind_memory2 ===
16269       vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) );
16270       if ( !vkBindBufferMemory2 )
16271         vkBindBufferMemory2 = vkBindBufferMemory2KHR;
16272       vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) );
16273       if ( !vkBindImageMemory2 )
16274         vkBindImageMemory2 = vkBindImageMemory2KHR;
16275 
16276       //=== VK_EXT_image_drm_format_modifier ===
16277       vkGetImageDrmFormatModifierPropertiesEXT =
16278         PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
16279 
16280       //=== VK_EXT_validation_cache ===
16281       vkCreateValidationCacheEXT  = PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) );
16282       vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) );
16283       vkMergeValidationCachesEXT  = PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) );
16284       vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) );
16285 
16286       //=== VK_NV_shading_rate_image ===
16287       vkCmdBindShadingRateImageNV          = PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) );
16288       vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) );
16289       vkCmdSetCoarseSampleOrderNV          = PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) );
16290 
16291       //=== VK_NV_ray_tracing ===
16292       vkCreateAccelerationStructureNV  = PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) );
16293       vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) );
16294       vkGetAccelerationStructureMemoryRequirementsNV =
16295         PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
16296       vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) );
16297       vkCmdBuildAccelerationStructureNV   = PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) );
16298       vkCmdCopyAccelerationStructureNV    = PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) );
16299       vkCmdTraceRaysNV                    = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) );
16300       vkCreateRayTracingPipelinesNV       = PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) );
16301       vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) );
16302       if ( !vkGetRayTracingShaderGroupHandlesKHR )
16303         vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
16304       vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) );
16305       vkCmdWriteAccelerationStructuresPropertiesNV =
16306         PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
16307       vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) );
16308 
16309       //=== VK_KHR_maintenance3 ===
16310       vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) );
16311       if ( !vkGetDescriptorSetLayoutSupport )
16312         vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
16313 
16314       //=== VK_KHR_draw_indirect_count ===
16315       vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) );
16316       if ( !vkCmdDrawIndirectCount )
16317         vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
16318       vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) );
16319       if ( !vkCmdDrawIndexedIndirectCount )
16320         vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
16321 
16322       //=== VK_EXT_external_memory_host ===
16323       vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) );
16324 
16325       //=== VK_AMD_buffer_marker ===
16326       vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) );
16327 
16328       //=== VK_EXT_calibrated_timestamps ===
16329       vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) );
16330 
16331       //=== VK_NV_mesh_shader ===
16332       vkCmdDrawMeshTasksNV              = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) );
16333       vkCmdDrawMeshTasksIndirectNV      = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) );
16334       vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) );
16335 
16336       //=== VK_NV_scissor_exclusive ===
16337       vkCmdSetExclusiveScissorEnableNV = PFN_vkCmdSetExclusiveScissorEnableNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorEnableNV" ) );
16338       vkCmdSetExclusiveScissorNV       = PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) );
16339 
16340       //=== VK_NV_device_diagnostic_checkpoints ===
16341       vkCmdSetCheckpointNV       = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) );
16342       vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) );
16343 
16344       //=== VK_KHR_timeline_semaphore ===
16345       vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValueKHR" ) );
16346       if ( !vkGetSemaphoreCounterValue )
16347         vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
16348       vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetDeviceProcAddr( device, "vkWaitSemaphoresKHR" ) );
16349       if ( !vkWaitSemaphores )
16350         vkWaitSemaphores = vkWaitSemaphoresKHR;
16351       vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetDeviceProcAddr( device, "vkSignalSemaphoreKHR" ) );
16352       if ( !vkSignalSemaphore )
16353         vkSignalSemaphore = vkSignalSemaphoreKHR;
16354 
16355       //=== VK_INTEL_performance_query ===
16356       vkInitializePerformanceApiINTEL      = PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) );
16357       vkUninitializePerformanceApiINTEL    = PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) );
16358       vkCmdSetPerformanceMarkerINTEL       = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) );
16359       vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
16360       vkCmdSetPerformanceOverrideINTEL     = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) );
16361       vkAcquirePerformanceConfigurationINTEL =
16362         PFN_vkAcquirePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) );
16363       vkReleasePerformanceConfigurationINTEL =
16364         PFN_vkReleasePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) );
16365       vkQueueSetPerformanceConfigurationINTEL =
16366         PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) );
16367       vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) );
16368 
16369       //=== VK_AMD_display_native_hdr ===
16370       vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) );
16371 
16372       //=== VK_KHR_fragment_shading_rate ===
16373       vkCmdSetFragmentShadingRateKHR = PFN_vkCmdSetFragmentShadingRateKHR( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateKHR" ) );
16374 
16375       //=== VK_EXT_buffer_device_address ===
16376       vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) );
16377       if ( !vkGetBufferDeviceAddress )
16378         vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT;
16379 
16380       //=== VK_KHR_present_wait ===
16381       vkWaitForPresentKHR = PFN_vkWaitForPresentKHR( vkGetDeviceProcAddr( device, "vkWaitForPresentKHR" ) );
16382 
16383 #if defined( VK_USE_PLATFORM_WIN32_KHR )
16384       //=== VK_EXT_full_screen_exclusive ===
16385       vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) );
16386       vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) );
16387       vkGetDeviceGroupSurfacePresentModes2EXT =
16388         PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
16389 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
16390 
16391       //=== VK_KHR_buffer_device_address ===
16392       vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressKHR" ) );
16393       if ( !vkGetBufferDeviceAddress )
16394         vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR;
16395       vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddressKHR" ) );
16396       if ( !vkGetBufferOpaqueCaptureAddress )
16397         vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR;
16398       vkGetDeviceMemoryOpaqueCaptureAddressKHR =
16399         PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
16400       if ( !vkGetDeviceMemoryOpaqueCaptureAddress )
16401         vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR;
16402 
16403       //=== VK_EXT_line_rasterization ===
16404       vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) );
16405 
16406       //=== VK_EXT_host_query_reset ===
16407       vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) );
16408       if ( !vkResetQueryPool )
16409         vkResetQueryPool = vkResetQueryPoolEXT;
16410 
16411       //=== VK_EXT_extended_dynamic_state ===
16412       vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetCullModeEXT" ) );
16413       if ( !vkCmdSetCullMode )
16414         vkCmdSetCullMode = vkCmdSetCullModeEXT;
16415       vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetDeviceProcAddr( device, "vkCmdSetFrontFaceEXT" ) );
16416       if ( !vkCmdSetFrontFace )
16417         vkCmdSetFrontFace = vkCmdSetFrontFaceEXT;
16418       vkCmdSetPrimitiveTopologyEXT = PFN_vkCmdSetPrimitiveTopologyEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopologyEXT" ) );
16419       if ( !vkCmdSetPrimitiveTopology )
16420         vkCmdSetPrimitiveTopology = vkCmdSetPrimitiveTopologyEXT;
16421       vkCmdSetViewportWithCountEXT = PFN_vkCmdSetViewportWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCountEXT" ) );
16422       if ( !vkCmdSetViewportWithCount )
16423         vkCmdSetViewportWithCount = vkCmdSetViewportWithCountEXT;
16424       vkCmdSetScissorWithCountEXT = PFN_vkCmdSetScissorWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCountEXT" ) );
16425       if ( !vkCmdSetScissorWithCount )
16426         vkCmdSetScissorWithCount = vkCmdSetScissorWithCountEXT;
16427       vkCmdBindVertexBuffers2EXT = PFN_vkCmdBindVertexBuffers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2EXT" ) );
16428       if ( !vkCmdBindVertexBuffers2 )
16429         vkCmdBindVertexBuffers2 = vkCmdBindVertexBuffers2EXT;
16430       vkCmdSetDepthTestEnableEXT = PFN_vkCmdSetDepthTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthTestEnableEXT" ) );
16431       if ( !vkCmdSetDepthTestEnable )
16432         vkCmdSetDepthTestEnable = vkCmdSetDepthTestEnableEXT;
16433       vkCmdSetDepthWriteEnableEXT = PFN_vkCmdSetDepthWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthWriteEnableEXT" ) );
16434       if ( !vkCmdSetDepthWriteEnable )
16435         vkCmdSetDepthWriteEnable = vkCmdSetDepthWriteEnableEXT;
16436       vkCmdSetDepthCompareOpEXT = PFN_vkCmdSetDepthCompareOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOpEXT" ) );
16437       if ( !vkCmdSetDepthCompareOp )
16438         vkCmdSetDepthCompareOp = vkCmdSetDepthCompareOpEXT;
16439       vkCmdSetDepthBoundsTestEnableEXT = PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnableEXT" ) );
16440       if ( !vkCmdSetDepthBoundsTestEnable )
16441         vkCmdSetDepthBoundsTestEnable = vkCmdSetDepthBoundsTestEnableEXT;
16442       vkCmdSetStencilTestEnableEXT = PFN_vkCmdSetStencilTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnableEXT" ) );
16443       if ( !vkCmdSetStencilTestEnable )
16444         vkCmdSetStencilTestEnable = vkCmdSetStencilTestEnableEXT;
16445       vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilOpEXT" ) );
16446       if ( !vkCmdSetStencilOp )
16447         vkCmdSetStencilOp = vkCmdSetStencilOpEXT;
16448 
16449       //=== VK_KHR_deferred_host_operations ===
16450       vkCreateDeferredOperationKHR  = PFN_vkCreateDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ) );
16451       vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ) );
16452       vkGetDeferredOperationMaxConcurrencyKHR =
16453         PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
16454       vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" ) );
16455       vkDeferredOperationJoinKHR      = PFN_vkDeferredOperationJoinKHR( vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ) );
16456 
16457       //=== VK_KHR_pipeline_executable_properties ===
16458       vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ) );
16459       vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ) );
16460       vkGetPipelineExecutableInternalRepresentationsKHR =
16461         PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
16462 
16463       //=== VK_EXT_host_image_copy ===
16464       vkCopyMemoryToImageEXT          = PFN_vkCopyMemoryToImageEXT( vkGetDeviceProcAddr( device, "vkCopyMemoryToImageEXT" ) );
16465       vkCopyImageToMemoryEXT          = PFN_vkCopyImageToMemoryEXT( vkGetDeviceProcAddr( device, "vkCopyImageToMemoryEXT" ) );
16466       vkCopyImageToImageEXT           = PFN_vkCopyImageToImageEXT( vkGetDeviceProcAddr( device, "vkCopyImageToImageEXT" ) );
16467       vkTransitionImageLayoutEXT      = PFN_vkTransitionImageLayoutEXT( vkGetDeviceProcAddr( device, "vkTransitionImageLayoutEXT" ) );
16468       vkGetImageSubresourceLayout2EXT = PFN_vkGetImageSubresourceLayout2EXT( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout2EXT" ) );
16469 
16470       //=== VK_KHR_map_memory2 ===
16471       vkMapMemory2KHR   = PFN_vkMapMemory2KHR( vkGetDeviceProcAddr( device, "vkMapMemory2KHR" ) );
16472       vkUnmapMemory2KHR = PFN_vkUnmapMemory2KHR( vkGetDeviceProcAddr( device, "vkUnmapMemory2KHR" ) );
16473 
16474       //=== VK_EXT_swapchain_maintenance1 ===
16475       vkReleaseSwapchainImagesEXT = PFN_vkReleaseSwapchainImagesEXT( vkGetDeviceProcAddr( device, "vkReleaseSwapchainImagesEXT" ) );
16476 
16477       //=== VK_NV_device_generated_commands ===
16478       vkGetGeneratedCommandsMemoryRequirementsNV =
16479         PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
16480       vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ) );
16481       vkCmdExecuteGeneratedCommandsNV    = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ) );
16482       vkCmdBindPipelineShaderGroupNV     = PFN_vkCmdBindPipelineShaderGroupNV( vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ) );
16483       vkCreateIndirectCommandsLayoutNV   = PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) );
16484       vkDestroyIndirectCommandsLayoutNV  = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) );
16485 
16486       //=== VK_EXT_depth_bias_control ===
16487       vkCmdSetDepthBias2EXT = PFN_vkCmdSetDepthBias2EXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias2EXT" ) );
16488 
16489       //=== VK_EXT_private_data ===
16490       vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) );
16491       if ( !vkCreatePrivateDataSlot )
16492         vkCreatePrivateDataSlot = vkCreatePrivateDataSlotEXT;
16493       vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ) );
16494       if ( !vkDestroyPrivateDataSlot )
16495         vkDestroyPrivateDataSlot = vkDestroyPrivateDataSlotEXT;
16496       vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkSetPrivateDataEXT" ) );
16497       if ( !vkSetPrivateData )
16498         vkSetPrivateData = vkSetPrivateDataEXT;
16499       vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ) );
16500       if ( !vkGetPrivateData )
16501         vkGetPrivateData = vkGetPrivateDataEXT;
16502 
16503 #if defined( VK_ENABLE_BETA_EXTENSIONS )
16504       //=== VK_KHR_video_encode_queue ===
16505       vkGetEncodedVideoSessionParametersKHR =
16506         PFN_vkGetEncodedVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkGetEncodedVideoSessionParametersKHR" ) );
16507       vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdEncodeVideoKHR" ) );
16508 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
16509 
16510 #if defined( VK_USE_PLATFORM_METAL_EXT )
16511       //=== VK_EXT_metal_objects ===
16512       vkExportMetalObjectsEXT = PFN_vkExportMetalObjectsEXT( vkGetDeviceProcAddr( device, "vkExportMetalObjectsEXT" ) );
16513 #endif /*VK_USE_PLATFORM_METAL_EXT*/
16514 
16515       //=== VK_KHR_synchronization2 ===
16516       vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdSetEvent2KHR" ) );
16517       if ( !vkCmdSetEvent2 )
16518         vkCmdSetEvent2 = vkCmdSetEvent2KHR;
16519       vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdResetEvent2KHR" ) );
16520       if ( !vkCmdResetEvent2 )
16521         vkCmdResetEvent2 = vkCmdResetEvent2KHR;
16522       vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetDeviceProcAddr( device, "vkCmdWaitEvents2KHR" ) );
16523       if ( !vkCmdWaitEvents2 )
16524         vkCmdWaitEvents2 = vkCmdWaitEvents2KHR;
16525       vkCmdPipelineBarrier2KHR = PFN_vkCmdPipelineBarrier2KHR( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier2KHR" ) );
16526       if ( !vkCmdPipelineBarrier2 )
16527         vkCmdPipelineBarrier2 = vkCmdPipelineBarrier2KHR;
16528       vkCmdWriteTimestamp2KHR = PFN_vkCmdWriteTimestamp2KHR( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp2KHR" ) );
16529       if ( !vkCmdWriteTimestamp2 )
16530         vkCmdWriteTimestamp2 = vkCmdWriteTimestamp2KHR;
16531       vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetDeviceProcAddr( device, "vkQueueSubmit2KHR" ) );
16532       if ( !vkQueueSubmit2 )
16533         vkQueueSubmit2 = vkQueueSubmit2KHR;
16534       vkCmdWriteBufferMarker2AMD  = PFN_vkCmdWriteBufferMarker2AMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarker2AMD" ) );
16535       vkGetQueueCheckpointData2NV = PFN_vkGetQueueCheckpointData2NV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointData2NV" ) );
16536 
16537       //=== VK_EXT_descriptor_buffer ===
16538       vkGetDescriptorSetLayoutSizeEXT = PFN_vkGetDescriptorSetLayoutSizeEXT( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSizeEXT" ) );
16539       vkGetDescriptorSetLayoutBindingOffsetEXT =
16540         PFN_vkGetDescriptorSetLayoutBindingOffsetEXT( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutBindingOffsetEXT" ) );
16541       vkGetDescriptorEXT                 = PFN_vkGetDescriptorEXT( vkGetDeviceProcAddr( device, "vkGetDescriptorEXT" ) );
16542       vkCmdBindDescriptorBuffersEXT      = PFN_vkCmdBindDescriptorBuffersEXT( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorBuffersEXT" ) );
16543       vkCmdSetDescriptorBufferOffsetsEXT = PFN_vkCmdSetDescriptorBufferOffsetsEXT( vkGetDeviceProcAddr( device, "vkCmdSetDescriptorBufferOffsetsEXT" ) );
16544       vkCmdBindDescriptorBufferEmbeddedSamplersEXT =
16545         PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT" ) );
16546       vkGetBufferOpaqueCaptureDescriptorDataEXT =
16547         PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureDescriptorDataEXT" ) );
16548       vkGetImageOpaqueCaptureDescriptorDataEXT =
16549         PFN_vkGetImageOpaqueCaptureDescriptorDataEXT( vkGetDeviceProcAddr( device, "vkGetImageOpaqueCaptureDescriptorDataEXT" ) );
16550       vkGetImageViewOpaqueCaptureDescriptorDataEXT =
16551         PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT( vkGetDeviceProcAddr( device, "vkGetImageViewOpaqueCaptureDescriptorDataEXT" ) );
16552       vkGetSamplerOpaqueCaptureDescriptorDataEXT =
16553         PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT( vkGetDeviceProcAddr( device, "vkGetSamplerOpaqueCaptureDescriptorDataEXT" ) );
16554       vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
16555         vkGetDeviceProcAddr( device, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT" ) );
16556 
16557       //=== VK_NV_fragment_shading_rate_enums ===
16558       vkCmdSetFragmentShadingRateEnumNV = PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateEnumNV" ) );
16559 
16560       //=== VK_EXT_mesh_shader ===
16561       vkCmdDrawMeshTasksEXT              = PFN_vkCmdDrawMeshTasksEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksEXT" ) );
16562       vkCmdDrawMeshTasksIndirectEXT      = PFN_vkCmdDrawMeshTasksIndirectEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectEXT" ) );
16563       vkCmdDrawMeshTasksIndirectCountEXT = PFN_vkCmdDrawMeshTasksIndirectCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountEXT" ) );
16564 
16565       //=== VK_KHR_copy_commands2 ===
16566       vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2KHR" ) );
16567       if ( !vkCmdCopyBuffer2 )
16568         vkCmdCopyBuffer2 = vkCmdCopyBuffer2KHR;
16569       vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImage2KHR" ) );
16570       if ( !vkCmdCopyImage2 )
16571         vkCmdCopyImage2 = vkCmdCopyImage2KHR;
16572       vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2KHR" ) );
16573       if ( !vkCmdCopyBufferToImage2 )
16574         vkCmdCopyBufferToImage2 = vkCmdCopyBufferToImage2KHR;
16575       vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2KHR" ) );
16576       if ( !vkCmdCopyImageToBuffer2 )
16577         vkCmdCopyImageToBuffer2 = vkCmdCopyImageToBuffer2KHR;
16578       vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetDeviceProcAddr( device, "vkCmdBlitImage2KHR" ) );
16579       if ( !vkCmdBlitImage2 )
16580         vkCmdBlitImage2 = vkCmdBlitImage2KHR;
16581       vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetDeviceProcAddr( device, "vkCmdResolveImage2KHR" ) );
16582       if ( !vkCmdResolveImage2 )
16583         vkCmdResolveImage2 = vkCmdResolveImage2KHR;
16584 
16585       //=== VK_EXT_device_fault ===
16586       vkGetDeviceFaultInfoEXT = PFN_vkGetDeviceFaultInfoEXT( vkGetDeviceProcAddr( device, "vkGetDeviceFaultInfoEXT" ) );
16587 
16588       //=== VK_EXT_vertex_input_dynamic_state ===
16589       vkCmdSetVertexInputEXT = PFN_vkCmdSetVertexInputEXT( vkGetDeviceProcAddr( device, "vkCmdSetVertexInputEXT" ) );
16590 
16591 #if defined( VK_USE_PLATFORM_FUCHSIA )
16592       //=== VK_FUCHSIA_external_memory ===
16593       vkGetMemoryZirconHandleFUCHSIA = PFN_vkGetMemoryZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandleFUCHSIA" ) );
16594       vkGetMemoryZirconHandlePropertiesFUCHSIA =
16595         PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA( vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandlePropertiesFUCHSIA" ) );
16596 #endif /*VK_USE_PLATFORM_FUCHSIA*/
16597 
16598 #if defined( VK_USE_PLATFORM_FUCHSIA )
16599       //=== VK_FUCHSIA_external_semaphore ===
16600       vkImportSemaphoreZirconHandleFUCHSIA = PFN_vkImportSemaphoreZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkImportSemaphoreZirconHandleFUCHSIA" ) );
16601       vkGetSemaphoreZirconHandleFUCHSIA    = PFN_vkGetSemaphoreZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetSemaphoreZirconHandleFUCHSIA" ) );
16602 #endif /*VK_USE_PLATFORM_FUCHSIA*/
16603 
16604 #if defined( VK_USE_PLATFORM_FUCHSIA )
16605       //=== VK_FUCHSIA_buffer_collection ===
16606       vkCreateBufferCollectionFUCHSIA = PFN_vkCreateBufferCollectionFUCHSIA( vkGetDeviceProcAddr( device, "vkCreateBufferCollectionFUCHSIA" ) );
16607       vkSetBufferCollectionImageConstraintsFUCHSIA =
16608         PFN_vkSetBufferCollectionImageConstraintsFUCHSIA( vkGetDeviceProcAddr( device, "vkSetBufferCollectionImageConstraintsFUCHSIA" ) );
16609       vkSetBufferCollectionBufferConstraintsFUCHSIA =
16610         PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA( vkGetDeviceProcAddr( device, "vkSetBufferCollectionBufferConstraintsFUCHSIA" ) );
16611       vkDestroyBufferCollectionFUCHSIA = PFN_vkDestroyBufferCollectionFUCHSIA( vkGetDeviceProcAddr( device, "vkDestroyBufferCollectionFUCHSIA" ) );
16612       vkGetBufferCollectionPropertiesFUCHSIA =
16613         PFN_vkGetBufferCollectionPropertiesFUCHSIA( vkGetDeviceProcAddr( device, "vkGetBufferCollectionPropertiesFUCHSIA" ) );
16614 #endif /*VK_USE_PLATFORM_FUCHSIA*/
16615 
16616       //=== VK_HUAWEI_subpass_shading ===
16617       vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI =
16618         PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( vkGetDeviceProcAddr( device, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" ) );
16619       vkCmdSubpassShadingHUAWEI = PFN_vkCmdSubpassShadingHUAWEI( vkGetDeviceProcAddr( device, "vkCmdSubpassShadingHUAWEI" ) );
16620 
16621       //=== VK_HUAWEI_invocation_mask ===
16622       vkCmdBindInvocationMaskHUAWEI = PFN_vkCmdBindInvocationMaskHUAWEI( vkGetDeviceProcAddr( device, "vkCmdBindInvocationMaskHUAWEI" ) );
16623 
16624       //=== VK_NV_external_memory_rdma ===
16625       vkGetMemoryRemoteAddressNV = PFN_vkGetMemoryRemoteAddressNV( vkGetDeviceProcAddr( device, "vkGetMemoryRemoteAddressNV" ) );
16626 
16627       //=== VK_EXT_pipeline_properties ===
16628       vkGetPipelinePropertiesEXT = PFN_vkGetPipelinePropertiesEXT( vkGetDeviceProcAddr( device, "vkGetPipelinePropertiesEXT" ) );
16629 
16630       //=== VK_EXT_extended_dynamic_state2 ===
16631       vkCmdSetPatchControlPointsEXT      = PFN_vkCmdSetPatchControlPointsEXT( vkGetDeviceProcAddr( device, "vkCmdSetPatchControlPointsEXT" ) );
16632       vkCmdSetRasterizerDiscardEnableEXT = PFN_vkCmdSetRasterizerDiscardEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetRasterizerDiscardEnableEXT" ) );
16633       if ( !vkCmdSetRasterizerDiscardEnable )
16634         vkCmdSetRasterizerDiscardEnable = vkCmdSetRasterizerDiscardEnableEXT;
16635       vkCmdSetDepthBiasEnableEXT = PFN_vkCmdSetDepthBiasEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBiasEnableEXT" ) );
16636       if ( !vkCmdSetDepthBiasEnable )
16637         vkCmdSetDepthBiasEnable = vkCmdSetDepthBiasEnableEXT;
16638       vkCmdSetLogicOpEXT                = PFN_vkCmdSetLogicOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetLogicOpEXT" ) );
16639       vkCmdSetPrimitiveRestartEnableEXT = PFN_vkCmdSetPrimitiveRestartEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveRestartEnableEXT" ) );
16640       if ( !vkCmdSetPrimitiveRestartEnable )
16641         vkCmdSetPrimitiveRestartEnable = vkCmdSetPrimitiveRestartEnableEXT;
16642 
16643       //=== VK_EXT_color_write_enable ===
16644       vkCmdSetColorWriteEnableEXT = PFN_vkCmdSetColorWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorWriteEnableEXT" ) );
16645 
16646       //=== VK_KHR_ray_tracing_maintenance1 ===
16647       vkCmdTraceRaysIndirect2KHR = PFN_vkCmdTraceRaysIndirect2KHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirect2KHR" ) );
16648 
16649       //=== VK_EXT_multi_draw ===
16650       vkCmdDrawMultiEXT        = PFN_vkCmdDrawMultiEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiEXT" ) );
16651       vkCmdDrawMultiIndexedEXT = PFN_vkCmdDrawMultiIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiIndexedEXT" ) );
16652 
16653       //=== VK_EXT_opacity_micromap ===
16654       vkCreateMicromapEXT                 = PFN_vkCreateMicromapEXT( vkGetDeviceProcAddr( device, "vkCreateMicromapEXT" ) );
16655       vkDestroyMicromapEXT                = PFN_vkDestroyMicromapEXT( vkGetDeviceProcAddr( device, "vkDestroyMicromapEXT" ) );
16656       vkCmdBuildMicromapsEXT              = PFN_vkCmdBuildMicromapsEXT( vkGetDeviceProcAddr( device, "vkCmdBuildMicromapsEXT" ) );
16657       vkBuildMicromapsEXT                 = PFN_vkBuildMicromapsEXT( vkGetDeviceProcAddr( device, "vkBuildMicromapsEXT" ) );
16658       vkCopyMicromapEXT                   = PFN_vkCopyMicromapEXT( vkGetDeviceProcAddr( device, "vkCopyMicromapEXT" ) );
16659       vkCopyMicromapToMemoryEXT           = PFN_vkCopyMicromapToMemoryEXT( vkGetDeviceProcAddr( device, "vkCopyMicromapToMemoryEXT" ) );
16660       vkCopyMemoryToMicromapEXT           = PFN_vkCopyMemoryToMicromapEXT( vkGetDeviceProcAddr( device, "vkCopyMemoryToMicromapEXT" ) );
16661       vkWriteMicromapsPropertiesEXT       = PFN_vkWriteMicromapsPropertiesEXT( vkGetDeviceProcAddr( device, "vkWriteMicromapsPropertiesEXT" ) );
16662       vkCmdCopyMicromapEXT                = PFN_vkCmdCopyMicromapEXT( vkGetDeviceProcAddr( device, "vkCmdCopyMicromapEXT" ) );
16663       vkCmdCopyMicromapToMemoryEXT        = PFN_vkCmdCopyMicromapToMemoryEXT( vkGetDeviceProcAddr( device, "vkCmdCopyMicromapToMemoryEXT" ) );
16664       vkCmdCopyMemoryToMicromapEXT        = PFN_vkCmdCopyMemoryToMicromapEXT( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToMicromapEXT" ) );
16665       vkCmdWriteMicromapsPropertiesEXT    = PFN_vkCmdWriteMicromapsPropertiesEXT( vkGetDeviceProcAddr( device, "vkCmdWriteMicromapsPropertiesEXT" ) );
16666       vkGetDeviceMicromapCompatibilityEXT = PFN_vkGetDeviceMicromapCompatibilityEXT( vkGetDeviceProcAddr( device, "vkGetDeviceMicromapCompatibilityEXT" ) );
16667       vkGetMicromapBuildSizesEXT          = PFN_vkGetMicromapBuildSizesEXT( vkGetDeviceProcAddr( device, "vkGetMicromapBuildSizesEXT" ) );
16668 
16669       //=== VK_HUAWEI_cluster_culling_shader ===
16670       vkCmdDrawClusterHUAWEI         = PFN_vkCmdDrawClusterHUAWEI( vkGetDeviceProcAddr( device, "vkCmdDrawClusterHUAWEI" ) );
16671       vkCmdDrawClusterIndirectHUAWEI = PFN_vkCmdDrawClusterIndirectHUAWEI( vkGetDeviceProcAddr( device, "vkCmdDrawClusterIndirectHUAWEI" ) );
16672 
16673       //=== VK_EXT_pageable_device_local_memory ===
16674       vkSetDeviceMemoryPriorityEXT = PFN_vkSetDeviceMemoryPriorityEXT( vkGetDeviceProcAddr( device, "vkSetDeviceMemoryPriorityEXT" ) );
16675 
16676       //=== VK_KHR_maintenance4 ===
16677       vkGetDeviceBufferMemoryRequirementsKHR =
16678         PFN_vkGetDeviceBufferMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetDeviceBufferMemoryRequirementsKHR" ) );
16679       if ( !vkGetDeviceBufferMemoryRequirements )
16680         vkGetDeviceBufferMemoryRequirements = vkGetDeviceBufferMemoryRequirementsKHR;
16681       vkGetDeviceImageMemoryRequirementsKHR =
16682         PFN_vkGetDeviceImageMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetDeviceImageMemoryRequirementsKHR" ) );
16683       if ( !vkGetDeviceImageMemoryRequirements )
16684         vkGetDeviceImageMemoryRequirements = vkGetDeviceImageMemoryRequirementsKHR;
16685       vkGetDeviceImageSparseMemoryRequirementsKHR =
16686         PFN_vkGetDeviceImageSparseMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetDeviceImageSparseMemoryRequirementsKHR" ) );
16687       if ( !vkGetDeviceImageSparseMemoryRequirements )
16688         vkGetDeviceImageSparseMemoryRequirements = vkGetDeviceImageSparseMemoryRequirementsKHR;
16689 
16690       //=== VK_VALVE_descriptor_set_host_mapping ===
16691       vkGetDescriptorSetLayoutHostMappingInfoVALVE =
16692         PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutHostMappingInfoVALVE" ) );
16693       vkGetDescriptorSetHostMappingVALVE = PFN_vkGetDescriptorSetHostMappingVALVE( vkGetDeviceProcAddr( device, "vkGetDescriptorSetHostMappingVALVE" ) );
16694 
16695       //=== VK_NV_copy_memory_indirect ===
16696       vkCmdCopyMemoryIndirectNV        = PFN_vkCmdCopyMemoryIndirectNV( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryIndirectNV" ) );
16697       vkCmdCopyMemoryToImageIndirectNV = PFN_vkCmdCopyMemoryToImageIndirectNV( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToImageIndirectNV" ) );
16698 
16699       //=== VK_NV_memory_decompression ===
16700       vkCmdDecompressMemoryNV              = PFN_vkCmdDecompressMemoryNV( vkGetDeviceProcAddr( device, "vkCmdDecompressMemoryNV" ) );
16701       vkCmdDecompressMemoryIndirectCountNV = PFN_vkCmdDecompressMemoryIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDecompressMemoryIndirectCountNV" ) );
16702 
16703       //=== VK_NV_device_generated_commands_compute ===
16704       vkGetPipelineIndirectMemoryRequirementsNV =
16705         PFN_vkGetPipelineIndirectMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetPipelineIndirectMemoryRequirementsNV" ) );
16706       vkCmdUpdatePipelineIndirectBufferNV  = PFN_vkCmdUpdatePipelineIndirectBufferNV( vkGetDeviceProcAddr( device, "vkCmdUpdatePipelineIndirectBufferNV" ) );
16707       vkGetPipelineIndirectDeviceAddressNV = PFN_vkGetPipelineIndirectDeviceAddressNV( vkGetDeviceProcAddr( device, "vkGetPipelineIndirectDeviceAddressNV" ) );
16708 
16709       //=== VK_EXT_extended_dynamic_state3 ===
16710       vkCmdSetTessellationDomainOriginEXT = PFN_vkCmdSetTessellationDomainOriginEXT( vkGetDeviceProcAddr( device, "vkCmdSetTessellationDomainOriginEXT" ) );
16711       vkCmdSetDepthClampEnableEXT         = PFN_vkCmdSetDepthClampEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthClampEnableEXT" ) );
16712       vkCmdSetPolygonModeEXT              = PFN_vkCmdSetPolygonModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetPolygonModeEXT" ) );
16713       vkCmdSetRasterizationSamplesEXT     = PFN_vkCmdSetRasterizationSamplesEXT( vkGetDeviceProcAddr( device, "vkCmdSetRasterizationSamplesEXT" ) );
16714       vkCmdSetSampleMaskEXT               = PFN_vkCmdSetSampleMaskEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleMaskEXT" ) );
16715       vkCmdSetAlphaToCoverageEnableEXT    = PFN_vkCmdSetAlphaToCoverageEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetAlphaToCoverageEnableEXT" ) );
16716       vkCmdSetAlphaToOneEnableEXT         = PFN_vkCmdSetAlphaToOneEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetAlphaToOneEnableEXT" ) );
16717       vkCmdSetLogicOpEnableEXT            = PFN_vkCmdSetLogicOpEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetLogicOpEnableEXT" ) );
16718       vkCmdSetColorBlendEnableEXT         = PFN_vkCmdSetColorBlendEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorBlendEnableEXT" ) );
16719       vkCmdSetColorBlendEquationEXT       = PFN_vkCmdSetColorBlendEquationEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorBlendEquationEXT" ) );
16720       vkCmdSetColorWriteMaskEXT           = PFN_vkCmdSetColorWriteMaskEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorWriteMaskEXT" ) );
16721       vkCmdSetRasterizationStreamEXT      = PFN_vkCmdSetRasterizationStreamEXT( vkGetDeviceProcAddr( device, "vkCmdSetRasterizationStreamEXT" ) );
16722       vkCmdSetConservativeRasterizationModeEXT =
16723         PFN_vkCmdSetConservativeRasterizationModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetConservativeRasterizationModeEXT" ) );
16724       vkCmdSetExtraPrimitiveOverestimationSizeEXT =
16725         PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT( vkGetDeviceProcAddr( device, "vkCmdSetExtraPrimitiveOverestimationSizeEXT" ) );
16726       vkCmdSetDepthClipEnableEXT           = PFN_vkCmdSetDepthClipEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthClipEnableEXT" ) );
16727       vkCmdSetSampleLocationsEnableEXT     = PFN_vkCmdSetSampleLocationsEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEnableEXT" ) );
16728       vkCmdSetColorBlendAdvancedEXT        = PFN_vkCmdSetColorBlendAdvancedEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorBlendAdvancedEXT" ) );
16729       vkCmdSetProvokingVertexModeEXT       = PFN_vkCmdSetProvokingVertexModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetProvokingVertexModeEXT" ) );
16730       vkCmdSetLineRasterizationModeEXT     = PFN_vkCmdSetLineRasterizationModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineRasterizationModeEXT" ) );
16731       vkCmdSetLineStippleEnableEXT         = PFN_vkCmdSetLineStippleEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEnableEXT" ) );
16732       vkCmdSetDepthClipNegativeOneToOneEXT = PFN_vkCmdSetDepthClipNegativeOneToOneEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthClipNegativeOneToOneEXT" ) );
16733       vkCmdSetViewportWScalingEnableNV     = PFN_vkCmdSetViewportWScalingEnableNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingEnableNV" ) );
16734       vkCmdSetViewportSwizzleNV            = PFN_vkCmdSetViewportSwizzleNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportSwizzleNV" ) );
16735       vkCmdSetCoverageToColorEnableNV      = PFN_vkCmdSetCoverageToColorEnableNV( vkGetDeviceProcAddr( device, "vkCmdSetCoverageToColorEnableNV" ) );
16736       vkCmdSetCoverageToColorLocationNV    = PFN_vkCmdSetCoverageToColorLocationNV( vkGetDeviceProcAddr( device, "vkCmdSetCoverageToColorLocationNV" ) );
16737       vkCmdSetCoverageModulationModeNV     = PFN_vkCmdSetCoverageModulationModeNV( vkGetDeviceProcAddr( device, "vkCmdSetCoverageModulationModeNV" ) );
16738       vkCmdSetCoverageModulationTableEnableNV =
16739         PFN_vkCmdSetCoverageModulationTableEnableNV( vkGetDeviceProcAddr( device, "vkCmdSetCoverageModulationTableEnableNV" ) );
16740       vkCmdSetCoverageModulationTableNV = PFN_vkCmdSetCoverageModulationTableNV( vkGetDeviceProcAddr( device, "vkCmdSetCoverageModulationTableNV" ) );
16741       vkCmdSetShadingRateImageEnableNV  = PFN_vkCmdSetShadingRateImageEnableNV( vkGetDeviceProcAddr( device, "vkCmdSetShadingRateImageEnableNV" ) );
16742       vkCmdSetRepresentativeFragmentTestEnableNV =
16743         PFN_vkCmdSetRepresentativeFragmentTestEnableNV( vkGetDeviceProcAddr( device, "vkCmdSetRepresentativeFragmentTestEnableNV" ) );
16744       vkCmdSetCoverageReductionModeNV = PFN_vkCmdSetCoverageReductionModeNV( vkGetDeviceProcAddr( device, "vkCmdSetCoverageReductionModeNV" ) );
16745 
16746       //=== VK_EXT_shader_module_identifier ===
16747       vkGetShaderModuleIdentifierEXT = PFN_vkGetShaderModuleIdentifierEXT( vkGetDeviceProcAddr( device, "vkGetShaderModuleIdentifierEXT" ) );
16748       vkGetShaderModuleCreateInfoIdentifierEXT =
16749         PFN_vkGetShaderModuleCreateInfoIdentifierEXT( vkGetDeviceProcAddr( device, "vkGetShaderModuleCreateInfoIdentifierEXT" ) );
16750 
16751       //=== VK_NV_optical_flow ===
16752       vkCreateOpticalFlowSessionNV    = PFN_vkCreateOpticalFlowSessionNV( vkGetDeviceProcAddr( device, "vkCreateOpticalFlowSessionNV" ) );
16753       vkDestroyOpticalFlowSessionNV   = PFN_vkDestroyOpticalFlowSessionNV( vkGetDeviceProcAddr( device, "vkDestroyOpticalFlowSessionNV" ) );
16754       vkBindOpticalFlowSessionImageNV = PFN_vkBindOpticalFlowSessionImageNV( vkGetDeviceProcAddr( device, "vkBindOpticalFlowSessionImageNV" ) );
16755       vkCmdOpticalFlowExecuteNV       = PFN_vkCmdOpticalFlowExecuteNV( vkGetDeviceProcAddr( device, "vkCmdOpticalFlowExecuteNV" ) );
16756 
16757       //=== VK_EXT_shader_object ===
16758       vkCreateShadersEXT       = PFN_vkCreateShadersEXT( vkGetDeviceProcAddr( device, "vkCreateShadersEXT" ) );
16759       vkDestroyShaderEXT       = PFN_vkDestroyShaderEXT( vkGetDeviceProcAddr( device, "vkDestroyShaderEXT" ) );
16760       vkGetShaderBinaryDataEXT = PFN_vkGetShaderBinaryDataEXT( vkGetDeviceProcAddr( device, "vkGetShaderBinaryDataEXT" ) );
16761       vkCmdBindShadersEXT      = PFN_vkCmdBindShadersEXT( vkGetDeviceProcAddr( device, "vkCmdBindShadersEXT" ) );
16762 
16763       //=== VK_QCOM_tile_properties ===
16764       vkGetFramebufferTilePropertiesQCOM = PFN_vkGetFramebufferTilePropertiesQCOM( vkGetDeviceProcAddr( device, "vkGetFramebufferTilePropertiesQCOM" ) );
16765       vkGetDynamicRenderingTilePropertiesQCOM =
16766         PFN_vkGetDynamicRenderingTilePropertiesQCOM( vkGetDeviceProcAddr( device, "vkGetDynamicRenderingTilePropertiesQCOM" ) );
16767 
16768       //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
16769       vkCmdSetAttachmentFeedbackLoopEnableEXT =
16770         PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetAttachmentFeedbackLoopEnableEXT" ) );
16771 
16772 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
16773       //=== VK_QNX_external_memory_screen_buffer ===
16774       vkGetScreenBufferPropertiesQNX = PFN_vkGetScreenBufferPropertiesQNX( vkGetDeviceProcAddr( device, "vkGetScreenBufferPropertiesQNX" ) );
16775 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
16776     }
16777 
16778     template <typename DynamicLoader>
init(VULKAN_HPP_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::Device const & device,DynamicLoader const & dl)16779     void init( VULKAN_HPP_NAMESPACE::Instance const & instance, VULKAN_HPP_NAMESPACE::Device const & device, DynamicLoader const & dl ) VULKAN_HPP_NOEXCEPT
16780     {
16781       PFN_vkGetInstanceProcAddr getInstanceProcAddr = dl.template getProcAddress<PFN_vkGetInstanceProcAddr>( "vkGetInstanceProcAddr" );
16782       PFN_vkGetDeviceProcAddr   getDeviceProcAddr   = dl.template getProcAddress<PFN_vkGetDeviceProcAddr>( "vkGetDeviceProcAddr" );
16783       init( static_cast<VkInstance>( instance ), getInstanceProcAddr, static_cast<VkDevice>( device ), device ? getDeviceProcAddr : nullptr );
16784     }
16785 
16786     template <typename DynamicLoader
16787 #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
16788               = VULKAN_HPP_NAMESPACE::DynamicLoader
16789 #endif
16790               >
init(VULKAN_HPP_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::Device const & device)16791     void init( VULKAN_HPP_NAMESPACE::Instance const & instance, VULKAN_HPP_NAMESPACE::Device const & device ) VULKAN_HPP_NOEXCEPT
16792     {
16793       static DynamicLoader dl;
16794       init( instance, device, dl );
16795     }
16796   };
16797 }  // namespace VULKAN_HPP_NAMESPACE
16798 #endif
16799