• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2015-2021 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>
31 #include <cstddef>
32 #include <cstdint>
33 #include <cstring>
34 #include <functional>
35 #include <initializer_list>
36 #include <sstream>
37 #include <string>
38 #include <system_error>
39 #include <tuple>
40 #include <type_traits>
41 #include <vulkan/vulkan.h>
42 #if 17 <= VULKAN_HPP_CPP_VERSION
43 #  include <string_view>
44 #endif
45 
46 #if defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
47 #  if !defined( VULKAN_HPP_NO_SMART_HANDLE )
48 #    define VULKAN_HPP_NO_SMART_HANDLE
49 #  endif
50 #else
51 #  include <memory>
52 #  include <vector>
53 #endif
54 
55 #if defined( VULKAN_HPP_NO_CONSTRUCTORS )
56 #  if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
57 #    define VULKAN_HPP_NO_STRUCT_CONSTRUCTORS
58 #  endif
59 #  if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
60 #    define VULKAN_HPP_NO_UNION_CONSTRUCTORS
61 #  endif
62 #endif
63 
64 #if defined( VULKAN_HPP_NO_SETTERS )
65 #  if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
66 #    define VULKAN_HPP_NO_STRUCT_SETTERS
67 #  endif
68 #  if !defined( VULKAN_HPP_NO_UNION_SETTERS )
69 #    define VULKAN_HPP_NO_UNION_SETTERS
70 #  endif
71 #endif
72 
73 #if !defined( VULKAN_HPP_ASSERT )
74 #  include <cassert>
75 #  define VULKAN_HPP_ASSERT assert
76 #endif
77 
78 #if !defined( VULKAN_HPP_ASSERT_ON_RESULT )
79 #  define VULKAN_HPP_ASSERT_ON_RESULT VULKAN_HPP_ASSERT
80 #endif
81 
82 #if !defined( VULKAN_HPP_STATIC_ASSERT )
83 #  define VULKAN_HPP_STATIC_ASSERT static_assert
84 #endif
85 
86 #if !defined( VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL )
87 #  define VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 1
88 #endif
89 
90 #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL == 1
91 #  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
92 #    include <dlfcn.h>
93 #  elif defined( _WIN32 )
94 typedef struct HINSTANCE__ * HINSTANCE;
95 #    if defined( _WIN64 )
96 typedef int64_t( __stdcall * FARPROC )();
97 #    else
98 typedef int( __stdcall * FARPROC )();
99 #    endif
100 extern "C" __declspec( dllimport ) HINSTANCE __stdcall LoadLibraryA( char const * lpLibFileName );
101 extern "C" __declspec( dllimport ) int __stdcall FreeLibrary( HINSTANCE hLibModule );
102 extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE hModule, const char * lpProcName );
103 #  endif
104 #endif
105 
106 #if !defined( __has_include )
107 #  define __has_include( x ) false
108 #endif
109 
110 #if ( 201711 <= __cpp_impl_three_way_comparison ) && __has_include( <compare> ) && !defined( VULKAN_HPP_NO_SPACESHIP_OPERATOR )
111 #  define VULKAN_HPP_HAS_SPACESHIP_OPERATOR
112 #endif
113 #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
114 #  include <compare>
115 #endif
116 
117 #if ( 201803 <= __cpp_lib_span )
118 #  define VULKAN_HPP_SUPPORT_SPAN
119 #  include <span>
120 #endif
121 
122 static_assert( VK_HEADER_VERSION == 196, "Wrong VK_HEADER_VERSION!" );
123 
124 // 32-bit vulkan is not typesafe for handles, so don't allow copy constructors on this platform by default.
125 // To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION
126 #if ( VK_USE_64_BIT_PTR_DEFINES == 1 )
127 #  if !defined( VULKAN_HPP_TYPESAFE_CONVERSION )
128 #    define VULKAN_HPP_TYPESAFE_CONVERSION
129 #  endif
130 #endif
131 
132 // <tuple> includes <sys/sysmacros.h> through some other header
133 // this results in major(x) being resolved to gnu_dev_major(x)
134 // which is an expression in a constructor initializer list.
135 #if defined( major )
136 #  undef major
137 #endif
138 #if defined( minor )
139 #  undef minor
140 #endif
141 
142 // Windows defines MemoryBarrier which is deprecated and collides
143 // with the VULKAN_HPP_NAMESPACE::MemoryBarrier struct.
144 #if defined( MemoryBarrier )
145 #  undef MemoryBarrier
146 #endif
147 
148 #if !defined( VULKAN_HPP_HAS_UNRESTRICTED_UNIONS )
149 #  if defined( __clang__ )
150 #    if __has_feature( cxx_unrestricted_unions )
151 #      define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
152 #    endif
153 #  elif defined( __GNUC__ )
154 #    define GCC_VERSION ( __GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ )
155 #    if 40600 <= GCC_VERSION
156 #      define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
157 #    endif
158 #  elif defined( _MSC_VER )
159 #    if 1900 <= _MSC_VER
160 #      define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
161 #    endif
162 #  endif
163 #endif
164 
165 #if !defined( VULKAN_HPP_INLINE )
166 #  if defined( __clang__ )
167 #    if __has_attribute( always_inline )
168 #      define VULKAN_HPP_INLINE __attribute__( ( always_inline ) ) __inline__
169 #    else
170 #      define VULKAN_HPP_INLINE inline
171 #    endif
172 #  elif defined( __GNUC__ )
173 #    define VULKAN_HPP_INLINE __attribute__( ( always_inline ) ) __inline__
174 #  elif defined( _MSC_VER )
175 #    define VULKAN_HPP_INLINE inline
176 #  else
177 #    define VULKAN_HPP_INLINE inline
178 #  endif
179 #endif
180 
181 #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
182 #  define VULKAN_HPP_TYPESAFE_EXPLICIT
183 #else
184 #  define VULKAN_HPP_TYPESAFE_EXPLICIT explicit
185 #endif
186 
187 #if defined( __cpp_constexpr )
188 #  define VULKAN_HPP_CONSTEXPR constexpr
189 #  if __cpp_constexpr >= 201304
190 #    define VULKAN_HPP_CONSTEXPR_14 constexpr
191 #  else
192 #    define VULKAN_HPP_CONSTEXPR_14
193 #  endif
194 #  define VULKAN_HPP_CONST_OR_CONSTEXPR constexpr
195 #else
196 #  define VULKAN_HPP_CONSTEXPR
197 #  define VULKAN_HPP_CONSTEXPR_14
198 #  define VULKAN_HPP_CONST_OR_CONSTEXPR const
199 #endif
200 
201 #if !defined( VULKAN_HPP_NOEXCEPT )
202 #  if defined( _MSC_VER ) && ( _MSC_VER <= 1800 )
203 #    define VULKAN_HPP_NOEXCEPT
204 #  else
205 #    define VULKAN_HPP_NOEXCEPT     noexcept
206 #    define VULKAN_HPP_HAS_NOEXCEPT 1
207 #    if defined( VULKAN_HPP_NO_EXCEPTIONS )
208 #      define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS noexcept
209 #    else
210 #      define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
211 #    endif
212 #  endif
213 #endif
214 
215 #if 14 <= VULKAN_HPP_CPP_VERSION
216 #  define VULKAN_HPP_DEPRECATED( msg ) [[deprecated( msg )]]
217 #else
218 #  define VULKAN_HPP_DEPRECATED( msg )
219 #endif
220 
221 #if ( 17 <= VULKAN_HPP_CPP_VERSION ) && !defined( VULKAN_HPP_NO_NODISCARD_WARNINGS )
222 #  define VULKAN_HPP_NODISCARD [[nodiscard]]
223 #  if defined( VULKAN_HPP_NO_EXCEPTIONS )
224 #    define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS [[nodiscard]]
225 #  else
226 #    define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS
227 #  endif
228 #else
229 #  define VULKAN_HPP_NODISCARD
230 #  define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS
231 #endif
232 
233 #if !defined( VULKAN_HPP_NAMESPACE )
234 #  define VULKAN_HPP_NAMESPACE vk
235 #endif
236 
237 #define VULKAN_HPP_STRINGIFY2( text ) #text
238 #define VULKAN_HPP_STRINGIFY( text )  VULKAN_HPP_STRINGIFY2( text )
239 #define VULKAN_HPP_NAMESPACE_STRING   VULKAN_HPP_STRINGIFY( VULKAN_HPP_NAMESPACE )
240 
241 namespace VULKAN_HPP_NAMESPACE
242 {
243 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
244   template <typename T>
245   class ArrayProxy
246   {
247   public:
ArrayProxy()248     VULKAN_HPP_CONSTEXPR ArrayProxy() VULKAN_HPP_NOEXCEPT
249       : m_count( 0 )
250       , m_ptr( nullptr )
251     {}
252 
ArrayProxy(std::nullptr_t)253     VULKAN_HPP_CONSTEXPR ArrayProxy( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
254       : m_count( 0 )
255       , m_ptr( nullptr )
256     {}
257 
ArrayProxy(T & value)258     ArrayProxy( T & value ) VULKAN_HPP_NOEXCEPT
259       : m_count( 1 )
260       , m_ptr( &value )
261     {}
262 
263     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(typename std::remove_const<T>::type & value)264     ArrayProxy( typename std::remove_const<T>::type & value ) VULKAN_HPP_NOEXCEPT
265       : m_count( 1 )
266       , m_ptr( &value )
267     {}
268 
ArrayProxy(uint32_t count,T * ptr)269     ArrayProxy( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT
270       : m_count( count )
271       , m_ptr( ptr )
272     {}
273 
274     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(uint32_t count,typename std::remove_const<T>::type * ptr)275     ArrayProxy( uint32_t count, typename std::remove_const<T>::type * ptr ) VULKAN_HPP_NOEXCEPT
276       : m_count( count )
277       , m_ptr( ptr )
278     {}
279 
280 #  if __GNUC__ >= 9
281 #    pragma GCC diagnostic push
282 #    pragma GCC diagnostic ignored "-Winit-list-lifetime"
283 #  endif
284 
ArrayProxy(std::initializer_list<T> const & list)285     ArrayProxy( std::initializer_list<T> const & list ) VULKAN_HPP_NOEXCEPT
286       : m_count( static_cast<uint32_t>( list.size() ) )
287       , m_ptr( list.begin() )
288     {}
289 
290     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)291     ArrayProxy( std::initializer_list<typename std::remove_const<T>::type> const & list ) VULKAN_HPP_NOEXCEPT
292       : m_count( static_cast<uint32_t>( list.size() ) )
293       , m_ptr( list.begin() )
294     {}
295 
ArrayProxy(std::initializer_list<T> & list)296     ArrayProxy( std::initializer_list<T> & list ) VULKAN_HPP_NOEXCEPT
297       : m_count( static_cast<uint32_t>( list.size() ) )
298       , m_ptr( list.begin() )
299     {}
300 
301     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> & list)302     ArrayProxy( std::initializer_list<typename std::remove_const<T>::type> & list ) VULKAN_HPP_NOEXCEPT
303       : m_count( static_cast<uint32_t>( list.size() ) )
304       , m_ptr( list.begin() )
305     {}
306 
307 #  if __GNUC__ >= 9
308 #    pragma GCC diagnostic pop
309 #  endif
310 
311     template <size_t N>
ArrayProxy(std::array<T,N> const & data)312     ArrayProxy( std::array<T, N> const & data ) VULKAN_HPP_NOEXCEPT
313       : m_count( N )
314       , m_ptr( data.data() )
315     {}
316 
317     template <size_t N, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(std::array<typename std::remove_const<T>::type,N> const & data)318     ArrayProxy( std::array<typename std::remove_const<T>::type, N> const & data ) VULKAN_HPP_NOEXCEPT
319       : m_count( N )
320       , m_ptr( data.data() )
321     {}
322 
323     template <size_t N>
ArrayProxy(std::array<T,N> & data)324     ArrayProxy( std::array<T, N> & data ) VULKAN_HPP_NOEXCEPT
325       : m_count( N )
326       , m_ptr( data.data() )
327     {}
328 
329     template <size_t N, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(std::array<typename std::remove_const<T>::type,N> & data)330     ArrayProxy( std::array<typename std::remove_const<T>::type, N> & data ) VULKAN_HPP_NOEXCEPT
331       : m_count( N )
332       , m_ptr( data.data() )
333     {}
334 
335     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
ArrayProxy(std::vector<T,Allocator> const & data)336     ArrayProxy( std::vector<T, Allocator> const & data ) VULKAN_HPP_NOEXCEPT
337       : m_count( static_cast<uint32_t>( data.size() ) )
338       , m_ptr( data.data() )
339     {}
340 
341     template <class Allocator = std::allocator<typename std::remove_const<T>::type>,
342               typename B      = T,
343               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(std::vector<typename std::remove_const<T>::type,Allocator> const & data)344     ArrayProxy( std::vector<typename std::remove_const<T>::type, Allocator> const & data ) VULKAN_HPP_NOEXCEPT
345       : m_count( static_cast<uint32_t>( data.size() ) )
346       , m_ptr( data.data() )
347     {}
348 
349     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
ArrayProxy(std::vector<T,Allocator> & data)350     ArrayProxy( std::vector<T, Allocator> & data ) VULKAN_HPP_NOEXCEPT
351       : m_count( static_cast<uint32_t>( data.size() ) )
352       , m_ptr( data.data() )
353     {}
354 
355     template <class Allocator = std::allocator<typename std::remove_const<T>::type>,
356               typename B      = T,
357               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(std::vector<typename std::remove_const<T>::type,Allocator> & data)358     ArrayProxy( std::vector<typename std::remove_const<T>::type, Allocator> & data ) VULKAN_HPP_NOEXCEPT
359       : m_count( static_cast<uint32_t>( data.size() ) )
360       , m_ptr( data.data() )
361     {}
362 
363 #  if defined( VULKAN_HPP_SUPPORT_SPAN )
364     template <size_t N = std::dynamic_extent>
ArrayProxy(std::span<T,N> const & data)365     ArrayProxy( std::span<T, N> const & data ) VULKAN_HPP_NOEXCEPT
366       : m_count( static_cast<uint32_t>( data.size() ) )
367       , m_ptr( data.data() )
368     {}
369 
370     template <size_t N                                                    = std::dynamic_extent,
371               typename B                                                  = T,
372               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(std::span<typename std::remove_const<T>::type,N> const & data)373     ArrayProxy( std::span<typename std::remove_const<T>::type, N> const & data ) VULKAN_HPP_NOEXCEPT
374       : m_count( static_cast<uint32_t>( data.size() ) )
375       , m_ptr( data.data() )
376     {}
377 
378     template <size_t N = std::dynamic_extent>
ArrayProxy(std::span<T,N> & data)379     ArrayProxy( std::span<T, N> & data ) VULKAN_HPP_NOEXCEPT
380       : m_count( static_cast<uint32_t>( data.size() ) )
381       , m_ptr( data.data() )
382     {}
383 
384     template <size_t N                                                    = std::dynamic_extent,
385               typename B                                                  = T,
386               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxy(std::span<typename std::remove_const<T>::type,N> & data)387     ArrayProxy( std::span<typename std::remove_const<T>::type, N> & data ) VULKAN_HPP_NOEXCEPT
388       : m_count( static_cast<uint32_t>( data.size() ) )
389       , m_ptr( data.data() )
390     {}
391 #  endif
392 
begin() const393     const T * begin() const VULKAN_HPP_NOEXCEPT
394     {
395       return m_ptr;
396     }
397 
end() const398     const T * end() const VULKAN_HPP_NOEXCEPT
399     {
400       return m_ptr + m_count;
401     }
402 
front() const403     const T & front() const VULKAN_HPP_NOEXCEPT
404     {
405       VULKAN_HPP_ASSERT( m_count && m_ptr );
406       return *m_ptr;
407     }
408 
back() const409     const T & back() const VULKAN_HPP_NOEXCEPT
410     {
411       VULKAN_HPP_ASSERT( m_count && m_ptr );
412       return *( m_ptr + m_count - 1 );
413     }
414 
empty() const415     bool empty() const VULKAN_HPP_NOEXCEPT
416     {
417       return ( m_count == 0 );
418     }
419 
size() const420     uint32_t size() const VULKAN_HPP_NOEXCEPT
421     {
422       return m_count;
423     }
424 
data() const425     T * data() const VULKAN_HPP_NOEXCEPT
426     {
427       return m_ptr;
428     }
429 
430   private:
431     uint32_t m_count;
432     T *      m_ptr;
433   };
434 
435   template <typename T>
436   class ArrayProxyNoTemporaries
437   {
438   public:
ArrayProxyNoTemporaries()439     VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries() VULKAN_HPP_NOEXCEPT
440       : m_count( 0 )
441       , m_ptr( nullptr )
442     {}
443 
ArrayProxyNoTemporaries(std::nullptr_t)444     VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
445       : m_count( 0 )
446       , m_ptr( nullptr )
447     {}
448 
ArrayProxyNoTemporaries(T & value)449     ArrayProxyNoTemporaries( T & value ) VULKAN_HPP_NOEXCEPT
450       : m_count( 1 )
451       , m_ptr( &value )
452     {}
453 
454     ArrayProxyNoTemporaries( T && value ) = delete;
455 
456     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(typename std::remove_const<T>::type & value)457     ArrayProxyNoTemporaries( typename std::remove_const<T>::type & value ) VULKAN_HPP_NOEXCEPT
458       : m_count( 1 )
459       , m_ptr( &value )
460     {}
461 
462     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
463     ArrayProxyNoTemporaries( typename std::remove_const<T>::type && value ) = delete;
464 
ArrayProxyNoTemporaries(uint32_t count,T * ptr)465     ArrayProxyNoTemporaries( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT
466       : m_count( count )
467       , m_ptr( ptr )
468     {}
469 
470     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)471     ArrayProxyNoTemporaries( uint32_t count, typename std::remove_const<T>::type * ptr ) VULKAN_HPP_NOEXCEPT
472       : m_count( count )
473       , m_ptr( ptr )
474     {}
475 
ArrayProxyNoTemporaries(std::initializer_list<T> const & list)476     ArrayProxyNoTemporaries( std::initializer_list<T> const & list ) VULKAN_HPP_NOEXCEPT
477       : m_count( static_cast<uint32_t>( list.size() ) )
478       , m_ptr( list.begin() )
479     {}
480 
481     ArrayProxyNoTemporaries( std::initializer_list<T> const && list ) = delete;
482 
483     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)484     ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> const & list )
485       VULKAN_HPP_NOEXCEPT
486       : m_count( static_cast<uint32_t>( list.size() ) )
487       , m_ptr( list.begin() )
488     {}
489 
490     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
491     ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> const && list ) = delete;
492 
ArrayProxyNoTemporaries(std::initializer_list<T> & list)493     ArrayProxyNoTemporaries( std::initializer_list<T> & list ) VULKAN_HPP_NOEXCEPT
494       : m_count( static_cast<uint32_t>( list.size() ) )
495       , m_ptr( list.begin() )
496     {}
497 
498     ArrayProxyNoTemporaries( std::initializer_list<T> && list ) = delete;
499 
500     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)501     ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> & list ) VULKAN_HPP_NOEXCEPT
502       : m_count( static_cast<uint32_t>( list.size() ) )
503       , m_ptr( list.begin() )
504     {}
505 
506     template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
507     ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> && list ) = delete;
508 
509     template <size_t N>
ArrayProxyNoTemporaries(std::array<T,N> const & data)510     ArrayProxyNoTemporaries( std::array<T, N> const & data ) VULKAN_HPP_NOEXCEPT
511       : m_count( N )
512       , m_ptr( data.data() )
513     {}
514 
515     template <size_t N>
516     ArrayProxyNoTemporaries( std::array<T, N> const && data ) = delete;
517 
518     template <size_t N, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(std::array<typename std::remove_const<T>::type,N> const & data)519     ArrayProxyNoTemporaries( std::array<typename std::remove_const<T>::type, N> const & data ) VULKAN_HPP_NOEXCEPT
520       : m_count( N )
521       , m_ptr( data.data() )
522     {}
523 
524     template <size_t N, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
525     ArrayProxyNoTemporaries( std::array<typename std::remove_const<T>::type, N> const && data ) = delete;
526 
527     template <size_t N>
ArrayProxyNoTemporaries(std::array<T,N> & data)528     ArrayProxyNoTemporaries( std::array<T, N> & data ) VULKAN_HPP_NOEXCEPT
529       : m_count( N )
530       , m_ptr( data.data() )
531     {}
532 
533     template <size_t N>
534     ArrayProxyNoTemporaries( std::array<T, N> && data ) = delete;
535 
536     template <size_t N, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(std::array<typename std::remove_const<T>::type,N> & data)537     ArrayProxyNoTemporaries( std::array<typename std::remove_const<T>::type, N> & data ) VULKAN_HPP_NOEXCEPT
538       : m_count( N )
539       , m_ptr( data.data() )
540     {}
541 
542     template <size_t N, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
543     ArrayProxyNoTemporaries( std::array<typename std::remove_const<T>::type, N> && data ) = delete;
544 
545     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
ArrayProxyNoTemporaries(std::vector<T,Allocator> const & data)546     ArrayProxyNoTemporaries( std::vector<T, Allocator> const & data ) VULKAN_HPP_NOEXCEPT
547       : m_count( static_cast<uint32_t>( data.size() ) )
548       , m_ptr( data.data() )
549     {}
550 
551     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
552     ArrayProxyNoTemporaries( std::vector<T, Allocator> const && data ) = delete;
553 
554     template <class Allocator = std::allocator<typename std::remove_const<T>::type>,
555               typename B      = T,
556               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(std::vector<typename std::remove_const<T>::type,Allocator> const & data)557     ArrayProxyNoTemporaries( std::vector<typename std::remove_const<T>::type, Allocator> const & data )
558       VULKAN_HPP_NOEXCEPT
559       : m_count( static_cast<uint32_t>( data.size() ) )
560       , m_ptr( data.data() )
561     {}
562 
563     template <class Allocator = std::allocator<typename std::remove_const<T>::type>,
564               typename B      = T,
565               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
566     ArrayProxyNoTemporaries( std::vector<typename std::remove_const<T>::type, Allocator> const && data ) = delete;
567 
568     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
ArrayProxyNoTemporaries(std::vector<T,Allocator> & data)569     ArrayProxyNoTemporaries( std::vector<T, Allocator> & data ) VULKAN_HPP_NOEXCEPT
570       : m_count( static_cast<uint32_t>( data.size() ) )
571       , m_ptr( data.data() )
572     {}
573 
574     template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
575     ArrayProxyNoTemporaries( std::vector<T, Allocator> && data ) = delete;
576 
577     template <class Allocator = std::allocator<typename std::remove_const<T>::type>,
578               typename B      = T,
579               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(std::vector<typename std::remove_const<T>::type,Allocator> & data)580     ArrayProxyNoTemporaries( std::vector<typename std::remove_const<T>::type, Allocator> & data ) VULKAN_HPP_NOEXCEPT
581       : m_count( static_cast<uint32_t>( data.size() ) )
582       , m_ptr( data.data() )
583     {}
584 
585     template <class Allocator = std::allocator<typename std::remove_const<T>::type>,
586               typename B      = T,
587               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
588     ArrayProxyNoTemporaries( std::vector<typename std::remove_const<T>::type, Allocator> && data ) = delete;
589 
590 #  if defined( VULKAN_HPP_SUPPORT_SPAN )
591     template <size_t N = std::dynamic_extent>
ArrayProxyNoTemporaries(std::span<T,N> const & data)592     ArrayProxyNoTemporaries( std::span<T, N> const & data ) VULKAN_HPP_NOEXCEPT
593       : m_count( static_cast<uint32_t>( data.size() ) )
594       , m_ptr( data.data() )
595     {}
596 
597     template <size_t N                                                    = std::dynamic_extent,
598               typename B                                                  = T,
599               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(std::span<typename std::remove_const<T>::type,N> const & data)600     ArrayProxyNoTemporaries( std::span<typename std::remove_const<T>::type, N> const & data ) VULKAN_HPP_NOEXCEPT
601       : m_count( static_cast<uint32_t>( data.size() ) )
602       , m_ptr( data.data() )
603     {}
604 
605     template <size_t N = std::dynamic_extent>
ArrayProxyNoTemporaries(std::span<T,N> & data)606     ArrayProxyNoTemporaries( std::span<T, N> & data ) VULKAN_HPP_NOEXCEPT
607       : m_count( static_cast<uint32_t>( data.size() ) )
608       , m_ptr( data.data() )
609     {}
610 
611     template <size_t N                                                    = std::dynamic_extent,
612               typename B                                                  = T,
613               typename std::enable_if<std::is_const<B>::value, int>::type = 0>
ArrayProxyNoTemporaries(std::span<typename std::remove_const<T>::type,N> & data)614     ArrayProxyNoTemporaries( std::span<typename std::remove_const<T>::type, N> & data ) VULKAN_HPP_NOEXCEPT
615       : m_count( static_cast<uint32_t>( data.size() ) )
616       , m_ptr( data.data() )
617     {}
618 #  endif
619 
begin() const620     const T * begin() const VULKAN_HPP_NOEXCEPT
621     {
622       return m_ptr;
623     }
624 
end() const625     const T * end() const VULKAN_HPP_NOEXCEPT
626     {
627       return m_ptr + m_count;
628     }
629 
front() const630     const T & front() const VULKAN_HPP_NOEXCEPT
631     {
632       VULKAN_HPP_ASSERT( m_count && m_ptr );
633       return *m_ptr;
634     }
635 
back() const636     const T & back() const VULKAN_HPP_NOEXCEPT
637     {
638       VULKAN_HPP_ASSERT( m_count && m_ptr );
639       return *( m_ptr + m_count - 1 );
640     }
641 
empty() const642     bool empty() const VULKAN_HPP_NOEXCEPT
643     {
644       return ( m_count == 0 );
645     }
646 
size() const647     uint32_t size() const VULKAN_HPP_NOEXCEPT
648     {
649       return m_count;
650     }
651 
data() const652     T * data() const VULKAN_HPP_NOEXCEPT
653     {
654       return m_ptr;
655     }
656 
657   private:
658     uint32_t m_count;
659     T *      m_ptr;
660   };
661 #endif
662 
663   template <typename T, size_t N>
664   class ArrayWrapper1D : public std::array<T, N>
665   {
666   public:
ArrayWrapper1D()667     VULKAN_HPP_CONSTEXPR ArrayWrapper1D() VULKAN_HPP_NOEXCEPT : std::array<T, N>() {}
668 
ArrayWrapper1D(std::array<T,N> const & data)669     VULKAN_HPP_CONSTEXPR ArrayWrapper1D( std::array<T, N> const & data ) VULKAN_HPP_NOEXCEPT : std::array<T, N>( data )
670     {}
671 
672 #if ( VK_USE_64_BIT_PTR_DEFINES == 0 )
673     // on 32 bit compiles, needs overloads on index type int to resolve ambiguities
operator [](int index) const674     VULKAN_HPP_CONSTEXPR T const & operator[]( int index ) const VULKAN_HPP_NOEXCEPT
675     {
676       return std::array<T, N>::operator[]( index );
677     }
678 
operator [](int index)679     T & operator[]( int index ) VULKAN_HPP_NOEXCEPT
680     {
681       return std::array<T, N>::operator[]( index );
682     }
683 #endif
684 
operator T const*() const685     operator T const *() const VULKAN_HPP_NOEXCEPT
686     {
687       return this->data();
688     }
689 
operator T*()690     operator T *() VULKAN_HPP_NOEXCEPT
691     {
692       return this->data();
693     }
694 
695     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator std::string() const696     operator std::string() const
697     {
698       return std::string( this->data() );
699     }
700 
701 #if 17 <= VULKAN_HPP_CPP_VERSION
702     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator std::string_view() const703     operator std::string_view() const
704     {
705       return std::string_view( this->data() );
706     }
707 #endif
708 
709     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator <(ArrayWrapper1D<char,N> const & rhs) const710     bool operator<( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
711     {
712       return *static_cast<std::array<char, N> const *>( this ) < *static_cast<std::array<char, N> const *>( &rhs );
713     }
714 
715     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator <=(ArrayWrapper1D<char,N> const & rhs) const716     bool operator<=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
717     {
718       return *static_cast<std::array<char, N> const *>( this ) <= *static_cast<std::array<char, N> const *>( &rhs );
719     }
720 
721     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator >(ArrayWrapper1D<char,N> const & rhs) const722     bool operator>( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
723     {
724       return *static_cast<std::array<char, N> const *>( this ) > *static_cast<std::array<char, N> const *>( &rhs );
725     }
726 
727     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator >=(ArrayWrapper1D<char,N> const & rhs) const728     bool operator>=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
729     {
730       return *static_cast<std::array<char, N> const *>( this ) >= *static_cast<std::array<char, N> const *>( &rhs );
731     }
732 
733     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator ==(ArrayWrapper1D<char,N> const & rhs) const734     bool operator==( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
735     {
736       return *static_cast<std::array<char, N> const *>( this ) == *static_cast<std::array<char, N> const *>( &rhs );
737     }
738 
739     template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator !=(ArrayWrapper1D<char,N> const & rhs) const740     bool operator!=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
741     {
742       return *static_cast<std::array<char, N> const *>( this ) != *static_cast<std::array<char, N> const *>( &rhs );
743     }
744   };
745 
746   // specialization of relational operators between std::string and arrays of chars
747   template <size_t N>
operator <(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)748   bool operator<( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
749   {
750     return lhs < rhs.data();
751   }
752 
753   template <size_t N>
operator <=(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)754   bool operator<=( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
755   {
756     return lhs <= rhs.data();
757   }
758 
759   template <size_t N>
operator >(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)760   bool operator>( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
761   {
762     return lhs > rhs.data();
763   }
764 
765   template <size_t N>
operator >=(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)766   bool operator>=( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
767   {
768     return lhs >= rhs.data();
769   }
770 
771   template <size_t N>
operator ==(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)772   bool operator==( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
773   {
774     return lhs == rhs.data();
775   }
776 
777   template <size_t N>
operator !=(std::string const & lhs,ArrayWrapper1D<char,N> const & rhs)778   bool operator!=( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
779   {
780     return lhs != rhs.data();
781   }
782 
783   template <typename T, size_t N, size_t M>
784   class ArrayWrapper2D : public std::array<ArrayWrapper1D<T, M>, N>
785   {
786   public:
ArrayWrapper2D()787     VULKAN_HPP_CONSTEXPR ArrayWrapper2D() VULKAN_HPP_NOEXCEPT : std::array<ArrayWrapper1D<T, M>, N>() {}
788 
ArrayWrapper2D(std::array<std::array<T,M>,N> const & data)789     VULKAN_HPP_CONSTEXPR ArrayWrapper2D( std::array<std::array<T, M>, N> const & data ) VULKAN_HPP_NOEXCEPT
790       : std::array<ArrayWrapper1D<T, M>, N>( *reinterpret_cast<std::array<ArrayWrapper1D<T, M>, N> const *>( &data ) )
791     {}
792   };
793 
794   template <typename FlagBitsType>
795   struct FlagTraits
796   {
797     enum
798     {
799       allFlags = 0
800     };
801   };
802 
803   template <typename BitType>
804   class Flags
805   {
806   public:
807     using MaskType = typename std::underlying_type<BitType>::type;
808 
809     // constructors
Flags()810     VULKAN_HPP_CONSTEXPR Flags() VULKAN_HPP_NOEXCEPT : m_mask( 0 ) {}
811 
Flags(BitType bit)812     VULKAN_HPP_CONSTEXPR Flags( BitType bit ) VULKAN_HPP_NOEXCEPT : m_mask( static_cast<MaskType>( bit ) ) {}
813 
814     VULKAN_HPP_CONSTEXPR Flags( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT = default;
815 
Flags(MaskType flags)816     VULKAN_HPP_CONSTEXPR explicit Flags( MaskType flags ) VULKAN_HPP_NOEXCEPT : m_mask( flags ) {}
817 
818     // relational operators
819 #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
820     auto operator<=>( Flags<BitType> const & ) const = default;
821 #else
operator <(Flags<BitType> const & rhs) const822     VULKAN_HPP_CONSTEXPR bool operator<( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
823     {
824       return m_mask < rhs.m_mask;
825     }
826 
operator <=(Flags<BitType> const & rhs) const827     VULKAN_HPP_CONSTEXPR bool operator<=( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
828     {
829       return m_mask <= rhs.m_mask;
830     }
831 
operator >(Flags<BitType> const & rhs) const832     VULKAN_HPP_CONSTEXPR bool operator>( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
833     {
834       return m_mask > rhs.m_mask;
835     }
836 
operator >=(Flags<BitType> const & rhs) const837     VULKAN_HPP_CONSTEXPR bool operator>=( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
838     {
839       return m_mask >= rhs.m_mask;
840     }
841 
operator ==(Flags<BitType> const & rhs) const842     VULKAN_HPP_CONSTEXPR bool operator==( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
843     {
844       return m_mask == rhs.m_mask;
845     }
846 
operator !=(Flags<BitType> const & rhs) const847     VULKAN_HPP_CONSTEXPR bool operator!=( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
848     {
849       return m_mask != rhs.m_mask;
850     }
851 #endif
852 
853     // logical operator
operator !() const854     VULKAN_HPP_CONSTEXPR bool operator!() const VULKAN_HPP_NOEXCEPT
855     {
856       return !m_mask;
857     }
858 
859     // bitwise operators
operator &(Flags<BitType> const & rhs) const860     VULKAN_HPP_CONSTEXPR Flags<BitType> operator&( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
861     {
862       return Flags<BitType>( m_mask & rhs.m_mask );
863     }
864 
operator |(Flags<BitType> const & rhs) const865     VULKAN_HPP_CONSTEXPR Flags<BitType> operator|( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
866     {
867       return Flags<BitType>( m_mask | rhs.m_mask );
868     }
869 
operator ^(Flags<BitType> const & rhs) const870     VULKAN_HPP_CONSTEXPR Flags<BitType> operator^( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
871     {
872       return Flags<BitType>( m_mask ^ rhs.m_mask );
873     }
874 
operator ~() const875     VULKAN_HPP_CONSTEXPR Flags<BitType> operator~() const VULKAN_HPP_NOEXCEPT
876     {
877       return Flags<BitType>( m_mask ^ FlagTraits<BitType>::allFlags );
878     }
879 
880     // assignment operators
881     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT = default;
882 
operator |=(Flags<BitType> const & rhs)883     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator|=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT
884     {
885       m_mask |= rhs.m_mask;
886       return *this;
887     }
888 
operator &=(Flags<BitType> const & rhs)889     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator&=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT
890     {
891       m_mask &= rhs.m_mask;
892       return *this;
893     }
894 
operator ^=(Flags<BitType> const & rhs)895     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator^=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT
896     {
897       m_mask ^= rhs.m_mask;
898       return *this;
899     }
900 
901     // cast operators
operator bool() const902     explicit VULKAN_HPP_CONSTEXPR operator bool() const VULKAN_HPP_NOEXCEPT
903     {
904       return !!m_mask;
905     }
906 
operator MaskType() const907     explicit VULKAN_HPP_CONSTEXPR operator MaskType() const VULKAN_HPP_NOEXCEPT
908     {
909       return m_mask;
910     }
911 
912 #if defined( VULKAN_HPP_FLAGS_MASK_TYPE_AS_PUBLIC )
913   public:
914 #else
915   private:
916 #endif
917     MaskType m_mask;
918   };
919 
920 #if !defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
921   // relational operators only needed for pre C++20
922   template <typename BitType>
operator <(BitType bit,Flags<BitType> const & flags)923   VULKAN_HPP_CONSTEXPR bool operator<( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
924   {
925     return flags.operator>( bit );
926   }
927 
928   template <typename BitType>
operator <=(BitType bit,Flags<BitType> const & flags)929   VULKAN_HPP_CONSTEXPR bool operator<=( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
930   {
931     return flags.operator>=( bit );
932   }
933 
934   template <typename BitType>
operator >(BitType bit,Flags<BitType> const & flags)935   VULKAN_HPP_CONSTEXPR bool operator>( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
936   {
937     return flags.operator<( bit );
938   }
939 
940   template <typename BitType>
operator >=(BitType bit,Flags<BitType> const & flags)941   VULKAN_HPP_CONSTEXPR bool operator>=( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
942   {
943     return flags.operator<=( bit );
944   }
945 
946   template <typename BitType>
operator ==(BitType bit,Flags<BitType> const & flags)947   VULKAN_HPP_CONSTEXPR bool operator==( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
948   {
949     return flags.operator==( bit );
950   }
951 
952   template <typename BitType>
operator !=(BitType bit,Flags<BitType> const & flags)953   VULKAN_HPP_CONSTEXPR bool operator!=( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
954   {
955     return flags.operator!=( bit );
956   }
957 #endif
958 
959   // bitwise operators
960   template <typename BitType>
operator &(BitType bit,Flags<BitType> const & flags)961   VULKAN_HPP_CONSTEXPR Flags<BitType> operator&( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
962   {
963     return flags.operator&( bit );
964   }
965 
966   template <typename BitType>
operator |(BitType bit,Flags<BitType> const & flags)967   VULKAN_HPP_CONSTEXPR Flags<BitType> operator|( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
968   {
969     return flags.operator|( bit );
970   }
971 
972   template <typename BitType>
operator ^(BitType bit,Flags<BitType> const & flags)973   VULKAN_HPP_CONSTEXPR Flags<BitType> operator^( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
974   {
975     return flags.operator^( bit );
976   }
977 
978   template <typename RefType>
979   class Optional
980   {
981   public:
Optional(RefType & reference)982     Optional( RefType & reference ) VULKAN_HPP_NOEXCEPT
983     {
984       m_ptr = &reference;
985     }
Optional(RefType * ptr)986     Optional( RefType * ptr ) VULKAN_HPP_NOEXCEPT
987     {
988       m_ptr = ptr;
989     }
Optional(std::nullptr_t)990     Optional( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
991     {
992       m_ptr = nullptr;
993     }
994 
operator RefType*() const995     operator RefType *() const VULKAN_HPP_NOEXCEPT
996     {
997       return m_ptr;
998     }
operator ->() const999     RefType const * operator->() const VULKAN_HPP_NOEXCEPT
1000     {
1001       return m_ptr;
1002     }
operator bool() const1003     explicit operator bool() const VULKAN_HPP_NOEXCEPT
1004     {
1005       return !!m_ptr;
1006     }
1007 
1008   private:
1009     RefType * m_ptr;
1010   };
1011 
1012   template <typename X, typename Y>
1013   struct StructExtends
1014   {
1015     enum
1016     {
1017       value = false
1018     };
1019   };
1020 
1021   template <typename Type, class...>
1022   struct IsPartOfStructureChain
1023   {
1024     static const bool valid = false;
1025   };
1026 
1027   template <typename Type, typename Head, typename... Tail>
1028   struct IsPartOfStructureChain<Type, Head, Tail...>
1029   {
1030     static const bool valid = std::is_same<Type, Head>::value || IsPartOfStructureChain<Type, Tail...>::valid;
1031   };
1032 
1033   template <size_t Index, typename T, typename... ChainElements>
1034   struct StructureChainContains
1035   {
1036     static const bool value =
1037       std::is_same<T, typename std::tuple_element<Index, std::tuple<ChainElements...>>::type>::value ||
1038       StructureChainContains<Index - 1, T, ChainElements...>::value;
1039   };
1040 
1041   template <typename T, typename... ChainElements>
1042   struct StructureChainContains<0, T, ChainElements...>
1043   {
1044     static const bool value =
1045       std::is_same<T, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value;
1046   };
1047 
1048   template <size_t Index, typename... ChainElements>
1049   struct StructureChainValidation
1050   {
1051     using TestType = typename std::tuple_element<Index, std::tuple<ChainElements...>>::type;
1052     static const bool valid =
1053       StructExtends<TestType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value &&
1054       ( TestType::allowDuplicate || !StructureChainContains<Index - 1, TestType, ChainElements...>::value ) &&
1055       StructureChainValidation<Index - 1, ChainElements...>::valid;
1056   };
1057 
1058   template <typename... ChainElements>
1059   struct StructureChainValidation<0, ChainElements...>
1060   {
1061     static const bool valid = true;
1062   };
1063 
1064   template <typename... ChainElements>
1065   class StructureChain : public std::tuple<ChainElements...>
1066   {
1067   public:
StructureChain()1068     StructureChain() VULKAN_HPP_NOEXCEPT
1069     {
1070       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid,
1071                      "The structure chain is not valid!" );
1072       link<sizeof...( ChainElements ) - 1>();
1073     }
1074 
StructureChain(StructureChain const & rhs)1075     StructureChain( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT : std::tuple<ChainElements...>( rhs )
1076     {
1077       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid,
1078                      "The structure chain is not valid!" );
1079       link<sizeof...( ChainElements ) - 1>();
1080     }
1081 
StructureChain(StructureChain && rhs)1082     StructureChain( StructureChain && rhs ) VULKAN_HPP_NOEXCEPT
1083       : std::tuple<ChainElements...>( std::forward<std::tuple<ChainElements...>>( rhs ) )
1084     {
1085       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid,
1086                      "The structure chain is not valid!" );
1087       link<sizeof...( ChainElements ) - 1>();
1088     }
1089 
StructureChain(ChainElements const &...elems)1090     StructureChain( ChainElements const &... elems ) VULKAN_HPP_NOEXCEPT : std::tuple<ChainElements...>( elems... )
1091     {
1092       static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid,
1093                      "The structure chain is not valid!" );
1094       link<sizeof...( ChainElements ) - 1>();
1095     }
1096 
operator =(StructureChain const & rhs)1097     StructureChain & operator=( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT
1098     {
1099       std::tuple<ChainElements...>::operator=( rhs );
1100       link<sizeof...( ChainElements ) - 1>();
1101       return *this;
1102     }
1103 
1104     StructureChain & operator=( StructureChain && rhs ) = delete;
1105 
1106     template <typename T = typename std::tuple_element<0, std::tuple<ChainElements...>>::type, size_t Which = 0>
get()1107     T & get() VULKAN_HPP_NOEXCEPT
1108     {
1109       return std::get<ChainElementIndex<0, T, Which, void, ChainElements...>::value>(
1110         static_cast<std::tuple<ChainElements...> &>( *this ) );
1111     }
1112 
1113     template <typename T = typename std::tuple_element<0, std::tuple<ChainElements...>>::type, size_t Which = 0>
get() const1114     T const & get() const VULKAN_HPP_NOEXCEPT
1115     {
1116       return std::get<ChainElementIndex<0, T, Which, void, ChainElements...>::value>(
1117         static_cast<std::tuple<ChainElements...> const &>( *this ) );
1118     }
1119 
1120     template <typename T0, typename T1, typename... Ts>
get()1121     std::tuple<T0 &, T1 &, Ts &...> get() VULKAN_HPP_NOEXCEPT
1122     {
1123       return std::tie( get<T0>(), get<T1>(), get<Ts>()... );
1124     }
1125 
1126     template <typename T0, typename T1, typename... Ts>
get() const1127     std::tuple<T0 const &, T1 const &, Ts const &...> get() const VULKAN_HPP_NOEXCEPT
1128     {
1129       return std::tie( get<T0>(), get<T1>(), get<Ts>()... );
1130     }
1131 
1132     template <typename ClassType, size_t Which = 0>
1133     typename std::enable_if<
1134       std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value &&
1135         ( Which == 0 ),
1136       bool>::type
isLinked() const1137       isLinked() const VULKAN_HPP_NOEXCEPT
1138     {
1139       return true;
1140     }
1141 
1142     template <typename ClassType, size_t Which = 0>
1143     typename std::enable_if<
1144       !std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value ||
1145         ( Which != 0 ),
1146       bool>::type
isLinked() const1147       isLinked() const VULKAN_HPP_NOEXCEPT
1148     {
1149       static_assert( IsPartOfStructureChain<ClassType, ChainElements...>::valid,
1150                      "Can't unlink Structure that's not part of this StructureChain!" );
1151       return isLinked( reinterpret_cast<VkBaseInStructure const *>( &get<ClassType, Which>() ) );
1152     }
1153 
1154     template <typename ClassType, size_t Which = 0>
1155     typename std::enable_if<
1156       !std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value ||
1157         ( Which != 0 ),
1158       void>::type
relink()1159       relink() VULKAN_HPP_NOEXCEPT
1160     {
1161       static_assert( IsPartOfStructureChain<ClassType, ChainElements...>::valid,
1162                      "Can't relink Structure that's not part of this StructureChain!" );
1163       auto pNext = reinterpret_cast<VkBaseInStructure *>( &get<ClassType, Which>() );
1164       VULKAN_HPP_ASSERT( !isLinked( pNext ) );
1165       auto & headElement = std::get<0>( static_cast<std::tuple<ChainElements...> &>( *this ) );
1166       pNext->pNext       = reinterpret_cast<VkBaseInStructure const *>( headElement.pNext );
1167       headElement.pNext  = pNext;
1168     }
1169 
1170     template <typename ClassType, size_t Which = 0>
1171     typename std::enable_if<
1172       !std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value ||
1173         ( Which != 0 ),
1174       void>::type
unlink()1175       unlink() VULKAN_HPP_NOEXCEPT
1176     {
1177       static_assert( IsPartOfStructureChain<ClassType, ChainElements...>::valid,
1178                      "Can't unlink Structure that's not part of this StructureChain!" );
1179       unlink( reinterpret_cast<VkBaseOutStructure const *>( &get<ClassType, Which>() ) );
1180     }
1181 
1182   private:
1183     template <int Index, typename T, int Which, typename, class First, class... Types>
1184     struct ChainElementIndex : ChainElementIndex<Index + 1, T, Which, void, Types...>
1185     {};
1186 
1187     template <int Index, typename T, int Which, class First, class... Types>
1188     struct ChainElementIndex<Index,
1189                              T,
1190                              Which,
1191                              typename std::enable_if<!std::is_same<T, First>::value, void>::type,
1192                              First,
1193                              Types...> : ChainElementIndex<Index + 1, T, Which, void, Types...>
1194     {};
1195 
1196     template <int Index, typename T, int Which, class First, class... Types>
1197     struct ChainElementIndex<Index,
1198                              T,
1199                              Which,
1200                              typename std::enable_if<std::is_same<T, First>::value, void>::type,
1201                              First,
1202                              Types...> : ChainElementIndex<Index + 1, T, Which - 1, void, Types...>
1203     {};
1204 
1205     template <int Index, typename T, class First, class... Types>
1206     struct ChainElementIndex<Index,
1207                              T,
1208                              0,
1209                              typename std::enable_if<std::is_same<T, First>::value, void>::type,
1210                              First,
1211                              Types...> : std::integral_constant<int, Index>
1212     {};
1213 
isLinked(VkBaseInStructure const * pNext) const1214     bool isLinked( VkBaseInStructure const * pNext ) const VULKAN_HPP_NOEXCEPT
1215     {
1216       VkBaseInStructure const * elementPtr = reinterpret_cast<VkBaseInStructure const *>(
1217         &std::get<0>( static_cast<std::tuple<ChainElements...> const &>( *this ) ) );
1218       while ( elementPtr )
1219       {
1220         if ( elementPtr->pNext == pNext )
1221         {
1222           return true;
1223         }
1224         elementPtr = elementPtr->pNext;
1225       }
1226       return false;
1227     }
1228 
1229     template <size_t Index>
link()1230     typename std::enable_if<Index != 0, void>::type link() VULKAN_HPP_NOEXCEPT
1231     {
1232       auto & x = std::get<Index - 1>( static_cast<std::tuple<ChainElements...> &>( *this ) );
1233       x.pNext  = &std::get<Index>( static_cast<std::tuple<ChainElements...> &>( *this ) );
1234       link<Index - 1>();
1235     }
1236 
1237     template <size_t Index>
link()1238     typename std::enable_if<Index == 0, void>::type link() VULKAN_HPP_NOEXCEPT
1239     {}
1240 
unlink(VkBaseOutStructure const * pNext)1241     void unlink( VkBaseOutStructure const * pNext ) VULKAN_HPP_NOEXCEPT
1242     {
1243       VkBaseOutStructure * elementPtr =
1244         reinterpret_cast<VkBaseOutStructure *>( &std::get<0>( static_cast<std::tuple<ChainElements...> &>( *this ) ) );
1245       while ( elementPtr && ( elementPtr->pNext != pNext ) )
1246       {
1247         elementPtr = elementPtr->pNext;
1248       }
1249       if ( elementPtr )
1250       {
1251         elementPtr->pNext = pNext->pNext;
1252       }
1253       else
1254       {
1255         VULKAN_HPP_ASSERT( false );  // fires, if the ClassType member has already been unlinked !
1256       }
1257     }
1258   };
1259 
1260 #if !defined( VULKAN_HPP_NO_SMART_HANDLE )
1261   template <typename Type, typename Dispatch>
1262   class UniqueHandleTraits;
1263 
1264   template <typename Type, typename Dispatch>
1265   class UniqueHandle : public UniqueHandleTraits<Type, Dispatch>::deleter
1266   {
1267   private:
1268     using Deleter = typename UniqueHandleTraits<Type, Dispatch>::deleter;
1269 
1270   public:
1271     using element_type = Type;
1272 
UniqueHandle()1273     UniqueHandle() : Deleter(), m_value() {}
1274 
UniqueHandle(Type const & value,Deleter const & deleter=Deleter ())1275     explicit UniqueHandle( Type const & value, Deleter const & deleter = Deleter() ) VULKAN_HPP_NOEXCEPT
1276       : Deleter( deleter )
1277       , m_value( value )
1278     {}
1279 
1280     UniqueHandle( UniqueHandle const & ) = delete;
1281 
UniqueHandle(UniqueHandle && other)1282     UniqueHandle( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT
1283       : Deleter( std::move( static_cast<Deleter &>( other ) ) )
1284       , m_value( other.release() )
1285     {}
1286 
~UniqueHandle()1287     ~UniqueHandle() VULKAN_HPP_NOEXCEPT
1288     {
1289       if ( m_value )
1290       {
1291         this->destroy( m_value );
1292       }
1293     }
1294 
1295     UniqueHandle & operator=( UniqueHandle const & ) = delete;
1296 
operator =(UniqueHandle && other)1297     UniqueHandle & operator=( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT
1298     {
1299       reset( other.release() );
1300       *static_cast<Deleter *>( this ) = std::move( static_cast<Deleter &>( other ) );
1301       return *this;
1302     }
1303 
operator bool() const1304     explicit operator bool() const VULKAN_HPP_NOEXCEPT
1305     {
1306       return m_value.operator bool();
1307     }
1308 
operator ->() const1309     Type const * operator->() const VULKAN_HPP_NOEXCEPT
1310     {
1311       return &m_value;
1312     }
1313 
operator ->()1314     Type * operator->() VULKAN_HPP_NOEXCEPT
1315     {
1316       return &m_value;
1317     }
1318 
operator *() const1319     Type const & operator*() const VULKAN_HPP_NOEXCEPT
1320     {
1321       return m_value;
1322     }
1323 
operator *()1324     Type & operator*() VULKAN_HPP_NOEXCEPT
1325     {
1326       return m_value;
1327     }
1328 
get() const1329     const Type & get() const VULKAN_HPP_NOEXCEPT
1330     {
1331       return m_value;
1332     }
1333 
get()1334     Type & get() VULKAN_HPP_NOEXCEPT
1335     {
1336       return m_value;
1337     }
1338 
reset(Type const & value=Type ())1339     void reset( Type const & value = Type() ) VULKAN_HPP_NOEXCEPT
1340     {
1341       if ( m_value != value )
1342       {
1343         if ( m_value )
1344         {
1345           this->destroy( m_value );
1346         }
1347         m_value = value;
1348       }
1349     }
1350 
release()1351     Type release() VULKAN_HPP_NOEXCEPT
1352     {
1353       Type value = m_value;
1354       m_value    = nullptr;
1355       return value;
1356     }
1357 
swap(UniqueHandle<Type,Dispatch> & rhs)1358     void swap( UniqueHandle<Type, Dispatch> & rhs ) VULKAN_HPP_NOEXCEPT
1359     {
1360       std::swap( m_value, rhs.m_value );
1361       std::swap( static_cast<Deleter &>( *this ), static_cast<Deleter &>( rhs ) );
1362     }
1363 
1364   private:
1365     Type m_value;
1366   };
1367 
1368   template <typename UniqueType>
1369   VULKAN_HPP_INLINE std::vector<typename UniqueType::element_type>
uniqueToRaw(std::vector<UniqueType> const & handles)1370                     uniqueToRaw( std::vector<UniqueType> const & handles )
1371   {
1372     std::vector<typename UniqueType::element_type> newBuffer( handles.size() );
1373     std::transform(
1374       handles.begin(), handles.end(), newBuffer.begin(), []( UniqueType const & handle ) { return handle.get(); } );
1375     return newBuffer;
1376   }
1377 
1378   template <typename Type, typename Dispatch>
swap(UniqueHandle<Type,Dispatch> & lhs,UniqueHandle<Type,Dispatch> & rhs)1379   VULKAN_HPP_INLINE void swap( UniqueHandle<Type, Dispatch> & lhs,
1380                                UniqueHandle<Type, Dispatch> & rhs ) VULKAN_HPP_NOEXCEPT
1381   {
1382     lhs.swap( rhs );
1383   }
1384 #endif
1385 
1386   class DispatchLoaderBase
1387   {
1388   public:
1389     DispatchLoaderBase() = default;
DispatchLoaderBase(std::nullptr_t)1390     DispatchLoaderBase( std::nullptr_t )
1391 #if !defined( NDEBUG )
1392       : m_valid( false )
1393 #endif
1394     {}
1395 
1396 #if !defined( NDEBUG )
getVkHeaderVersion() const1397     size_t getVkHeaderVersion() const
1398     {
1399       VULKAN_HPP_ASSERT( m_valid );
1400       return vkHeaderVersion;
1401     }
1402 
1403   private:
1404     size_t vkHeaderVersion = VK_HEADER_VERSION;
1405     bool   m_valid         = true;
1406 #endif
1407   };
1408 
1409 #if !defined( VK_NO_PROTOTYPES )
1410   class DispatchLoaderStatic : public DispatchLoaderBase
1411   {
1412   public:
1413     //=== VK_VERSION_1_0 ===
1414 
vkCreateInstance(const VkInstanceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkInstance * pInstance) const1415     VkResult vkCreateInstance( const VkInstanceCreateInfo *  pCreateInfo,
1416                                const VkAllocationCallbacks * pAllocator,
1417                                VkInstance *                  pInstance ) const VULKAN_HPP_NOEXCEPT
1418     {
1419       return ::vkCreateInstance( pCreateInfo, pAllocator, pInstance );
1420     }
1421 
vkDestroyInstance(VkInstance instance,const VkAllocationCallbacks * pAllocator) const1422     void vkDestroyInstance( VkInstance instance, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1423     {
1424       return ::vkDestroyInstance( instance, pAllocator );
1425     }
1426 
vkEnumeratePhysicalDevices(VkInstance instance,uint32_t * pPhysicalDeviceCount,VkPhysicalDevice * pPhysicalDevices) const1427     VkResult vkEnumeratePhysicalDevices( VkInstance         instance,
1428                                          uint32_t *         pPhysicalDeviceCount,
1429                                          VkPhysicalDevice * pPhysicalDevices ) const VULKAN_HPP_NOEXCEPT
1430     {
1431       return ::vkEnumeratePhysicalDevices( instance, pPhysicalDeviceCount, pPhysicalDevices );
1432     }
1433 
vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures * pFeatures) const1434     void vkGetPhysicalDeviceFeatures( VkPhysicalDevice           physicalDevice,
1435                                       VkPhysicalDeviceFeatures * pFeatures ) const VULKAN_HPP_NOEXCEPT
1436     {
1437       return ::vkGetPhysicalDeviceFeatures( physicalDevice, pFeatures );
1438     }
1439 
vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties * pFormatProperties) const1440     void vkGetPhysicalDeviceFormatProperties( VkPhysicalDevice     physicalDevice,
1441                                               VkFormat             format,
1442                                               VkFormatProperties * pFormatProperties ) const VULKAN_HPP_NOEXCEPT
1443     {
1444       return ::vkGetPhysicalDeviceFormatProperties( physicalDevice, format, pFormatProperties );
1445     }
1446 
vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkImageFormatProperties * pImageFormatProperties) const1447     VkResult vkGetPhysicalDeviceImageFormatProperties( VkPhysicalDevice          physicalDevice,
1448                                                        VkFormat                  format,
1449                                                        VkImageType               type,
1450                                                        VkImageTiling             tiling,
1451                                                        VkImageUsageFlags         usage,
1452                                                        VkImageCreateFlags        flags,
1453                                                        VkImageFormatProperties * pImageFormatProperties ) const
1454       VULKAN_HPP_NOEXCEPT
1455     {
1456       return ::vkGetPhysicalDeviceImageFormatProperties(
1457         physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties );
1458     }
1459 
vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties * pProperties) const1460     void vkGetPhysicalDeviceProperties( VkPhysicalDevice             physicalDevice,
1461                                         VkPhysicalDeviceProperties * pProperties ) const VULKAN_HPP_NOEXCEPT
1462     {
1463       return ::vkGetPhysicalDeviceProperties( physicalDevice, pProperties );
1464     }
1465 
vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties * pQueueFamilyProperties) const1466     void vkGetPhysicalDeviceQueueFamilyProperties( VkPhysicalDevice          physicalDevice,
1467                                                    uint32_t *                pQueueFamilyPropertyCount,
1468                                                    VkQueueFamilyProperties * pQueueFamilyProperties ) const
1469       VULKAN_HPP_NOEXCEPT
1470     {
1471       return ::vkGetPhysicalDeviceQueueFamilyProperties(
1472         physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
1473     }
1474 
vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties * pMemoryProperties) const1475     void vkGetPhysicalDeviceMemoryProperties(
1476       VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties * pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
1477     {
1478       return ::vkGetPhysicalDeviceMemoryProperties( physicalDevice, pMemoryProperties );
1479     }
1480 
vkGetInstanceProcAddr(VkInstance instance,const char * pName) const1481     PFN_vkVoidFunction vkGetInstanceProcAddr( VkInstance instance, const char * pName ) const VULKAN_HPP_NOEXCEPT
1482     {
1483       return ::vkGetInstanceProcAddr( instance, pName );
1484     }
1485 
vkGetDeviceProcAddr(VkDevice device,const char * pName) const1486     PFN_vkVoidFunction vkGetDeviceProcAddr( VkDevice device, const char * pName ) const VULKAN_HPP_NOEXCEPT
1487     {
1488       return ::vkGetDeviceProcAddr( device, pName );
1489     }
1490 
vkCreateDevice(VkPhysicalDevice physicalDevice,const VkDeviceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDevice * pDevice) const1491     VkResult vkCreateDevice( VkPhysicalDevice              physicalDevice,
1492                              const VkDeviceCreateInfo *    pCreateInfo,
1493                              const VkAllocationCallbacks * pAllocator,
1494                              VkDevice *                    pDevice ) const VULKAN_HPP_NOEXCEPT
1495     {
1496       return ::vkCreateDevice( physicalDevice, pCreateInfo, pAllocator, pDevice );
1497     }
1498 
vkDestroyDevice(VkDevice device,const VkAllocationCallbacks * pAllocator) const1499     void vkDestroyDevice( VkDevice device, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1500     {
1501       return ::vkDestroyDevice( device, pAllocator );
1502     }
1503 
vkEnumerateInstanceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties) const1504     VkResult vkEnumerateInstanceExtensionProperties( const char *            pLayerName,
1505                                                      uint32_t *              pPropertyCount,
1506                                                      VkExtensionProperties * pProperties ) const VULKAN_HPP_NOEXCEPT
1507     {
1508       return ::vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, pProperties );
1509     }
1510 
vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice,const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties) const1511     VkResult vkEnumerateDeviceExtensionProperties( VkPhysicalDevice        physicalDevice,
1512                                                    const char *            pLayerName,
1513                                                    uint32_t *              pPropertyCount,
1514                                                    VkExtensionProperties * pProperties ) const VULKAN_HPP_NOEXCEPT
1515     {
1516       return ::vkEnumerateDeviceExtensionProperties( physicalDevice, pLayerName, pPropertyCount, pProperties );
1517     }
1518 
vkEnumerateInstanceLayerProperties(uint32_t * pPropertyCount,VkLayerProperties * pProperties) const1519     VkResult vkEnumerateInstanceLayerProperties( uint32_t *          pPropertyCount,
1520                                                  VkLayerProperties * pProperties ) const VULKAN_HPP_NOEXCEPT
1521     {
1522       return ::vkEnumerateInstanceLayerProperties( pPropertyCount, pProperties );
1523     }
1524 
vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkLayerProperties * pProperties) const1525     VkResult vkEnumerateDeviceLayerProperties( VkPhysicalDevice    physicalDevice,
1526                                                uint32_t *          pPropertyCount,
1527                                                VkLayerProperties * pProperties ) const VULKAN_HPP_NOEXCEPT
1528     {
1529       return ::vkEnumerateDeviceLayerProperties( physicalDevice, pPropertyCount, pProperties );
1530     }
1531 
vkGetDeviceQueue(VkDevice device,uint32_t queueFamilyIndex,uint32_t queueIndex,VkQueue * pQueue) const1532     void vkGetDeviceQueue( VkDevice  device,
1533                            uint32_t  queueFamilyIndex,
1534                            uint32_t  queueIndex,
1535                            VkQueue * pQueue ) const VULKAN_HPP_NOEXCEPT
1536     {
1537       return ::vkGetDeviceQueue( device, queueFamilyIndex, queueIndex, pQueue );
1538     }
1539 
vkQueueSubmit(VkQueue queue,uint32_t submitCount,const VkSubmitInfo * pSubmits,VkFence fence) const1540     VkResult vkQueueSubmit( VkQueue              queue,
1541                             uint32_t             submitCount,
1542                             const VkSubmitInfo * pSubmits,
1543                             VkFence              fence ) const VULKAN_HPP_NOEXCEPT
1544     {
1545       return ::vkQueueSubmit( queue, submitCount, pSubmits, fence );
1546     }
1547 
vkQueueWaitIdle(VkQueue queue) const1548     VkResult vkQueueWaitIdle( VkQueue queue ) const VULKAN_HPP_NOEXCEPT
1549     {
1550       return ::vkQueueWaitIdle( queue );
1551     }
1552 
vkDeviceWaitIdle(VkDevice device) const1553     VkResult vkDeviceWaitIdle( VkDevice device ) const VULKAN_HPP_NOEXCEPT
1554     {
1555       return ::vkDeviceWaitIdle( device );
1556     }
1557 
vkAllocateMemory(VkDevice device,const VkMemoryAllocateInfo * pAllocateInfo,const VkAllocationCallbacks * pAllocator,VkDeviceMemory * pMemory) const1558     VkResult vkAllocateMemory( VkDevice                      device,
1559                                const VkMemoryAllocateInfo *  pAllocateInfo,
1560                                const VkAllocationCallbacks * pAllocator,
1561                                VkDeviceMemory *              pMemory ) const VULKAN_HPP_NOEXCEPT
1562     {
1563       return ::vkAllocateMemory( device, pAllocateInfo, pAllocator, pMemory );
1564     }
1565 
vkFreeMemory(VkDevice device,VkDeviceMemory memory,const VkAllocationCallbacks * pAllocator) const1566     void vkFreeMemory( VkDevice                      device,
1567                        VkDeviceMemory                memory,
1568                        const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1569     {
1570       return ::vkFreeMemory( device, memory, pAllocator );
1571     }
1572 
vkMapMemory(VkDevice device,VkDeviceMemory memory,VkDeviceSize offset,VkDeviceSize size,VkMemoryMapFlags flags,void ** ppData) const1573     VkResult vkMapMemory( VkDevice         device,
1574                           VkDeviceMemory   memory,
1575                           VkDeviceSize     offset,
1576                           VkDeviceSize     size,
1577                           VkMemoryMapFlags flags,
1578                           void **          ppData ) const VULKAN_HPP_NOEXCEPT
1579     {
1580       return ::vkMapMemory( device, memory, offset, size, flags, ppData );
1581     }
1582 
vkUnmapMemory(VkDevice device,VkDeviceMemory memory) const1583     void vkUnmapMemory( VkDevice device, VkDeviceMemory memory ) const VULKAN_HPP_NOEXCEPT
1584     {
1585       return ::vkUnmapMemory( device, memory );
1586     }
1587 
vkFlushMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges) const1588     VkResult vkFlushMappedMemoryRanges( VkDevice                    device,
1589                                         uint32_t                    memoryRangeCount,
1590                                         const VkMappedMemoryRange * pMemoryRanges ) const VULKAN_HPP_NOEXCEPT
1591     {
1592       return ::vkFlushMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges );
1593     }
1594 
vkInvalidateMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges) const1595     VkResult vkInvalidateMappedMemoryRanges( VkDevice                    device,
1596                                              uint32_t                    memoryRangeCount,
1597                                              const VkMappedMemoryRange * pMemoryRanges ) const VULKAN_HPP_NOEXCEPT
1598     {
1599       return ::vkInvalidateMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges );
1600     }
1601 
vkGetDeviceMemoryCommitment(VkDevice device,VkDeviceMemory memory,VkDeviceSize * pCommittedMemoryInBytes) const1602     void vkGetDeviceMemoryCommitment( VkDevice       device,
1603                                       VkDeviceMemory memory,
1604                                       VkDeviceSize * pCommittedMemoryInBytes ) const VULKAN_HPP_NOEXCEPT
1605     {
1606       return ::vkGetDeviceMemoryCommitment( device, memory, pCommittedMemoryInBytes );
1607     }
1608 
vkBindBufferMemory(VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset) const1609     VkResult vkBindBufferMemory( VkDevice       device,
1610                                  VkBuffer       buffer,
1611                                  VkDeviceMemory memory,
1612                                  VkDeviceSize   memoryOffset ) const VULKAN_HPP_NOEXCEPT
1613     {
1614       return ::vkBindBufferMemory( device, buffer, memory, memoryOffset );
1615     }
1616 
vkBindImageMemory(VkDevice device,VkImage image,VkDeviceMemory memory,VkDeviceSize memoryOffset) const1617     VkResult vkBindImageMemory( VkDevice       device,
1618                                 VkImage        image,
1619                                 VkDeviceMemory memory,
1620                                 VkDeviceSize   memoryOffset ) const VULKAN_HPP_NOEXCEPT
1621     {
1622       return ::vkBindImageMemory( device, image, memory, memoryOffset );
1623     }
1624 
vkGetBufferMemoryRequirements(VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements) const1625     void vkGetBufferMemoryRequirements( VkDevice               device,
1626                                         VkBuffer               buffer,
1627                                         VkMemoryRequirements * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
1628     {
1629       return ::vkGetBufferMemoryRequirements( device, buffer, pMemoryRequirements );
1630     }
1631 
vkGetImageMemoryRequirements(VkDevice device,VkImage image,VkMemoryRequirements * pMemoryRequirements) const1632     void vkGetImageMemoryRequirements( VkDevice               device,
1633                                        VkImage                image,
1634                                        VkMemoryRequirements * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
1635     {
1636       return ::vkGetImageMemoryRequirements( device, image, pMemoryRequirements );
1637     }
1638 
vkGetImageSparseMemoryRequirements(VkDevice device,VkImage image,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements * pSparseMemoryRequirements) const1639     void vkGetImageSparseMemoryRequirements( VkDevice                          device,
1640                                              VkImage                           image,
1641                                              uint32_t *                        pSparseMemoryRequirementCount,
1642                                              VkSparseImageMemoryRequirements * pSparseMemoryRequirements ) const
1643       VULKAN_HPP_NOEXCEPT
1644     {
1645       return ::vkGetImageSparseMemoryRequirements(
1646         device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
1647     }
1648 
vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkSampleCountFlagBits samples,VkImageUsageFlags usage,VkImageTiling tiling,uint32_t * pPropertyCount,VkSparseImageFormatProperties * pProperties) const1649     void vkGetPhysicalDeviceSparseImageFormatProperties( VkPhysicalDevice                physicalDevice,
1650                                                          VkFormat                        format,
1651                                                          VkImageType                     type,
1652                                                          VkSampleCountFlagBits           samples,
1653                                                          VkImageUsageFlags               usage,
1654                                                          VkImageTiling                   tiling,
1655                                                          uint32_t *                      pPropertyCount,
1656                                                          VkSparseImageFormatProperties * pProperties ) const
1657       VULKAN_HPP_NOEXCEPT
1658     {
1659       return ::vkGetPhysicalDeviceSparseImageFormatProperties(
1660         physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties );
1661     }
1662 
vkQueueBindSparse(VkQueue queue,uint32_t bindInfoCount,const VkBindSparseInfo * pBindInfo,VkFence fence) const1663     VkResult vkQueueBindSparse( VkQueue                  queue,
1664                                 uint32_t                 bindInfoCount,
1665                                 const VkBindSparseInfo * pBindInfo,
1666                                 VkFence                  fence ) const VULKAN_HPP_NOEXCEPT
1667     {
1668       return ::vkQueueBindSparse( queue, bindInfoCount, pBindInfo, fence );
1669     }
1670 
vkCreateFence(VkDevice device,const VkFenceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const1671     VkResult vkCreateFence( VkDevice                      device,
1672                             const VkFenceCreateInfo *     pCreateInfo,
1673                             const VkAllocationCallbacks * pAllocator,
1674                             VkFence *                     pFence ) const VULKAN_HPP_NOEXCEPT
1675     {
1676       return ::vkCreateFence( device, pCreateInfo, pAllocator, pFence );
1677     }
1678 
vkDestroyFence(VkDevice device,VkFence fence,const VkAllocationCallbacks * pAllocator) const1679     void vkDestroyFence( VkDevice                      device,
1680                          VkFence                       fence,
1681                          const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1682     {
1683       return ::vkDestroyFence( device, fence, pAllocator );
1684     }
1685 
vkResetFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences) const1686     VkResult vkResetFences( VkDevice device, uint32_t fenceCount, const VkFence * pFences ) const VULKAN_HPP_NOEXCEPT
1687     {
1688       return ::vkResetFences( device, fenceCount, pFences );
1689     }
1690 
vkGetFenceStatus(VkDevice device,VkFence fence) const1691     VkResult vkGetFenceStatus( VkDevice device, VkFence fence ) const VULKAN_HPP_NOEXCEPT
1692     {
1693       return ::vkGetFenceStatus( device, fence );
1694     }
1695 
vkWaitForFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences,VkBool32 waitAll,uint64_t timeout) const1696     VkResult vkWaitForFences( VkDevice        device,
1697                               uint32_t        fenceCount,
1698                               const VkFence * pFences,
1699                               VkBool32        waitAll,
1700                               uint64_t        timeout ) const VULKAN_HPP_NOEXCEPT
1701     {
1702       return ::vkWaitForFences( device, fenceCount, pFences, waitAll, timeout );
1703     }
1704 
vkCreateSemaphore(VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore) const1705     VkResult vkCreateSemaphore( VkDevice                      device,
1706                                 const VkSemaphoreCreateInfo * pCreateInfo,
1707                                 const VkAllocationCallbacks * pAllocator,
1708                                 VkSemaphore *                 pSemaphore ) const VULKAN_HPP_NOEXCEPT
1709     {
1710       return ::vkCreateSemaphore( device, pCreateInfo, pAllocator, pSemaphore );
1711     }
1712 
vkDestroySemaphore(VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator) const1713     void vkDestroySemaphore( VkDevice                      device,
1714                              VkSemaphore                   semaphore,
1715                              const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1716     {
1717       return ::vkDestroySemaphore( device, semaphore, pAllocator );
1718     }
1719 
vkCreateEvent(VkDevice device,const VkEventCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkEvent * pEvent) const1720     VkResult vkCreateEvent( VkDevice                      device,
1721                             const VkEventCreateInfo *     pCreateInfo,
1722                             const VkAllocationCallbacks * pAllocator,
1723                             VkEvent *                     pEvent ) const VULKAN_HPP_NOEXCEPT
1724     {
1725       return ::vkCreateEvent( device, pCreateInfo, pAllocator, pEvent );
1726     }
1727 
vkDestroyEvent(VkDevice device,VkEvent event,const VkAllocationCallbacks * pAllocator) const1728     void vkDestroyEvent( VkDevice                      device,
1729                          VkEvent                       event,
1730                          const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1731     {
1732       return ::vkDestroyEvent( device, event, pAllocator );
1733     }
1734 
vkGetEventStatus(VkDevice device,VkEvent event) const1735     VkResult vkGetEventStatus( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
1736     {
1737       return ::vkGetEventStatus( device, event );
1738     }
1739 
vkSetEvent(VkDevice device,VkEvent event) const1740     VkResult vkSetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
1741     {
1742       return ::vkSetEvent( device, event );
1743     }
1744 
vkResetEvent(VkDevice device,VkEvent event) const1745     VkResult vkResetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
1746     {
1747       return ::vkResetEvent( device, event );
1748     }
1749 
vkCreateQueryPool(VkDevice device,const VkQueryPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkQueryPool * pQueryPool) const1750     VkResult vkCreateQueryPool( VkDevice                      device,
1751                                 const VkQueryPoolCreateInfo * pCreateInfo,
1752                                 const VkAllocationCallbacks * pAllocator,
1753                                 VkQueryPool *                 pQueryPool ) const VULKAN_HPP_NOEXCEPT
1754     {
1755       return ::vkCreateQueryPool( device, pCreateInfo, pAllocator, pQueryPool );
1756     }
1757 
vkDestroyQueryPool(VkDevice device,VkQueryPool queryPool,const VkAllocationCallbacks * pAllocator) const1758     void vkDestroyQueryPool( VkDevice                      device,
1759                              VkQueryPool                   queryPool,
1760                              const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1761     {
1762       return ::vkDestroyQueryPool( device, queryPool, pAllocator );
1763     }
1764 
vkGetQueryPoolResults(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,size_t dataSize,void * pData,VkDeviceSize stride,VkQueryResultFlags flags) const1765     VkResult vkGetQueryPoolResults( VkDevice           device,
1766                                     VkQueryPool        queryPool,
1767                                     uint32_t           firstQuery,
1768                                     uint32_t           queryCount,
1769                                     size_t             dataSize,
1770                                     void *             pData,
1771                                     VkDeviceSize       stride,
1772                                     VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT
1773     {
1774       return ::vkGetQueryPoolResults( device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags );
1775     }
1776 
vkCreateBuffer(VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer) const1777     VkResult vkCreateBuffer( VkDevice                      device,
1778                              const VkBufferCreateInfo *    pCreateInfo,
1779                              const VkAllocationCallbacks * pAllocator,
1780                              VkBuffer *                    pBuffer ) const VULKAN_HPP_NOEXCEPT
1781     {
1782       return ::vkCreateBuffer( device, pCreateInfo, pAllocator, pBuffer );
1783     }
1784 
vkDestroyBuffer(VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator) const1785     void vkDestroyBuffer( VkDevice                      device,
1786                           VkBuffer                      buffer,
1787                           const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1788     {
1789       return ::vkDestroyBuffer( device, buffer, pAllocator );
1790     }
1791 
vkCreateBufferView(VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView) const1792     VkResult vkCreateBufferView( VkDevice                       device,
1793                                  const VkBufferViewCreateInfo * pCreateInfo,
1794                                  const VkAllocationCallbacks *  pAllocator,
1795                                  VkBufferView *                 pView ) const VULKAN_HPP_NOEXCEPT
1796     {
1797       return ::vkCreateBufferView( device, pCreateInfo, pAllocator, pView );
1798     }
1799 
vkDestroyBufferView(VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator) const1800     void vkDestroyBufferView( VkDevice                      device,
1801                               VkBufferView                  bufferView,
1802                               const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1803     {
1804       return ::vkDestroyBufferView( device, bufferView, pAllocator );
1805     }
1806 
vkCreateImage(VkDevice device,const VkImageCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImage * pImage) const1807     VkResult vkCreateImage( VkDevice                      device,
1808                             const VkImageCreateInfo *     pCreateInfo,
1809                             const VkAllocationCallbacks * pAllocator,
1810                             VkImage *                     pImage ) const VULKAN_HPP_NOEXCEPT
1811     {
1812       return ::vkCreateImage( device, pCreateInfo, pAllocator, pImage );
1813     }
1814 
vkDestroyImage(VkDevice device,VkImage image,const VkAllocationCallbacks * pAllocator) const1815     void vkDestroyImage( VkDevice                      device,
1816                          VkImage                       image,
1817                          const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1818     {
1819       return ::vkDestroyImage( device, image, pAllocator );
1820     }
1821 
vkGetImageSubresourceLayout(VkDevice device,VkImage image,const VkImageSubresource * pSubresource,VkSubresourceLayout * pLayout) const1822     void vkGetImageSubresourceLayout( VkDevice                   device,
1823                                       VkImage                    image,
1824                                       const VkImageSubresource * pSubresource,
1825                                       VkSubresourceLayout *      pLayout ) const VULKAN_HPP_NOEXCEPT
1826     {
1827       return ::vkGetImageSubresourceLayout( device, image, pSubresource, pLayout );
1828     }
1829 
vkCreateImageView(VkDevice device,const VkImageViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImageView * pView) const1830     VkResult vkCreateImageView( VkDevice                      device,
1831                                 const VkImageViewCreateInfo * pCreateInfo,
1832                                 const VkAllocationCallbacks * pAllocator,
1833                                 VkImageView *                 pView ) const VULKAN_HPP_NOEXCEPT
1834     {
1835       return ::vkCreateImageView( device, pCreateInfo, pAllocator, pView );
1836     }
1837 
vkDestroyImageView(VkDevice device,VkImageView imageView,const VkAllocationCallbacks * pAllocator) const1838     void vkDestroyImageView( VkDevice                      device,
1839                              VkImageView                   imageView,
1840                              const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1841     {
1842       return ::vkDestroyImageView( device, imageView, pAllocator );
1843     }
1844 
vkCreateShaderModule(VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule) const1845     VkResult vkCreateShaderModule( VkDevice                         device,
1846                                    const VkShaderModuleCreateInfo * pCreateInfo,
1847                                    const VkAllocationCallbacks *    pAllocator,
1848                                    VkShaderModule *                 pShaderModule ) const VULKAN_HPP_NOEXCEPT
1849     {
1850       return ::vkCreateShaderModule( device, pCreateInfo, pAllocator, pShaderModule );
1851     }
1852 
vkDestroyShaderModule(VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator) const1853     void vkDestroyShaderModule( VkDevice                      device,
1854                                 VkShaderModule                shaderModule,
1855                                 const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1856     {
1857       return ::vkDestroyShaderModule( device, shaderModule, pAllocator );
1858     }
1859 
vkCreatePipelineCache(VkDevice device,const VkPipelineCacheCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineCache * pPipelineCache) const1860     VkResult vkCreatePipelineCache( VkDevice                          device,
1861                                     const VkPipelineCacheCreateInfo * pCreateInfo,
1862                                     const VkAllocationCallbacks *     pAllocator,
1863                                     VkPipelineCache *                 pPipelineCache ) const VULKAN_HPP_NOEXCEPT
1864     {
1865       return ::vkCreatePipelineCache( device, pCreateInfo, pAllocator, pPipelineCache );
1866     }
1867 
vkDestroyPipelineCache(VkDevice device,VkPipelineCache pipelineCache,const VkAllocationCallbacks * pAllocator) const1868     void vkDestroyPipelineCache( VkDevice                      device,
1869                                  VkPipelineCache               pipelineCache,
1870                                  const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1871     {
1872       return ::vkDestroyPipelineCache( device, pipelineCache, pAllocator );
1873     }
1874 
vkGetPipelineCacheData(VkDevice device,VkPipelineCache pipelineCache,size_t * pDataSize,void * pData) const1875     VkResult vkGetPipelineCacheData( VkDevice        device,
1876                                      VkPipelineCache pipelineCache,
1877                                      size_t *        pDataSize,
1878                                      void *          pData ) const VULKAN_HPP_NOEXCEPT
1879     {
1880       return ::vkGetPipelineCacheData( device, pipelineCache, pDataSize, pData );
1881     }
1882 
vkMergePipelineCaches(VkDevice device,VkPipelineCache dstCache,uint32_t srcCacheCount,const VkPipelineCache * pSrcCaches) const1883     VkResult vkMergePipelineCaches( VkDevice                device,
1884                                     VkPipelineCache         dstCache,
1885                                     uint32_t                srcCacheCount,
1886                                     const VkPipelineCache * pSrcCaches ) const VULKAN_HPP_NOEXCEPT
1887     {
1888       return ::vkMergePipelineCaches( device, dstCache, srcCacheCount, pSrcCaches );
1889     }
1890 
vkCreateGraphicsPipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkGraphicsPipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const1891     VkResult vkCreateGraphicsPipelines( VkDevice                             device,
1892                                         VkPipelineCache                      pipelineCache,
1893                                         uint32_t                             createInfoCount,
1894                                         const VkGraphicsPipelineCreateInfo * pCreateInfos,
1895                                         const VkAllocationCallbacks *        pAllocator,
1896                                         VkPipeline *                         pPipelines ) const VULKAN_HPP_NOEXCEPT
1897     {
1898       return ::vkCreateGraphicsPipelines(
1899         device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
1900     }
1901 
vkCreateComputePipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkComputePipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const1902     VkResult vkCreateComputePipelines( VkDevice                            device,
1903                                        VkPipelineCache                     pipelineCache,
1904                                        uint32_t                            createInfoCount,
1905                                        const VkComputePipelineCreateInfo * pCreateInfos,
1906                                        const VkAllocationCallbacks *       pAllocator,
1907                                        VkPipeline *                        pPipelines ) const VULKAN_HPP_NOEXCEPT
1908     {
1909       return ::vkCreateComputePipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
1910     }
1911 
vkDestroyPipeline(VkDevice device,VkPipeline pipeline,const VkAllocationCallbacks * pAllocator) const1912     void vkDestroyPipeline( VkDevice                      device,
1913                             VkPipeline                    pipeline,
1914                             const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1915     {
1916       return ::vkDestroyPipeline( device, pipeline, pAllocator );
1917     }
1918 
vkCreatePipelineLayout(VkDevice device,const VkPipelineLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineLayout * pPipelineLayout) const1919     VkResult vkCreatePipelineLayout( VkDevice                           device,
1920                                      const VkPipelineLayoutCreateInfo * pCreateInfo,
1921                                      const VkAllocationCallbacks *      pAllocator,
1922                                      VkPipelineLayout *                 pPipelineLayout ) const VULKAN_HPP_NOEXCEPT
1923     {
1924       return ::vkCreatePipelineLayout( device, pCreateInfo, pAllocator, pPipelineLayout );
1925     }
1926 
vkDestroyPipelineLayout(VkDevice device,VkPipelineLayout pipelineLayout,const VkAllocationCallbacks * pAllocator) const1927     void vkDestroyPipelineLayout( VkDevice                      device,
1928                                   VkPipelineLayout              pipelineLayout,
1929                                   const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1930     {
1931       return ::vkDestroyPipelineLayout( device, pipelineLayout, pAllocator );
1932     }
1933 
vkCreateSampler(VkDevice device,const VkSamplerCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSampler * pSampler) const1934     VkResult vkCreateSampler( VkDevice                      device,
1935                               const VkSamplerCreateInfo *   pCreateInfo,
1936                               const VkAllocationCallbacks * pAllocator,
1937                               VkSampler *                   pSampler ) const VULKAN_HPP_NOEXCEPT
1938     {
1939       return ::vkCreateSampler( device, pCreateInfo, pAllocator, pSampler );
1940     }
1941 
vkDestroySampler(VkDevice device,VkSampler sampler,const VkAllocationCallbacks * pAllocator) const1942     void vkDestroySampler( VkDevice                      device,
1943                            VkSampler                     sampler,
1944                            const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1945     {
1946       return ::vkDestroySampler( device, sampler, pAllocator );
1947     }
1948 
vkCreateDescriptorSetLayout(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorSetLayout * pSetLayout) const1949     VkResult vkCreateDescriptorSetLayout( VkDevice                                device,
1950                                           const VkDescriptorSetLayoutCreateInfo * pCreateInfo,
1951                                           const VkAllocationCallbacks *           pAllocator,
1952                                           VkDescriptorSetLayout *                 pSetLayout ) const VULKAN_HPP_NOEXCEPT
1953     {
1954       return ::vkCreateDescriptorSetLayout( device, pCreateInfo, pAllocator, pSetLayout );
1955     }
1956 
vkDestroyDescriptorSetLayout(VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator) const1957     void vkDestroyDescriptorSetLayout( VkDevice                      device,
1958                                        VkDescriptorSetLayout         descriptorSetLayout,
1959                                        const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1960     {
1961       return ::vkDestroyDescriptorSetLayout( device, descriptorSetLayout, pAllocator );
1962     }
1963 
vkCreateDescriptorPool(VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool) const1964     VkResult vkCreateDescriptorPool( VkDevice                           device,
1965                                      const VkDescriptorPoolCreateInfo * pCreateInfo,
1966                                      const VkAllocationCallbacks *      pAllocator,
1967                                      VkDescriptorPool *                 pDescriptorPool ) const VULKAN_HPP_NOEXCEPT
1968     {
1969       return ::vkCreateDescriptorPool( device, pCreateInfo, pAllocator, pDescriptorPool );
1970     }
1971 
vkDestroyDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator) const1972     void vkDestroyDescriptorPool( VkDevice                      device,
1973                                   VkDescriptorPool              descriptorPool,
1974                                   const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1975     {
1976       return ::vkDestroyDescriptorPool( device, descriptorPool, pAllocator );
1977     }
1978 
vkResetDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags) const1979     VkResult vkResetDescriptorPool( VkDevice                   device,
1980                                     VkDescriptorPool           descriptorPool,
1981                                     VkDescriptorPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT
1982     {
1983       return ::vkResetDescriptorPool( device, descriptorPool, flags );
1984     }
1985 
vkAllocateDescriptorSets(VkDevice device,const VkDescriptorSetAllocateInfo * pAllocateInfo,VkDescriptorSet * pDescriptorSets) const1986     VkResult vkAllocateDescriptorSets( VkDevice                            device,
1987                                        const VkDescriptorSetAllocateInfo * pAllocateInfo,
1988                                        VkDescriptorSet *                   pDescriptorSets ) const VULKAN_HPP_NOEXCEPT
1989     {
1990       return ::vkAllocateDescriptorSets( device, pAllocateInfo, pDescriptorSets );
1991     }
1992 
vkFreeDescriptorSets(VkDevice device,VkDescriptorPool descriptorPool,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets) const1993     VkResult vkFreeDescriptorSets( VkDevice                device,
1994                                    VkDescriptorPool        descriptorPool,
1995                                    uint32_t                descriptorSetCount,
1996                                    const VkDescriptorSet * pDescriptorSets ) const VULKAN_HPP_NOEXCEPT
1997     {
1998       return ::vkFreeDescriptorSets( device, descriptorPool, descriptorSetCount, pDescriptorSets );
1999     }
2000 
vkUpdateDescriptorSets(VkDevice device,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites,uint32_t descriptorCopyCount,const VkCopyDescriptorSet * pDescriptorCopies) const2001     void vkUpdateDescriptorSets( VkDevice                     device,
2002                                  uint32_t                     descriptorWriteCount,
2003                                  const VkWriteDescriptorSet * pDescriptorWrites,
2004                                  uint32_t                     descriptorCopyCount,
2005                                  const VkCopyDescriptorSet *  pDescriptorCopies ) const VULKAN_HPP_NOEXCEPT
2006     {
2007       return ::vkUpdateDescriptorSets(
2008         device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies );
2009     }
2010 
vkCreateFramebuffer(VkDevice device,const VkFramebufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFramebuffer * pFramebuffer) const2011     VkResult vkCreateFramebuffer( VkDevice                        device,
2012                                   const VkFramebufferCreateInfo * pCreateInfo,
2013                                   const VkAllocationCallbacks *   pAllocator,
2014                                   VkFramebuffer *                 pFramebuffer ) const VULKAN_HPP_NOEXCEPT
2015     {
2016       return ::vkCreateFramebuffer( device, pCreateInfo, pAllocator, pFramebuffer );
2017     }
2018 
vkDestroyFramebuffer(VkDevice device,VkFramebuffer framebuffer,const VkAllocationCallbacks * pAllocator) const2019     void vkDestroyFramebuffer( VkDevice                      device,
2020                                VkFramebuffer                 framebuffer,
2021                                const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
2022     {
2023       return ::vkDestroyFramebuffer( device, framebuffer, pAllocator );
2024     }
2025 
vkCreateRenderPass(VkDevice device,const VkRenderPassCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass) const2026     VkResult vkCreateRenderPass( VkDevice                       device,
2027                                  const VkRenderPassCreateInfo * pCreateInfo,
2028                                  const VkAllocationCallbacks *  pAllocator,
2029                                  VkRenderPass *                 pRenderPass ) const VULKAN_HPP_NOEXCEPT
2030     {
2031       return ::vkCreateRenderPass( device, pCreateInfo, pAllocator, pRenderPass );
2032     }
2033 
vkDestroyRenderPass(VkDevice device,VkRenderPass renderPass,const VkAllocationCallbacks * pAllocator) const2034     void vkDestroyRenderPass( VkDevice                      device,
2035                               VkRenderPass                  renderPass,
2036                               const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
2037     {
2038       return ::vkDestroyRenderPass( device, renderPass, pAllocator );
2039     }
2040 
vkGetRenderAreaGranularity(VkDevice device,VkRenderPass renderPass,VkExtent2D * pGranularity) const2041     void vkGetRenderAreaGranularity( VkDevice     device,
2042                                      VkRenderPass renderPass,
2043                                      VkExtent2D * pGranularity ) const VULKAN_HPP_NOEXCEPT
2044     {
2045       return ::vkGetRenderAreaGranularity( device, renderPass, pGranularity );
2046     }
2047 
vkCreateCommandPool(VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool) const2048     VkResult vkCreateCommandPool( VkDevice                        device,
2049                                   const VkCommandPoolCreateInfo * pCreateInfo,
2050                                   const VkAllocationCallbacks *   pAllocator,
2051                                   VkCommandPool *                 pCommandPool ) const VULKAN_HPP_NOEXCEPT
2052     {
2053       return ::vkCreateCommandPool( device, pCreateInfo, pAllocator, pCommandPool );
2054     }
2055 
vkDestroyCommandPool(VkDevice device,VkCommandPool commandPool,const VkAllocationCallbacks * pAllocator) const2056     void vkDestroyCommandPool( VkDevice                      device,
2057                                VkCommandPool                 commandPool,
2058                                const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
2059     {
2060       return ::vkDestroyCommandPool( device, commandPool, pAllocator );
2061     }
2062 
vkResetCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags) const2063     VkResult vkResetCommandPool( VkDevice                device,
2064                                  VkCommandPool           commandPool,
2065                                  VkCommandPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT
2066     {
2067       return ::vkResetCommandPool( device, commandPool, flags );
2068     }
2069 
vkAllocateCommandBuffers(VkDevice device,const VkCommandBufferAllocateInfo * pAllocateInfo,VkCommandBuffer * pCommandBuffers) const2070     VkResult vkAllocateCommandBuffers( VkDevice                            device,
2071                                        const VkCommandBufferAllocateInfo * pAllocateInfo,
2072                                        VkCommandBuffer *                   pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
2073     {
2074       return ::vkAllocateCommandBuffers( device, pAllocateInfo, pCommandBuffers );
2075     }
2076 
vkFreeCommandBuffers(VkDevice device,VkCommandPool commandPool,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers) const2077     void vkFreeCommandBuffers( VkDevice                device,
2078                                VkCommandPool           commandPool,
2079                                uint32_t                commandBufferCount,
2080                                const VkCommandBuffer * pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
2081     {
2082       return ::vkFreeCommandBuffers( device, commandPool, commandBufferCount, pCommandBuffers );
2083     }
2084 
vkBeginCommandBuffer(VkCommandBuffer commandBuffer,const VkCommandBufferBeginInfo * pBeginInfo) const2085     VkResult vkBeginCommandBuffer( VkCommandBuffer                  commandBuffer,
2086                                    const VkCommandBufferBeginInfo * pBeginInfo ) const VULKAN_HPP_NOEXCEPT
2087     {
2088       return ::vkBeginCommandBuffer( commandBuffer, pBeginInfo );
2089     }
2090 
vkEndCommandBuffer(VkCommandBuffer commandBuffer) const2091     VkResult vkEndCommandBuffer( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
2092     {
2093       return ::vkEndCommandBuffer( commandBuffer );
2094     }
2095 
vkResetCommandBuffer(VkCommandBuffer commandBuffer,VkCommandBufferResetFlags flags) const2096     VkResult vkResetCommandBuffer( VkCommandBuffer           commandBuffer,
2097                                    VkCommandBufferResetFlags flags ) const VULKAN_HPP_NOEXCEPT
2098     {
2099       return ::vkResetCommandBuffer( commandBuffer, flags );
2100     }
2101 
vkCmdBindPipeline(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline) const2102     void vkCmdBindPipeline( VkCommandBuffer     commandBuffer,
2103                             VkPipelineBindPoint pipelineBindPoint,
2104                             VkPipeline          pipeline ) const VULKAN_HPP_NOEXCEPT
2105     {
2106       return ::vkCmdBindPipeline( commandBuffer, pipelineBindPoint, pipeline );
2107     }
2108 
vkCmdSetViewport(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewport * pViewports) const2109     void vkCmdSetViewport( VkCommandBuffer    commandBuffer,
2110                            uint32_t           firstViewport,
2111                            uint32_t           viewportCount,
2112                            const VkViewport * pViewports ) const VULKAN_HPP_NOEXCEPT
2113     {
2114       return ::vkCmdSetViewport( commandBuffer, firstViewport, viewportCount, pViewports );
2115     }
2116 
vkCmdSetScissor(VkCommandBuffer commandBuffer,uint32_t firstScissor,uint32_t scissorCount,const VkRect2D * pScissors) const2117     void vkCmdSetScissor( VkCommandBuffer  commandBuffer,
2118                           uint32_t         firstScissor,
2119                           uint32_t         scissorCount,
2120                           const VkRect2D * pScissors ) const VULKAN_HPP_NOEXCEPT
2121     {
2122       return ::vkCmdSetScissor( commandBuffer, firstScissor, scissorCount, pScissors );
2123     }
2124 
vkCmdSetLineWidth(VkCommandBuffer commandBuffer,float lineWidth) const2125     void vkCmdSetLineWidth( VkCommandBuffer commandBuffer, float lineWidth ) const VULKAN_HPP_NOEXCEPT
2126     {
2127       return ::vkCmdSetLineWidth( commandBuffer, lineWidth );
2128     }
2129 
vkCmdSetDepthBias(VkCommandBuffer commandBuffer,float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor) const2130     void vkCmdSetDepthBias( VkCommandBuffer commandBuffer,
2131                             float           depthBiasConstantFactor,
2132                             float           depthBiasClamp,
2133                             float           depthBiasSlopeFactor ) const VULKAN_HPP_NOEXCEPT
2134     {
2135       return ::vkCmdSetDepthBias( commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
2136     }
2137 
vkCmdSetBlendConstants(VkCommandBuffer commandBuffer,const float blendConstants[4]) const2138     void vkCmdSetBlendConstants( VkCommandBuffer commandBuffer,
2139                                  const float     blendConstants[4] ) const VULKAN_HPP_NOEXCEPT
2140     {
2141       return ::vkCmdSetBlendConstants( commandBuffer, blendConstants );
2142     }
2143 
vkCmdSetDepthBounds(VkCommandBuffer commandBuffer,float minDepthBounds,float maxDepthBounds) const2144     void vkCmdSetDepthBounds( VkCommandBuffer commandBuffer,
2145                               float           minDepthBounds,
2146                               float           maxDepthBounds ) const VULKAN_HPP_NOEXCEPT
2147     {
2148       return ::vkCmdSetDepthBounds( commandBuffer, minDepthBounds, maxDepthBounds );
2149     }
2150 
vkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t compareMask) const2151     void vkCmdSetStencilCompareMask( VkCommandBuffer    commandBuffer,
2152                                      VkStencilFaceFlags faceMask,
2153                                      uint32_t           compareMask ) const VULKAN_HPP_NOEXCEPT
2154     {
2155       return ::vkCmdSetStencilCompareMask( commandBuffer, faceMask, compareMask );
2156     }
2157 
vkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t writeMask) const2158     void vkCmdSetStencilWriteMask( VkCommandBuffer    commandBuffer,
2159                                    VkStencilFaceFlags faceMask,
2160                                    uint32_t           writeMask ) const VULKAN_HPP_NOEXCEPT
2161     {
2162       return ::vkCmdSetStencilWriteMask( commandBuffer, faceMask, writeMask );
2163     }
2164 
vkCmdSetStencilReference(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t reference) const2165     void vkCmdSetStencilReference( VkCommandBuffer    commandBuffer,
2166                                    VkStencilFaceFlags faceMask,
2167                                    uint32_t           reference ) const VULKAN_HPP_NOEXCEPT
2168     {
2169       return ::vkCmdSetStencilReference( commandBuffer, faceMask, reference );
2170     }
2171 
vkCmdBindDescriptorSets(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t firstSet,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets,uint32_t dynamicOffsetCount,const uint32_t * pDynamicOffsets) const2172     void vkCmdBindDescriptorSets( VkCommandBuffer         commandBuffer,
2173                                   VkPipelineBindPoint     pipelineBindPoint,
2174                                   VkPipelineLayout        layout,
2175                                   uint32_t                firstSet,
2176                                   uint32_t                descriptorSetCount,
2177                                   const VkDescriptorSet * pDescriptorSets,
2178                                   uint32_t                dynamicOffsetCount,
2179                                   const uint32_t *        pDynamicOffsets ) const VULKAN_HPP_NOEXCEPT
2180     {
2181       return ::vkCmdBindDescriptorSets( commandBuffer,
2182                                         pipelineBindPoint,
2183                                         layout,
2184                                         firstSet,
2185                                         descriptorSetCount,
2186                                         pDescriptorSets,
2187                                         dynamicOffsetCount,
2188                                         pDynamicOffsets );
2189     }
2190 
vkCmdBindIndexBuffer(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkIndexType indexType) const2191     void vkCmdBindIndexBuffer( VkCommandBuffer commandBuffer,
2192                                VkBuffer        buffer,
2193                                VkDeviceSize    offset,
2194                                VkIndexType     indexType ) const VULKAN_HPP_NOEXCEPT
2195     {
2196       return ::vkCmdBindIndexBuffer( commandBuffer, buffer, offset, indexType );
2197     }
2198 
vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets) const2199     void vkCmdBindVertexBuffers( VkCommandBuffer      commandBuffer,
2200                                  uint32_t             firstBinding,
2201                                  uint32_t             bindingCount,
2202                                  const VkBuffer *     pBuffers,
2203                                  const VkDeviceSize * pOffsets ) const VULKAN_HPP_NOEXCEPT
2204     {
2205       return ::vkCmdBindVertexBuffers( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets );
2206     }
2207 
vkCmdDraw(VkCommandBuffer commandBuffer,uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance) const2208     void vkCmdDraw( VkCommandBuffer commandBuffer,
2209                     uint32_t        vertexCount,
2210                     uint32_t        instanceCount,
2211                     uint32_t        firstVertex,
2212                     uint32_t        firstInstance ) const VULKAN_HPP_NOEXCEPT
2213     {
2214       return ::vkCmdDraw( commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
2215     }
2216 
vkCmdDrawIndexed(VkCommandBuffer commandBuffer,uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance) const2217     void vkCmdDrawIndexed( VkCommandBuffer commandBuffer,
2218                            uint32_t        indexCount,
2219                            uint32_t        instanceCount,
2220                            uint32_t        firstIndex,
2221                            int32_t         vertexOffset,
2222                            uint32_t        firstInstance ) const VULKAN_HPP_NOEXCEPT
2223     {
2224       return ::vkCmdDrawIndexed( commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
2225     }
2226 
vkCmdDrawIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const2227     void vkCmdDrawIndirect( VkCommandBuffer commandBuffer,
2228                             VkBuffer        buffer,
2229                             VkDeviceSize    offset,
2230                             uint32_t        drawCount,
2231                             uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
2232     {
2233       return ::vkCmdDrawIndirect( commandBuffer, buffer, offset, drawCount, stride );
2234     }
2235 
vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const2236     void vkCmdDrawIndexedIndirect( VkCommandBuffer commandBuffer,
2237                                    VkBuffer        buffer,
2238                                    VkDeviceSize    offset,
2239                                    uint32_t        drawCount,
2240                                    uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
2241     {
2242       return ::vkCmdDrawIndexedIndirect( commandBuffer, buffer, offset, drawCount, stride );
2243     }
2244 
vkCmdDispatch(VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const2245     void vkCmdDispatch( VkCommandBuffer commandBuffer,
2246                         uint32_t        groupCountX,
2247                         uint32_t        groupCountY,
2248                         uint32_t        groupCountZ ) const VULKAN_HPP_NOEXCEPT
2249     {
2250       return ::vkCmdDispatch( commandBuffer, groupCountX, groupCountY, groupCountZ );
2251     }
2252 
vkCmdDispatchIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset) const2253     void vkCmdDispatchIndirect( VkCommandBuffer commandBuffer,
2254                                 VkBuffer        buffer,
2255                                 VkDeviceSize    offset ) const VULKAN_HPP_NOEXCEPT
2256     {
2257       return ::vkCmdDispatchIndirect( commandBuffer, buffer, offset );
2258     }
2259 
vkCmdCopyBuffer(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferCopy * pRegions) const2260     void vkCmdCopyBuffer( VkCommandBuffer      commandBuffer,
2261                           VkBuffer             srcBuffer,
2262                           VkBuffer             dstBuffer,
2263                           uint32_t             regionCount,
2264                           const VkBufferCopy * pRegions ) const VULKAN_HPP_NOEXCEPT
2265     {
2266       return ::vkCmdCopyBuffer( commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions );
2267     }
2268 
vkCmdCopyImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageCopy * pRegions) const2269     void vkCmdCopyImage( VkCommandBuffer     commandBuffer,
2270                          VkImage             srcImage,
2271                          VkImageLayout       srcImageLayout,
2272                          VkImage             dstImage,
2273                          VkImageLayout       dstImageLayout,
2274                          uint32_t            regionCount,
2275                          const VkImageCopy * pRegions ) const VULKAN_HPP_NOEXCEPT
2276     {
2277       return ::vkCmdCopyImage(
2278         commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
2279     }
2280 
vkCmdBlitImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageBlit * pRegions,VkFilter filter) const2281     void vkCmdBlitImage( VkCommandBuffer     commandBuffer,
2282                          VkImage             srcImage,
2283                          VkImageLayout       srcImageLayout,
2284                          VkImage             dstImage,
2285                          VkImageLayout       dstImageLayout,
2286                          uint32_t            regionCount,
2287                          const VkImageBlit * pRegions,
2288                          VkFilter            filter ) const VULKAN_HPP_NOEXCEPT
2289     {
2290       return ::vkCmdBlitImage(
2291         commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter );
2292     }
2293 
vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkBufferImageCopy * pRegions) const2294     void vkCmdCopyBufferToImage( VkCommandBuffer           commandBuffer,
2295                                  VkBuffer                  srcBuffer,
2296                                  VkImage                   dstImage,
2297                                  VkImageLayout             dstImageLayout,
2298                                  uint32_t                  regionCount,
2299                                  const VkBufferImageCopy * pRegions ) const VULKAN_HPP_NOEXCEPT
2300     {
2301       return ::vkCmdCopyBufferToImage( commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions );
2302     }
2303 
vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferImageCopy * pRegions) const2304     void vkCmdCopyImageToBuffer( VkCommandBuffer           commandBuffer,
2305                                  VkImage                   srcImage,
2306                                  VkImageLayout             srcImageLayout,
2307                                  VkBuffer                  dstBuffer,
2308                                  uint32_t                  regionCount,
2309                                  const VkBufferImageCopy * pRegions ) const VULKAN_HPP_NOEXCEPT
2310     {
2311       return ::vkCmdCopyImageToBuffer( commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions );
2312     }
2313 
vkCmdUpdateBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize dataSize,const void * pData) const2314     void vkCmdUpdateBuffer( VkCommandBuffer commandBuffer,
2315                             VkBuffer        dstBuffer,
2316                             VkDeviceSize    dstOffset,
2317                             VkDeviceSize    dataSize,
2318                             const void *    pData ) const VULKAN_HPP_NOEXCEPT
2319     {
2320       return ::vkCmdUpdateBuffer( commandBuffer, dstBuffer, dstOffset, dataSize, pData );
2321     }
2322 
vkCmdFillBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize size,uint32_t data) const2323     void vkCmdFillBuffer( VkCommandBuffer commandBuffer,
2324                           VkBuffer        dstBuffer,
2325                           VkDeviceSize    dstOffset,
2326                           VkDeviceSize    size,
2327                           uint32_t        data ) const VULKAN_HPP_NOEXCEPT
2328     {
2329       return ::vkCmdFillBuffer( commandBuffer, dstBuffer, dstOffset, size, data );
2330     }
2331 
vkCmdClearColorImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearColorValue * pColor,uint32_t rangeCount,const VkImageSubresourceRange * pRanges) const2332     void vkCmdClearColorImage( VkCommandBuffer                 commandBuffer,
2333                                VkImage                         image,
2334                                VkImageLayout                   imageLayout,
2335                                const VkClearColorValue *       pColor,
2336                                uint32_t                        rangeCount,
2337                                const VkImageSubresourceRange * pRanges ) const VULKAN_HPP_NOEXCEPT
2338     {
2339       return ::vkCmdClearColorImage( commandBuffer, image, imageLayout, pColor, rangeCount, pRanges );
2340     }
2341 
vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearDepthStencilValue * pDepthStencil,uint32_t rangeCount,const VkImageSubresourceRange * pRanges) const2342     void vkCmdClearDepthStencilImage( VkCommandBuffer                  commandBuffer,
2343                                       VkImage                          image,
2344                                       VkImageLayout                    imageLayout,
2345                                       const VkClearDepthStencilValue * pDepthStencil,
2346                                       uint32_t                         rangeCount,
2347                                       const VkImageSubresourceRange *  pRanges ) const VULKAN_HPP_NOEXCEPT
2348     {
2349       return ::vkCmdClearDepthStencilImage( commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges );
2350     }
2351 
vkCmdClearAttachments(VkCommandBuffer commandBuffer,uint32_t attachmentCount,const VkClearAttachment * pAttachments,uint32_t rectCount,const VkClearRect * pRects) const2352     void vkCmdClearAttachments( VkCommandBuffer           commandBuffer,
2353                                 uint32_t                  attachmentCount,
2354                                 const VkClearAttachment * pAttachments,
2355                                 uint32_t                  rectCount,
2356                                 const VkClearRect *       pRects ) const VULKAN_HPP_NOEXCEPT
2357     {
2358       return ::vkCmdClearAttachments( commandBuffer, attachmentCount, pAttachments, rectCount, pRects );
2359     }
2360 
vkCmdResolveImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageResolve * pRegions) const2361     void vkCmdResolveImage( VkCommandBuffer        commandBuffer,
2362                             VkImage                srcImage,
2363                             VkImageLayout          srcImageLayout,
2364                             VkImage                dstImage,
2365                             VkImageLayout          dstImageLayout,
2366                             uint32_t               regionCount,
2367                             const VkImageResolve * pRegions ) const VULKAN_HPP_NOEXCEPT
2368     {
2369       return ::vkCmdResolveImage(
2370         commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
2371     }
2372 
vkCmdSetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask) const2373     void vkCmdSetEvent( VkCommandBuffer      commandBuffer,
2374                         VkEvent              event,
2375                         VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT
2376     {
2377       return ::vkCmdSetEvent( commandBuffer, event, stageMask );
2378     }
2379 
vkCmdResetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask) const2380     void vkCmdResetEvent( VkCommandBuffer      commandBuffer,
2381                           VkEvent              event,
2382                           VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT
2383     {
2384       return ::vkCmdResetEvent( commandBuffer, event, stageMask );
2385     }
2386 
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) const2387     void vkCmdWaitEvents( VkCommandBuffer               commandBuffer,
2388                           uint32_t                      eventCount,
2389                           const VkEvent *               pEvents,
2390                           VkPipelineStageFlags          srcStageMask,
2391                           VkPipelineStageFlags          dstStageMask,
2392                           uint32_t                      memoryBarrierCount,
2393                           const VkMemoryBarrier *       pMemoryBarriers,
2394                           uint32_t                      bufferMemoryBarrierCount,
2395                           const VkBufferMemoryBarrier * pBufferMemoryBarriers,
2396                           uint32_t                      imageMemoryBarrierCount,
2397                           const VkImageMemoryBarrier *  pImageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT
2398     {
2399       return ::vkCmdWaitEvents( commandBuffer,
2400                                 eventCount,
2401                                 pEvents,
2402                                 srcStageMask,
2403                                 dstStageMask,
2404                                 memoryBarrierCount,
2405                                 pMemoryBarriers,
2406                                 bufferMemoryBarrierCount,
2407                                 pBufferMemoryBarriers,
2408                                 imageMemoryBarrierCount,
2409                                 pImageMemoryBarriers );
2410     }
2411 
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) const2412     void vkCmdPipelineBarrier( VkCommandBuffer               commandBuffer,
2413                                VkPipelineStageFlags          srcStageMask,
2414                                VkPipelineStageFlags          dstStageMask,
2415                                VkDependencyFlags             dependencyFlags,
2416                                uint32_t                      memoryBarrierCount,
2417                                const VkMemoryBarrier *       pMemoryBarriers,
2418                                uint32_t                      bufferMemoryBarrierCount,
2419                                const VkBufferMemoryBarrier * pBufferMemoryBarriers,
2420                                uint32_t                      imageMemoryBarrierCount,
2421                                const VkImageMemoryBarrier *  pImageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT
2422     {
2423       return ::vkCmdPipelineBarrier( commandBuffer,
2424                                      srcStageMask,
2425                                      dstStageMask,
2426                                      dependencyFlags,
2427                                      memoryBarrierCount,
2428                                      pMemoryBarriers,
2429                                      bufferMemoryBarrierCount,
2430                                      pBufferMemoryBarriers,
2431                                      imageMemoryBarrierCount,
2432                                      pImageMemoryBarriers );
2433     }
2434 
vkCmdBeginQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags) const2435     void vkCmdBeginQuery( VkCommandBuffer     commandBuffer,
2436                           VkQueryPool         queryPool,
2437                           uint32_t            query,
2438                           VkQueryControlFlags flags ) const VULKAN_HPP_NOEXCEPT
2439     {
2440       return ::vkCmdBeginQuery( commandBuffer, queryPool, query, flags );
2441     }
2442 
vkCmdEndQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query) const2443     void vkCmdEndQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT
2444     {
2445       return ::vkCmdEndQuery( commandBuffer, queryPool, query );
2446     }
2447 
vkCmdResetQueryPool(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const2448     void vkCmdResetQueryPool( VkCommandBuffer commandBuffer,
2449                               VkQueryPool     queryPool,
2450                               uint32_t        firstQuery,
2451                               uint32_t        queryCount ) const VULKAN_HPP_NOEXCEPT
2452     {
2453       return ::vkCmdResetQueryPool( commandBuffer, queryPool, firstQuery, queryCount );
2454     }
2455 
vkCmdWriteTimestamp(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkQueryPool queryPool,uint32_t query) const2456     void vkCmdWriteTimestamp( VkCommandBuffer         commandBuffer,
2457                               VkPipelineStageFlagBits pipelineStage,
2458                               VkQueryPool             queryPool,
2459                               uint32_t                query ) const VULKAN_HPP_NOEXCEPT
2460     {
2461       return ::vkCmdWriteTimestamp( commandBuffer, pipelineStage, queryPool, query );
2462     }
2463 
vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize stride,VkQueryResultFlags flags) const2464     void vkCmdCopyQueryPoolResults( VkCommandBuffer    commandBuffer,
2465                                     VkQueryPool        queryPool,
2466                                     uint32_t           firstQuery,
2467                                     uint32_t           queryCount,
2468                                     VkBuffer           dstBuffer,
2469                                     VkDeviceSize       dstOffset,
2470                                     VkDeviceSize       stride,
2471                                     VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT
2472     {
2473       return ::vkCmdCopyQueryPoolResults(
2474         commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags );
2475     }
2476 
vkCmdPushConstants(VkCommandBuffer commandBuffer,VkPipelineLayout layout,VkShaderStageFlags stageFlags,uint32_t offset,uint32_t size,const void * pValues) const2477     void vkCmdPushConstants( VkCommandBuffer    commandBuffer,
2478                              VkPipelineLayout   layout,
2479                              VkShaderStageFlags stageFlags,
2480                              uint32_t           offset,
2481                              uint32_t           size,
2482                              const void *       pValues ) const VULKAN_HPP_NOEXCEPT
2483     {
2484       return ::vkCmdPushConstants( commandBuffer, layout, stageFlags, offset, size, pValues );
2485     }
2486 
vkCmdBeginRenderPass(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,VkSubpassContents contents) const2487     void vkCmdBeginRenderPass( VkCommandBuffer               commandBuffer,
2488                                const VkRenderPassBeginInfo * pRenderPassBegin,
2489                                VkSubpassContents             contents ) const VULKAN_HPP_NOEXCEPT
2490     {
2491       return ::vkCmdBeginRenderPass( commandBuffer, pRenderPassBegin, contents );
2492     }
2493 
vkCmdNextSubpass(VkCommandBuffer commandBuffer,VkSubpassContents contents) const2494     void vkCmdNextSubpass( VkCommandBuffer commandBuffer, VkSubpassContents contents ) const VULKAN_HPP_NOEXCEPT
2495     {
2496       return ::vkCmdNextSubpass( commandBuffer, contents );
2497     }
2498 
vkCmdEndRenderPass(VkCommandBuffer commandBuffer) const2499     void vkCmdEndRenderPass( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
2500     {
2501       return ::vkCmdEndRenderPass( commandBuffer );
2502     }
2503 
vkCmdExecuteCommands(VkCommandBuffer commandBuffer,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers) const2504     void vkCmdExecuteCommands( VkCommandBuffer         commandBuffer,
2505                                uint32_t                commandBufferCount,
2506                                const VkCommandBuffer * pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
2507     {
2508       return ::vkCmdExecuteCommands( commandBuffer, commandBufferCount, pCommandBuffers );
2509     }
2510 
2511     //=== VK_VERSION_1_1 ===
2512 
vkEnumerateInstanceVersion(uint32_t * pApiVersion) const2513     VkResult vkEnumerateInstanceVersion( uint32_t * pApiVersion ) const VULKAN_HPP_NOEXCEPT
2514     {
2515       return ::vkEnumerateInstanceVersion( pApiVersion );
2516     }
2517 
vkBindBufferMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos) const2518     VkResult vkBindBufferMemory2( VkDevice                       device,
2519                                   uint32_t                       bindInfoCount,
2520                                   const VkBindBufferMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT
2521     {
2522       return ::vkBindBufferMemory2( device, bindInfoCount, pBindInfos );
2523     }
2524 
vkBindImageMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos) const2525     VkResult vkBindImageMemory2( VkDevice                      device,
2526                                  uint32_t                      bindInfoCount,
2527                                  const VkBindImageMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT
2528     {
2529       return ::vkBindImageMemory2( device, bindInfoCount, pBindInfos );
2530     }
2531 
vkGetDeviceGroupPeerMemoryFeatures(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures) const2532     void vkGetDeviceGroupPeerMemoryFeatures( VkDevice                   device,
2533                                              uint32_t                   heapIndex,
2534                                              uint32_t                   localDeviceIndex,
2535                                              uint32_t                   remoteDeviceIndex,
2536                                              VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT
2537     {
2538       return ::vkGetDeviceGroupPeerMemoryFeatures(
2539         device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures );
2540     }
2541 
vkCmdSetDeviceMask(VkCommandBuffer commandBuffer,uint32_t deviceMask) const2542     void vkCmdSetDeviceMask( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT
2543     {
2544       return ::vkCmdSetDeviceMask( commandBuffer, deviceMask );
2545     }
2546 
vkCmdDispatchBase(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const2547     void vkCmdDispatchBase( VkCommandBuffer commandBuffer,
2548                             uint32_t        baseGroupX,
2549                             uint32_t        baseGroupY,
2550                             uint32_t        baseGroupZ,
2551                             uint32_t        groupCountX,
2552                             uint32_t        groupCountY,
2553                             uint32_t        groupCountZ ) const VULKAN_HPP_NOEXCEPT
2554     {
2555       return ::vkCmdDispatchBase(
2556         commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
2557     }
2558 
vkEnumeratePhysicalDeviceGroups(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties) const2559     VkResult vkEnumeratePhysicalDeviceGroups( VkInstance                        instance,
2560                                               uint32_t *                        pPhysicalDeviceGroupCount,
2561                                               VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) const
2562       VULKAN_HPP_NOEXCEPT
2563     {
2564       return ::vkEnumeratePhysicalDeviceGroups( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties );
2565     }
2566 
vkGetImageMemoryRequirements2(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2567     void vkGetImageMemoryRequirements2( VkDevice                               device,
2568                                         const VkImageMemoryRequirementsInfo2 * pInfo,
2569                                         VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2570     {
2571       return ::vkGetImageMemoryRequirements2( device, pInfo, pMemoryRequirements );
2572     }
2573 
vkGetBufferMemoryRequirements2(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const2574     void vkGetBufferMemoryRequirements2( VkDevice                                device,
2575                                          const VkBufferMemoryRequirementsInfo2 * pInfo,
2576                                          VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2577     {
2578       return ::vkGetBufferMemoryRequirements2( device, pInfo, pMemoryRequirements );
2579     }
2580 
vkGetImageSparseMemoryRequirements2(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements) const2581     void vkGetImageSparseMemoryRequirements2( VkDevice                                     device,
2582                                               const VkImageSparseMemoryRequirementsInfo2 * pInfo,
2583                                               uint32_t *                         pSparseMemoryRequirementCount,
2584                                               VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) const
2585       VULKAN_HPP_NOEXCEPT
2586     {
2587       return ::vkGetImageSparseMemoryRequirements2(
2588         device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
2589     }
2590 
vkGetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures) const2591     void vkGetPhysicalDeviceFeatures2( VkPhysicalDevice            physicalDevice,
2592                                        VkPhysicalDeviceFeatures2 * pFeatures ) const VULKAN_HPP_NOEXCEPT
2593     {
2594       return ::vkGetPhysicalDeviceFeatures2( physicalDevice, pFeatures );
2595     }
2596 
vkGetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties) const2597     void vkGetPhysicalDeviceProperties2( VkPhysicalDevice              physicalDevice,
2598                                          VkPhysicalDeviceProperties2 * pProperties ) const VULKAN_HPP_NOEXCEPT
2599     {
2600       return ::vkGetPhysicalDeviceProperties2( physicalDevice, pProperties );
2601     }
2602 
vkGetPhysicalDeviceFormatProperties2(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties) const2603     void vkGetPhysicalDeviceFormatProperties2( VkPhysicalDevice      physicalDevice,
2604                                                VkFormat              format,
2605                                                VkFormatProperties2 * pFormatProperties ) const VULKAN_HPP_NOEXCEPT
2606     {
2607       return ::vkGetPhysicalDeviceFormatProperties2( physicalDevice, format, pFormatProperties );
2608     }
2609 
vkGetPhysicalDeviceImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties) const2610     VkResult vkGetPhysicalDeviceImageFormatProperties2( VkPhysicalDevice                         physicalDevice,
2611                                                         const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,
2612                                                         VkImageFormatProperties2 * pImageFormatProperties ) const
2613       VULKAN_HPP_NOEXCEPT
2614     {
2615       return ::vkGetPhysicalDeviceImageFormatProperties2( physicalDevice, pImageFormatInfo, pImageFormatProperties );
2616     }
2617 
vkGetPhysicalDeviceQueueFamilyProperties2(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties) const2618     void vkGetPhysicalDeviceQueueFamilyProperties2( VkPhysicalDevice           physicalDevice,
2619                                                     uint32_t *                 pQueueFamilyPropertyCount,
2620                                                     VkQueueFamilyProperties2 * pQueueFamilyProperties ) const
2621       VULKAN_HPP_NOEXCEPT
2622     {
2623       return ::vkGetPhysicalDeviceQueueFamilyProperties2(
2624         physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
2625     }
2626 
vkGetPhysicalDeviceMemoryProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties) const2627     void vkGetPhysicalDeviceMemoryProperties2(
2628       VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
2629     {
2630       return ::vkGetPhysicalDeviceMemoryProperties2( physicalDevice, pMemoryProperties );
2631     }
2632 
vkGetPhysicalDeviceSparseImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties) const2633     void vkGetPhysicalDeviceSparseImageFormatProperties2( VkPhysicalDevice                               physicalDevice,
2634                                                           const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,
2635                                                           uint32_t *                                     pPropertyCount,
2636                                                           VkSparseImageFormatProperties2 * pProperties ) const
2637       VULKAN_HPP_NOEXCEPT
2638     {
2639       return ::vkGetPhysicalDeviceSparseImageFormatProperties2(
2640         physicalDevice, pFormatInfo, pPropertyCount, pProperties );
2641     }
2642 
vkTrimCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags) const2643     void vkTrimCommandPool( VkDevice               device,
2644                             VkCommandPool          commandPool,
2645                             VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT
2646     {
2647       return ::vkTrimCommandPool( device, commandPool, flags );
2648     }
2649 
vkGetDeviceQueue2(VkDevice device,const VkDeviceQueueInfo2 * pQueueInfo,VkQueue * pQueue) const2650     void vkGetDeviceQueue2( VkDevice                   device,
2651                             const VkDeviceQueueInfo2 * pQueueInfo,
2652                             VkQueue *                  pQueue ) const VULKAN_HPP_NOEXCEPT
2653     {
2654       return ::vkGetDeviceQueue2( device, pQueueInfo, pQueue );
2655     }
2656 
vkCreateSamplerYcbcrConversion(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion) const2657     VkResult vkCreateSamplerYcbcrConversion( VkDevice                                   device,
2658                                              const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,
2659                                              const VkAllocationCallbacks *              pAllocator,
2660                                              VkSamplerYcbcrConversion * pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT
2661     {
2662       return ::vkCreateSamplerYcbcrConversion( device, pCreateInfo, pAllocator, pYcbcrConversion );
2663     }
2664 
vkDestroySamplerYcbcrConversion(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator) const2665     void vkDestroySamplerYcbcrConversion( VkDevice                      device,
2666                                           VkSamplerYcbcrConversion      ycbcrConversion,
2667                                           const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
2668     {
2669       return ::vkDestroySamplerYcbcrConversion( device, ycbcrConversion, pAllocator );
2670     }
2671 
vkCreateDescriptorUpdateTemplate(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate) const2672     VkResult vkCreateDescriptorUpdateTemplate( VkDevice                                     device,
2673                                                const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,
2674                                                const VkAllocationCallbacks *                pAllocator,
2675                                                VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) const
2676       VULKAN_HPP_NOEXCEPT
2677     {
2678       return ::vkCreateDescriptorUpdateTemplate( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate );
2679     }
2680 
vkDestroyDescriptorUpdateTemplate(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator) const2681     void vkDestroyDescriptorUpdateTemplate( VkDevice                      device,
2682                                             VkDescriptorUpdateTemplate    descriptorUpdateTemplate,
2683                                             const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
2684     {
2685       return ::vkDestroyDescriptorUpdateTemplate( device, descriptorUpdateTemplate, pAllocator );
2686     }
2687 
vkUpdateDescriptorSetWithTemplate(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData) const2688     void vkUpdateDescriptorSetWithTemplate( VkDevice                   device,
2689                                             VkDescriptorSet            descriptorSet,
2690                                             VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2691                                             const void *               pData ) const VULKAN_HPP_NOEXCEPT
2692     {
2693       return ::vkUpdateDescriptorSetWithTemplate( device, descriptorSet, descriptorUpdateTemplate, pData );
2694     }
2695 
vkGetPhysicalDeviceExternalBufferProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties) const2696     void vkGetPhysicalDeviceExternalBufferProperties( VkPhysicalDevice                           physicalDevice,
2697                                                       const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,
2698                                                       VkExternalBufferProperties * pExternalBufferProperties ) const
2699       VULKAN_HPP_NOEXCEPT
2700     {
2701       return ::vkGetPhysicalDeviceExternalBufferProperties(
2702         physicalDevice, pExternalBufferInfo, pExternalBufferProperties );
2703     }
2704 
vkGetPhysicalDeviceExternalFenceProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties) const2705     void vkGetPhysicalDeviceExternalFenceProperties( VkPhysicalDevice                          physicalDevice,
2706                                                      const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,
2707                                                      VkExternalFenceProperties * pExternalFenceProperties ) const
2708       VULKAN_HPP_NOEXCEPT
2709     {
2710       return ::vkGetPhysicalDeviceExternalFenceProperties(
2711         physicalDevice, pExternalFenceInfo, pExternalFenceProperties );
2712     }
2713 
vkGetPhysicalDeviceExternalSemaphoreProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties) const2714     void vkGetPhysicalDeviceExternalSemaphoreProperties(
2715       VkPhysicalDevice                              physicalDevice,
2716       const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,
2717       VkExternalSemaphoreProperties *               pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT
2718     {
2719       return ::vkGetPhysicalDeviceExternalSemaphoreProperties(
2720         physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties );
2721     }
2722 
vkGetDescriptorSetLayoutSupport(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport) const2723     void vkGetDescriptorSetLayoutSupport( VkDevice                                device,
2724                                           const VkDescriptorSetLayoutCreateInfo * pCreateInfo,
2725                                           VkDescriptorSetLayoutSupport *          pSupport ) const VULKAN_HPP_NOEXCEPT
2726     {
2727       return ::vkGetDescriptorSetLayoutSupport( device, pCreateInfo, pSupport );
2728     }
2729 
2730     //=== VK_VERSION_1_2 ===
2731 
vkCmdDrawIndirectCount(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const2732     void vkCmdDrawIndirectCount( VkCommandBuffer commandBuffer,
2733                                  VkBuffer        buffer,
2734                                  VkDeviceSize    offset,
2735                                  VkBuffer        countBuffer,
2736                                  VkDeviceSize    countBufferOffset,
2737                                  uint32_t        maxDrawCount,
2738                                  uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
2739     {
2740       return ::vkCmdDrawIndirectCount(
2741         commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
2742     }
2743 
vkCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const2744     void vkCmdDrawIndexedIndirectCount( VkCommandBuffer commandBuffer,
2745                                         VkBuffer        buffer,
2746                                         VkDeviceSize    offset,
2747                                         VkBuffer        countBuffer,
2748                                         VkDeviceSize    countBufferOffset,
2749                                         uint32_t        maxDrawCount,
2750                                         uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
2751     {
2752       return ::vkCmdDrawIndexedIndirectCount(
2753         commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
2754     }
2755 
vkCreateRenderPass2(VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass) const2756     VkResult vkCreateRenderPass2( VkDevice                        device,
2757                                   const VkRenderPassCreateInfo2 * pCreateInfo,
2758                                   const VkAllocationCallbacks *   pAllocator,
2759                                   VkRenderPass *                  pRenderPass ) const VULKAN_HPP_NOEXCEPT
2760     {
2761       return ::vkCreateRenderPass2( device, pCreateInfo, pAllocator, pRenderPass );
2762     }
2763 
vkCmdBeginRenderPass2(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo) const2764     void vkCmdBeginRenderPass2( VkCommandBuffer               commandBuffer,
2765                                 const VkRenderPassBeginInfo * pRenderPassBegin,
2766                                 const VkSubpassBeginInfo *    pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT
2767     {
2768       return ::vkCmdBeginRenderPass2( commandBuffer, pRenderPassBegin, pSubpassBeginInfo );
2769     }
2770 
vkCmdNextSubpass2(VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo) const2771     void vkCmdNextSubpass2( VkCommandBuffer            commandBuffer,
2772                             const VkSubpassBeginInfo * pSubpassBeginInfo,
2773                             const VkSubpassEndInfo *   pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
2774     {
2775       return ::vkCmdNextSubpass2( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo );
2776     }
2777 
vkCmdEndRenderPass2(VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo) const2778     void vkCmdEndRenderPass2( VkCommandBuffer          commandBuffer,
2779                               const VkSubpassEndInfo * pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
2780     {
2781       return ::vkCmdEndRenderPass2( commandBuffer, pSubpassEndInfo );
2782     }
2783 
vkResetQueryPool(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const2784     void vkResetQueryPool( VkDevice    device,
2785                            VkQueryPool queryPool,
2786                            uint32_t    firstQuery,
2787                            uint32_t    queryCount ) const VULKAN_HPP_NOEXCEPT
2788     {
2789       return ::vkResetQueryPool( device, queryPool, firstQuery, queryCount );
2790     }
2791 
2792     VkResult
vkGetSemaphoreCounterValue(VkDevice device,VkSemaphore semaphore,uint64_t * pValue) const2793       vkGetSemaphoreCounterValue( VkDevice device, VkSemaphore semaphore, uint64_t * pValue ) const VULKAN_HPP_NOEXCEPT
2794     {
2795       return ::vkGetSemaphoreCounterValue( device, semaphore, pValue );
2796     }
2797 
vkWaitSemaphores(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout) const2798     VkResult vkWaitSemaphores( VkDevice                    device,
2799                                const VkSemaphoreWaitInfo * pWaitInfo,
2800                                uint64_t                    timeout ) const VULKAN_HPP_NOEXCEPT
2801     {
2802       return ::vkWaitSemaphores( device, pWaitInfo, timeout );
2803     }
2804 
vkSignalSemaphore(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo) const2805     VkResult vkSignalSemaphore( VkDevice device, const VkSemaphoreSignalInfo * pSignalInfo ) const VULKAN_HPP_NOEXCEPT
2806     {
2807       return ::vkSignalSemaphore( device, pSignalInfo );
2808     }
2809 
vkGetBufferDeviceAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2810     VkDeviceAddress vkGetBufferDeviceAddress( VkDevice                          device,
2811                                               const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
2812     {
2813       return ::vkGetBufferDeviceAddress( device, pInfo );
2814     }
2815 
vkGetBufferOpaqueCaptureAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const2816     uint64_t vkGetBufferOpaqueCaptureAddress( VkDevice                          device,
2817                                               const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
2818     {
2819       return ::vkGetBufferOpaqueCaptureAddress( device, pInfo );
2820     }
2821 
vkGetDeviceMemoryOpaqueCaptureAddress(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo) const2822     uint64_t vkGetDeviceMemoryOpaqueCaptureAddress(
2823       VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
2824     {
2825       return ::vkGetDeviceMemoryOpaqueCaptureAddress( device, pInfo );
2826     }
2827 
2828     //=== VK_KHR_surface ===
2829 
vkDestroySurfaceKHR(VkInstance instance,VkSurfaceKHR surface,const VkAllocationCallbacks * pAllocator) const2830     void vkDestroySurfaceKHR( VkInstance                    instance,
2831                               VkSurfaceKHR                  surface,
2832                               const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
2833     {
2834       return ::vkDestroySurfaceKHR( instance, surface, pAllocator );
2835     }
2836 
vkGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,VkSurfaceKHR surface,VkBool32 * pSupported) const2837     VkResult vkGetPhysicalDeviceSurfaceSupportKHR( VkPhysicalDevice physicalDevice,
2838                                                    uint32_t         queueFamilyIndex,
2839                                                    VkSurfaceKHR     surface,
2840                                                    VkBool32 *       pSupported ) const VULKAN_HPP_NOEXCEPT
2841     {
2842       return ::vkGetPhysicalDeviceSurfaceSupportKHR( physicalDevice, queueFamilyIndex, surface, pSupported );
2843     }
2844 
vkGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilitiesKHR * pSurfaceCapabilities) const2845     VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR( VkPhysicalDevice           physicalDevice,
2846                                                         VkSurfaceKHR               surface,
2847                                                         VkSurfaceCapabilitiesKHR * pSurfaceCapabilities ) const
2848       VULKAN_HPP_NOEXCEPT
2849     {
2850       return ::vkGetPhysicalDeviceSurfaceCapabilitiesKHR( physicalDevice, surface, pSurfaceCapabilities );
2851     }
2852 
vkGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pSurfaceFormatCount,VkSurfaceFormatKHR * pSurfaceFormats) const2853     VkResult vkGetPhysicalDeviceSurfaceFormatsKHR( VkPhysicalDevice     physicalDevice,
2854                                                    VkSurfaceKHR         surface,
2855                                                    uint32_t *           pSurfaceFormatCount,
2856                                                    VkSurfaceFormatKHR * pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT
2857     {
2858       return ::vkGetPhysicalDeviceSurfaceFormatsKHR( physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats );
2859     }
2860 
vkGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pPresentModeCount,VkPresentModeKHR * pPresentModes) const2861     VkResult vkGetPhysicalDeviceSurfacePresentModesKHR( VkPhysicalDevice   physicalDevice,
2862                                                         VkSurfaceKHR       surface,
2863                                                         uint32_t *         pPresentModeCount,
2864                                                         VkPresentModeKHR * pPresentModes ) const VULKAN_HPP_NOEXCEPT
2865     {
2866       return ::vkGetPhysicalDeviceSurfacePresentModesKHR( physicalDevice, surface, pPresentModeCount, pPresentModes );
2867     }
2868 
2869     //=== VK_KHR_swapchain ===
2870 
vkCreateSwapchainKHR(VkDevice device,const VkSwapchainCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchain) const2871     VkResult vkCreateSwapchainKHR( VkDevice                         device,
2872                                    const VkSwapchainCreateInfoKHR * pCreateInfo,
2873                                    const VkAllocationCallbacks *    pAllocator,
2874                                    VkSwapchainKHR *                 pSwapchain ) const VULKAN_HPP_NOEXCEPT
2875     {
2876       return ::vkCreateSwapchainKHR( device, pCreateInfo, pAllocator, pSwapchain );
2877     }
2878 
vkDestroySwapchainKHR(VkDevice device,VkSwapchainKHR swapchain,const VkAllocationCallbacks * pAllocator) const2879     void vkDestroySwapchainKHR( VkDevice                      device,
2880                                 VkSwapchainKHR                swapchain,
2881                                 const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
2882     {
2883       return ::vkDestroySwapchainKHR( device, swapchain, pAllocator );
2884     }
2885 
vkGetSwapchainImagesKHR(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VkImage * pSwapchainImages) const2886     VkResult vkGetSwapchainImagesKHR( VkDevice       device,
2887                                       VkSwapchainKHR swapchain,
2888                                       uint32_t *     pSwapchainImageCount,
2889                                       VkImage *      pSwapchainImages ) const VULKAN_HPP_NOEXCEPT
2890     {
2891       return ::vkGetSwapchainImagesKHR( device, swapchain, pSwapchainImageCount, pSwapchainImages );
2892     }
2893 
vkAcquireNextImageKHR(VkDevice device,VkSwapchainKHR swapchain,uint64_t timeout,VkSemaphore semaphore,VkFence fence,uint32_t * pImageIndex) const2894     VkResult vkAcquireNextImageKHR( VkDevice       device,
2895                                     VkSwapchainKHR swapchain,
2896                                     uint64_t       timeout,
2897                                     VkSemaphore    semaphore,
2898                                     VkFence        fence,
2899                                     uint32_t *     pImageIndex ) const VULKAN_HPP_NOEXCEPT
2900     {
2901       return ::vkAcquireNextImageKHR( device, swapchain, timeout, semaphore, fence, pImageIndex );
2902     }
2903 
vkQueuePresentKHR(VkQueue queue,const VkPresentInfoKHR * pPresentInfo) const2904     VkResult vkQueuePresentKHR( VkQueue queue, const VkPresentInfoKHR * pPresentInfo ) const VULKAN_HPP_NOEXCEPT
2905     {
2906       return ::vkQueuePresentKHR( queue, pPresentInfo );
2907     }
2908 
vkGetDeviceGroupPresentCapabilitiesKHR(VkDevice device,VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities) const2909     VkResult vkGetDeviceGroupPresentCapabilitiesKHR(
2910       VkDevice device, VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities ) const VULKAN_HPP_NOEXCEPT
2911     {
2912       return ::vkGetDeviceGroupPresentCapabilitiesKHR( device, pDeviceGroupPresentCapabilities );
2913     }
2914 
vkGetDeviceGroupSurfacePresentModesKHR(VkDevice device,VkSurfaceKHR surface,VkDeviceGroupPresentModeFlagsKHR * pModes) const2915     VkResult vkGetDeviceGroupSurfacePresentModesKHR(
2916       VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR * pModes ) const VULKAN_HPP_NOEXCEPT
2917     {
2918       return ::vkGetDeviceGroupSurfacePresentModesKHR( device, surface, pModes );
2919     }
2920 
vkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pRectCount,VkRect2D * pRects) const2921     VkResult vkGetPhysicalDevicePresentRectanglesKHR( VkPhysicalDevice physicalDevice,
2922                                                       VkSurfaceKHR     surface,
2923                                                       uint32_t *       pRectCount,
2924                                                       VkRect2D *       pRects ) const VULKAN_HPP_NOEXCEPT
2925     {
2926       return ::vkGetPhysicalDevicePresentRectanglesKHR( physicalDevice, surface, pRectCount, pRects );
2927     }
2928 
vkAcquireNextImage2KHR(VkDevice device,const VkAcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex) const2929     VkResult vkAcquireNextImage2KHR( VkDevice                          device,
2930                                      const VkAcquireNextImageInfoKHR * pAcquireInfo,
2931                                      uint32_t *                        pImageIndex ) const VULKAN_HPP_NOEXCEPT
2932     {
2933       return ::vkAcquireNextImage2KHR( device, pAcquireInfo, pImageIndex );
2934     }
2935 
2936     //=== VK_KHR_display ===
2937 
vkGetPhysicalDeviceDisplayPropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPropertiesKHR * pProperties) const2938     VkResult vkGetPhysicalDeviceDisplayPropertiesKHR( VkPhysicalDevice         physicalDevice,
2939                                                       uint32_t *               pPropertyCount,
2940                                                       VkDisplayPropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT
2941     {
2942       return ::vkGetPhysicalDeviceDisplayPropertiesKHR( physicalDevice, pPropertyCount, pProperties );
2943     }
2944 
vkGetPhysicalDeviceDisplayPlanePropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPlanePropertiesKHR * pProperties) const2945     VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR( VkPhysicalDevice              physicalDevice,
2946                                                            uint32_t *                    pPropertyCount,
2947                                                            VkDisplayPlanePropertiesKHR * pProperties ) const
2948       VULKAN_HPP_NOEXCEPT
2949     {
2950       return ::vkGetPhysicalDeviceDisplayPlanePropertiesKHR( physicalDevice, pPropertyCount, pProperties );
2951     }
2952 
vkGetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDevice physicalDevice,uint32_t planeIndex,uint32_t * pDisplayCount,VkDisplayKHR * pDisplays) const2953     VkResult vkGetDisplayPlaneSupportedDisplaysKHR( VkPhysicalDevice physicalDevice,
2954                                                     uint32_t         planeIndex,
2955                                                     uint32_t *       pDisplayCount,
2956                                                     VkDisplayKHR *   pDisplays ) const VULKAN_HPP_NOEXCEPT
2957     {
2958       return ::vkGetDisplayPlaneSupportedDisplaysKHR( physicalDevice, planeIndex, pDisplayCount, pDisplays );
2959     }
2960 
vkGetDisplayModePropertiesKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,uint32_t * pPropertyCount,VkDisplayModePropertiesKHR * pProperties) const2961     VkResult vkGetDisplayModePropertiesKHR( VkPhysicalDevice             physicalDevice,
2962                                             VkDisplayKHR                 display,
2963                                             uint32_t *                   pPropertyCount,
2964                                             VkDisplayModePropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT
2965     {
2966       return ::vkGetDisplayModePropertiesKHR( physicalDevice, display, pPropertyCount, pProperties );
2967     }
2968 
vkCreateDisplayModeKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,const VkDisplayModeCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDisplayModeKHR * pMode) const2969     VkResult vkCreateDisplayModeKHR( VkPhysicalDevice                   physicalDevice,
2970                                      VkDisplayKHR                       display,
2971                                      const VkDisplayModeCreateInfoKHR * pCreateInfo,
2972                                      const VkAllocationCallbacks *      pAllocator,
2973                                      VkDisplayModeKHR *                 pMode ) const VULKAN_HPP_NOEXCEPT
2974     {
2975       return ::vkCreateDisplayModeKHR( physicalDevice, display, pCreateInfo, pAllocator, pMode );
2976     }
2977 
vkGetDisplayPlaneCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkDisplayModeKHR mode,uint32_t planeIndex,VkDisplayPlaneCapabilitiesKHR * pCapabilities) const2978     VkResult vkGetDisplayPlaneCapabilitiesKHR( VkPhysicalDevice                physicalDevice,
2979                                                VkDisplayModeKHR                mode,
2980                                                uint32_t                        planeIndex,
2981                                                VkDisplayPlaneCapabilitiesKHR * pCapabilities ) const VULKAN_HPP_NOEXCEPT
2982     {
2983       return ::vkGetDisplayPlaneCapabilitiesKHR( physicalDevice, mode, planeIndex, pCapabilities );
2984     }
2985 
vkCreateDisplayPlaneSurfaceKHR(VkInstance instance,const VkDisplaySurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const2986     VkResult vkCreateDisplayPlaneSurfaceKHR( VkInstance                            instance,
2987                                              const VkDisplaySurfaceCreateInfoKHR * pCreateInfo,
2988                                              const VkAllocationCallbacks *         pAllocator,
2989                                              VkSurfaceKHR *                        pSurface ) const VULKAN_HPP_NOEXCEPT
2990     {
2991       return ::vkCreateDisplayPlaneSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2992     }
2993 
2994     //=== VK_KHR_display_swapchain ===
2995 
vkCreateSharedSwapchainsKHR(VkDevice device,uint32_t swapchainCount,const VkSwapchainCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchains) const2996     VkResult vkCreateSharedSwapchainsKHR( VkDevice                         device,
2997                                           uint32_t                         swapchainCount,
2998                                           const VkSwapchainCreateInfoKHR * pCreateInfos,
2999                                           const VkAllocationCallbacks *    pAllocator,
3000                                           VkSwapchainKHR *                 pSwapchains ) const VULKAN_HPP_NOEXCEPT
3001     {
3002       return ::vkCreateSharedSwapchainsKHR( device, swapchainCount, pCreateInfos, pAllocator, pSwapchains );
3003     }
3004 
3005 #  if defined( VK_USE_PLATFORM_XLIB_KHR )
3006     //=== VK_KHR_xlib_surface ===
3007 
vkCreateXlibSurfaceKHR(VkInstance instance,const VkXlibSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const3008     VkResult vkCreateXlibSurfaceKHR( VkInstance                         instance,
3009                                      const VkXlibSurfaceCreateInfoKHR * pCreateInfo,
3010                                      const VkAllocationCallbacks *      pAllocator,
3011                                      VkSurfaceKHR *                     pSurface ) const VULKAN_HPP_NOEXCEPT
3012     {
3013       return ::vkCreateXlibSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
3014     }
3015 
vkGetPhysicalDeviceXlibPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,Display * dpy,VisualID visualID) const3016     VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR( VkPhysicalDevice physicalDevice,
3017                                                             uint32_t         queueFamilyIndex,
3018                                                             Display *        dpy,
3019                                                             VisualID         visualID ) const VULKAN_HPP_NOEXCEPT
3020     {
3021       return ::vkGetPhysicalDeviceXlibPresentationSupportKHR( physicalDevice, queueFamilyIndex, dpy, visualID );
3022     }
3023 #  endif /*VK_USE_PLATFORM_XLIB_KHR*/
3024 
3025 #  if defined( VK_USE_PLATFORM_XCB_KHR )
3026     //=== VK_KHR_xcb_surface ===
3027 
vkCreateXcbSurfaceKHR(VkInstance instance,const VkXcbSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const3028     VkResult vkCreateXcbSurfaceKHR( VkInstance                        instance,
3029                                     const VkXcbSurfaceCreateInfoKHR * pCreateInfo,
3030                                     const VkAllocationCallbacks *     pAllocator,
3031                                     VkSurfaceKHR *                    pSurface ) const VULKAN_HPP_NOEXCEPT
3032     {
3033       return ::vkCreateXcbSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
3034     }
3035 
vkGetPhysicalDeviceXcbPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,xcb_connection_t * connection,xcb_visualid_t visual_id) const3036     VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR( VkPhysicalDevice   physicalDevice,
3037                                                            uint32_t           queueFamilyIndex,
3038                                                            xcb_connection_t * connection,
3039                                                            xcb_visualid_t     visual_id ) const VULKAN_HPP_NOEXCEPT
3040     {
3041       return ::vkGetPhysicalDeviceXcbPresentationSupportKHR( physicalDevice, queueFamilyIndex, connection, visual_id );
3042     }
3043 #  endif /*VK_USE_PLATFORM_XCB_KHR*/
3044 
3045 #  if defined( VK_USE_PLATFORM_WAYLAND_KHR )
3046     //=== VK_KHR_wayland_surface ===
3047 
vkCreateWaylandSurfaceKHR(VkInstance instance,const VkWaylandSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const3048     VkResult vkCreateWaylandSurfaceKHR( VkInstance                            instance,
3049                                         const VkWaylandSurfaceCreateInfoKHR * pCreateInfo,
3050                                         const VkAllocationCallbacks *         pAllocator,
3051                                         VkSurfaceKHR *                        pSurface ) const VULKAN_HPP_NOEXCEPT
3052     {
3053       return ::vkCreateWaylandSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
3054     }
3055 
vkGetPhysicalDeviceWaylandPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,struct wl_display * display) const3056     VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR( VkPhysicalDevice    physicalDevice,
3057                                                                uint32_t            queueFamilyIndex,
3058                                                                struct wl_display * display ) const VULKAN_HPP_NOEXCEPT
3059     {
3060       return ::vkGetPhysicalDeviceWaylandPresentationSupportKHR( physicalDevice, queueFamilyIndex, display );
3061     }
3062 #  endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
3063 
3064 #  if defined( VK_USE_PLATFORM_ANDROID_KHR )
3065     //=== VK_KHR_android_surface ===
3066 
vkCreateAndroidSurfaceKHR(VkInstance instance,const VkAndroidSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const3067     VkResult vkCreateAndroidSurfaceKHR( VkInstance                            instance,
3068                                         const VkAndroidSurfaceCreateInfoKHR * pCreateInfo,
3069                                         const VkAllocationCallbacks *         pAllocator,
3070                                         VkSurfaceKHR *                        pSurface ) const VULKAN_HPP_NOEXCEPT
3071     {
3072       return ::vkCreateAndroidSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
3073     }
3074 #  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
3075 
3076 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
3077     //=== VK_KHR_win32_surface ===
3078 
vkCreateWin32SurfaceKHR(VkInstance instance,const VkWin32SurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const3079     VkResult vkCreateWin32SurfaceKHR( VkInstance                          instance,
3080                                       const VkWin32SurfaceCreateInfoKHR * pCreateInfo,
3081                                       const VkAllocationCallbacks *       pAllocator,
3082                                       VkSurfaceKHR *                      pSurface ) const VULKAN_HPP_NOEXCEPT
3083     {
3084       return ::vkCreateWin32SurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
3085     }
3086 
vkGetPhysicalDeviceWin32PresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex) const3087     VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR( VkPhysicalDevice physicalDevice,
3088                                                              uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT
3089     {
3090       return ::vkGetPhysicalDeviceWin32PresentationSupportKHR( physicalDevice, queueFamilyIndex );
3091     }
3092 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
3093 
3094     //=== VK_EXT_debug_report ===
3095 
vkCreateDebugReportCallbackEXT(VkInstance instance,const VkDebugReportCallbackCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugReportCallbackEXT * pCallback) const3096     VkResult vkCreateDebugReportCallbackEXT( VkInstance                                 instance,
3097                                              const VkDebugReportCallbackCreateInfoEXT * pCreateInfo,
3098                                              const VkAllocationCallbacks *              pAllocator,
3099                                              VkDebugReportCallbackEXT * pCallback ) const VULKAN_HPP_NOEXCEPT
3100     {
3101       return ::vkCreateDebugReportCallbackEXT( instance, pCreateInfo, pAllocator, pCallback );
3102     }
3103 
vkDestroyDebugReportCallbackEXT(VkInstance instance,VkDebugReportCallbackEXT callback,const VkAllocationCallbacks * pAllocator) const3104     void vkDestroyDebugReportCallbackEXT( VkInstance                    instance,
3105                                           VkDebugReportCallbackEXT      callback,
3106                                           const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
3107     {
3108       return ::vkDestroyDebugReportCallbackEXT( instance, callback, pAllocator );
3109     }
3110 
vkDebugReportMessageEXT(VkInstance instance,VkDebugReportFlagsEXT flags,VkDebugReportObjectTypeEXT objectType,uint64_t object,size_t location,int32_t messageCode,const char * pLayerPrefix,const char * pMessage) const3111     void vkDebugReportMessageEXT( VkInstance                 instance,
3112                                   VkDebugReportFlagsEXT      flags,
3113                                   VkDebugReportObjectTypeEXT objectType,
3114                                   uint64_t                   object,
3115                                   size_t                     location,
3116                                   int32_t                    messageCode,
3117                                   const char *               pLayerPrefix,
3118                                   const char *               pMessage ) const VULKAN_HPP_NOEXCEPT
3119     {
3120       return ::vkDebugReportMessageEXT(
3121         instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage );
3122     }
3123 
3124     //=== VK_EXT_debug_marker ===
3125 
vkDebugMarkerSetObjectTagEXT(VkDevice device,const VkDebugMarkerObjectTagInfoEXT * pTagInfo) const3126     VkResult vkDebugMarkerSetObjectTagEXT( VkDevice                              device,
3127                                            const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) const VULKAN_HPP_NOEXCEPT
3128     {
3129       return ::vkDebugMarkerSetObjectTagEXT( device, pTagInfo );
3130     }
3131 
vkDebugMarkerSetObjectNameEXT(VkDevice device,const VkDebugMarkerObjectNameInfoEXT * pNameInfo) const3132     VkResult vkDebugMarkerSetObjectNameEXT( VkDevice                               device,
3133                                             const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) const VULKAN_HPP_NOEXCEPT
3134     {
3135       return ::vkDebugMarkerSetObjectNameEXT( device, pNameInfo );
3136     }
3137 
vkCmdDebugMarkerBeginEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo) const3138     void vkCmdDebugMarkerBeginEXT( VkCommandBuffer                    commandBuffer,
3139                                    const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
3140     {
3141       return ::vkCmdDebugMarkerBeginEXT( commandBuffer, pMarkerInfo );
3142     }
3143 
vkCmdDebugMarkerEndEXT(VkCommandBuffer commandBuffer) const3144     void vkCmdDebugMarkerEndEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
3145     {
3146       return ::vkCmdDebugMarkerEndEXT( commandBuffer );
3147     }
3148 
vkCmdDebugMarkerInsertEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo) const3149     void vkCmdDebugMarkerInsertEXT( VkCommandBuffer                    commandBuffer,
3150                                     const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
3151     {
3152       return ::vkCmdDebugMarkerInsertEXT( commandBuffer, pMarkerInfo );
3153     }
3154 
3155 #  if defined( VK_ENABLE_BETA_EXTENSIONS )
3156     //=== VK_KHR_video_queue ===
3157 
vkGetPhysicalDeviceVideoCapabilitiesKHR(VkPhysicalDevice physicalDevice,const VkVideoProfileKHR * pVideoProfile,VkVideoCapabilitiesKHR * pCapabilities) const3158     VkResult vkGetPhysicalDeviceVideoCapabilitiesKHR( VkPhysicalDevice          physicalDevice,
3159                                                       const VkVideoProfileKHR * pVideoProfile,
3160                                                       VkVideoCapabilitiesKHR * pCapabilities ) const VULKAN_HPP_NOEXCEPT
3161     {
3162       return ::vkGetPhysicalDeviceVideoCapabilitiesKHR( physicalDevice, pVideoProfile, pCapabilities );
3163     }
3164 
vkGetPhysicalDeviceVideoFormatPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo,uint32_t * pVideoFormatPropertyCount,VkVideoFormatPropertiesKHR * pVideoFormatProperties) const3165     VkResult vkGetPhysicalDeviceVideoFormatPropertiesKHR( VkPhysicalDevice                           physicalDevice,
3166                                                           const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo,
3167                                                           uint32_t *                   pVideoFormatPropertyCount,
3168                                                           VkVideoFormatPropertiesKHR * pVideoFormatProperties ) const
3169       VULKAN_HPP_NOEXCEPT
3170     {
3171       return ::vkGetPhysicalDeviceVideoFormatPropertiesKHR(
3172         physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties );
3173     }
3174 
vkCreateVideoSessionKHR(VkDevice device,const VkVideoSessionCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkVideoSessionKHR * pVideoSession) const3175     VkResult vkCreateVideoSessionKHR( VkDevice                            device,
3176                                       const VkVideoSessionCreateInfoKHR * pCreateInfo,
3177                                       const VkAllocationCallbacks *       pAllocator,
3178                                       VkVideoSessionKHR *                 pVideoSession ) const VULKAN_HPP_NOEXCEPT
3179     {
3180       return ::vkCreateVideoSessionKHR( device, pCreateInfo, pAllocator, pVideoSession );
3181     }
3182 
vkDestroyVideoSessionKHR(VkDevice device,VkVideoSessionKHR videoSession,const VkAllocationCallbacks * pAllocator) const3183     void vkDestroyVideoSessionKHR( VkDevice                      device,
3184                                    VkVideoSessionKHR             videoSession,
3185                                    const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
3186     {
3187       return ::vkDestroyVideoSessionKHR( device, videoSession, pAllocator );
3188     }
3189 
vkGetVideoSessionMemoryRequirementsKHR(VkDevice device,VkVideoSessionKHR videoSession,uint32_t * pVideoSessionMemoryRequirementsCount,VkVideoGetMemoryPropertiesKHR * pVideoSessionMemoryRequirements) const3190     VkResult vkGetVideoSessionMemoryRequirementsKHR(
3191       VkDevice                        device,
3192       VkVideoSessionKHR               videoSession,
3193       uint32_t *                      pVideoSessionMemoryRequirementsCount,
3194       VkVideoGetMemoryPropertiesKHR * pVideoSessionMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
3195     {
3196       return ::vkGetVideoSessionMemoryRequirementsKHR(
3197         device, videoSession, pVideoSessionMemoryRequirementsCount, pVideoSessionMemoryRequirements );
3198     }
3199 
3200     VkResult
vkBindVideoSessionMemoryKHR(VkDevice device,VkVideoSessionKHR videoSession,uint32_t videoSessionBindMemoryCount,const VkVideoBindMemoryKHR * pVideoSessionBindMemories) const3201       vkBindVideoSessionMemoryKHR( VkDevice                     device,
3202                                    VkVideoSessionKHR            videoSession,
3203                                    uint32_t                     videoSessionBindMemoryCount,
3204                                    const VkVideoBindMemoryKHR * pVideoSessionBindMemories ) const VULKAN_HPP_NOEXCEPT
3205     {
3206       return ::vkBindVideoSessionMemoryKHR(
3207         device, videoSession, videoSessionBindMemoryCount, pVideoSessionBindMemories );
3208     }
3209 
vkCreateVideoSessionParametersKHR(VkDevice device,const VkVideoSessionParametersCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkVideoSessionParametersKHR * pVideoSessionParameters) const3210     VkResult vkCreateVideoSessionParametersKHR( VkDevice                                      device,
3211                                                 const VkVideoSessionParametersCreateInfoKHR * pCreateInfo,
3212                                                 const VkAllocationCallbacks *                 pAllocator,
3213                                                 VkVideoSessionParametersKHR * pVideoSessionParameters ) const
3214       VULKAN_HPP_NOEXCEPT
3215     {
3216       return ::vkCreateVideoSessionParametersKHR( device, pCreateInfo, pAllocator, pVideoSessionParameters );
3217     }
3218 
vkUpdateVideoSessionParametersKHR(VkDevice device,VkVideoSessionParametersKHR videoSessionParameters,const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo) const3219     VkResult vkUpdateVideoSessionParametersKHR( VkDevice                                      device,
3220                                                 VkVideoSessionParametersKHR                   videoSessionParameters,
3221                                                 const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo ) const
3222       VULKAN_HPP_NOEXCEPT
3223     {
3224       return ::vkUpdateVideoSessionParametersKHR( device, videoSessionParameters, pUpdateInfo );
3225     }
3226 
vkDestroyVideoSessionParametersKHR(VkDevice device,VkVideoSessionParametersKHR videoSessionParameters,const VkAllocationCallbacks * pAllocator) const3227     void vkDestroyVideoSessionParametersKHR( VkDevice                      device,
3228                                              VkVideoSessionParametersKHR   videoSessionParameters,
3229                                              const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
3230     {
3231       return ::vkDestroyVideoSessionParametersKHR( device, videoSessionParameters, pAllocator );
3232     }
3233 
vkCmdBeginVideoCodingKHR(VkCommandBuffer commandBuffer,const VkVideoBeginCodingInfoKHR * pBeginInfo) const3234     void vkCmdBeginVideoCodingKHR( VkCommandBuffer                   commandBuffer,
3235                                    const VkVideoBeginCodingInfoKHR * pBeginInfo ) const VULKAN_HPP_NOEXCEPT
3236     {
3237       return ::vkCmdBeginVideoCodingKHR( commandBuffer, pBeginInfo );
3238     }
3239 
vkCmdEndVideoCodingKHR(VkCommandBuffer commandBuffer,const VkVideoEndCodingInfoKHR * pEndCodingInfo) const3240     void vkCmdEndVideoCodingKHR( VkCommandBuffer                 commandBuffer,
3241                                  const VkVideoEndCodingInfoKHR * pEndCodingInfo ) const VULKAN_HPP_NOEXCEPT
3242     {
3243       return ::vkCmdEndVideoCodingKHR( commandBuffer, pEndCodingInfo );
3244     }
3245 
vkCmdControlVideoCodingKHR(VkCommandBuffer commandBuffer,const VkVideoCodingControlInfoKHR * pCodingControlInfo) const3246     void vkCmdControlVideoCodingKHR( VkCommandBuffer                     commandBuffer,
3247                                      const VkVideoCodingControlInfoKHR * pCodingControlInfo ) const VULKAN_HPP_NOEXCEPT
3248     {
3249       return ::vkCmdControlVideoCodingKHR( commandBuffer, pCodingControlInfo );
3250     }
3251 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
3252 
3253 #  if defined( VK_ENABLE_BETA_EXTENSIONS )
3254     //=== VK_KHR_video_decode_queue ===
3255 
vkCmdDecodeVideoKHR(VkCommandBuffer commandBuffer,const VkVideoDecodeInfoKHR * pFrameInfo) const3256     void vkCmdDecodeVideoKHR( VkCommandBuffer              commandBuffer,
3257                               const VkVideoDecodeInfoKHR * pFrameInfo ) const VULKAN_HPP_NOEXCEPT
3258     {
3259       return ::vkCmdDecodeVideoKHR( commandBuffer, pFrameInfo );
3260     }
3261 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
3262 
3263     //=== VK_EXT_transform_feedback ===
3264 
vkCmdBindTransformFeedbackBuffersEXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes) const3265     void vkCmdBindTransformFeedbackBuffersEXT( VkCommandBuffer      commandBuffer,
3266                                                uint32_t             firstBinding,
3267                                                uint32_t             bindingCount,
3268                                                const VkBuffer *     pBuffers,
3269                                                const VkDeviceSize * pOffsets,
3270                                                const VkDeviceSize * pSizes ) const VULKAN_HPP_NOEXCEPT
3271     {
3272       return ::vkCmdBindTransformFeedbackBuffersEXT(
3273         commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes );
3274     }
3275 
vkCmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets) const3276     void vkCmdBeginTransformFeedbackEXT( VkCommandBuffer      commandBuffer,
3277                                          uint32_t             firstCounterBuffer,
3278                                          uint32_t             counterBufferCount,
3279                                          const VkBuffer *     pCounterBuffers,
3280                                          const VkDeviceSize * pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT
3281     {
3282       return ::vkCmdBeginTransformFeedbackEXT(
3283         commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets );
3284     }
3285 
vkCmdEndTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets) const3286     void vkCmdEndTransformFeedbackEXT( VkCommandBuffer      commandBuffer,
3287                                        uint32_t             firstCounterBuffer,
3288                                        uint32_t             counterBufferCount,
3289                                        const VkBuffer *     pCounterBuffers,
3290                                        const VkDeviceSize * pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT
3291     {
3292       return ::vkCmdEndTransformFeedbackEXT(
3293         commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets );
3294     }
3295 
vkCmdBeginQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags,uint32_t index) const3296     void vkCmdBeginQueryIndexedEXT( VkCommandBuffer     commandBuffer,
3297                                     VkQueryPool         queryPool,
3298                                     uint32_t            query,
3299                                     VkQueryControlFlags flags,
3300                                     uint32_t            index ) const VULKAN_HPP_NOEXCEPT
3301     {
3302       return ::vkCmdBeginQueryIndexedEXT( commandBuffer, queryPool, query, flags, index );
3303     }
3304 
vkCmdEndQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,uint32_t index) const3305     void vkCmdEndQueryIndexedEXT( VkCommandBuffer commandBuffer,
3306                                   VkQueryPool     queryPool,
3307                                   uint32_t        query,
3308                                   uint32_t        index ) const VULKAN_HPP_NOEXCEPT
3309     {
3310       return ::vkCmdEndQueryIndexedEXT( commandBuffer, queryPool, query, index );
3311     }
3312 
vkCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer,uint32_t instanceCount,uint32_t firstInstance,VkBuffer counterBuffer,VkDeviceSize counterBufferOffset,uint32_t counterOffset,uint32_t vertexStride) const3313     void vkCmdDrawIndirectByteCountEXT( VkCommandBuffer commandBuffer,
3314                                         uint32_t        instanceCount,
3315                                         uint32_t        firstInstance,
3316                                         VkBuffer        counterBuffer,
3317                                         VkDeviceSize    counterBufferOffset,
3318                                         uint32_t        counterOffset,
3319                                         uint32_t        vertexStride ) const VULKAN_HPP_NOEXCEPT
3320     {
3321       return ::vkCmdDrawIndirectByteCountEXT(
3322         commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride );
3323     }
3324 
3325     //=== VK_NVX_binary_import ===
3326 
vkCreateCuModuleNVX(VkDevice device,const VkCuModuleCreateInfoNVX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCuModuleNVX * pModule) const3327     VkResult vkCreateCuModuleNVX( VkDevice                        device,
3328                                   const VkCuModuleCreateInfoNVX * pCreateInfo,
3329                                   const VkAllocationCallbacks *   pAllocator,
3330                                   VkCuModuleNVX *                 pModule ) const VULKAN_HPP_NOEXCEPT
3331     {
3332       return ::vkCreateCuModuleNVX( device, pCreateInfo, pAllocator, pModule );
3333     }
3334 
vkCreateCuFunctionNVX(VkDevice device,const VkCuFunctionCreateInfoNVX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCuFunctionNVX * pFunction) const3335     VkResult vkCreateCuFunctionNVX( VkDevice                          device,
3336                                     const VkCuFunctionCreateInfoNVX * pCreateInfo,
3337                                     const VkAllocationCallbacks *     pAllocator,
3338                                     VkCuFunctionNVX *                 pFunction ) const VULKAN_HPP_NOEXCEPT
3339     {
3340       return ::vkCreateCuFunctionNVX( device, pCreateInfo, pAllocator, pFunction );
3341     }
3342 
vkDestroyCuModuleNVX(VkDevice device,VkCuModuleNVX module,const VkAllocationCallbacks * pAllocator) const3343     void vkDestroyCuModuleNVX( VkDevice                      device,
3344                                VkCuModuleNVX                 module,
3345                                const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
3346     {
3347       return ::vkDestroyCuModuleNVX( device, module, pAllocator );
3348     }
3349 
vkDestroyCuFunctionNVX(VkDevice device,VkCuFunctionNVX function,const VkAllocationCallbacks * pAllocator) const3350     void vkDestroyCuFunctionNVX( VkDevice                      device,
3351                                  VkCuFunctionNVX               function,
3352                                  const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
3353     {
3354       return ::vkDestroyCuFunctionNVX( device, function, pAllocator );
3355     }
3356 
vkCmdCuLaunchKernelNVX(VkCommandBuffer commandBuffer,const VkCuLaunchInfoNVX * pLaunchInfo) const3357     void vkCmdCuLaunchKernelNVX( VkCommandBuffer           commandBuffer,
3358                                  const VkCuLaunchInfoNVX * pLaunchInfo ) const VULKAN_HPP_NOEXCEPT
3359     {
3360       return ::vkCmdCuLaunchKernelNVX( commandBuffer, pLaunchInfo );
3361     }
3362 
3363     //=== VK_NVX_image_view_handle ===
3364 
vkGetImageViewHandleNVX(VkDevice device,const VkImageViewHandleInfoNVX * pInfo) const3365     uint32_t vkGetImageViewHandleNVX( VkDevice                         device,
3366                                       const VkImageViewHandleInfoNVX * pInfo ) const VULKAN_HPP_NOEXCEPT
3367     {
3368       return ::vkGetImageViewHandleNVX( device, pInfo );
3369     }
3370 
vkGetImageViewAddressNVX(VkDevice device,VkImageView imageView,VkImageViewAddressPropertiesNVX * pProperties) const3371     VkResult vkGetImageViewAddressNVX( VkDevice                          device,
3372                                        VkImageView                       imageView,
3373                                        VkImageViewAddressPropertiesNVX * pProperties ) const VULKAN_HPP_NOEXCEPT
3374     {
3375       return ::vkGetImageViewAddressNVX( device, imageView, pProperties );
3376     }
3377 
3378     //=== VK_AMD_draw_indirect_count ===
3379 
vkCmdDrawIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const3380     void vkCmdDrawIndirectCountAMD( VkCommandBuffer commandBuffer,
3381                                     VkBuffer        buffer,
3382                                     VkDeviceSize    offset,
3383                                     VkBuffer        countBuffer,
3384                                     VkDeviceSize    countBufferOffset,
3385                                     uint32_t        maxDrawCount,
3386                                     uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
3387     {
3388       return ::vkCmdDrawIndirectCountAMD(
3389         commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
3390     }
3391 
vkCmdDrawIndexedIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const3392     void vkCmdDrawIndexedIndirectCountAMD( VkCommandBuffer commandBuffer,
3393                                            VkBuffer        buffer,
3394                                            VkDeviceSize    offset,
3395                                            VkBuffer        countBuffer,
3396                                            VkDeviceSize    countBufferOffset,
3397                                            uint32_t        maxDrawCount,
3398                                            uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
3399     {
3400       return ::vkCmdDrawIndexedIndirectCountAMD(
3401         commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
3402     }
3403 
3404     //=== VK_AMD_shader_info ===
3405 
vkGetShaderInfoAMD(VkDevice device,VkPipeline pipeline,VkShaderStageFlagBits shaderStage,VkShaderInfoTypeAMD infoType,size_t * pInfoSize,void * pInfo) const3406     VkResult vkGetShaderInfoAMD( VkDevice              device,
3407                                  VkPipeline            pipeline,
3408                                  VkShaderStageFlagBits shaderStage,
3409                                  VkShaderInfoTypeAMD   infoType,
3410                                  size_t *              pInfoSize,
3411                                  void *                pInfo ) const VULKAN_HPP_NOEXCEPT
3412     {
3413       return ::vkGetShaderInfoAMD( device, pipeline, shaderStage, infoType, pInfoSize, pInfo );
3414     }
3415 
3416 #  if defined( VK_USE_PLATFORM_GGP )
3417     //=== VK_GGP_stream_descriptor_surface ===
3418 
vkCreateStreamDescriptorSurfaceGGP(VkInstance instance,const VkStreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const3419     VkResult vkCreateStreamDescriptorSurfaceGGP( VkInstance                                     instance,
3420                                                  const VkStreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,
3421                                                  const VkAllocationCallbacks *                  pAllocator,
3422                                                  VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT
3423     {
3424       return ::vkCreateStreamDescriptorSurfaceGGP( instance, pCreateInfo, pAllocator, pSurface );
3425     }
3426 #  endif /*VK_USE_PLATFORM_GGP*/
3427 
3428     //=== VK_NV_external_memory_capabilities ===
3429 
vkGetPhysicalDeviceExternalImageFormatPropertiesNV(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkExternalMemoryHandleTypeFlagsNV externalHandleType,VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties) const3430     VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
3431       VkPhysicalDevice                    physicalDevice,
3432       VkFormat                            format,
3433       VkImageType                         type,
3434       VkImageTiling                       tiling,
3435       VkImageUsageFlags                   usage,
3436       VkImageCreateFlags                  flags,
3437       VkExternalMemoryHandleTypeFlagsNV   externalHandleType,
3438       VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
3439     {
3440       return ::vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
3441         physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties );
3442     }
3443 
3444 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
3445     //=== VK_NV_external_memory_win32 ===
3446 
vkGetMemoryWin32HandleNV(VkDevice device,VkDeviceMemory memory,VkExternalMemoryHandleTypeFlagsNV handleType,HANDLE * pHandle) const3447     VkResult vkGetMemoryWin32HandleNV( VkDevice                          device,
3448                                        VkDeviceMemory                    memory,
3449                                        VkExternalMemoryHandleTypeFlagsNV handleType,
3450                                        HANDLE *                          pHandle ) const VULKAN_HPP_NOEXCEPT
3451     {
3452       return ::vkGetMemoryWin32HandleNV( device, memory, handleType, pHandle );
3453     }
3454 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
3455 
3456     //=== VK_KHR_get_physical_device_properties2 ===
3457 
vkGetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures) const3458     void vkGetPhysicalDeviceFeatures2KHR( VkPhysicalDevice            physicalDevice,
3459                                           VkPhysicalDeviceFeatures2 * pFeatures ) const VULKAN_HPP_NOEXCEPT
3460     {
3461       return ::vkGetPhysicalDeviceFeatures2KHR( physicalDevice, pFeatures );
3462     }
3463 
vkGetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties) const3464     void vkGetPhysicalDeviceProperties2KHR( VkPhysicalDevice              physicalDevice,
3465                                             VkPhysicalDeviceProperties2 * pProperties ) const VULKAN_HPP_NOEXCEPT
3466     {
3467       return ::vkGetPhysicalDeviceProperties2KHR( physicalDevice, pProperties );
3468     }
3469 
vkGetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties) const3470     void vkGetPhysicalDeviceFormatProperties2KHR( VkPhysicalDevice      physicalDevice,
3471                                                   VkFormat              format,
3472                                                   VkFormatProperties2 * pFormatProperties ) const VULKAN_HPP_NOEXCEPT
3473     {
3474       return ::vkGetPhysicalDeviceFormatProperties2KHR( physicalDevice, format, pFormatProperties );
3475     }
3476 
vkGetPhysicalDeviceImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties) const3477     VkResult vkGetPhysicalDeviceImageFormatProperties2KHR( VkPhysicalDevice                         physicalDevice,
3478                                                            const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,
3479                                                            VkImageFormatProperties2 * pImageFormatProperties ) const
3480       VULKAN_HPP_NOEXCEPT
3481     {
3482       return ::vkGetPhysicalDeviceImageFormatProperties2KHR( physicalDevice, pImageFormatInfo, pImageFormatProperties );
3483     }
3484 
vkGetPhysicalDeviceQueueFamilyProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties) const3485     void vkGetPhysicalDeviceQueueFamilyProperties2KHR( VkPhysicalDevice           physicalDevice,
3486                                                        uint32_t *                 pQueueFamilyPropertyCount,
3487                                                        VkQueueFamilyProperties2 * pQueueFamilyProperties ) const
3488       VULKAN_HPP_NOEXCEPT
3489     {
3490       return ::vkGetPhysicalDeviceQueueFamilyProperties2KHR(
3491         physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
3492     }
3493 
vkGetPhysicalDeviceMemoryProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties) const3494     void vkGetPhysicalDeviceMemoryProperties2KHR(
3495       VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
3496     {
3497       return ::vkGetPhysicalDeviceMemoryProperties2KHR( physicalDevice, pMemoryProperties );
3498     }
3499 
vkGetPhysicalDeviceSparseImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties) const3500     void vkGetPhysicalDeviceSparseImageFormatProperties2KHR( VkPhysicalDevice physicalDevice,
3501                                                              const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,
3502                                                              uint32_t *                       pPropertyCount,
3503                                                              VkSparseImageFormatProperties2 * pProperties ) const
3504       VULKAN_HPP_NOEXCEPT
3505     {
3506       return ::vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
3507         physicalDevice, pFormatInfo, pPropertyCount, pProperties );
3508     }
3509 
3510     //=== VK_KHR_device_group ===
3511 
3512     void
vkGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures) const3513       vkGetDeviceGroupPeerMemoryFeaturesKHR( VkDevice                   device,
3514                                              uint32_t                   heapIndex,
3515                                              uint32_t                   localDeviceIndex,
3516                                              uint32_t                   remoteDeviceIndex,
3517                                              VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT
3518     {
3519       return ::vkGetDeviceGroupPeerMemoryFeaturesKHR(
3520         device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures );
3521     }
3522 
vkCmdSetDeviceMaskKHR(VkCommandBuffer commandBuffer,uint32_t deviceMask) const3523     void vkCmdSetDeviceMaskKHR( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT
3524     {
3525       return ::vkCmdSetDeviceMaskKHR( commandBuffer, deviceMask );
3526     }
3527 
vkCmdDispatchBaseKHR(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const3528     void vkCmdDispatchBaseKHR( VkCommandBuffer commandBuffer,
3529                                uint32_t        baseGroupX,
3530                                uint32_t        baseGroupY,
3531                                uint32_t        baseGroupZ,
3532                                uint32_t        groupCountX,
3533                                uint32_t        groupCountY,
3534                                uint32_t        groupCountZ ) const VULKAN_HPP_NOEXCEPT
3535     {
3536       return ::vkCmdDispatchBaseKHR(
3537         commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
3538     }
3539 
3540 #  if defined( VK_USE_PLATFORM_VI_NN )
3541     //=== VK_NN_vi_surface ===
3542 
vkCreateViSurfaceNN(VkInstance instance,const VkViSurfaceCreateInfoNN * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const3543     VkResult vkCreateViSurfaceNN( VkInstance                      instance,
3544                                   const VkViSurfaceCreateInfoNN * pCreateInfo,
3545                                   const VkAllocationCallbacks *   pAllocator,
3546                                   VkSurfaceKHR *                  pSurface ) const VULKAN_HPP_NOEXCEPT
3547     {
3548       return ::vkCreateViSurfaceNN( instance, pCreateInfo, pAllocator, pSurface );
3549     }
3550 #  endif /*VK_USE_PLATFORM_VI_NN*/
3551 
3552     //=== VK_KHR_maintenance1 ===
3553 
vkTrimCommandPoolKHR(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags) const3554     void vkTrimCommandPoolKHR( VkDevice               device,
3555                                VkCommandPool          commandPool,
3556                                VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT
3557     {
3558       return ::vkTrimCommandPoolKHR( device, commandPool, flags );
3559     }
3560 
3561     //=== VK_KHR_device_group_creation ===
3562 
vkEnumeratePhysicalDeviceGroupsKHR(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties) const3563     VkResult vkEnumeratePhysicalDeviceGroupsKHR(
3564       VkInstance                        instance,
3565       uint32_t *                        pPhysicalDeviceGroupCount,
3566       VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT
3567     {
3568       return ::vkEnumeratePhysicalDeviceGroupsKHR(
3569         instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties );
3570     }
3571 
3572     //=== VK_KHR_external_memory_capabilities ===
3573 
vkGetPhysicalDeviceExternalBufferPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties) const3574     void vkGetPhysicalDeviceExternalBufferPropertiesKHR( VkPhysicalDevice                           physicalDevice,
3575                                                          const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,
3576                                                          VkExternalBufferProperties * pExternalBufferProperties ) const
3577       VULKAN_HPP_NOEXCEPT
3578     {
3579       return ::vkGetPhysicalDeviceExternalBufferPropertiesKHR(
3580         physicalDevice, pExternalBufferInfo, pExternalBufferProperties );
3581     }
3582 
3583 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
3584     //=== VK_KHR_external_memory_win32 ===
3585 
vkGetMemoryWin32HandleKHR(VkDevice device,const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const3586     VkResult vkGetMemoryWin32HandleKHR( VkDevice                              device,
3587                                         const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,
3588                                         HANDLE *                              pHandle ) const VULKAN_HPP_NOEXCEPT
3589     {
3590       return ::vkGetMemoryWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
3591     }
3592 
vkGetMemoryWin32HandlePropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties) const3593     VkResult vkGetMemoryWin32HandlePropertiesKHR(
3594       VkDevice                           device,
3595       VkExternalMemoryHandleTypeFlagBits handleType,
3596       HANDLE                             handle,
3597       VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties ) const VULKAN_HPP_NOEXCEPT
3598     {
3599       return ::vkGetMemoryWin32HandlePropertiesKHR( device, handleType, handle, pMemoryWin32HandleProperties );
3600     }
3601 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
3602 
3603     //=== VK_KHR_external_memory_fd ===
3604 
3605     VkResult
vkGetMemoryFdKHR(VkDevice device,const VkMemoryGetFdInfoKHR * pGetFdInfo,int * pFd) const3606       vkGetMemoryFdKHR( VkDevice device, const VkMemoryGetFdInfoKHR * pGetFdInfo, int * pFd ) const VULKAN_HPP_NOEXCEPT
3607     {
3608       return ::vkGetMemoryFdKHR( device, pGetFdInfo, pFd );
3609     }
3610 
vkGetMemoryFdPropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,int fd,VkMemoryFdPropertiesKHR * pMemoryFdProperties) const3611     VkResult vkGetMemoryFdPropertiesKHR( VkDevice                           device,
3612                                          VkExternalMemoryHandleTypeFlagBits handleType,
3613                                          int                                fd,
3614                                          VkMemoryFdPropertiesKHR * pMemoryFdProperties ) const VULKAN_HPP_NOEXCEPT
3615     {
3616       return ::vkGetMemoryFdPropertiesKHR( device, handleType, fd, pMemoryFdProperties );
3617     }
3618 
3619     //=== VK_KHR_external_semaphore_capabilities ===
3620 
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties) const3621     void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
3622       VkPhysicalDevice                              physicalDevice,
3623       const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,
3624       VkExternalSemaphoreProperties *               pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT
3625     {
3626       return ::vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
3627         physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties );
3628     }
3629 
3630 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
3631     //=== VK_KHR_external_semaphore_win32 ===
3632 
vkImportSemaphoreWin32HandleKHR(VkDevice device,const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo) const3633     VkResult vkImportSemaphoreWin32HandleKHR(
3634       VkDevice                                    device,
3635       const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT
3636     {
3637       return ::vkImportSemaphoreWin32HandleKHR( device, pImportSemaphoreWin32HandleInfo );
3638     }
3639 
vkGetSemaphoreWin32HandleKHR(VkDevice device,const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const3640     VkResult vkGetSemaphoreWin32HandleKHR( VkDevice                                 device,
3641                                            const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,
3642                                            HANDLE *                                 pHandle ) const VULKAN_HPP_NOEXCEPT
3643     {
3644       return ::vkGetSemaphoreWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
3645     }
3646 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
3647 
3648     //=== VK_KHR_external_semaphore_fd ===
3649 
3650     VkResult
vkImportSemaphoreFdKHR(VkDevice device,const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo) const3651       vkImportSemaphoreFdKHR( VkDevice                           device,
3652                               const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) const VULKAN_HPP_NOEXCEPT
3653     {
3654       return ::vkImportSemaphoreFdKHR( device, pImportSemaphoreFdInfo );
3655     }
3656 
vkGetSemaphoreFdKHR(VkDevice device,const VkSemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd) const3657     VkResult vkGetSemaphoreFdKHR( VkDevice                        device,
3658                                   const VkSemaphoreGetFdInfoKHR * pGetFdInfo,
3659                                   int *                           pFd ) const VULKAN_HPP_NOEXCEPT
3660     {
3661       return ::vkGetSemaphoreFdKHR( device, pGetFdInfo, pFd );
3662     }
3663 
3664     //=== VK_KHR_push_descriptor ===
3665 
vkCmdPushDescriptorSetKHR(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t set,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites) const3666     void vkCmdPushDescriptorSetKHR( VkCommandBuffer              commandBuffer,
3667                                     VkPipelineBindPoint          pipelineBindPoint,
3668                                     VkPipelineLayout             layout,
3669                                     uint32_t                     set,
3670                                     uint32_t                     descriptorWriteCount,
3671                                     const VkWriteDescriptorSet * pDescriptorWrites ) const VULKAN_HPP_NOEXCEPT
3672     {
3673       return ::vkCmdPushDescriptorSetKHR(
3674         commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites );
3675     }
3676 
vkCmdPushDescriptorSetWithTemplateKHR(VkCommandBuffer commandBuffer,VkDescriptorUpdateTemplate descriptorUpdateTemplate,VkPipelineLayout layout,uint32_t set,const void * pData) const3677     void vkCmdPushDescriptorSetWithTemplateKHR( VkCommandBuffer            commandBuffer,
3678                                                 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3679                                                 VkPipelineLayout           layout,
3680                                                 uint32_t                   set,
3681                                                 const void *               pData ) const VULKAN_HPP_NOEXCEPT
3682     {
3683       return ::vkCmdPushDescriptorSetWithTemplateKHR( commandBuffer, descriptorUpdateTemplate, layout, set, pData );
3684     }
3685 
3686     //=== VK_EXT_conditional_rendering ===
3687 
vkCmdBeginConditionalRenderingEXT(VkCommandBuffer commandBuffer,const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin) const3688     void vkCmdBeginConditionalRenderingEXT(
3689       VkCommandBuffer                            commandBuffer,
3690       const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) const VULKAN_HPP_NOEXCEPT
3691     {
3692       return ::vkCmdBeginConditionalRenderingEXT( commandBuffer, pConditionalRenderingBegin );
3693     }
3694 
vkCmdEndConditionalRenderingEXT(VkCommandBuffer commandBuffer) const3695     void vkCmdEndConditionalRenderingEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
3696     {
3697       return ::vkCmdEndConditionalRenderingEXT( commandBuffer );
3698     }
3699 
3700     //=== VK_KHR_descriptor_update_template ===
3701 
vkCreateDescriptorUpdateTemplateKHR(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate) const3702     VkResult vkCreateDescriptorUpdateTemplateKHR( VkDevice                                     device,
3703                                                   const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,
3704                                                   const VkAllocationCallbacks *                pAllocator,
3705                                                   VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) const
3706       VULKAN_HPP_NOEXCEPT
3707     {
3708       return ::vkCreateDescriptorUpdateTemplateKHR( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate );
3709     }
3710 
vkDestroyDescriptorUpdateTemplateKHR(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator) const3711     void vkDestroyDescriptorUpdateTemplateKHR( VkDevice                      device,
3712                                                VkDescriptorUpdateTemplate    descriptorUpdateTemplate,
3713                                                const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
3714     {
3715       return ::vkDestroyDescriptorUpdateTemplateKHR( device, descriptorUpdateTemplate, pAllocator );
3716     }
3717 
vkUpdateDescriptorSetWithTemplateKHR(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData) const3718     void vkUpdateDescriptorSetWithTemplateKHR( VkDevice                   device,
3719                                                VkDescriptorSet            descriptorSet,
3720                                                VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3721                                                const void *               pData ) const VULKAN_HPP_NOEXCEPT
3722     {
3723       return ::vkUpdateDescriptorSetWithTemplateKHR( device, descriptorSet, descriptorUpdateTemplate, pData );
3724     }
3725 
3726     //=== VK_NV_clip_space_w_scaling ===
3727 
vkCmdSetViewportWScalingNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewportWScalingNV * pViewportWScalings) const3728     void vkCmdSetViewportWScalingNV( VkCommandBuffer              commandBuffer,
3729                                      uint32_t                     firstViewport,
3730                                      uint32_t                     viewportCount,
3731                                      const VkViewportWScalingNV * pViewportWScalings ) const VULKAN_HPP_NOEXCEPT
3732     {
3733       return ::vkCmdSetViewportWScalingNV( commandBuffer, firstViewport, viewportCount, pViewportWScalings );
3734     }
3735 
3736     //=== VK_EXT_direct_mode_display ===
3737 
vkReleaseDisplayEXT(VkPhysicalDevice physicalDevice,VkDisplayKHR display) const3738     VkResult vkReleaseDisplayEXT( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
3739     {
3740       return ::vkReleaseDisplayEXT( physicalDevice, display );
3741     }
3742 
3743 #  if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
3744     //=== VK_EXT_acquire_xlib_display ===
3745 
vkAcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice,Display * dpy,VkDisplayKHR display) const3746     VkResult vkAcquireXlibDisplayEXT( VkPhysicalDevice physicalDevice,
3747                                       Display *        dpy,
3748                                       VkDisplayKHR     display ) const VULKAN_HPP_NOEXCEPT
3749     {
3750       return ::vkAcquireXlibDisplayEXT( physicalDevice, dpy, display );
3751     }
3752 
vkGetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice,Display * dpy,RROutput rrOutput,VkDisplayKHR * pDisplay) const3753     VkResult vkGetRandROutputDisplayEXT( VkPhysicalDevice physicalDevice,
3754                                          Display *        dpy,
3755                                          RROutput         rrOutput,
3756                                          VkDisplayKHR *   pDisplay ) const VULKAN_HPP_NOEXCEPT
3757     {
3758       return ::vkGetRandROutputDisplayEXT( physicalDevice, dpy, rrOutput, pDisplay );
3759     }
3760 #  endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
3761 
3762     //=== VK_EXT_display_surface_counter ===
3763 
vkGetPhysicalDeviceSurfaceCapabilities2EXT(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilities2EXT * pSurfaceCapabilities) const3764     VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT( VkPhysicalDevice            physicalDevice,
3765                                                          VkSurfaceKHR                surface,
3766                                                          VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) const
3767       VULKAN_HPP_NOEXCEPT
3768     {
3769       return ::vkGetPhysicalDeviceSurfaceCapabilities2EXT( physicalDevice, surface, pSurfaceCapabilities );
3770     }
3771 
3772     //=== VK_EXT_display_control ===
3773 
vkDisplayPowerControlEXT(VkDevice device,VkDisplayKHR display,const VkDisplayPowerInfoEXT * pDisplayPowerInfo) const3774     VkResult vkDisplayPowerControlEXT( VkDevice                      device,
3775                                        VkDisplayKHR                  display,
3776                                        const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) const VULKAN_HPP_NOEXCEPT
3777     {
3778       return ::vkDisplayPowerControlEXT( device, display, pDisplayPowerInfo );
3779     }
3780 
vkRegisterDeviceEventEXT(VkDevice device,const VkDeviceEventInfoEXT * pDeviceEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const3781     VkResult vkRegisterDeviceEventEXT( VkDevice                      device,
3782                                        const VkDeviceEventInfoEXT *  pDeviceEventInfo,
3783                                        const VkAllocationCallbacks * pAllocator,
3784                                        VkFence *                     pFence ) const VULKAN_HPP_NOEXCEPT
3785     {
3786       return ::vkRegisterDeviceEventEXT( device, pDeviceEventInfo, pAllocator, pFence );
3787     }
3788 
vkRegisterDisplayEventEXT(VkDevice device,VkDisplayKHR display,const VkDisplayEventInfoEXT * pDisplayEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence) const3789     VkResult vkRegisterDisplayEventEXT( VkDevice                      device,
3790                                         VkDisplayKHR                  display,
3791                                         const VkDisplayEventInfoEXT * pDisplayEventInfo,
3792                                         const VkAllocationCallbacks * pAllocator,
3793                                         VkFence *                     pFence ) const VULKAN_HPP_NOEXCEPT
3794     {
3795       return ::vkRegisterDisplayEventEXT( device, display, pDisplayEventInfo, pAllocator, pFence );
3796     }
3797 
vkGetSwapchainCounterEXT(VkDevice device,VkSwapchainKHR swapchain,VkSurfaceCounterFlagBitsEXT counter,uint64_t * pCounterValue) const3798     VkResult vkGetSwapchainCounterEXT( VkDevice                    device,
3799                                        VkSwapchainKHR              swapchain,
3800                                        VkSurfaceCounterFlagBitsEXT counter,
3801                                        uint64_t *                  pCounterValue ) const VULKAN_HPP_NOEXCEPT
3802     {
3803       return ::vkGetSwapchainCounterEXT( device, swapchain, counter, pCounterValue );
3804     }
3805 
3806     //=== VK_GOOGLE_display_timing ===
3807 
vkGetRefreshCycleDurationGOOGLE(VkDevice device,VkSwapchainKHR swapchain,VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties) const3808     VkResult vkGetRefreshCycleDurationGOOGLE( VkDevice                       device,
3809                                               VkSwapchainKHR                 swapchain,
3810                                               VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) const
3811       VULKAN_HPP_NOEXCEPT
3812     {
3813       return ::vkGetRefreshCycleDurationGOOGLE( device, swapchain, pDisplayTimingProperties );
3814     }
3815 
vkGetPastPresentationTimingGOOGLE(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pPresentationTimingCount,VkPastPresentationTimingGOOGLE * pPresentationTimings) const3816     VkResult vkGetPastPresentationTimingGOOGLE( VkDevice                         device,
3817                                                 VkSwapchainKHR                   swapchain,
3818                                                 uint32_t *                       pPresentationTimingCount,
3819                                                 VkPastPresentationTimingGOOGLE * pPresentationTimings ) const
3820       VULKAN_HPP_NOEXCEPT
3821     {
3822       return ::vkGetPastPresentationTimingGOOGLE( device, swapchain, pPresentationTimingCount, pPresentationTimings );
3823     }
3824 
3825     //=== VK_EXT_discard_rectangles ===
3826 
vkCmdSetDiscardRectangleEXT(VkCommandBuffer commandBuffer,uint32_t firstDiscardRectangle,uint32_t discardRectangleCount,const VkRect2D * pDiscardRectangles) const3827     void vkCmdSetDiscardRectangleEXT( VkCommandBuffer  commandBuffer,
3828                                       uint32_t         firstDiscardRectangle,
3829                                       uint32_t         discardRectangleCount,
3830                                       const VkRect2D * pDiscardRectangles ) const VULKAN_HPP_NOEXCEPT
3831     {
3832       return ::vkCmdSetDiscardRectangleEXT(
3833         commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles );
3834     }
3835 
3836     //=== VK_EXT_hdr_metadata ===
3837 
vkSetHdrMetadataEXT(VkDevice device,uint32_t swapchainCount,const VkSwapchainKHR * pSwapchains,const VkHdrMetadataEXT * pMetadata) const3838     void vkSetHdrMetadataEXT( VkDevice                 device,
3839                               uint32_t                 swapchainCount,
3840                               const VkSwapchainKHR *   pSwapchains,
3841                               const VkHdrMetadataEXT * pMetadata ) const VULKAN_HPP_NOEXCEPT
3842     {
3843       return ::vkSetHdrMetadataEXT( device, swapchainCount, pSwapchains, pMetadata );
3844     }
3845 
3846     //=== VK_KHR_create_renderpass2 ===
3847 
vkCreateRenderPass2KHR(VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass) const3848     VkResult vkCreateRenderPass2KHR( VkDevice                        device,
3849                                      const VkRenderPassCreateInfo2 * pCreateInfo,
3850                                      const VkAllocationCallbacks *   pAllocator,
3851                                      VkRenderPass *                  pRenderPass ) const VULKAN_HPP_NOEXCEPT
3852     {
3853       return ::vkCreateRenderPass2KHR( device, pCreateInfo, pAllocator, pRenderPass );
3854     }
3855 
vkCmdBeginRenderPass2KHR(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo) const3856     void vkCmdBeginRenderPass2KHR( VkCommandBuffer               commandBuffer,
3857                                    const VkRenderPassBeginInfo * pRenderPassBegin,
3858                                    const VkSubpassBeginInfo *    pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT
3859     {
3860       return ::vkCmdBeginRenderPass2KHR( commandBuffer, pRenderPassBegin, pSubpassBeginInfo );
3861     }
3862 
vkCmdNextSubpass2KHR(VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo) const3863     void vkCmdNextSubpass2KHR( VkCommandBuffer            commandBuffer,
3864                                const VkSubpassBeginInfo * pSubpassBeginInfo,
3865                                const VkSubpassEndInfo *   pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
3866     {
3867       return ::vkCmdNextSubpass2KHR( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo );
3868     }
3869 
vkCmdEndRenderPass2KHR(VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo) const3870     void vkCmdEndRenderPass2KHR( VkCommandBuffer          commandBuffer,
3871                                  const VkSubpassEndInfo * pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
3872     {
3873       return ::vkCmdEndRenderPass2KHR( commandBuffer, pSubpassEndInfo );
3874     }
3875 
3876     //=== VK_KHR_shared_presentable_image ===
3877 
vkGetSwapchainStatusKHR(VkDevice device,VkSwapchainKHR swapchain) const3878     VkResult vkGetSwapchainStatusKHR( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
3879     {
3880       return ::vkGetSwapchainStatusKHR( device, swapchain );
3881     }
3882 
3883     //=== VK_KHR_external_fence_capabilities ===
3884 
vkGetPhysicalDeviceExternalFencePropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties) const3885     void vkGetPhysicalDeviceExternalFencePropertiesKHR( VkPhysicalDevice                          physicalDevice,
3886                                                         const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,
3887                                                         VkExternalFenceProperties * pExternalFenceProperties ) const
3888       VULKAN_HPP_NOEXCEPT
3889     {
3890       return ::vkGetPhysicalDeviceExternalFencePropertiesKHR(
3891         physicalDevice, pExternalFenceInfo, pExternalFenceProperties );
3892     }
3893 
3894 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
3895     //=== VK_KHR_external_fence_win32 ===
3896 
vkImportFenceWin32HandleKHR(VkDevice device,const VkImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo) const3897     VkResult vkImportFenceWin32HandleKHR(
3898       VkDevice device, const VkImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT
3899     {
3900       return ::vkImportFenceWin32HandleKHR( device, pImportFenceWin32HandleInfo );
3901     }
3902 
vkGetFenceWin32HandleKHR(VkDevice device,const VkFenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle) const3903     VkResult vkGetFenceWin32HandleKHR( VkDevice                             device,
3904                                        const VkFenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,
3905                                        HANDLE *                             pHandle ) const VULKAN_HPP_NOEXCEPT
3906     {
3907       return ::vkGetFenceWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
3908     }
3909 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
3910 
3911     //=== VK_KHR_external_fence_fd ===
3912 
vkImportFenceFdKHR(VkDevice device,const VkImportFenceFdInfoKHR * pImportFenceFdInfo) const3913     VkResult vkImportFenceFdKHR( VkDevice                       device,
3914                                  const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) const VULKAN_HPP_NOEXCEPT
3915     {
3916       return ::vkImportFenceFdKHR( device, pImportFenceFdInfo );
3917     }
3918 
3919     VkResult
vkGetFenceFdKHR(VkDevice device,const VkFenceGetFdInfoKHR * pGetFdInfo,int * pFd) const3920       vkGetFenceFdKHR( VkDevice device, const VkFenceGetFdInfoKHR * pGetFdInfo, int * pFd ) const VULKAN_HPP_NOEXCEPT
3921     {
3922       return ::vkGetFenceFdKHR( device, pGetFdInfo, pFd );
3923     }
3924 
3925     //=== VK_KHR_performance_query ===
3926 
vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,uint32_t * pCounterCount,VkPerformanceCounterKHR * pCounters,VkPerformanceCounterDescriptionKHR * pCounterDescriptions) const3927     VkResult vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
3928       VkPhysicalDevice                     physicalDevice,
3929       uint32_t                             queueFamilyIndex,
3930       uint32_t *                           pCounterCount,
3931       VkPerformanceCounterKHR *            pCounters,
3932       VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) const VULKAN_HPP_NOEXCEPT
3933     {
3934       return ::vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
3935         physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions );
3936     }
3937 
vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(VkPhysicalDevice physicalDevice,const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,uint32_t * pNumPasses) const3938     void vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
3939       VkPhysicalDevice                            physicalDevice,
3940       const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,
3941       uint32_t *                                  pNumPasses ) const VULKAN_HPP_NOEXCEPT
3942     {
3943       return ::vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
3944         physicalDevice, pPerformanceQueryCreateInfo, pNumPasses );
3945     }
3946 
vkAcquireProfilingLockKHR(VkDevice device,const VkAcquireProfilingLockInfoKHR * pInfo) const3947     VkResult vkAcquireProfilingLockKHR( VkDevice                              device,
3948                                         const VkAcquireProfilingLockInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
3949     {
3950       return ::vkAcquireProfilingLockKHR( device, pInfo );
3951     }
3952 
vkReleaseProfilingLockKHR(VkDevice device) const3953     void vkReleaseProfilingLockKHR( VkDevice device ) const VULKAN_HPP_NOEXCEPT
3954     {
3955       return ::vkReleaseProfilingLockKHR( device );
3956     }
3957 
3958     //=== VK_KHR_get_surface_capabilities2 ===
3959 
vkGetPhysicalDeviceSurfaceCapabilities2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VkSurfaceCapabilities2KHR * pSurfaceCapabilities) const3960     VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR( VkPhysicalDevice                        physicalDevice,
3961                                                          const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,
3962                                                          VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) const
3963       VULKAN_HPP_NOEXCEPT
3964     {
3965       return ::vkGetPhysicalDeviceSurfaceCapabilities2KHR( physicalDevice, pSurfaceInfo, pSurfaceCapabilities );
3966     }
3967 
vkGetPhysicalDeviceSurfaceFormats2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pSurfaceFormatCount,VkSurfaceFormat2KHR * pSurfaceFormats) const3968     VkResult vkGetPhysicalDeviceSurfaceFormats2KHR( VkPhysicalDevice                        physicalDevice,
3969                                                     const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,
3970                                                     uint32_t *                              pSurfaceFormatCount,
3971                                                     VkSurfaceFormat2KHR * pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT
3972     {
3973       return ::vkGetPhysicalDeviceSurfaceFormats2KHR(
3974         physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats );
3975     }
3976 
3977     //=== VK_KHR_get_display_properties2 ===
3978 
vkGetPhysicalDeviceDisplayProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayProperties2KHR * pProperties) const3979     VkResult vkGetPhysicalDeviceDisplayProperties2KHR( VkPhysicalDevice          physicalDevice,
3980                                                        uint32_t *                pPropertyCount,
3981                                                        VkDisplayProperties2KHR * pProperties ) const VULKAN_HPP_NOEXCEPT
3982     {
3983       return ::vkGetPhysicalDeviceDisplayProperties2KHR( physicalDevice, pPropertyCount, pProperties );
3984     }
3985 
vkGetPhysicalDeviceDisplayPlaneProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPlaneProperties2KHR * pProperties) const3986     VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR( VkPhysicalDevice               physicalDevice,
3987                                                             uint32_t *                     pPropertyCount,
3988                                                             VkDisplayPlaneProperties2KHR * pProperties ) const
3989       VULKAN_HPP_NOEXCEPT
3990     {
3991       return ::vkGetPhysicalDeviceDisplayPlaneProperties2KHR( physicalDevice, pPropertyCount, pProperties );
3992     }
3993 
vkGetDisplayModeProperties2KHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,uint32_t * pPropertyCount,VkDisplayModeProperties2KHR * pProperties) const3994     VkResult vkGetDisplayModeProperties2KHR( VkPhysicalDevice              physicalDevice,
3995                                              VkDisplayKHR                  display,
3996                                              uint32_t *                    pPropertyCount,
3997                                              VkDisplayModeProperties2KHR * pProperties ) const VULKAN_HPP_NOEXCEPT
3998     {
3999       return ::vkGetDisplayModeProperties2KHR( physicalDevice, display, pPropertyCount, pProperties );
4000     }
4001 
4002     VkResult
vkGetDisplayPlaneCapabilities2KHR(VkPhysicalDevice physicalDevice,const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo,VkDisplayPlaneCapabilities2KHR * pCapabilities) const4003       vkGetDisplayPlaneCapabilities2KHR( VkPhysicalDevice                 physicalDevice,
4004                                          const VkDisplayPlaneInfo2KHR *   pDisplayPlaneInfo,
4005                                          VkDisplayPlaneCapabilities2KHR * pCapabilities ) const VULKAN_HPP_NOEXCEPT
4006     {
4007       return ::vkGetDisplayPlaneCapabilities2KHR( physicalDevice, pDisplayPlaneInfo, pCapabilities );
4008     }
4009 
4010 #  if defined( VK_USE_PLATFORM_IOS_MVK )
4011     //=== VK_MVK_ios_surface ===
4012 
vkCreateIOSSurfaceMVK(VkInstance instance,const VkIOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const4013     VkResult vkCreateIOSSurfaceMVK( VkInstance                        instance,
4014                                     const VkIOSSurfaceCreateInfoMVK * pCreateInfo,
4015                                     const VkAllocationCallbacks *     pAllocator,
4016                                     VkSurfaceKHR *                    pSurface ) const VULKAN_HPP_NOEXCEPT
4017     {
4018       return ::vkCreateIOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface );
4019     }
4020 #  endif /*VK_USE_PLATFORM_IOS_MVK*/
4021 
4022 #  if defined( VK_USE_PLATFORM_MACOS_MVK )
4023     //=== VK_MVK_macos_surface ===
4024 
vkCreateMacOSSurfaceMVK(VkInstance instance,const VkMacOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const4025     VkResult vkCreateMacOSSurfaceMVK( VkInstance                          instance,
4026                                       const VkMacOSSurfaceCreateInfoMVK * pCreateInfo,
4027                                       const VkAllocationCallbacks *       pAllocator,
4028                                       VkSurfaceKHR *                      pSurface ) const VULKAN_HPP_NOEXCEPT
4029     {
4030       return ::vkCreateMacOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface );
4031     }
4032 #  endif /*VK_USE_PLATFORM_MACOS_MVK*/
4033 
4034     //=== VK_EXT_debug_utils ===
4035 
vkSetDebugUtilsObjectNameEXT(VkDevice device,const VkDebugUtilsObjectNameInfoEXT * pNameInfo) const4036     VkResult vkSetDebugUtilsObjectNameEXT( VkDevice                              device,
4037                                            const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) const VULKAN_HPP_NOEXCEPT
4038     {
4039       return ::vkSetDebugUtilsObjectNameEXT( device, pNameInfo );
4040     }
4041 
vkSetDebugUtilsObjectTagEXT(VkDevice device,const VkDebugUtilsObjectTagInfoEXT * pTagInfo) const4042     VkResult vkSetDebugUtilsObjectTagEXT( VkDevice                             device,
4043                                           const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) const VULKAN_HPP_NOEXCEPT
4044     {
4045       return ::vkSetDebugUtilsObjectTagEXT( device, pTagInfo );
4046     }
4047 
vkQueueBeginDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo) const4048     void vkQueueBeginDebugUtilsLabelEXT( VkQueue                      queue,
4049                                          const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT
4050     {
4051       return ::vkQueueBeginDebugUtilsLabelEXT( queue, pLabelInfo );
4052     }
4053 
vkQueueEndDebugUtilsLabelEXT(VkQueue queue) const4054     void vkQueueEndDebugUtilsLabelEXT( VkQueue queue ) const VULKAN_HPP_NOEXCEPT
4055     {
4056       return ::vkQueueEndDebugUtilsLabelEXT( queue );
4057     }
4058 
vkQueueInsertDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo) const4059     void vkQueueInsertDebugUtilsLabelEXT( VkQueue                      queue,
4060                                           const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT
4061     {
4062       return ::vkQueueInsertDebugUtilsLabelEXT( queue, pLabelInfo );
4063     }
4064 
vkCmdBeginDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo) const4065     void vkCmdBeginDebugUtilsLabelEXT( VkCommandBuffer              commandBuffer,
4066                                        const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT
4067     {
4068       return ::vkCmdBeginDebugUtilsLabelEXT( commandBuffer, pLabelInfo );
4069     }
4070 
vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) const4071     void vkCmdEndDebugUtilsLabelEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
4072     {
4073       return ::vkCmdEndDebugUtilsLabelEXT( commandBuffer );
4074     }
4075 
vkCmdInsertDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo) const4076     void vkCmdInsertDebugUtilsLabelEXT( VkCommandBuffer              commandBuffer,
4077                                         const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT
4078     {
4079       return ::vkCmdInsertDebugUtilsLabelEXT( commandBuffer, pLabelInfo );
4080     }
4081 
vkCreateDebugUtilsMessengerEXT(VkInstance instance,const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugUtilsMessengerEXT * pMessenger) const4082     VkResult vkCreateDebugUtilsMessengerEXT( VkInstance                                 instance,
4083                                              const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo,
4084                                              const VkAllocationCallbacks *              pAllocator,
4085                                              VkDebugUtilsMessengerEXT * pMessenger ) const VULKAN_HPP_NOEXCEPT
4086     {
4087       return ::vkCreateDebugUtilsMessengerEXT( instance, pCreateInfo, pAllocator, pMessenger );
4088     }
4089 
vkDestroyDebugUtilsMessengerEXT(VkInstance instance,VkDebugUtilsMessengerEXT messenger,const VkAllocationCallbacks * pAllocator) const4090     void vkDestroyDebugUtilsMessengerEXT( VkInstance                    instance,
4091                                           VkDebugUtilsMessengerEXT      messenger,
4092                                           const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
4093     {
4094       return ::vkDestroyDebugUtilsMessengerEXT( instance, messenger, pAllocator );
4095     }
4096 
vkSubmitDebugUtilsMessageEXT(VkInstance instance,VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VkDebugUtilsMessageTypeFlagsEXT messageTypes,const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData) const4097     void vkSubmitDebugUtilsMessageEXT( VkInstance                                   instance,
4098                                        VkDebugUtilsMessageSeverityFlagBitsEXT       messageSeverity,
4099                                        VkDebugUtilsMessageTypeFlagsEXT              messageTypes,
4100                                        const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) const
4101       VULKAN_HPP_NOEXCEPT
4102     {
4103       return ::vkSubmitDebugUtilsMessageEXT( instance, messageSeverity, messageTypes, pCallbackData );
4104     }
4105 
4106 #  if defined( VK_USE_PLATFORM_ANDROID_KHR )
4107     //=== VK_ANDROID_external_memory_android_hardware_buffer ===
4108 
vkGetAndroidHardwareBufferPropertiesANDROID(VkDevice device,const struct AHardwareBuffer * buffer,VkAndroidHardwareBufferPropertiesANDROID * pProperties) const4109     VkResult vkGetAndroidHardwareBufferPropertiesANDROID( VkDevice                                   device,
4110                                                           const struct AHardwareBuffer *             buffer,
4111                                                           VkAndroidHardwareBufferPropertiesANDROID * pProperties ) const
4112       VULKAN_HPP_NOEXCEPT
4113     {
4114       return ::vkGetAndroidHardwareBufferPropertiesANDROID( device, buffer, pProperties );
4115     }
4116 
vkGetMemoryAndroidHardwareBufferANDROID(VkDevice device,const VkMemoryGetAndroidHardwareBufferInfoANDROID * pInfo,struct AHardwareBuffer ** pBuffer) const4117     VkResult vkGetMemoryAndroidHardwareBufferANDROID( VkDevice                                            device,
4118                                                       const VkMemoryGetAndroidHardwareBufferInfoANDROID * pInfo,
4119                                                       struct AHardwareBuffer ** pBuffer ) const VULKAN_HPP_NOEXCEPT
4120     {
4121       return ::vkGetMemoryAndroidHardwareBufferANDROID( device, pInfo, pBuffer );
4122     }
4123 #  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
4124 
4125     //=== VK_EXT_sample_locations ===
4126 
vkCmdSetSampleLocationsEXT(VkCommandBuffer commandBuffer,const VkSampleLocationsInfoEXT * pSampleLocationsInfo) const4127     void vkCmdSetSampleLocationsEXT( VkCommandBuffer                  commandBuffer,
4128                                      const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) const VULKAN_HPP_NOEXCEPT
4129     {
4130       return ::vkCmdSetSampleLocationsEXT( commandBuffer, pSampleLocationsInfo );
4131     }
4132 
vkGetPhysicalDeviceMultisamplePropertiesEXT(VkPhysicalDevice physicalDevice,VkSampleCountFlagBits samples,VkMultisamplePropertiesEXT * pMultisampleProperties) const4133     void vkGetPhysicalDeviceMultisamplePropertiesEXT( VkPhysicalDevice             physicalDevice,
4134                                                       VkSampleCountFlagBits        samples,
4135                                                       VkMultisamplePropertiesEXT * pMultisampleProperties ) const
4136       VULKAN_HPP_NOEXCEPT
4137     {
4138       return ::vkGetPhysicalDeviceMultisamplePropertiesEXT( physicalDevice, samples, pMultisampleProperties );
4139     }
4140 
4141     //=== VK_KHR_get_memory_requirements2 ===
4142 
vkGetImageMemoryRequirements2KHR(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const4143     void vkGetImageMemoryRequirements2KHR( VkDevice                               device,
4144                                            const VkImageMemoryRequirementsInfo2 * pInfo,
4145                                            VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
4146     {
4147       return ::vkGetImageMemoryRequirements2KHR( device, pInfo, pMemoryRequirements );
4148     }
4149 
vkGetBufferMemoryRequirements2KHR(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const4150     void vkGetBufferMemoryRequirements2KHR( VkDevice                                device,
4151                                             const VkBufferMemoryRequirementsInfo2 * pInfo,
4152                                             VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
4153     {
4154       return ::vkGetBufferMemoryRequirements2KHR( device, pInfo, pMemoryRequirements );
4155     }
4156 
vkGetImageSparseMemoryRequirements2KHR(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements) const4157     void vkGetImageSparseMemoryRequirements2KHR( VkDevice                                     device,
4158                                                  const VkImageSparseMemoryRequirementsInfo2 * pInfo,
4159                                                  uint32_t *                         pSparseMemoryRequirementCount,
4160                                                  VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) const
4161       VULKAN_HPP_NOEXCEPT
4162     {
4163       return ::vkGetImageSparseMemoryRequirements2KHR(
4164         device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
4165     }
4166 
4167     //=== VK_KHR_acceleration_structure ===
4168 
4169     VkResult
vkCreateAccelerationStructureKHR(VkDevice device,const VkAccelerationStructureCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureKHR * pAccelerationStructure) const4170       vkCreateAccelerationStructureKHR( VkDevice                                     device,
4171                                         const VkAccelerationStructureCreateInfoKHR * pCreateInfo,
4172                                         const VkAllocationCallbacks *                pAllocator,
4173                                         VkAccelerationStructureKHR * pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT
4174     {
4175       return ::vkCreateAccelerationStructureKHR( device, pCreateInfo, pAllocator, pAccelerationStructure );
4176     }
4177 
vkDestroyAccelerationStructureKHR(VkDevice device,VkAccelerationStructureKHR accelerationStructure,const VkAllocationCallbacks * pAllocator) const4178     void vkDestroyAccelerationStructureKHR( VkDevice                      device,
4179                                             VkAccelerationStructureKHR    accelerationStructure,
4180                                             const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
4181     {
4182       return ::vkDestroyAccelerationStructureKHR( device, accelerationStructure, pAllocator );
4183     }
4184 
vkCmdBuildAccelerationStructuresKHR(VkCommandBuffer commandBuffer,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos) const4185     void vkCmdBuildAccelerationStructuresKHR(
4186       VkCommandBuffer                                          commandBuffer,
4187       uint32_t                                                 infoCount,
4188       const VkAccelerationStructureBuildGeometryInfoKHR *      pInfos,
4189       const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos ) const VULKAN_HPP_NOEXCEPT
4190     {
4191       return ::vkCmdBuildAccelerationStructuresKHR( commandBuffer, infoCount, pInfos, ppBuildRangeInfos );
4192     }
4193 
vkCmdBuildAccelerationStructuresIndirectKHR(VkCommandBuffer commandBuffer,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkDeviceAddress * pIndirectDeviceAddresses,const uint32_t * pIndirectStrides,const uint32_t * const * ppMaxPrimitiveCounts) const4194     void vkCmdBuildAccelerationStructuresIndirectKHR( VkCommandBuffer                                     commandBuffer,
4195                                                       uint32_t                                            infoCount,
4196                                                       const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,
4197                                                       const VkDeviceAddress *  pIndirectDeviceAddresses,
4198                                                       const uint32_t *         pIndirectStrides,
4199                                                       const uint32_t * const * ppMaxPrimitiveCounts ) const
4200       VULKAN_HPP_NOEXCEPT
4201     {
4202       return ::vkCmdBuildAccelerationStructuresIndirectKHR(
4203         commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts );
4204     }
4205 
vkBuildAccelerationStructuresKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos) const4206     VkResult vkBuildAccelerationStructuresKHR(
4207       VkDevice                                                 device,
4208       VkDeferredOperationKHR                                   deferredOperation,
4209       uint32_t                                                 infoCount,
4210       const VkAccelerationStructureBuildGeometryInfoKHR *      pInfos,
4211       const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos ) const VULKAN_HPP_NOEXCEPT
4212     {
4213       return ::vkBuildAccelerationStructuresKHR( device, deferredOperation, infoCount, pInfos, ppBuildRangeInfos );
4214     }
4215 
4216     VkResult
vkCopyAccelerationStructureKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyAccelerationStructureInfoKHR * pInfo) const4217       vkCopyAccelerationStructureKHR( VkDevice                                   device,
4218                                       VkDeferredOperationKHR                     deferredOperation,
4219                                       const VkCopyAccelerationStructureInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
4220     {
4221       return ::vkCopyAccelerationStructureKHR( device, deferredOperation, pInfo );
4222     }
4223 
vkCopyAccelerationStructureToMemoryKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo) const4224     VkResult vkCopyAccelerationStructureToMemoryKHR( VkDevice               device,
4225                                                      VkDeferredOperationKHR deferredOperation,
4226                                                      const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo ) const
4227       VULKAN_HPP_NOEXCEPT
4228     {
4229       return ::vkCopyAccelerationStructureToMemoryKHR( device, deferredOperation, pInfo );
4230     }
4231 
vkCopyMemoryToAccelerationStructureKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo) const4232     VkResult vkCopyMemoryToAccelerationStructureKHR( VkDevice               device,
4233                                                      VkDeferredOperationKHR deferredOperation,
4234                                                      const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo ) const
4235       VULKAN_HPP_NOEXCEPT
4236     {
4237       return ::vkCopyMemoryToAccelerationStructureKHR( device, deferredOperation, pInfo );
4238     }
4239 
vkWriteAccelerationStructuresPropertiesKHR(VkDevice device,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,size_t dataSize,void * pData,size_t stride) const4240     VkResult vkWriteAccelerationStructuresPropertiesKHR( VkDevice                           device,
4241                                                          uint32_t                           accelerationStructureCount,
4242                                                          const VkAccelerationStructureKHR * pAccelerationStructures,
4243                                                          VkQueryType                        queryType,
4244                                                          size_t                             dataSize,
4245                                                          void *                             pData,
4246                                                          size_t stride ) const VULKAN_HPP_NOEXCEPT
4247     {
4248       return ::vkWriteAccelerationStructuresPropertiesKHR(
4249         device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride );
4250     }
4251 
vkCmdCopyAccelerationStructureKHR(VkCommandBuffer commandBuffer,const VkCopyAccelerationStructureInfoKHR * pInfo) const4252     void vkCmdCopyAccelerationStructureKHR( VkCommandBuffer                            commandBuffer,
4253                                             const VkCopyAccelerationStructureInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
4254     {
4255       return ::vkCmdCopyAccelerationStructureKHR( commandBuffer, pInfo );
4256     }
4257 
vkCmdCopyAccelerationStructureToMemoryKHR(VkCommandBuffer commandBuffer,const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo) const4258     void vkCmdCopyAccelerationStructureToMemoryKHR( VkCommandBuffer                                    commandBuffer,
4259                                                     const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo ) const
4260       VULKAN_HPP_NOEXCEPT
4261     {
4262       return ::vkCmdCopyAccelerationStructureToMemoryKHR( commandBuffer, pInfo );
4263     }
4264 
vkCmdCopyMemoryToAccelerationStructureKHR(VkCommandBuffer commandBuffer,const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo) const4265     void vkCmdCopyMemoryToAccelerationStructureKHR( VkCommandBuffer                                    commandBuffer,
4266                                                     const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo ) const
4267       VULKAN_HPP_NOEXCEPT
4268     {
4269       return ::vkCmdCopyMemoryToAccelerationStructureKHR( commandBuffer, pInfo );
4270     }
4271 
vkGetAccelerationStructureDeviceAddressKHR(VkDevice device,const VkAccelerationStructureDeviceAddressInfoKHR * pInfo) const4272     VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR(
4273       VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
4274     {
4275       return ::vkGetAccelerationStructureDeviceAddressKHR( device, pInfo );
4276     }
4277 
vkCmdWriteAccelerationStructuresPropertiesKHR(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery) const4278     void vkCmdWriteAccelerationStructuresPropertiesKHR( VkCommandBuffer                    commandBuffer,
4279                                                         uint32_t                           accelerationStructureCount,
4280                                                         const VkAccelerationStructureKHR * pAccelerationStructures,
4281                                                         VkQueryType                        queryType,
4282                                                         VkQueryPool                        queryPool,
4283                                                         uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT
4284     {
4285       return ::vkCmdWriteAccelerationStructuresPropertiesKHR(
4286         commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery );
4287     }
4288 
vkGetDeviceAccelerationStructureCompatibilityKHR(VkDevice device,const VkAccelerationStructureVersionInfoKHR * pVersionInfo,VkAccelerationStructureCompatibilityKHR * pCompatibility) const4289     void vkGetDeviceAccelerationStructureCompatibilityKHR(
4290       VkDevice                                      device,
4291       const VkAccelerationStructureVersionInfoKHR * pVersionInfo,
4292       VkAccelerationStructureCompatibilityKHR *     pCompatibility ) const VULKAN_HPP_NOEXCEPT
4293     {
4294       return ::vkGetDeviceAccelerationStructureCompatibilityKHR( device, pVersionInfo, pCompatibility );
4295     }
4296 
vkGetAccelerationStructureBuildSizesKHR(VkDevice device,VkAccelerationStructureBuildTypeKHR buildType,const VkAccelerationStructureBuildGeometryInfoKHR * pBuildInfo,const uint32_t * pMaxPrimitiveCounts,VkAccelerationStructureBuildSizesInfoKHR * pSizeInfo) const4297     void vkGetAccelerationStructureBuildSizesKHR( VkDevice                                            device,
4298                                                   VkAccelerationStructureBuildTypeKHR                 buildType,
4299                                                   const VkAccelerationStructureBuildGeometryInfoKHR * pBuildInfo,
4300                                                   const uint32_t *                           pMaxPrimitiveCounts,
4301                                                   VkAccelerationStructureBuildSizesInfoKHR * pSizeInfo ) const
4302       VULKAN_HPP_NOEXCEPT
4303     {
4304       return ::vkGetAccelerationStructureBuildSizesKHR( device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo );
4305     }
4306 
4307     //=== VK_KHR_sampler_ycbcr_conversion ===
4308 
vkCreateSamplerYcbcrConversionKHR(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion) const4309     VkResult vkCreateSamplerYcbcrConversionKHR( VkDevice                                   device,
4310                                                 const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,
4311                                                 const VkAllocationCallbacks *              pAllocator,
4312                                                 VkSamplerYcbcrConversion * pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT
4313     {
4314       return ::vkCreateSamplerYcbcrConversionKHR( device, pCreateInfo, pAllocator, pYcbcrConversion );
4315     }
4316 
vkDestroySamplerYcbcrConversionKHR(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator) const4317     void vkDestroySamplerYcbcrConversionKHR( VkDevice                      device,
4318                                              VkSamplerYcbcrConversion      ycbcrConversion,
4319                                              const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
4320     {
4321       return ::vkDestroySamplerYcbcrConversionKHR( device, ycbcrConversion, pAllocator );
4322     }
4323 
4324     //=== VK_KHR_bind_memory2 ===
4325 
vkBindBufferMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos) const4326     VkResult vkBindBufferMemory2KHR( VkDevice                       device,
4327                                      uint32_t                       bindInfoCount,
4328                                      const VkBindBufferMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT
4329     {
4330       return ::vkBindBufferMemory2KHR( device, bindInfoCount, pBindInfos );
4331     }
4332 
vkBindImageMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos) const4333     VkResult vkBindImageMemory2KHR( VkDevice                      device,
4334                                     uint32_t                      bindInfoCount,
4335                                     const VkBindImageMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT
4336     {
4337       return ::vkBindImageMemory2KHR( device, bindInfoCount, pBindInfos );
4338     }
4339 
4340     //=== VK_EXT_image_drm_format_modifier ===
4341 
vkGetImageDrmFormatModifierPropertiesEXT(VkDevice device,VkImage image,VkImageDrmFormatModifierPropertiesEXT * pProperties) const4342     VkResult vkGetImageDrmFormatModifierPropertiesEXT(
4343       VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT * pProperties ) const VULKAN_HPP_NOEXCEPT
4344     {
4345       return ::vkGetImageDrmFormatModifierPropertiesEXT( device, image, pProperties );
4346     }
4347 
4348     //=== VK_EXT_validation_cache ===
4349 
vkCreateValidationCacheEXT(VkDevice device,const VkValidationCacheCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkValidationCacheEXT * pValidationCache) const4350     VkResult vkCreateValidationCacheEXT( VkDevice                               device,
4351                                          const VkValidationCacheCreateInfoEXT * pCreateInfo,
4352                                          const VkAllocationCallbacks *          pAllocator,
4353                                          VkValidationCacheEXT * pValidationCache ) const VULKAN_HPP_NOEXCEPT
4354     {
4355       return ::vkCreateValidationCacheEXT( device, pCreateInfo, pAllocator, pValidationCache );
4356     }
4357 
vkDestroyValidationCacheEXT(VkDevice device,VkValidationCacheEXT validationCache,const VkAllocationCallbacks * pAllocator) const4358     void vkDestroyValidationCacheEXT( VkDevice                      device,
4359                                       VkValidationCacheEXT          validationCache,
4360                                       const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
4361     {
4362       return ::vkDestroyValidationCacheEXT( device, validationCache, pAllocator );
4363     }
4364 
vkMergeValidationCachesEXT(VkDevice device,VkValidationCacheEXT dstCache,uint32_t srcCacheCount,const VkValidationCacheEXT * pSrcCaches) const4365     VkResult vkMergeValidationCachesEXT( VkDevice                     device,
4366                                          VkValidationCacheEXT         dstCache,
4367                                          uint32_t                     srcCacheCount,
4368                                          const VkValidationCacheEXT * pSrcCaches ) const VULKAN_HPP_NOEXCEPT
4369     {
4370       return ::vkMergeValidationCachesEXT( device, dstCache, srcCacheCount, pSrcCaches );
4371     }
4372 
vkGetValidationCacheDataEXT(VkDevice device,VkValidationCacheEXT validationCache,size_t * pDataSize,void * pData) const4373     VkResult vkGetValidationCacheDataEXT( VkDevice             device,
4374                                           VkValidationCacheEXT validationCache,
4375                                           size_t *             pDataSize,
4376                                           void *               pData ) const VULKAN_HPP_NOEXCEPT
4377     {
4378       return ::vkGetValidationCacheDataEXT( device, validationCache, pDataSize, pData );
4379     }
4380 
4381     //=== VK_NV_shading_rate_image ===
4382 
vkCmdBindShadingRateImageNV(VkCommandBuffer commandBuffer,VkImageView imageView,VkImageLayout imageLayout) const4383     void vkCmdBindShadingRateImageNV( VkCommandBuffer commandBuffer,
4384                                       VkImageView     imageView,
4385                                       VkImageLayout   imageLayout ) const VULKAN_HPP_NOEXCEPT
4386     {
4387       return ::vkCmdBindShadingRateImageNV( commandBuffer, imageView, imageLayout );
4388     }
4389 
vkCmdSetViewportShadingRatePaletteNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkShadingRatePaletteNV * pShadingRatePalettes) const4390     void vkCmdSetViewportShadingRatePaletteNV( VkCommandBuffer                commandBuffer,
4391                                                uint32_t                       firstViewport,
4392                                                uint32_t                       viewportCount,
4393                                                const VkShadingRatePaletteNV * pShadingRatePalettes ) const
4394       VULKAN_HPP_NOEXCEPT
4395     {
4396       return ::vkCmdSetViewportShadingRatePaletteNV(
4397         commandBuffer, firstViewport, viewportCount, pShadingRatePalettes );
4398     }
4399 
4400     void
vkCmdSetCoarseSampleOrderNV(VkCommandBuffer commandBuffer,VkCoarseSampleOrderTypeNV sampleOrderType,uint32_t customSampleOrderCount,const VkCoarseSampleOrderCustomNV * pCustomSampleOrders) const4401       vkCmdSetCoarseSampleOrderNV( VkCommandBuffer                     commandBuffer,
4402                                    VkCoarseSampleOrderTypeNV           sampleOrderType,
4403                                    uint32_t                            customSampleOrderCount,
4404                                    const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) const VULKAN_HPP_NOEXCEPT
4405     {
4406       return ::vkCmdSetCoarseSampleOrderNV(
4407         commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders );
4408     }
4409 
4410     //=== VK_NV_ray_tracing ===
4411 
4412     VkResult
vkCreateAccelerationStructureNV(VkDevice device,const VkAccelerationStructureCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureNV * pAccelerationStructure) const4413       vkCreateAccelerationStructureNV( VkDevice                                    device,
4414                                        const VkAccelerationStructureCreateInfoNV * pCreateInfo,
4415                                        const VkAllocationCallbacks *               pAllocator,
4416                                        VkAccelerationStructureNV * pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT
4417     {
4418       return ::vkCreateAccelerationStructureNV( device, pCreateInfo, pAllocator, pAccelerationStructure );
4419     }
4420 
vkDestroyAccelerationStructureNV(VkDevice device,VkAccelerationStructureNV accelerationStructure,const VkAllocationCallbacks * pAllocator) const4421     void vkDestroyAccelerationStructureNV( VkDevice                      device,
4422                                            VkAccelerationStructureNV     accelerationStructure,
4423                                            const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
4424     {
4425       return ::vkDestroyAccelerationStructureNV( device, accelerationStructure, pAllocator );
4426     }
4427 
vkGetAccelerationStructureMemoryRequirementsNV(VkDevice device,const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2KHR * pMemoryRequirements) const4428     void vkGetAccelerationStructureMemoryRequirementsNV( VkDevice                                                device,
4429                                                          const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo,
4430                                                          VkMemoryRequirements2KHR * pMemoryRequirements ) const
4431       VULKAN_HPP_NOEXCEPT
4432     {
4433       return ::vkGetAccelerationStructureMemoryRequirementsNV( device, pInfo, pMemoryRequirements );
4434     }
4435 
vkBindAccelerationStructureMemoryNV(VkDevice device,uint32_t bindInfoCount,const VkBindAccelerationStructureMemoryInfoNV * pBindInfos) const4436     VkResult vkBindAccelerationStructureMemoryNV( VkDevice                                        device,
4437                                                   uint32_t                                        bindInfoCount,
4438                                                   const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) const
4439       VULKAN_HPP_NOEXCEPT
4440     {
4441       return ::vkBindAccelerationStructureMemoryNV( device, bindInfoCount, pBindInfos );
4442     }
4443 
vkCmdBuildAccelerationStructureNV(VkCommandBuffer commandBuffer,const VkAccelerationStructureInfoNV * pInfo,VkBuffer instanceData,VkDeviceSize instanceOffset,VkBool32 update,VkAccelerationStructureNV dst,VkAccelerationStructureNV src,VkBuffer scratch,VkDeviceSize scratchOffset) const4444     void vkCmdBuildAccelerationStructureNV( VkCommandBuffer                       commandBuffer,
4445                                             const VkAccelerationStructureInfoNV * pInfo,
4446                                             VkBuffer                              instanceData,
4447                                             VkDeviceSize                          instanceOffset,
4448                                             VkBool32                              update,
4449                                             VkAccelerationStructureNV             dst,
4450                                             VkAccelerationStructureNV             src,
4451                                             VkBuffer                              scratch,
4452                                             VkDeviceSize scratchOffset ) const VULKAN_HPP_NOEXCEPT
4453     {
4454       return ::vkCmdBuildAccelerationStructureNV(
4455         commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset );
4456     }
4457 
vkCmdCopyAccelerationStructureNV(VkCommandBuffer commandBuffer,VkAccelerationStructureNV dst,VkAccelerationStructureNV src,VkCopyAccelerationStructureModeKHR mode) const4458     void vkCmdCopyAccelerationStructureNV( VkCommandBuffer                    commandBuffer,
4459                                            VkAccelerationStructureNV          dst,
4460                                            VkAccelerationStructureNV          src,
4461                                            VkCopyAccelerationStructureModeKHR mode ) const VULKAN_HPP_NOEXCEPT
4462     {
4463       return ::vkCmdCopyAccelerationStructureNV( commandBuffer, dst, src, mode );
4464     }
4465 
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) const4466     void vkCmdTraceRaysNV( VkCommandBuffer commandBuffer,
4467                            VkBuffer        raygenShaderBindingTableBuffer,
4468                            VkDeviceSize    raygenShaderBindingOffset,
4469                            VkBuffer        missShaderBindingTableBuffer,
4470                            VkDeviceSize    missShaderBindingOffset,
4471                            VkDeviceSize    missShaderBindingStride,
4472                            VkBuffer        hitShaderBindingTableBuffer,
4473                            VkDeviceSize    hitShaderBindingOffset,
4474                            VkDeviceSize    hitShaderBindingStride,
4475                            VkBuffer        callableShaderBindingTableBuffer,
4476                            VkDeviceSize    callableShaderBindingOffset,
4477                            VkDeviceSize    callableShaderBindingStride,
4478                            uint32_t        width,
4479                            uint32_t        height,
4480                            uint32_t        depth ) const VULKAN_HPP_NOEXCEPT
4481     {
4482       return ::vkCmdTraceRaysNV( commandBuffer,
4483                                  raygenShaderBindingTableBuffer,
4484                                  raygenShaderBindingOffset,
4485                                  missShaderBindingTableBuffer,
4486                                  missShaderBindingOffset,
4487                                  missShaderBindingStride,
4488                                  hitShaderBindingTableBuffer,
4489                                  hitShaderBindingOffset,
4490                                  hitShaderBindingStride,
4491                                  callableShaderBindingTableBuffer,
4492                                  callableShaderBindingOffset,
4493                                  callableShaderBindingStride,
4494                                  width,
4495                                  height,
4496                                  depth );
4497     }
4498 
vkCreateRayTracingPipelinesNV(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoNV * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const4499     VkResult vkCreateRayTracingPipelinesNV( VkDevice                                 device,
4500                                             VkPipelineCache                          pipelineCache,
4501                                             uint32_t                                 createInfoCount,
4502                                             const VkRayTracingPipelineCreateInfoNV * pCreateInfos,
4503                                             const VkAllocationCallbacks *            pAllocator,
4504                                             VkPipeline * pPipelines ) const VULKAN_HPP_NOEXCEPT
4505     {
4506       return ::vkCreateRayTracingPipelinesNV(
4507         device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
4508     }
4509 
vkGetRayTracingShaderGroupHandlesNV(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData) const4510     VkResult vkGetRayTracingShaderGroupHandlesNV( VkDevice   device,
4511                                                   VkPipeline pipeline,
4512                                                   uint32_t   firstGroup,
4513                                                   uint32_t   groupCount,
4514                                                   size_t     dataSize,
4515                                                   void *     pData ) const VULKAN_HPP_NOEXCEPT
4516     {
4517       return ::vkGetRayTracingShaderGroupHandlesNV( device, pipeline, firstGroup, groupCount, dataSize, pData );
4518     }
4519 
vkGetAccelerationStructureHandleNV(VkDevice device,VkAccelerationStructureNV accelerationStructure,size_t dataSize,void * pData) const4520     VkResult vkGetAccelerationStructureHandleNV( VkDevice                  device,
4521                                                  VkAccelerationStructureNV accelerationStructure,
4522                                                  size_t                    dataSize,
4523                                                  void *                    pData ) const VULKAN_HPP_NOEXCEPT
4524     {
4525       return ::vkGetAccelerationStructureHandleNV( device, accelerationStructure, dataSize, pData );
4526     }
4527 
vkCmdWriteAccelerationStructuresPropertiesNV(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureNV * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery) const4528     void vkCmdWriteAccelerationStructuresPropertiesNV( VkCommandBuffer                   commandBuffer,
4529                                                        uint32_t                          accelerationStructureCount,
4530                                                        const VkAccelerationStructureNV * pAccelerationStructures,
4531                                                        VkQueryType                       queryType,
4532                                                        VkQueryPool                       queryPool,
4533                                                        uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT
4534     {
4535       return ::vkCmdWriteAccelerationStructuresPropertiesNV(
4536         commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery );
4537     }
4538 
vkCompileDeferredNV(VkDevice device,VkPipeline pipeline,uint32_t shader) const4539     VkResult vkCompileDeferredNV( VkDevice device, VkPipeline pipeline, uint32_t shader ) const VULKAN_HPP_NOEXCEPT
4540     {
4541       return ::vkCompileDeferredNV( device, pipeline, shader );
4542     }
4543 
4544     //=== VK_KHR_maintenance3 ===
4545 
vkGetDescriptorSetLayoutSupportKHR(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport) const4546     void vkGetDescriptorSetLayoutSupportKHR( VkDevice                                device,
4547                                              const VkDescriptorSetLayoutCreateInfo * pCreateInfo,
4548                                              VkDescriptorSetLayoutSupport * pSupport ) const VULKAN_HPP_NOEXCEPT
4549     {
4550       return ::vkGetDescriptorSetLayoutSupportKHR( device, pCreateInfo, pSupport );
4551     }
4552 
4553     //=== VK_KHR_draw_indirect_count ===
4554 
vkCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const4555     void vkCmdDrawIndirectCountKHR( VkCommandBuffer commandBuffer,
4556                                     VkBuffer        buffer,
4557                                     VkDeviceSize    offset,
4558                                     VkBuffer        countBuffer,
4559                                     VkDeviceSize    countBufferOffset,
4560                                     uint32_t        maxDrawCount,
4561                                     uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
4562     {
4563       return ::vkCmdDrawIndirectCountKHR(
4564         commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
4565     }
4566 
vkCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const4567     void vkCmdDrawIndexedIndirectCountKHR( VkCommandBuffer commandBuffer,
4568                                            VkBuffer        buffer,
4569                                            VkDeviceSize    offset,
4570                                            VkBuffer        countBuffer,
4571                                            VkDeviceSize    countBufferOffset,
4572                                            uint32_t        maxDrawCount,
4573                                            uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
4574     {
4575       return ::vkCmdDrawIndexedIndirectCountKHR(
4576         commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
4577     }
4578 
4579     //=== VK_EXT_external_memory_host ===
4580 
vkGetMemoryHostPointerPropertiesEXT(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties) const4581     VkResult vkGetMemoryHostPointerPropertiesEXT(
4582       VkDevice                           device,
4583       VkExternalMemoryHandleTypeFlagBits handleType,
4584       const void *                       pHostPointer,
4585       VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) const VULKAN_HPP_NOEXCEPT
4586     {
4587       return ::vkGetMemoryHostPointerPropertiesEXT( device, handleType, pHostPointer, pMemoryHostPointerProperties );
4588     }
4589 
4590     //=== VK_AMD_buffer_marker ===
4591 
vkCmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker) const4592     void vkCmdWriteBufferMarkerAMD( VkCommandBuffer         commandBuffer,
4593                                     VkPipelineStageFlagBits pipelineStage,
4594                                     VkBuffer                dstBuffer,
4595                                     VkDeviceSize            dstOffset,
4596                                     uint32_t                marker ) const VULKAN_HPP_NOEXCEPT
4597     {
4598       return ::vkCmdWriteBufferMarkerAMD( commandBuffer, pipelineStage, dstBuffer, dstOffset, marker );
4599     }
4600 
4601     //=== VK_EXT_calibrated_timestamps ===
4602 
vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice,uint32_t * pTimeDomainCount,VkTimeDomainEXT * pTimeDomains) const4603     VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( VkPhysicalDevice  physicalDevice,
4604                                                              uint32_t *        pTimeDomainCount,
4605                                                              VkTimeDomainEXT * pTimeDomains ) const VULKAN_HPP_NOEXCEPT
4606     {
4607       return ::vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( physicalDevice, pTimeDomainCount, pTimeDomains );
4608     }
4609 
vkGetCalibratedTimestampsEXT(VkDevice device,uint32_t timestampCount,const VkCalibratedTimestampInfoEXT * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation) const4610     VkResult vkGetCalibratedTimestampsEXT( VkDevice                             device,
4611                                            uint32_t                             timestampCount,
4612                                            const VkCalibratedTimestampInfoEXT * pTimestampInfos,
4613                                            uint64_t *                           pTimestamps,
4614                                            uint64_t * pMaxDeviation ) const VULKAN_HPP_NOEXCEPT
4615     {
4616       return ::vkGetCalibratedTimestampsEXT( device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation );
4617     }
4618 
4619     //=== VK_NV_mesh_shader ===
4620 
vkCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer,uint32_t taskCount,uint32_t firstTask) const4621     void vkCmdDrawMeshTasksNV( VkCommandBuffer commandBuffer,
4622                                uint32_t        taskCount,
4623                                uint32_t        firstTask ) const VULKAN_HPP_NOEXCEPT
4624     {
4625       return ::vkCmdDrawMeshTasksNV( commandBuffer, taskCount, firstTask );
4626     }
4627 
vkCmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride) const4628     void vkCmdDrawMeshTasksIndirectNV( VkCommandBuffer commandBuffer,
4629                                        VkBuffer        buffer,
4630                                        VkDeviceSize    offset,
4631                                        uint32_t        drawCount,
4632                                        uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
4633     {
4634       return ::vkCmdDrawMeshTasksIndirectNV( commandBuffer, buffer, offset, drawCount, stride );
4635     }
4636 
vkCmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const4637     void vkCmdDrawMeshTasksIndirectCountNV( VkCommandBuffer commandBuffer,
4638                                             VkBuffer        buffer,
4639                                             VkDeviceSize    offset,
4640                                             VkBuffer        countBuffer,
4641                                             VkDeviceSize    countBufferOffset,
4642                                             uint32_t        maxDrawCount,
4643                                             uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
4644     {
4645       return ::vkCmdDrawMeshTasksIndirectCountNV(
4646         commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
4647     }
4648 
4649     //=== VK_NV_scissor_exclusive ===
4650 
vkCmdSetExclusiveScissorNV(VkCommandBuffer commandBuffer,uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VkRect2D * pExclusiveScissors) const4651     void vkCmdSetExclusiveScissorNV( VkCommandBuffer  commandBuffer,
4652                                      uint32_t         firstExclusiveScissor,
4653                                      uint32_t         exclusiveScissorCount,
4654                                      const VkRect2D * pExclusiveScissors ) const VULKAN_HPP_NOEXCEPT
4655     {
4656       return ::vkCmdSetExclusiveScissorNV(
4657         commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors );
4658     }
4659 
4660     //=== VK_NV_device_diagnostic_checkpoints ===
4661 
vkCmdSetCheckpointNV(VkCommandBuffer commandBuffer,const void * pCheckpointMarker) const4662     void vkCmdSetCheckpointNV( VkCommandBuffer commandBuffer, const void * pCheckpointMarker ) const VULKAN_HPP_NOEXCEPT
4663     {
4664       return ::vkCmdSetCheckpointNV( commandBuffer, pCheckpointMarker );
4665     }
4666 
vkGetQueueCheckpointDataNV(VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointDataNV * pCheckpointData) const4667     void vkGetQueueCheckpointDataNV( VkQueue              queue,
4668                                      uint32_t *           pCheckpointDataCount,
4669                                      VkCheckpointDataNV * pCheckpointData ) const VULKAN_HPP_NOEXCEPT
4670     {
4671       return ::vkGetQueueCheckpointDataNV( queue, pCheckpointDataCount, pCheckpointData );
4672     }
4673 
4674     //=== VK_KHR_timeline_semaphore ===
4675 
vkGetSemaphoreCounterValueKHR(VkDevice device,VkSemaphore semaphore,uint64_t * pValue) const4676     VkResult vkGetSemaphoreCounterValueKHR( VkDevice    device,
4677                                             VkSemaphore semaphore,
4678                                             uint64_t *  pValue ) const VULKAN_HPP_NOEXCEPT
4679     {
4680       return ::vkGetSemaphoreCounterValueKHR( device, semaphore, pValue );
4681     }
4682 
vkWaitSemaphoresKHR(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout) const4683     VkResult vkWaitSemaphoresKHR( VkDevice                    device,
4684                                   const VkSemaphoreWaitInfo * pWaitInfo,
4685                                   uint64_t                    timeout ) const VULKAN_HPP_NOEXCEPT
4686     {
4687       return ::vkWaitSemaphoresKHR( device, pWaitInfo, timeout );
4688     }
4689 
vkSignalSemaphoreKHR(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo) const4690     VkResult vkSignalSemaphoreKHR( VkDevice                      device,
4691                                    const VkSemaphoreSignalInfo * pSignalInfo ) const VULKAN_HPP_NOEXCEPT
4692     {
4693       return ::vkSignalSemaphoreKHR( device, pSignalInfo );
4694     }
4695 
4696     //=== VK_INTEL_performance_query ===
4697 
vkInitializePerformanceApiINTEL(VkDevice device,const VkInitializePerformanceApiInfoINTEL * pInitializeInfo) const4698     VkResult vkInitializePerformanceApiINTEL(
4699       VkDevice device, const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) const VULKAN_HPP_NOEXCEPT
4700     {
4701       return ::vkInitializePerformanceApiINTEL( device, pInitializeInfo );
4702     }
4703 
vkUninitializePerformanceApiINTEL(VkDevice device) const4704     void vkUninitializePerformanceApiINTEL( VkDevice device ) const VULKAN_HPP_NOEXCEPT
4705     {
4706       return ::vkUninitializePerformanceApiINTEL( device );
4707     }
4708 
4709     VkResult
vkCmdSetPerformanceMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceMarkerInfoINTEL * pMarkerInfo) const4710       vkCmdSetPerformanceMarkerINTEL( VkCommandBuffer                      commandBuffer,
4711                                       const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
4712     {
4713       return ::vkCmdSetPerformanceMarkerINTEL( commandBuffer, pMarkerInfo );
4714     }
4715 
vkCmdSetPerformanceStreamMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo) const4716     VkResult vkCmdSetPerformanceStreamMarkerINTEL(
4717       VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
4718     {
4719       return ::vkCmdSetPerformanceStreamMarkerINTEL( commandBuffer, pMarkerInfo );
4720     }
4721 
4722     VkResult
vkCmdSetPerformanceOverrideINTEL(VkCommandBuffer commandBuffer,const VkPerformanceOverrideInfoINTEL * pOverrideInfo) const4723       vkCmdSetPerformanceOverrideINTEL( VkCommandBuffer                        commandBuffer,
4724                                         const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) const VULKAN_HPP_NOEXCEPT
4725     {
4726       return ::vkCmdSetPerformanceOverrideINTEL( commandBuffer, pOverrideInfo );
4727     }
4728 
vkAcquirePerformanceConfigurationINTEL(VkDevice device,const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,VkPerformanceConfigurationINTEL * pConfiguration) const4729     VkResult vkAcquirePerformanceConfigurationINTEL( VkDevice                                           device,
4730                                                      const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,
4731                                                      VkPerformanceConfigurationINTEL * pConfiguration ) const
4732       VULKAN_HPP_NOEXCEPT
4733     {
4734       return ::vkAcquirePerformanceConfigurationINTEL( device, pAcquireInfo, pConfiguration );
4735     }
4736 
4737     VkResult
vkReleasePerformanceConfigurationINTEL(VkDevice device,VkPerformanceConfigurationINTEL configuration) const4738       vkReleasePerformanceConfigurationINTEL( VkDevice                        device,
4739                                               VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT
4740     {
4741       return ::vkReleasePerformanceConfigurationINTEL( device, configuration );
4742     }
4743 
4744     VkResult
vkQueueSetPerformanceConfigurationINTEL(VkQueue queue,VkPerformanceConfigurationINTEL configuration) const4745       vkQueueSetPerformanceConfigurationINTEL( VkQueue                         queue,
4746                                                VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT
4747     {
4748       return ::vkQueueSetPerformanceConfigurationINTEL( queue, configuration );
4749     }
4750 
vkGetPerformanceParameterINTEL(VkDevice device,VkPerformanceParameterTypeINTEL parameter,VkPerformanceValueINTEL * pValue) const4751     VkResult vkGetPerformanceParameterINTEL( VkDevice                        device,
4752                                              VkPerformanceParameterTypeINTEL parameter,
4753                                              VkPerformanceValueINTEL *       pValue ) const VULKAN_HPP_NOEXCEPT
4754     {
4755       return ::vkGetPerformanceParameterINTEL( device, parameter, pValue );
4756     }
4757 
4758     //=== VK_AMD_display_native_hdr ===
4759 
vkSetLocalDimmingAMD(VkDevice device,VkSwapchainKHR swapChain,VkBool32 localDimmingEnable) const4760     void vkSetLocalDimmingAMD( VkDevice       device,
4761                                VkSwapchainKHR swapChain,
4762                                VkBool32       localDimmingEnable ) const VULKAN_HPP_NOEXCEPT
4763     {
4764       return ::vkSetLocalDimmingAMD( device, swapChain, localDimmingEnable );
4765     }
4766 
4767 #  if defined( VK_USE_PLATFORM_FUCHSIA )
4768     //=== VK_FUCHSIA_imagepipe_surface ===
4769 
vkCreateImagePipeSurfaceFUCHSIA(VkInstance instance,const VkImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const4770     VkResult vkCreateImagePipeSurfaceFUCHSIA( VkInstance                                  instance,
4771                                               const VkImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,
4772                                               const VkAllocationCallbacks *               pAllocator,
4773                                               VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT
4774     {
4775       return ::vkCreateImagePipeSurfaceFUCHSIA( instance, pCreateInfo, pAllocator, pSurface );
4776     }
4777 #  endif /*VK_USE_PLATFORM_FUCHSIA*/
4778 
4779 #  if defined( VK_USE_PLATFORM_METAL_EXT )
4780     //=== VK_EXT_metal_surface ===
4781 
vkCreateMetalSurfaceEXT(VkInstance instance,const VkMetalSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const4782     VkResult vkCreateMetalSurfaceEXT( VkInstance                          instance,
4783                                       const VkMetalSurfaceCreateInfoEXT * pCreateInfo,
4784                                       const VkAllocationCallbacks *       pAllocator,
4785                                       VkSurfaceKHR *                      pSurface ) const VULKAN_HPP_NOEXCEPT
4786     {
4787       return ::vkCreateMetalSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
4788     }
4789 #  endif /*VK_USE_PLATFORM_METAL_EXT*/
4790 
4791     //=== VK_KHR_fragment_shading_rate ===
4792 
vkGetPhysicalDeviceFragmentShadingRatesKHR(VkPhysicalDevice physicalDevice,uint32_t * pFragmentShadingRateCount,VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates) const4793     VkResult vkGetPhysicalDeviceFragmentShadingRatesKHR(
4794       VkPhysicalDevice                         physicalDevice,
4795       uint32_t *                               pFragmentShadingRateCount,
4796       VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) const VULKAN_HPP_NOEXCEPT
4797     {
4798       return ::vkGetPhysicalDeviceFragmentShadingRatesKHR(
4799         physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates );
4800     }
4801 
vkCmdSetFragmentShadingRateKHR(VkCommandBuffer commandBuffer,const VkExtent2D * pFragmentSize,const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const4802     void vkCmdSetFragmentShadingRateKHR( VkCommandBuffer                          commandBuffer,
4803                                          const VkExtent2D *                       pFragmentSize,
4804                                          const VkFragmentShadingRateCombinerOpKHR combinerOps[2] ) const
4805       VULKAN_HPP_NOEXCEPT
4806     {
4807       return ::vkCmdSetFragmentShadingRateKHR( commandBuffer, pFragmentSize, combinerOps );
4808     }
4809 
4810     //=== VK_EXT_buffer_device_address ===
4811 
vkGetBufferDeviceAddressEXT(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const4812     VkDeviceAddress vkGetBufferDeviceAddressEXT( VkDevice                          device,
4813                                                  const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
4814     {
4815       return ::vkGetBufferDeviceAddressEXT( device, pInfo );
4816     }
4817 
4818     //=== VK_EXT_tooling_info ===
4819 
vkGetPhysicalDeviceToolPropertiesEXT(VkPhysicalDevice physicalDevice,uint32_t * pToolCount,VkPhysicalDeviceToolPropertiesEXT * pToolProperties) const4820     VkResult vkGetPhysicalDeviceToolPropertiesEXT( VkPhysicalDevice                    physicalDevice,
4821                                                    uint32_t *                          pToolCount,
4822                                                    VkPhysicalDeviceToolPropertiesEXT * pToolProperties ) const
4823       VULKAN_HPP_NOEXCEPT
4824     {
4825       return ::vkGetPhysicalDeviceToolPropertiesEXT( physicalDevice, pToolCount, pToolProperties );
4826     }
4827 
4828     //=== VK_KHR_present_wait ===
4829 
vkWaitForPresentKHR(VkDevice device,VkSwapchainKHR swapchain,uint64_t presentId,uint64_t timeout) const4830     VkResult vkWaitForPresentKHR( VkDevice       device,
4831                                   VkSwapchainKHR swapchain,
4832                                   uint64_t       presentId,
4833                                   uint64_t       timeout ) const VULKAN_HPP_NOEXCEPT
4834     {
4835       return ::vkWaitForPresentKHR( device, swapchain, presentId, timeout );
4836     }
4837 
4838     //=== VK_NV_cooperative_matrix ===
4839 
vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeMatrixPropertiesNV * pProperties) const4840     VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDevice                  physicalDevice,
4841                                                                uint32_t *                        pPropertyCount,
4842                                                                VkCooperativeMatrixPropertiesNV * pProperties ) const
4843       VULKAN_HPP_NOEXCEPT
4844     {
4845       return ::vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( physicalDevice, pPropertyCount, pProperties );
4846     }
4847 
4848     //=== VK_NV_coverage_reduction_mode ===
4849 
vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(VkPhysicalDevice physicalDevice,uint32_t * pCombinationCount,VkFramebufferMixedSamplesCombinationNV * pCombinations) const4850     VkResult vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
4851       VkPhysicalDevice                         physicalDevice,
4852       uint32_t *                               pCombinationCount,
4853       VkFramebufferMixedSamplesCombinationNV * pCombinations ) const VULKAN_HPP_NOEXCEPT
4854     {
4855       return ::vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
4856         physicalDevice, pCombinationCount, pCombinations );
4857     }
4858 
4859 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
4860     //=== VK_EXT_full_screen_exclusive ===
4861 
vkGetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pPresentModeCount,VkPresentModeKHR * pPresentModes) const4862     VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT( VkPhysicalDevice                        physicalDevice,
4863                                                          const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,
4864                                                          uint32_t *                              pPresentModeCount,
4865                                                          VkPresentModeKHR * pPresentModes ) const VULKAN_HPP_NOEXCEPT
4866     {
4867       return ::vkGetPhysicalDeviceSurfacePresentModes2EXT(
4868         physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes );
4869     }
4870 
vkAcquireFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain) const4871     VkResult vkAcquireFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
4872     {
4873       return ::vkAcquireFullScreenExclusiveModeEXT( device, swapchain );
4874     }
4875 
vkReleaseFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain) const4876     VkResult vkReleaseFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
4877     {
4878       return ::vkReleaseFullScreenExclusiveModeEXT( device, swapchain );
4879     }
4880 
4881     VkResult
vkGetDeviceGroupSurfacePresentModes2EXT(VkDevice device,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VkDeviceGroupPresentModeFlagsKHR * pModes) const4882       vkGetDeviceGroupSurfacePresentModes2EXT( VkDevice                                device,
4883                                                const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,
4884                                                VkDeviceGroupPresentModeFlagsKHR * pModes ) const VULKAN_HPP_NOEXCEPT
4885     {
4886       return ::vkGetDeviceGroupSurfacePresentModes2EXT( device, pSurfaceInfo, pModes );
4887     }
4888 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
4889 
4890     //=== VK_EXT_headless_surface ===
4891 
vkCreateHeadlessSurfaceEXT(VkInstance instance,const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const4892     VkResult vkCreateHeadlessSurfaceEXT( VkInstance                             instance,
4893                                          const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo,
4894                                          const VkAllocationCallbacks *          pAllocator,
4895                                          VkSurfaceKHR *                         pSurface ) const VULKAN_HPP_NOEXCEPT
4896     {
4897       return ::vkCreateHeadlessSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
4898     }
4899 
4900     //=== VK_KHR_buffer_device_address ===
4901 
vkGetBufferDeviceAddressKHR(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const4902     VkDeviceAddress vkGetBufferDeviceAddressKHR( VkDevice                          device,
4903                                                  const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
4904     {
4905       return ::vkGetBufferDeviceAddressKHR( device, pInfo );
4906     }
4907 
vkGetBufferOpaqueCaptureAddressKHR(VkDevice device,const VkBufferDeviceAddressInfo * pInfo) const4908     uint64_t vkGetBufferOpaqueCaptureAddressKHR( VkDevice                          device,
4909                                                  const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
4910     {
4911       return ::vkGetBufferOpaqueCaptureAddressKHR( device, pInfo );
4912     }
4913 
vkGetDeviceMemoryOpaqueCaptureAddressKHR(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo) const4914     uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR(
4915       VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
4916     {
4917       return ::vkGetDeviceMemoryOpaqueCaptureAddressKHR( device, pInfo );
4918     }
4919 
4920     //=== VK_EXT_line_rasterization ===
4921 
vkCmdSetLineStippleEXT(VkCommandBuffer commandBuffer,uint32_t lineStippleFactor,uint16_t lineStipplePattern) const4922     void vkCmdSetLineStippleEXT( VkCommandBuffer commandBuffer,
4923                                  uint32_t        lineStippleFactor,
4924                                  uint16_t        lineStipplePattern ) const VULKAN_HPP_NOEXCEPT
4925     {
4926       return ::vkCmdSetLineStippleEXT( commandBuffer, lineStippleFactor, lineStipplePattern );
4927     }
4928 
4929     //=== VK_EXT_host_query_reset ===
4930 
vkResetQueryPoolEXT(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const4931     void vkResetQueryPoolEXT( VkDevice    device,
4932                               VkQueryPool queryPool,
4933                               uint32_t    firstQuery,
4934                               uint32_t    queryCount ) const VULKAN_HPP_NOEXCEPT
4935     {
4936       return ::vkResetQueryPoolEXT( device, queryPool, firstQuery, queryCount );
4937     }
4938 
4939     //=== VK_EXT_extended_dynamic_state ===
4940 
vkCmdSetCullModeEXT(VkCommandBuffer commandBuffer,VkCullModeFlags cullMode) const4941     void vkCmdSetCullModeEXT( VkCommandBuffer commandBuffer, VkCullModeFlags cullMode ) const VULKAN_HPP_NOEXCEPT
4942     {
4943       return ::vkCmdSetCullModeEXT( commandBuffer, cullMode );
4944     }
4945 
vkCmdSetFrontFaceEXT(VkCommandBuffer commandBuffer,VkFrontFace frontFace) const4946     void vkCmdSetFrontFaceEXT( VkCommandBuffer commandBuffer, VkFrontFace frontFace ) const VULKAN_HPP_NOEXCEPT
4947     {
4948       return ::vkCmdSetFrontFaceEXT( commandBuffer, frontFace );
4949     }
4950 
vkCmdSetPrimitiveTopologyEXT(VkCommandBuffer commandBuffer,VkPrimitiveTopology primitiveTopology) const4951     void vkCmdSetPrimitiveTopologyEXT( VkCommandBuffer     commandBuffer,
4952                                        VkPrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT
4953     {
4954       return ::vkCmdSetPrimitiveTopologyEXT( commandBuffer, primitiveTopology );
4955     }
4956 
vkCmdSetViewportWithCountEXT(VkCommandBuffer commandBuffer,uint32_t viewportCount,const VkViewport * pViewports) const4957     void vkCmdSetViewportWithCountEXT( VkCommandBuffer    commandBuffer,
4958                                        uint32_t           viewportCount,
4959                                        const VkViewport * pViewports ) const VULKAN_HPP_NOEXCEPT
4960     {
4961       return ::vkCmdSetViewportWithCountEXT( commandBuffer, viewportCount, pViewports );
4962     }
4963 
vkCmdSetScissorWithCountEXT(VkCommandBuffer commandBuffer,uint32_t scissorCount,const VkRect2D * pScissors) const4964     void vkCmdSetScissorWithCountEXT( VkCommandBuffer  commandBuffer,
4965                                       uint32_t         scissorCount,
4966                                       const VkRect2D * pScissors ) const VULKAN_HPP_NOEXCEPT
4967     {
4968       return ::vkCmdSetScissorWithCountEXT( commandBuffer, scissorCount, pScissors );
4969     }
4970 
vkCmdBindVertexBuffers2EXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes,const VkDeviceSize * pStrides) const4971     void vkCmdBindVertexBuffers2EXT( VkCommandBuffer      commandBuffer,
4972                                      uint32_t             firstBinding,
4973                                      uint32_t             bindingCount,
4974                                      const VkBuffer *     pBuffers,
4975                                      const VkDeviceSize * pOffsets,
4976                                      const VkDeviceSize * pSizes,
4977                                      const VkDeviceSize * pStrides ) const VULKAN_HPP_NOEXCEPT
4978     {
4979       return ::vkCmdBindVertexBuffers2EXT(
4980         commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides );
4981     }
4982 
vkCmdSetDepthTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthTestEnable) const4983     void vkCmdSetDepthTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT
4984     {
4985       return ::vkCmdSetDepthTestEnableEXT( commandBuffer, depthTestEnable );
4986     }
4987 
vkCmdSetDepthWriteEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthWriteEnable) const4988     void vkCmdSetDepthWriteEnableEXT( VkCommandBuffer commandBuffer,
4989                                       VkBool32        depthWriteEnable ) const VULKAN_HPP_NOEXCEPT
4990     {
4991       return ::vkCmdSetDepthWriteEnableEXT( commandBuffer, depthWriteEnable );
4992     }
4993 
vkCmdSetDepthCompareOpEXT(VkCommandBuffer commandBuffer,VkCompareOp depthCompareOp) const4994     void vkCmdSetDepthCompareOpEXT( VkCommandBuffer commandBuffer,
4995                                     VkCompareOp     depthCompareOp ) const VULKAN_HPP_NOEXCEPT
4996     {
4997       return ::vkCmdSetDepthCompareOpEXT( commandBuffer, depthCompareOp );
4998     }
4999 
vkCmdSetDepthBoundsTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthBoundsTestEnable) const5000     void vkCmdSetDepthBoundsTestEnableEXT( VkCommandBuffer commandBuffer,
5001                                            VkBool32        depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT
5002     {
5003       return ::vkCmdSetDepthBoundsTestEnableEXT( commandBuffer, depthBoundsTestEnable );
5004     }
5005 
vkCmdSetStencilTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 stencilTestEnable) const5006     void vkCmdSetStencilTestEnableEXT( VkCommandBuffer commandBuffer,
5007                                        VkBool32        stencilTestEnable ) const VULKAN_HPP_NOEXCEPT
5008     {
5009       return ::vkCmdSetStencilTestEnableEXT( commandBuffer, stencilTestEnable );
5010     }
5011 
vkCmdSetStencilOpEXT(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,VkStencilOp failOp,VkStencilOp passOp,VkStencilOp depthFailOp,VkCompareOp compareOp) const5012     void vkCmdSetStencilOpEXT( VkCommandBuffer    commandBuffer,
5013                                VkStencilFaceFlags faceMask,
5014                                VkStencilOp        failOp,
5015                                VkStencilOp        passOp,
5016                                VkStencilOp        depthFailOp,
5017                                VkCompareOp        compareOp ) const VULKAN_HPP_NOEXCEPT
5018     {
5019       return ::vkCmdSetStencilOpEXT( commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp );
5020     }
5021 
5022     //=== VK_KHR_deferred_host_operations ===
5023 
vkCreateDeferredOperationKHR(VkDevice device,const VkAllocationCallbacks * pAllocator,VkDeferredOperationKHR * pDeferredOperation) const5024     VkResult vkCreateDeferredOperationKHR( VkDevice                      device,
5025                                            const VkAllocationCallbacks * pAllocator,
5026                                            VkDeferredOperationKHR *      pDeferredOperation ) const VULKAN_HPP_NOEXCEPT
5027     {
5028       return ::vkCreateDeferredOperationKHR( device, pAllocator, pDeferredOperation );
5029     }
5030 
vkDestroyDeferredOperationKHR(VkDevice device,VkDeferredOperationKHR operation,const VkAllocationCallbacks * pAllocator) const5031     void vkDestroyDeferredOperationKHR( VkDevice                      device,
5032                                         VkDeferredOperationKHR        operation,
5033                                         const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
5034     {
5035       return ::vkDestroyDeferredOperationKHR( device, operation, pAllocator );
5036     }
5037 
vkGetDeferredOperationMaxConcurrencyKHR(VkDevice device,VkDeferredOperationKHR operation) const5038     uint32_t vkGetDeferredOperationMaxConcurrencyKHR( VkDevice               device,
5039                                                       VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
5040     {
5041       return ::vkGetDeferredOperationMaxConcurrencyKHR( device, operation );
5042     }
5043 
vkGetDeferredOperationResultKHR(VkDevice device,VkDeferredOperationKHR operation) const5044     VkResult vkGetDeferredOperationResultKHR( VkDevice               device,
5045                                               VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
5046     {
5047       return ::vkGetDeferredOperationResultKHR( device, operation );
5048     }
5049 
vkDeferredOperationJoinKHR(VkDevice device,VkDeferredOperationKHR operation) const5050     VkResult vkDeferredOperationJoinKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
5051     {
5052       return ::vkDeferredOperationJoinKHR( device, operation );
5053     }
5054 
5055     //=== VK_KHR_pipeline_executable_properties ===
5056 
5057     VkResult
vkGetPipelineExecutablePropertiesKHR(VkDevice device,const VkPipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VkPipelineExecutablePropertiesKHR * pProperties) const5058       vkGetPipelineExecutablePropertiesKHR( VkDevice                            device,
5059                                             const VkPipelineInfoKHR *           pPipelineInfo,
5060                                             uint32_t *                          pExecutableCount,
5061                                             VkPipelineExecutablePropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT
5062     {
5063       return ::vkGetPipelineExecutablePropertiesKHR( device, pPipelineInfo, pExecutableCount, pProperties );
5064     }
5065 
5066     VkResult
vkGetPipelineExecutableStatisticsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VkPipelineExecutableStatisticKHR * pStatistics) const5067       vkGetPipelineExecutableStatisticsKHR( VkDevice                            device,
5068                                             const VkPipelineExecutableInfoKHR * pExecutableInfo,
5069                                             uint32_t *                          pStatisticCount,
5070                                             VkPipelineExecutableStatisticKHR *  pStatistics ) const VULKAN_HPP_NOEXCEPT
5071     {
5072       return ::vkGetPipelineExecutableStatisticsKHR( device, pExecutableInfo, pStatisticCount, pStatistics );
5073     }
5074 
vkGetPipelineExecutableInternalRepresentationsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations) const5075     VkResult vkGetPipelineExecutableInternalRepresentationsKHR(
5076       VkDevice                                        device,
5077       const VkPipelineExecutableInfoKHR *             pExecutableInfo,
5078       uint32_t *                                      pInternalRepresentationCount,
5079       VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) const VULKAN_HPP_NOEXCEPT
5080     {
5081       return ::vkGetPipelineExecutableInternalRepresentationsKHR(
5082         device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations );
5083     }
5084 
5085     //=== VK_NV_device_generated_commands ===
5086 
vkGetGeneratedCommandsMemoryRequirementsNV(VkDevice device,const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const5087     void vkGetGeneratedCommandsMemoryRequirementsNV( VkDevice                                            device,
5088                                                      const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo,
5089                                                      VkMemoryRequirements2 * pMemoryRequirements ) const
5090       VULKAN_HPP_NOEXCEPT
5091     {
5092       return ::vkGetGeneratedCommandsMemoryRequirementsNV( device, pInfo, pMemoryRequirements );
5093     }
5094 
vkCmdPreprocessGeneratedCommandsNV(VkCommandBuffer commandBuffer,const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo) const5095     void vkCmdPreprocessGeneratedCommandsNV( VkCommandBuffer                   commandBuffer,
5096                                              const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) const
5097       VULKAN_HPP_NOEXCEPT
5098     {
5099       return ::vkCmdPreprocessGeneratedCommandsNV( commandBuffer, pGeneratedCommandsInfo );
5100     }
5101 
vkCmdExecuteGeneratedCommandsNV(VkCommandBuffer commandBuffer,VkBool32 isPreprocessed,const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo) const5102     void vkCmdExecuteGeneratedCommandsNV( VkCommandBuffer                   commandBuffer,
5103                                           VkBool32                          isPreprocessed,
5104                                           const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) const
5105       VULKAN_HPP_NOEXCEPT
5106     {
5107       return ::vkCmdExecuteGeneratedCommandsNV( commandBuffer, isPreprocessed, pGeneratedCommandsInfo );
5108     }
5109 
vkCmdBindPipelineShaderGroupNV(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline,uint32_t groupIndex) const5110     void vkCmdBindPipelineShaderGroupNV( VkCommandBuffer     commandBuffer,
5111                                          VkPipelineBindPoint pipelineBindPoint,
5112                                          VkPipeline          pipeline,
5113                                          uint32_t            groupIndex ) const VULKAN_HPP_NOEXCEPT
5114     {
5115       return ::vkCmdBindPipelineShaderGroupNV( commandBuffer, pipelineBindPoint, pipeline, groupIndex );
5116     }
5117 
5118     VkResult
vkCreateIndirectCommandsLayoutNV(VkDevice device,const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkIndirectCommandsLayoutNV * pIndirectCommandsLayout) const5119       vkCreateIndirectCommandsLayoutNV( VkDevice                                     device,
5120                                         const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo,
5121                                         const VkAllocationCallbacks *                pAllocator,
5122                                         VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) const VULKAN_HPP_NOEXCEPT
5123     {
5124       return ::vkCreateIndirectCommandsLayoutNV( device, pCreateInfo, pAllocator, pIndirectCommandsLayout );
5125     }
5126 
vkDestroyIndirectCommandsLayoutNV(VkDevice device,VkIndirectCommandsLayoutNV indirectCommandsLayout,const VkAllocationCallbacks * pAllocator) const5127     void vkDestroyIndirectCommandsLayoutNV( VkDevice                      device,
5128                                             VkIndirectCommandsLayoutNV    indirectCommandsLayout,
5129                                             const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
5130     {
5131       return ::vkDestroyIndirectCommandsLayoutNV( device, indirectCommandsLayout, pAllocator );
5132     }
5133 
5134     //=== VK_EXT_acquire_drm_display ===
5135 
vkAcquireDrmDisplayEXT(VkPhysicalDevice physicalDevice,int32_t drmFd,VkDisplayKHR display) const5136     VkResult vkAcquireDrmDisplayEXT( VkPhysicalDevice physicalDevice,
5137                                      int32_t          drmFd,
5138                                      VkDisplayKHR     display ) const VULKAN_HPP_NOEXCEPT
5139     {
5140       return ::vkAcquireDrmDisplayEXT( physicalDevice, drmFd, display );
5141     }
5142 
vkGetDrmDisplayEXT(VkPhysicalDevice physicalDevice,int32_t drmFd,uint32_t connectorId,VkDisplayKHR * display) const5143     VkResult vkGetDrmDisplayEXT( VkPhysicalDevice physicalDevice,
5144                                  int32_t          drmFd,
5145                                  uint32_t         connectorId,
5146                                  VkDisplayKHR *   display ) const VULKAN_HPP_NOEXCEPT
5147     {
5148       return ::vkGetDrmDisplayEXT( physicalDevice, drmFd, connectorId, display );
5149     }
5150 
5151     //=== VK_EXT_private_data ===
5152 
vkCreatePrivateDataSlotEXT(VkDevice device,const VkPrivateDataSlotCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPrivateDataSlotEXT * pPrivateDataSlot) const5153     VkResult vkCreatePrivateDataSlotEXT( VkDevice                               device,
5154                                          const VkPrivateDataSlotCreateInfoEXT * pCreateInfo,
5155                                          const VkAllocationCallbacks *          pAllocator,
5156                                          VkPrivateDataSlotEXT * pPrivateDataSlot ) const VULKAN_HPP_NOEXCEPT
5157     {
5158       return ::vkCreatePrivateDataSlotEXT( device, pCreateInfo, pAllocator, pPrivateDataSlot );
5159     }
5160 
vkDestroyPrivateDataSlotEXT(VkDevice device,VkPrivateDataSlotEXT privateDataSlot,const VkAllocationCallbacks * pAllocator) const5161     void vkDestroyPrivateDataSlotEXT( VkDevice                      device,
5162                                       VkPrivateDataSlotEXT          privateDataSlot,
5163                                       const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
5164     {
5165       return ::vkDestroyPrivateDataSlotEXT( device, privateDataSlot, pAllocator );
5166     }
5167 
vkSetPrivateDataEXT(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlotEXT privateDataSlot,uint64_t data) const5168     VkResult vkSetPrivateDataEXT( VkDevice             device,
5169                                   VkObjectType         objectType,
5170                                   uint64_t             objectHandle,
5171                                   VkPrivateDataSlotEXT privateDataSlot,
5172                                   uint64_t             data ) const VULKAN_HPP_NOEXCEPT
5173     {
5174       return ::vkSetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, data );
5175     }
5176 
vkGetPrivateDataEXT(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlotEXT privateDataSlot,uint64_t * pData) const5177     void vkGetPrivateDataEXT( VkDevice             device,
5178                               VkObjectType         objectType,
5179                               uint64_t             objectHandle,
5180                               VkPrivateDataSlotEXT privateDataSlot,
5181                               uint64_t *           pData ) const VULKAN_HPP_NOEXCEPT
5182     {
5183       return ::vkGetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, pData );
5184     }
5185 
5186 #  if defined( VK_ENABLE_BETA_EXTENSIONS )
5187     //=== VK_KHR_video_encode_queue ===
5188 
vkCmdEncodeVideoKHR(VkCommandBuffer commandBuffer,const VkVideoEncodeInfoKHR * pEncodeInfo) const5189     void vkCmdEncodeVideoKHR( VkCommandBuffer              commandBuffer,
5190                               const VkVideoEncodeInfoKHR * pEncodeInfo ) const VULKAN_HPP_NOEXCEPT
5191     {
5192       return ::vkCmdEncodeVideoKHR( commandBuffer, pEncodeInfo );
5193     }
5194 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
5195 
5196     //=== VK_KHR_synchronization2 ===
5197 
vkCmdSetEvent2KHR(VkCommandBuffer commandBuffer,VkEvent event,const VkDependencyInfoKHR * pDependencyInfo) const5198     void vkCmdSetEvent2KHR( VkCommandBuffer             commandBuffer,
5199                             VkEvent                     event,
5200                             const VkDependencyInfoKHR * pDependencyInfo ) const VULKAN_HPP_NOEXCEPT
5201     {
5202       return ::vkCmdSetEvent2KHR( commandBuffer, event, pDependencyInfo );
5203     }
5204 
vkCmdResetEvent2KHR(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags2KHR stageMask) const5205     void vkCmdResetEvent2KHR( VkCommandBuffer          commandBuffer,
5206                               VkEvent                  event,
5207                               VkPipelineStageFlags2KHR stageMask ) const VULKAN_HPP_NOEXCEPT
5208     {
5209       return ::vkCmdResetEvent2KHR( commandBuffer, event, stageMask );
5210     }
5211 
vkCmdWaitEvents2KHR(VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,const VkDependencyInfoKHR * pDependencyInfos) const5212     void vkCmdWaitEvents2KHR( VkCommandBuffer             commandBuffer,
5213                               uint32_t                    eventCount,
5214                               const VkEvent *             pEvents,
5215                               const VkDependencyInfoKHR * pDependencyInfos ) const VULKAN_HPP_NOEXCEPT
5216     {
5217       return ::vkCmdWaitEvents2KHR( commandBuffer, eventCount, pEvents, pDependencyInfos );
5218     }
5219 
vkCmdPipelineBarrier2KHR(VkCommandBuffer commandBuffer,const VkDependencyInfoKHR * pDependencyInfo) const5220     void vkCmdPipelineBarrier2KHR( VkCommandBuffer             commandBuffer,
5221                                    const VkDependencyInfoKHR * pDependencyInfo ) const VULKAN_HPP_NOEXCEPT
5222     {
5223       return ::vkCmdPipelineBarrier2KHR( commandBuffer, pDependencyInfo );
5224     }
5225 
vkCmdWriteTimestamp2KHR(VkCommandBuffer commandBuffer,VkPipelineStageFlags2KHR stage,VkQueryPool queryPool,uint32_t query) const5226     void vkCmdWriteTimestamp2KHR( VkCommandBuffer          commandBuffer,
5227                                   VkPipelineStageFlags2KHR stage,
5228                                   VkQueryPool              queryPool,
5229                                   uint32_t                 query ) const VULKAN_HPP_NOEXCEPT
5230     {
5231       return ::vkCmdWriteTimestamp2KHR( commandBuffer, stage, queryPool, query );
5232     }
5233 
vkQueueSubmit2KHR(VkQueue queue,uint32_t submitCount,const VkSubmitInfo2KHR * pSubmits,VkFence fence) const5234     VkResult vkQueueSubmit2KHR( VkQueue                  queue,
5235                                 uint32_t                 submitCount,
5236                                 const VkSubmitInfo2KHR * pSubmits,
5237                                 VkFence                  fence ) const VULKAN_HPP_NOEXCEPT
5238     {
5239       return ::vkQueueSubmit2KHR( queue, submitCount, pSubmits, fence );
5240     }
5241 
vkCmdWriteBufferMarker2AMD(VkCommandBuffer commandBuffer,VkPipelineStageFlags2KHR stage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker) const5242     void vkCmdWriteBufferMarker2AMD( VkCommandBuffer          commandBuffer,
5243                                      VkPipelineStageFlags2KHR stage,
5244                                      VkBuffer                 dstBuffer,
5245                                      VkDeviceSize             dstOffset,
5246                                      uint32_t                 marker ) const VULKAN_HPP_NOEXCEPT
5247     {
5248       return ::vkCmdWriteBufferMarker2AMD( commandBuffer, stage, dstBuffer, dstOffset, marker );
5249     }
5250 
vkGetQueueCheckpointData2NV(VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointData2NV * pCheckpointData) const5251     void vkGetQueueCheckpointData2NV( VkQueue               queue,
5252                                       uint32_t *            pCheckpointDataCount,
5253                                       VkCheckpointData2NV * pCheckpointData ) const VULKAN_HPP_NOEXCEPT
5254     {
5255       return ::vkGetQueueCheckpointData2NV( queue, pCheckpointDataCount, pCheckpointData );
5256     }
5257 
5258     //=== VK_NV_fragment_shading_rate_enums ===
5259 
vkCmdSetFragmentShadingRateEnumNV(VkCommandBuffer commandBuffer,VkFragmentShadingRateNV shadingRate,const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const5260     void vkCmdSetFragmentShadingRateEnumNV( VkCommandBuffer                          commandBuffer,
5261                                             VkFragmentShadingRateNV                  shadingRate,
5262                                             const VkFragmentShadingRateCombinerOpKHR combinerOps[2] ) const
5263       VULKAN_HPP_NOEXCEPT
5264     {
5265       return ::vkCmdSetFragmentShadingRateEnumNV( commandBuffer, shadingRate, combinerOps );
5266     }
5267 
5268     //=== VK_KHR_copy_commands2 ===
5269 
vkCmdCopyBuffer2KHR(VkCommandBuffer commandBuffer,const VkCopyBufferInfo2KHR * pCopyBufferInfo) const5270     void vkCmdCopyBuffer2KHR( VkCommandBuffer              commandBuffer,
5271                               const VkCopyBufferInfo2KHR * pCopyBufferInfo ) const VULKAN_HPP_NOEXCEPT
5272     {
5273       return ::vkCmdCopyBuffer2KHR( commandBuffer, pCopyBufferInfo );
5274     }
5275 
vkCmdCopyImage2KHR(VkCommandBuffer commandBuffer,const VkCopyImageInfo2KHR * pCopyImageInfo) const5276     void vkCmdCopyImage2KHR( VkCommandBuffer             commandBuffer,
5277                              const VkCopyImageInfo2KHR * pCopyImageInfo ) const VULKAN_HPP_NOEXCEPT
5278     {
5279       return ::vkCmdCopyImage2KHR( commandBuffer, pCopyImageInfo );
5280     }
5281 
5282     void
vkCmdCopyBufferToImage2KHR(VkCommandBuffer commandBuffer,const VkCopyBufferToImageInfo2KHR * pCopyBufferToImageInfo) const5283       vkCmdCopyBufferToImage2KHR( VkCommandBuffer                     commandBuffer,
5284                                   const VkCopyBufferToImageInfo2KHR * pCopyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT
5285     {
5286       return ::vkCmdCopyBufferToImage2KHR( commandBuffer, pCopyBufferToImageInfo );
5287     }
5288 
5289     void
vkCmdCopyImageToBuffer2KHR(VkCommandBuffer commandBuffer,const VkCopyImageToBufferInfo2KHR * pCopyImageToBufferInfo) const5290       vkCmdCopyImageToBuffer2KHR( VkCommandBuffer                     commandBuffer,
5291                                   const VkCopyImageToBufferInfo2KHR * pCopyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT
5292     {
5293       return ::vkCmdCopyImageToBuffer2KHR( commandBuffer, pCopyImageToBufferInfo );
5294     }
5295 
vkCmdBlitImage2KHR(VkCommandBuffer commandBuffer,const VkBlitImageInfo2KHR * pBlitImageInfo) const5296     void vkCmdBlitImage2KHR( VkCommandBuffer             commandBuffer,
5297                              const VkBlitImageInfo2KHR * pBlitImageInfo ) const VULKAN_HPP_NOEXCEPT
5298     {
5299       return ::vkCmdBlitImage2KHR( commandBuffer, pBlitImageInfo );
5300     }
5301 
vkCmdResolveImage2KHR(VkCommandBuffer commandBuffer,const VkResolveImageInfo2KHR * pResolveImageInfo) const5302     void vkCmdResolveImage2KHR( VkCommandBuffer                commandBuffer,
5303                                 const VkResolveImageInfo2KHR * pResolveImageInfo ) const VULKAN_HPP_NOEXCEPT
5304     {
5305       return ::vkCmdResolveImage2KHR( commandBuffer, pResolveImageInfo );
5306     }
5307 
5308 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
5309     //=== VK_NV_acquire_winrt_display ===
5310 
vkAcquireWinrtDisplayNV(VkPhysicalDevice physicalDevice,VkDisplayKHR display) const5311     VkResult vkAcquireWinrtDisplayNV( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
5312     {
5313       return ::vkAcquireWinrtDisplayNV( physicalDevice, display );
5314     }
5315 
vkGetWinrtDisplayNV(VkPhysicalDevice physicalDevice,uint32_t deviceRelativeId,VkDisplayKHR * pDisplay) const5316     VkResult vkGetWinrtDisplayNV( VkPhysicalDevice physicalDevice,
5317                                   uint32_t         deviceRelativeId,
5318                                   VkDisplayKHR *   pDisplay ) const VULKAN_HPP_NOEXCEPT
5319     {
5320       return ::vkGetWinrtDisplayNV( physicalDevice, deviceRelativeId, pDisplay );
5321     }
5322 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
5323 
5324 #  if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
5325     //=== VK_EXT_directfb_surface ===
5326 
vkCreateDirectFBSurfaceEXT(VkInstance instance,const VkDirectFBSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const5327     VkResult vkCreateDirectFBSurfaceEXT( VkInstance                             instance,
5328                                          const VkDirectFBSurfaceCreateInfoEXT * pCreateInfo,
5329                                          const VkAllocationCallbacks *          pAllocator,
5330                                          VkSurfaceKHR *                         pSurface ) const VULKAN_HPP_NOEXCEPT
5331     {
5332       return ::vkCreateDirectFBSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
5333     }
5334 
vkGetPhysicalDeviceDirectFBPresentationSupportEXT(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,IDirectFB * dfb) const5335     VkBool32 vkGetPhysicalDeviceDirectFBPresentationSupportEXT( VkPhysicalDevice physicalDevice,
5336                                                                 uint32_t         queueFamilyIndex,
5337                                                                 IDirectFB *      dfb ) const VULKAN_HPP_NOEXCEPT
5338     {
5339       return ::vkGetPhysicalDeviceDirectFBPresentationSupportEXT( physicalDevice, queueFamilyIndex, dfb );
5340     }
5341 #  endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
5342 
5343     //=== VK_KHR_ray_tracing_pipeline ===
5344 
vkCmdTraceRaysKHR(VkCommandBuffer commandBuffer,const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,uint32_t width,uint32_t height,uint32_t depth) const5345     void vkCmdTraceRaysKHR( VkCommandBuffer                         commandBuffer,
5346                             const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,
5347                             const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,
5348                             const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,
5349                             const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,
5350                             uint32_t                                width,
5351                             uint32_t                                height,
5352                             uint32_t                                depth ) const VULKAN_HPP_NOEXCEPT
5353     {
5354       return ::vkCmdTraceRaysKHR( commandBuffer,
5355                                   pRaygenShaderBindingTable,
5356                                   pMissShaderBindingTable,
5357                                   pHitShaderBindingTable,
5358                                   pCallableShaderBindingTable,
5359                                   width,
5360                                   height,
5361                                   depth );
5362     }
5363 
vkCreateRayTracingPipelinesKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines) const5364     VkResult vkCreateRayTracingPipelinesKHR( VkDevice                                  device,
5365                                              VkDeferredOperationKHR                    deferredOperation,
5366                                              VkPipelineCache                           pipelineCache,
5367                                              uint32_t                                  createInfoCount,
5368                                              const VkRayTracingPipelineCreateInfoKHR * pCreateInfos,
5369                                              const VkAllocationCallbacks *             pAllocator,
5370                                              VkPipeline * pPipelines ) const VULKAN_HPP_NOEXCEPT
5371     {
5372       return ::vkCreateRayTracingPipelinesKHR(
5373         device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
5374     }
5375 
vkGetRayTracingShaderGroupHandlesKHR(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData) const5376     VkResult vkGetRayTracingShaderGroupHandlesKHR( VkDevice   device,
5377                                                    VkPipeline pipeline,
5378                                                    uint32_t   firstGroup,
5379                                                    uint32_t   groupCount,
5380                                                    size_t     dataSize,
5381                                                    void *     pData ) const VULKAN_HPP_NOEXCEPT
5382     {
5383       return ::vkGetRayTracingShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData );
5384     }
5385 
vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData) const5386     VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( VkDevice   device,
5387                                                                 VkPipeline pipeline,
5388                                                                 uint32_t   firstGroup,
5389                                                                 uint32_t   groupCount,
5390                                                                 size_t     dataSize,
5391                                                                 void *     pData ) const VULKAN_HPP_NOEXCEPT
5392     {
5393       return ::vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
5394         device, pipeline, firstGroup, groupCount, dataSize, pData );
5395     }
5396 
vkCmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer,const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,VkDeviceAddress indirectDeviceAddress) const5397     void vkCmdTraceRaysIndirectKHR( VkCommandBuffer                         commandBuffer,
5398                                     const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,
5399                                     const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,
5400                                     const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,
5401                                     const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,
5402                                     VkDeviceAddress indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT
5403     {
5404       return ::vkCmdTraceRaysIndirectKHR( commandBuffer,
5405                                           pRaygenShaderBindingTable,
5406                                           pMissShaderBindingTable,
5407                                           pHitShaderBindingTable,
5408                                           pCallableShaderBindingTable,
5409                                           indirectDeviceAddress );
5410     }
5411 
vkGetRayTracingShaderGroupStackSizeKHR(VkDevice device,VkPipeline pipeline,uint32_t group,VkShaderGroupShaderKHR groupShader) const5412     VkDeviceSize vkGetRayTracingShaderGroupStackSizeKHR( VkDevice               device,
5413                                                          VkPipeline             pipeline,
5414                                                          uint32_t               group,
5415                                                          VkShaderGroupShaderKHR groupShader ) const VULKAN_HPP_NOEXCEPT
5416     {
5417       return ::vkGetRayTracingShaderGroupStackSizeKHR( device, pipeline, group, groupShader );
5418     }
5419 
vkCmdSetRayTracingPipelineStackSizeKHR(VkCommandBuffer commandBuffer,uint32_t pipelineStackSize) const5420     void vkCmdSetRayTracingPipelineStackSizeKHR( VkCommandBuffer commandBuffer,
5421                                                  uint32_t        pipelineStackSize ) const VULKAN_HPP_NOEXCEPT
5422     {
5423       return ::vkCmdSetRayTracingPipelineStackSizeKHR( commandBuffer, pipelineStackSize );
5424     }
5425 
5426     //=== VK_EXT_vertex_input_dynamic_state ===
5427 
vkCmdSetVertexInputEXT(VkCommandBuffer commandBuffer,uint32_t vertexBindingDescriptionCount,const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions,uint32_t vertexAttributeDescriptionCount,const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions) const5428     void vkCmdSetVertexInputEXT( VkCommandBuffer                               commandBuffer,
5429                                  uint32_t                                      vertexBindingDescriptionCount,
5430                                  const VkVertexInputBindingDescription2EXT *   pVertexBindingDescriptions,
5431                                  uint32_t                                      vertexAttributeDescriptionCount,
5432                                  const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) const
5433       VULKAN_HPP_NOEXCEPT
5434     {
5435       return ::vkCmdSetVertexInputEXT( commandBuffer,
5436                                        vertexBindingDescriptionCount,
5437                                        pVertexBindingDescriptions,
5438                                        vertexAttributeDescriptionCount,
5439                                        pVertexAttributeDescriptions );
5440     }
5441 
5442 #  if defined( VK_USE_PLATFORM_FUCHSIA )
5443     //=== VK_FUCHSIA_external_memory ===
5444 
vkGetMemoryZirconHandleFUCHSIA(VkDevice device,const VkMemoryGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo,zx_handle_t * pZirconHandle) const5445     VkResult vkGetMemoryZirconHandleFUCHSIA( VkDevice                                   device,
5446                                              const VkMemoryGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo,
5447                                              zx_handle_t * pZirconHandle ) const VULKAN_HPP_NOEXCEPT
5448     {
5449       return ::vkGetMemoryZirconHandleFUCHSIA( device, pGetZirconHandleInfo, pZirconHandle );
5450     }
5451 
vkGetMemoryZirconHandlePropertiesFUCHSIA(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,zx_handle_t zirconHandle,VkMemoryZirconHandlePropertiesFUCHSIA * pMemoryZirconHandleProperties) const5452     VkResult vkGetMemoryZirconHandlePropertiesFUCHSIA(
5453       VkDevice                                device,
5454       VkExternalMemoryHandleTypeFlagBits      handleType,
5455       zx_handle_t                             zirconHandle,
5456       VkMemoryZirconHandlePropertiesFUCHSIA * pMemoryZirconHandleProperties ) const VULKAN_HPP_NOEXCEPT
5457     {
5458       return ::vkGetMemoryZirconHandlePropertiesFUCHSIA(
5459         device, handleType, zirconHandle, pMemoryZirconHandleProperties );
5460     }
5461 #  endif /*VK_USE_PLATFORM_FUCHSIA*/
5462 
5463 #  if defined( VK_USE_PLATFORM_FUCHSIA )
5464     //=== VK_FUCHSIA_external_semaphore ===
5465 
vkImportSemaphoreZirconHandleFUCHSIA(VkDevice device,const VkImportSemaphoreZirconHandleInfoFUCHSIA * pImportSemaphoreZirconHandleInfo) const5466     VkResult vkImportSemaphoreZirconHandleFUCHSIA(
5467       VkDevice                                         device,
5468       const VkImportSemaphoreZirconHandleInfoFUCHSIA * pImportSemaphoreZirconHandleInfo ) const VULKAN_HPP_NOEXCEPT
5469     {
5470       return ::vkImportSemaphoreZirconHandleFUCHSIA( device, pImportSemaphoreZirconHandleInfo );
5471     }
5472 
vkGetSemaphoreZirconHandleFUCHSIA(VkDevice device,const VkSemaphoreGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo,zx_handle_t * pZirconHandle) const5473     VkResult vkGetSemaphoreZirconHandleFUCHSIA( VkDevice                                      device,
5474                                                 const VkSemaphoreGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo,
5475                                                 zx_handle_t * pZirconHandle ) const VULKAN_HPP_NOEXCEPT
5476     {
5477       return ::vkGetSemaphoreZirconHandleFUCHSIA( device, pGetZirconHandleInfo, pZirconHandle );
5478     }
5479 #  endif /*VK_USE_PLATFORM_FUCHSIA*/
5480 
5481 #  if defined( VK_USE_PLATFORM_FUCHSIA )
5482     //=== VK_FUCHSIA_buffer_collection ===
5483 
vkCreateBufferCollectionFUCHSIA(VkDevice device,const VkBufferCollectionCreateInfoFUCHSIA * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferCollectionFUCHSIA * pCollection) const5484     VkResult vkCreateBufferCollectionFUCHSIA( VkDevice                                    device,
5485                                               const VkBufferCollectionCreateInfoFUCHSIA * pCreateInfo,
5486                                               const VkAllocationCallbacks *               pAllocator,
5487                                               VkBufferCollectionFUCHSIA * pCollection ) const VULKAN_HPP_NOEXCEPT
5488     {
5489       return ::vkCreateBufferCollectionFUCHSIA( device, pCreateInfo, pAllocator, pCollection );
5490     }
5491 
vkSetBufferCollectionImageConstraintsFUCHSIA(VkDevice device,VkBufferCollectionFUCHSIA collection,const VkImageConstraintsInfoFUCHSIA * pImageConstraintsInfo) const5492     VkResult vkSetBufferCollectionImageConstraintsFUCHSIA(
5493       VkDevice                              device,
5494       VkBufferCollectionFUCHSIA             collection,
5495       const VkImageConstraintsInfoFUCHSIA * pImageConstraintsInfo ) const VULKAN_HPP_NOEXCEPT
5496     {
5497       return ::vkSetBufferCollectionImageConstraintsFUCHSIA( device, collection, pImageConstraintsInfo );
5498     }
5499 
vkSetBufferCollectionBufferConstraintsFUCHSIA(VkDevice device,VkBufferCollectionFUCHSIA collection,const VkBufferConstraintsInfoFUCHSIA * pBufferConstraintsInfo) const5500     VkResult vkSetBufferCollectionBufferConstraintsFUCHSIA(
5501       VkDevice                               device,
5502       VkBufferCollectionFUCHSIA              collection,
5503       const VkBufferConstraintsInfoFUCHSIA * pBufferConstraintsInfo ) const VULKAN_HPP_NOEXCEPT
5504     {
5505       return ::vkSetBufferCollectionBufferConstraintsFUCHSIA( device, collection, pBufferConstraintsInfo );
5506     }
5507 
vkDestroyBufferCollectionFUCHSIA(VkDevice device,VkBufferCollectionFUCHSIA collection,const VkAllocationCallbacks * pAllocator) const5508     void vkDestroyBufferCollectionFUCHSIA( VkDevice                      device,
5509                                            VkBufferCollectionFUCHSIA     collection,
5510                                            const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
5511     {
5512       return ::vkDestroyBufferCollectionFUCHSIA( device, collection, pAllocator );
5513     }
5514 
vkGetBufferCollectionPropertiesFUCHSIA(VkDevice device,VkBufferCollectionFUCHSIA collection,VkBufferCollectionPropertiesFUCHSIA * pProperties) const5515     VkResult vkGetBufferCollectionPropertiesFUCHSIA( VkDevice                              device,
5516                                                      VkBufferCollectionFUCHSIA             collection,
5517                                                      VkBufferCollectionPropertiesFUCHSIA * pProperties ) const
5518       VULKAN_HPP_NOEXCEPT
5519     {
5520       return ::vkGetBufferCollectionPropertiesFUCHSIA( device, collection, pProperties );
5521     }
5522 #  endif /*VK_USE_PLATFORM_FUCHSIA*/
5523 
5524     //=== VK_HUAWEI_subpass_shading ===
5525 
vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(VkDevice device,VkRenderPass renderpass,VkExtent2D * pMaxWorkgroupSize) const5526     VkResult vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( VkDevice     device,
5527                                                               VkRenderPass renderpass,
5528                                                               VkExtent2D * pMaxWorkgroupSize ) const VULKAN_HPP_NOEXCEPT
5529     {
5530       return ::vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( device, renderpass, pMaxWorkgroupSize );
5531     }
5532 
vkCmdSubpassShadingHUAWEI(VkCommandBuffer commandBuffer) const5533     void vkCmdSubpassShadingHUAWEI( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
5534     {
5535       return ::vkCmdSubpassShadingHUAWEI( commandBuffer );
5536     }
5537 
5538     //=== VK_HUAWEI_invocation_mask ===
5539 
vkCmdBindInvocationMaskHUAWEI(VkCommandBuffer commandBuffer,VkImageView imageView,VkImageLayout imageLayout) const5540     void vkCmdBindInvocationMaskHUAWEI( VkCommandBuffer commandBuffer,
5541                                         VkImageView     imageView,
5542                                         VkImageLayout   imageLayout ) const VULKAN_HPP_NOEXCEPT
5543     {
5544       return ::vkCmdBindInvocationMaskHUAWEI( commandBuffer, imageView, imageLayout );
5545     }
5546 
5547     //=== VK_NV_external_memory_rdma ===
5548 
vkGetMemoryRemoteAddressNV(VkDevice device,const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo,VkRemoteAddressNV * pAddress) const5549     VkResult vkGetMemoryRemoteAddressNV( VkDevice                               device,
5550                                          const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo,
5551                                          VkRemoteAddressNV *                    pAddress ) const VULKAN_HPP_NOEXCEPT
5552     {
5553       return ::vkGetMemoryRemoteAddressNV( device, pMemoryGetRemoteAddressInfo, pAddress );
5554     }
5555 
5556     //=== VK_EXT_extended_dynamic_state2 ===
5557 
vkCmdSetPatchControlPointsEXT(VkCommandBuffer commandBuffer,uint32_t patchControlPoints) const5558     void vkCmdSetPatchControlPointsEXT( VkCommandBuffer commandBuffer,
5559                                         uint32_t        patchControlPoints ) const VULKAN_HPP_NOEXCEPT
5560     {
5561       return ::vkCmdSetPatchControlPointsEXT( commandBuffer, patchControlPoints );
5562     }
5563 
vkCmdSetRasterizerDiscardEnableEXT(VkCommandBuffer commandBuffer,VkBool32 rasterizerDiscardEnable) const5564     void vkCmdSetRasterizerDiscardEnableEXT( VkCommandBuffer commandBuffer,
5565                                              VkBool32        rasterizerDiscardEnable ) const VULKAN_HPP_NOEXCEPT
5566     {
5567       return ::vkCmdSetRasterizerDiscardEnableEXT( commandBuffer, rasterizerDiscardEnable );
5568     }
5569 
vkCmdSetDepthBiasEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthBiasEnable) const5570     void vkCmdSetDepthBiasEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable ) const VULKAN_HPP_NOEXCEPT
5571     {
5572       return ::vkCmdSetDepthBiasEnableEXT( commandBuffer, depthBiasEnable );
5573     }
5574 
vkCmdSetLogicOpEXT(VkCommandBuffer commandBuffer,VkLogicOp logicOp) const5575     void vkCmdSetLogicOpEXT( VkCommandBuffer commandBuffer, VkLogicOp logicOp ) const VULKAN_HPP_NOEXCEPT
5576     {
5577       return ::vkCmdSetLogicOpEXT( commandBuffer, logicOp );
5578     }
5579 
vkCmdSetPrimitiveRestartEnableEXT(VkCommandBuffer commandBuffer,VkBool32 primitiveRestartEnable) const5580     void vkCmdSetPrimitiveRestartEnableEXT( VkCommandBuffer commandBuffer,
5581                                             VkBool32        primitiveRestartEnable ) const VULKAN_HPP_NOEXCEPT
5582     {
5583       return ::vkCmdSetPrimitiveRestartEnableEXT( commandBuffer, primitiveRestartEnable );
5584     }
5585 
5586 #  if defined( VK_USE_PLATFORM_SCREEN_QNX )
5587     //=== VK_QNX_screen_surface ===
5588 
vkCreateScreenSurfaceQNX(VkInstance instance,const VkScreenSurfaceCreateInfoQNX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface) const5589     VkResult vkCreateScreenSurfaceQNX( VkInstance                           instance,
5590                                        const VkScreenSurfaceCreateInfoQNX * pCreateInfo,
5591                                        const VkAllocationCallbacks *        pAllocator,
5592                                        VkSurfaceKHR *                       pSurface ) const VULKAN_HPP_NOEXCEPT
5593     {
5594       return ::vkCreateScreenSurfaceQNX( instance, pCreateInfo, pAllocator, pSurface );
5595     }
5596 
vkGetPhysicalDeviceScreenPresentationSupportQNX(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,struct _screen_window * window) const5597     VkBool32 vkGetPhysicalDeviceScreenPresentationSupportQNX( VkPhysicalDevice        physicalDevice,
5598                                                               uint32_t                queueFamilyIndex,
5599                                                               struct _screen_window * window ) const VULKAN_HPP_NOEXCEPT
5600     {
5601       return ::vkGetPhysicalDeviceScreenPresentationSupportQNX( physicalDevice, queueFamilyIndex, window );
5602     }
5603 #  endif /*VK_USE_PLATFORM_SCREEN_QNX*/
5604 
5605     //=== VK_EXT_color_write_enable ===
5606 
vkCmdSetColorWriteEnableEXT(VkCommandBuffer commandBuffer,uint32_t attachmentCount,const VkBool32 * pColorWriteEnables) const5607     void vkCmdSetColorWriteEnableEXT( VkCommandBuffer  commandBuffer,
5608                                       uint32_t         attachmentCount,
5609                                       const VkBool32 * pColorWriteEnables ) const VULKAN_HPP_NOEXCEPT
5610     {
5611       return ::vkCmdSetColorWriteEnableEXT( commandBuffer, attachmentCount, pColorWriteEnables );
5612     }
5613 
5614     //=== VK_EXT_multi_draw ===
5615 
vkCmdDrawMultiEXT(VkCommandBuffer commandBuffer,uint32_t drawCount,const VkMultiDrawInfoEXT * pVertexInfo,uint32_t instanceCount,uint32_t firstInstance,uint32_t stride) const5616     void vkCmdDrawMultiEXT( VkCommandBuffer            commandBuffer,
5617                             uint32_t                   drawCount,
5618                             const VkMultiDrawInfoEXT * pVertexInfo,
5619                             uint32_t                   instanceCount,
5620                             uint32_t                   firstInstance,
5621                             uint32_t                   stride ) const VULKAN_HPP_NOEXCEPT
5622     {
5623       return ::vkCmdDrawMultiEXT( commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride );
5624     }
5625 
vkCmdDrawMultiIndexedEXT(VkCommandBuffer commandBuffer,uint32_t drawCount,const VkMultiDrawIndexedInfoEXT * pIndexInfo,uint32_t instanceCount,uint32_t firstInstance,uint32_t stride,const int32_t * pVertexOffset) const5626     void vkCmdDrawMultiIndexedEXT( VkCommandBuffer                   commandBuffer,
5627                                    uint32_t                          drawCount,
5628                                    const VkMultiDrawIndexedInfoEXT * pIndexInfo,
5629                                    uint32_t                          instanceCount,
5630                                    uint32_t                          firstInstance,
5631                                    uint32_t                          stride,
5632                                    const int32_t *                   pVertexOffset ) const VULKAN_HPP_NOEXCEPT
5633     {
5634       return ::vkCmdDrawMultiIndexedEXT(
5635         commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset );
5636     }
5637 
5638     //=== VK_EXT_pageable_device_local_memory ===
5639 
5640     void
vkSetDeviceMemoryPriorityEXT(VkDevice device,VkDeviceMemory memory,float priority) const5641       vkSetDeviceMemoryPriorityEXT( VkDevice device, VkDeviceMemory memory, float priority ) const VULKAN_HPP_NOEXCEPT
5642     {
5643       return ::vkSetDeviceMemoryPriorityEXT( device, memory, priority );
5644     }
5645 
5646     //=== VK_KHR_maintenance4 ===
5647 
vkGetDeviceBufferMemoryRequirementsKHR(VkDevice device,const VkDeviceBufferMemoryRequirementsKHR * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const5648     void vkGetDeviceBufferMemoryRequirementsKHR( VkDevice                                    device,
5649                                                  const VkDeviceBufferMemoryRequirementsKHR * pInfo,
5650                                                  VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
5651     {
5652       return ::vkGetDeviceBufferMemoryRequirementsKHR( device, pInfo, pMemoryRequirements );
5653     }
5654 
vkGetDeviceImageMemoryRequirementsKHR(VkDevice device,const VkDeviceImageMemoryRequirementsKHR * pInfo,VkMemoryRequirements2 * pMemoryRequirements) const5655     void vkGetDeviceImageMemoryRequirementsKHR( VkDevice                                   device,
5656                                                 const VkDeviceImageMemoryRequirementsKHR * pInfo,
5657                                                 VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
5658     {
5659       return ::vkGetDeviceImageMemoryRequirementsKHR( device, pInfo, pMemoryRequirements );
5660     }
5661 
vkGetDeviceImageSparseMemoryRequirementsKHR(VkDevice device,const VkDeviceImageMemoryRequirementsKHR * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements) const5662     void vkGetDeviceImageSparseMemoryRequirementsKHR(
5663       VkDevice                                   device,
5664       const VkDeviceImageMemoryRequirementsKHR * pInfo,
5665       uint32_t *                                 pSparseMemoryRequirementCount,
5666       VkSparseImageMemoryRequirements2 *         pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
5667     {
5668       return ::vkGetDeviceImageSparseMemoryRequirementsKHR(
5669         device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
5670     }
5671   };
5672 #endif
5673 
5674   class DispatchLoaderDynamic;
5675 #if !defined( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC )
5676 #  if defined( VK_NO_PROTOTYPES )
5677 #    define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1
5678 #  else
5679 #    define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 0
5680 #  endif
5681 #endif
5682 
5683 #if !defined( VULKAN_HPP_STORAGE_API )
5684 #  if defined( VULKAN_HPP_STORAGE_SHARED )
5685 #    if defined( _MSC_VER )
5686 #      if defined( VULKAN_HPP_STORAGE_SHARED_EXPORT )
5687 #        define VULKAN_HPP_STORAGE_API __declspec( dllexport )
5688 #      else
5689 #        define VULKAN_HPP_STORAGE_API __declspec( dllimport )
5690 #      endif
5691 #    elif defined( __clang__ ) || defined( __GNUC__ )
5692 #      if defined( VULKAN_HPP_STORAGE_SHARED_EXPORT )
5693 #        define VULKAN_HPP_STORAGE_API __attribute__( ( visibility( "default" ) ) )
5694 #      else
5695 #        define VULKAN_HPP_STORAGE_API
5696 #      endif
5697 #    else
5698 #      define VULKAN_HPP_STORAGE_API
5699 #      pragma warning Unknown import / export semantics
5700 #    endif
5701 #  else
5702 #    define VULKAN_HPP_STORAGE_API
5703 #  endif
5704 #endif
5705 
5706 #if !defined( VULKAN_HPP_DEFAULT_DISPATCHER )
5707 #  if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
5708 #    define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::defaultDispatchLoaderDynamic
5709 #    define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE                     \
5710       namespace VULKAN_HPP_NAMESPACE                                               \
5711       {                                                                            \
5712         VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic; \
5713       }
5714   extern VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic;
5715 #  else
getDispatchLoaderStatic()5716   static inline ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic & getDispatchLoaderStatic()
5717   {
5718     static ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic dls;
5719     return dls;
5720   }
5721 #    define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::getDispatchLoaderStatic()
5722 #    define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE
5723 #  endif
5724 #endif
5725 
5726 #if !defined( VULKAN_HPP_DEFAULT_DISPATCHER_TYPE )
5727 #  if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
5728 #    define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic
5729 #  else
5730 #    define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic
5731 #  endif
5732 #endif
5733 
5734 #if defined( VULKAN_HPP_NO_DEFAULT_DISPATCHER )
5735 #  define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT
5736 #  define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT
5737 #  define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT
5738 #else
5739 #  define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT         = {}
5740 #  define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT = nullptr
5741 #  define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT       = VULKAN_HPP_DEFAULT_DISPATCHER
5742 #endif
5743 
5744   struct AllocationCallbacks;
5745 
5746   template <typename OwnerType, typename Dispatch>
5747   class ObjectDestroy
5748   {
5749   public:
5750     ObjectDestroy() = default;
5751 
ObjectDestroy(OwnerType owner,Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT)5752     ObjectDestroy( OwnerType owner,
5753                    Optional<const AllocationCallbacks> allocationCallbacks
5754                                              VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
5755                    Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
5756       : m_owner( owner )
5757       , m_allocationCallbacks( allocationCallbacks )
5758       , m_dispatch( &dispatch )
5759     {}
5760 
getOwner() const5761     OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
5762     {
5763       return m_owner;
5764     }
getAllocator() const5765     Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT
5766     {
5767       return m_allocationCallbacks;
5768     }
5769 
5770   protected:
5771     template <typename T>
destroy(T t)5772     void destroy( T t ) VULKAN_HPP_NOEXCEPT
5773     {
5774       VULKAN_HPP_ASSERT( m_owner && m_dispatch );
5775       m_owner.destroy( t, m_allocationCallbacks, *m_dispatch );
5776     }
5777 
5778   private:
5779     OwnerType                           m_owner               = {};
5780     Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
5781     Dispatch const *                    m_dispatch            = nullptr;
5782   };
5783 
5784   class NoParent;
5785 
5786   template <typename Dispatch>
5787   class ObjectDestroy<NoParent, Dispatch>
5788   {
5789   public:
5790     ObjectDestroy() = default;
5791 
ObjectDestroy(Optional<const AllocationCallbacks> allocationCallbacks,Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT)5792     ObjectDestroy( Optional<const AllocationCallbacks> allocationCallbacks,
5793                    Dispatch const & dispatch           VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
5794       : m_allocationCallbacks( allocationCallbacks )
5795       , m_dispatch( &dispatch )
5796     {}
5797 
getAllocator() const5798     Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT
5799     {
5800       return m_allocationCallbacks;
5801     }
5802 
5803   protected:
5804     template <typename T>
destroy(T t)5805     void destroy( T t ) VULKAN_HPP_NOEXCEPT
5806     {
5807       VULKAN_HPP_ASSERT( m_dispatch );
5808       t.destroy( m_allocationCallbacks, *m_dispatch );
5809     }
5810 
5811   private:
5812     Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
5813     Dispatch const *                    m_dispatch            = nullptr;
5814   };
5815 
5816   template <typename OwnerType, typename Dispatch>
5817   class ObjectFree
5818   {
5819   public:
5820     ObjectFree() = default;
5821 
ObjectFree(OwnerType owner,Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT)5822     ObjectFree( OwnerType                                               owner,
5823                 Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
5824                 Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
5825       : m_owner( owner )
5826       , m_allocationCallbacks( allocationCallbacks )
5827       , m_dispatch( &dispatch )
5828     {}
5829 
getOwner() const5830     OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
5831     {
5832       return m_owner;
5833     }
5834 
getAllocator() const5835     Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT
5836     {
5837       return m_allocationCallbacks;
5838     }
5839 
5840   protected:
5841     template <typename T>
destroy(T t)5842     void destroy( T t ) VULKAN_HPP_NOEXCEPT
5843     {
5844       VULKAN_HPP_ASSERT( m_owner && m_dispatch );
5845       m_owner.free( t, m_allocationCallbacks, *m_dispatch );
5846     }
5847 
5848   private:
5849     OwnerType                           m_owner               = {};
5850     Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
5851     Dispatch const *                    m_dispatch            = nullptr;
5852   };
5853 
5854   template <typename OwnerType, typename Dispatch>
5855   class ObjectRelease
5856   {
5857   public:
5858     ObjectRelease() = default;
5859 
ObjectRelease(OwnerType owner,Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT)5860     ObjectRelease( OwnerType                 owner,
5861                    Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
5862       : m_owner( owner )
5863       , m_dispatch( &dispatch )
5864     {}
5865 
getOwner() const5866     OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
5867     {
5868       return m_owner;
5869     }
5870 
5871   protected:
5872     template <typename T>
destroy(T t)5873     void destroy( T t ) VULKAN_HPP_NOEXCEPT
5874     {
5875       VULKAN_HPP_ASSERT( m_owner && m_dispatch );
5876       m_owner.release( t, *m_dispatch );
5877     }
5878 
5879   private:
5880     OwnerType        m_owner    = {};
5881     Dispatch const * m_dispatch = nullptr;
5882   };
5883 
5884   template <typename OwnerType, typename PoolType, typename Dispatch>
5885   class PoolFree
5886   {
5887   public:
5888     PoolFree() = default;
5889 
PoolFree(OwnerType owner,PoolType pool,Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT)5890     PoolFree( OwnerType                 owner,
5891               PoolType                  pool,
5892               Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
5893       : m_owner( owner )
5894       , m_pool( pool )
5895       , m_dispatch( &dispatch )
5896     {}
5897 
getOwner() const5898     OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
5899     {
5900       return m_owner;
5901     }
getPool() const5902     PoolType getPool() const VULKAN_HPP_NOEXCEPT
5903     {
5904       return m_pool;
5905     }
5906 
5907   protected:
5908     template <typename T>
destroy(T t)5909     void destroy( T t ) VULKAN_HPP_NOEXCEPT
5910     {
5911       m_owner.free( m_pool, t, *m_dispatch );
5912     }
5913 
5914   private:
5915     OwnerType        m_owner    = OwnerType();
5916     PoolType         m_pool     = PoolType();
5917     Dispatch const * m_dispatch = nullptr;
5918   };
5919 
5920   //==================
5921   //=== BASE TYPEs ===
5922   //==================
5923 
5924   using Bool32          = uint32_t;
5925   using DeviceAddress   = uint64_t;
5926   using DeviceSize      = uint64_t;
5927   using RemoteAddressNV = void *;
5928   using SampleMask      = uint32_t;
5929 
5930 }  // namespace VULKAN_HPP_NAMESPACE
5931 
5932 #include <vulkan/vulkan_enums.hpp>
5933 
5934 #ifndef VULKAN_HPP_NO_EXCEPTIONS
5935 namespace std
5936 {
5937   template <>
5938   struct is_error_code_enum<VULKAN_HPP_NAMESPACE::Result> : public true_type
5939   {};
5940 }  // namespace std
5941 #endif
5942 
5943 namespace VULKAN_HPP_NAMESPACE
5944 {
5945 #ifndef VULKAN_HPP_NO_EXCEPTIONS
5946 
5947   class ErrorCategoryImpl : public std::error_category
5948   {
5949   public:
name() const5950     virtual const char * name() const VULKAN_HPP_NOEXCEPT override
5951     {
5952       return VULKAN_HPP_NAMESPACE_STRING "::Result";
5953     }
message(int ev) const5954     virtual std::string message( int ev ) const override
5955     {
5956       return to_string( static_cast<Result>( ev ) );
5957     }
5958   };
5959 
5960   class Error
5961   {
5962   public:
5963     Error() VULKAN_HPP_NOEXCEPT                = default;
5964     Error( const Error & ) VULKAN_HPP_NOEXCEPT = default;
5965     virtual ~Error() VULKAN_HPP_NOEXCEPT       = default;
5966 
5967     virtual const char * what() const VULKAN_HPP_NOEXCEPT = 0;
5968   };
5969 
5970   class LogicError
5971     : public Error
5972     , public std::logic_error
5973   {
5974   public:
LogicError(const std::string & what)5975     explicit LogicError( const std::string & what ) : Error(), std::logic_error( what ) {}
LogicError(char const * what)5976     explicit LogicError( char const * what ) : Error(), std::logic_error( what ) {}
5977 
what() const5978     virtual const char * what() const VULKAN_HPP_NOEXCEPT
5979     {
5980       return std::logic_error::what();
5981     }
5982   };
5983 
5984   class SystemError
5985     : public Error
5986     , public std::system_error
5987   {
5988   public:
SystemError(std::error_code ec)5989     SystemError( std::error_code ec ) : Error(), std::system_error( ec ) {}
SystemError(std::error_code ec,std::string const & what)5990     SystemError( std::error_code ec, std::string const & what ) : Error(), std::system_error( ec, what ) {}
SystemError(std::error_code ec,char const * what)5991     SystemError( std::error_code ec, char const * what ) : Error(), std::system_error( ec, what ) {}
SystemError(int ev,std::error_category const & ecat)5992     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)5993     SystemError( int ev, std::error_category const & ecat, std::string const & what )
5994       : Error(), std::system_error( ev, ecat, what )
5995     {}
SystemError(int ev,std::error_category const & ecat,char const * what)5996     SystemError( int ev, std::error_category const & ecat, char const * what )
5997       : Error(), std::system_error( ev, ecat, what )
5998     {}
5999 
what() const6000     virtual const char * what() const VULKAN_HPP_NOEXCEPT
6001     {
6002       return std::system_error::what();
6003     }
6004   };
6005 
errorCategory()6006   VULKAN_HPP_INLINE const std::error_category & errorCategory() VULKAN_HPP_NOEXCEPT
6007   {
6008     static ErrorCategoryImpl instance;
6009     return instance;
6010   }
6011 
make_error_code(Result e)6012   VULKAN_HPP_INLINE std::error_code make_error_code( Result e ) VULKAN_HPP_NOEXCEPT
6013   {
6014     return std::error_code( static_cast<int>( e ), errorCategory() );
6015   }
6016 
make_error_condition(Result e)6017   VULKAN_HPP_INLINE std::error_condition make_error_condition( Result e ) VULKAN_HPP_NOEXCEPT
6018   {
6019     return std::error_condition( static_cast<int>( e ), errorCategory() );
6020   }
6021 
6022   class OutOfHostMemoryError : public SystemError
6023   {
6024   public:
OutOfHostMemoryError(std::string const & message)6025     OutOfHostMemoryError( std::string const & message )
6026       : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message )
6027     {}
OutOfHostMemoryError(char const * message)6028     OutOfHostMemoryError( char const * message )
6029       : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message )
6030     {}
6031   };
6032 
6033   class OutOfDeviceMemoryError : public SystemError
6034   {
6035   public:
OutOfDeviceMemoryError(std::string const & message)6036     OutOfDeviceMemoryError( std::string const & message )
6037       : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message )
6038     {}
OutOfDeviceMemoryError(char const * message)6039     OutOfDeviceMemoryError( char const * message )
6040       : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message )
6041     {}
6042   };
6043 
6044   class InitializationFailedError : public SystemError
6045   {
6046   public:
InitializationFailedError(std::string const & message)6047     InitializationFailedError( std::string const & message )
6048       : SystemError( make_error_code( Result::eErrorInitializationFailed ), message )
6049     {}
InitializationFailedError(char const * message)6050     InitializationFailedError( char const * message )
6051       : SystemError( make_error_code( Result::eErrorInitializationFailed ), message )
6052     {}
6053   };
6054 
6055   class DeviceLostError : public SystemError
6056   {
6057   public:
DeviceLostError(std::string const & message)6058     DeviceLostError( std::string const & message ) : SystemError( make_error_code( Result::eErrorDeviceLost ), message )
6059     {}
DeviceLostError(char const * message)6060     DeviceLostError( char const * message ) : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {}
6061   };
6062 
6063   class MemoryMapFailedError : public SystemError
6064   {
6065   public:
MemoryMapFailedError(std::string const & message)6066     MemoryMapFailedError( std::string const & message )
6067       : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message )
6068     {}
MemoryMapFailedError(char const * message)6069     MemoryMapFailedError( char const * message )
6070       : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message )
6071     {}
6072   };
6073 
6074   class LayerNotPresentError : public SystemError
6075   {
6076   public:
LayerNotPresentError(std::string const & message)6077     LayerNotPresentError( std::string const & message )
6078       : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message )
6079     {}
LayerNotPresentError(char const * message)6080     LayerNotPresentError( char const * message )
6081       : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message )
6082     {}
6083   };
6084 
6085   class ExtensionNotPresentError : public SystemError
6086   {
6087   public:
ExtensionNotPresentError(std::string const & message)6088     ExtensionNotPresentError( std::string const & message )
6089       : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message )
6090     {}
ExtensionNotPresentError(char const * message)6091     ExtensionNotPresentError( char const * message )
6092       : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message )
6093     {}
6094   };
6095 
6096   class FeatureNotPresentError : public SystemError
6097   {
6098   public:
FeatureNotPresentError(std::string const & message)6099     FeatureNotPresentError( std::string const & message )
6100       : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message )
6101     {}
FeatureNotPresentError(char const * message)6102     FeatureNotPresentError( char const * message )
6103       : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message )
6104     {}
6105   };
6106 
6107   class IncompatibleDriverError : public SystemError
6108   {
6109   public:
IncompatibleDriverError(std::string const & message)6110     IncompatibleDriverError( std::string const & message )
6111       : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message )
6112     {}
IncompatibleDriverError(char const * message)6113     IncompatibleDriverError( char const * message )
6114       : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message )
6115     {}
6116   };
6117 
6118   class TooManyObjectsError : public SystemError
6119   {
6120   public:
TooManyObjectsError(std::string const & message)6121     TooManyObjectsError( std::string const & message )
6122       : SystemError( make_error_code( Result::eErrorTooManyObjects ), message )
6123     {}
TooManyObjectsError(char const * message)6124     TooManyObjectsError( char const * message )
6125       : SystemError( make_error_code( Result::eErrorTooManyObjects ), message )
6126     {}
6127   };
6128 
6129   class FormatNotSupportedError : public SystemError
6130   {
6131   public:
FormatNotSupportedError(std::string const & message)6132     FormatNotSupportedError( std::string const & message )
6133       : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message )
6134     {}
FormatNotSupportedError(char const * message)6135     FormatNotSupportedError( char const * message )
6136       : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message )
6137     {}
6138   };
6139 
6140   class FragmentedPoolError : public SystemError
6141   {
6142   public:
FragmentedPoolError(std::string const & message)6143     FragmentedPoolError( std::string const & message )
6144       : SystemError( make_error_code( Result::eErrorFragmentedPool ), message )
6145     {}
FragmentedPoolError(char const * message)6146     FragmentedPoolError( char const * message )
6147       : SystemError( make_error_code( Result::eErrorFragmentedPool ), message )
6148     {}
6149   };
6150 
6151   class UnknownError : public SystemError
6152   {
6153   public:
UnknownError(std::string const & message)6154     UnknownError( std::string const & message ) : SystemError( make_error_code( Result::eErrorUnknown ), message ) {}
UnknownError(char const * message)6155     UnknownError( char const * message ) : SystemError( make_error_code( Result::eErrorUnknown ), message ) {}
6156   };
6157 
6158   class OutOfPoolMemoryError : public SystemError
6159   {
6160   public:
OutOfPoolMemoryError(std::string const & message)6161     OutOfPoolMemoryError( std::string const & message )
6162       : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message )
6163     {}
OutOfPoolMemoryError(char const * message)6164     OutOfPoolMemoryError( char const * message )
6165       : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message )
6166     {}
6167   };
6168 
6169   class InvalidExternalHandleError : public SystemError
6170   {
6171   public:
InvalidExternalHandleError(std::string const & message)6172     InvalidExternalHandleError( std::string const & message )
6173       : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message )
6174     {}
InvalidExternalHandleError(char const * message)6175     InvalidExternalHandleError( char const * message )
6176       : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message )
6177     {}
6178   };
6179 
6180   class FragmentationError : public SystemError
6181   {
6182   public:
FragmentationError(std::string const & message)6183     FragmentationError( std::string const & message )
6184       : SystemError( make_error_code( Result::eErrorFragmentation ), message )
6185     {}
FragmentationError(char const * message)6186     FragmentationError( char const * message ) : SystemError( make_error_code( Result::eErrorFragmentation ), message )
6187     {}
6188   };
6189 
6190   class InvalidOpaqueCaptureAddressError : public SystemError
6191   {
6192   public:
InvalidOpaqueCaptureAddressError(std::string const & message)6193     InvalidOpaqueCaptureAddressError( std::string const & message )
6194       : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message )
6195     {}
InvalidOpaqueCaptureAddressError(char const * message)6196     InvalidOpaqueCaptureAddressError( char const * message )
6197       : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message )
6198     {}
6199   };
6200 
6201   class SurfaceLostKHRError : public SystemError
6202   {
6203   public:
SurfaceLostKHRError(std::string const & message)6204     SurfaceLostKHRError( std::string const & message )
6205       : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message )
6206     {}
SurfaceLostKHRError(char const * message)6207     SurfaceLostKHRError( char const * message )
6208       : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message )
6209     {}
6210   };
6211 
6212   class NativeWindowInUseKHRError : public SystemError
6213   {
6214   public:
NativeWindowInUseKHRError(std::string const & message)6215     NativeWindowInUseKHRError( std::string const & message )
6216       : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message )
6217     {}
NativeWindowInUseKHRError(char const * message)6218     NativeWindowInUseKHRError( char const * message )
6219       : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message )
6220     {}
6221   };
6222 
6223   class OutOfDateKHRError : public SystemError
6224   {
6225   public:
OutOfDateKHRError(std::string const & message)6226     OutOfDateKHRError( std::string const & message )
6227       : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message )
6228     {}
OutOfDateKHRError(char const * message)6229     OutOfDateKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {}
6230   };
6231 
6232   class IncompatibleDisplayKHRError : public SystemError
6233   {
6234   public:
IncompatibleDisplayKHRError(std::string const & message)6235     IncompatibleDisplayKHRError( std::string const & message )
6236       : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message )
6237     {}
IncompatibleDisplayKHRError(char const * message)6238     IncompatibleDisplayKHRError( char const * message )
6239       : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message )
6240     {}
6241   };
6242 
6243   class ValidationFailedEXTError : public SystemError
6244   {
6245   public:
ValidationFailedEXTError(std::string const & message)6246     ValidationFailedEXTError( std::string const & message )
6247       : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message )
6248     {}
ValidationFailedEXTError(char const * message)6249     ValidationFailedEXTError( char const * message )
6250       : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message )
6251     {}
6252   };
6253 
6254   class InvalidShaderNVError : public SystemError
6255   {
6256   public:
InvalidShaderNVError(std::string const & message)6257     InvalidShaderNVError( std::string const & message )
6258       : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message )
6259     {}
InvalidShaderNVError(char const * message)6260     InvalidShaderNVError( char const * message )
6261       : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message )
6262     {}
6263   };
6264 
6265   class InvalidDrmFormatModifierPlaneLayoutEXTError : public SystemError
6266   {
6267   public:
InvalidDrmFormatModifierPlaneLayoutEXTError(std::string const & message)6268     InvalidDrmFormatModifierPlaneLayoutEXTError( std::string const & message )
6269       : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message )
6270     {}
InvalidDrmFormatModifierPlaneLayoutEXTError(char const * message)6271     InvalidDrmFormatModifierPlaneLayoutEXTError( char const * message )
6272       : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message )
6273     {}
6274   };
6275 
6276   class NotPermittedEXTError : public SystemError
6277   {
6278   public:
NotPermittedEXTError(std::string const & message)6279     NotPermittedEXTError( std::string const & message )
6280       : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message )
6281     {}
NotPermittedEXTError(char const * message)6282     NotPermittedEXTError( char const * message )
6283       : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message )
6284     {}
6285   };
6286 
6287 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
6288   class FullScreenExclusiveModeLostEXTError : public SystemError
6289   {
6290   public:
FullScreenExclusiveModeLostEXTError(std::string const & message)6291     FullScreenExclusiveModeLostEXTError( std::string const & message )
6292       : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message )
6293     {}
FullScreenExclusiveModeLostEXTError(char const * message)6294     FullScreenExclusiveModeLostEXTError( char const * message )
6295       : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message )
6296     {}
6297   };
6298 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
6299 
throwResultException(Result result,char const * message)6300   [[noreturn]] static void throwResultException( Result result, char const * message )
6301   {
6302     switch ( result )
6303     {
6304       case Result::eErrorOutOfHostMemory: throw OutOfHostMemoryError( message );
6305       case Result::eErrorOutOfDeviceMemory: throw OutOfDeviceMemoryError( message );
6306       case Result::eErrorInitializationFailed: throw InitializationFailedError( message );
6307       case Result::eErrorDeviceLost: throw DeviceLostError( message );
6308       case Result::eErrorMemoryMapFailed: throw MemoryMapFailedError( message );
6309       case Result::eErrorLayerNotPresent: throw LayerNotPresentError( message );
6310       case Result::eErrorExtensionNotPresent: throw ExtensionNotPresentError( message );
6311       case Result::eErrorFeatureNotPresent: throw FeatureNotPresentError( message );
6312       case Result::eErrorIncompatibleDriver: throw IncompatibleDriverError( message );
6313       case Result::eErrorTooManyObjects: throw TooManyObjectsError( message );
6314       case Result::eErrorFormatNotSupported: throw FormatNotSupportedError( message );
6315       case Result::eErrorFragmentedPool: throw FragmentedPoolError( message );
6316       case Result::eErrorUnknown: throw UnknownError( message );
6317       case Result::eErrorOutOfPoolMemory: throw OutOfPoolMemoryError( message );
6318       case Result::eErrorInvalidExternalHandle: throw InvalidExternalHandleError( message );
6319       case Result::eErrorFragmentation: throw FragmentationError( message );
6320       case Result::eErrorInvalidOpaqueCaptureAddress: throw InvalidOpaqueCaptureAddressError( message );
6321       case Result::eErrorSurfaceLostKHR: throw SurfaceLostKHRError( message );
6322       case Result::eErrorNativeWindowInUseKHR: throw NativeWindowInUseKHRError( message );
6323       case Result::eErrorOutOfDateKHR: throw OutOfDateKHRError( message );
6324       case Result::eErrorIncompatibleDisplayKHR: throw IncompatibleDisplayKHRError( message );
6325       case Result::eErrorValidationFailedEXT: throw ValidationFailedEXTError( message );
6326       case Result::eErrorInvalidShaderNV: throw InvalidShaderNVError( message );
6327       case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT:
6328         throw InvalidDrmFormatModifierPlaneLayoutEXTError( message );
6329       case Result::eErrorNotPermittedEXT: throw NotPermittedEXTError( message );
6330 #  if defined( VK_USE_PLATFORM_WIN32_KHR )
6331       case Result::eErrorFullScreenExclusiveModeLostEXT: throw FullScreenExclusiveModeLostEXTError( message );
6332 #  endif /*VK_USE_PLATFORM_WIN32_KHR*/
6333       default: throw SystemError( make_error_code( result ) );
6334     }
6335   }
6336 #endif
6337 
6338   template <typename T>
ignore(T const &)6339   void ignore( T const & ) VULKAN_HPP_NOEXCEPT
6340   {}
6341 
6342   template <typename T>
6343   struct ResultValue
6344   {
6345 #ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue6346     ResultValue( Result r, T & v ) VULKAN_HPP_NOEXCEPT( VULKAN_HPP_NOEXCEPT( T( v ) ) )
6347 #else
6348     ResultValue( Result r, T & v )
6349 #endif
6350       : result( r ), value( v )
6351     {}
6352 
6353 #ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue6354     ResultValue( Result r, T && v ) VULKAN_HPP_NOEXCEPT( VULKAN_HPP_NOEXCEPT( T( std::move( v ) ) ) )
6355 #else
6356     ResultValue( Result r, T && v )
6357 #endif
6358       : result( r ), value( std::move( v ) )
6359     {}
6360 
6361     Result result;
6362     T      value;
6363 
operator std::tuple<Result&,T&>VULKAN_HPP_NAMESPACE::ResultValue6364     operator std::tuple<Result &, T &>() VULKAN_HPP_NOEXCEPT
6365     {
6366       return std::tuple<Result &, T &>( result, value );
6367     }
6368 
6369 #if !defined( VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST )
6370     VULKAN_HPP_DEPRECATED(
6371       "Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue." )
operator T const&VULKAN_HPP_NAMESPACE::ResultValue6372     operator T const &() const & VULKAN_HPP_NOEXCEPT
6373     {
6374       return value;
6375     }
6376 
6377     VULKAN_HPP_DEPRECATED(
6378       "Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue." )
operator T&VULKAN_HPP_NAMESPACE::ResultValue6379     operator T &() & VULKAN_HPP_NOEXCEPT
6380     {
6381       return value;
6382     }
6383 
6384     VULKAN_HPP_DEPRECATED(
6385       "Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue." )
operator T const&&VULKAN_HPP_NAMESPACE::ResultValue6386     operator T const &&() const && VULKAN_HPP_NOEXCEPT
6387     {
6388       return std::move( value );
6389     }
6390 
6391     VULKAN_HPP_DEPRECATED(
6392       "Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue." )
operator T&&VULKAN_HPP_NAMESPACE::ResultValue6393     operator T &&() && VULKAN_HPP_NOEXCEPT
6394     {
6395       return std::move( value );
6396     }
6397 #endif
6398   };
6399 
6400 #if !defined( VULKAN_HPP_NO_SMART_HANDLE )
6401   template <typename Type, typename Dispatch>
6402   struct ResultValue<UniqueHandle<Type, Dispatch>>
6403   {
6404 #  ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue6405     ResultValue( Result r, UniqueHandle<Type, Dispatch> && v ) VULKAN_HPP_NOEXCEPT
6406 #  else
6407     ResultValue( Result r, UniqueHandle<Type, Dispatch> && v )
6408 #  endif
6409       : result( r )
6410       , value( std::move( v ) )
6411     {}
6412 
asTupleVULKAN_HPP_NAMESPACE::ResultValue6413     std::tuple<Result, UniqueHandle<Type, Dispatch>> asTuple()
6414     {
6415       return std::make_tuple( result, std::move( value ) );
6416     }
6417 
6418 #  if !defined( VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST )
6419     VULKAN_HPP_DEPRECATED(
6420       "Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue." )
operator UniqueHandle<Type,Dispatch>&VULKAN_HPP_NAMESPACE::ResultValue6421     operator UniqueHandle<Type, Dispatch> &() & VULKAN_HPP_NOEXCEPT
6422     {
6423       return value;
6424     }
6425 
6426     VULKAN_HPP_DEPRECATED(
6427       "Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue." )
operator UniqueHandle<Type,Dispatch>VULKAN_HPP_NAMESPACE::ResultValue6428     operator UniqueHandle<Type, Dispatch>() VULKAN_HPP_NOEXCEPT
6429     {
6430       return std::move( value );
6431     }
6432 #  endif
6433 
6434     Result                       result;
6435     UniqueHandle<Type, Dispatch> value;
6436   };
6437 
6438   template <typename Type, typename Dispatch>
6439   struct ResultValue<std::vector<UniqueHandle<Type, Dispatch>>>
6440   {
6441 #  ifdef VULKAN_HPP_HAS_NOEXCEPT
ResultValueVULKAN_HPP_NAMESPACE::ResultValue6442     ResultValue( Result r, std::vector<UniqueHandle<Type, Dispatch>> && v ) VULKAN_HPP_NOEXCEPT
6443 #  else
6444     ResultValue( Result r, std::vector<UniqueHandle<Type, Dispatch>> && v )
6445 #  endif
6446       : result( r )
6447       , value( std::move( v ) )
6448     {}
6449 
asTupleVULKAN_HPP_NAMESPACE::ResultValue6450     std::tuple<Result, std::vector<UniqueHandle<Type, Dispatch>>> asTuple()
6451     {
6452       return std::make_tuple( result, std::move( value ) );
6453     }
6454 
6455     Result                                    result;
6456     std::vector<UniqueHandle<Type, Dispatch>> value;
6457 
6458 #  if !defined( VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST )
6459     VULKAN_HPP_DEPRECATED(
6460       "Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue." )
operator std::tuple<Result&,std::vector<UniqueHandle<Type,Dispatch>>&>VULKAN_HPP_NAMESPACE::ResultValue6461     operator std::tuple<Result &, std::vector<UniqueHandle<Type, Dispatch>> &>() VULKAN_HPP_NOEXCEPT
6462     {
6463       return std::tuple<Result &, std::vector<UniqueHandle<Type, Dispatch>> &>( result, value );
6464     }
6465 #  endif
6466   };
6467 #endif
6468 
6469   template <typename T>
6470   struct ResultValueType
6471   {
6472 #ifdef VULKAN_HPP_NO_EXCEPTIONS
6473     typedef ResultValue<T> type;
6474 #else
6475     typedef T    type;
6476 #endif
6477   };
6478 
6479   template <>
6480   struct ResultValueType<void>
6481   {
6482 #ifdef VULKAN_HPP_NO_EXCEPTIONS
6483     typedef Result type;
6484 #else
6485     typedef void type;
6486 #endif
6487   };
6488 
createResultValue(Result result,char const * message)6489   VULKAN_HPP_INLINE ResultValueType<void>::type createResultValue( Result result, char const * message )
6490   {
6491 #ifdef VULKAN_HPP_NO_EXCEPTIONS
6492     ignore( message );
6493     VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess );
6494     return result;
6495 #else
6496     if ( result != Result::eSuccess )
6497     {
6498       throwResultException( result, message );
6499     }
6500 #endif
6501   }
6502 
6503   template <typename T>
createResultValue(Result result,T & data,char const * message)6504   VULKAN_HPP_INLINE typename ResultValueType<T>::type createResultValue( Result result, T & data, char const * message )
6505   {
6506 #ifdef VULKAN_HPP_NO_EXCEPTIONS
6507     ignore( message );
6508     VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess );
6509     return ResultValue<T>( result, std::move( data ) );
6510 #else
6511     if ( result != Result::eSuccess )
6512     {
6513       throwResultException( result, message );
6514     }
6515     return std::move( data );
6516 #endif
6517   }
6518 
createResultValue(Result result,char const * message,std::initializer_list<Result> successCodes)6519   VULKAN_HPP_INLINE Result createResultValue( Result                        result,
6520                                               char const *                  message,
6521                                               std::initializer_list<Result> successCodes )
6522   {
6523 #ifdef VULKAN_HPP_NO_EXCEPTIONS
6524     ignore( message );
6525     ignore( successCodes );  // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty
6526     VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
6527 #else
6528     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
6529     {
6530       throwResultException( result, message );
6531     }
6532 #endif
6533     return result;
6534   }
6535 
6536   template <typename T>
6537   VULKAN_HPP_INLINE ResultValue<T>
createResultValue(Result result,T & data,char const * message,std::initializer_list<Result> successCodes)6538     createResultValue( Result result, T & data, char const * message, std::initializer_list<Result> successCodes )
6539   {
6540 #ifdef VULKAN_HPP_NO_EXCEPTIONS
6541     ignore( message );
6542     ignore( successCodes );  // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty
6543     VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
6544 #else
6545     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
6546     {
6547       throwResultException( result, message );
6548     }
6549 #endif
6550     return ResultValue<T>( result, std::move( data ) );
6551   }
6552 
6553 #ifndef VULKAN_HPP_NO_SMART_HANDLE
6554   template <typename T, typename D>
createResultValue(Result result,T & data,char const * message,typename UniqueHandleTraits<T,D>::deleter const & deleter)6555   VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<T, D>>::type createResultValue(
6556     Result result, T & data, char const * message, typename UniqueHandleTraits<T, D>::deleter const & deleter )
6557   {
6558 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
6559     ignore( message );
6560     VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess );
6561     return ResultValue<UniqueHandle<T, D>>( result, UniqueHandle<T, D>( data, deleter ) );
6562 #  else
6563     if ( result != Result::eSuccess )
6564     {
6565       throwResultException( result, message );
6566     }
6567     return UniqueHandle<T, D>( data, deleter );
6568 #  endif
6569   }
6570 
6571   template <typename T, typename D>
6572   VULKAN_HPP_INLINE ResultValue<UniqueHandle<T, D>>
createResultValue(Result result,T & data,char const * message,std::initializer_list<Result> successCodes,typename UniqueHandleTraits<T,D>::deleter const & deleter)6573                     createResultValue( Result                                             result,
6574                                        T &                                                data,
6575                                        char const *                                       message,
6576                                        std::initializer_list<Result>                      successCodes,
6577                                        typename UniqueHandleTraits<T, D>::deleter const & deleter )
6578   {
6579 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
6580     ignore( message );
6581     ignore( successCodes );  // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty
6582     VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
6583 #  else
6584     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
6585     {
6586       throwResultException( result, message );
6587     }
6588 #  endif
6589     return ResultValue<UniqueHandle<T, D>>( result, UniqueHandle<T, D>( data, deleter ) );
6590   }
6591 
6592   template <typename T, typename D>
6593   VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<T, D>>>::type
createResultValue(Result result,std::vector<UniqueHandle<T,D>> && data,char const * message)6594     createResultValue( Result result, std::vector<UniqueHandle<T, D>> && data, char const * message )
6595   {
6596 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
6597     ignore( message );
6598     VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess );
6599     return ResultValue<std::vector<UniqueHandle<T, D>>>( result, std::move( data ) );
6600 #  else
6601     if ( result != Result::eSuccess )
6602     {
6603       throwResultException( result, message );
6604     }
6605     return std::move( data );
6606 #  endif
6607   }
6608 
6609   template <typename T, typename D>
6610   VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<T, D>>>
createResultValue(Result result,std::vector<UniqueHandle<T,D>> && data,char const * message,std::initializer_list<Result> successCodes)6611                     createResultValue( Result                             result,
6612                                        std::vector<UniqueHandle<T, D>> && data,
6613                                        char const *                       message,
6614                                        std::initializer_list<Result>      successCodes )
6615   {
6616 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
6617     ignore( message );
6618     ignore( successCodes );  // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty
6619     VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
6620 #  else
6621     if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
6622     {
6623       throwResultException( result, message );
6624     }
6625 #  endif
6626     return ResultValue<std::vector<UniqueHandle<T, D>>>( result, std::move( data ) );
6627   }
6628 #endif
6629 }  // namespace VULKAN_HPP_NAMESPACE
6630 
6631 // clang-format off
6632 #include <vulkan/vulkan_handles.hpp>
6633 #include <vulkan/vulkan_structs.hpp>
6634 #include <vulkan/vulkan_funcs.hpp>
6635 // clang-format on
6636 
6637 namespace VULKAN_HPP_NAMESPACE
6638 {
6639   //=======================
6640   //=== STRUCTS EXTENDS ===
6641   //=======================
6642 
6643   //=== VK_VERSION_1_1 ===
6644   template <>
6645   struct StructExtends<PhysicalDeviceSubgroupProperties, PhysicalDeviceProperties2>
6646   {
6647     enum
6648     {
6649       value = true
6650     };
6651   };
6652   template <>
6653   struct StructExtends<PhysicalDevice16BitStorageFeatures, PhysicalDeviceFeatures2>
6654   {
6655     enum
6656     {
6657       value = true
6658     };
6659   };
6660   template <>
6661   struct StructExtends<PhysicalDevice16BitStorageFeatures, DeviceCreateInfo>
6662   {
6663     enum
6664     {
6665       value = true
6666     };
6667   };
6668   template <>
6669   struct StructExtends<MemoryDedicatedRequirements, MemoryRequirements2>
6670   {
6671     enum
6672     {
6673       value = true
6674     };
6675   };
6676   template <>
6677   struct StructExtends<MemoryDedicatedAllocateInfo, MemoryAllocateInfo>
6678   {
6679     enum
6680     {
6681       value = true
6682     };
6683   };
6684   template <>
6685   struct StructExtends<MemoryAllocateFlagsInfo, MemoryAllocateInfo>
6686   {
6687     enum
6688     {
6689       value = true
6690     };
6691   };
6692   template <>
6693   struct StructExtends<DeviceGroupRenderPassBeginInfo, RenderPassBeginInfo>
6694   {
6695     enum
6696     {
6697       value = true
6698     };
6699   };
6700   template <>
6701   struct StructExtends<DeviceGroupCommandBufferBeginInfo, CommandBufferBeginInfo>
6702   {
6703     enum
6704     {
6705       value = true
6706     };
6707   };
6708   template <>
6709   struct StructExtends<DeviceGroupSubmitInfo, SubmitInfo>
6710   {
6711     enum
6712     {
6713       value = true
6714     };
6715   };
6716   template <>
6717   struct StructExtends<DeviceGroupBindSparseInfo, BindSparseInfo>
6718   {
6719     enum
6720     {
6721       value = true
6722     };
6723   };
6724   template <>
6725   struct StructExtends<BindBufferMemoryDeviceGroupInfo, BindBufferMemoryInfo>
6726   {
6727     enum
6728     {
6729       value = true
6730     };
6731   };
6732   template <>
6733   struct StructExtends<BindImageMemoryDeviceGroupInfo, BindImageMemoryInfo>
6734   {
6735     enum
6736     {
6737       value = true
6738     };
6739   };
6740   template <>
6741   struct StructExtends<DeviceGroupDeviceCreateInfo, DeviceCreateInfo>
6742   {
6743     enum
6744     {
6745       value = true
6746     };
6747   };
6748   template <>
6749   struct StructExtends<PhysicalDeviceFeatures2, DeviceCreateInfo>
6750   {
6751     enum
6752     {
6753       value = true
6754     };
6755   };
6756   template <>
6757   struct StructExtends<PhysicalDevicePointClippingProperties, PhysicalDeviceProperties2>
6758   {
6759     enum
6760     {
6761       value = true
6762     };
6763   };
6764   template <>
6765   struct StructExtends<RenderPassInputAttachmentAspectCreateInfo, RenderPassCreateInfo>
6766   {
6767     enum
6768     {
6769       value = true
6770     };
6771   };
6772   template <>
6773   struct StructExtends<ImageViewUsageCreateInfo, ImageViewCreateInfo>
6774   {
6775     enum
6776     {
6777       value = true
6778     };
6779   };
6780   template <>
6781   struct StructExtends<PipelineTessellationDomainOriginStateCreateInfo, PipelineTessellationStateCreateInfo>
6782   {
6783     enum
6784     {
6785       value = true
6786     };
6787   };
6788   template <>
6789   struct StructExtends<RenderPassMultiviewCreateInfo, RenderPassCreateInfo>
6790   {
6791     enum
6792     {
6793       value = true
6794     };
6795   };
6796   template <>
6797   struct StructExtends<PhysicalDeviceMultiviewFeatures, PhysicalDeviceFeatures2>
6798   {
6799     enum
6800     {
6801       value = true
6802     };
6803   };
6804   template <>
6805   struct StructExtends<PhysicalDeviceMultiviewFeatures, DeviceCreateInfo>
6806   {
6807     enum
6808     {
6809       value = true
6810     };
6811   };
6812   template <>
6813   struct StructExtends<PhysicalDeviceMultiviewProperties, PhysicalDeviceProperties2>
6814   {
6815     enum
6816     {
6817       value = true
6818     };
6819   };
6820   template <>
6821   struct StructExtends<PhysicalDeviceVariablePointersFeatures, PhysicalDeviceFeatures2>
6822   {
6823     enum
6824     {
6825       value = true
6826     };
6827   };
6828   template <>
6829   struct StructExtends<PhysicalDeviceVariablePointersFeatures, DeviceCreateInfo>
6830   {
6831     enum
6832     {
6833       value = true
6834     };
6835   };
6836   template <>
6837   struct StructExtends<PhysicalDeviceProtectedMemoryFeatures, PhysicalDeviceFeatures2>
6838   {
6839     enum
6840     {
6841       value = true
6842     };
6843   };
6844   template <>
6845   struct StructExtends<PhysicalDeviceProtectedMemoryFeatures, DeviceCreateInfo>
6846   {
6847     enum
6848     {
6849       value = true
6850     };
6851   };
6852   template <>
6853   struct StructExtends<PhysicalDeviceProtectedMemoryProperties, PhysicalDeviceProperties2>
6854   {
6855     enum
6856     {
6857       value = true
6858     };
6859   };
6860   template <>
6861   struct StructExtends<ProtectedSubmitInfo, SubmitInfo>
6862   {
6863     enum
6864     {
6865       value = true
6866     };
6867   };
6868   template <>
6869   struct StructExtends<SamplerYcbcrConversionInfo, SamplerCreateInfo>
6870   {
6871     enum
6872     {
6873       value = true
6874     };
6875   };
6876   template <>
6877   struct StructExtends<SamplerYcbcrConversionInfo, ImageViewCreateInfo>
6878   {
6879     enum
6880     {
6881       value = true
6882     };
6883   };
6884   template <>
6885   struct StructExtends<BindImagePlaneMemoryInfo, BindImageMemoryInfo>
6886   {
6887     enum
6888     {
6889       value = true
6890     };
6891   };
6892   template <>
6893   struct StructExtends<ImagePlaneMemoryRequirementsInfo, ImageMemoryRequirementsInfo2>
6894   {
6895     enum
6896     {
6897       value = true
6898     };
6899   };
6900   template <>
6901   struct StructExtends<PhysicalDeviceSamplerYcbcrConversionFeatures, PhysicalDeviceFeatures2>
6902   {
6903     enum
6904     {
6905       value = true
6906     };
6907   };
6908   template <>
6909   struct StructExtends<PhysicalDeviceSamplerYcbcrConversionFeatures, DeviceCreateInfo>
6910   {
6911     enum
6912     {
6913       value = true
6914     };
6915   };
6916   template <>
6917   struct StructExtends<SamplerYcbcrConversionImageFormatProperties, ImageFormatProperties2>
6918   {
6919     enum
6920     {
6921       value = true
6922     };
6923   };
6924   template <>
6925   struct StructExtends<PhysicalDeviceExternalImageFormatInfo, PhysicalDeviceImageFormatInfo2>
6926   {
6927     enum
6928     {
6929       value = true
6930     };
6931   };
6932   template <>
6933   struct StructExtends<ExternalImageFormatProperties, ImageFormatProperties2>
6934   {
6935     enum
6936     {
6937       value = true
6938     };
6939   };
6940   template <>
6941   struct StructExtends<PhysicalDeviceIDProperties, PhysicalDeviceProperties2>
6942   {
6943     enum
6944     {
6945       value = true
6946     };
6947   };
6948   template <>
6949   struct StructExtends<ExternalMemoryImageCreateInfo, ImageCreateInfo>
6950   {
6951     enum
6952     {
6953       value = true
6954     };
6955   };
6956   template <>
6957   struct StructExtends<ExternalMemoryBufferCreateInfo, BufferCreateInfo>
6958   {
6959     enum
6960     {
6961       value = true
6962     };
6963   };
6964   template <>
6965   struct StructExtends<ExportMemoryAllocateInfo, MemoryAllocateInfo>
6966   {
6967     enum
6968     {
6969       value = true
6970     };
6971   };
6972   template <>
6973   struct StructExtends<ExportFenceCreateInfo, FenceCreateInfo>
6974   {
6975     enum
6976     {
6977       value = true
6978     };
6979   };
6980   template <>
6981   struct StructExtends<ExportSemaphoreCreateInfo, SemaphoreCreateInfo>
6982   {
6983     enum
6984     {
6985       value = true
6986     };
6987   };
6988   template <>
6989   struct StructExtends<PhysicalDeviceMaintenance3Properties, PhysicalDeviceProperties2>
6990   {
6991     enum
6992     {
6993       value = true
6994     };
6995   };
6996   template <>
6997   struct StructExtends<PhysicalDeviceShaderDrawParametersFeatures, PhysicalDeviceFeatures2>
6998   {
6999     enum
7000     {
7001       value = true
7002     };
7003   };
7004   template <>
7005   struct StructExtends<PhysicalDeviceShaderDrawParametersFeatures, DeviceCreateInfo>
7006   {
7007     enum
7008     {
7009       value = true
7010     };
7011   };
7012 
7013   //=== VK_VERSION_1_2 ===
7014   template <>
7015   struct StructExtends<PhysicalDeviceVulkan11Features, PhysicalDeviceFeatures2>
7016   {
7017     enum
7018     {
7019       value = true
7020     };
7021   };
7022   template <>
7023   struct StructExtends<PhysicalDeviceVulkan11Features, DeviceCreateInfo>
7024   {
7025     enum
7026     {
7027       value = true
7028     };
7029   };
7030   template <>
7031   struct StructExtends<PhysicalDeviceVulkan11Properties, PhysicalDeviceProperties2>
7032   {
7033     enum
7034     {
7035       value = true
7036     };
7037   };
7038   template <>
7039   struct StructExtends<PhysicalDeviceVulkan12Features, PhysicalDeviceFeatures2>
7040   {
7041     enum
7042     {
7043       value = true
7044     };
7045   };
7046   template <>
7047   struct StructExtends<PhysicalDeviceVulkan12Features, DeviceCreateInfo>
7048   {
7049     enum
7050     {
7051       value = true
7052     };
7053   };
7054   template <>
7055   struct StructExtends<PhysicalDeviceVulkan12Properties, PhysicalDeviceProperties2>
7056   {
7057     enum
7058     {
7059       value = true
7060     };
7061   };
7062   template <>
7063   struct StructExtends<ImageFormatListCreateInfo, ImageCreateInfo>
7064   {
7065     enum
7066     {
7067       value = true
7068     };
7069   };
7070   template <>
7071   struct StructExtends<ImageFormatListCreateInfo, SwapchainCreateInfoKHR>
7072   {
7073     enum
7074     {
7075       value = true
7076     };
7077   };
7078   template <>
7079   struct StructExtends<ImageFormatListCreateInfo, PhysicalDeviceImageFormatInfo2>
7080   {
7081     enum
7082     {
7083       value = true
7084     };
7085   };
7086   template <>
7087   struct StructExtends<PhysicalDevice8BitStorageFeatures, PhysicalDeviceFeatures2>
7088   {
7089     enum
7090     {
7091       value = true
7092     };
7093   };
7094   template <>
7095   struct StructExtends<PhysicalDevice8BitStorageFeatures, DeviceCreateInfo>
7096   {
7097     enum
7098     {
7099       value = true
7100     };
7101   };
7102   template <>
7103   struct StructExtends<PhysicalDeviceDriverProperties, PhysicalDeviceProperties2>
7104   {
7105     enum
7106     {
7107       value = true
7108     };
7109   };
7110   template <>
7111   struct StructExtends<PhysicalDeviceShaderAtomicInt64Features, PhysicalDeviceFeatures2>
7112   {
7113     enum
7114     {
7115       value = true
7116     };
7117   };
7118   template <>
7119   struct StructExtends<PhysicalDeviceShaderAtomicInt64Features, DeviceCreateInfo>
7120   {
7121     enum
7122     {
7123       value = true
7124     };
7125   };
7126   template <>
7127   struct StructExtends<PhysicalDeviceShaderFloat16Int8Features, PhysicalDeviceFeatures2>
7128   {
7129     enum
7130     {
7131       value = true
7132     };
7133   };
7134   template <>
7135   struct StructExtends<PhysicalDeviceShaderFloat16Int8Features, DeviceCreateInfo>
7136   {
7137     enum
7138     {
7139       value = true
7140     };
7141   };
7142   template <>
7143   struct StructExtends<PhysicalDeviceFloatControlsProperties, PhysicalDeviceProperties2>
7144   {
7145     enum
7146     {
7147       value = true
7148     };
7149   };
7150   template <>
7151   struct StructExtends<DescriptorSetLayoutBindingFlagsCreateInfo, DescriptorSetLayoutCreateInfo>
7152   {
7153     enum
7154     {
7155       value = true
7156     };
7157   };
7158   template <>
7159   struct StructExtends<PhysicalDeviceDescriptorIndexingFeatures, PhysicalDeviceFeatures2>
7160   {
7161     enum
7162     {
7163       value = true
7164     };
7165   };
7166   template <>
7167   struct StructExtends<PhysicalDeviceDescriptorIndexingFeatures, DeviceCreateInfo>
7168   {
7169     enum
7170     {
7171       value = true
7172     };
7173   };
7174   template <>
7175   struct StructExtends<PhysicalDeviceDescriptorIndexingProperties, PhysicalDeviceProperties2>
7176   {
7177     enum
7178     {
7179       value = true
7180     };
7181   };
7182   template <>
7183   struct StructExtends<DescriptorSetVariableDescriptorCountAllocateInfo, DescriptorSetAllocateInfo>
7184   {
7185     enum
7186     {
7187       value = true
7188     };
7189   };
7190   template <>
7191   struct StructExtends<DescriptorSetVariableDescriptorCountLayoutSupport, DescriptorSetLayoutSupport>
7192   {
7193     enum
7194     {
7195       value = true
7196     };
7197   };
7198   template <>
7199   struct StructExtends<SubpassDescriptionDepthStencilResolve, SubpassDescription2>
7200   {
7201     enum
7202     {
7203       value = true
7204     };
7205   };
7206   template <>
7207   struct StructExtends<PhysicalDeviceDepthStencilResolveProperties, PhysicalDeviceProperties2>
7208   {
7209     enum
7210     {
7211       value = true
7212     };
7213   };
7214   template <>
7215   struct StructExtends<PhysicalDeviceScalarBlockLayoutFeatures, PhysicalDeviceFeatures2>
7216   {
7217     enum
7218     {
7219       value = true
7220     };
7221   };
7222   template <>
7223   struct StructExtends<PhysicalDeviceScalarBlockLayoutFeatures, DeviceCreateInfo>
7224   {
7225     enum
7226     {
7227       value = true
7228     };
7229   };
7230   template <>
7231   struct StructExtends<ImageStencilUsageCreateInfo, ImageCreateInfo>
7232   {
7233     enum
7234     {
7235       value = true
7236     };
7237   };
7238   template <>
7239   struct StructExtends<ImageStencilUsageCreateInfo, PhysicalDeviceImageFormatInfo2>
7240   {
7241     enum
7242     {
7243       value = true
7244     };
7245   };
7246   template <>
7247   struct StructExtends<SamplerReductionModeCreateInfo, SamplerCreateInfo>
7248   {
7249     enum
7250     {
7251       value = true
7252     };
7253   };
7254   template <>
7255   struct StructExtends<PhysicalDeviceSamplerFilterMinmaxProperties, PhysicalDeviceProperties2>
7256   {
7257     enum
7258     {
7259       value = true
7260     };
7261   };
7262   template <>
7263   struct StructExtends<PhysicalDeviceVulkanMemoryModelFeatures, PhysicalDeviceFeatures2>
7264   {
7265     enum
7266     {
7267       value = true
7268     };
7269   };
7270   template <>
7271   struct StructExtends<PhysicalDeviceVulkanMemoryModelFeatures, DeviceCreateInfo>
7272   {
7273     enum
7274     {
7275       value = true
7276     };
7277   };
7278   template <>
7279   struct StructExtends<PhysicalDeviceImagelessFramebufferFeatures, PhysicalDeviceFeatures2>
7280   {
7281     enum
7282     {
7283       value = true
7284     };
7285   };
7286   template <>
7287   struct StructExtends<PhysicalDeviceImagelessFramebufferFeatures, DeviceCreateInfo>
7288   {
7289     enum
7290     {
7291       value = true
7292     };
7293   };
7294   template <>
7295   struct StructExtends<FramebufferAttachmentsCreateInfo, FramebufferCreateInfo>
7296   {
7297     enum
7298     {
7299       value = true
7300     };
7301   };
7302   template <>
7303   struct StructExtends<RenderPassAttachmentBeginInfo, RenderPassBeginInfo>
7304   {
7305     enum
7306     {
7307       value = true
7308     };
7309   };
7310   template <>
7311   struct StructExtends<PhysicalDeviceUniformBufferStandardLayoutFeatures, PhysicalDeviceFeatures2>
7312   {
7313     enum
7314     {
7315       value = true
7316     };
7317   };
7318   template <>
7319   struct StructExtends<PhysicalDeviceUniformBufferStandardLayoutFeatures, DeviceCreateInfo>
7320   {
7321     enum
7322     {
7323       value = true
7324     };
7325   };
7326   template <>
7327   struct StructExtends<PhysicalDeviceShaderSubgroupExtendedTypesFeatures, PhysicalDeviceFeatures2>
7328   {
7329     enum
7330     {
7331       value = true
7332     };
7333   };
7334   template <>
7335   struct StructExtends<PhysicalDeviceShaderSubgroupExtendedTypesFeatures, DeviceCreateInfo>
7336   {
7337     enum
7338     {
7339       value = true
7340     };
7341   };
7342   template <>
7343   struct StructExtends<PhysicalDeviceSeparateDepthStencilLayoutsFeatures, PhysicalDeviceFeatures2>
7344   {
7345     enum
7346     {
7347       value = true
7348     };
7349   };
7350   template <>
7351   struct StructExtends<PhysicalDeviceSeparateDepthStencilLayoutsFeatures, DeviceCreateInfo>
7352   {
7353     enum
7354     {
7355       value = true
7356     };
7357   };
7358   template <>
7359   struct StructExtends<AttachmentReferenceStencilLayout, AttachmentReference2>
7360   {
7361     enum
7362     {
7363       value = true
7364     };
7365   };
7366   template <>
7367   struct StructExtends<AttachmentDescriptionStencilLayout, AttachmentDescription2>
7368   {
7369     enum
7370     {
7371       value = true
7372     };
7373   };
7374   template <>
7375   struct StructExtends<PhysicalDeviceHostQueryResetFeatures, PhysicalDeviceFeatures2>
7376   {
7377     enum
7378     {
7379       value = true
7380     };
7381   };
7382   template <>
7383   struct StructExtends<PhysicalDeviceHostQueryResetFeatures, DeviceCreateInfo>
7384   {
7385     enum
7386     {
7387       value = true
7388     };
7389   };
7390   template <>
7391   struct StructExtends<PhysicalDeviceTimelineSemaphoreFeatures, PhysicalDeviceFeatures2>
7392   {
7393     enum
7394     {
7395       value = true
7396     };
7397   };
7398   template <>
7399   struct StructExtends<PhysicalDeviceTimelineSemaphoreFeatures, DeviceCreateInfo>
7400   {
7401     enum
7402     {
7403       value = true
7404     };
7405   };
7406   template <>
7407   struct StructExtends<PhysicalDeviceTimelineSemaphoreProperties, PhysicalDeviceProperties2>
7408   {
7409     enum
7410     {
7411       value = true
7412     };
7413   };
7414   template <>
7415   struct StructExtends<SemaphoreTypeCreateInfo, SemaphoreCreateInfo>
7416   {
7417     enum
7418     {
7419       value = true
7420     };
7421   };
7422   template <>
7423   struct StructExtends<SemaphoreTypeCreateInfo, PhysicalDeviceExternalSemaphoreInfo>
7424   {
7425     enum
7426     {
7427       value = true
7428     };
7429   };
7430   template <>
7431   struct StructExtends<TimelineSemaphoreSubmitInfo, SubmitInfo>
7432   {
7433     enum
7434     {
7435       value = true
7436     };
7437   };
7438   template <>
7439   struct StructExtends<TimelineSemaphoreSubmitInfo, BindSparseInfo>
7440   {
7441     enum
7442     {
7443       value = true
7444     };
7445   };
7446   template <>
7447   struct StructExtends<PhysicalDeviceBufferDeviceAddressFeatures, PhysicalDeviceFeatures2>
7448   {
7449     enum
7450     {
7451       value = true
7452     };
7453   };
7454   template <>
7455   struct StructExtends<PhysicalDeviceBufferDeviceAddressFeatures, DeviceCreateInfo>
7456   {
7457     enum
7458     {
7459       value = true
7460     };
7461   };
7462   template <>
7463   struct StructExtends<BufferOpaqueCaptureAddressCreateInfo, BufferCreateInfo>
7464   {
7465     enum
7466     {
7467       value = true
7468     };
7469   };
7470   template <>
7471   struct StructExtends<MemoryOpaqueCaptureAddressAllocateInfo, MemoryAllocateInfo>
7472   {
7473     enum
7474     {
7475       value = true
7476     };
7477   };
7478 
7479   //=== VK_KHR_swapchain ===
7480   template <>
7481   struct StructExtends<ImageSwapchainCreateInfoKHR, ImageCreateInfo>
7482   {
7483     enum
7484     {
7485       value = true
7486     };
7487   };
7488   template <>
7489   struct StructExtends<BindImageMemorySwapchainInfoKHR, BindImageMemoryInfo>
7490   {
7491     enum
7492     {
7493       value = true
7494     };
7495   };
7496   template <>
7497   struct StructExtends<DeviceGroupPresentInfoKHR, PresentInfoKHR>
7498   {
7499     enum
7500     {
7501       value = true
7502     };
7503   };
7504   template <>
7505   struct StructExtends<DeviceGroupSwapchainCreateInfoKHR, SwapchainCreateInfoKHR>
7506   {
7507     enum
7508     {
7509       value = true
7510     };
7511   };
7512 
7513   //=== VK_KHR_display_swapchain ===
7514   template <>
7515   struct StructExtends<DisplayPresentInfoKHR, PresentInfoKHR>
7516   {
7517     enum
7518     {
7519       value = true
7520     };
7521   };
7522 
7523   //=== VK_EXT_debug_report ===
7524   template <>
7525   struct StructExtends<DebugReportCallbackCreateInfoEXT, InstanceCreateInfo>
7526   {
7527     enum
7528     {
7529       value = true
7530     };
7531   };
7532 
7533   //=== VK_AMD_rasterization_order ===
7534   template <>
7535   struct StructExtends<PipelineRasterizationStateRasterizationOrderAMD, PipelineRasterizationStateCreateInfo>
7536   {
7537     enum
7538     {
7539       value = true
7540     };
7541   };
7542 
7543 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7544   //=== VK_KHR_video_queue ===
7545   template <>
7546   struct StructExtends<VideoQueueFamilyProperties2KHR, QueueFamilyProperties2>
7547   {
7548     enum
7549     {
7550       value = true
7551     };
7552   };
7553   template <>
7554   struct StructExtends<VideoProfileKHR, QueryPoolCreateInfo>
7555   {
7556     enum
7557     {
7558       value = true
7559     };
7560   };
7561   template <>
7562   struct StructExtends<VideoProfileKHR, FormatProperties2>
7563   {
7564     enum
7565     {
7566       value = true
7567     };
7568   };
7569   template <>
7570   struct StructExtends<VideoProfileKHR, ImageCreateInfo>
7571   {
7572     enum
7573     {
7574       value = true
7575     };
7576   };
7577   template <>
7578   struct StructExtends<VideoProfileKHR, ImageViewCreateInfo>
7579   {
7580     enum
7581     {
7582       value = true
7583     };
7584   };
7585   template <>
7586   struct StructExtends<VideoProfileKHR, BufferCreateInfo>
7587   {
7588     enum
7589     {
7590       value = true
7591     };
7592   };
7593   template <>
7594   struct StructExtends<VideoProfilesKHR, FormatProperties2>
7595   {
7596     enum
7597     {
7598       value = true
7599     };
7600   };
7601   template <>
7602   struct StructExtends<VideoProfilesKHR, ImageCreateInfo>
7603   {
7604     enum
7605     {
7606       value = true
7607     };
7608   };
7609   template <>
7610   struct StructExtends<VideoProfilesKHR, ImageViewCreateInfo>
7611   {
7612     enum
7613     {
7614       value = true
7615     };
7616   };
7617   template <>
7618   struct StructExtends<VideoProfilesKHR, BufferCreateInfo>
7619   {
7620     enum
7621     {
7622       value = true
7623     };
7624   };
7625 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7626 
7627   //=== VK_NV_dedicated_allocation ===
7628   template <>
7629   struct StructExtends<DedicatedAllocationImageCreateInfoNV, ImageCreateInfo>
7630   {
7631     enum
7632     {
7633       value = true
7634     };
7635   };
7636   template <>
7637   struct StructExtends<DedicatedAllocationBufferCreateInfoNV, BufferCreateInfo>
7638   {
7639     enum
7640     {
7641       value = true
7642     };
7643   };
7644   template <>
7645   struct StructExtends<DedicatedAllocationMemoryAllocateInfoNV, MemoryAllocateInfo>
7646   {
7647     enum
7648     {
7649       value = true
7650     };
7651   };
7652 
7653   //=== VK_EXT_transform_feedback ===
7654   template <>
7655   struct StructExtends<PhysicalDeviceTransformFeedbackFeaturesEXT, PhysicalDeviceFeatures2>
7656   {
7657     enum
7658     {
7659       value = true
7660     };
7661   };
7662   template <>
7663   struct StructExtends<PhysicalDeviceTransformFeedbackFeaturesEXT, DeviceCreateInfo>
7664   {
7665     enum
7666     {
7667       value = true
7668     };
7669   };
7670   template <>
7671   struct StructExtends<PhysicalDeviceTransformFeedbackPropertiesEXT, PhysicalDeviceProperties2>
7672   {
7673     enum
7674     {
7675       value = true
7676     };
7677   };
7678   template <>
7679   struct StructExtends<PipelineRasterizationStateStreamCreateInfoEXT, PipelineRasterizationStateCreateInfo>
7680   {
7681     enum
7682     {
7683       value = true
7684     };
7685   };
7686 
7687 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7688   //=== VK_EXT_video_encode_h264 ===
7689   template <>
7690   struct StructExtends<VideoEncodeH264CapabilitiesEXT, VideoCapabilitiesKHR>
7691   {
7692     enum
7693     {
7694       value = true
7695     };
7696   };
7697   template <>
7698   struct StructExtends<VideoEncodeH264SessionCreateInfoEXT, VideoSessionCreateInfoKHR>
7699   {
7700     enum
7701     {
7702       value = true
7703     };
7704   };
7705   template <>
7706   struct StructExtends<VideoEncodeH264SessionParametersCreateInfoEXT, VideoSessionParametersCreateInfoKHR>
7707   {
7708     enum
7709     {
7710       value = true
7711     };
7712   };
7713   template <>
7714   struct StructExtends<VideoEncodeH264SessionParametersAddInfoEXT, VideoSessionParametersUpdateInfoKHR>
7715   {
7716     enum
7717     {
7718       value = true
7719     };
7720   };
7721   template <>
7722   struct StructExtends<VideoEncodeH264VclFrameInfoEXT, VideoEncodeInfoKHR>
7723   {
7724     enum
7725     {
7726       value = true
7727     };
7728   };
7729   template <>
7730   struct StructExtends<VideoEncodeH264EmitPictureParametersEXT, VideoEncodeInfoKHR>
7731   {
7732     enum
7733     {
7734       value = true
7735     };
7736   };
7737   template <>
7738   struct StructExtends<VideoEncodeH264ProfileEXT, VideoProfileKHR>
7739   {
7740     enum
7741     {
7742       value = true
7743     };
7744   };
7745 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7746 
7747 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7748   //=== VK_EXT_video_encode_h265 ===
7749   template <>
7750   struct StructExtends<VideoEncodeH265CapabilitiesEXT, VideoCapabilitiesKHR>
7751   {
7752     enum
7753     {
7754       value = true
7755     };
7756   };
7757   template <>
7758   struct StructExtends<VideoEncodeH265SessionCreateInfoEXT, VideoSessionCreateInfoKHR>
7759   {
7760     enum
7761     {
7762       value = true
7763     };
7764   };
7765   template <>
7766   struct StructExtends<VideoEncodeH265SessionParametersCreateInfoEXT, VideoSessionParametersCreateInfoKHR>
7767   {
7768     enum
7769     {
7770       value = true
7771     };
7772   };
7773   template <>
7774   struct StructExtends<VideoEncodeH265SessionParametersAddInfoEXT, VideoSessionParametersUpdateInfoKHR>
7775   {
7776     enum
7777     {
7778       value = true
7779     };
7780   };
7781   template <>
7782   struct StructExtends<VideoEncodeH265VclFrameInfoEXT, VideoEncodeInfoKHR>
7783   {
7784     enum
7785     {
7786       value = true
7787     };
7788   };
7789   template <>
7790   struct StructExtends<VideoEncodeH265EmitPictureParametersEXT, VideoEncodeInfoKHR>
7791   {
7792     enum
7793     {
7794       value = true
7795     };
7796   };
7797   template <>
7798   struct StructExtends<VideoEncodeH265ProfileEXT, VideoProfileKHR>
7799   {
7800     enum
7801     {
7802       value = true
7803     };
7804   };
7805 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7806 
7807 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7808   //=== VK_EXT_video_decode_h264 ===
7809   template <>
7810   struct StructExtends<VideoDecodeH264ProfileEXT, VideoProfileKHR>
7811   {
7812     enum
7813     {
7814       value = true
7815     };
7816   };
7817   template <>
7818   struct StructExtends<VideoDecodeH264CapabilitiesEXT, VideoCapabilitiesKHR>
7819   {
7820     enum
7821     {
7822       value = true
7823     };
7824   };
7825   template <>
7826   struct StructExtends<VideoDecodeH264SessionCreateInfoEXT, VideoSessionCreateInfoKHR>
7827   {
7828     enum
7829     {
7830       value = true
7831     };
7832   };
7833   template <>
7834   struct StructExtends<VideoDecodeH264SessionParametersCreateInfoEXT, VideoSessionParametersCreateInfoKHR>
7835   {
7836     enum
7837     {
7838       value = true
7839     };
7840   };
7841   template <>
7842   struct StructExtends<VideoDecodeH264SessionParametersAddInfoEXT, VideoSessionParametersUpdateInfoKHR>
7843   {
7844     enum
7845     {
7846       value = true
7847     };
7848   };
7849   template <>
7850   struct StructExtends<VideoDecodeH264PictureInfoEXT, VideoDecodeInfoKHR>
7851   {
7852     enum
7853     {
7854       value = true
7855     };
7856   };
7857   template <>
7858   struct StructExtends<VideoDecodeH264MvcEXT, VideoDecodeH264PictureInfoEXT>
7859   {
7860     enum
7861     {
7862       value = true
7863     };
7864   };
7865   template <>
7866   struct StructExtends<VideoDecodeH264DpbSlotInfoEXT, VideoReferenceSlotKHR>
7867   {
7868     enum
7869     {
7870       value = true
7871     };
7872   };
7873 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7874 
7875   //=== VK_AMD_texture_gather_bias_lod ===
7876   template <>
7877   struct StructExtends<TextureLODGatherFormatPropertiesAMD, ImageFormatProperties2>
7878   {
7879     enum
7880     {
7881       value = true
7882     };
7883   };
7884 
7885   //=== VK_NV_corner_sampled_image ===
7886   template <>
7887   struct StructExtends<PhysicalDeviceCornerSampledImageFeaturesNV, PhysicalDeviceFeatures2>
7888   {
7889     enum
7890     {
7891       value = true
7892     };
7893   };
7894   template <>
7895   struct StructExtends<PhysicalDeviceCornerSampledImageFeaturesNV, DeviceCreateInfo>
7896   {
7897     enum
7898     {
7899       value = true
7900     };
7901   };
7902 
7903   //=== VK_NV_external_memory ===
7904   template <>
7905   struct StructExtends<ExternalMemoryImageCreateInfoNV, ImageCreateInfo>
7906   {
7907     enum
7908     {
7909       value = true
7910     };
7911   };
7912   template <>
7913   struct StructExtends<ExportMemoryAllocateInfoNV, MemoryAllocateInfo>
7914   {
7915     enum
7916     {
7917       value = true
7918     };
7919   };
7920 
7921 #if defined( VK_USE_PLATFORM_WIN32_KHR )
7922   //=== VK_NV_external_memory_win32 ===
7923   template <>
7924   struct StructExtends<ImportMemoryWin32HandleInfoNV, MemoryAllocateInfo>
7925   {
7926     enum
7927     {
7928       value = true
7929     };
7930   };
7931   template <>
7932   struct StructExtends<ExportMemoryWin32HandleInfoNV, MemoryAllocateInfo>
7933   {
7934     enum
7935     {
7936       value = true
7937     };
7938   };
7939 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
7940 
7941 #if defined( VK_USE_PLATFORM_WIN32_KHR )
7942   //=== VK_NV_win32_keyed_mutex ===
7943   template <>
7944   struct StructExtends<Win32KeyedMutexAcquireReleaseInfoNV, SubmitInfo>
7945   {
7946     enum
7947     {
7948       value = true
7949     };
7950   };
7951   template <>
7952   struct StructExtends<Win32KeyedMutexAcquireReleaseInfoNV, SubmitInfo2KHR>
7953   {
7954     enum
7955     {
7956       value = true
7957     };
7958   };
7959 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
7960 
7961   //=== VK_EXT_validation_flags ===
7962   template <>
7963   struct StructExtends<ValidationFlagsEXT, InstanceCreateInfo>
7964   {
7965     enum
7966     {
7967       value = true
7968     };
7969   };
7970 
7971   //=== VK_EXT_texture_compression_astc_hdr ===
7972   template <>
7973   struct StructExtends<PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT, PhysicalDeviceFeatures2>
7974   {
7975     enum
7976     {
7977       value = true
7978     };
7979   };
7980   template <>
7981   struct StructExtends<PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT, DeviceCreateInfo>
7982   {
7983     enum
7984     {
7985       value = true
7986     };
7987   };
7988 
7989   //=== VK_EXT_astc_decode_mode ===
7990   template <>
7991   struct StructExtends<ImageViewASTCDecodeModeEXT, ImageViewCreateInfo>
7992   {
7993     enum
7994     {
7995       value = true
7996     };
7997   };
7998   template <>
7999   struct StructExtends<PhysicalDeviceASTCDecodeFeaturesEXT, PhysicalDeviceFeatures2>
8000   {
8001     enum
8002     {
8003       value = true
8004     };
8005   };
8006   template <>
8007   struct StructExtends<PhysicalDeviceASTCDecodeFeaturesEXT, DeviceCreateInfo>
8008   {
8009     enum
8010     {
8011       value = true
8012     };
8013   };
8014 
8015 #if defined( VK_USE_PLATFORM_WIN32_KHR )
8016   //=== VK_KHR_external_memory_win32 ===
8017   template <>
8018   struct StructExtends<ImportMemoryWin32HandleInfoKHR, MemoryAllocateInfo>
8019   {
8020     enum
8021     {
8022       value = true
8023     };
8024   };
8025   template <>
8026   struct StructExtends<ExportMemoryWin32HandleInfoKHR, MemoryAllocateInfo>
8027   {
8028     enum
8029     {
8030       value = true
8031     };
8032   };
8033 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
8034 
8035   //=== VK_KHR_external_memory_fd ===
8036   template <>
8037   struct StructExtends<ImportMemoryFdInfoKHR, MemoryAllocateInfo>
8038   {
8039     enum
8040     {
8041       value = true
8042     };
8043   };
8044 
8045 #if defined( VK_USE_PLATFORM_WIN32_KHR )
8046   //=== VK_KHR_win32_keyed_mutex ===
8047   template <>
8048   struct StructExtends<Win32KeyedMutexAcquireReleaseInfoKHR, SubmitInfo>
8049   {
8050     enum
8051     {
8052       value = true
8053     };
8054   };
8055   template <>
8056   struct StructExtends<Win32KeyedMutexAcquireReleaseInfoKHR, SubmitInfo2KHR>
8057   {
8058     enum
8059     {
8060       value = true
8061     };
8062   };
8063 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
8064 
8065 #if defined( VK_USE_PLATFORM_WIN32_KHR )
8066   //=== VK_KHR_external_semaphore_win32 ===
8067   template <>
8068   struct StructExtends<ExportSemaphoreWin32HandleInfoKHR, SemaphoreCreateInfo>
8069   {
8070     enum
8071     {
8072       value = true
8073     };
8074   };
8075   template <>
8076   struct StructExtends<D3D12FenceSubmitInfoKHR, SubmitInfo>
8077   {
8078     enum
8079     {
8080       value = true
8081     };
8082   };
8083 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
8084 
8085   //=== VK_KHR_push_descriptor ===
8086   template <>
8087   struct StructExtends<PhysicalDevicePushDescriptorPropertiesKHR, PhysicalDeviceProperties2>
8088   {
8089     enum
8090     {
8091       value = true
8092     };
8093   };
8094 
8095   //=== VK_EXT_conditional_rendering ===
8096   template <>
8097   struct StructExtends<PhysicalDeviceConditionalRenderingFeaturesEXT, PhysicalDeviceFeatures2>
8098   {
8099     enum
8100     {
8101       value = true
8102     };
8103   };
8104   template <>
8105   struct StructExtends<PhysicalDeviceConditionalRenderingFeaturesEXT, DeviceCreateInfo>
8106   {
8107     enum
8108     {
8109       value = true
8110     };
8111   };
8112   template <>
8113   struct StructExtends<CommandBufferInheritanceConditionalRenderingInfoEXT, CommandBufferInheritanceInfo>
8114   {
8115     enum
8116     {
8117       value = true
8118     };
8119   };
8120 
8121   //=== VK_KHR_incremental_present ===
8122   template <>
8123   struct StructExtends<PresentRegionsKHR, PresentInfoKHR>
8124   {
8125     enum
8126     {
8127       value = true
8128     };
8129   };
8130 
8131   //=== VK_NV_clip_space_w_scaling ===
8132   template <>
8133   struct StructExtends<PipelineViewportWScalingStateCreateInfoNV, PipelineViewportStateCreateInfo>
8134   {
8135     enum
8136     {
8137       value = true
8138     };
8139   };
8140 
8141   //=== VK_EXT_display_control ===
8142   template <>
8143   struct StructExtends<SwapchainCounterCreateInfoEXT, SwapchainCreateInfoKHR>
8144   {
8145     enum
8146     {
8147       value = true
8148     };
8149   };
8150 
8151   //=== VK_GOOGLE_display_timing ===
8152   template <>
8153   struct StructExtends<PresentTimesInfoGOOGLE, PresentInfoKHR>
8154   {
8155     enum
8156     {
8157       value = true
8158     };
8159   };
8160 
8161   //=== VK_NVX_multiview_per_view_attributes ===
8162   template <>
8163   struct StructExtends<PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, PhysicalDeviceProperties2>
8164   {
8165     enum
8166     {
8167       value = true
8168     };
8169   };
8170 
8171   //=== VK_NV_viewport_swizzle ===
8172   template <>
8173   struct StructExtends<PipelineViewportSwizzleStateCreateInfoNV, PipelineViewportStateCreateInfo>
8174   {
8175     enum
8176     {
8177       value = true
8178     };
8179   };
8180 
8181   //=== VK_EXT_discard_rectangles ===
8182   template <>
8183   struct StructExtends<PhysicalDeviceDiscardRectanglePropertiesEXT, PhysicalDeviceProperties2>
8184   {
8185     enum
8186     {
8187       value = true
8188     };
8189   };
8190   template <>
8191   struct StructExtends<PipelineDiscardRectangleStateCreateInfoEXT, GraphicsPipelineCreateInfo>
8192   {
8193     enum
8194     {
8195       value = true
8196     };
8197   };
8198 
8199   //=== VK_EXT_conservative_rasterization ===
8200   template <>
8201   struct StructExtends<PhysicalDeviceConservativeRasterizationPropertiesEXT, PhysicalDeviceProperties2>
8202   {
8203     enum
8204     {
8205       value = true
8206     };
8207   };
8208   template <>
8209   struct StructExtends<PipelineRasterizationConservativeStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
8210   {
8211     enum
8212     {
8213       value = true
8214     };
8215   };
8216 
8217   //=== VK_EXT_depth_clip_enable ===
8218   template <>
8219   struct StructExtends<PhysicalDeviceDepthClipEnableFeaturesEXT, PhysicalDeviceFeatures2>
8220   {
8221     enum
8222     {
8223       value = true
8224     };
8225   };
8226   template <>
8227   struct StructExtends<PhysicalDeviceDepthClipEnableFeaturesEXT, DeviceCreateInfo>
8228   {
8229     enum
8230     {
8231       value = true
8232     };
8233   };
8234   template <>
8235   struct StructExtends<PipelineRasterizationDepthClipStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
8236   {
8237     enum
8238     {
8239       value = true
8240     };
8241   };
8242 
8243   //=== VK_KHR_shared_presentable_image ===
8244   template <>
8245   struct StructExtends<SharedPresentSurfaceCapabilitiesKHR, SurfaceCapabilities2KHR>
8246   {
8247     enum
8248     {
8249       value = true
8250     };
8251   };
8252 
8253 #if defined( VK_USE_PLATFORM_WIN32_KHR )
8254   //=== VK_KHR_external_fence_win32 ===
8255   template <>
8256   struct StructExtends<ExportFenceWin32HandleInfoKHR, FenceCreateInfo>
8257   {
8258     enum
8259     {
8260       value = true
8261     };
8262   };
8263 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
8264 
8265   //=== VK_KHR_performance_query ===
8266   template <>
8267   struct StructExtends<PhysicalDevicePerformanceQueryFeaturesKHR, PhysicalDeviceFeatures2>
8268   {
8269     enum
8270     {
8271       value = true
8272     };
8273   };
8274   template <>
8275   struct StructExtends<PhysicalDevicePerformanceQueryFeaturesKHR, DeviceCreateInfo>
8276   {
8277     enum
8278     {
8279       value = true
8280     };
8281   };
8282   template <>
8283   struct StructExtends<PhysicalDevicePerformanceQueryPropertiesKHR, PhysicalDeviceProperties2>
8284   {
8285     enum
8286     {
8287       value = true
8288     };
8289   };
8290   template <>
8291   struct StructExtends<QueryPoolPerformanceCreateInfoKHR, QueryPoolCreateInfo>
8292   {
8293     enum
8294     {
8295       value = true
8296     };
8297   };
8298   template <>
8299   struct StructExtends<PerformanceQuerySubmitInfoKHR, SubmitInfo>
8300   {
8301     enum
8302     {
8303       value = true
8304     };
8305   };
8306   template <>
8307   struct StructExtends<PerformanceQuerySubmitInfoKHR, SubmitInfo2KHR>
8308   {
8309     enum
8310     {
8311       value = true
8312     };
8313   };
8314 
8315   //=== VK_EXT_debug_utils ===
8316   template <>
8317   struct StructExtends<DebugUtilsMessengerCreateInfoEXT, InstanceCreateInfo>
8318   {
8319     enum
8320     {
8321       value = true
8322     };
8323   };
8324 
8325 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
8326   //=== VK_ANDROID_external_memory_android_hardware_buffer ===
8327   template <>
8328   struct StructExtends<AndroidHardwareBufferUsageANDROID, ImageFormatProperties2>
8329   {
8330     enum
8331     {
8332       value = true
8333     };
8334   };
8335   template <>
8336   struct StructExtends<AndroidHardwareBufferFormatPropertiesANDROID, AndroidHardwareBufferPropertiesANDROID>
8337   {
8338     enum
8339     {
8340       value = true
8341     };
8342   };
8343   template <>
8344   struct StructExtends<ImportAndroidHardwareBufferInfoANDROID, MemoryAllocateInfo>
8345   {
8346     enum
8347     {
8348       value = true
8349     };
8350   };
8351   template <>
8352   struct StructExtends<ExternalFormatANDROID, ImageCreateInfo>
8353   {
8354     enum
8355     {
8356       value = true
8357     };
8358   };
8359   template <>
8360   struct StructExtends<ExternalFormatANDROID, SamplerYcbcrConversionCreateInfo>
8361   {
8362     enum
8363     {
8364       value = true
8365     };
8366   };
8367   template <>
8368   struct StructExtends<AndroidHardwareBufferFormatProperties2ANDROID, AndroidHardwareBufferPropertiesANDROID>
8369   {
8370     enum
8371     {
8372       value = true
8373     };
8374   };
8375 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
8376 
8377   //=== VK_EXT_inline_uniform_block ===
8378   template <>
8379   struct StructExtends<PhysicalDeviceInlineUniformBlockFeaturesEXT, PhysicalDeviceFeatures2>
8380   {
8381     enum
8382     {
8383       value = true
8384     };
8385   };
8386   template <>
8387   struct StructExtends<PhysicalDeviceInlineUniformBlockFeaturesEXT, DeviceCreateInfo>
8388   {
8389     enum
8390     {
8391       value = true
8392     };
8393   };
8394   template <>
8395   struct StructExtends<PhysicalDeviceInlineUniformBlockPropertiesEXT, PhysicalDeviceProperties2>
8396   {
8397     enum
8398     {
8399       value = true
8400     };
8401   };
8402   template <>
8403   struct StructExtends<WriteDescriptorSetInlineUniformBlockEXT, WriteDescriptorSet>
8404   {
8405     enum
8406     {
8407       value = true
8408     };
8409   };
8410   template <>
8411   struct StructExtends<DescriptorPoolInlineUniformBlockCreateInfoEXT, DescriptorPoolCreateInfo>
8412   {
8413     enum
8414     {
8415       value = true
8416     };
8417   };
8418 
8419   //=== VK_EXT_sample_locations ===
8420   template <>
8421   struct StructExtends<SampleLocationsInfoEXT, ImageMemoryBarrier>
8422   {
8423     enum
8424     {
8425       value = true
8426     };
8427   };
8428   template <>
8429   struct StructExtends<SampleLocationsInfoEXT, ImageMemoryBarrier2KHR>
8430   {
8431     enum
8432     {
8433       value = true
8434     };
8435   };
8436   template <>
8437   struct StructExtends<RenderPassSampleLocationsBeginInfoEXT, RenderPassBeginInfo>
8438   {
8439     enum
8440     {
8441       value = true
8442     };
8443   };
8444   template <>
8445   struct StructExtends<PipelineSampleLocationsStateCreateInfoEXT, PipelineMultisampleStateCreateInfo>
8446   {
8447     enum
8448     {
8449       value = true
8450     };
8451   };
8452   template <>
8453   struct StructExtends<PhysicalDeviceSampleLocationsPropertiesEXT, PhysicalDeviceProperties2>
8454   {
8455     enum
8456     {
8457       value = true
8458     };
8459   };
8460 
8461   //=== VK_EXT_blend_operation_advanced ===
8462   template <>
8463   struct StructExtends<PhysicalDeviceBlendOperationAdvancedFeaturesEXT, PhysicalDeviceFeatures2>
8464   {
8465     enum
8466     {
8467       value = true
8468     };
8469   };
8470   template <>
8471   struct StructExtends<PhysicalDeviceBlendOperationAdvancedFeaturesEXT, DeviceCreateInfo>
8472   {
8473     enum
8474     {
8475       value = true
8476     };
8477   };
8478   template <>
8479   struct StructExtends<PhysicalDeviceBlendOperationAdvancedPropertiesEXT, PhysicalDeviceProperties2>
8480   {
8481     enum
8482     {
8483       value = true
8484     };
8485   };
8486   template <>
8487   struct StructExtends<PipelineColorBlendAdvancedStateCreateInfoEXT, PipelineColorBlendStateCreateInfo>
8488   {
8489     enum
8490     {
8491       value = true
8492     };
8493   };
8494 
8495   //=== VK_NV_fragment_coverage_to_color ===
8496   template <>
8497   struct StructExtends<PipelineCoverageToColorStateCreateInfoNV, PipelineMultisampleStateCreateInfo>
8498   {
8499     enum
8500     {
8501       value = true
8502     };
8503   };
8504 
8505   //=== VK_KHR_acceleration_structure ===
8506   template <>
8507   struct StructExtends<WriteDescriptorSetAccelerationStructureKHR, WriteDescriptorSet>
8508   {
8509     enum
8510     {
8511       value = true
8512     };
8513   };
8514   template <>
8515   struct StructExtends<PhysicalDeviceAccelerationStructureFeaturesKHR, PhysicalDeviceFeatures2>
8516   {
8517     enum
8518     {
8519       value = true
8520     };
8521   };
8522   template <>
8523   struct StructExtends<PhysicalDeviceAccelerationStructureFeaturesKHR, DeviceCreateInfo>
8524   {
8525     enum
8526     {
8527       value = true
8528     };
8529   };
8530   template <>
8531   struct StructExtends<PhysicalDeviceAccelerationStructurePropertiesKHR, PhysicalDeviceProperties2>
8532   {
8533     enum
8534     {
8535       value = true
8536     };
8537   };
8538 
8539   //=== VK_NV_framebuffer_mixed_samples ===
8540   template <>
8541   struct StructExtends<PipelineCoverageModulationStateCreateInfoNV, PipelineMultisampleStateCreateInfo>
8542   {
8543     enum
8544     {
8545       value = true
8546     };
8547   };
8548 
8549   //=== VK_NV_shader_sm_builtins ===
8550   template <>
8551   struct StructExtends<PhysicalDeviceShaderSMBuiltinsPropertiesNV, PhysicalDeviceProperties2>
8552   {
8553     enum
8554     {
8555       value = true
8556     };
8557   };
8558   template <>
8559   struct StructExtends<PhysicalDeviceShaderSMBuiltinsFeaturesNV, PhysicalDeviceFeatures2>
8560   {
8561     enum
8562     {
8563       value = true
8564     };
8565   };
8566   template <>
8567   struct StructExtends<PhysicalDeviceShaderSMBuiltinsFeaturesNV, DeviceCreateInfo>
8568   {
8569     enum
8570     {
8571       value = true
8572     };
8573   };
8574 
8575   //=== VK_EXT_image_drm_format_modifier ===
8576   template <>
8577   struct StructExtends<DrmFormatModifierPropertiesListEXT, FormatProperties2>
8578   {
8579     enum
8580     {
8581       value = true
8582     };
8583   };
8584   template <>
8585   struct StructExtends<PhysicalDeviceImageDrmFormatModifierInfoEXT, PhysicalDeviceImageFormatInfo2>
8586   {
8587     enum
8588     {
8589       value = true
8590     };
8591   };
8592   template <>
8593   struct StructExtends<ImageDrmFormatModifierListCreateInfoEXT, ImageCreateInfo>
8594   {
8595     enum
8596     {
8597       value = true
8598     };
8599   };
8600   template <>
8601   struct StructExtends<ImageDrmFormatModifierExplicitCreateInfoEXT, ImageCreateInfo>
8602   {
8603     enum
8604     {
8605       value = true
8606     };
8607   };
8608   template <>
8609   struct StructExtends<DrmFormatModifierPropertiesList2EXT, FormatProperties2>
8610   {
8611     enum
8612     {
8613       value = true
8614     };
8615   };
8616 
8617   //=== VK_EXT_validation_cache ===
8618   template <>
8619   struct StructExtends<ShaderModuleValidationCacheCreateInfoEXT, ShaderModuleCreateInfo>
8620   {
8621     enum
8622     {
8623       value = true
8624     };
8625   };
8626 
8627 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8628   //=== VK_KHR_portability_subset ===
8629   template <>
8630   struct StructExtends<PhysicalDevicePortabilitySubsetFeaturesKHR, PhysicalDeviceFeatures2>
8631   {
8632     enum
8633     {
8634       value = true
8635     };
8636   };
8637   template <>
8638   struct StructExtends<PhysicalDevicePortabilitySubsetFeaturesKHR, DeviceCreateInfo>
8639   {
8640     enum
8641     {
8642       value = true
8643     };
8644   };
8645   template <>
8646   struct StructExtends<PhysicalDevicePortabilitySubsetPropertiesKHR, PhysicalDeviceProperties2>
8647   {
8648     enum
8649     {
8650       value = true
8651     };
8652   };
8653 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8654 
8655   //=== VK_NV_shading_rate_image ===
8656   template <>
8657   struct StructExtends<PipelineViewportShadingRateImageStateCreateInfoNV, PipelineViewportStateCreateInfo>
8658   {
8659     enum
8660     {
8661       value = true
8662     };
8663   };
8664   template <>
8665   struct StructExtends<PhysicalDeviceShadingRateImageFeaturesNV, PhysicalDeviceFeatures2>
8666   {
8667     enum
8668     {
8669       value = true
8670     };
8671   };
8672   template <>
8673   struct StructExtends<PhysicalDeviceShadingRateImageFeaturesNV, DeviceCreateInfo>
8674   {
8675     enum
8676     {
8677       value = true
8678     };
8679   };
8680   template <>
8681   struct StructExtends<PhysicalDeviceShadingRateImagePropertiesNV, PhysicalDeviceProperties2>
8682   {
8683     enum
8684     {
8685       value = true
8686     };
8687   };
8688   template <>
8689   struct StructExtends<PipelineViewportCoarseSampleOrderStateCreateInfoNV, PipelineViewportStateCreateInfo>
8690   {
8691     enum
8692     {
8693       value = true
8694     };
8695   };
8696 
8697   //=== VK_NV_ray_tracing ===
8698   template <>
8699   struct StructExtends<WriteDescriptorSetAccelerationStructureNV, WriteDescriptorSet>
8700   {
8701     enum
8702     {
8703       value = true
8704     };
8705   };
8706   template <>
8707   struct StructExtends<PhysicalDeviceRayTracingPropertiesNV, PhysicalDeviceProperties2>
8708   {
8709     enum
8710     {
8711       value = true
8712     };
8713   };
8714 
8715   //=== VK_NV_representative_fragment_test ===
8716   template <>
8717   struct StructExtends<PhysicalDeviceRepresentativeFragmentTestFeaturesNV, PhysicalDeviceFeatures2>
8718   {
8719     enum
8720     {
8721       value = true
8722     };
8723   };
8724   template <>
8725   struct StructExtends<PhysicalDeviceRepresentativeFragmentTestFeaturesNV, DeviceCreateInfo>
8726   {
8727     enum
8728     {
8729       value = true
8730     };
8731   };
8732   template <>
8733   struct StructExtends<PipelineRepresentativeFragmentTestStateCreateInfoNV, GraphicsPipelineCreateInfo>
8734   {
8735     enum
8736     {
8737       value = true
8738     };
8739   };
8740 
8741   //=== VK_EXT_filter_cubic ===
8742   template <>
8743   struct StructExtends<PhysicalDeviceImageViewImageFormatInfoEXT, PhysicalDeviceImageFormatInfo2>
8744   {
8745     enum
8746     {
8747       value = true
8748     };
8749   };
8750   template <>
8751   struct StructExtends<FilterCubicImageViewImageFormatPropertiesEXT, ImageFormatProperties2>
8752   {
8753     enum
8754     {
8755       value = true
8756     };
8757   };
8758 
8759   //=== VK_EXT_global_priority ===
8760   template <>
8761   struct StructExtends<DeviceQueueGlobalPriorityCreateInfoEXT, DeviceQueueCreateInfo>
8762   {
8763     enum
8764     {
8765       value = true
8766     };
8767   };
8768 
8769   //=== VK_EXT_external_memory_host ===
8770   template <>
8771   struct StructExtends<ImportMemoryHostPointerInfoEXT, MemoryAllocateInfo>
8772   {
8773     enum
8774     {
8775       value = true
8776     };
8777   };
8778   template <>
8779   struct StructExtends<PhysicalDeviceExternalMemoryHostPropertiesEXT, PhysicalDeviceProperties2>
8780   {
8781     enum
8782     {
8783       value = true
8784     };
8785   };
8786 
8787   //=== VK_KHR_shader_clock ===
8788   template <>
8789   struct StructExtends<PhysicalDeviceShaderClockFeaturesKHR, PhysicalDeviceFeatures2>
8790   {
8791     enum
8792     {
8793       value = true
8794     };
8795   };
8796   template <>
8797   struct StructExtends<PhysicalDeviceShaderClockFeaturesKHR, DeviceCreateInfo>
8798   {
8799     enum
8800     {
8801       value = true
8802     };
8803   };
8804 
8805   //=== VK_AMD_pipeline_compiler_control ===
8806   template <>
8807   struct StructExtends<PipelineCompilerControlCreateInfoAMD, GraphicsPipelineCreateInfo>
8808   {
8809     enum
8810     {
8811       value = true
8812     };
8813   };
8814   template <>
8815   struct StructExtends<PipelineCompilerControlCreateInfoAMD, ComputePipelineCreateInfo>
8816   {
8817     enum
8818     {
8819       value = true
8820     };
8821   };
8822 
8823   //=== VK_AMD_shader_core_properties ===
8824   template <>
8825   struct StructExtends<PhysicalDeviceShaderCorePropertiesAMD, PhysicalDeviceProperties2>
8826   {
8827     enum
8828     {
8829       value = true
8830     };
8831   };
8832 
8833 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8834   //=== VK_EXT_video_decode_h265 ===
8835   template <>
8836   struct StructExtends<VideoDecodeH265ProfileEXT, VideoProfileKHR>
8837   {
8838     enum
8839     {
8840       value = true
8841     };
8842   };
8843   template <>
8844   struct StructExtends<VideoDecodeH265CapabilitiesEXT, VideoCapabilitiesKHR>
8845   {
8846     enum
8847     {
8848       value = true
8849     };
8850   };
8851   template <>
8852   struct StructExtends<VideoDecodeH265SessionCreateInfoEXT, VideoSessionCreateInfoKHR>
8853   {
8854     enum
8855     {
8856       value = true
8857     };
8858   };
8859   template <>
8860   struct StructExtends<VideoDecodeH265SessionParametersCreateInfoEXT, VideoSessionParametersCreateInfoKHR>
8861   {
8862     enum
8863     {
8864       value = true
8865     };
8866   };
8867   template <>
8868   struct StructExtends<VideoDecodeH265SessionParametersAddInfoEXT, VideoSessionParametersUpdateInfoKHR>
8869   {
8870     enum
8871     {
8872       value = true
8873     };
8874   };
8875   template <>
8876   struct StructExtends<VideoDecodeH265PictureInfoEXT, VideoDecodeInfoKHR>
8877   {
8878     enum
8879     {
8880       value = true
8881     };
8882   };
8883   template <>
8884   struct StructExtends<VideoDecodeH265DpbSlotInfoEXT, VideoReferenceSlotKHR>
8885   {
8886     enum
8887     {
8888       value = true
8889     };
8890   };
8891 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8892 
8893   //=== VK_AMD_memory_overallocation_behavior ===
8894   template <>
8895   struct StructExtends<DeviceMemoryOverallocationCreateInfoAMD, DeviceCreateInfo>
8896   {
8897     enum
8898     {
8899       value = true
8900     };
8901   };
8902 
8903   //=== VK_EXT_vertex_attribute_divisor ===
8904   template <>
8905   struct StructExtends<PhysicalDeviceVertexAttributeDivisorPropertiesEXT, PhysicalDeviceProperties2>
8906   {
8907     enum
8908     {
8909       value = true
8910     };
8911   };
8912   template <>
8913   struct StructExtends<PipelineVertexInputDivisorStateCreateInfoEXT, PipelineVertexInputStateCreateInfo>
8914   {
8915     enum
8916     {
8917       value = true
8918     };
8919   };
8920   template <>
8921   struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesEXT, PhysicalDeviceFeatures2>
8922   {
8923     enum
8924     {
8925       value = true
8926     };
8927   };
8928   template <>
8929   struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesEXT, DeviceCreateInfo>
8930   {
8931     enum
8932     {
8933       value = true
8934     };
8935   };
8936 
8937 #if defined( VK_USE_PLATFORM_GGP )
8938   //=== VK_GGP_frame_token ===
8939   template <>
8940   struct StructExtends<PresentFrameTokenGGP, PresentInfoKHR>
8941   {
8942     enum
8943     {
8944       value = true
8945     };
8946   };
8947 #endif /*VK_USE_PLATFORM_GGP*/
8948 
8949   //=== VK_EXT_pipeline_creation_feedback ===
8950   template <>
8951   struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, GraphicsPipelineCreateInfo>
8952   {
8953     enum
8954     {
8955       value = true
8956     };
8957   };
8958   template <>
8959   struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, ComputePipelineCreateInfo>
8960   {
8961     enum
8962     {
8963       value = true
8964     };
8965   };
8966   template <>
8967   struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, RayTracingPipelineCreateInfoNV>
8968   {
8969     enum
8970     {
8971       value = true
8972     };
8973   };
8974   template <>
8975   struct StructExtends<PipelineCreationFeedbackCreateInfoEXT, RayTracingPipelineCreateInfoKHR>
8976   {
8977     enum
8978     {
8979       value = true
8980     };
8981   };
8982 
8983   //=== VK_NV_compute_shader_derivatives ===
8984   template <>
8985   struct StructExtends<PhysicalDeviceComputeShaderDerivativesFeaturesNV, PhysicalDeviceFeatures2>
8986   {
8987     enum
8988     {
8989       value = true
8990     };
8991   };
8992   template <>
8993   struct StructExtends<PhysicalDeviceComputeShaderDerivativesFeaturesNV, DeviceCreateInfo>
8994   {
8995     enum
8996     {
8997       value = true
8998     };
8999   };
9000 
9001   //=== VK_NV_mesh_shader ===
9002   template <>
9003   struct StructExtends<PhysicalDeviceMeshShaderFeaturesNV, PhysicalDeviceFeatures2>
9004   {
9005     enum
9006     {
9007       value = true
9008     };
9009   };
9010   template <>
9011   struct StructExtends<PhysicalDeviceMeshShaderFeaturesNV, DeviceCreateInfo>
9012   {
9013     enum
9014     {
9015       value = true
9016     };
9017   };
9018   template <>
9019   struct StructExtends<PhysicalDeviceMeshShaderPropertiesNV, PhysicalDeviceProperties2>
9020   {
9021     enum
9022     {
9023       value = true
9024     };
9025   };
9026 
9027   //=== VK_NV_fragment_shader_barycentric ===
9028   template <>
9029   struct StructExtends<PhysicalDeviceFragmentShaderBarycentricFeaturesNV, PhysicalDeviceFeatures2>
9030   {
9031     enum
9032     {
9033       value = true
9034     };
9035   };
9036   template <>
9037   struct StructExtends<PhysicalDeviceFragmentShaderBarycentricFeaturesNV, DeviceCreateInfo>
9038   {
9039     enum
9040     {
9041       value = true
9042     };
9043   };
9044 
9045   //=== VK_NV_shader_image_footprint ===
9046   template <>
9047   struct StructExtends<PhysicalDeviceShaderImageFootprintFeaturesNV, PhysicalDeviceFeatures2>
9048   {
9049     enum
9050     {
9051       value = true
9052     };
9053   };
9054   template <>
9055   struct StructExtends<PhysicalDeviceShaderImageFootprintFeaturesNV, DeviceCreateInfo>
9056   {
9057     enum
9058     {
9059       value = true
9060     };
9061   };
9062 
9063   //=== VK_NV_scissor_exclusive ===
9064   template <>
9065   struct StructExtends<PipelineViewportExclusiveScissorStateCreateInfoNV, PipelineViewportStateCreateInfo>
9066   {
9067     enum
9068     {
9069       value = true
9070     };
9071   };
9072   template <>
9073   struct StructExtends<PhysicalDeviceExclusiveScissorFeaturesNV, PhysicalDeviceFeatures2>
9074   {
9075     enum
9076     {
9077       value = true
9078     };
9079   };
9080   template <>
9081   struct StructExtends<PhysicalDeviceExclusiveScissorFeaturesNV, DeviceCreateInfo>
9082   {
9083     enum
9084     {
9085       value = true
9086     };
9087   };
9088 
9089   //=== VK_NV_device_diagnostic_checkpoints ===
9090   template <>
9091   struct StructExtends<QueueFamilyCheckpointPropertiesNV, QueueFamilyProperties2>
9092   {
9093     enum
9094     {
9095       value = true
9096     };
9097   };
9098 
9099   //=== VK_INTEL_shader_integer_functions2 ===
9100   template <>
9101   struct StructExtends<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, PhysicalDeviceFeatures2>
9102   {
9103     enum
9104     {
9105       value = true
9106     };
9107   };
9108   template <>
9109   struct StructExtends<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, DeviceCreateInfo>
9110   {
9111     enum
9112     {
9113       value = true
9114     };
9115   };
9116 
9117   //=== VK_INTEL_performance_query ===
9118   template <>
9119   struct StructExtends<QueryPoolPerformanceQueryCreateInfoINTEL, QueryPoolCreateInfo>
9120   {
9121     enum
9122     {
9123       value = true
9124     };
9125   };
9126 
9127   //=== VK_EXT_pci_bus_info ===
9128   template <>
9129   struct StructExtends<PhysicalDevicePCIBusInfoPropertiesEXT, PhysicalDeviceProperties2>
9130   {
9131     enum
9132     {
9133       value = true
9134     };
9135   };
9136 
9137   //=== VK_AMD_display_native_hdr ===
9138   template <>
9139   struct StructExtends<DisplayNativeHdrSurfaceCapabilitiesAMD, SurfaceCapabilities2KHR>
9140   {
9141     enum
9142     {
9143       value = true
9144     };
9145   };
9146   template <>
9147   struct StructExtends<SwapchainDisplayNativeHdrCreateInfoAMD, SwapchainCreateInfoKHR>
9148   {
9149     enum
9150     {
9151       value = true
9152     };
9153   };
9154 
9155   //=== VK_KHR_shader_terminate_invocation ===
9156   template <>
9157   struct StructExtends<PhysicalDeviceShaderTerminateInvocationFeaturesKHR, PhysicalDeviceFeatures2>
9158   {
9159     enum
9160     {
9161       value = true
9162     };
9163   };
9164   template <>
9165   struct StructExtends<PhysicalDeviceShaderTerminateInvocationFeaturesKHR, DeviceCreateInfo>
9166   {
9167     enum
9168     {
9169       value = true
9170     };
9171   };
9172 
9173   //=== VK_EXT_fragment_density_map ===
9174   template <>
9175   struct StructExtends<PhysicalDeviceFragmentDensityMapFeaturesEXT, PhysicalDeviceFeatures2>
9176   {
9177     enum
9178     {
9179       value = true
9180     };
9181   };
9182   template <>
9183   struct StructExtends<PhysicalDeviceFragmentDensityMapFeaturesEXT, DeviceCreateInfo>
9184   {
9185     enum
9186     {
9187       value = true
9188     };
9189   };
9190   template <>
9191   struct StructExtends<PhysicalDeviceFragmentDensityMapPropertiesEXT, PhysicalDeviceProperties2>
9192   {
9193     enum
9194     {
9195       value = true
9196     };
9197   };
9198   template <>
9199   struct StructExtends<RenderPassFragmentDensityMapCreateInfoEXT, RenderPassCreateInfo>
9200   {
9201     enum
9202     {
9203       value = true
9204     };
9205   };
9206   template <>
9207   struct StructExtends<RenderPassFragmentDensityMapCreateInfoEXT, RenderPassCreateInfo2>
9208   {
9209     enum
9210     {
9211       value = true
9212     };
9213   };
9214 
9215   //=== VK_EXT_subgroup_size_control ===
9216   template <>
9217   struct StructExtends<PhysicalDeviceSubgroupSizeControlFeaturesEXT, PhysicalDeviceFeatures2>
9218   {
9219     enum
9220     {
9221       value = true
9222     };
9223   };
9224   template <>
9225   struct StructExtends<PhysicalDeviceSubgroupSizeControlFeaturesEXT, DeviceCreateInfo>
9226   {
9227     enum
9228     {
9229       value = true
9230     };
9231   };
9232   template <>
9233   struct StructExtends<PhysicalDeviceSubgroupSizeControlPropertiesEXT, PhysicalDeviceProperties2>
9234   {
9235     enum
9236     {
9237       value = true
9238     };
9239   };
9240   template <>
9241   struct StructExtends<PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT, PipelineShaderStageCreateInfo>
9242   {
9243     enum
9244     {
9245       value = true
9246     };
9247   };
9248 
9249   //=== VK_KHR_fragment_shading_rate ===
9250   template <>
9251   struct StructExtends<FragmentShadingRateAttachmentInfoKHR, SubpassDescription2>
9252   {
9253     enum
9254     {
9255       value = true
9256     };
9257   };
9258   template <>
9259   struct StructExtends<PipelineFragmentShadingRateStateCreateInfoKHR, GraphicsPipelineCreateInfo>
9260   {
9261     enum
9262     {
9263       value = true
9264     };
9265   };
9266   template <>
9267   struct StructExtends<PhysicalDeviceFragmentShadingRateFeaturesKHR, PhysicalDeviceFeatures2>
9268   {
9269     enum
9270     {
9271       value = true
9272     };
9273   };
9274   template <>
9275   struct StructExtends<PhysicalDeviceFragmentShadingRateFeaturesKHR, DeviceCreateInfo>
9276   {
9277     enum
9278     {
9279       value = true
9280     };
9281   };
9282   template <>
9283   struct StructExtends<PhysicalDeviceFragmentShadingRatePropertiesKHR, PhysicalDeviceProperties2>
9284   {
9285     enum
9286     {
9287       value = true
9288     };
9289   };
9290 
9291   //=== VK_AMD_shader_core_properties2 ===
9292   template <>
9293   struct StructExtends<PhysicalDeviceShaderCoreProperties2AMD, PhysicalDeviceProperties2>
9294   {
9295     enum
9296     {
9297       value = true
9298     };
9299   };
9300 
9301   //=== VK_AMD_device_coherent_memory ===
9302   template <>
9303   struct StructExtends<PhysicalDeviceCoherentMemoryFeaturesAMD, PhysicalDeviceFeatures2>
9304   {
9305     enum
9306     {
9307       value = true
9308     };
9309   };
9310   template <>
9311   struct StructExtends<PhysicalDeviceCoherentMemoryFeaturesAMD, DeviceCreateInfo>
9312   {
9313     enum
9314     {
9315       value = true
9316     };
9317   };
9318 
9319   //=== VK_EXT_shader_image_atomic_int64 ===
9320   template <>
9321   struct StructExtends<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT, PhysicalDeviceFeatures2>
9322   {
9323     enum
9324     {
9325       value = true
9326     };
9327   };
9328   template <>
9329   struct StructExtends<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT, DeviceCreateInfo>
9330   {
9331     enum
9332     {
9333       value = true
9334     };
9335   };
9336 
9337   //=== VK_EXT_memory_budget ===
9338   template <>
9339   struct StructExtends<PhysicalDeviceMemoryBudgetPropertiesEXT, PhysicalDeviceMemoryProperties2>
9340   {
9341     enum
9342     {
9343       value = true
9344     };
9345   };
9346 
9347   //=== VK_EXT_memory_priority ===
9348   template <>
9349   struct StructExtends<PhysicalDeviceMemoryPriorityFeaturesEXT, PhysicalDeviceFeatures2>
9350   {
9351     enum
9352     {
9353       value = true
9354     };
9355   };
9356   template <>
9357   struct StructExtends<PhysicalDeviceMemoryPriorityFeaturesEXT, DeviceCreateInfo>
9358   {
9359     enum
9360     {
9361       value = true
9362     };
9363   };
9364   template <>
9365   struct StructExtends<MemoryPriorityAllocateInfoEXT, MemoryAllocateInfo>
9366   {
9367     enum
9368     {
9369       value = true
9370     };
9371   };
9372 
9373   //=== VK_KHR_surface_protected_capabilities ===
9374   template <>
9375   struct StructExtends<SurfaceProtectedCapabilitiesKHR, SurfaceCapabilities2KHR>
9376   {
9377     enum
9378     {
9379       value = true
9380     };
9381   };
9382 
9383   //=== VK_NV_dedicated_allocation_image_aliasing ===
9384   template <>
9385   struct StructExtends<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, PhysicalDeviceFeatures2>
9386   {
9387     enum
9388     {
9389       value = true
9390     };
9391   };
9392   template <>
9393   struct StructExtends<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, DeviceCreateInfo>
9394   {
9395     enum
9396     {
9397       value = true
9398     };
9399   };
9400 
9401   //=== VK_EXT_buffer_device_address ===
9402   template <>
9403   struct StructExtends<PhysicalDeviceBufferDeviceAddressFeaturesEXT, PhysicalDeviceFeatures2>
9404   {
9405     enum
9406     {
9407       value = true
9408     };
9409   };
9410   template <>
9411   struct StructExtends<PhysicalDeviceBufferDeviceAddressFeaturesEXT, DeviceCreateInfo>
9412   {
9413     enum
9414     {
9415       value = true
9416     };
9417   };
9418   template <>
9419   struct StructExtends<BufferDeviceAddressCreateInfoEXT, BufferCreateInfo>
9420   {
9421     enum
9422     {
9423       value = true
9424     };
9425   };
9426 
9427   //=== VK_EXT_validation_features ===
9428   template <>
9429   struct StructExtends<ValidationFeaturesEXT, InstanceCreateInfo>
9430   {
9431     enum
9432     {
9433       value = true
9434     };
9435   };
9436 
9437   //=== VK_KHR_present_wait ===
9438   template <>
9439   struct StructExtends<PhysicalDevicePresentWaitFeaturesKHR, PhysicalDeviceFeatures2>
9440   {
9441     enum
9442     {
9443       value = true
9444     };
9445   };
9446   template <>
9447   struct StructExtends<PhysicalDevicePresentWaitFeaturesKHR, DeviceCreateInfo>
9448   {
9449     enum
9450     {
9451       value = true
9452     };
9453   };
9454 
9455   //=== VK_NV_cooperative_matrix ===
9456   template <>
9457   struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesNV, PhysicalDeviceFeatures2>
9458   {
9459     enum
9460     {
9461       value = true
9462     };
9463   };
9464   template <>
9465   struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesNV, DeviceCreateInfo>
9466   {
9467     enum
9468     {
9469       value = true
9470     };
9471   };
9472   template <>
9473   struct StructExtends<PhysicalDeviceCooperativeMatrixPropertiesNV, PhysicalDeviceProperties2>
9474   {
9475     enum
9476     {
9477       value = true
9478     };
9479   };
9480 
9481   //=== VK_NV_coverage_reduction_mode ===
9482   template <>
9483   struct StructExtends<PhysicalDeviceCoverageReductionModeFeaturesNV, PhysicalDeviceFeatures2>
9484   {
9485     enum
9486     {
9487       value = true
9488     };
9489   };
9490   template <>
9491   struct StructExtends<PhysicalDeviceCoverageReductionModeFeaturesNV, DeviceCreateInfo>
9492   {
9493     enum
9494     {
9495       value = true
9496     };
9497   };
9498   template <>
9499   struct StructExtends<PipelineCoverageReductionStateCreateInfoNV, PipelineMultisampleStateCreateInfo>
9500   {
9501     enum
9502     {
9503       value = true
9504     };
9505   };
9506 
9507   //=== VK_EXT_fragment_shader_interlock ===
9508   template <>
9509   struct StructExtends<PhysicalDeviceFragmentShaderInterlockFeaturesEXT, PhysicalDeviceFeatures2>
9510   {
9511     enum
9512     {
9513       value = true
9514     };
9515   };
9516   template <>
9517   struct StructExtends<PhysicalDeviceFragmentShaderInterlockFeaturesEXT, DeviceCreateInfo>
9518   {
9519     enum
9520     {
9521       value = true
9522     };
9523   };
9524 
9525   //=== VK_EXT_ycbcr_image_arrays ===
9526   template <>
9527   struct StructExtends<PhysicalDeviceYcbcrImageArraysFeaturesEXT, PhysicalDeviceFeatures2>
9528   {
9529     enum
9530     {
9531       value = true
9532     };
9533   };
9534   template <>
9535   struct StructExtends<PhysicalDeviceYcbcrImageArraysFeaturesEXT, DeviceCreateInfo>
9536   {
9537     enum
9538     {
9539       value = true
9540     };
9541   };
9542 
9543   //=== VK_EXT_provoking_vertex ===
9544   template <>
9545   struct StructExtends<PhysicalDeviceProvokingVertexFeaturesEXT, PhysicalDeviceFeatures2>
9546   {
9547     enum
9548     {
9549       value = true
9550     };
9551   };
9552   template <>
9553   struct StructExtends<PhysicalDeviceProvokingVertexFeaturesEXT, DeviceCreateInfo>
9554   {
9555     enum
9556     {
9557       value = true
9558     };
9559   };
9560   template <>
9561   struct StructExtends<PhysicalDeviceProvokingVertexPropertiesEXT, PhysicalDeviceProperties2>
9562   {
9563     enum
9564     {
9565       value = true
9566     };
9567   };
9568   template <>
9569   struct StructExtends<PipelineRasterizationProvokingVertexStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
9570   {
9571     enum
9572     {
9573       value = true
9574     };
9575   };
9576 
9577 #if defined( VK_USE_PLATFORM_WIN32_KHR )
9578   //=== VK_EXT_full_screen_exclusive ===
9579   template <>
9580   struct StructExtends<SurfaceFullScreenExclusiveInfoEXT, PhysicalDeviceSurfaceInfo2KHR>
9581   {
9582     enum
9583     {
9584       value = true
9585     };
9586   };
9587   template <>
9588   struct StructExtends<SurfaceFullScreenExclusiveInfoEXT, SwapchainCreateInfoKHR>
9589   {
9590     enum
9591     {
9592       value = true
9593     };
9594   };
9595   template <>
9596   struct StructExtends<SurfaceCapabilitiesFullScreenExclusiveEXT, SurfaceCapabilities2KHR>
9597   {
9598     enum
9599     {
9600       value = true
9601     };
9602   };
9603   template <>
9604   struct StructExtends<SurfaceFullScreenExclusiveWin32InfoEXT, PhysicalDeviceSurfaceInfo2KHR>
9605   {
9606     enum
9607     {
9608       value = true
9609     };
9610   };
9611   template <>
9612   struct StructExtends<SurfaceFullScreenExclusiveWin32InfoEXT, SwapchainCreateInfoKHR>
9613   {
9614     enum
9615     {
9616       value = true
9617     };
9618   };
9619 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
9620 
9621   //=== VK_EXT_line_rasterization ===
9622   template <>
9623   struct StructExtends<PhysicalDeviceLineRasterizationFeaturesEXT, PhysicalDeviceFeatures2>
9624   {
9625     enum
9626     {
9627       value = true
9628     };
9629   };
9630   template <>
9631   struct StructExtends<PhysicalDeviceLineRasterizationFeaturesEXT, DeviceCreateInfo>
9632   {
9633     enum
9634     {
9635       value = true
9636     };
9637   };
9638   template <>
9639   struct StructExtends<PhysicalDeviceLineRasterizationPropertiesEXT, PhysicalDeviceProperties2>
9640   {
9641     enum
9642     {
9643       value = true
9644     };
9645   };
9646   template <>
9647   struct StructExtends<PipelineRasterizationLineStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
9648   {
9649     enum
9650     {
9651       value = true
9652     };
9653   };
9654 
9655   //=== VK_EXT_shader_atomic_float ===
9656   template <>
9657   struct StructExtends<PhysicalDeviceShaderAtomicFloatFeaturesEXT, PhysicalDeviceFeatures2>
9658   {
9659     enum
9660     {
9661       value = true
9662     };
9663   };
9664   template <>
9665   struct StructExtends<PhysicalDeviceShaderAtomicFloatFeaturesEXT, DeviceCreateInfo>
9666   {
9667     enum
9668     {
9669       value = true
9670     };
9671   };
9672 
9673   //=== VK_EXT_index_type_uint8 ===
9674   template <>
9675   struct StructExtends<PhysicalDeviceIndexTypeUint8FeaturesEXT, PhysicalDeviceFeatures2>
9676   {
9677     enum
9678     {
9679       value = true
9680     };
9681   };
9682   template <>
9683   struct StructExtends<PhysicalDeviceIndexTypeUint8FeaturesEXT, DeviceCreateInfo>
9684   {
9685     enum
9686     {
9687       value = true
9688     };
9689   };
9690 
9691   //=== VK_EXT_extended_dynamic_state ===
9692   template <>
9693   struct StructExtends<PhysicalDeviceExtendedDynamicStateFeaturesEXT, PhysicalDeviceFeatures2>
9694   {
9695     enum
9696     {
9697       value = true
9698     };
9699   };
9700   template <>
9701   struct StructExtends<PhysicalDeviceExtendedDynamicStateFeaturesEXT, DeviceCreateInfo>
9702   {
9703     enum
9704     {
9705       value = true
9706     };
9707   };
9708 
9709   //=== VK_KHR_pipeline_executable_properties ===
9710   template <>
9711   struct StructExtends<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, PhysicalDeviceFeatures2>
9712   {
9713     enum
9714     {
9715       value = true
9716     };
9717   };
9718   template <>
9719   struct StructExtends<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, DeviceCreateInfo>
9720   {
9721     enum
9722     {
9723       value = true
9724     };
9725   };
9726 
9727   //=== VK_EXT_shader_atomic_float2 ===
9728   template <>
9729   struct StructExtends<PhysicalDeviceShaderAtomicFloat2FeaturesEXT, PhysicalDeviceFeatures2>
9730   {
9731     enum
9732     {
9733       value = true
9734     };
9735   };
9736   template <>
9737   struct StructExtends<PhysicalDeviceShaderAtomicFloat2FeaturesEXT, DeviceCreateInfo>
9738   {
9739     enum
9740     {
9741       value = true
9742     };
9743   };
9744 
9745   //=== VK_EXT_shader_demote_to_helper_invocation ===
9746   template <>
9747   struct StructExtends<PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT, PhysicalDeviceFeatures2>
9748   {
9749     enum
9750     {
9751       value = true
9752     };
9753   };
9754   template <>
9755   struct StructExtends<PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT, DeviceCreateInfo>
9756   {
9757     enum
9758     {
9759       value = true
9760     };
9761   };
9762 
9763   //=== VK_NV_device_generated_commands ===
9764   template <>
9765   struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsPropertiesNV, PhysicalDeviceProperties2>
9766   {
9767     enum
9768     {
9769       value = true
9770     };
9771   };
9772   template <>
9773   struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV, PhysicalDeviceFeatures2>
9774   {
9775     enum
9776     {
9777       value = true
9778     };
9779   };
9780   template <>
9781   struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV, DeviceCreateInfo>
9782   {
9783     enum
9784     {
9785       value = true
9786     };
9787   };
9788   template <>
9789   struct StructExtends<GraphicsPipelineShaderGroupsCreateInfoNV, GraphicsPipelineCreateInfo>
9790   {
9791     enum
9792     {
9793       value = true
9794     };
9795   };
9796 
9797   //=== VK_NV_inherited_viewport_scissor ===
9798   template <>
9799   struct StructExtends<PhysicalDeviceInheritedViewportScissorFeaturesNV, PhysicalDeviceFeatures2>
9800   {
9801     enum
9802     {
9803       value = true
9804     };
9805   };
9806   template <>
9807   struct StructExtends<PhysicalDeviceInheritedViewportScissorFeaturesNV, DeviceCreateInfo>
9808   {
9809     enum
9810     {
9811       value = true
9812     };
9813   };
9814   template <>
9815   struct StructExtends<CommandBufferInheritanceViewportScissorInfoNV, CommandBufferInheritanceInfo>
9816   {
9817     enum
9818     {
9819       value = true
9820     };
9821   };
9822 
9823   //=== VK_KHR_shader_integer_dot_product ===
9824   template <>
9825   struct StructExtends<PhysicalDeviceShaderIntegerDotProductFeaturesKHR, PhysicalDeviceFeatures2>
9826   {
9827     enum
9828     {
9829       value = true
9830     };
9831   };
9832   template <>
9833   struct StructExtends<PhysicalDeviceShaderIntegerDotProductFeaturesKHR, DeviceCreateInfo>
9834   {
9835     enum
9836     {
9837       value = true
9838     };
9839   };
9840   template <>
9841   struct StructExtends<PhysicalDeviceShaderIntegerDotProductPropertiesKHR, PhysicalDeviceProperties2>
9842   {
9843     enum
9844     {
9845       value = true
9846     };
9847   };
9848 
9849   //=== VK_EXT_texel_buffer_alignment ===
9850   template <>
9851   struct StructExtends<PhysicalDeviceTexelBufferAlignmentFeaturesEXT, PhysicalDeviceFeatures2>
9852   {
9853     enum
9854     {
9855       value = true
9856     };
9857   };
9858   template <>
9859   struct StructExtends<PhysicalDeviceTexelBufferAlignmentFeaturesEXT, DeviceCreateInfo>
9860   {
9861     enum
9862     {
9863       value = true
9864     };
9865   };
9866   template <>
9867   struct StructExtends<PhysicalDeviceTexelBufferAlignmentPropertiesEXT, PhysicalDeviceProperties2>
9868   {
9869     enum
9870     {
9871       value = true
9872     };
9873   };
9874 
9875   //=== VK_QCOM_render_pass_transform ===
9876   template <>
9877   struct StructExtends<RenderPassTransformBeginInfoQCOM, RenderPassBeginInfo>
9878   {
9879     enum
9880     {
9881       value = true
9882     };
9883   };
9884   template <>
9885   struct StructExtends<CommandBufferInheritanceRenderPassTransformInfoQCOM, CommandBufferInheritanceInfo>
9886   {
9887     enum
9888     {
9889       value = true
9890     };
9891   };
9892 
9893   //=== VK_EXT_device_memory_report ===
9894   template <>
9895   struct StructExtends<PhysicalDeviceDeviceMemoryReportFeaturesEXT, PhysicalDeviceFeatures2>
9896   {
9897     enum
9898     {
9899       value = true
9900     };
9901   };
9902   template <>
9903   struct StructExtends<PhysicalDeviceDeviceMemoryReportFeaturesEXT, DeviceCreateInfo>
9904   {
9905     enum
9906     {
9907       value = true
9908     };
9909   };
9910   template <>
9911   struct StructExtends<DeviceDeviceMemoryReportCreateInfoEXT, DeviceCreateInfo>
9912   {
9913     enum
9914     {
9915       value = true
9916     };
9917   };
9918 
9919   //=== VK_EXT_robustness2 ===
9920   template <>
9921   struct StructExtends<PhysicalDeviceRobustness2FeaturesEXT, PhysicalDeviceFeatures2>
9922   {
9923     enum
9924     {
9925       value = true
9926     };
9927   };
9928   template <>
9929   struct StructExtends<PhysicalDeviceRobustness2FeaturesEXT, DeviceCreateInfo>
9930   {
9931     enum
9932     {
9933       value = true
9934     };
9935   };
9936   template <>
9937   struct StructExtends<PhysicalDeviceRobustness2PropertiesEXT, PhysicalDeviceProperties2>
9938   {
9939     enum
9940     {
9941       value = true
9942     };
9943   };
9944 
9945   //=== VK_EXT_custom_border_color ===
9946   template <>
9947   struct StructExtends<SamplerCustomBorderColorCreateInfoEXT, SamplerCreateInfo>
9948   {
9949     enum
9950     {
9951       value = true
9952     };
9953   };
9954   template <>
9955   struct StructExtends<PhysicalDeviceCustomBorderColorPropertiesEXT, PhysicalDeviceProperties2>
9956   {
9957     enum
9958     {
9959       value = true
9960     };
9961   };
9962   template <>
9963   struct StructExtends<PhysicalDeviceCustomBorderColorFeaturesEXT, PhysicalDeviceFeatures2>
9964   {
9965     enum
9966     {
9967       value = true
9968     };
9969   };
9970   template <>
9971   struct StructExtends<PhysicalDeviceCustomBorderColorFeaturesEXT, DeviceCreateInfo>
9972   {
9973     enum
9974     {
9975       value = true
9976     };
9977   };
9978 
9979   //=== VK_KHR_present_id ===
9980   template <>
9981   struct StructExtends<PresentIdKHR, PresentInfoKHR>
9982   {
9983     enum
9984     {
9985       value = true
9986     };
9987   };
9988   template <>
9989   struct StructExtends<PhysicalDevicePresentIdFeaturesKHR, PhysicalDeviceFeatures2>
9990   {
9991     enum
9992     {
9993       value = true
9994     };
9995   };
9996   template <>
9997   struct StructExtends<PhysicalDevicePresentIdFeaturesKHR, DeviceCreateInfo>
9998   {
9999     enum
10000     {
10001       value = true
10002     };
10003   };
10004 
10005   //=== VK_EXT_private_data ===
10006   template <>
10007   struct StructExtends<PhysicalDevicePrivateDataFeaturesEXT, PhysicalDeviceFeatures2>
10008   {
10009     enum
10010     {
10011       value = true
10012     };
10013   };
10014   template <>
10015   struct StructExtends<PhysicalDevicePrivateDataFeaturesEXT, DeviceCreateInfo>
10016   {
10017     enum
10018     {
10019       value = true
10020     };
10021   };
10022   template <>
10023   struct StructExtends<DevicePrivateDataCreateInfoEXT, DeviceCreateInfo>
10024   {
10025     enum
10026     {
10027       value = true
10028     };
10029   };
10030 
10031   //=== VK_EXT_pipeline_creation_cache_control ===
10032   template <>
10033   struct StructExtends<PhysicalDevicePipelineCreationCacheControlFeaturesEXT, PhysicalDeviceFeatures2>
10034   {
10035     enum
10036     {
10037       value = true
10038     };
10039   };
10040   template <>
10041   struct StructExtends<PhysicalDevicePipelineCreationCacheControlFeaturesEXT, DeviceCreateInfo>
10042   {
10043     enum
10044     {
10045       value = true
10046     };
10047   };
10048 
10049 #if defined( VK_ENABLE_BETA_EXTENSIONS )
10050   //=== VK_KHR_video_encode_queue ===
10051   template <>
10052   struct StructExtends<VideoEncodeRateControlInfoKHR, VideoCodingControlInfoKHR>
10053   {
10054     enum
10055     {
10056       value = true
10057     };
10058   };
10059 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
10060 
10061   //=== VK_NV_device_diagnostics_config ===
10062   template <>
10063   struct StructExtends<PhysicalDeviceDiagnosticsConfigFeaturesNV, PhysicalDeviceFeatures2>
10064   {
10065     enum
10066     {
10067       value = true
10068     };
10069   };
10070   template <>
10071   struct StructExtends<PhysicalDeviceDiagnosticsConfigFeaturesNV, DeviceCreateInfo>
10072   {
10073     enum
10074     {
10075       value = true
10076     };
10077   };
10078   template <>
10079   struct StructExtends<DeviceDiagnosticsConfigCreateInfoNV, DeviceCreateInfo>
10080   {
10081     enum
10082     {
10083       value = true
10084     };
10085   };
10086 
10087   //=== VK_KHR_synchronization2 ===
10088   template <>
10089   struct StructExtends<MemoryBarrier2KHR, SubpassDependency2>
10090   {
10091     enum
10092     {
10093       value = true
10094     };
10095   };
10096   template <>
10097   struct StructExtends<PhysicalDeviceSynchronization2FeaturesKHR, PhysicalDeviceFeatures2>
10098   {
10099     enum
10100     {
10101       value = true
10102     };
10103   };
10104   template <>
10105   struct StructExtends<PhysicalDeviceSynchronization2FeaturesKHR, DeviceCreateInfo>
10106   {
10107     enum
10108     {
10109       value = true
10110     };
10111   };
10112   template <>
10113   struct StructExtends<QueueFamilyCheckpointProperties2NV, QueueFamilyProperties2>
10114   {
10115     enum
10116     {
10117       value = true
10118     };
10119   };
10120 
10121   //=== VK_KHR_shader_subgroup_uniform_control_flow ===
10122   template <>
10123   struct StructExtends<PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, PhysicalDeviceFeatures2>
10124   {
10125     enum
10126     {
10127       value = true
10128     };
10129   };
10130   template <>
10131   struct StructExtends<PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, DeviceCreateInfo>
10132   {
10133     enum
10134     {
10135       value = true
10136     };
10137   };
10138 
10139   //=== VK_KHR_zero_initialize_workgroup_memory ===
10140   template <>
10141   struct StructExtends<PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR, PhysicalDeviceFeatures2>
10142   {
10143     enum
10144     {
10145       value = true
10146     };
10147   };
10148   template <>
10149   struct StructExtends<PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR, DeviceCreateInfo>
10150   {
10151     enum
10152     {
10153       value = true
10154     };
10155   };
10156 
10157   //=== VK_NV_fragment_shading_rate_enums ===
10158   template <>
10159   struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsFeaturesNV, PhysicalDeviceFeatures2>
10160   {
10161     enum
10162     {
10163       value = true
10164     };
10165   };
10166   template <>
10167   struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsFeaturesNV, DeviceCreateInfo>
10168   {
10169     enum
10170     {
10171       value = true
10172     };
10173   };
10174   template <>
10175   struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsPropertiesNV, PhysicalDeviceProperties2>
10176   {
10177     enum
10178     {
10179       value = true
10180     };
10181   };
10182   template <>
10183   struct StructExtends<PipelineFragmentShadingRateEnumStateCreateInfoNV, GraphicsPipelineCreateInfo>
10184   {
10185     enum
10186     {
10187       value = true
10188     };
10189   };
10190 
10191   //=== VK_NV_ray_tracing_motion_blur ===
10192   template <>
10193   struct StructExtends<AccelerationStructureGeometryMotionTrianglesDataNV,
10194                        AccelerationStructureGeometryTrianglesDataKHR>
10195   {
10196     enum
10197     {
10198       value = true
10199     };
10200   };
10201   template <>
10202   struct StructExtends<AccelerationStructureMotionInfoNV, AccelerationStructureCreateInfoKHR>
10203   {
10204     enum
10205     {
10206       value = true
10207     };
10208   };
10209   template <>
10210   struct StructExtends<PhysicalDeviceRayTracingMotionBlurFeaturesNV, PhysicalDeviceFeatures2>
10211   {
10212     enum
10213     {
10214       value = true
10215     };
10216   };
10217   template <>
10218   struct StructExtends<PhysicalDeviceRayTracingMotionBlurFeaturesNV, DeviceCreateInfo>
10219   {
10220     enum
10221     {
10222       value = true
10223     };
10224   };
10225 
10226   //=== VK_EXT_ycbcr_2plane_444_formats ===
10227   template <>
10228   struct StructExtends<PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, PhysicalDeviceFeatures2>
10229   {
10230     enum
10231     {
10232       value = true
10233     };
10234   };
10235   template <>
10236   struct StructExtends<PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, DeviceCreateInfo>
10237   {
10238     enum
10239     {
10240       value = true
10241     };
10242   };
10243 
10244   //=== VK_EXT_fragment_density_map2 ===
10245   template <>
10246   struct StructExtends<PhysicalDeviceFragmentDensityMap2FeaturesEXT, PhysicalDeviceFeatures2>
10247   {
10248     enum
10249     {
10250       value = true
10251     };
10252   };
10253   template <>
10254   struct StructExtends<PhysicalDeviceFragmentDensityMap2FeaturesEXT, DeviceCreateInfo>
10255   {
10256     enum
10257     {
10258       value = true
10259     };
10260   };
10261   template <>
10262   struct StructExtends<PhysicalDeviceFragmentDensityMap2PropertiesEXT, PhysicalDeviceProperties2>
10263   {
10264     enum
10265     {
10266       value = true
10267     };
10268   };
10269 
10270   //=== VK_QCOM_rotated_copy_commands ===
10271   template <>
10272   struct StructExtends<CopyCommandTransformInfoQCOM, BufferImageCopy2KHR>
10273   {
10274     enum
10275     {
10276       value = true
10277     };
10278   };
10279   template <>
10280   struct StructExtends<CopyCommandTransformInfoQCOM, ImageBlit2KHR>
10281   {
10282     enum
10283     {
10284       value = true
10285     };
10286   };
10287 
10288   //=== VK_EXT_image_robustness ===
10289   template <>
10290   struct StructExtends<PhysicalDeviceImageRobustnessFeaturesEXT, PhysicalDeviceFeatures2>
10291   {
10292     enum
10293     {
10294       value = true
10295     };
10296   };
10297   template <>
10298   struct StructExtends<PhysicalDeviceImageRobustnessFeaturesEXT, DeviceCreateInfo>
10299   {
10300     enum
10301     {
10302       value = true
10303     };
10304   };
10305 
10306   //=== VK_KHR_workgroup_memory_explicit_layout ===
10307   template <>
10308   struct StructExtends<PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, PhysicalDeviceFeatures2>
10309   {
10310     enum
10311     {
10312       value = true
10313     };
10314   };
10315   template <>
10316   struct StructExtends<PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, DeviceCreateInfo>
10317   {
10318     enum
10319     {
10320       value = true
10321     };
10322   };
10323 
10324   //=== VK_EXT_4444_formats ===
10325   template <>
10326   struct StructExtends<PhysicalDevice4444FormatsFeaturesEXT, PhysicalDeviceFeatures2>
10327   {
10328     enum
10329     {
10330       value = true
10331     };
10332   };
10333   template <>
10334   struct StructExtends<PhysicalDevice4444FormatsFeaturesEXT, DeviceCreateInfo>
10335   {
10336     enum
10337     {
10338       value = true
10339     };
10340   };
10341 
10342   //=== VK_EXT_rgba10x6_formats ===
10343   template <>
10344   struct StructExtends<PhysicalDeviceRGBA10X6FormatsFeaturesEXT, PhysicalDeviceFeatures2>
10345   {
10346     enum
10347     {
10348       value = true
10349     };
10350   };
10351   template <>
10352   struct StructExtends<PhysicalDeviceRGBA10X6FormatsFeaturesEXT, DeviceCreateInfo>
10353   {
10354     enum
10355     {
10356       value = true
10357     };
10358   };
10359 
10360   //=== VK_KHR_ray_tracing_pipeline ===
10361   template <>
10362   struct StructExtends<PhysicalDeviceRayTracingPipelineFeaturesKHR, PhysicalDeviceFeatures2>
10363   {
10364     enum
10365     {
10366       value = true
10367     };
10368   };
10369   template <>
10370   struct StructExtends<PhysicalDeviceRayTracingPipelineFeaturesKHR, DeviceCreateInfo>
10371   {
10372     enum
10373     {
10374       value = true
10375     };
10376   };
10377   template <>
10378   struct StructExtends<PhysicalDeviceRayTracingPipelinePropertiesKHR, PhysicalDeviceProperties2>
10379   {
10380     enum
10381     {
10382       value = true
10383     };
10384   };
10385 
10386   //=== VK_KHR_ray_query ===
10387   template <>
10388   struct StructExtends<PhysicalDeviceRayQueryFeaturesKHR, PhysicalDeviceFeatures2>
10389   {
10390     enum
10391     {
10392       value = true
10393     };
10394   };
10395   template <>
10396   struct StructExtends<PhysicalDeviceRayQueryFeaturesKHR, DeviceCreateInfo>
10397   {
10398     enum
10399     {
10400       value = true
10401     };
10402   };
10403 
10404   //=== VK_VALVE_mutable_descriptor_type ===
10405   template <>
10406   struct StructExtends<PhysicalDeviceMutableDescriptorTypeFeaturesVALVE, PhysicalDeviceFeatures2>
10407   {
10408     enum
10409     {
10410       value = true
10411     };
10412   };
10413   template <>
10414   struct StructExtends<PhysicalDeviceMutableDescriptorTypeFeaturesVALVE, DeviceCreateInfo>
10415   {
10416     enum
10417     {
10418       value = true
10419     };
10420   };
10421   template <>
10422   struct StructExtends<MutableDescriptorTypeCreateInfoVALVE, DescriptorSetLayoutCreateInfo>
10423   {
10424     enum
10425     {
10426       value = true
10427     };
10428   };
10429   template <>
10430   struct StructExtends<MutableDescriptorTypeCreateInfoVALVE, DescriptorPoolCreateInfo>
10431   {
10432     enum
10433     {
10434       value = true
10435     };
10436   };
10437 
10438   //=== VK_EXT_vertex_input_dynamic_state ===
10439   template <>
10440   struct StructExtends<PhysicalDeviceVertexInputDynamicStateFeaturesEXT, PhysicalDeviceFeatures2>
10441   {
10442     enum
10443     {
10444       value = true
10445     };
10446   };
10447   template <>
10448   struct StructExtends<PhysicalDeviceVertexInputDynamicStateFeaturesEXT, DeviceCreateInfo>
10449   {
10450     enum
10451     {
10452       value = true
10453     };
10454   };
10455 
10456   //=== VK_EXT_physical_device_drm ===
10457   template <>
10458   struct StructExtends<PhysicalDeviceDrmPropertiesEXT, PhysicalDeviceProperties2>
10459   {
10460     enum
10461     {
10462       value = true
10463     };
10464   };
10465 
10466   //=== VK_EXT_primitive_topology_list_restart ===
10467   template <>
10468   struct StructExtends<PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, PhysicalDeviceFeatures2>
10469   {
10470     enum
10471     {
10472       value = true
10473     };
10474   };
10475   template <>
10476   struct StructExtends<PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, DeviceCreateInfo>
10477   {
10478     enum
10479     {
10480       value = true
10481     };
10482   };
10483 
10484   //=== VK_KHR_format_feature_flags2 ===
10485   template <>
10486   struct StructExtends<FormatProperties3KHR, FormatProperties2>
10487   {
10488     enum
10489     {
10490       value = true
10491     };
10492   };
10493 
10494 #if defined( VK_USE_PLATFORM_FUCHSIA )
10495   //=== VK_FUCHSIA_external_memory ===
10496   template <>
10497   struct StructExtends<ImportMemoryZirconHandleInfoFUCHSIA, MemoryAllocateInfo>
10498   {
10499     enum
10500     {
10501       value = true
10502     };
10503   };
10504 #endif /*VK_USE_PLATFORM_FUCHSIA*/
10505 
10506 #if defined( VK_USE_PLATFORM_FUCHSIA )
10507   //=== VK_FUCHSIA_buffer_collection ===
10508   template <>
10509   struct StructExtends<ImportMemoryBufferCollectionFUCHSIA, MemoryAllocateInfo>
10510   {
10511     enum
10512     {
10513       value = true
10514     };
10515   };
10516   template <>
10517   struct StructExtends<BufferCollectionImageCreateInfoFUCHSIA, ImageCreateInfo>
10518   {
10519     enum
10520     {
10521       value = true
10522     };
10523   };
10524   template <>
10525   struct StructExtends<BufferCollectionBufferCreateInfoFUCHSIA, BufferCreateInfo>
10526   {
10527     enum
10528     {
10529       value = true
10530     };
10531   };
10532 #endif /*VK_USE_PLATFORM_FUCHSIA*/
10533 
10534   //=== VK_HUAWEI_subpass_shading ===
10535   template <>
10536   struct StructExtends<SubpassShadingPipelineCreateInfoHUAWEI, ComputePipelineCreateInfo>
10537   {
10538     enum
10539     {
10540       value = true
10541     };
10542   };
10543   template <>
10544   struct StructExtends<PhysicalDeviceSubpassShadingFeaturesHUAWEI, PhysicalDeviceFeatures2>
10545   {
10546     enum
10547     {
10548       value = true
10549     };
10550   };
10551   template <>
10552   struct StructExtends<PhysicalDeviceSubpassShadingFeaturesHUAWEI, DeviceCreateInfo>
10553   {
10554     enum
10555     {
10556       value = true
10557     };
10558   };
10559   template <>
10560   struct StructExtends<PhysicalDeviceSubpassShadingPropertiesHUAWEI, PhysicalDeviceProperties2>
10561   {
10562     enum
10563     {
10564       value = true
10565     };
10566   };
10567 
10568   //=== VK_HUAWEI_invocation_mask ===
10569   template <>
10570   struct StructExtends<PhysicalDeviceInvocationMaskFeaturesHUAWEI, PhysicalDeviceFeatures2>
10571   {
10572     enum
10573     {
10574       value = true
10575     };
10576   };
10577   template <>
10578   struct StructExtends<PhysicalDeviceInvocationMaskFeaturesHUAWEI, DeviceCreateInfo>
10579   {
10580     enum
10581     {
10582       value = true
10583     };
10584   };
10585 
10586   //=== VK_NV_external_memory_rdma ===
10587   template <>
10588   struct StructExtends<PhysicalDeviceExternalMemoryRDMAFeaturesNV, PhysicalDeviceFeatures2>
10589   {
10590     enum
10591     {
10592       value = true
10593     };
10594   };
10595   template <>
10596   struct StructExtends<PhysicalDeviceExternalMemoryRDMAFeaturesNV, DeviceCreateInfo>
10597   {
10598     enum
10599     {
10600       value = true
10601     };
10602   };
10603 
10604   //=== VK_EXT_extended_dynamic_state2 ===
10605   template <>
10606   struct StructExtends<PhysicalDeviceExtendedDynamicState2FeaturesEXT, PhysicalDeviceFeatures2>
10607   {
10608     enum
10609     {
10610       value = true
10611     };
10612   };
10613   template <>
10614   struct StructExtends<PhysicalDeviceExtendedDynamicState2FeaturesEXT, DeviceCreateInfo>
10615   {
10616     enum
10617     {
10618       value = true
10619     };
10620   };
10621 
10622   //=== VK_EXT_color_write_enable ===
10623   template <>
10624   struct StructExtends<PhysicalDeviceColorWriteEnableFeaturesEXT, PhysicalDeviceFeatures2>
10625   {
10626     enum
10627     {
10628       value = true
10629     };
10630   };
10631   template <>
10632   struct StructExtends<PhysicalDeviceColorWriteEnableFeaturesEXT, DeviceCreateInfo>
10633   {
10634     enum
10635     {
10636       value = true
10637     };
10638   };
10639   template <>
10640   struct StructExtends<PipelineColorWriteCreateInfoEXT, PipelineColorBlendStateCreateInfo>
10641   {
10642     enum
10643     {
10644       value = true
10645     };
10646   };
10647 
10648   //=== VK_EXT_global_priority_query ===
10649   template <>
10650   struct StructExtends<PhysicalDeviceGlobalPriorityQueryFeaturesEXT, PhysicalDeviceFeatures2>
10651   {
10652     enum
10653     {
10654       value = true
10655     };
10656   };
10657   template <>
10658   struct StructExtends<PhysicalDeviceGlobalPriorityQueryFeaturesEXT, DeviceCreateInfo>
10659   {
10660     enum
10661     {
10662       value = true
10663     };
10664   };
10665   template <>
10666   struct StructExtends<QueueFamilyGlobalPriorityPropertiesEXT, QueueFamilyProperties2>
10667   {
10668     enum
10669     {
10670       value = true
10671     };
10672   };
10673 
10674   //=== VK_EXT_multi_draw ===
10675   template <>
10676   struct StructExtends<PhysicalDeviceMultiDrawFeaturesEXT, PhysicalDeviceFeatures2>
10677   {
10678     enum
10679     {
10680       value = true
10681     };
10682   };
10683   template <>
10684   struct StructExtends<PhysicalDeviceMultiDrawFeaturesEXT, DeviceCreateInfo>
10685   {
10686     enum
10687     {
10688       value = true
10689     };
10690   };
10691   template <>
10692   struct StructExtends<PhysicalDeviceMultiDrawPropertiesEXT, PhysicalDeviceProperties2>
10693   {
10694     enum
10695     {
10696       value = true
10697     };
10698   };
10699 
10700   //=== VK_EXT_border_color_swizzle ===
10701   template <>
10702   struct StructExtends<PhysicalDeviceBorderColorSwizzleFeaturesEXT, PhysicalDeviceFeatures2>
10703   {
10704     enum
10705     {
10706       value = true
10707     };
10708   };
10709   template <>
10710   struct StructExtends<PhysicalDeviceBorderColorSwizzleFeaturesEXT, DeviceCreateInfo>
10711   {
10712     enum
10713     {
10714       value = true
10715     };
10716   };
10717   template <>
10718   struct StructExtends<SamplerBorderColorComponentMappingCreateInfoEXT, SamplerCreateInfo>
10719   {
10720     enum
10721     {
10722       value = true
10723     };
10724   };
10725 
10726   //=== VK_EXT_pageable_device_local_memory ===
10727   template <>
10728   struct StructExtends<PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, PhysicalDeviceFeatures2>
10729   {
10730     enum
10731     {
10732       value = true
10733     };
10734   };
10735   template <>
10736   struct StructExtends<PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, DeviceCreateInfo>
10737   {
10738     enum
10739     {
10740       value = true
10741     };
10742   };
10743 
10744   //=== VK_KHR_maintenance4 ===
10745   template <>
10746   struct StructExtends<PhysicalDeviceMaintenance4FeaturesKHR, PhysicalDeviceFeatures2>
10747   {
10748     enum
10749     {
10750       value = true
10751     };
10752   };
10753   template <>
10754   struct StructExtends<PhysicalDeviceMaintenance4FeaturesKHR, DeviceCreateInfo>
10755   {
10756     enum
10757     {
10758       value = true
10759     };
10760   };
10761   template <>
10762   struct StructExtends<PhysicalDeviceMaintenance4PropertiesKHR, PhysicalDeviceProperties2>
10763   {
10764     enum
10765     {
10766       value = true
10767     };
10768   };
10769 
10770 #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
10771   class DynamicLoader
10772   {
10773   public:
10774 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
DynamicLoader(std::string const & vulkanLibraryName={} )10775     DynamicLoader( std::string const & vulkanLibraryName = {} ) VULKAN_HPP_NOEXCEPT
10776 #  else
10777     DynamicLoader( std::string const & vulkanLibraryName = {} )
10778 #  endif
10779     {
10780       if ( !vulkanLibraryName.empty() )
10781       {
10782 #  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
10783         m_library = dlopen( vulkanLibraryName.c_str(), RTLD_NOW | RTLD_LOCAL );
10784 #  elif defined( _WIN32 )
10785         m_library = ::LoadLibraryA( vulkanLibraryName.c_str() );
10786 #  else
10787 #    error unsupported platform
10788 #  endif
10789       }
10790       else
10791       {
10792 #  if defined( __unix__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
10793         m_library = dlopen( "libvulkan.so", RTLD_NOW | RTLD_LOCAL );
10794         if ( m_library == nullptr )
10795         {
10796           m_library = dlopen( "libvulkan.so.1", RTLD_NOW | RTLD_LOCAL );
10797         }
10798 #  elif defined( __APPLE__ )
10799         m_library = dlopen( "libvulkan.dylib", RTLD_NOW | RTLD_LOCAL );
10800 #  elif defined( _WIN32 )
10801         m_library = ::LoadLibraryA( "vulkan-1.dll" );
10802 #  else
10803 #    error unsupported platform
10804 #  endif
10805       }
10806 
10807 #  ifndef VULKAN_HPP_NO_EXCEPTIONS
10808       if ( m_library == nullptr )
10809       {
10810         // NOTE there should be an InitializationFailedError, but msvc insists on the symbol does not exist within the
10811         // scope of this function.
10812         throw std::runtime_error( "Failed to load vulkan library!" );
10813       }
10814 #  endif
10815     }
10816 
10817     DynamicLoader( DynamicLoader const & ) = delete;
10818 
DynamicLoader(DynamicLoader && other)10819     DynamicLoader( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT : m_library( other.m_library )
10820     {
10821       other.m_library = nullptr;
10822     }
10823 
10824     DynamicLoader & operator=( DynamicLoader const & ) = delete;
10825 
operator =(DynamicLoader && other)10826     DynamicLoader & operator=( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT
10827     {
10828       std::swap( m_library, other.m_library );
10829       return *this;
10830     }
10831 
~DynamicLoader()10832     ~DynamicLoader() VULKAN_HPP_NOEXCEPT
10833     {
10834       if ( m_library )
10835       {
10836 #  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
10837         dlclose( m_library );
10838 #  elif defined( _WIN32 )
10839         ::FreeLibrary( m_library );
10840 #  else
10841 #    error unsupported platform
10842 #  endif
10843       }
10844     }
10845 
10846     template <typename T>
getProcAddress(const char * function) const10847     T getProcAddress( const char * function ) const VULKAN_HPP_NOEXCEPT
10848     {
10849 #  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
10850       return (T)dlsym( m_library, function );
10851 #  elif defined( _WIN32 )
10852       return ( T )::GetProcAddress( m_library, function );
10853 #  else
10854 #    error unsupported platform
10855 #  endif
10856     }
10857 
success() const10858     bool success() const VULKAN_HPP_NOEXCEPT
10859     {
10860       return m_library != nullptr;
10861     }
10862 
10863   private:
10864 #  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
10865     void * m_library;
10866 #  elif defined( _WIN32 )
10867     ::HINSTANCE m_library;
10868 #  else
10869 #    error unsupported platform
10870 #  endif
10871   };
10872 #endif
10873 
10874   using PFN_dummy = void ( * )();
10875 
10876   class DispatchLoaderDynamic : public DispatchLoaderBase
10877   {
10878   public:
10879     //=== VK_VERSION_1_0 ===
10880     PFN_vkCreateInstance                               vkCreateInstance                               = 0;
10881     PFN_vkDestroyInstance                              vkDestroyInstance                              = 0;
10882     PFN_vkEnumeratePhysicalDevices                     vkEnumeratePhysicalDevices                     = 0;
10883     PFN_vkGetPhysicalDeviceFeatures                    vkGetPhysicalDeviceFeatures                    = 0;
10884     PFN_vkGetPhysicalDeviceFormatProperties            vkGetPhysicalDeviceFormatProperties            = 0;
10885     PFN_vkGetPhysicalDeviceImageFormatProperties       vkGetPhysicalDeviceImageFormatProperties       = 0;
10886     PFN_vkGetPhysicalDeviceProperties                  vkGetPhysicalDeviceProperties                  = 0;
10887     PFN_vkGetPhysicalDeviceQueueFamilyProperties       vkGetPhysicalDeviceQueueFamilyProperties       = 0;
10888     PFN_vkGetPhysicalDeviceMemoryProperties            vkGetPhysicalDeviceMemoryProperties            = 0;
10889     PFN_vkGetInstanceProcAddr                          vkGetInstanceProcAddr                          = 0;
10890     PFN_vkGetDeviceProcAddr                            vkGetDeviceProcAddr                            = 0;
10891     PFN_vkCreateDevice                                 vkCreateDevice                                 = 0;
10892     PFN_vkDestroyDevice                                vkDestroyDevice                                = 0;
10893     PFN_vkEnumerateInstanceExtensionProperties         vkEnumerateInstanceExtensionProperties         = 0;
10894     PFN_vkEnumerateDeviceExtensionProperties           vkEnumerateDeviceExtensionProperties           = 0;
10895     PFN_vkEnumerateInstanceLayerProperties             vkEnumerateInstanceLayerProperties             = 0;
10896     PFN_vkEnumerateDeviceLayerProperties               vkEnumerateDeviceLayerProperties               = 0;
10897     PFN_vkGetDeviceQueue                               vkGetDeviceQueue                               = 0;
10898     PFN_vkQueueSubmit                                  vkQueueSubmit                                  = 0;
10899     PFN_vkQueueWaitIdle                                vkQueueWaitIdle                                = 0;
10900     PFN_vkDeviceWaitIdle                               vkDeviceWaitIdle                               = 0;
10901     PFN_vkAllocateMemory                               vkAllocateMemory                               = 0;
10902     PFN_vkFreeMemory                                   vkFreeMemory                                   = 0;
10903     PFN_vkMapMemory                                    vkMapMemory                                    = 0;
10904     PFN_vkUnmapMemory                                  vkUnmapMemory                                  = 0;
10905     PFN_vkFlushMappedMemoryRanges                      vkFlushMappedMemoryRanges                      = 0;
10906     PFN_vkInvalidateMappedMemoryRanges                 vkInvalidateMappedMemoryRanges                 = 0;
10907     PFN_vkGetDeviceMemoryCommitment                    vkGetDeviceMemoryCommitment                    = 0;
10908     PFN_vkBindBufferMemory                             vkBindBufferMemory                             = 0;
10909     PFN_vkBindImageMemory                              vkBindImageMemory                              = 0;
10910     PFN_vkGetBufferMemoryRequirements                  vkGetBufferMemoryRequirements                  = 0;
10911     PFN_vkGetImageMemoryRequirements                   vkGetImageMemoryRequirements                   = 0;
10912     PFN_vkGetImageSparseMemoryRequirements             vkGetImageSparseMemoryRequirements             = 0;
10913     PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties = 0;
10914     PFN_vkQueueBindSparse                              vkQueueBindSparse                              = 0;
10915     PFN_vkCreateFence                                  vkCreateFence                                  = 0;
10916     PFN_vkDestroyFence                                 vkDestroyFence                                 = 0;
10917     PFN_vkResetFences                                  vkResetFences                                  = 0;
10918     PFN_vkGetFenceStatus                               vkGetFenceStatus                               = 0;
10919     PFN_vkWaitForFences                                vkWaitForFences                                = 0;
10920     PFN_vkCreateSemaphore                              vkCreateSemaphore                              = 0;
10921     PFN_vkDestroySemaphore                             vkDestroySemaphore                             = 0;
10922     PFN_vkCreateEvent                                  vkCreateEvent                                  = 0;
10923     PFN_vkDestroyEvent                                 vkDestroyEvent                                 = 0;
10924     PFN_vkGetEventStatus                               vkGetEventStatus                               = 0;
10925     PFN_vkSetEvent                                     vkSetEvent                                     = 0;
10926     PFN_vkResetEvent                                   vkResetEvent                                   = 0;
10927     PFN_vkCreateQueryPool                              vkCreateQueryPool                              = 0;
10928     PFN_vkDestroyQueryPool                             vkDestroyQueryPool                             = 0;
10929     PFN_vkGetQueryPoolResults                          vkGetQueryPoolResults                          = 0;
10930     PFN_vkCreateBuffer                                 vkCreateBuffer                                 = 0;
10931     PFN_vkDestroyBuffer                                vkDestroyBuffer                                = 0;
10932     PFN_vkCreateBufferView                             vkCreateBufferView                             = 0;
10933     PFN_vkDestroyBufferView                            vkDestroyBufferView                            = 0;
10934     PFN_vkCreateImage                                  vkCreateImage                                  = 0;
10935     PFN_vkDestroyImage                                 vkDestroyImage                                 = 0;
10936     PFN_vkGetImageSubresourceLayout                    vkGetImageSubresourceLayout                    = 0;
10937     PFN_vkCreateImageView                              vkCreateImageView                              = 0;
10938     PFN_vkDestroyImageView                             vkDestroyImageView                             = 0;
10939     PFN_vkCreateShaderModule                           vkCreateShaderModule                           = 0;
10940     PFN_vkDestroyShaderModule                          vkDestroyShaderModule                          = 0;
10941     PFN_vkCreatePipelineCache                          vkCreatePipelineCache                          = 0;
10942     PFN_vkDestroyPipelineCache                         vkDestroyPipelineCache                         = 0;
10943     PFN_vkGetPipelineCacheData                         vkGetPipelineCacheData                         = 0;
10944     PFN_vkMergePipelineCaches                          vkMergePipelineCaches                          = 0;
10945     PFN_vkCreateGraphicsPipelines                      vkCreateGraphicsPipelines                      = 0;
10946     PFN_vkCreateComputePipelines                       vkCreateComputePipelines                       = 0;
10947     PFN_vkDestroyPipeline                              vkDestroyPipeline                              = 0;
10948     PFN_vkCreatePipelineLayout                         vkCreatePipelineLayout                         = 0;
10949     PFN_vkDestroyPipelineLayout                        vkDestroyPipelineLayout                        = 0;
10950     PFN_vkCreateSampler                                vkCreateSampler                                = 0;
10951     PFN_vkDestroySampler                               vkDestroySampler                               = 0;
10952     PFN_vkCreateDescriptorSetLayout                    vkCreateDescriptorSetLayout                    = 0;
10953     PFN_vkDestroyDescriptorSetLayout                   vkDestroyDescriptorSetLayout                   = 0;
10954     PFN_vkCreateDescriptorPool                         vkCreateDescriptorPool                         = 0;
10955     PFN_vkDestroyDescriptorPool                        vkDestroyDescriptorPool                        = 0;
10956     PFN_vkResetDescriptorPool                          vkResetDescriptorPool                          = 0;
10957     PFN_vkAllocateDescriptorSets                       vkAllocateDescriptorSets                       = 0;
10958     PFN_vkFreeDescriptorSets                           vkFreeDescriptorSets                           = 0;
10959     PFN_vkUpdateDescriptorSets                         vkUpdateDescriptorSets                         = 0;
10960     PFN_vkCreateFramebuffer                            vkCreateFramebuffer                            = 0;
10961     PFN_vkDestroyFramebuffer                           vkDestroyFramebuffer                           = 0;
10962     PFN_vkCreateRenderPass                             vkCreateRenderPass                             = 0;
10963     PFN_vkDestroyRenderPass                            vkDestroyRenderPass                            = 0;
10964     PFN_vkGetRenderAreaGranularity                     vkGetRenderAreaGranularity                     = 0;
10965     PFN_vkCreateCommandPool                            vkCreateCommandPool                            = 0;
10966     PFN_vkDestroyCommandPool                           vkDestroyCommandPool                           = 0;
10967     PFN_vkResetCommandPool                             vkResetCommandPool                             = 0;
10968     PFN_vkAllocateCommandBuffers                       vkAllocateCommandBuffers                       = 0;
10969     PFN_vkFreeCommandBuffers                           vkFreeCommandBuffers                           = 0;
10970     PFN_vkBeginCommandBuffer                           vkBeginCommandBuffer                           = 0;
10971     PFN_vkEndCommandBuffer                             vkEndCommandBuffer                             = 0;
10972     PFN_vkResetCommandBuffer                           vkResetCommandBuffer                           = 0;
10973     PFN_vkCmdBindPipeline                              vkCmdBindPipeline                              = 0;
10974     PFN_vkCmdSetViewport                               vkCmdSetViewport                               = 0;
10975     PFN_vkCmdSetScissor                                vkCmdSetScissor                                = 0;
10976     PFN_vkCmdSetLineWidth                              vkCmdSetLineWidth                              = 0;
10977     PFN_vkCmdSetDepthBias                              vkCmdSetDepthBias                              = 0;
10978     PFN_vkCmdSetBlendConstants                         vkCmdSetBlendConstants                         = 0;
10979     PFN_vkCmdSetDepthBounds                            vkCmdSetDepthBounds                            = 0;
10980     PFN_vkCmdSetStencilCompareMask                     vkCmdSetStencilCompareMask                     = 0;
10981     PFN_vkCmdSetStencilWriteMask                       vkCmdSetStencilWriteMask                       = 0;
10982     PFN_vkCmdSetStencilReference                       vkCmdSetStencilReference                       = 0;
10983     PFN_vkCmdBindDescriptorSets                        vkCmdBindDescriptorSets                        = 0;
10984     PFN_vkCmdBindIndexBuffer                           vkCmdBindIndexBuffer                           = 0;
10985     PFN_vkCmdBindVertexBuffers                         vkCmdBindVertexBuffers                         = 0;
10986     PFN_vkCmdDraw                                      vkCmdDraw                                      = 0;
10987     PFN_vkCmdDrawIndexed                               vkCmdDrawIndexed                               = 0;
10988     PFN_vkCmdDrawIndirect                              vkCmdDrawIndirect                              = 0;
10989     PFN_vkCmdDrawIndexedIndirect                       vkCmdDrawIndexedIndirect                       = 0;
10990     PFN_vkCmdDispatch                                  vkCmdDispatch                                  = 0;
10991     PFN_vkCmdDispatchIndirect                          vkCmdDispatchIndirect                          = 0;
10992     PFN_vkCmdCopyBuffer                                vkCmdCopyBuffer                                = 0;
10993     PFN_vkCmdCopyImage                                 vkCmdCopyImage                                 = 0;
10994     PFN_vkCmdBlitImage                                 vkCmdBlitImage                                 = 0;
10995     PFN_vkCmdCopyBufferToImage                         vkCmdCopyBufferToImage                         = 0;
10996     PFN_vkCmdCopyImageToBuffer                         vkCmdCopyImageToBuffer                         = 0;
10997     PFN_vkCmdUpdateBuffer                              vkCmdUpdateBuffer                              = 0;
10998     PFN_vkCmdFillBuffer                                vkCmdFillBuffer                                = 0;
10999     PFN_vkCmdClearColorImage                           vkCmdClearColorImage                           = 0;
11000     PFN_vkCmdClearDepthStencilImage                    vkCmdClearDepthStencilImage                    = 0;
11001     PFN_vkCmdClearAttachments                          vkCmdClearAttachments                          = 0;
11002     PFN_vkCmdResolveImage                              vkCmdResolveImage                              = 0;
11003     PFN_vkCmdSetEvent                                  vkCmdSetEvent                                  = 0;
11004     PFN_vkCmdResetEvent                                vkCmdResetEvent                                = 0;
11005     PFN_vkCmdWaitEvents                                vkCmdWaitEvents                                = 0;
11006     PFN_vkCmdPipelineBarrier                           vkCmdPipelineBarrier                           = 0;
11007     PFN_vkCmdBeginQuery                                vkCmdBeginQuery                                = 0;
11008     PFN_vkCmdEndQuery                                  vkCmdEndQuery                                  = 0;
11009     PFN_vkCmdResetQueryPool                            vkCmdResetQueryPool                            = 0;
11010     PFN_vkCmdWriteTimestamp                            vkCmdWriteTimestamp                            = 0;
11011     PFN_vkCmdCopyQueryPoolResults                      vkCmdCopyQueryPoolResults                      = 0;
11012     PFN_vkCmdPushConstants                             vkCmdPushConstants                             = 0;
11013     PFN_vkCmdBeginRenderPass                           vkCmdBeginRenderPass                           = 0;
11014     PFN_vkCmdNextSubpass                               vkCmdNextSubpass                               = 0;
11015     PFN_vkCmdEndRenderPass                             vkCmdEndRenderPass                             = 0;
11016     PFN_vkCmdExecuteCommands                           vkCmdExecuteCommands                           = 0;
11017 
11018     //=== VK_VERSION_1_1 ===
11019     PFN_vkEnumerateInstanceVersion                      vkEnumerateInstanceVersion                      = 0;
11020     PFN_vkBindBufferMemory2                             vkBindBufferMemory2                             = 0;
11021     PFN_vkBindImageMemory2                              vkBindImageMemory2                              = 0;
11022     PFN_vkGetDeviceGroupPeerMemoryFeatures              vkGetDeviceGroupPeerMemoryFeatures              = 0;
11023     PFN_vkCmdSetDeviceMask                              vkCmdSetDeviceMask                              = 0;
11024     PFN_vkCmdDispatchBase                               vkCmdDispatchBase                               = 0;
11025     PFN_vkEnumeratePhysicalDeviceGroups                 vkEnumeratePhysicalDeviceGroups                 = 0;
11026     PFN_vkGetImageMemoryRequirements2                   vkGetImageMemoryRequirements2                   = 0;
11027     PFN_vkGetBufferMemoryRequirements2                  vkGetBufferMemoryRequirements2                  = 0;
11028     PFN_vkGetImageSparseMemoryRequirements2             vkGetImageSparseMemoryRequirements2             = 0;
11029     PFN_vkGetPhysicalDeviceFeatures2                    vkGetPhysicalDeviceFeatures2                    = 0;
11030     PFN_vkGetPhysicalDeviceProperties2                  vkGetPhysicalDeviceProperties2                  = 0;
11031     PFN_vkGetPhysicalDeviceFormatProperties2            vkGetPhysicalDeviceFormatProperties2            = 0;
11032     PFN_vkGetPhysicalDeviceImageFormatProperties2       vkGetPhysicalDeviceImageFormatProperties2       = 0;
11033     PFN_vkGetPhysicalDeviceQueueFamilyProperties2       vkGetPhysicalDeviceQueueFamilyProperties2       = 0;
11034     PFN_vkGetPhysicalDeviceMemoryProperties2            vkGetPhysicalDeviceMemoryProperties2            = 0;
11035     PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 = 0;
11036     PFN_vkTrimCommandPool                               vkTrimCommandPool                               = 0;
11037     PFN_vkGetDeviceQueue2                               vkGetDeviceQueue2                               = 0;
11038     PFN_vkCreateSamplerYcbcrConversion                  vkCreateSamplerYcbcrConversion                  = 0;
11039     PFN_vkDestroySamplerYcbcrConversion                 vkDestroySamplerYcbcrConversion                 = 0;
11040     PFN_vkCreateDescriptorUpdateTemplate                vkCreateDescriptorUpdateTemplate                = 0;
11041     PFN_vkDestroyDescriptorUpdateTemplate               vkDestroyDescriptorUpdateTemplate               = 0;
11042     PFN_vkUpdateDescriptorSetWithTemplate               vkUpdateDescriptorSetWithTemplate               = 0;
11043     PFN_vkGetPhysicalDeviceExternalBufferProperties     vkGetPhysicalDeviceExternalBufferProperties     = 0;
11044     PFN_vkGetPhysicalDeviceExternalFenceProperties      vkGetPhysicalDeviceExternalFenceProperties      = 0;
11045     PFN_vkGetPhysicalDeviceExternalSemaphoreProperties  vkGetPhysicalDeviceExternalSemaphoreProperties  = 0;
11046     PFN_vkGetDescriptorSetLayoutSupport                 vkGetDescriptorSetLayoutSupport                 = 0;
11047 
11048     //=== VK_VERSION_1_2 ===
11049     PFN_vkCmdDrawIndirectCount                vkCmdDrawIndirectCount                = 0;
11050     PFN_vkCmdDrawIndexedIndirectCount         vkCmdDrawIndexedIndirectCount         = 0;
11051     PFN_vkCreateRenderPass2                   vkCreateRenderPass2                   = 0;
11052     PFN_vkCmdBeginRenderPass2                 vkCmdBeginRenderPass2                 = 0;
11053     PFN_vkCmdNextSubpass2                     vkCmdNextSubpass2                     = 0;
11054     PFN_vkCmdEndRenderPass2                   vkCmdEndRenderPass2                   = 0;
11055     PFN_vkResetQueryPool                      vkResetQueryPool                      = 0;
11056     PFN_vkGetSemaphoreCounterValue            vkGetSemaphoreCounterValue            = 0;
11057     PFN_vkWaitSemaphores                      vkWaitSemaphores                      = 0;
11058     PFN_vkSignalSemaphore                     vkSignalSemaphore                     = 0;
11059     PFN_vkGetBufferDeviceAddress              vkGetBufferDeviceAddress              = 0;
11060     PFN_vkGetBufferOpaqueCaptureAddress       vkGetBufferOpaqueCaptureAddress       = 0;
11061     PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress = 0;
11062 
11063     //=== VK_KHR_surface ===
11064     PFN_vkDestroySurfaceKHR                       vkDestroySurfaceKHR                       = 0;
11065     PFN_vkGetPhysicalDeviceSurfaceSupportKHR      vkGetPhysicalDeviceSurfaceSupportKHR      = 0;
11066     PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0;
11067     PFN_vkGetPhysicalDeviceSurfaceFormatsKHR      vkGetPhysicalDeviceSurfaceFormatsKHR      = 0;
11068     PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0;
11069 
11070     //=== VK_KHR_swapchain ===
11071     PFN_vkCreateSwapchainKHR                    vkCreateSwapchainKHR                    = 0;
11072     PFN_vkDestroySwapchainKHR                   vkDestroySwapchainKHR                   = 0;
11073     PFN_vkGetSwapchainImagesKHR                 vkGetSwapchainImagesKHR                 = 0;
11074     PFN_vkAcquireNextImageKHR                   vkAcquireNextImageKHR                   = 0;
11075     PFN_vkQueuePresentKHR                       vkQueuePresentKHR                       = 0;
11076     PFN_vkGetDeviceGroupPresentCapabilitiesKHR  vkGetDeviceGroupPresentCapabilitiesKHR  = 0;
11077     PFN_vkGetDeviceGroupSurfacePresentModesKHR  vkGetDeviceGroupSurfacePresentModesKHR  = 0;
11078     PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0;
11079     PFN_vkAcquireNextImage2KHR                  vkAcquireNextImage2KHR                  = 0;
11080 
11081     //=== VK_KHR_display ===
11082     PFN_vkGetPhysicalDeviceDisplayPropertiesKHR      vkGetPhysicalDeviceDisplayPropertiesKHR      = 0;
11083     PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0;
11084     PFN_vkGetDisplayPlaneSupportedDisplaysKHR        vkGetDisplayPlaneSupportedDisplaysKHR        = 0;
11085     PFN_vkGetDisplayModePropertiesKHR                vkGetDisplayModePropertiesKHR                = 0;
11086     PFN_vkCreateDisplayModeKHR                       vkCreateDisplayModeKHR                       = 0;
11087     PFN_vkGetDisplayPlaneCapabilitiesKHR             vkGetDisplayPlaneCapabilitiesKHR             = 0;
11088     PFN_vkCreateDisplayPlaneSurfaceKHR               vkCreateDisplayPlaneSurfaceKHR               = 0;
11089 
11090     //=== VK_KHR_display_swapchain ===
11091     PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0;
11092 
11093 #if defined( VK_USE_PLATFORM_XLIB_KHR )
11094     //=== VK_KHR_xlib_surface ===
11095     PFN_vkCreateXlibSurfaceKHR                        vkCreateXlibSurfaceKHR                        = 0;
11096     PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR = 0;
11097 #else
11098     PFN_dummy vkCreateXlibSurfaceKHR_placeholder                            = 0;
11099     PFN_dummy vkGetPhysicalDeviceXlibPresentationSupportKHR_placeholder     = 0;
11100 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
11101 
11102 #if defined( VK_USE_PLATFORM_XCB_KHR )
11103     //=== VK_KHR_xcb_surface ===
11104     PFN_vkCreateXcbSurfaceKHR                        vkCreateXcbSurfaceKHR                        = 0;
11105     PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR = 0;
11106 #else
11107     PFN_dummy vkCreateXcbSurfaceKHR_placeholder                             = 0;
11108     PFN_dummy vkGetPhysicalDeviceXcbPresentationSupportKHR_placeholder      = 0;
11109 #endif /*VK_USE_PLATFORM_XCB_KHR*/
11110 
11111 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
11112     //=== VK_KHR_wayland_surface ===
11113     PFN_vkCreateWaylandSurfaceKHR                        vkCreateWaylandSurfaceKHR                        = 0;
11114     PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0;
11115 #else
11116     PFN_dummy vkCreateWaylandSurfaceKHR_placeholder                         = 0;
11117     PFN_dummy vkGetPhysicalDeviceWaylandPresentationSupportKHR_placeholder  = 0;
11118 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
11119 
11120 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
11121     //=== VK_KHR_android_surface ===
11122     PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0;
11123 #else
11124     PFN_dummy vkCreateAndroidSurfaceKHR_placeholder                         = 0;
11125 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
11126 
11127 #if defined( VK_USE_PLATFORM_WIN32_KHR )
11128     //=== VK_KHR_win32_surface ===
11129     PFN_vkCreateWin32SurfaceKHR                        vkCreateWin32SurfaceKHR                        = 0;
11130     PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR = 0;
11131 #else
11132     PFN_dummy vkCreateWin32SurfaceKHR_placeholder                           = 0;
11133     PFN_dummy vkGetPhysicalDeviceWin32PresentationSupportKHR_placeholder    = 0;
11134 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11135 
11136     //=== VK_EXT_debug_report ===
11137     PFN_vkCreateDebugReportCallbackEXT  vkCreateDebugReportCallbackEXT  = 0;
11138     PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0;
11139     PFN_vkDebugReportMessageEXT         vkDebugReportMessageEXT         = 0;
11140 
11141     //=== VK_EXT_debug_marker ===
11142     PFN_vkDebugMarkerSetObjectTagEXT  vkDebugMarkerSetObjectTagEXT  = 0;
11143     PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0;
11144     PFN_vkCmdDebugMarkerBeginEXT      vkCmdDebugMarkerBeginEXT      = 0;
11145     PFN_vkCmdDebugMarkerEndEXT        vkCmdDebugMarkerEndEXT        = 0;
11146     PFN_vkCmdDebugMarkerInsertEXT     vkCmdDebugMarkerInsertEXT     = 0;
11147 
11148 #if defined( VK_ENABLE_BETA_EXTENSIONS )
11149     //=== VK_KHR_video_queue ===
11150     PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR     vkGetPhysicalDeviceVideoCapabilitiesKHR     = 0;
11151     PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR = 0;
11152     PFN_vkCreateVideoSessionKHR                     vkCreateVideoSessionKHR                     = 0;
11153     PFN_vkDestroyVideoSessionKHR                    vkDestroyVideoSessionKHR                    = 0;
11154     PFN_vkGetVideoSessionMemoryRequirementsKHR      vkGetVideoSessionMemoryRequirementsKHR      = 0;
11155     PFN_vkBindVideoSessionMemoryKHR                 vkBindVideoSessionMemoryKHR                 = 0;
11156     PFN_vkCreateVideoSessionParametersKHR           vkCreateVideoSessionParametersKHR           = 0;
11157     PFN_vkUpdateVideoSessionParametersKHR           vkUpdateVideoSessionParametersKHR           = 0;
11158     PFN_vkDestroyVideoSessionParametersKHR          vkDestroyVideoSessionParametersKHR          = 0;
11159     PFN_vkCmdBeginVideoCodingKHR                    vkCmdBeginVideoCodingKHR                    = 0;
11160     PFN_vkCmdEndVideoCodingKHR                      vkCmdEndVideoCodingKHR                      = 0;
11161     PFN_vkCmdControlVideoCodingKHR                  vkCmdControlVideoCodingKHR                  = 0;
11162 #else
11163     PFN_dummy vkGetPhysicalDeviceVideoCapabilitiesKHR_placeholder           = 0;
11164     PFN_dummy vkGetPhysicalDeviceVideoFormatPropertiesKHR_placeholder       = 0;
11165     PFN_dummy vkCreateVideoSessionKHR_placeholder                           = 0;
11166     PFN_dummy vkDestroyVideoSessionKHR_placeholder                          = 0;
11167     PFN_dummy vkGetVideoSessionMemoryRequirementsKHR_placeholder            = 0;
11168     PFN_dummy vkBindVideoSessionMemoryKHR_placeholder                       = 0;
11169     PFN_dummy vkCreateVideoSessionParametersKHR_placeholder                 = 0;
11170     PFN_dummy vkUpdateVideoSessionParametersKHR_placeholder                 = 0;
11171     PFN_dummy vkDestroyVideoSessionParametersKHR_placeholder                = 0;
11172     PFN_dummy vkCmdBeginVideoCodingKHR_placeholder                          = 0;
11173     PFN_dummy vkCmdEndVideoCodingKHR_placeholder                            = 0;
11174     PFN_dummy vkCmdControlVideoCodingKHR_placeholder                        = 0;
11175 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
11176 
11177 #if defined( VK_ENABLE_BETA_EXTENSIONS )
11178     //=== VK_KHR_video_decode_queue ===
11179     PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR = 0;
11180 #else
11181     PFN_dummy vkCmdDecodeVideoKHR_placeholder                               = 0;
11182 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
11183 
11184     //=== VK_EXT_transform_feedback ===
11185     PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0;
11186     PFN_vkCmdBeginTransformFeedbackEXT       vkCmdBeginTransformFeedbackEXT       = 0;
11187     PFN_vkCmdEndTransformFeedbackEXT         vkCmdEndTransformFeedbackEXT         = 0;
11188     PFN_vkCmdBeginQueryIndexedEXT            vkCmdBeginQueryIndexedEXT            = 0;
11189     PFN_vkCmdEndQueryIndexedEXT              vkCmdEndQueryIndexedEXT              = 0;
11190     PFN_vkCmdDrawIndirectByteCountEXT        vkCmdDrawIndirectByteCountEXT        = 0;
11191 
11192     //=== VK_NVX_binary_import ===
11193     PFN_vkCreateCuModuleNVX    vkCreateCuModuleNVX    = 0;
11194     PFN_vkCreateCuFunctionNVX  vkCreateCuFunctionNVX  = 0;
11195     PFN_vkDestroyCuModuleNVX   vkDestroyCuModuleNVX   = 0;
11196     PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX = 0;
11197     PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX = 0;
11198 
11199     //=== VK_NVX_image_view_handle ===
11200     PFN_vkGetImageViewHandleNVX  vkGetImageViewHandleNVX  = 0;
11201     PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX = 0;
11202 
11203     //=== VK_AMD_draw_indirect_count ===
11204     PFN_vkCmdDrawIndirectCountAMD        vkCmdDrawIndirectCountAMD        = 0;
11205     PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD = 0;
11206 
11207     //=== VK_AMD_shader_info ===
11208     PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0;
11209 
11210 #if defined( VK_USE_PLATFORM_GGP )
11211     //=== VK_GGP_stream_descriptor_surface ===
11212     PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP = 0;
11213 #else
11214     PFN_dummy vkCreateStreamDescriptorSurfaceGGP_placeholder                = 0;
11215 #endif /*VK_USE_PLATFORM_GGP*/
11216 
11217     //=== VK_NV_external_memory_capabilities ===
11218     PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0;
11219 
11220 #if defined( VK_USE_PLATFORM_WIN32_KHR )
11221     //=== VK_NV_external_memory_win32 ===
11222     PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0;
11223 #else
11224     PFN_dummy vkGetMemoryWin32HandleNV_placeholder                          = 0;
11225 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11226 
11227     //=== VK_KHR_get_physical_device_properties2 ===
11228     PFN_vkGetPhysicalDeviceFeatures2KHR                    vkGetPhysicalDeviceFeatures2KHR                    = 0;
11229     PFN_vkGetPhysicalDeviceProperties2KHR                  vkGetPhysicalDeviceProperties2KHR                  = 0;
11230     PFN_vkGetPhysicalDeviceFormatProperties2KHR            vkGetPhysicalDeviceFormatProperties2KHR            = 0;
11231     PFN_vkGetPhysicalDeviceImageFormatProperties2KHR       vkGetPhysicalDeviceImageFormatProperties2KHR       = 0;
11232     PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR       vkGetPhysicalDeviceQueueFamilyProperties2KHR       = 0;
11233     PFN_vkGetPhysicalDeviceMemoryProperties2KHR            vkGetPhysicalDeviceMemoryProperties2KHR            = 0;
11234     PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 0;
11235 
11236     //=== VK_KHR_device_group ===
11237     PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0;
11238     PFN_vkCmdSetDeviceMaskKHR                 vkCmdSetDeviceMaskKHR                 = 0;
11239     PFN_vkCmdDispatchBaseKHR                  vkCmdDispatchBaseKHR                  = 0;
11240 
11241 #if defined( VK_USE_PLATFORM_VI_NN )
11242     //=== VK_NN_vi_surface ===
11243     PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN = 0;
11244 #else
11245     PFN_dummy vkCreateViSurfaceNN_placeholder                               = 0;
11246 #endif /*VK_USE_PLATFORM_VI_NN*/
11247 
11248     //=== VK_KHR_maintenance1 ===
11249     PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0;
11250 
11251     //=== VK_KHR_device_group_creation ===
11252     PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0;
11253 
11254     //=== VK_KHR_external_memory_capabilities ===
11255     PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0;
11256 
11257 #if defined( VK_USE_PLATFORM_WIN32_KHR )
11258     //=== VK_KHR_external_memory_win32 ===
11259     PFN_vkGetMemoryWin32HandleKHR           vkGetMemoryWin32HandleKHR           = 0;
11260     PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR = 0;
11261 #else
11262     PFN_dummy vkGetMemoryWin32HandleKHR_placeholder                         = 0;
11263     PFN_dummy vkGetMemoryWin32HandlePropertiesKHR_placeholder               = 0;
11264 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11265 
11266     //=== VK_KHR_external_memory_fd ===
11267     PFN_vkGetMemoryFdKHR           vkGetMemoryFdKHR           = 0;
11268     PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0;
11269 
11270     //=== VK_KHR_external_semaphore_capabilities ===
11271     PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0;
11272 
11273 #if defined( VK_USE_PLATFORM_WIN32_KHR )
11274     //=== VK_KHR_external_semaphore_win32 ===
11275     PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0;
11276     PFN_vkGetSemaphoreWin32HandleKHR    vkGetSemaphoreWin32HandleKHR    = 0;
11277 #else
11278     PFN_dummy vkImportSemaphoreWin32HandleKHR_placeholder                   = 0;
11279     PFN_dummy vkGetSemaphoreWin32HandleKHR_placeholder                      = 0;
11280 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11281 
11282     //=== VK_KHR_external_semaphore_fd ===
11283     PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0;
11284     PFN_vkGetSemaphoreFdKHR    vkGetSemaphoreFdKHR    = 0;
11285 
11286     //=== VK_KHR_push_descriptor ===
11287     PFN_vkCmdPushDescriptorSetKHR             vkCmdPushDescriptorSetKHR             = 0;
11288     PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0;
11289 
11290     //=== VK_EXT_conditional_rendering ===
11291     PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0;
11292     PFN_vkCmdEndConditionalRenderingEXT   vkCmdEndConditionalRenderingEXT   = 0;
11293 
11294     //=== VK_KHR_descriptor_update_template ===
11295     PFN_vkCreateDescriptorUpdateTemplateKHR  vkCreateDescriptorUpdateTemplateKHR  = 0;
11296     PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR = 0;
11297     PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0;
11298 
11299     //=== VK_NV_clip_space_w_scaling ===
11300     PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0;
11301 
11302     //=== VK_EXT_direct_mode_display ===
11303     PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0;
11304 
11305 #if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
11306     //=== VK_EXT_acquire_xlib_display ===
11307     PFN_vkAcquireXlibDisplayEXT    vkAcquireXlibDisplayEXT    = 0;
11308     PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0;
11309 #else
11310     PFN_dummy vkAcquireXlibDisplayEXT_placeholder                           = 0;
11311     PFN_dummy vkGetRandROutputDisplayEXT_placeholder                        = 0;
11312 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
11313 
11314     //=== VK_EXT_display_surface_counter ===
11315     PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0;
11316 
11317     //=== VK_EXT_display_control ===
11318     PFN_vkDisplayPowerControlEXT  vkDisplayPowerControlEXT  = 0;
11319     PFN_vkRegisterDeviceEventEXT  vkRegisterDeviceEventEXT  = 0;
11320     PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0;
11321     PFN_vkGetSwapchainCounterEXT  vkGetSwapchainCounterEXT  = 0;
11322 
11323     //=== VK_GOOGLE_display_timing ===
11324     PFN_vkGetRefreshCycleDurationGOOGLE   vkGetRefreshCycleDurationGOOGLE   = 0;
11325     PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0;
11326 
11327     //=== VK_EXT_discard_rectangles ===
11328     PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0;
11329 
11330     //=== VK_EXT_hdr_metadata ===
11331     PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0;
11332 
11333     //=== VK_KHR_create_renderpass2 ===
11334     PFN_vkCreateRenderPass2KHR   vkCreateRenderPass2KHR   = 0;
11335     PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0;
11336     PFN_vkCmdNextSubpass2KHR     vkCmdNextSubpass2KHR     = 0;
11337     PFN_vkCmdEndRenderPass2KHR   vkCmdEndRenderPass2KHR   = 0;
11338 
11339     //=== VK_KHR_shared_presentable_image ===
11340     PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0;
11341 
11342     //=== VK_KHR_external_fence_capabilities ===
11343     PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0;
11344 
11345 #if defined( VK_USE_PLATFORM_WIN32_KHR )
11346     //=== VK_KHR_external_fence_win32 ===
11347     PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0;
11348     PFN_vkGetFenceWin32HandleKHR    vkGetFenceWin32HandleKHR    = 0;
11349 #else
11350     PFN_dummy vkImportFenceWin32HandleKHR_placeholder                       = 0;
11351     PFN_dummy vkGetFenceWin32HandleKHR_placeholder                          = 0;
11352 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11353 
11354     //=== VK_KHR_external_fence_fd ===
11355     PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0;
11356     PFN_vkGetFenceFdKHR    vkGetFenceFdKHR    = 0;
11357 
11358     //=== VK_KHR_performance_query ===
11359     PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR
11360       vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 0;
11361     PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR
11362                                   vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = 0;
11363     PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR                               = 0;
11364     PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR                               = 0;
11365 
11366     //=== VK_KHR_get_surface_capabilities2 ===
11367     PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR = 0;
11368     PFN_vkGetPhysicalDeviceSurfaceFormats2KHR      vkGetPhysicalDeviceSurfaceFormats2KHR      = 0;
11369 
11370     //=== VK_KHR_get_display_properties2 ===
11371     PFN_vkGetPhysicalDeviceDisplayProperties2KHR      vkGetPhysicalDeviceDisplayProperties2KHR      = 0;
11372     PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0;
11373     PFN_vkGetDisplayModeProperties2KHR                vkGetDisplayModeProperties2KHR                = 0;
11374     PFN_vkGetDisplayPlaneCapabilities2KHR             vkGetDisplayPlaneCapabilities2KHR             = 0;
11375 
11376 #if defined( VK_USE_PLATFORM_IOS_MVK )
11377     //=== VK_MVK_ios_surface ===
11378     PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0;
11379 #else
11380     PFN_dummy vkCreateIOSSurfaceMVK_placeholder                             = 0;
11381 #endif /*VK_USE_PLATFORM_IOS_MVK*/
11382 
11383 #if defined( VK_USE_PLATFORM_MACOS_MVK )
11384     //=== VK_MVK_macos_surface ===
11385     PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK = 0;
11386 #else
11387     PFN_dummy vkCreateMacOSSurfaceMVK_placeholder                           = 0;
11388 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
11389 
11390     //=== VK_EXT_debug_utils ===
11391     PFN_vkSetDebugUtilsObjectNameEXT    vkSetDebugUtilsObjectNameEXT    = 0;
11392     PFN_vkSetDebugUtilsObjectTagEXT     vkSetDebugUtilsObjectTagEXT     = 0;
11393     PFN_vkQueueBeginDebugUtilsLabelEXT  vkQueueBeginDebugUtilsLabelEXT  = 0;
11394     PFN_vkQueueEndDebugUtilsLabelEXT    vkQueueEndDebugUtilsLabelEXT    = 0;
11395     PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT = 0;
11396     PFN_vkCmdBeginDebugUtilsLabelEXT    vkCmdBeginDebugUtilsLabelEXT    = 0;
11397     PFN_vkCmdEndDebugUtilsLabelEXT      vkCmdEndDebugUtilsLabelEXT      = 0;
11398     PFN_vkCmdInsertDebugUtilsLabelEXT   vkCmdInsertDebugUtilsLabelEXT   = 0;
11399     PFN_vkCreateDebugUtilsMessengerEXT  vkCreateDebugUtilsMessengerEXT  = 0;
11400     PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0;
11401     PFN_vkSubmitDebugUtilsMessageEXT    vkSubmitDebugUtilsMessageEXT    = 0;
11402 
11403 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
11404     //=== VK_ANDROID_external_memory_android_hardware_buffer ===
11405     PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0;
11406     PFN_vkGetMemoryAndroidHardwareBufferANDROID     vkGetMemoryAndroidHardwareBufferANDROID     = 0;
11407 #else
11408     PFN_dummy vkGetAndroidHardwareBufferPropertiesANDROID_placeholder       = 0;
11409     PFN_dummy vkGetMemoryAndroidHardwareBufferANDROID_placeholder           = 0;
11410 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
11411 
11412     //=== VK_EXT_sample_locations ===
11413     PFN_vkCmdSetSampleLocationsEXT                  vkCmdSetSampleLocationsEXT                  = 0;
11414     PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0;
11415 
11416     //=== VK_KHR_get_memory_requirements2 ===
11417     PFN_vkGetImageMemoryRequirements2KHR       vkGetImageMemoryRequirements2KHR       = 0;
11418     PFN_vkGetBufferMemoryRequirements2KHR      vkGetBufferMemoryRequirements2KHR      = 0;
11419     PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0;
11420 
11421     //=== VK_KHR_acceleration_structure ===
11422     PFN_vkCreateAccelerationStructureKHR                 vkCreateAccelerationStructureKHR                 = 0;
11423     PFN_vkDestroyAccelerationStructureKHR                vkDestroyAccelerationStructureKHR                = 0;
11424     PFN_vkCmdBuildAccelerationStructuresKHR              vkCmdBuildAccelerationStructuresKHR              = 0;
11425     PFN_vkCmdBuildAccelerationStructuresIndirectKHR      vkCmdBuildAccelerationStructuresIndirectKHR      = 0;
11426     PFN_vkBuildAccelerationStructuresKHR                 vkBuildAccelerationStructuresKHR                 = 0;
11427     PFN_vkCopyAccelerationStructureKHR                   vkCopyAccelerationStructureKHR                   = 0;
11428     PFN_vkCopyAccelerationStructureToMemoryKHR           vkCopyAccelerationStructureToMemoryKHR           = 0;
11429     PFN_vkCopyMemoryToAccelerationStructureKHR           vkCopyMemoryToAccelerationStructureKHR           = 0;
11430     PFN_vkWriteAccelerationStructuresPropertiesKHR       vkWriteAccelerationStructuresPropertiesKHR       = 0;
11431     PFN_vkCmdCopyAccelerationStructureKHR                vkCmdCopyAccelerationStructureKHR                = 0;
11432     PFN_vkCmdCopyAccelerationStructureToMemoryKHR        vkCmdCopyAccelerationStructureToMemoryKHR        = 0;
11433     PFN_vkCmdCopyMemoryToAccelerationStructureKHR        vkCmdCopyMemoryToAccelerationStructureKHR        = 0;
11434     PFN_vkGetAccelerationStructureDeviceAddressKHR       vkGetAccelerationStructureDeviceAddressKHR       = 0;
11435     PFN_vkCmdWriteAccelerationStructuresPropertiesKHR    vkCmdWriteAccelerationStructuresPropertiesKHR    = 0;
11436     PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR = 0;
11437     PFN_vkGetAccelerationStructureBuildSizesKHR          vkGetAccelerationStructureBuildSizesKHR          = 0;
11438 
11439     //=== VK_KHR_sampler_ycbcr_conversion ===
11440     PFN_vkCreateSamplerYcbcrConversionKHR  vkCreateSamplerYcbcrConversionKHR  = 0;
11441     PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0;
11442 
11443     //=== VK_KHR_bind_memory2 ===
11444     PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0;
11445     PFN_vkBindImageMemory2KHR  vkBindImageMemory2KHR  = 0;
11446 
11447     //=== VK_EXT_image_drm_format_modifier ===
11448     PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0;
11449 
11450     //=== VK_EXT_validation_cache ===
11451     PFN_vkCreateValidationCacheEXT  vkCreateValidationCacheEXT  = 0;
11452     PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0;
11453     PFN_vkMergeValidationCachesEXT  vkMergeValidationCachesEXT  = 0;
11454     PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0;
11455 
11456     //=== VK_NV_shading_rate_image ===
11457     PFN_vkCmdBindShadingRateImageNV          vkCmdBindShadingRateImageNV          = 0;
11458     PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0;
11459     PFN_vkCmdSetCoarseSampleOrderNV          vkCmdSetCoarseSampleOrderNV          = 0;
11460 
11461     //=== VK_NV_ray_tracing ===
11462     PFN_vkCreateAccelerationStructureNV                vkCreateAccelerationStructureNV                = 0;
11463     PFN_vkDestroyAccelerationStructureNV               vkDestroyAccelerationStructureNV               = 0;
11464     PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0;
11465     PFN_vkBindAccelerationStructureMemoryNV            vkBindAccelerationStructureMemoryNV            = 0;
11466     PFN_vkCmdBuildAccelerationStructureNV              vkCmdBuildAccelerationStructureNV              = 0;
11467     PFN_vkCmdCopyAccelerationStructureNV               vkCmdCopyAccelerationStructureNV               = 0;
11468     PFN_vkCmdTraceRaysNV                               vkCmdTraceRaysNV                               = 0;
11469     PFN_vkCreateRayTracingPipelinesNV                  vkCreateRayTracingPipelinesNV                  = 0;
11470     PFN_vkGetRayTracingShaderGroupHandlesNV            vkGetRayTracingShaderGroupHandlesNV            = 0;
11471     PFN_vkGetAccelerationStructureHandleNV             vkGetAccelerationStructureHandleNV             = 0;
11472     PFN_vkCmdWriteAccelerationStructuresPropertiesNV   vkCmdWriteAccelerationStructuresPropertiesNV   = 0;
11473     PFN_vkCompileDeferredNV                            vkCompileDeferredNV                            = 0;
11474 
11475     //=== VK_KHR_maintenance3 ===
11476     PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0;
11477 
11478     //=== VK_KHR_draw_indirect_count ===
11479     PFN_vkCmdDrawIndirectCountKHR        vkCmdDrawIndirectCountKHR        = 0;
11480     PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0;
11481 
11482     //=== VK_EXT_external_memory_host ===
11483     PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT = 0;
11484 
11485     //=== VK_AMD_buffer_marker ===
11486     PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0;
11487 
11488     //=== VK_EXT_calibrated_timestamps ===
11489     PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0;
11490     PFN_vkGetCalibratedTimestampsEXT                   vkGetCalibratedTimestampsEXT                   = 0;
11491 
11492     //=== VK_NV_mesh_shader ===
11493     PFN_vkCmdDrawMeshTasksNV              vkCmdDrawMeshTasksNV              = 0;
11494     PFN_vkCmdDrawMeshTasksIndirectNV      vkCmdDrawMeshTasksIndirectNV      = 0;
11495     PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0;
11496 
11497     //=== VK_NV_scissor_exclusive ===
11498     PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0;
11499 
11500     //=== VK_NV_device_diagnostic_checkpoints ===
11501     PFN_vkCmdSetCheckpointNV       vkCmdSetCheckpointNV       = 0;
11502     PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0;
11503 
11504     //=== VK_KHR_timeline_semaphore ===
11505     PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR = 0;
11506     PFN_vkWaitSemaphoresKHR           vkWaitSemaphoresKHR           = 0;
11507     PFN_vkSignalSemaphoreKHR          vkSignalSemaphoreKHR          = 0;
11508 
11509     //=== VK_INTEL_performance_query ===
11510     PFN_vkInitializePerformanceApiINTEL         vkInitializePerformanceApiINTEL         = 0;
11511     PFN_vkUninitializePerformanceApiINTEL       vkUninitializePerformanceApiINTEL       = 0;
11512     PFN_vkCmdSetPerformanceMarkerINTEL          vkCmdSetPerformanceMarkerINTEL          = 0;
11513     PFN_vkCmdSetPerformanceStreamMarkerINTEL    vkCmdSetPerformanceStreamMarkerINTEL    = 0;
11514     PFN_vkCmdSetPerformanceOverrideINTEL        vkCmdSetPerformanceOverrideINTEL        = 0;
11515     PFN_vkAcquirePerformanceConfigurationINTEL  vkAcquirePerformanceConfigurationINTEL  = 0;
11516     PFN_vkReleasePerformanceConfigurationINTEL  vkReleasePerformanceConfigurationINTEL  = 0;
11517     PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0;
11518     PFN_vkGetPerformanceParameterINTEL          vkGetPerformanceParameterINTEL          = 0;
11519 
11520     //=== VK_AMD_display_native_hdr ===
11521     PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0;
11522 
11523 #if defined( VK_USE_PLATFORM_FUCHSIA )
11524     //=== VK_FUCHSIA_imagepipe_surface ===
11525     PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0;
11526 #else
11527     PFN_dummy vkCreateImagePipeSurfaceFUCHSIA_placeholder                   = 0;
11528 #endif /*VK_USE_PLATFORM_FUCHSIA*/
11529 
11530 #if defined( VK_USE_PLATFORM_METAL_EXT )
11531     //=== VK_EXT_metal_surface ===
11532     PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0;
11533 #else
11534     PFN_dummy vkCreateMetalSurfaceEXT_placeholder                           = 0;
11535 #endif /*VK_USE_PLATFORM_METAL_EXT*/
11536 
11537     //=== VK_KHR_fragment_shading_rate ===
11538     PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR = 0;
11539     PFN_vkCmdSetFragmentShadingRateKHR             vkCmdSetFragmentShadingRateKHR             = 0;
11540 
11541     //=== VK_EXT_buffer_device_address ===
11542     PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0;
11543 
11544     //=== VK_EXT_tooling_info ===
11545     PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT = 0;
11546 
11547     //=== VK_KHR_present_wait ===
11548     PFN_vkWaitForPresentKHR vkWaitForPresentKHR = 0;
11549 
11550     //=== VK_NV_cooperative_matrix ===
11551     PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 0;
11552 
11553     //=== VK_NV_coverage_reduction_mode ===
11554     PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
11555       vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0;
11556 
11557 #if defined( VK_USE_PLATFORM_WIN32_KHR )
11558     //=== VK_EXT_full_screen_exclusive ===
11559     PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT = 0;
11560     PFN_vkAcquireFullScreenExclusiveModeEXT        vkAcquireFullScreenExclusiveModeEXT        = 0;
11561     PFN_vkReleaseFullScreenExclusiveModeEXT        vkReleaseFullScreenExclusiveModeEXT        = 0;
11562     PFN_vkGetDeviceGroupSurfacePresentModes2EXT    vkGetDeviceGroupSurfacePresentModes2EXT    = 0;
11563 #else
11564     PFN_dummy vkGetPhysicalDeviceSurfacePresentModes2EXT_placeholder        = 0;
11565     PFN_dummy vkAcquireFullScreenExclusiveModeEXT_placeholder               = 0;
11566     PFN_dummy vkReleaseFullScreenExclusiveModeEXT_placeholder               = 0;
11567     PFN_dummy vkGetDeviceGroupSurfacePresentModes2EXT_placeholder           = 0;
11568 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11569 
11570     //=== VK_EXT_headless_surface ===
11571     PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0;
11572 
11573     //=== VK_KHR_buffer_device_address ===
11574     PFN_vkGetBufferDeviceAddressKHR              vkGetBufferDeviceAddressKHR              = 0;
11575     PFN_vkGetBufferOpaqueCaptureAddressKHR       vkGetBufferOpaqueCaptureAddressKHR       = 0;
11576     PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR = 0;
11577 
11578     //=== VK_EXT_line_rasterization ===
11579     PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0;
11580 
11581     //=== VK_EXT_host_query_reset ===
11582     PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0;
11583 
11584     //=== VK_EXT_extended_dynamic_state ===
11585     PFN_vkCmdSetCullModeEXT              vkCmdSetCullModeEXT              = 0;
11586     PFN_vkCmdSetFrontFaceEXT             vkCmdSetFrontFaceEXT             = 0;
11587     PFN_vkCmdSetPrimitiveTopologyEXT     vkCmdSetPrimitiveTopologyEXT     = 0;
11588     PFN_vkCmdSetViewportWithCountEXT     vkCmdSetViewportWithCountEXT     = 0;
11589     PFN_vkCmdSetScissorWithCountEXT      vkCmdSetScissorWithCountEXT      = 0;
11590     PFN_vkCmdBindVertexBuffers2EXT       vkCmdBindVertexBuffers2EXT       = 0;
11591     PFN_vkCmdSetDepthTestEnableEXT       vkCmdSetDepthTestEnableEXT       = 0;
11592     PFN_vkCmdSetDepthWriteEnableEXT      vkCmdSetDepthWriteEnableEXT      = 0;
11593     PFN_vkCmdSetDepthCompareOpEXT        vkCmdSetDepthCompareOpEXT        = 0;
11594     PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT = 0;
11595     PFN_vkCmdSetStencilTestEnableEXT     vkCmdSetStencilTestEnableEXT     = 0;
11596     PFN_vkCmdSetStencilOpEXT             vkCmdSetStencilOpEXT             = 0;
11597 
11598     //=== VK_KHR_deferred_host_operations ===
11599     PFN_vkCreateDeferredOperationKHR            vkCreateDeferredOperationKHR            = 0;
11600     PFN_vkDestroyDeferredOperationKHR           vkDestroyDeferredOperationKHR           = 0;
11601     PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR = 0;
11602     PFN_vkGetDeferredOperationResultKHR         vkGetDeferredOperationResultKHR         = 0;
11603     PFN_vkDeferredOperationJoinKHR              vkDeferredOperationJoinKHR              = 0;
11604 
11605     //=== VK_KHR_pipeline_executable_properties ===
11606     PFN_vkGetPipelineExecutablePropertiesKHR              vkGetPipelineExecutablePropertiesKHR              = 0;
11607     PFN_vkGetPipelineExecutableStatisticsKHR              vkGetPipelineExecutableStatisticsKHR              = 0;
11608     PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0;
11609 
11610     //=== VK_NV_device_generated_commands ===
11611     PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV = 0;
11612     PFN_vkCmdPreprocessGeneratedCommandsNV         vkCmdPreprocessGeneratedCommandsNV         = 0;
11613     PFN_vkCmdExecuteGeneratedCommandsNV            vkCmdExecuteGeneratedCommandsNV            = 0;
11614     PFN_vkCmdBindPipelineShaderGroupNV             vkCmdBindPipelineShaderGroupNV             = 0;
11615     PFN_vkCreateIndirectCommandsLayoutNV           vkCreateIndirectCommandsLayoutNV           = 0;
11616     PFN_vkDestroyIndirectCommandsLayoutNV          vkDestroyIndirectCommandsLayoutNV          = 0;
11617 
11618     //=== VK_EXT_acquire_drm_display ===
11619     PFN_vkAcquireDrmDisplayEXT vkAcquireDrmDisplayEXT = 0;
11620     PFN_vkGetDrmDisplayEXT     vkGetDrmDisplayEXT     = 0;
11621 
11622     //=== VK_EXT_private_data ===
11623     PFN_vkCreatePrivateDataSlotEXT  vkCreatePrivateDataSlotEXT  = 0;
11624     PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT = 0;
11625     PFN_vkSetPrivateDataEXT         vkSetPrivateDataEXT         = 0;
11626     PFN_vkGetPrivateDataEXT         vkGetPrivateDataEXT         = 0;
11627 
11628 #if defined( VK_ENABLE_BETA_EXTENSIONS )
11629     //=== VK_KHR_video_encode_queue ===
11630     PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR = 0;
11631 #else
11632     PFN_dummy vkCmdEncodeVideoKHR_placeholder                               = 0;
11633 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
11634 
11635     //=== VK_KHR_synchronization2 ===
11636     PFN_vkCmdSetEvent2KHR           vkCmdSetEvent2KHR           = 0;
11637     PFN_vkCmdResetEvent2KHR         vkCmdResetEvent2KHR         = 0;
11638     PFN_vkCmdWaitEvents2KHR         vkCmdWaitEvents2KHR         = 0;
11639     PFN_vkCmdPipelineBarrier2KHR    vkCmdPipelineBarrier2KHR    = 0;
11640     PFN_vkCmdWriteTimestamp2KHR     vkCmdWriteTimestamp2KHR     = 0;
11641     PFN_vkQueueSubmit2KHR           vkQueueSubmit2KHR           = 0;
11642     PFN_vkCmdWriteBufferMarker2AMD  vkCmdWriteBufferMarker2AMD  = 0;
11643     PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV = 0;
11644 
11645     //=== VK_NV_fragment_shading_rate_enums ===
11646     PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV = 0;
11647 
11648     //=== VK_KHR_copy_commands2 ===
11649     PFN_vkCmdCopyBuffer2KHR        vkCmdCopyBuffer2KHR        = 0;
11650     PFN_vkCmdCopyImage2KHR         vkCmdCopyImage2KHR         = 0;
11651     PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR = 0;
11652     PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR = 0;
11653     PFN_vkCmdBlitImage2KHR         vkCmdBlitImage2KHR         = 0;
11654     PFN_vkCmdResolveImage2KHR      vkCmdResolveImage2KHR      = 0;
11655 
11656 #if defined( VK_USE_PLATFORM_WIN32_KHR )
11657     //=== VK_NV_acquire_winrt_display ===
11658     PFN_vkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNV = 0;
11659     PFN_vkGetWinrtDisplayNV     vkGetWinrtDisplayNV     = 0;
11660 #else
11661     PFN_dummy vkAcquireWinrtDisplayNV_placeholder                           = 0;
11662     PFN_dummy vkGetWinrtDisplayNV_placeholder                               = 0;
11663 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11664 
11665 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
11666     //=== VK_EXT_directfb_surface ===
11667     PFN_vkCreateDirectFBSurfaceEXT                        vkCreateDirectFBSurfaceEXT                        = 0;
11668     PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0;
11669 #else
11670     PFN_dummy vkCreateDirectFBSurfaceEXT_placeholder                        = 0;
11671     PFN_dummy vkGetPhysicalDeviceDirectFBPresentationSupportEXT_placeholder = 0;
11672 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
11673 
11674     //=== VK_KHR_ray_tracing_pipeline ===
11675     PFN_vkCmdTraceRaysKHR                                 vkCmdTraceRaysKHR                                 = 0;
11676     PFN_vkCreateRayTracingPipelinesKHR                    vkCreateRayTracingPipelinesKHR                    = 0;
11677     PFN_vkGetRayTracingShaderGroupHandlesKHR              vkGetRayTracingShaderGroupHandlesKHR              = 0;
11678     PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0;
11679     PFN_vkCmdTraceRaysIndirectKHR                         vkCmdTraceRaysIndirectKHR                         = 0;
11680     PFN_vkGetRayTracingShaderGroupStackSizeKHR            vkGetRayTracingShaderGroupStackSizeKHR            = 0;
11681     PFN_vkCmdSetRayTracingPipelineStackSizeKHR            vkCmdSetRayTracingPipelineStackSizeKHR            = 0;
11682 
11683     //=== VK_EXT_vertex_input_dynamic_state ===
11684     PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT = 0;
11685 
11686 #if defined( VK_USE_PLATFORM_FUCHSIA )
11687     //=== VK_FUCHSIA_external_memory ===
11688     PFN_vkGetMemoryZirconHandleFUCHSIA           vkGetMemoryZirconHandleFUCHSIA           = 0;
11689     PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA = 0;
11690 #else
11691     PFN_dummy vkGetMemoryZirconHandleFUCHSIA_placeholder                    = 0;
11692     PFN_dummy vkGetMemoryZirconHandlePropertiesFUCHSIA_placeholder          = 0;
11693 #endif /*VK_USE_PLATFORM_FUCHSIA*/
11694 
11695 #if defined( VK_USE_PLATFORM_FUCHSIA )
11696     //=== VK_FUCHSIA_external_semaphore ===
11697     PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA = 0;
11698     PFN_vkGetSemaphoreZirconHandleFUCHSIA    vkGetSemaphoreZirconHandleFUCHSIA    = 0;
11699 #else
11700     PFN_dummy vkImportSemaphoreZirconHandleFUCHSIA_placeholder              = 0;
11701     PFN_dummy vkGetSemaphoreZirconHandleFUCHSIA_placeholder                 = 0;
11702 #endif /*VK_USE_PLATFORM_FUCHSIA*/
11703 
11704 #if defined( VK_USE_PLATFORM_FUCHSIA )
11705     //=== VK_FUCHSIA_buffer_collection ===
11706     PFN_vkCreateBufferCollectionFUCHSIA               vkCreateBufferCollectionFUCHSIA               = 0;
11707     PFN_vkSetBufferCollectionImageConstraintsFUCHSIA  vkSetBufferCollectionImageConstraintsFUCHSIA  = 0;
11708     PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA vkSetBufferCollectionBufferConstraintsFUCHSIA = 0;
11709     PFN_vkDestroyBufferCollectionFUCHSIA              vkDestroyBufferCollectionFUCHSIA              = 0;
11710     PFN_vkGetBufferCollectionPropertiesFUCHSIA        vkGetBufferCollectionPropertiesFUCHSIA        = 0;
11711 #else
11712     PFN_dummy vkCreateBufferCollectionFUCHSIA_placeholder                   = 0;
11713     PFN_dummy vkSetBufferCollectionImageConstraintsFUCHSIA_placeholder      = 0;
11714     PFN_dummy vkSetBufferCollectionBufferConstraintsFUCHSIA_placeholder     = 0;
11715     PFN_dummy vkDestroyBufferCollectionFUCHSIA_placeholder                  = 0;
11716     PFN_dummy vkGetBufferCollectionPropertiesFUCHSIA_placeholder            = 0;
11717 #endif /*VK_USE_PLATFORM_FUCHSIA*/
11718 
11719     //=== VK_HUAWEI_subpass_shading ===
11720     PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = 0;
11721     PFN_vkCmdSubpassShadingHUAWEI                       vkCmdSubpassShadingHUAWEI                       = 0;
11722 
11723     //=== VK_HUAWEI_invocation_mask ===
11724     PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI = 0;
11725 
11726     //=== VK_NV_external_memory_rdma ===
11727     PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV = 0;
11728 
11729     //=== VK_EXT_extended_dynamic_state2 ===
11730     PFN_vkCmdSetPatchControlPointsEXT      vkCmdSetPatchControlPointsEXT      = 0;
11731     PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT = 0;
11732     PFN_vkCmdSetDepthBiasEnableEXT         vkCmdSetDepthBiasEnableEXT         = 0;
11733     PFN_vkCmdSetLogicOpEXT                 vkCmdSetLogicOpEXT                 = 0;
11734     PFN_vkCmdSetPrimitiveRestartEnableEXT  vkCmdSetPrimitiveRestartEnableEXT  = 0;
11735 
11736 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
11737     //=== VK_QNX_screen_surface ===
11738     PFN_vkCreateScreenSurfaceQNX                        vkCreateScreenSurfaceQNX                        = 0;
11739     PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX = 0;
11740 #else
11741     PFN_dummy vkCreateScreenSurfaceQNX_placeholder                          = 0;
11742     PFN_dummy vkGetPhysicalDeviceScreenPresentationSupportQNX_placeholder   = 0;
11743 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
11744 
11745     //=== VK_EXT_color_write_enable ===
11746     PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT = 0;
11747 
11748     //=== VK_EXT_multi_draw ===
11749     PFN_vkCmdDrawMultiEXT        vkCmdDrawMultiEXT        = 0;
11750     PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT = 0;
11751 
11752     //=== VK_EXT_pageable_device_local_memory ===
11753     PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT = 0;
11754 
11755     //=== VK_KHR_maintenance4 ===
11756     PFN_vkGetDeviceBufferMemoryRequirementsKHR      vkGetDeviceBufferMemoryRequirementsKHR      = 0;
11757     PFN_vkGetDeviceImageMemoryRequirementsKHR       vkGetDeviceImageMemoryRequirementsKHR       = 0;
11758     PFN_vkGetDeviceImageSparseMemoryRequirementsKHR vkGetDeviceImageSparseMemoryRequirementsKHR = 0;
11759 
11760   public:
11761     DispatchLoaderDynamic() VULKAN_HPP_NOEXCEPT                                    = default;
11762     DispatchLoaderDynamic( DispatchLoaderDynamic const & rhs ) VULKAN_HPP_NOEXCEPT = default;
11763 
11764 #if !defined( VK_NO_PROTOTYPES )
11765     // This interface is designed to be used for per-device function pointers in combination with a linked vulkan
11766     // library.
11767     template <typename DynamicLoader>
init(VULKAN_HPP_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::Device const & device,DynamicLoader const & dl)11768     void init( VULKAN_HPP_NAMESPACE::Instance const & instance,
11769                VULKAN_HPP_NAMESPACE::Device const &   device,
11770                DynamicLoader const &                  dl ) VULKAN_HPP_NOEXCEPT
11771     {
11772       PFN_vkGetInstanceProcAddr getInstanceProcAddr =
11773         dl.template getProcAddress<PFN_vkGetInstanceProcAddr>( "vkGetInstanceProcAddr" );
11774       PFN_vkGetDeviceProcAddr getDeviceProcAddr =
11775         dl.template getProcAddress<PFN_vkGetDeviceProcAddr>( "vkGetDeviceProcAddr" );
11776       init( static_cast<VkInstance>( instance ),
11777             getInstanceProcAddr,
11778             static_cast<VkDevice>( device ),
11779             device ? getDeviceProcAddr : nullptr );
11780     }
11781 
11782     // This interface is designed to be used for per-device function pointers in combination with a linked vulkan
11783     // library.
11784     template <typename DynamicLoader
11785 #  if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
11786               = VULKAN_HPP_NAMESPACE::DynamicLoader
11787 #  endif
11788               >
init(VULKAN_HPP_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::Device const & device)11789     void init( VULKAN_HPP_NAMESPACE::Instance const & instance,
11790                VULKAN_HPP_NAMESPACE::Device const &   device ) VULKAN_HPP_NOEXCEPT
11791     {
11792       static DynamicLoader dl;
11793       init( instance, device, dl );
11794     }
11795 #endif  // !defined( VK_NO_PROTOTYPES )
11796 
DispatchLoaderDynamic(PFN_vkGetInstanceProcAddr getInstanceProcAddr)11797     DispatchLoaderDynamic( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) VULKAN_HPP_NOEXCEPT
11798     {
11799       init( getInstanceProcAddr );
11800     }
11801 
init(PFN_vkGetInstanceProcAddr getInstanceProcAddr)11802     void init( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) VULKAN_HPP_NOEXCEPT
11803     {
11804       VULKAN_HPP_ASSERT( getInstanceProcAddr );
11805 
11806       vkGetInstanceProcAddr = getInstanceProcAddr;
11807 
11808       //=== VK_VERSION_1_0 ===
11809       vkCreateInstance = PFN_vkCreateInstance( vkGetInstanceProcAddr( NULL, "vkCreateInstance" ) );
11810       vkEnumerateInstanceExtensionProperties = PFN_vkEnumerateInstanceExtensionProperties(
11811         vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceExtensionProperties" ) );
11812       vkEnumerateInstanceLayerProperties =
11813         PFN_vkEnumerateInstanceLayerProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceLayerProperties" ) );
11814 
11815       //=== VK_VERSION_1_1 ===
11816       vkEnumerateInstanceVersion =
11817         PFN_vkEnumerateInstanceVersion( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceVersion" ) );
11818     }
11819 
11820     // This interface does not require a linked vulkan library.
DispatchLoaderDynamic(VkInstance instance,PFN_vkGetInstanceProcAddr getInstanceProcAddr,VkDevice device={},PFN_vkGetDeviceProcAddr getDeviceProcAddr=nullptr)11821     DispatchLoaderDynamic( VkInstance                instance,
11822                            PFN_vkGetInstanceProcAddr getInstanceProcAddr,
11823                            VkDevice                  device            = {},
11824                            PFN_vkGetDeviceProcAddr   getDeviceProcAddr = nullptr ) VULKAN_HPP_NOEXCEPT
11825     {
11826       init( instance, getInstanceProcAddr, device, getDeviceProcAddr );
11827     }
11828 
11829     // This interface does not require a linked vulkan library.
init(VkInstance instance,PFN_vkGetInstanceProcAddr getInstanceProcAddr,VkDevice device={},PFN_vkGetDeviceProcAddr=nullptr)11830     void init( VkInstance                instance,
11831                PFN_vkGetInstanceProcAddr getInstanceProcAddr,
11832                VkDevice                  device              = {},
11833                PFN_vkGetDeviceProcAddr /*getDeviceProcAddr*/ = nullptr ) VULKAN_HPP_NOEXCEPT
11834     {
11835       VULKAN_HPP_ASSERT( instance && getInstanceProcAddr );
11836       vkGetInstanceProcAddr = getInstanceProcAddr;
11837       init( VULKAN_HPP_NAMESPACE::Instance( instance ) );
11838       if ( device )
11839       {
11840         init( VULKAN_HPP_NAMESPACE::Device( device ) );
11841       }
11842     }
11843 
init(VULKAN_HPP_NAMESPACE::Instance instanceCpp)11844     void init( VULKAN_HPP_NAMESPACE::Instance instanceCpp ) VULKAN_HPP_NOEXCEPT
11845     {
11846       VkInstance instance = static_cast<VkInstance>( instanceCpp );
11847 
11848       //=== VK_VERSION_1_0 ===
11849       vkDestroyInstance = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) );
11850       vkEnumeratePhysicalDevices =
11851         PFN_vkEnumeratePhysicalDevices( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ) );
11852       vkGetPhysicalDeviceFeatures =
11853         PFN_vkGetPhysicalDeviceFeatures( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ) );
11854       vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties(
11855         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ) );
11856       vkGetPhysicalDeviceImageFormatProperties = PFN_vkGetPhysicalDeviceImageFormatProperties(
11857         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ) );
11858       vkGetPhysicalDeviceProperties =
11859         PFN_vkGetPhysicalDeviceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ) );
11860       vkGetPhysicalDeviceQueueFamilyProperties = PFN_vkGetPhysicalDeviceQueueFamilyProperties(
11861         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) );
11862       vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties(
11863         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) );
11864       vkGetInstanceProcAddr = PFN_vkGetInstanceProcAddr( vkGetInstanceProcAddr( instance, "vkGetInstanceProcAddr" ) );
11865       vkGetDeviceProcAddr   = PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ) );
11866       vkCreateDevice        = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) );
11867       vkDestroyDevice       = PFN_vkDestroyDevice( vkGetInstanceProcAddr( instance, "vkDestroyDevice" ) );
11868       vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties(
11869         vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) );
11870       vkEnumerateDeviceLayerProperties =
11871         PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) );
11872       vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue" ) );
11873       vkQueueSubmit    = PFN_vkQueueSubmit( vkGetInstanceProcAddr( instance, "vkQueueSubmit" ) );
11874       vkQueueWaitIdle  = PFN_vkQueueWaitIdle( vkGetInstanceProcAddr( instance, "vkQueueWaitIdle" ) );
11875       vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetInstanceProcAddr( instance, "vkDeviceWaitIdle" ) );
11876       vkAllocateMemory = PFN_vkAllocateMemory( vkGetInstanceProcAddr( instance, "vkAllocateMemory" ) );
11877       vkFreeMemory     = PFN_vkFreeMemory( vkGetInstanceProcAddr( instance, "vkFreeMemory" ) );
11878       vkMapMemory      = PFN_vkMapMemory( vkGetInstanceProcAddr( instance, "vkMapMemory" ) );
11879       vkUnmapMemory    = PFN_vkUnmapMemory( vkGetInstanceProcAddr( instance, "vkUnmapMemory" ) );
11880       vkFlushMappedMemoryRanges =
11881         PFN_vkFlushMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkFlushMappedMemoryRanges" ) );
11882       vkInvalidateMappedMemoryRanges =
11883         PFN_vkInvalidateMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkInvalidateMappedMemoryRanges" ) );
11884       vkGetDeviceMemoryCommitment =
11885         PFN_vkGetDeviceMemoryCommitment( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryCommitment" ) );
11886       vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetInstanceProcAddr( instance, "vkBindBufferMemory" ) );
11887       vkBindImageMemory  = PFN_vkBindImageMemory( vkGetInstanceProcAddr( instance, "vkBindImageMemory" ) );
11888       vkGetBufferMemoryRequirements =
11889         PFN_vkGetBufferMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements" ) );
11890       vkGetImageMemoryRequirements =
11891         PFN_vkGetImageMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements" ) );
11892       vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements(
11893         vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements" ) );
11894       vkGetPhysicalDeviceSparseImageFormatProperties = PFN_vkGetPhysicalDeviceSparseImageFormatProperties(
11895         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ) );
11896       vkQueueBindSparse     = PFN_vkQueueBindSparse( vkGetInstanceProcAddr( instance, "vkQueueBindSparse" ) );
11897       vkCreateFence         = PFN_vkCreateFence( vkGetInstanceProcAddr( instance, "vkCreateFence" ) );
11898       vkDestroyFence        = PFN_vkDestroyFence( vkGetInstanceProcAddr( instance, "vkDestroyFence" ) );
11899       vkResetFences         = PFN_vkResetFences( vkGetInstanceProcAddr( instance, "vkResetFences" ) );
11900       vkGetFenceStatus      = PFN_vkGetFenceStatus( vkGetInstanceProcAddr( instance, "vkGetFenceStatus" ) );
11901       vkWaitForFences       = PFN_vkWaitForFences( vkGetInstanceProcAddr( instance, "vkWaitForFences" ) );
11902       vkCreateSemaphore     = PFN_vkCreateSemaphore( vkGetInstanceProcAddr( instance, "vkCreateSemaphore" ) );
11903       vkDestroySemaphore    = PFN_vkDestroySemaphore( vkGetInstanceProcAddr( instance, "vkDestroySemaphore" ) );
11904       vkCreateEvent         = PFN_vkCreateEvent( vkGetInstanceProcAddr( instance, "vkCreateEvent" ) );
11905       vkDestroyEvent        = PFN_vkDestroyEvent( vkGetInstanceProcAddr( instance, "vkDestroyEvent" ) );
11906       vkGetEventStatus      = PFN_vkGetEventStatus( vkGetInstanceProcAddr( instance, "vkGetEventStatus" ) );
11907       vkSetEvent            = PFN_vkSetEvent( vkGetInstanceProcAddr( instance, "vkSetEvent" ) );
11908       vkResetEvent          = PFN_vkResetEvent( vkGetInstanceProcAddr( instance, "vkResetEvent" ) );
11909       vkCreateQueryPool     = PFN_vkCreateQueryPool( vkGetInstanceProcAddr( instance, "vkCreateQueryPool" ) );
11910       vkDestroyQueryPool    = PFN_vkDestroyQueryPool( vkGetInstanceProcAddr( instance, "vkDestroyQueryPool" ) );
11911       vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetInstanceProcAddr( instance, "vkGetQueryPoolResults" ) );
11912       vkCreateBuffer        = PFN_vkCreateBuffer( vkGetInstanceProcAddr( instance, "vkCreateBuffer" ) );
11913       vkDestroyBuffer       = PFN_vkDestroyBuffer( vkGetInstanceProcAddr( instance, "vkDestroyBuffer" ) );
11914       vkCreateBufferView    = PFN_vkCreateBufferView( vkGetInstanceProcAddr( instance, "vkCreateBufferView" ) );
11915       vkDestroyBufferView   = PFN_vkDestroyBufferView( vkGetInstanceProcAddr( instance, "vkDestroyBufferView" ) );
11916       vkCreateImage         = PFN_vkCreateImage( vkGetInstanceProcAddr( instance, "vkCreateImage" ) );
11917       vkDestroyImage        = PFN_vkDestroyImage( vkGetInstanceProcAddr( instance, "vkDestroyImage" ) );
11918       vkGetImageSubresourceLayout =
11919         PFN_vkGetImageSubresourceLayout( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout" ) );
11920       vkCreateImageView     = PFN_vkCreateImageView( vkGetInstanceProcAddr( instance, "vkCreateImageView" ) );
11921       vkDestroyImageView    = PFN_vkDestroyImageView( vkGetInstanceProcAddr( instance, "vkDestroyImageView" ) );
11922       vkCreateShaderModule  = PFN_vkCreateShaderModule( vkGetInstanceProcAddr( instance, "vkCreateShaderModule" ) );
11923       vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetInstanceProcAddr( instance, "vkDestroyShaderModule" ) );
11924       vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetInstanceProcAddr( instance, "vkCreatePipelineCache" ) );
11925       vkDestroyPipelineCache =
11926         PFN_vkDestroyPipelineCache( vkGetInstanceProcAddr( instance, "vkDestroyPipelineCache" ) );
11927       vkGetPipelineCacheData =
11928         PFN_vkGetPipelineCacheData( vkGetInstanceProcAddr( instance, "vkGetPipelineCacheData" ) );
11929       vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetInstanceProcAddr( instance, "vkMergePipelineCaches" ) );
11930       vkCreateGraphicsPipelines =
11931         PFN_vkCreateGraphicsPipelines( vkGetInstanceProcAddr( instance, "vkCreateGraphicsPipelines" ) );
11932       vkCreateComputePipelines =
11933         PFN_vkCreateComputePipelines( vkGetInstanceProcAddr( instance, "vkCreateComputePipelines" ) );
11934       vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetInstanceProcAddr( instance, "vkDestroyPipeline" ) );
11935       vkCreatePipelineLayout =
11936         PFN_vkCreatePipelineLayout( vkGetInstanceProcAddr( instance, "vkCreatePipelineLayout" ) );
11937       vkDestroyPipelineLayout =
11938         PFN_vkDestroyPipelineLayout( vkGetInstanceProcAddr( instance, "vkDestroyPipelineLayout" ) );
11939       vkCreateSampler  = PFN_vkCreateSampler( vkGetInstanceProcAddr( instance, "vkCreateSampler" ) );
11940       vkDestroySampler = PFN_vkDestroySampler( vkGetInstanceProcAddr( instance, "vkDestroySampler" ) );
11941       vkCreateDescriptorSetLayout =
11942         PFN_vkCreateDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkCreateDescriptorSetLayout" ) );
11943       vkDestroyDescriptorSetLayout =
11944         PFN_vkDestroyDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorSetLayout" ) );
11945       vkCreateDescriptorPool =
11946         PFN_vkCreateDescriptorPool( vkGetInstanceProcAddr( instance, "vkCreateDescriptorPool" ) );
11947       vkDestroyDescriptorPool =
11948         PFN_vkDestroyDescriptorPool( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorPool" ) );
11949       vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetInstanceProcAddr( instance, "vkResetDescriptorPool" ) );
11950       vkAllocateDescriptorSets =
11951         PFN_vkAllocateDescriptorSets( vkGetInstanceProcAddr( instance, "vkAllocateDescriptorSets" ) );
11952       vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetInstanceProcAddr( instance, "vkFreeDescriptorSets" ) );
11953       vkUpdateDescriptorSets =
11954         PFN_vkUpdateDescriptorSets( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSets" ) );
11955       vkCreateFramebuffer  = PFN_vkCreateFramebuffer( vkGetInstanceProcAddr( instance, "vkCreateFramebuffer" ) );
11956       vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetInstanceProcAddr( instance, "vkDestroyFramebuffer" ) );
11957       vkCreateRenderPass   = PFN_vkCreateRenderPass( vkGetInstanceProcAddr( instance, "vkCreateRenderPass" ) );
11958       vkDestroyRenderPass  = PFN_vkDestroyRenderPass( vkGetInstanceProcAddr( instance, "vkDestroyRenderPass" ) );
11959       vkGetRenderAreaGranularity =
11960         PFN_vkGetRenderAreaGranularity( vkGetInstanceProcAddr( instance, "vkGetRenderAreaGranularity" ) );
11961       vkCreateCommandPool  = PFN_vkCreateCommandPool( vkGetInstanceProcAddr( instance, "vkCreateCommandPool" ) );
11962       vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetInstanceProcAddr( instance, "vkDestroyCommandPool" ) );
11963       vkResetCommandPool   = PFN_vkResetCommandPool( vkGetInstanceProcAddr( instance, "vkResetCommandPool" ) );
11964       vkAllocateCommandBuffers =
11965         PFN_vkAllocateCommandBuffers( vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers" ) );
11966       vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetInstanceProcAddr( instance, "vkFreeCommandBuffers" ) );
11967       vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetInstanceProcAddr( instance, "vkBeginCommandBuffer" ) );
11968       vkEndCommandBuffer   = PFN_vkEndCommandBuffer( vkGetInstanceProcAddr( instance, "vkEndCommandBuffer" ) );
11969       vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetInstanceProcAddr( instance, "vkResetCommandBuffer" ) );
11970       vkCmdBindPipeline    = PFN_vkCmdBindPipeline( vkGetInstanceProcAddr( instance, "vkCmdBindPipeline" ) );
11971       vkCmdSetViewport     = PFN_vkCmdSetViewport( vkGetInstanceProcAddr( instance, "vkCmdSetViewport" ) );
11972       vkCmdSetScissor      = PFN_vkCmdSetScissor( vkGetInstanceProcAddr( instance, "vkCmdSetScissor" ) );
11973       vkCmdSetLineWidth    = PFN_vkCmdSetLineWidth( vkGetInstanceProcAddr( instance, "vkCmdSetLineWidth" ) );
11974       vkCmdSetDepthBias    = PFN_vkCmdSetDepthBias( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias" ) );
11975       vkCmdSetBlendConstants =
11976         PFN_vkCmdSetBlendConstants( vkGetInstanceProcAddr( instance, "vkCmdSetBlendConstants" ) );
11977       vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBounds" ) );
11978       vkCmdSetStencilCompareMask =
11979         PFN_vkCmdSetStencilCompareMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilCompareMask" ) );
11980       vkCmdSetStencilWriteMask =
11981         PFN_vkCmdSetStencilWriteMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilWriteMask" ) );
11982       vkCmdSetStencilReference =
11983         PFN_vkCmdSetStencilReference( vkGetInstanceProcAddr( instance, "vkCmdSetStencilReference" ) );
11984       vkCmdBindDescriptorSets =
11985         PFN_vkCmdBindDescriptorSets( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets" ) );
11986       vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer" ) );
11987       vkCmdBindVertexBuffers =
11988         PFN_vkCmdBindVertexBuffers( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers" ) );
11989       vkCmdDraw         = PFN_vkCmdDraw( vkGetInstanceProcAddr( instance, "vkCmdDraw" ) );
11990       vkCmdDrawIndexed  = PFN_vkCmdDrawIndexed( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexed" ) );
11991       vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirect" ) );
11992       vkCmdDrawIndexedIndirect =
11993         PFN_vkCmdDrawIndexedIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirect" ) );
11994       vkCmdDispatch         = PFN_vkCmdDispatch( vkGetInstanceProcAddr( instance, "vkCmdDispatch" ) );
11995       vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetInstanceProcAddr( instance, "vkCmdDispatchIndirect" ) );
11996       vkCmdCopyBuffer       = PFN_vkCmdCopyBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer" ) );
11997       vkCmdCopyImage        = PFN_vkCmdCopyImage( vkGetInstanceProcAddr( instance, "vkCmdCopyImage" ) );
11998       vkCmdBlitImage        = PFN_vkCmdBlitImage( vkGetInstanceProcAddr( instance, "vkCmdBlitImage" ) );
11999       vkCmdCopyBufferToImage =
12000         PFN_vkCmdCopyBufferToImage( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage" ) );
12001       vkCmdCopyImageToBuffer =
12002         PFN_vkCmdCopyImageToBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer" ) );
12003       vkCmdUpdateBuffer    = PFN_vkCmdUpdateBuffer( vkGetInstanceProcAddr( instance, "vkCmdUpdateBuffer" ) );
12004       vkCmdFillBuffer      = PFN_vkCmdFillBuffer( vkGetInstanceProcAddr( instance, "vkCmdFillBuffer" ) );
12005       vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetInstanceProcAddr( instance, "vkCmdClearColorImage" ) );
12006       vkCmdClearDepthStencilImage =
12007         PFN_vkCmdClearDepthStencilImage( vkGetInstanceProcAddr( instance, "vkCmdClearDepthStencilImage" ) );
12008       vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetInstanceProcAddr( instance, "vkCmdClearAttachments" ) );
12009       vkCmdResolveImage     = PFN_vkCmdResolveImage( vkGetInstanceProcAddr( instance, "vkCmdResolveImage" ) );
12010       vkCmdSetEvent         = PFN_vkCmdSetEvent( vkGetInstanceProcAddr( instance, "vkCmdSetEvent" ) );
12011       vkCmdResetEvent       = PFN_vkCmdResetEvent( vkGetInstanceProcAddr( instance, "vkCmdResetEvent" ) );
12012       vkCmdWaitEvents       = PFN_vkCmdWaitEvents( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents" ) );
12013       vkCmdPipelineBarrier  = PFN_vkCmdPipelineBarrier( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier" ) );
12014       vkCmdBeginQuery       = PFN_vkCmdBeginQuery( vkGetInstanceProcAddr( instance, "vkCmdBeginQuery" ) );
12015       vkCmdEndQuery         = PFN_vkCmdEndQuery( vkGetInstanceProcAddr( instance, "vkCmdEndQuery" ) );
12016       vkCmdResetQueryPool   = PFN_vkCmdResetQueryPool( vkGetInstanceProcAddr( instance, "vkCmdResetQueryPool" ) );
12017       vkCmdWriteTimestamp   = PFN_vkCmdWriteTimestamp( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp" ) );
12018       vkCmdCopyQueryPoolResults =
12019         PFN_vkCmdCopyQueryPoolResults( vkGetInstanceProcAddr( instance, "vkCmdCopyQueryPoolResults" ) );
12020       vkCmdPushConstants   = PFN_vkCmdPushConstants( vkGetInstanceProcAddr( instance, "vkCmdPushConstants" ) );
12021       vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass" ) );
12022       vkCmdNextSubpass     = PFN_vkCmdNextSubpass( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass" ) );
12023       vkCmdEndRenderPass   = PFN_vkCmdEndRenderPass( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass" ) );
12024       vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetInstanceProcAddr( instance, "vkCmdExecuteCommands" ) );
12025 
12026       //=== VK_VERSION_1_1 ===
12027       vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2" ) );
12028       vkBindImageMemory2  = PFN_vkBindImageMemory2( vkGetInstanceProcAddr( instance, "vkBindImageMemory2" ) );
12029       vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures(
12030         vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeatures" ) );
12031       vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMask" ) );
12032       vkCmdDispatchBase  = PFN_vkCmdDispatchBase( vkGetInstanceProcAddr( instance, "vkCmdDispatchBase" ) );
12033       vkEnumeratePhysicalDeviceGroups =
12034         PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) );
12035       vkGetImageMemoryRequirements2 =
12036         PFN_vkGetImageMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2" ) );
12037       vkGetBufferMemoryRequirements2 =
12038         PFN_vkGetBufferMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2" ) );
12039       vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2(
12040         vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2" ) );
12041       vkGetPhysicalDeviceFeatures2 =
12042         PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) );
12043       vkGetPhysicalDeviceProperties2 =
12044         PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) );
12045       vkGetPhysicalDeviceFormatProperties2 = PFN_vkGetPhysicalDeviceFormatProperties2(
12046         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) );
12047       vkGetPhysicalDeviceImageFormatProperties2 = PFN_vkGetPhysicalDeviceImageFormatProperties2(
12048         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) );
12049       vkGetPhysicalDeviceQueueFamilyProperties2 = PFN_vkGetPhysicalDeviceQueueFamilyProperties2(
12050         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) );
12051       vkGetPhysicalDeviceMemoryProperties2 = PFN_vkGetPhysicalDeviceMemoryProperties2(
12052         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) );
12053       vkGetPhysicalDeviceSparseImageFormatProperties2 = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2(
12054         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ) );
12055       vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetInstanceProcAddr( instance, "vkTrimCommandPool" ) );
12056       vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue2" ) );
12057       vkCreateSamplerYcbcrConversion =
12058         PFN_vkCreateSamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversion" ) );
12059       vkDestroySamplerYcbcrConversion =
12060         PFN_vkDestroySamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversion" ) );
12061       vkCreateDescriptorUpdateTemplate =
12062         PFN_vkCreateDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplate" ) );
12063       vkDestroyDescriptorUpdateTemplate =
12064         PFN_vkDestroyDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplate" ) );
12065       vkUpdateDescriptorSetWithTemplate =
12066         PFN_vkUpdateDescriptorSetWithTemplate( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplate" ) );
12067       vkGetPhysicalDeviceExternalBufferProperties = PFN_vkGetPhysicalDeviceExternalBufferProperties(
12068         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) );
12069       vkGetPhysicalDeviceExternalFenceProperties = PFN_vkGetPhysicalDeviceExternalFenceProperties(
12070         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) );
12071       vkGetPhysicalDeviceExternalSemaphoreProperties = PFN_vkGetPhysicalDeviceExternalSemaphoreProperties(
12072         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) );
12073       vkGetDescriptorSetLayoutSupport =
12074         PFN_vkGetDescriptorSetLayoutSupport( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupport" ) );
12075 
12076       //=== VK_VERSION_1_2 ===
12077       vkCmdDrawIndirectCount =
12078         PFN_vkCmdDrawIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCount" ) );
12079       vkCmdDrawIndexedIndirectCount =
12080         PFN_vkCmdDrawIndexedIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCount" ) );
12081       vkCreateRenderPass2   = PFN_vkCreateRenderPass2( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2" ) );
12082       vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2" ) );
12083       vkCmdNextSubpass2     = PFN_vkCmdNextSubpass2( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2" ) );
12084       vkCmdEndRenderPass2   = PFN_vkCmdEndRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2" ) );
12085       vkResetQueryPool      = PFN_vkResetQueryPool( vkGetInstanceProcAddr( instance, "vkResetQueryPool" ) );
12086       vkGetSemaphoreCounterValue =
12087         PFN_vkGetSemaphoreCounterValue( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValue" ) );
12088       vkWaitSemaphores  = PFN_vkWaitSemaphores( vkGetInstanceProcAddr( instance, "vkWaitSemaphores" ) );
12089       vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetInstanceProcAddr( instance, "vkSignalSemaphore" ) );
12090       vkGetBufferDeviceAddress =
12091         PFN_vkGetBufferDeviceAddress( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddress" ) );
12092       vkGetBufferOpaqueCaptureAddress =
12093         PFN_vkGetBufferOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddress" ) );
12094       vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress(
12095         vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
12096 
12097       //=== VK_KHR_surface ===
12098       vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) );
12099       vkGetPhysicalDeviceSurfaceSupportKHR = PFN_vkGetPhysicalDeviceSurfaceSupportKHR(
12100         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) );
12101       vkGetPhysicalDeviceSurfaceCapabilitiesKHR = PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
12102         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) );
12103       vkGetPhysicalDeviceSurfaceFormatsKHR = PFN_vkGetPhysicalDeviceSurfaceFormatsKHR(
12104         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) );
12105       vkGetPhysicalDeviceSurfacePresentModesKHR = PFN_vkGetPhysicalDeviceSurfacePresentModesKHR(
12106         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) );
12107 
12108       //=== VK_KHR_swapchain ===
12109       vkCreateSwapchainKHR  = PFN_vkCreateSwapchainKHR( vkGetInstanceProcAddr( instance, "vkCreateSwapchainKHR" ) );
12110       vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetInstanceProcAddr( instance, "vkDestroySwapchainKHR" ) );
12111       vkGetSwapchainImagesKHR =
12112         PFN_vkGetSwapchainImagesKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainImagesKHR" ) );
12113       vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImageKHR" ) );
12114       vkQueuePresentKHR     = PFN_vkQueuePresentKHR( vkGetInstanceProcAddr( instance, "vkQueuePresentKHR" ) );
12115       vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR(
12116         vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
12117       vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR(
12118         vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
12119       vkGetPhysicalDevicePresentRectanglesKHR = PFN_vkGetPhysicalDevicePresentRectanglesKHR(
12120         vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) );
12121       vkAcquireNextImage2KHR =
12122         PFN_vkAcquireNextImage2KHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImage2KHR" ) );
12123 
12124       //=== VK_KHR_display ===
12125       vkGetPhysicalDeviceDisplayPropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPropertiesKHR(
12126         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) );
12127       vkGetPhysicalDeviceDisplayPlanePropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
12128         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) );
12129       vkGetDisplayPlaneSupportedDisplaysKHR = PFN_vkGetDisplayPlaneSupportedDisplaysKHR(
12130         vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) );
12131       vkGetDisplayModePropertiesKHR =
12132         PFN_vkGetDisplayModePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ) );
12133       vkCreateDisplayModeKHR =
12134         PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) );
12135       vkGetDisplayPlaneCapabilitiesKHR =
12136         PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) );
12137       vkCreateDisplayPlaneSurfaceKHR =
12138         PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) );
12139 
12140       //=== VK_KHR_display_swapchain ===
12141       vkCreateSharedSwapchainsKHR =
12142         PFN_vkCreateSharedSwapchainsKHR( vkGetInstanceProcAddr( instance, "vkCreateSharedSwapchainsKHR" ) );
12143 
12144 #if defined( VK_USE_PLATFORM_XLIB_KHR )
12145       //=== VK_KHR_xlib_surface ===
12146       vkCreateXlibSurfaceKHR =
12147         PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) );
12148       vkGetPhysicalDeviceXlibPresentationSupportKHR = PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR(
12149         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) );
12150 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
12151 
12152 #if defined( VK_USE_PLATFORM_XCB_KHR )
12153       //=== VK_KHR_xcb_surface ===
12154       vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) );
12155       vkGetPhysicalDeviceXcbPresentationSupportKHR = PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR(
12156         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) );
12157 #endif /*VK_USE_PLATFORM_XCB_KHR*/
12158 
12159 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
12160       //=== VK_KHR_wayland_surface ===
12161       vkCreateWaylandSurfaceKHR =
12162         PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) );
12163       vkGetPhysicalDeviceWaylandPresentationSupportKHR = PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR(
12164         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) );
12165 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
12166 
12167 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
12168       //=== VK_KHR_android_surface ===
12169       vkCreateAndroidSurfaceKHR =
12170         PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) );
12171 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
12172 
12173 #if defined( VK_USE_PLATFORM_WIN32_KHR )
12174       //=== VK_KHR_win32_surface ===
12175       vkCreateWin32SurfaceKHR =
12176         PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) );
12177       vkGetPhysicalDeviceWin32PresentationSupportKHR = PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR(
12178         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) );
12179 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
12180 
12181       //=== VK_EXT_debug_report ===
12182       vkCreateDebugReportCallbackEXT =
12183         PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) );
12184       vkDestroyDebugReportCallbackEXT =
12185         PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) );
12186       vkDebugReportMessageEXT =
12187         PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) );
12188 
12189       //=== VK_EXT_debug_marker ===
12190       vkDebugMarkerSetObjectTagEXT =
12191         PFN_vkDebugMarkerSetObjectTagEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectTagEXT" ) );
12192       vkDebugMarkerSetObjectNameEXT =
12193         PFN_vkDebugMarkerSetObjectNameEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectNameEXT" ) );
12194       vkCmdDebugMarkerBeginEXT =
12195         PFN_vkCmdDebugMarkerBeginEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerBeginEXT" ) );
12196       vkCmdDebugMarkerEndEXT =
12197         PFN_vkCmdDebugMarkerEndEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" ) );
12198       vkCmdDebugMarkerInsertEXT =
12199         PFN_vkCmdDebugMarkerInsertEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" ) );
12200 
12201 #if defined( VK_ENABLE_BETA_EXTENSIONS )
12202       //=== VK_KHR_video_queue ===
12203       vkGetPhysicalDeviceVideoCapabilitiesKHR = PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR(
12204         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoCapabilitiesKHR" ) );
12205       vkGetPhysicalDeviceVideoFormatPropertiesKHR = PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR(
12206         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoFormatPropertiesKHR" ) );
12207       vkCreateVideoSessionKHR =
12208         PFN_vkCreateVideoSessionKHR( vkGetInstanceProcAddr( instance, "vkCreateVideoSessionKHR" ) );
12209       vkDestroyVideoSessionKHR =
12210         PFN_vkDestroyVideoSessionKHR( vkGetInstanceProcAddr( instance, "vkDestroyVideoSessionKHR" ) );
12211       vkGetVideoSessionMemoryRequirementsKHR = PFN_vkGetVideoSessionMemoryRequirementsKHR(
12212         vkGetInstanceProcAddr( instance, "vkGetVideoSessionMemoryRequirementsKHR" ) );
12213       vkBindVideoSessionMemoryKHR =
12214         PFN_vkBindVideoSessionMemoryKHR( vkGetInstanceProcAddr( instance, "vkBindVideoSessionMemoryKHR" ) );
12215       vkCreateVideoSessionParametersKHR =
12216         PFN_vkCreateVideoSessionParametersKHR( vkGetInstanceProcAddr( instance, "vkCreateVideoSessionParametersKHR" ) );
12217       vkUpdateVideoSessionParametersKHR =
12218         PFN_vkUpdateVideoSessionParametersKHR( vkGetInstanceProcAddr( instance, "vkUpdateVideoSessionParametersKHR" ) );
12219       vkDestroyVideoSessionParametersKHR = PFN_vkDestroyVideoSessionParametersKHR(
12220         vkGetInstanceProcAddr( instance, "vkDestroyVideoSessionParametersKHR" ) );
12221       vkCmdBeginVideoCodingKHR =
12222         PFN_vkCmdBeginVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdBeginVideoCodingKHR" ) );
12223       vkCmdEndVideoCodingKHR =
12224         PFN_vkCmdEndVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdEndVideoCodingKHR" ) );
12225       vkCmdControlVideoCodingKHR =
12226         PFN_vkCmdControlVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdControlVideoCodingKHR" ) );
12227 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
12228 
12229 #if defined( VK_ENABLE_BETA_EXTENSIONS )
12230       //=== VK_KHR_video_decode_queue ===
12231       vkCmdDecodeVideoKHR = PFN_vkCmdDecodeVideoKHR( vkGetInstanceProcAddr( instance, "vkCmdDecodeVideoKHR" ) );
12232 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
12233 
12234       //=== VK_EXT_transform_feedback ===
12235       vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT(
12236         vkGetInstanceProcAddr( instance, "vkCmdBindTransformFeedbackBuffersEXT" ) );
12237       vkCmdBeginTransformFeedbackEXT =
12238         PFN_vkCmdBeginTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginTransformFeedbackEXT" ) );
12239       vkCmdEndTransformFeedbackEXT =
12240         PFN_vkCmdEndTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdEndTransformFeedbackEXT" ) );
12241       vkCmdBeginQueryIndexedEXT =
12242         PFN_vkCmdBeginQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginQueryIndexedEXT" ) );
12243       vkCmdEndQueryIndexedEXT =
12244         PFN_vkCmdEndQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdEndQueryIndexedEXT" ) );
12245       vkCmdDrawIndirectByteCountEXT =
12246         PFN_vkCmdDrawIndirectByteCountEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectByteCountEXT" ) );
12247 
12248       //=== VK_NVX_binary_import ===
12249       vkCreateCuModuleNVX   = PFN_vkCreateCuModuleNVX( vkGetInstanceProcAddr( instance, "vkCreateCuModuleNVX" ) );
12250       vkCreateCuFunctionNVX = PFN_vkCreateCuFunctionNVX( vkGetInstanceProcAddr( instance, "vkCreateCuFunctionNVX" ) );
12251       vkDestroyCuModuleNVX  = PFN_vkDestroyCuModuleNVX( vkGetInstanceProcAddr( instance, "vkDestroyCuModuleNVX" ) );
12252       vkDestroyCuFunctionNVX =
12253         PFN_vkDestroyCuFunctionNVX( vkGetInstanceProcAddr( instance, "vkDestroyCuFunctionNVX" ) );
12254       vkCmdCuLaunchKernelNVX =
12255         PFN_vkCmdCuLaunchKernelNVX( vkGetInstanceProcAddr( instance, "vkCmdCuLaunchKernelNVX" ) );
12256 
12257       //=== VK_NVX_image_view_handle ===
12258       vkGetImageViewHandleNVX =
12259         PFN_vkGetImageViewHandleNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewHandleNVX" ) );
12260       vkGetImageViewAddressNVX =
12261         PFN_vkGetImageViewAddressNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewAddressNVX" ) );
12262 
12263       //=== VK_AMD_draw_indirect_count ===
12264       vkCmdDrawIndirectCountAMD =
12265         PFN_vkCmdDrawIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountAMD" ) );
12266       if ( !vkCmdDrawIndirectCount )
12267         vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD;
12268       vkCmdDrawIndexedIndirectCountAMD =
12269         PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountAMD" ) );
12270       if ( !vkCmdDrawIndexedIndirectCount )
12271         vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD;
12272 
12273       //=== VK_AMD_shader_info ===
12274       vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetInstanceProcAddr( instance, "vkGetShaderInfoAMD" ) );
12275 
12276 #if defined( VK_USE_PLATFORM_GGP )
12277       //=== VK_GGP_stream_descriptor_surface ===
12278       vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP(
12279         vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) );
12280 #endif /*VK_USE_PLATFORM_GGP*/
12281 
12282       //=== VK_NV_external_memory_capabilities ===
12283       vkGetPhysicalDeviceExternalImageFormatPropertiesNV = PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
12284         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) );
12285 
12286 #if defined( VK_USE_PLATFORM_WIN32_KHR )
12287       //=== VK_NV_external_memory_win32 ===
12288       vkGetMemoryWin32HandleNV =
12289         PFN_vkGetMemoryWin32HandleNV( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleNV" ) );
12290 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
12291 
12292       //=== VK_KHR_get_physical_device_properties2 ===
12293       vkGetPhysicalDeviceFeatures2KHR =
12294         PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) );
12295       if ( !vkGetPhysicalDeviceFeatures2 )
12296         vkGetPhysicalDeviceFeatures2 = vkGetPhysicalDeviceFeatures2KHR;
12297       vkGetPhysicalDeviceProperties2KHR =
12298         PFN_vkGetPhysicalDeviceProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) );
12299       if ( !vkGetPhysicalDeviceProperties2 )
12300         vkGetPhysicalDeviceProperties2 = vkGetPhysicalDeviceProperties2KHR;
12301       vkGetPhysicalDeviceFormatProperties2KHR = PFN_vkGetPhysicalDeviceFormatProperties2KHR(
12302         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ) );
12303       if ( !vkGetPhysicalDeviceFormatProperties2 )
12304         vkGetPhysicalDeviceFormatProperties2 = vkGetPhysicalDeviceFormatProperties2KHR;
12305       vkGetPhysicalDeviceImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceImageFormatProperties2KHR(
12306         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ) );
12307       if ( !vkGetPhysicalDeviceImageFormatProperties2 )
12308         vkGetPhysicalDeviceImageFormatProperties2 = vkGetPhysicalDeviceImageFormatProperties2KHR;
12309       vkGetPhysicalDeviceQueueFamilyProperties2KHR = PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR(
12310         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ) );
12311       if ( !vkGetPhysicalDeviceQueueFamilyProperties2 )
12312         vkGetPhysicalDeviceQueueFamilyProperties2 = vkGetPhysicalDeviceQueueFamilyProperties2KHR;
12313       vkGetPhysicalDeviceMemoryProperties2KHR = PFN_vkGetPhysicalDeviceMemoryProperties2KHR(
12314         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) );
12315       if ( !vkGetPhysicalDeviceMemoryProperties2 )
12316         vkGetPhysicalDeviceMemoryProperties2 = vkGetPhysicalDeviceMemoryProperties2KHR;
12317       vkGetPhysicalDeviceSparseImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
12318         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ) );
12319       if ( !vkGetPhysicalDeviceSparseImageFormatProperties2 )
12320         vkGetPhysicalDeviceSparseImageFormatProperties2 = vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
12321 
12322       //=== VK_KHR_device_group ===
12323       vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR(
12324         vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
12325       if ( !vkGetDeviceGroupPeerMemoryFeatures )
12326         vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
12327       vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMaskKHR" ) );
12328       if ( !vkCmdSetDeviceMask )
12329         vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
12330       vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetInstanceProcAddr( instance, "vkCmdDispatchBaseKHR" ) );
12331       if ( !vkCmdDispatchBase )
12332         vkCmdDispatchBase = vkCmdDispatchBaseKHR;
12333 
12334 #if defined( VK_USE_PLATFORM_VI_NN )
12335       //=== VK_NN_vi_surface ===
12336       vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) );
12337 #endif /*VK_USE_PLATFORM_VI_NN*/
12338 
12339       //=== VK_KHR_maintenance1 ===
12340       vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetInstanceProcAddr( instance, "vkTrimCommandPoolKHR" ) );
12341       if ( !vkTrimCommandPool )
12342         vkTrimCommandPool = vkTrimCommandPoolKHR;
12343 
12344       //=== VK_KHR_device_group_creation ===
12345       vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR(
12346         vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) );
12347       if ( !vkEnumeratePhysicalDeviceGroups )
12348         vkEnumeratePhysicalDeviceGroups = vkEnumeratePhysicalDeviceGroupsKHR;
12349 
12350       //=== VK_KHR_external_memory_capabilities ===
12351       vkGetPhysicalDeviceExternalBufferPropertiesKHR = PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR(
12352         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) );
12353       if ( !vkGetPhysicalDeviceExternalBufferProperties )
12354         vkGetPhysicalDeviceExternalBufferProperties = vkGetPhysicalDeviceExternalBufferPropertiesKHR;
12355 
12356 #if defined( VK_USE_PLATFORM_WIN32_KHR )
12357       //=== VK_KHR_external_memory_win32 ===
12358       vkGetMemoryWin32HandleKHR =
12359         PFN_vkGetMemoryWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleKHR" ) );
12360       vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR(
12361         vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandlePropertiesKHR" ) );
12362 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
12363 
12364       //=== VK_KHR_external_memory_fd ===
12365       vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdKHR" ) );
12366       vkGetMemoryFdPropertiesKHR =
12367         PFN_vkGetMemoryFdPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdPropertiesKHR" ) );
12368 
12369       //=== VK_KHR_external_semaphore_capabilities ===
12370       vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
12371         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) );
12372       if ( !vkGetPhysicalDeviceExternalSemaphoreProperties )
12373         vkGetPhysicalDeviceExternalSemaphoreProperties = vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
12374 
12375 #if defined( VK_USE_PLATFORM_WIN32_KHR )
12376       //=== VK_KHR_external_semaphore_win32 ===
12377       vkImportSemaphoreWin32HandleKHR =
12378         PFN_vkImportSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreWin32HandleKHR" ) );
12379       vkGetSemaphoreWin32HandleKHR =
12380         PFN_vkGetSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreWin32HandleKHR" ) );
12381 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
12382 
12383       //=== VK_KHR_external_semaphore_fd ===
12384       vkImportSemaphoreFdKHR =
12385         PFN_vkImportSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreFdKHR" ) );
12386       vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreFdKHR" ) );
12387 
12388       //=== VK_KHR_push_descriptor ===
12389       vkCmdPushDescriptorSetKHR =
12390         PFN_vkCmdPushDescriptorSetKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetKHR" ) );
12391       vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR(
12392         vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
12393 
12394       //=== VK_EXT_conditional_rendering ===
12395       vkCmdBeginConditionalRenderingEXT =
12396         PFN_vkCmdBeginConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginConditionalRenderingEXT" ) );
12397       vkCmdEndConditionalRenderingEXT =
12398         PFN_vkCmdEndConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdEndConditionalRenderingEXT" ) );
12399 
12400       //=== VK_KHR_descriptor_update_template ===
12401       vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR(
12402         vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplateKHR" ) );
12403       if ( !vkCreateDescriptorUpdateTemplate )
12404         vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
12405       vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR(
12406         vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplateKHR" ) );
12407       if ( !vkDestroyDescriptorUpdateTemplate )
12408         vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
12409       vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR(
12410         vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplateKHR" ) );
12411       if ( !vkUpdateDescriptorSetWithTemplate )
12412         vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
12413 
12414       //=== VK_NV_clip_space_w_scaling ===
12415       vkCmdSetViewportWScalingNV =
12416         PFN_vkCmdSetViewportWScalingNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingNV" ) );
12417 
12418       //=== VK_EXT_direct_mode_display ===
12419       vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) );
12420 
12421 #if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
12422       //=== VK_EXT_acquire_xlib_display ===
12423       vkAcquireXlibDisplayEXT =
12424         PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) );
12425       vkGetRandROutputDisplayEXT =
12426         PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) );
12427 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
12428 
12429       //=== VK_EXT_display_surface_counter ===
12430       vkGetPhysicalDeviceSurfaceCapabilities2EXT = PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT(
12431         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) );
12432 
12433       //=== VK_EXT_display_control ===
12434       vkDisplayPowerControlEXT =
12435         PFN_vkDisplayPowerControlEXT( vkGetInstanceProcAddr( instance, "vkDisplayPowerControlEXT" ) );
12436       vkRegisterDeviceEventEXT =
12437         PFN_vkRegisterDeviceEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDeviceEventEXT" ) );
12438       vkRegisterDisplayEventEXT =
12439         PFN_vkRegisterDisplayEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDisplayEventEXT" ) );
12440       vkGetSwapchainCounterEXT =
12441         PFN_vkGetSwapchainCounterEXT( vkGetInstanceProcAddr( instance, "vkGetSwapchainCounterEXT" ) );
12442 
12443       //=== VK_GOOGLE_display_timing ===
12444       vkGetRefreshCycleDurationGOOGLE =
12445         PFN_vkGetRefreshCycleDurationGOOGLE( vkGetInstanceProcAddr( instance, "vkGetRefreshCycleDurationGOOGLE" ) );
12446       vkGetPastPresentationTimingGOOGLE =
12447         PFN_vkGetPastPresentationTimingGOOGLE( vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" ) );
12448 
12449       //=== VK_EXT_discard_rectangles ===
12450       vkCmdSetDiscardRectangleEXT =
12451         PFN_vkCmdSetDiscardRectangleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ) );
12452 
12453       //=== VK_EXT_hdr_metadata ===
12454       vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" ) );
12455 
12456       //=== VK_KHR_create_renderpass2 ===
12457       vkCreateRenderPass2KHR =
12458         PFN_vkCreateRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2KHR" ) );
12459       if ( !vkCreateRenderPass2 )
12460         vkCreateRenderPass2 = vkCreateRenderPass2KHR;
12461       vkCmdBeginRenderPass2KHR =
12462         PFN_vkCmdBeginRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2KHR" ) );
12463       if ( !vkCmdBeginRenderPass2 )
12464         vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
12465       vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2KHR" ) );
12466       if ( !vkCmdNextSubpass2 )
12467         vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
12468       vkCmdEndRenderPass2KHR =
12469         PFN_vkCmdEndRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2KHR" ) );
12470       if ( !vkCmdEndRenderPass2 )
12471         vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
12472 
12473       //=== VK_KHR_shared_presentable_image ===
12474       vkGetSwapchainStatusKHR =
12475         PFN_vkGetSwapchainStatusKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainStatusKHR" ) );
12476 
12477       //=== VK_KHR_external_fence_capabilities ===
12478       vkGetPhysicalDeviceExternalFencePropertiesKHR = PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR(
12479         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) );
12480       if ( !vkGetPhysicalDeviceExternalFenceProperties )
12481         vkGetPhysicalDeviceExternalFenceProperties = vkGetPhysicalDeviceExternalFencePropertiesKHR;
12482 
12483 #if defined( VK_USE_PLATFORM_WIN32_KHR )
12484       //=== VK_KHR_external_fence_win32 ===
12485       vkImportFenceWin32HandleKHR =
12486         PFN_vkImportFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportFenceWin32HandleKHR" ) );
12487       vkGetFenceWin32HandleKHR =
12488         PFN_vkGetFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetFenceWin32HandleKHR" ) );
12489 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
12490 
12491       //=== VK_KHR_external_fence_fd ===
12492       vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetInstanceProcAddr( instance, "vkImportFenceFdKHR" ) );
12493       vkGetFenceFdKHR    = PFN_vkGetFenceFdKHR( vkGetInstanceProcAddr( instance, "vkGetFenceFdKHR" ) );
12494 
12495       //=== VK_KHR_performance_query ===
12496       vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR =
12497         PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
12498           vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" ) );
12499       vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR =
12500         PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
12501           vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" ) );
12502       vkAcquireProfilingLockKHR =
12503         PFN_vkAcquireProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkAcquireProfilingLockKHR" ) );
12504       vkReleaseProfilingLockKHR =
12505         PFN_vkReleaseProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkReleaseProfilingLockKHR" ) );
12506 
12507       //=== VK_KHR_get_surface_capabilities2 ===
12508       vkGetPhysicalDeviceSurfaceCapabilities2KHR = PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR(
12509         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) );
12510       vkGetPhysicalDeviceSurfaceFormats2KHR = PFN_vkGetPhysicalDeviceSurfaceFormats2KHR(
12511         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) );
12512 
12513       //=== VK_KHR_get_display_properties2 ===
12514       vkGetPhysicalDeviceDisplayProperties2KHR = PFN_vkGetPhysicalDeviceDisplayProperties2KHR(
12515         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) );
12516       vkGetPhysicalDeviceDisplayPlaneProperties2KHR = PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
12517         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) );
12518       vkGetDisplayModeProperties2KHR =
12519         PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) );
12520       vkGetDisplayPlaneCapabilities2KHR =
12521         PFN_vkGetDisplayPlaneCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) );
12522 
12523 #if defined( VK_USE_PLATFORM_IOS_MVK )
12524       //=== VK_MVK_ios_surface ===
12525       vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ) );
12526 #endif /*VK_USE_PLATFORM_IOS_MVK*/
12527 
12528 #if defined( VK_USE_PLATFORM_MACOS_MVK )
12529       //=== VK_MVK_macos_surface ===
12530       vkCreateMacOSSurfaceMVK =
12531         PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) );
12532 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
12533 
12534       //=== VK_EXT_debug_utils ===
12535       vkSetDebugUtilsObjectNameEXT =
12536         PFN_vkSetDebugUtilsObjectNameEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectNameEXT" ) );
12537       vkSetDebugUtilsObjectTagEXT =
12538         PFN_vkSetDebugUtilsObjectTagEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectTagEXT" ) );
12539       vkQueueBeginDebugUtilsLabelEXT =
12540         PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueBeginDebugUtilsLabelEXT" ) );
12541       vkQueueEndDebugUtilsLabelEXT =
12542         PFN_vkQueueEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueEndDebugUtilsLabelEXT" ) );
12543       vkQueueInsertDebugUtilsLabelEXT =
12544         PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueInsertDebugUtilsLabelEXT" ) );
12545       vkCmdBeginDebugUtilsLabelEXT =
12546         PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginDebugUtilsLabelEXT" ) );
12547       vkCmdEndDebugUtilsLabelEXT =
12548         PFN_vkCmdEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdEndDebugUtilsLabelEXT" ) );
12549       vkCmdInsertDebugUtilsLabelEXT =
12550         PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdInsertDebugUtilsLabelEXT" ) );
12551       vkCreateDebugUtilsMessengerEXT =
12552         PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) );
12553       vkDestroyDebugUtilsMessengerEXT =
12554         PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) );
12555       vkSubmitDebugUtilsMessageEXT =
12556         PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) );
12557 
12558 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
12559       //=== VK_ANDROID_external_memory_android_hardware_buffer ===
12560       vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID(
12561         vkGetInstanceProcAddr( instance, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
12562       vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID(
12563         vkGetInstanceProcAddr( instance, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
12564 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
12565 
12566       //=== VK_EXT_sample_locations ===
12567       vkCmdSetSampleLocationsEXT =
12568         PFN_vkCmdSetSampleLocationsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEXT" ) );
12569       vkGetPhysicalDeviceMultisamplePropertiesEXT = PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT(
12570         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) );
12571 
12572       //=== VK_KHR_get_memory_requirements2 ===
12573       vkGetImageMemoryRequirements2KHR =
12574         PFN_vkGetImageMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2KHR" ) );
12575       if ( !vkGetImageMemoryRequirements2 )
12576         vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
12577       vkGetBufferMemoryRequirements2KHR =
12578         PFN_vkGetBufferMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2KHR" ) );
12579       if ( !vkGetBufferMemoryRequirements2 )
12580         vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
12581       vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR(
12582         vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2KHR" ) );
12583       if ( !vkGetImageSparseMemoryRequirements2 )
12584         vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
12585 
12586       //=== VK_KHR_acceleration_structure ===
12587       vkCreateAccelerationStructureKHR =
12588         PFN_vkCreateAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureKHR" ) );
12589       vkDestroyAccelerationStructureKHR =
12590         PFN_vkDestroyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureKHR" ) );
12591       vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR(
12592         vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresKHR" ) );
12593       vkCmdBuildAccelerationStructuresIndirectKHR = PFN_vkCmdBuildAccelerationStructuresIndirectKHR(
12594         vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresIndirectKHR" ) );
12595       vkBuildAccelerationStructuresKHR =
12596         PFN_vkBuildAccelerationStructuresKHR( vkGetInstanceProcAddr( instance, "vkBuildAccelerationStructuresKHR" ) );
12597       vkCopyAccelerationStructureKHR =
12598         PFN_vkCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureKHR" ) );
12599       vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR(
12600         vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureToMemoryKHR" ) );
12601       vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR(
12602         vkGetInstanceProcAddr( instance, "vkCopyMemoryToAccelerationStructureKHR" ) );
12603       vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR(
12604         vkGetInstanceProcAddr( instance, "vkWriteAccelerationStructuresPropertiesKHR" ) );
12605       vkCmdCopyAccelerationStructureKHR =
12606         PFN_vkCmdCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureKHR" ) );
12607       vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR(
12608         vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
12609       vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR(
12610         vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
12611       vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR(
12612         vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureDeviceAddressKHR" ) );
12613       vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR(
12614         vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
12615       vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR(
12616         vkGetInstanceProcAddr( instance, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
12617       vkGetAccelerationStructureBuildSizesKHR = PFN_vkGetAccelerationStructureBuildSizesKHR(
12618         vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureBuildSizesKHR" ) );
12619 
12620       //=== VK_KHR_sampler_ycbcr_conversion ===
12621       vkCreateSamplerYcbcrConversionKHR =
12622         PFN_vkCreateSamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversionKHR" ) );
12623       if ( !vkCreateSamplerYcbcrConversion )
12624         vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR;
12625       vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR(
12626         vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversionKHR" ) );
12627       if ( !vkDestroySamplerYcbcrConversion )
12628         vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR;
12629 
12630       //=== VK_KHR_bind_memory2 ===
12631       vkBindBufferMemory2KHR =
12632         PFN_vkBindBufferMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2KHR" ) );
12633       if ( !vkBindBufferMemory2 )
12634         vkBindBufferMemory2 = vkBindBufferMemory2KHR;
12635       vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindImageMemory2KHR" ) );
12636       if ( !vkBindImageMemory2 )
12637         vkBindImageMemory2 = vkBindImageMemory2KHR;
12638 
12639       //=== VK_EXT_image_drm_format_modifier ===
12640       vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT(
12641         vkGetInstanceProcAddr( instance, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
12642 
12643       //=== VK_EXT_validation_cache ===
12644       vkCreateValidationCacheEXT =
12645         PFN_vkCreateValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkCreateValidationCacheEXT" ) );
12646       vkDestroyValidationCacheEXT =
12647         PFN_vkDestroyValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkDestroyValidationCacheEXT" ) );
12648       vkMergeValidationCachesEXT =
12649         PFN_vkMergeValidationCachesEXT( vkGetInstanceProcAddr( instance, "vkMergeValidationCachesEXT" ) );
12650       vkGetValidationCacheDataEXT =
12651         PFN_vkGetValidationCacheDataEXT( vkGetInstanceProcAddr( instance, "vkGetValidationCacheDataEXT" ) );
12652 
12653       //=== VK_NV_shading_rate_image ===
12654       vkCmdBindShadingRateImageNV =
12655         PFN_vkCmdBindShadingRateImageNV( vkGetInstanceProcAddr( instance, "vkCmdBindShadingRateImageNV" ) );
12656       vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV(
12657         vkGetInstanceProcAddr( instance, "vkCmdSetViewportShadingRatePaletteNV" ) );
12658       vkCmdSetCoarseSampleOrderNV =
12659         PFN_vkCmdSetCoarseSampleOrderNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoarseSampleOrderNV" ) );
12660 
12661       //=== VK_NV_ray_tracing ===
12662       vkCreateAccelerationStructureNV =
12663         PFN_vkCreateAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureNV" ) );
12664       vkDestroyAccelerationStructureNV =
12665         PFN_vkDestroyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureNV" ) );
12666       vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV(
12667         vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
12668       vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV(
12669         vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryNV" ) );
12670       vkCmdBuildAccelerationStructureNV =
12671         PFN_vkCmdBuildAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureNV" ) );
12672       vkCmdCopyAccelerationStructureNV =
12673         PFN_vkCmdCopyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureNV" ) );
12674       vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysNV" ) );
12675       vkCreateRayTracingPipelinesNV =
12676         PFN_vkCreateRayTracingPipelinesNV( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesNV" ) );
12677       vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV(
12678         vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesNV" ) );
12679       if ( !vkGetRayTracingShaderGroupHandlesKHR )
12680         vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
12681       vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV(
12682         vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureHandleNV" ) );
12683       vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV(
12684         vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
12685       vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetInstanceProcAddr( instance, "vkCompileDeferredNV" ) );
12686 
12687       //=== VK_KHR_maintenance3 ===
12688       vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR(
12689         vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupportKHR" ) );
12690       if ( !vkGetDescriptorSetLayoutSupport )
12691         vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
12692 
12693       //=== VK_KHR_draw_indirect_count ===
12694       vkCmdDrawIndirectCountKHR =
12695         PFN_vkCmdDrawIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountKHR" ) );
12696       if ( !vkCmdDrawIndirectCount )
12697         vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
12698       vkCmdDrawIndexedIndirectCountKHR =
12699         PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountKHR" ) );
12700       if ( !vkCmdDrawIndexedIndirectCount )
12701         vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
12702 
12703       //=== VK_EXT_external_memory_host ===
12704       vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT(
12705         vkGetInstanceProcAddr( instance, "vkGetMemoryHostPointerPropertiesEXT" ) );
12706 
12707       //=== VK_AMD_buffer_marker ===
12708       vkCmdWriteBufferMarkerAMD =
12709         PFN_vkCmdWriteBufferMarkerAMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarkerAMD" ) );
12710 
12711       //=== VK_EXT_calibrated_timestamps ===
12712       vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
12713         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) );
12714       vkGetCalibratedTimestampsEXT =
12715         PFN_vkGetCalibratedTimestampsEXT( vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsEXT" ) );
12716 
12717       //=== VK_NV_mesh_shader ===
12718       vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksNV" ) );
12719       vkCmdDrawMeshTasksIndirectNV =
12720         PFN_vkCmdDrawMeshTasksIndirectNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectNV" ) );
12721       vkCmdDrawMeshTasksIndirectCountNV =
12722         PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountNV" ) );
12723 
12724       //=== VK_NV_scissor_exclusive ===
12725       vkCmdSetExclusiveScissorNV =
12726         PFN_vkCmdSetExclusiveScissorNV( vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" ) );
12727 
12728       //=== VK_NV_device_diagnostic_checkpoints ===
12729       vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetInstanceProcAddr( instance, "vkCmdSetCheckpointNV" ) );
12730       vkGetQueueCheckpointDataNV =
12731         PFN_vkGetQueueCheckpointDataNV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointDataNV" ) );
12732 
12733       //=== VK_KHR_timeline_semaphore ===
12734       vkGetSemaphoreCounterValueKHR =
12735         PFN_vkGetSemaphoreCounterValueKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValueKHR" ) );
12736       if ( !vkGetSemaphoreCounterValue )
12737         vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
12738       vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetInstanceProcAddr( instance, "vkWaitSemaphoresKHR" ) );
12739       if ( !vkWaitSemaphores )
12740         vkWaitSemaphores = vkWaitSemaphoresKHR;
12741       vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetInstanceProcAddr( instance, "vkSignalSemaphoreKHR" ) );
12742       if ( !vkSignalSemaphore )
12743         vkSignalSemaphore = vkSignalSemaphoreKHR;
12744 
12745       //=== VK_INTEL_performance_query ===
12746       vkInitializePerformanceApiINTEL =
12747         PFN_vkInitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkInitializePerformanceApiINTEL" ) );
12748       vkUninitializePerformanceApiINTEL =
12749         PFN_vkUninitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkUninitializePerformanceApiINTEL" ) );
12750       vkCmdSetPerformanceMarkerINTEL =
12751         PFN_vkCmdSetPerformanceMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceMarkerINTEL" ) );
12752       vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL(
12753         vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
12754       vkCmdSetPerformanceOverrideINTEL =
12755         PFN_vkCmdSetPerformanceOverrideINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceOverrideINTEL" ) );
12756       vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL(
12757         vkGetInstanceProcAddr( instance, "vkAcquirePerformanceConfigurationINTEL" ) );
12758       vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL(
12759         vkGetInstanceProcAddr( instance, "vkReleasePerformanceConfigurationINTEL" ) );
12760       vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL(
12761         vkGetInstanceProcAddr( instance, "vkQueueSetPerformanceConfigurationINTEL" ) );
12762       vkGetPerformanceParameterINTEL =
12763         PFN_vkGetPerformanceParameterINTEL( vkGetInstanceProcAddr( instance, "vkGetPerformanceParameterINTEL" ) );
12764 
12765       //=== VK_AMD_display_native_hdr ===
12766       vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetInstanceProcAddr( instance, "vkSetLocalDimmingAMD" ) );
12767 
12768 #if defined( VK_USE_PLATFORM_FUCHSIA )
12769       //=== VK_FUCHSIA_imagepipe_surface ===
12770       vkCreateImagePipeSurfaceFUCHSIA =
12771         PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) );
12772 #endif /*VK_USE_PLATFORM_FUCHSIA*/
12773 
12774 #if defined( VK_USE_PLATFORM_METAL_EXT )
12775       //=== VK_EXT_metal_surface ===
12776       vkCreateMetalSurfaceEXT =
12777         PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) );
12778 #endif /*VK_USE_PLATFORM_METAL_EXT*/
12779 
12780       //=== VK_KHR_fragment_shading_rate ===
12781       vkGetPhysicalDeviceFragmentShadingRatesKHR = PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR(
12782         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR" ) );
12783       vkCmdSetFragmentShadingRateKHR =
12784         PFN_vkCmdSetFragmentShadingRateKHR( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateKHR" ) );
12785 
12786       //=== VK_EXT_buffer_device_address ===
12787       vkGetBufferDeviceAddressEXT =
12788         PFN_vkGetBufferDeviceAddressEXT( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressEXT" ) );
12789       if ( !vkGetBufferDeviceAddress )
12790         vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT;
12791 
12792       //=== VK_EXT_tooling_info ===
12793       vkGetPhysicalDeviceToolPropertiesEXT = PFN_vkGetPhysicalDeviceToolPropertiesEXT(
12794         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) );
12795 
12796       //=== VK_KHR_present_wait ===
12797       vkWaitForPresentKHR = PFN_vkWaitForPresentKHR( vkGetInstanceProcAddr( instance, "vkWaitForPresentKHR" ) );
12798 
12799       //=== VK_NV_cooperative_matrix ===
12800       vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
12801         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) );
12802 
12803       //=== VK_NV_coverage_reduction_mode ===
12804       vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV =
12805         PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
12806           vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) );
12807 
12808 #if defined( VK_USE_PLATFORM_WIN32_KHR )
12809       //=== VK_EXT_full_screen_exclusive ===
12810       vkGetPhysicalDeviceSurfacePresentModes2EXT = PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT(
12811         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) );
12812       vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT(
12813         vkGetInstanceProcAddr( instance, "vkAcquireFullScreenExclusiveModeEXT" ) );
12814       vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT(
12815         vkGetInstanceProcAddr( instance, "vkReleaseFullScreenExclusiveModeEXT" ) );
12816       vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT(
12817         vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
12818 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
12819 
12820       //=== VK_EXT_headless_surface ===
12821       vkCreateHeadlessSurfaceEXT =
12822         PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) );
12823 
12824       //=== VK_KHR_buffer_device_address ===
12825       vkGetBufferDeviceAddressKHR =
12826         PFN_vkGetBufferDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressKHR" ) );
12827       if ( !vkGetBufferDeviceAddress )
12828         vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR;
12829       vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR(
12830         vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddressKHR" ) );
12831       if ( !vkGetBufferOpaqueCaptureAddress )
12832         vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR;
12833       vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR(
12834         vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
12835       if ( !vkGetDeviceMemoryOpaqueCaptureAddress )
12836         vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR;
12837 
12838       //=== VK_EXT_line_rasterization ===
12839       vkCmdSetLineStippleEXT =
12840         PFN_vkCmdSetLineStippleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLineStippleEXT" ) );
12841 
12842       //=== VK_EXT_host_query_reset ===
12843       vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetInstanceProcAddr( instance, "vkResetQueryPoolEXT" ) );
12844       if ( !vkResetQueryPool )
12845         vkResetQueryPool = vkResetQueryPoolEXT;
12846 
12847       //=== VK_EXT_extended_dynamic_state ===
12848       vkCmdSetCullModeEXT  = PFN_vkCmdSetCullModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetCullModeEXT" ) );
12849       vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetInstanceProcAddr( instance, "vkCmdSetFrontFaceEXT" ) );
12850       vkCmdSetPrimitiveTopologyEXT =
12851         PFN_vkCmdSetPrimitiveTopologyEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveTopologyEXT" ) );
12852       vkCmdSetViewportWithCountEXT =
12853         PFN_vkCmdSetViewportWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWithCountEXT" ) );
12854       vkCmdSetScissorWithCountEXT =
12855         PFN_vkCmdSetScissorWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetScissorWithCountEXT" ) );
12856       vkCmdBindVertexBuffers2EXT =
12857         PFN_vkCmdBindVertexBuffers2EXT( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers2EXT" ) );
12858       vkCmdSetDepthTestEnableEXT =
12859         PFN_vkCmdSetDepthTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthTestEnableEXT" ) );
12860       vkCmdSetDepthWriteEnableEXT =
12861         PFN_vkCmdSetDepthWriteEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthWriteEnableEXT" ) );
12862       vkCmdSetDepthCompareOpEXT =
12863         PFN_vkCmdSetDepthCompareOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthCompareOpEXT" ) );
12864       vkCmdSetDepthBoundsTestEnableEXT =
12865         PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBoundsTestEnableEXT" ) );
12866       vkCmdSetStencilTestEnableEXT =
12867         PFN_vkCmdSetStencilTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilTestEnableEXT" ) );
12868       vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilOpEXT" ) );
12869 
12870       //=== VK_KHR_deferred_host_operations ===
12871       vkCreateDeferredOperationKHR =
12872         PFN_vkCreateDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkCreateDeferredOperationKHR" ) );
12873       vkDestroyDeferredOperationKHR =
12874         PFN_vkDestroyDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkDestroyDeferredOperationKHR" ) );
12875       vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR(
12876         vkGetInstanceProcAddr( instance, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
12877       vkGetDeferredOperationResultKHR =
12878         PFN_vkGetDeferredOperationResultKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationResultKHR" ) );
12879       vkDeferredOperationJoinKHR =
12880         PFN_vkDeferredOperationJoinKHR( vkGetInstanceProcAddr( instance, "vkDeferredOperationJoinKHR" ) );
12881 
12882       //=== VK_KHR_pipeline_executable_properties ===
12883       vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR(
12884         vkGetInstanceProcAddr( instance, "vkGetPipelineExecutablePropertiesKHR" ) );
12885       vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR(
12886         vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableStatisticsKHR" ) );
12887       vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR(
12888         vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
12889 
12890       //=== VK_NV_device_generated_commands ===
12891       vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV(
12892         vkGetInstanceProcAddr( instance, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
12893       vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV(
12894         vkGetInstanceProcAddr( instance, "vkCmdPreprocessGeneratedCommandsNV" ) );
12895       vkCmdExecuteGeneratedCommandsNV =
12896         PFN_vkCmdExecuteGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdExecuteGeneratedCommandsNV" ) );
12897       vkCmdBindPipelineShaderGroupNV =
12898         PFN_vkCmdBindPipelineShaderGroupNV( vkGetInstanceProcAddr( instance, "vkCmdBindPipelineShaderGroupNV" ) );
12899       vkCreateIndirectCommandsLayoutNV =
12900         PFN_vkCreateIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNV" ) );
12901       vkDestroyIndirectCommandsLayoutNV =
12902         PFN_vkDestroyIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNV" ) );
12903 
12904       //=== VK_EXT_acquire_drm_display ===
12905       vkAcquireDrmDisplayEXT =
12906         PFN_vkAcquireDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireDrmDisplayEXT" ) );
12907       vkGetDrmDisplayEXT = PFN_vkGetDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetDrmDisplayEXT" ) );
12908 
12909       //=== VK_EXT_private_data ===
12910       vkCreatePrivateDataSlotEXT =
12911         PFN_vkCreatePrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkCreatePrivateDataSlotEXT" ) );
12912       vkDestroyPrivateDataSlotEXT =
12913         PFN_vkDestroyPrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkDestroyPrivateDataSlotEXT" ) );
12914       vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkSetPrivateDataEXT" ) );
12915       vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkGetPrivateDataEXT" ) );
12916 
12917 #if defined( VK_ENABLE_BETA_EXTENSIONS )
12918       //=== VK_KHR_video_encode_queue ===
12919       vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetInstanceProcAddr( instance, "vkCmdEncodeVideoKHR" ) );
12920 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
12921 
12922       //=== VK_KHR_synchronization2 ===
12923       vkCmdSetEvent2KHR   = PFN_vkCmdSetEvent2KHR( vkGetInstanceProcAddr( instance, "vkCmdSetEvent2KHR" ) );
12924       vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetInstanceProcAddr( instance, "vkCmdResetEvent2KHR" ) );
12925       vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents2KHR" ) );
12926       vkCmdPipelineBarrier2KHR =
12927         PFN_vkCmdPipelineBarrier2KHR( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier2KHR" ) );
12928       vkCmdWriteTimestamp2KHR =
12929         PFN_vkCmdWriteTimestamp2KHR( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp2KHR" ) );
12930       vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetInstanceProcAddr( instance, "vkQueueSubmit2KHR" ) );
12931       vkCmdWriteBufferMarker2AMD =
12932         PFN_vkCmdWriteBufferMarker2AMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarker2AMD" ) );
12933       vkGetQueueCheckpointData2NV =
12934         PFN_vkGetQueueCheckpointData2NV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointData2NV" ) );
12935 
12936       //=== VK_NV_fragment_shading_rate_enums ===
12937       vkCmdSetFragmentShadingRateEnumNV =
12938         PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateEnumNV" ) );
12939 
12940       //=== VK_KHR_copy_commands2 ===
12941       vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer2KHR" ) );
12942       vkCmdCopyImage2KHR  = PFN_vkCmdCopyImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImage2KHR" ) );
12943       vkCmdCopyBufferToImage2KHR =
12944         PFN_vkCmdCopyBufferToImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage2KHR" ) );
12945       vkCmdCopyImageToBuffer2KHR =
12946         PFN_vkCmdCopyImageToBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer2KHR" ) );
12947       vkCmdBlitImage2KHR    = PFN_vkCmdBlitImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdBlitImage2KHR" ) );
12948       vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdResolveImage2KHR" ) );
12949 
12950 #if defined( VK_USE_PLATFORM_WIN32_KHR )
12951       //=== VK_NV_acquire_winrt_display ===
12952       vkAcquireWinrtDisplayNV =
12953         PFN_vkAcquireWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkAcquireWinrtDisplayNV" ) );
12954       vkGetWinrtDisplayNV = PFN_vkGetWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkGetWinrtDisplayNV" ) );
12955 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
12956 
12957 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
12958       //=== VK_EXT_directfb_surface ===
12959       vkCreateDirectFBSurfaceEXT =
12960         PFN_vkCreateDirectFBSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateDirectFBSurfaceEXT" ) );
12961       vkGetPhysicalDeviceDirectFBPresentationSupportEXT = PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT(
12962         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" ) );
12963 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
12964 
12965       //=== VK_KHR_ray_tracing_pipeline ===
12966       vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysKHR" ) );
12967       vkCreateRayTracingPipelinesKHR =
12968         PFN_vkCreateRayTracingPipelinesKHR( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesKHR" ) );
12969       vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR(
12970         vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesKHR" ) );
12971       vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
12972         vkGetInstanceProcAddr( instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
12973       vkCmdTraceRaysIndirectKHR =
12974         PFN_vkCmdTraceRaysIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirectKHR" ) );
12975       vkGetRayTracingShaderGroupStackSizeKHR = PFN_vkGetRayTracingShaderGroupStackSizeKHR(
12976         vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupStackSizeKHR" ) );
12977       vkCmdSetRayTracingPipelineStackSizeKHR = PFN_vkCmdSetRayTracingPipelineStackSizeKHR(
12978         vkGetInstanceProcAddr( instance, "vkCmdSetRayTracingPipelineStackSizeKHR" ) );
12979 
12980       //=== VK_EXT_vertex_input_dynamic_state ===
12981       vkCmdSetVertexInputEXT =
12982         PFN_vkCmdSetVertexInputEXT( vkGetInstanceProcAddr( instance, "vkCmdSetVertexInputEXT" ) );
12983 
12984 #if defined( VK_USE_PLATFORM_FUCHSIA )
12985       //=== VK_FUCHSIA_external_memory ===
12986       vkGetMemoryZirconHandleFUCHSIA =
12987         PFN_vkGetMemoryZirconHandleFUCHSIA( vkGetInstanceProcAddr( instance, "vkGetMemoryZirconHandleFUCHSIA" ) );
12988       vkGetMemoryZirconHandlePropertiesFUCHSIA = PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA(
12989         vkGetInstanceProcAddr( instance, "vkGetMemoryZirconHandlePropertiesFUCHSIA" ) );
12990 #endif /*VK_USE_PLATFORM_FUCHSIA*/
12991 
12992 #if defined( VK_USE_PLATFORM_FUCHSIA )
12993       //=== VK_FUCHSIA_external_semaphore ===
12994       vkImportSemaphoreZirconHandleFUCHSIA = PFN_vkImportSemaphoreZirconHandleFUCHSIA(
12995         vkGetInstanceProcAddr( instance, "vkImportSemaphoreZirconHandleFUCHSIA" ) );
12996       vkGetSemaphoreZirconHandleFUCHSIA =
12997         PFN_vkGetSemaphoreZirconHandleFUCHSIA( vkGetInstanceProcAddr( instance, "vkGetSemaphoreZirconHandleFUCHSIA" ) );
12998 #endif /*VK_USE_PLATFORM_FUCHSIA*/
12999 
13000 #if defined( VK_USE_PLATFORM_FUCHSIA )
13001       //=== VK_FUCHSIA_buffer_collection ===
13002       vkCreateBufferCollectionFUCHSIA =
13003         PFN_vkCreateBufferCollectionFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateBufferCollectionFUCHSIA" ) );
13004       vkSetBufferCollectionImageConstraintsFUCHSIA = PFN_vkSetBufferCollectionImageConstraintsFUCHSIA(
13005         vkGetInstanceProcAddr( instance, "vkSetBufferCollectionImageConstraintsFUCHSIA" ) );
13006       vkSetBufferCollectionBufferConstraintsFUCHSIA = PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA(
13007         vkGetInstanceProcAddr( instance, "vkSetBufferCollectionBufferConstraintsFUCHSIA" ) );
13008       vkDestroyBufferCollectionFUCHSIA =
13009         PFN_vkDestroyBufferCollectionFUCHSIA( vkGetInstanceProcAddr( instance, "vkDestroyBufferCollectionFUCHSIA" ) );
13010       vkGetBufferCollectionPropertiesFUCHSIA = PFN_vkGetBufferCollectionPropertiesFUCHSIA(
13011         vkGetInstanceProcAddr( instance, "vkGetBufferCollectionPropertiesFUCHSIA" ) );
13012 #endif /*VK_USE_PLATFORM_FUCHSIA*/
13013 
13014       //=== VK_HUAWEI_subpass_shading ===
13015       vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
13016         vkGetInstanceProcAddr( instance, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" ) );
13017       vkCmdSubpassShadingHUAWEI =
13018         PFN_vkCmdSubpassShadingHUAWEI( vkGetInstanceProcAddr( instance, "vkCmdSubpassShadingHUAWEI" ) );
13019 
13020       //=== VK_HUAWEI_invocation_mask ===
13021       vkCmdBindInvocationMaskHUAWEI =
13022         PFN_vkCmdBindInvocationMaskHUAWEI( vkGetInstanceProcAddr( instance, "vkCmdBindInvocationMaskHUAWEI" ) );
13023 
13024       //=== VK_NV_external_memory_rdma ===
13025       vkGetMemoryRemoteAddressNV =
13026         PFN_vkGetMemoryRemoteAddressNV( vkGetInstanceProcAddr( instance, "vkGetMemoryRemoteAddressNV" ) );
13027 
13028       //=== VK_EXT_extended_dynamic_state2 ===
13029       vkCmdSetPatchControlPointsEXT =
13030         PFN_vkCmdSetPatchControlPointsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPatchControlPointsEXT" ) );
13031       vkCmdSetRasterizerDiscardEnableEXT = PFN_vkCmdSetRasterizerDiscardEnableEXT(
13032         vkGetInstanceProcAddr( instance, "vkCmdSetRasterizerDiscardEnableEXT" ) );
13033       vkCmdSetDepthBiasEnableEXT =
13034         PFN_vkCmdSetDepthBiasEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBiasEnableEXT" ) );
13035       vkCmdSetLogicOpEXT = PFN_vkCmdSetLogicOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLogicOpEXT" ) );
13036       vkCmdSetPrimitiveRestartEnableEXT =
13037         PFN_vkCmdSetPrimitiveRestartEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveRestartEnableEXT" ) );
13038 
13039 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
13040       //=== VK_QNX_screen_surface ===
13041       vkCreateScreenSurfaceQNX =
13042         PFN_vkCreateScreenSurfaceQNX( vkGetInstanceProcAddr( instance, "vkCreateScreenSurfaceQNX" ) );
13043       vkGetPhysicalDeviceScreenPresentationSupportQNX = PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX(
13044         vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceScreenPresentationSupportQNX" ) );
13045 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
13046 
13047       //=== VK_EXT_color_write_enable ===
13048       vkCmdSetColorWriteEnableEXT =
13049         PFN_vkCmdSetColorWriteEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetColorWriteEnableEXT" ) );
13050 
13051       //=== VK_EXT_multi_draw ===
13052       vkCmdDrawMultiEXT = PFN_vkCmdDrawMultiEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawMultiEXT" ) );
13053       vkCmdDrawMultiIndexedEXT =
13054         PFN_vkCmdDrawMultiIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawMultiIndexedEXT" ) );
13055 
13056       //=== VK_EXT_pageable_device_local_memory ===
13057       vkSetDeviceMemoryPriorityEXT =
13058         PFN_vkSetDeviceMemoryPriorityEXT( vkGetInstanceProcAddr( instance, "vkSetDeviceMemoryPriorityEXT" ) );
13059 
13060       //=== VK_KHR_maintenance4 ===
13061       vkGetDeviceBufferMemoryRequirementsKHR = PFN_vkGetDeviceBufferMemoryRequirementsKHR(
13062         vkGetInstanceProcAddr( instance, "vkGetDeviceBufferMemoryRequirementsKHR" ) );
13063       vkGetDeviceImageMemoryRequirementsKHR = PFN_vkGetDeviceImageMemoryRequirementsKHR(
13064         vkGetInstanceProcAddr( instance, "vkGetDeviceImageMemoryRequirementsKHR" ) );
13065       vkGetDeviceImageSparseMemoryRequirementsKHR = PFN_vkGetDeviceImageSparseMemoryRequirementsKHR(
13066         vkGetInstanceProcAddr( instance, "vkGetDeviceImageSparseMemoryRequirementsKHR" ) );
13067     }
13068 
init(VULKAN_HPP_NAMESPACE::Device deviceCpp)13069     void init( VULKAN_HPP_NAMESPACE::Device deviceCpp ) VULKAN_HPP_NOEXCEPT
13070     {
13071       VkDevice device = static_cast<VkDevice>( deviceCpp );
13072 
13073       //=== VK_VERSION_1_0 ===
13074       vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetDeviceProcAddr( device, "vkGetDeviceProcAddr" ) );
13075       vkDestroyDevice     = PFN_vkDestroyDevice( vkGetDeviceProcAddr( device, "vkDestroyDevice" ) );
13076       vkGetDeviceQueue    = PFN_vkGetDeviceQueue( vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) );
13077       vkQueueSubmit       = PFN_vkQueueSubmit( vkGetDeviceProcAddr( device, "vkQueueSubmit" ) );
13078       vkQueueWaitIdle     = PFN_vkQueueWaitIdle( vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) );
13079       vkDeviceWaitIdle    = PFN_vkDeviceWaitIdle( vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ) );
13080       vkAllocateMemory    = PFN_vkAllocateMemory( vkGetDeviceProcAddr( device, "vkAllocateMemory" ) );
13081       vkFreeMemory        = PFN_vkFreeMemory( vkGetDeviceProcAddr( device, "vkFreeMemory" ) );
13082       vkMapMemory         = PFN_vkMapMemory( vkGetDeviceProcAddr( device, "vkMapMemory" ) );
13083       vkUnmapMemory       = PFN_vkUnmapMemory( vkGetDeviceProcAddr( device, "vkUnmapMemory" ) );
13084       vkFlushMappedMemoryRanges =
13085         PFN_vkFlushMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) );
13086       vkInvalidateMappedMemoryRanges =
13087         PFN_vkInvalidateMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) );
13088       vkGetDeviceMemoryCommitment =
13089         PFN_vkGetDeviceMemoryCommitment( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) );
13090       vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetDeviceProcAddr( device, "vkBindBufferMemory" ) );
13091       vkBindImageMemory  = PFN_vkBindImageMemory( vkGetDeviceProcAddr( device, "vkBindImageMemory" ) );
13092       vkGetBufferMemoryRequirements =
13093         PFN_vkGetBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) );
13094       vkGetImageMemoryRequirements =
13095         PFN_vkGetImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) );
13096       vkGetImageSparseMemoryRequirements =
13097         PFN_vkGetImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) );
13098       vkQueueBindSparse     = PFN_vkQueueBindSparse( vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) );
13099       vkCreateFence         = PFN_vkCreateFence( vkGetDeviceProcAddr( device, "vkCreateFence" ) );
13100       vkDestroyFence        = PFN_vkDestroyFence( vkGetDeviceProcAddr( device, "vkDestroyFence" ) );
13101       vkResetFences         = PFN_vkResetFences( vkGetDeviceProcAddr( device, "vkResetFences" ) );
13102       vkGetFenceStatus      = PFN_vkGetFenceStatus( vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) );
13103       vkWaitForFences       = PFN_vkWaitForFences( vkGetDeviceProcAddr( device, "vkWaitForFences" ) );
13104       vkCreateSemaphore     = PFN_vkCreateSemaphore( vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) );
13105       vkDestroySemaphore    = PFN_vkDestroySemaphore( vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) );
13106       vkCreateEvent         = PFN_vkCreateEvent( vkGetDeviceProcAddr( device, "vkCreateEvent" ) );
13107       vkDestroyEvent        = PFN_vkDestroyEvent( vkGetDeviceProcAddr( device, "vkDestroyEvent" ) );
13108       vkGetEventStatus      = PFN_vkGetEventStatus( vkGetDeviceProcAddr( device, "vkGetEventStatus" ) );
13109       vkSetEvent            = PFN_vkSetEvent( vkGetDeviceProcAddr( device, "vkSetEvent" ) );
13110       vkResetEvent          = PFN_vkResetEvent( vkGetDeviceProcAddr( device, "vkResetEvent" ) );
13111       vkCreateQueryPool     = PFN_vkCreateQueryPool( vkGetDeviceProcAddr( device, "vkCreateQueryPool" ) );
13112       vkDestroyQueryPool    = PFN_vkDestroyQueryPool( vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) );
13113       vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ) );
13114       vkCreateBuffer        = PFN_vkCreateBuffer( vkGetDeviceProcAddr( device, "vkCreateBuffer" ) );
13115       vkDestroyBuffer       = PFN_vkDestroyBuffer( vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) );
13116       vkCreateBufferView    = PFN_vkCreateBufferView( vkGetDeviceProcAddr( device, "vkCreateBufferView" ) );
13117       vkDestroyBufferView   = PFN_vkDestroyBufferView( vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) );
13118       vkCreateImage         = PFN_vkCreateImage( vkGetDeviceProcAddr( device, "vkCreateImage" ) );
13119       vkDestroyImage        = PFN_vkDestroyImage( vkGetDeviceProcAddr( device, "vkDestroyImage" ) );
13120       vkGetImageSubresourceLayout =
13121         PFN_vkGetImageSubresourceLayout( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) );
13122       vkCreateImageView      = PFN_vkCreateImageView( vkGetDeviceProcAddr( device, "vkCreateImageView" ) );
13123       vkDestroyImageView     = PFN_vkDestroyImageView( vkGetDeviceProcAddr( device, "vkDestroyImageView" ) );
13124       vkCreateShaderModule   = PFN_vkCreateShaderModule( vkGetDeviceProcAddr( device, "vkCreateShaderModule" ) );
13125       vkDestroyShaderModule  = PFN_vkDestroyShaderModule( vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ) );
13126       vkCreatePipelineCache  = PFN_vkCreatePipelineCache( vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) );
13127       vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) );
13128       vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ) );
13129       vkMergePipelineCaches  = PFN_vkMergePipelineCaches( vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ) );
13130       vkCreateGraphicsPipelines =
13131         PFN_vkCreateGraphicsPipelines( vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) );
13132       vkCreateComputePipelines =
13133         PFN_vkCreateComputePipelines( vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) );
13134       vkDestroyPipeline       = PFN_vkDestroyPipeline( vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) );
13135       vkCreatePipelineLayout  = PFN_vkCreatePipelineLayout( vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ) );
13136       vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ) );
13137       vkCreateSampler         = PFN_vkCreateSampler( vkGetDeviceProcAddr( device, "vkCreateSampler" ) );
13138       vkDestroySampler        = PFN_vkDestroySampler( vkGetDeviceProcAddr( device, "vkDestroySampler" ) );
13139       vkCreateDescriptorSetLayout =
13140         PFN_vkCreateDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) );
13141       vkDestroyDescriptorSetLayout =
13142         PFN_vkDestroyDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) );
13143       vkCreateDescriptorPool  = PFN_vkCreateDescriptorPool( vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ) );
13144       vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ) );
13145       vkResetDescriptorPool   = PFN_vkResetDescriptorPool( vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ) );
13146       vkAllocateDescriptorSets =
13147         PFN_vkAllocateDescriptorSets( vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ) );
13148       vkFreeDescriptorSets   = PFN_vkFreeDescriptorSets( vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ) );
13149       vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ) );
13150       vkCreateFramebuffer    = PFN_vkCreateFramebuffer( vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ) );
13151       vkDestroyFramebuffer   = PFN_vkDestroyFramebuffer( vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ) );
13152       vkCreateRenderPass     = PFN_vkCreateRenderPass( vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) );
13153       vkDestroyRenderPass    = PFN_vkDestroyRenderPass( vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ) );
13154       vkGetRenderAreaGranularity =
13155         PFN_vkGetRenderAreaGranularity( vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) );
13156       vkCreateCommandPool  = PFN_vkCreateCommandPool( vkGetDeviceProcAddr( device, "vkCreateCommandPool" ) );
13157       vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ) );
13158       vkResetCommandPool   = PFN_vkResetCommandPool( vkGetDeviceProcAddr( device, "vkResetCommandPool" ) );
13159       vkAllocateCommandBuffers =
13160         PFN_vkAllocateCommandBuffers( vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) );
13161       vkFreeCommandBuffers   = PFN_vkFreeCommandBuffers( vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ) );
13162       vkBeginCommandBuffer   = PFN_vkBeginCommandBuffer( vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ) );
13163       vkEndCommandBuffer     = PFN_vkEndCommandBuffer( vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) );
13164       vkResetCommandBuffer   = PFN_vkResetCommandBuffer( vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) );
13165       vkCmdBindPipeline      = PFN_vkCmdBindPipeline( vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) );
13166       vkCmdSetViewport       = PFN_vkCmdSetViewport( vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) );
13167       vkCmdSetScissor        = PFN_vkCmdSetScissor( vkGetDeviceProcAddr( device, "vkCmdSetScissor" ) );
13168       vkCmdSetLineWidth      = PFN_vkCmdSetLineWidth( vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) );
13169       vkCmdSetDepthBias      = PFN_vkCmdSetDepthBias( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) );
13170       vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ) );
13171       vkCmdSetDepthBounds    = PFN_vkCmdSetDepthBounds( vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ) );
13172       vkCmdSetStencilCompareMask =
13173         PFN_vkCmdSetStencilCompareMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) );
13174       vkCmdSetStencilWriteMask =
13175         PFN_vkCmdSetStencilWriteMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) );
13176       vkCmdSetStencilReference =
13177         PFN_vkCmdSetStencilReference( vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) );
13178       vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ) );
13179       vkCmdBindIndexBuffer    = PFN_vkCmdBindIndexBuffer( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ) );
13180       vkCmdBindVertexBuffers  = PFN_vkCmdBindVertexBuffers( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ) );
13181       vkCmdDraw               = PFN_vkCmdDraw( vkGetDeviceProcAddr( device, "vkCmdDraw" ) );
13182       vkCmdDrawIndexed        = PFN_vkCmdDrawIndexed( vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) );
13183       vkCmdDrawIndirect       = PFN_vkCmdDrawIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ) );
13184       vkCmdDrawIndexedIndirect =
13185         PFN_vkCmdDrawIndexedIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) );
13186       vkCmdDispatch          = PFN_vkCmdDispatch( vkGetDeviceProcAddr( device, "vkCmdDispatch" ) );
13187       vkCmdDispatchIndirect  = PFN_vkCmdDispatchIndirect( vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ) );
13188       vkCmdCopyBuffer        = PFN_vkCmdCopyBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ) );
13189       vkCmdCopyImage         = PFN_vkCmdCopyImage( vkGetDeviceProcAddr( device, "vkCmdCopyImage" ) );
13190       vkCmdBlitImage         = PFN_vkCmdBlitImage( vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) );
13191       vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ) );
13192       vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ) );
13193       vkCmdUpdateBuffer      = PFN_vkCmdUpdateBuffer( vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) );
13194       vkCmdFillBuffer        = PFN_vkCmdFillBuffer( vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ) );
13195       vkCmdClearColorImage   = PFN_vkCmdClearColorImage( vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) );
13196       vkCmdClearDepthStencilImage =
13197         PFN_vkCmdClearDepthStencilImage( vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) );
13198       vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ) );
13199       vkCmdResolveImage     = PFN_vkCmdResolveImage( vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) );
13200       vkCmdSetEvent         = PFN_vkCmdSetEvent( vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) );
13201       vkCmdResetEvent       = PFN_vkCmdResetEvent( vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) );
13202       vkCmdWaitEvents       = PFN_vkCmdWaitEvents( vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) );
13203       vkCmdPipelineBarrier  = PFN_vkCmdPipelineBarrier( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ) );
13204       vkCmdBeginQuery       = PFN_vkCmdBeginQuery( vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ) );
13205       vkCmdEndQuery         = PFN_vkCmdEndQuery( vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) );
13206       vkCmdResetQueryPool   = PFN_vkCmdResetQueryPool( vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) );
13207       vkCmdWriteTimestamp   = PFN_vkCmdWriteTimestamp( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) );
13208       vkCmdCopyQueryPoolResults =
13209         PFN_vkCmdCopyQueryPoolResults( vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ) );
13210       vkCmdPushConstants   = PFN_vkCmdPushConstants( vkGetDeviceProcAddr( device, "vkCmdPushConstants" ) );
13211       vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ) );
13212       vkCmdNextSubpass     = PFN_vkCmdNextSubpass( vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) );
13213       vkCmdEndRenderPass   = PFN_vkCmdEndRenderPass( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) );
13214       vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ) );
13215 
13216       //=== VK_VERSION_1_1 ===
13217       vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) );
13218       vkBindImageMemory2  = PFN_vkBindImageMemory2( vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) );
13219       vkGetDeviceGroupPeerMemoryFeatures =
13220         PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) );
13221       vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ) );
13222       vkCmdDispatchBase  = PFN_vkCmdDispatchBase( vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) );
13223       vkGetImageMemoryRequirements2 =
13224         PFN_vkGetImageMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) );
13225       vkGetBufferMemoryRequirements2 =
13226         PFN_vkGetBufferMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) );
13227       vkGetImageSparseMemoryRequirements2 =
13228         PFN_vkGetImageSparseMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) );
13229       vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) );
13230       vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) );
13231       vkCreateSamplerYcbcrConversion =
13232         PFN_vkCreateSamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) );
13233       vkDestroySamplerYcbcrConversion =
13234         PFN_vkDestroySamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) );
13235       vkCreateDescriptorUpdateTemplate =
13236         PFN_vkCreateDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) );
13237       vkDestroyDescriptorUpdateTemplate =
13238         PFN_vkDestroyDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) );
13239       vkUpdateDescriptorSetWithTemplate =
13240         PFN_vkUpdateDescriptorSetWithTemplate( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) );
13241       vkGetDescriptorSetLayoutSupport =
13242         PFN_vkGetDescriptorSetLayoutSupport( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) );
13243 
13244       //=== VK_VERSION_1_2 ===
13245       vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCount" ) );
13246       vkCmdDrawIndexedIndirectCount =
13247         PFN_vkCmdDrawIndexedIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCount" ) );
13248       vkCreateRenderPass2   = PFN_vkCreateRenderPass2( vkGetDeviceProcAddr( device, "vkCreateRenderPass2" ) );
13249       vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2" ) );
13250       vkCmdNextSubpass2     = PFN_vkCmdNextSubpass2( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" ) );
13251       vkCmdEndRenderPass2   = PFN_vkCmdEndRenderPass2( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" ) );
13252       vkResetQueryPool      = PFN_vkResetQueryPool( vkGetDeviceProcAddr( device, "vkResetQueryPool" ) );
13253       vkGetSemaphoreCounterValue =
13254         PFN_vkGetSemaphoreCounterValue( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" ) );
13255       vkWaitSemaphores  = PFN_vkWaitSemaphores( vkGetDeviceProcAddr( device, "vkWaitSemaphores" ) );
13256       vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetDeviceProcAddr( device, "vkSignalSemaphore" ) );
13257       vkGetBufferDeviceAddress =
13258         PFN_vkGetBufferDeviceAddress( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" ) );
13259       vkGetBufferOpaqueCaptureAddress =
13260         PFN_vkGetBufferOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" ) );
13261       vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress(
13262         vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
13263 
13264       //=== VK_KHR_swapchain ===
13265       vkCreateSwapchainKHR    = PFN_vkCreateSwapchainKHR( vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) );
13266       vkDestroySwapchainKHR   = PFN_vkDestroySwapchainKHR( vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) );
13267       vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) );
13268       vkAcquireNextImageKHR   = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) );
13269       vkQueuePresentKHR       = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) );
13270       vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR(
13271         vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
13272       vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR(
13273         vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
13274       vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) );
13275 
13276       //=== VK_KHR_display_swapchain ===
13277       vkCreateSharedSwapchainsKHR =
13278         PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) );
13279 
13280       //=== VK_EXT_debug_marker ===
13281       vkDebugMarkerSetObjectTagEXT =
13282         PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) );
13283       vkDebugMarkerSetObjectNameEXT =
13284         PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) );
13285       vkCmdDebugMarkerBeginEXT =
13286         PFN_vkCmdDebugMarkerBeginEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) );
13287       vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) );
13288       vkCmdDebugMarkerInsertEXT =
13289         PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) );
13290 
13291 #if defined( VK_ENABLE_BETA_EXTENSIONS )
13292       //=== VK_KHR_video_queue ===
13293       vkCreateVideoSessionKHR = PFN_vkCreateVideoSessionKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionKHR" ) );
13294       vkDestroyVideoSessionKHR =
13295         PFN_vkDestroyVideoSessionKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionKHR" ) );
13296       vkGetVideoSessionMemoryRequirementsKHR = PFN_vkGetVideoSessionMemoryRequirementsKHR(
13297         vkGetDeviceProcAddr( device, "vkGetVideoSessionMemoryRequirementsKHR" ) );
13298       vkBindVideoSessionMemoryKHR =
13299         PFN_vkBindVideoSessionMemoryKHR( vkGetDeviceProcAddr( device, "vkBindVideoSessionMemoryKHR" ) );
13300       vkCreateVideoSessionParametersKHR =
13301         PFN_vkCreateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionParametersKHR" ) );
13302       vkUpdateVideoSessionParametersKHR =
13303         PFN_vkUpdateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkUpdateVideoSessionParametersKHR" ) );
13304       vkDestroyVideoSessionParametersKHR =
13305         PFN_vkDestroyVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionParametersKHR" ) );
13306       vkCmdBeginVideoCodingKHR =
13307         PFN_vkCmdBeginVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdBeginVideoCodingKHR" ) );
13308       vkCmdEndVideoCodingKHR = PFN_vkCmdEndVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdEndVideoCodingKHR" ) );
13309       vkCmdControlVideoCodingKHR =
13310         PFN_vkCmdControlVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdControlVideoCodingKHR" ) );
13311 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13312 
13313 #if defined( VK_ENABLE_BETA_EXTENSIONS )
13314       //=== VK_KHR_video_decode_queue ===
13315       vkCmdDecodeVideoKHR = PFN_vkCmdDecodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdDecodeVideoKHR" ) );
13316 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13317 
13318       //=== VK_EXT_transform_feedback ===
13319       vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT(
13320         vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) );
13321       vkCmdBeginTransformFeedbackEXT =
13322         PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) );
13323       vkCmdEndTransformFeedbackEXT =
13324         PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) );
13325       vkCmdBeginQueryIndexedEXT =
13326         PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) );
13327       vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) );
13328       vkCmdDrawIndirectByteCountEXT =
13329         PFN_vkCmdDrawIndirectByteCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) );
13330 
13331       //=== VK_NVX_binary_import ===
13332       vkCreateCuModuleNVX    = PFN_vkCreateCuModuleNVX( vkGetDeviceProcAddr( device, "vkCreateCuModuleNVX" ) );
13333       vkCreateCuFunctionNVX  = PFN_vkCreateCuFunctionNVX( vkGetDeviceProcAddr( device, "vkCreateCuFunctionNVX" ) );
13334       vkDestroyCuModuleNVX   = PFN_vkDestroyCuModuleNVX( vkGetDeviceProcAddr( device, "vkDestroyCuModuleNVX" ) );
13335       vkDestroyCuFunctionNVX = PFN_vkDestroyCuFunctionNVX( vkGetDeviceProcAddr( device, "vkDestroyCuFunctionNVX" ) );
13336       vkCmdCuLaunchKernelNVX = PFN_vkCmdCuLaunchKernelNVX( vkGetDeviceProcAddr( device, "vkCmdCuLaunchKernelNVX" ) );
13337 
13338       //=== VK_NVX_image_view_handle ===
13339       vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) );
13340       vkGetImageViewAddressNVX =
13341         PFN_vkGetImageViewAddressNVX( vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ) );
13342 
13343       //=== VK_AMD_draw_indirect_count ===
13344       vkCmdDrawIndirectCountAMD =
13345         PFN_vkCmdDrawIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ) );
13346       if ( !vkCmdDrawIndirectCount )
13347         vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD;
13348       vkCmdDrawIndexedIndirectCountAMD =
13349         PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) );
13350       if ( !vkCmdDrawIndexedIndirectCount )
13351         vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD;
13352 
13353       //=== VK_AMD_shader_info ===
13354       vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) );
13355 
13356 #if defined( VK_USE_PLATFORM_WIN32_KHR )
13357       //=== VK_NV_external_memory_win32 ===
13358       vkGetMemoryWin32HandleNV =
13359         PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) );
13360 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13361 
13362       //=== VK_KHR_device_group ===
13363       vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR(
13364         vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
13365       if ( !vkGetDeviceGroupPeerMemoryFeatures )
13366         vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
13367       vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) );
13368       if ( !vkCmdSetDeviceMask )
13369         vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
13370       vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) );
13371       if ( !vkCmdDispatchBase )
13372         vkCmdDispatchBase = vkCmdDispatchBaseKHR;
13373 
13374       //=== VK_KHR_maintenance1 ===
13375       vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) );
13376       if ( !vkTrimCommandPool )
13377         vkTrimCommandPool = vkTrimCommandPoolKHR;
13378 
13379 #if defined( VK_USE_PLATFORM_WIN32_KHR )
13380       //=== VK_KHR_external_memory_win32 ===
13381       vkGetMemoryWin32HandleKHR =
13382         PFN_vkGetMemoryWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) );
13383       vkGetMemoryWin32HandlePropertiesKHR =
13384         PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) );
13385 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13386 
13387       //=== VK_KHR_external_memory_fd ===
13388       vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) );
13389       vkGetMemoryFdPropertiesKHR =
13390         PFN_vkGetMemoryFdPropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) );
13391 
13392 #if defined( VK_USE_PLATFORM_WIN32_KHR )
13393       //=== VK_KHR_external_semaphore_win32 ===
13394       vkImportSemaphoreWin32HandleKHR =
13395         PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) );
13396       vkGetSemaphoreWin32HandleKHR =
13397         PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) );
13398 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13399 
13400       //=== VK_KHR_external_semaphore_fd ===
13401       vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) );
13402       vkGetSemaphoreFdKHR    = PFN_vkGetSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) );
13403 
13404       //=== VK_KHR_push_descriptor ===
13405       vkCmdPushDescriptorSetKHR =
13406         PFN_vkCmdPushDescriptorSetKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) );
13407       vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR(
13408         vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
13409 
13410       //=== VK_EXT_conditional_rendering ===
13411       vkCmdBeginConditionalRenderingEXT =
13412         PFN_vkCmdBeginConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) );
13413       vkCmdEndConditionalRenderingEXT =
13414         PFN_vkCmdEndConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) );
13415 
13416       //=== VK_KHR_descriptor_update_template ===
13417       vkCreateDescriptorUpdateTemplateKHR =
13418         PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) );
13419       if ( !vkCreateDescriptorUpdateTemplate )
13420         vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
13421       vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR(
13422         vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) );
13423       if ( !vkDestroyDescriptorUpdateTemplate )
13424         vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
13425       vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR(
13426         vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) );
13427       if ( !vkUpdateDescriptorSetWithTemplate )
13428         vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
13429 
13430       //=== VK_NV_clip_space_w_scaling ===
13431       vkCmdSetViewportWScalingNV =
13432         PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) );
13433 
13434       //=== VK_EXT_display_control ===
13435       vkDisplayPowerControlEXT =
13436         PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) );
13437       vkRegisterDeviceEventEXT =
13438         PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) );
13439       vkRegisterDisplayEventEXT =
13440         PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) );
13441       vkGetSwapchainCounterEXT =
13442         PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) );
13443 
13444       //=== VK_GOOGLE_display_timing ===
13445       vkGetRefreshCycleDurationGOOGLE =
13446         PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) );
13447       vkGetPastPresentationTimingGOOGLE =
13448         PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) );
13449 
13450       //=== VK_EXT_discard_rectangles ===
13451       vkCmdSetDiscardRectangleEXT =
13452         PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) );
13453 
13454       //=== VK_EXT_hdr_metadata ===
13455       vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) );
13456 
13457       //=== VK_KHR_create_renderpass2 ===
13458       vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) );
13459       if ( !vkCreateRenderPass2 )
13460         vkCreateRenderPass2 = vkCreateRenderPass2KHR;
13461       vkCmdBeginRenderPass2KHR =
13462         PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) );
13463       if ( !vkCmdBeginRenderPass2 )
13464         vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
13465       vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) );
13466       if ( !vkCmdNextSubpass2 )
13467         vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
13468       vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) );
13469       if ( !vkCmdEndRenderPass2 )
13470         vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
13471 
13472       //=== VK_KHR_shared_presentable_image ===
13473       vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) );
13474 
13475 #if defined( VK_USE_PLATFORM_WIN32_KHR )
13476       //=== VK_KHR_external_fence_win32 ===
13477       vkImportFenceWin32HandleKHR =
13478         PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) );
13479       vkGetFenceWin32HandleKHR =
13480         PFN_vkGetFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) );
13481 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13482 
13483       //=== VK_KHR_external_fence_fd ===
13484       vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) );
13485       vkGetFenceFdKHR    = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) );
13486 
13487       //=== VK_KHR_performance_query ===
13488       vkAcquireProfilingLockKHR =
13489         PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) );
13490       vkReleaseProfilingLockKHR =
13491         PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) );
13492 
13493       //=== VK_EXT_debug_utils ===
13494       vkSetDebugUtilsObjectNameEXT =
13495         PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) );
13496       vkSetDebugUtilsObjectTagEXT =
13497         PFN_vkSetDebugUtilsObjectTagEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) );
13498       vkQueueBeginDebugUtilsLabelEXT =
13499         PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) );
13500       vkQueueEndDebugUtilsLabelEXT =
13501         PFN_vkQueueEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) );
13502       vkQueueInsertDebugUtilsLabelEXT =
13503         PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) );
13504       vkCmdBeginDebugUtilsLabelEXT =
13505         PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) );
13506       vkCmdEndDebugUtilsLabelEXT =
13507         PFN_vkCmdEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) );
13508       vkCmdInsertDebugUtilsLabelEXT =
13509         PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) );
13510 
13511 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
13512       //=== VK_ANDROID_external_memory_android_hardware_buffer ===
13513       vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID(
13514         vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
13515       vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID(
13516         vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
13517 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
13518 
13519       //=== VK_EXT_sample_locations ===
13520       vkCmdSetSampleLocationsEXT =
13521         PFN_vkCmdSetSampleLocationsEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) );
13522 
13523       //=== VK_KHR_get_memory_requirements2 ===
13524       vkGetImageMemoryRequirements2KHR =
13525         PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) );
13526       if ( !vkGetImageMemoryRequirements2 )
13527         vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
13528       vkGetBufferMemoryRequirements2KHR =
13529         PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) );
13530       if ( !vkGetBufferMemoryRequirements2 )
13531         vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
13532       vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR(
13533         vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) );
13534       if ( !vkGetImageSparseMemoryRequirements2 )
13535         vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
13536 
13537       //=== VK_KHR_acceleration_structure ===
13538       vkCreateAccelerationStructureKHR =
13539         PFN_vkCreateAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ) );
13540       vkDestroyAccelerationStructureKHR =
13541         PFN_vkDestroyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ) );
13542       vkCmdBuildAccelerationStructuresKHR =
13543         PFN_vkCmdBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresKHR" ) );
13544       vkCmdBuildAccelerationStructuresIndirectKHR = PFN_vkCmdBuildAccelerationStructuresIndirectKHR(
13545         vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresIndirectKHR" ) );
13546       vkBuildAccelerationStructuresKHR =
13547         PFN_vkBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkBuildAccelerationStructuresKHR" ) );
13548       vkCopyAccelerationStructureKHR =
13549         PFN_vkCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureKHR" ) );
13550       vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR(
13551         vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureToMemoryKHR" ) );
13552       vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR(
13553         vkGetDeviceProcAddr( device, "vkCopyMemoryToAccelerationStructureKHR" ) );
13554       vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR(
13555         vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ) );
13556       vkCmdCopyAccelerationStructureKHR =
13557         PFN_vkCmdCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ) );
13558       vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR(
13559         vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
13560       vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR(
13561         vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
13562       vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR(
13563         vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" ) );
13564       vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR(
13565         vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
13566       vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR(
13567         vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
13568       vkGetAccelerationStructureBuildSizesKHR = PFN_vkGetAccelerationStructureBuildSizesKHR(
13569         vkGetDeviceProcAddr( device, "vkGetAccelerationStructureBuildSizesKHR" ) );
13570 
13571       //=== VK_KHR_sampler_ycbcr_conversion ===
13572       vkCreateSamplerYcbcrConversionKHR =
13573         PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) );
13574       if ( !vkCreateSamplerYcbcrConversion )
13575         vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR;
13576       vkDestroySamplerYcbcrConversionKHR =
13577         PFN_vkDestroySamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) );
13578       if ( !vkDestroySamplerYcbcrConversion )
13579         vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR;
13580 
13581       //=== VK_KHR_bind_memory2 ===
13582       vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) );
13583       if ( !vkBindBufferMemory2 )
13584         vkBindBufferMemory2 = vkBindBufferMemory2KHR;
13585       vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) );
13586       if ( !vkBindImageMemory2 )
13587         vkBindImageMemory2 = vkBindImageMemory2KHR;
13588 
13589       //=== VK_EXT_image_drm_format_modifier ===
13590       vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT(
13591         vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
13592 
13593       //=== VK_EXT_validation_cache ===
13594       vkCreateValidationCacheEXT =
13595         PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) );
13596       vkDestroyValidationCacheEXT =
13597         PFN_vkDestroyValidationCacheEXT( vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) );
13598       vkMergeValidationCachesEXT =
13599         PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) );
13600       vkGetValidationCacheDataEXT =
13601         PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) );
13602 
13603       //=== VK_NV_shading_rate_image ===
13604       vkCmdBindShadingRateImageNV =
13605         PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) );
13606       vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV(
13607         vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) );
13608       vkCmdSetCoarseSampleOrderNV =
13609         PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) );
13610 
13611       //=== VK_NV_ray_tracing ===
13612       vkCreateAccelerationStructureNV =
13613         PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) );
13614       vkDestroyAccelerationStructureNV =
13615         PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) );
13616       vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV(
13617         vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
13618       vkBindAccelerationStructureMemoryNV =
13619         PFN_vkBindAccelerationStructureMemoryNV( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) );
13620       vkCmdBuildAccelerationStructureNV =
13621         PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) );
13622       vkCmdCopyAccelerationStructureNV =
13623         PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) );
13624       vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) );
13625       vkCreateRayTracingPipelinesNV =
13626         PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) );
13627       vkGetRayTracingShaderGroupHandlesNV =
13628         PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) );
13629       if ( !vkGetRayTracingShaderGroupHandlesKHR )
13630         vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
13631       vkGetAccelerationStructureHandleNV =
13632         PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) );
13633       vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV(
13634         vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
13635       vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) );
13636 
13637       //=== VK_KHR_maintenance3 ===
13638       vkGetDescriptorSetLayoutSupportKHR =
13639         PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) );
13640       if ( !vkGetDescriptorSetLayoutSupport )
13641         vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
13642 
13643       //=== VK_KHR_draw_indirect_count ===
13644       vkCmdDrawIndirectCountKHR =
13645         PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) );
13646       if ( !vkCmdDrawIndirectCount )
13647         vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
13648       vkCmdDrawIndexedIndirectCountKHR =
13649         PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) );
13650       if ( !vkCmdDrawIndexedIndirectCount )
13651         vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
13652 
13653       //=== VK_EXT_external_memory_host ===
13654       vkGetMemoryHostPointerPropertiesEXT =
13655         PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) );
13656 
13657       //=== VK_AMD_buffer_marker ===
13658       vkCmdWriteBufferMarkerAMD =
13659         PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) );
13660 
13661       //=== VK_EXT_calibrated_timestamps ===
13662       vkGetCalibratedTimestampsEXT =
13663         PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) );
13664 
13665       //=== VK_NV_mesh_shader ===
13666       vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) );
13667       vkCmdDrawMeshTasksIndirectNV =
13668         PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) );
13669       vkCmdDrawMeshTasksIndirectCountNV =
13670         PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) );
13671 
13672       //=== VK_NV_scissor_exclusive ===
13673       vkCmdSetExclusiveScissorNV =
13674         PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) );
13675 
13676       //=== VK_NV_device_diagnostic_checkpoints ===
13677       vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) );
13678       vkGetQueueCheckpointDataNV =
13679         PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) );
13680 
13681       //=== VK_KHR_timeline_semaphore ===
13682       vkGetSemaphoreCounterValueKHR =
13683         PFN_vkGetSemaphoreCounterValueKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValueKHR" ) );
13684       if ( !vkGetSemaphoreCounterValue )
13685         vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
13686       vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetDeviceProcAddr( device, "vkWaitSemaphoresKHR" ) );
13687       if ( !vkWaitSemaphores )
13688         vkWaitSemaphores = vkWaitSemaphoresKHR;
13689       vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetDeviceProcAddr( device, "vkSignalSemaphoreKHR" ) );
13690       if ( !vkSignalSemaphore )
13691         vkSignalSemaphore = vkSignalSemaphoreKHR;
13692 
13693       //=== VK_INTEL_performance_query ===
13694       vkInitializePerformanceApiINTEL =
13695         PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) );
13696       vkUninitializePerformanceApiINTEL =
13697         PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) );
13698       vkCmdSetPerformanceMarkerINTEL =
13699         PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) );
13700       vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL(
13701         vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
13702       vkCmdSetPerformanceOverrideINTEL =
13703         PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) );
13704       vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL(
13705         vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) );
13706       vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL(
13707         vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) );
13708       vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL(
13709         vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) );
13710       vkGetPerformanceParameterINTEL =
13711         PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) );
13712 
13713       //=== VK_AMD_display_native_hdr ===
13714       vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) );
13715 
13716       //=== VK_KHR_fragment_shading_rate ===
13717       vkCmdSetFragmentShadingRateKHR =
13718         PFN_vkCmdSetFragmentShadingRateKHR( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateKHR" ) );
13719 
13720       //=== VK_EXT_buffer_device_address ===
13721       vkGetBufferDeviceAddressEXT =
13722         PFN_vkGetBufferDeviceAddressEXT( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) );
13723       if ( !vkGetBufferDeviceAddress )
13724         vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT;
13725 
13726       //=== VK_KHR_present_wait ===
13727       vkWaitForPresentKHR = PFN_vkWaitForPresentKHR( vkGetDeviceProcAddr( device, "vkWaitForPresentKHR" ) );
13728 
13729 #if defined( VK_USE_PLATFORM_WIN32_KHR )
13730       //=== VK_EXT_full_screen_exclusive ===
13731       vkAcquireFullScreenExclusiveModeEXT =
13732         PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) );
13733       vkReleaseFullScreenExclusiveModeEXT =
13734         PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) );
13735       vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT(
13736         vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
13737 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
13738 
13739       //=== VK_KHR_buffer_device_address ===
13740       vkGetBufferDeviceAddressKHR =
13741         PFN_vkGetBufferDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressKHR" ) );
13742       if ( !vkGetBufferDeviceAddress )
13743         vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR;
13744       vkGetBufferOpaqueCaptureAddressKHR =
13745         PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddressKHR" ) );
13746       if ( !vkGetBufferOpaqueCaptureAddress )
13747         vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR;
13748       vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR(
13749         vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
13750       if ( !vkGetDeviceMemoryOpaqueCaptureAddress )
13751         vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR;
13752 
13753       //=== VK_EXT_line_rasterization ===
13754       vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) );
13755 
13756       //=== VK_EXT_host_query_reset ===
13757       vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) );
13758       if ( !vkResetQueryPool )
13759         vkResetQueryPool = vkResetQueryPoolEXT;
13760 
13761       //=== VK_EXT_extended_dynamic_state ===
13762       vkCmdSetCullModeEXT  = PFN_vkCmdSetCullModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetCullModeEXT" ) );
13763       vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetDeviceProcAddr( device, "vkCmdSetFrontFaceEXT" ) );
13764       vkCmdSetPrimitiveTopologyEXT =
13765         PFN_vkCmdSetPrimitiveTopologyEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopologyEXT" ) );
13766       vkCmdSetViewportWithCountEXT =
13767         PFN_vkCmdSetViewportWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCountEXT" ) );
13768       vkCmdSetScissorWithCountEXT =
13769         PFN_vkCmdSetScissorWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCountEXT" ) );
13770       vkCmdBindVertexBuffers2EXT =
13771         PFN_vkCmdBindVertexBuffers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2EXT" ) );
13772       vkCmdSetDepthTestEnableEXT =
13773         PFN_vkCmdSetDepthTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthTestEnableEXT" ) );
13774       vkCmdSetDepthWriteEnableEXT =
13775         PFN_vkCmdSetDepthWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthWriteEnableEXT" ) );
13776       vkCmdSetDepthCompareOpEXT =
13777         PFN_vkCmdSetDepthCompareOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOpEXT" ) );
13778       vkCmdSetDepthBoundsTestEnableEXT =
13779         PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnableEXT" ) );
13780       vkCmdSetStencilTestEnableEXT =
13781         PFN_vkCmdSetStencilTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnableEXT" ) );
13782       vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilOpEXT" ) );
13783 
13784       //=== VK_KHR_deferred_host_operations ===
13785       vkCreateDeferredOperationKHR =
13786         PFN_vkCreateDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ) );
13787       vkDestroyDeferredOperationKHR =
13788         PFN_vkDestroyDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ) );
13789       vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR(
13790         vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
13791       vkGetDeferredOperationResultKHR =
13792         PFN_vkGetDeferredOperationResultKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" ) );
13793       vkDeferredOperationJoinKHR =
13794         PFN_vkDeferredOperationJoinKHR( vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ) );
13795 
13796       //=== VK_KHR_pipeline_executable_properties ===
13797       vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR(
13798         vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ) );
13799       vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR(
13800         vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ) );
13801       vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR(
13802         vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
13803 
13804       //=== VK_NV_device_generated_commands ===
13805       vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV(
13806         vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
13807       vkCmdPreprocessGeneratedCommandsNV =
13808         PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ) );
13809       vkCmdExecuteGeneratedCommandsNV =
13810         PFN_vkCmdExecuteGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ) );
13811       vkCmdBindPipelineShaderGroupNV =
13812         PFN_vkCmdBindPipelineShaderGroupNV( vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ) );
13813       vkCreateIndirectCommandsLayoutNV =
13814         PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) );
13815       vkDestroyIndirectCommandsLayoutNV =
13816         PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) );
13817 
13818       //=== VK_EXT_private_data ===
13819       vkCreatePrivateDataSlotEXT =
13820         PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) );
13821       vkDestroyPrivateDataSlotEXT =
13822         PFN_vkDestroyPrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ) );
13823       vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkSetPrivateDataEXT" ) );
13824       vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ) );
13825 
13826 #if defined( VK_ENABLE_BETA_EXTENSIONS )
13827       //=== VK_KHR_video_encode_queue ===
13828       vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdEncodeVideoKHR" ) );
13829 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13830 
13831       //=== VK_KHR_synchronization2 ===
13832       vkCmdSetEvent2KHR   = PFN_vkCmdSetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdSetEvent2KHR" ) );
13833       vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdResetEvent2KHR" ) );
13834       vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetDeviceProcAddr( device, "vkCmdWaitEvents2KHR" ) );
13835       vkCmdPipelineBarrier2KHR =
13836         PFN_vkCmdPipelineBarrier2KHR( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier2KHR" ) );
13837       vkCmdWriteTimestamp2KHR = PFN_vkCmdWriteTimestamp2KHR( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp2KHR" ) );
13838       vkQueueSubmit2KHR       = PFN_vkQueueSubmit2KHR( vkGetDeviceProcAddr( device, "vkQueueSubmit2KHR" ) );
13839       vkCmdWriteBufferMarker2AMD =
13840         PFN_vkCmdWriteBufferMarker2AMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarker2AMD" ) );
13841       vkGetQueueCheckpointData2NV =
13842         PFN_vkGetQueueCheckpointData2NV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointData2NV" ) );
13843 
13844       //=== VK_NV_fragment_shading_rate_enums ===
13845       vkCmdSetFragmentShadingRateEnumNV =
13846         PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateEnumNV" ) );
13847 
13848       //=== VK_KHR_copy_commands2 ===
13849       vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2KHR" ) );
13850       vkCmdCopyImage2KHR  = PFN_vkCmdCopyImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImage2KHR" ) );
13851       vkCmdCopyBufferToImage2KHR =
13852         PFN_vkCmdCopyBufferToImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2KHR" ) );
13853       vkCmdCopyImageToBuffer2KHR =
13854         PFN_vkCmdCopyImageToBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2KHR" ) );
13855       vkCmdBlitImage2KHR    = PFN_vkCmdBlitImage2KHR( vkGetDeviceProcAddr( device, "vkCmdBlitImage2KHR" ) );
13856       vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetDeviceProcAddr( device, "vkCmdResolveImage2KHR" ) );
13857 
13858       //=== VK_KHR_ray_tracing_pipeline ===
13859       vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) );
13860       vkCreateRayTracingPipelinesKHR =
13861         PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) );
13862       vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR(
13863         vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ) );
13864       vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
13865         vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
13866       vkCmdTraceRaysIndirectKHR =
13867         PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) );
13868       vkGetRayTracingShaderGroupStackSizeKHR = PFN_vkGetRayTracingShaderGroupStackSizeKHR(
13869         vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupStackSizeKHR" ) );
13870       vkCmdSetRayTracingPipelineStackSizeKHR = PFN_vkCmdSetRayTracingPipelineStackSizeKHR(
13871         vkGetDeviceProcAddr( device, "vkCmdSetRayTracingPipelineStackSizeKHR" ) );
13872 
13873       //=== VK_EXT_vertex_input_dynamic_state ===
13874       vkCmdSetVertexInputEXT = PFN_vkCmdSetVertexInputEXT( vkGetDeviceProcAddr( device, "vkCmdSetVertexInputEXT" ) );
13875 
13876 #if defined( VK_USE_PLATFORM_FUCHSIA )
13877       //=== VK_FUCHSIA_external_memory ===
13878       vkGetMemoryZirconHandleFUCHSIA =
13879         PFN_vkGetMemoryZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandleFUCHSIA" ) );
13880       vkGetMemoryZirconHandlePropertiesFUCHSIA = PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA(
13881         vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandlePropertiesFUCHSIA" ) );
13882 #endif /*VK_USE_PLATFORM_FUCHSIA*/
13883 
13884 #if defined( VK_USE_PLATFORM_FUCHSIA )
13885       //=== VK_FUCHSIA_external_semaphore ===
13886       vkImportSemaphoreZirconHandleFUCHSIA = PFN_vkImportSemaphoreZirconHandleFUCHSIA(
13887         vkGetDeviceProcAddr( device, "vkImportSemaphoreZirconHandleFUCHSIA" ) );
13888       vkGetSemaphoreZirconHandleFUCHSIA =
13889         PFN_vkGetSemaphoreZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetSemaphoreZirconHandleFUCHSIA" ) );
13890 #endif /*VK_USE_PLATFORM_FUCHSIA*/
13891 
13892 #if defined( VK_USE_PLATFORM_FUCHSIA )
13893       //=== VK_FUCHSIA_buffer_collection ===
13894       vkCreateBufferCollectionFUCHSIA =
13895         PFN_vkCreateBufferCollectionFUCHSIA( vkGetDeviceProcAddr( device, "vkCreateBufferCollectionFUCHSIA" ) );
13896       vkSetBufferCollectionImageConstraintsFUCHSIA = PFN_vkSetBufferCollectionImageConstraintsFUCHSIA(
13897         vkGetDeviceProcAddr( device, "vkSetBufferCollectionImageConstraintsFUCHSIA" ) );
13898       vkSetBufferCollectionBufferConstraintsFUCHSIA = PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA(
13899         vkGetDeviceProcAddr( device, "vkSetBufferCollectionBufferConstraintsFUCHSIA" ) );
13900       vkDestroyBufferCollectionFUCHSIA =
13901         PFN_vkDestroyBufferCollectionFUCHSIA( vkGetDeviceProcAddr( device, "vkDestroyBufferCollectionFUCHSIA" ) );
13902       vkGetBufferCollectionPropertiesFUCHSIA = PFN_vkGetBufferCollectionPropertiesFUCHSIA(
13903         vkGetDeviceProcAddr( device, "vkGetBufferCollectionPropertiesFUCHSIA" ) );
13904 #endif /*VK_USE_PLATFORM_FUCHSIA*/
13905 
13906       //=== VK_HUAWEI_subpass_shading ===
13907       vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
13908         vkGetDeviceProcAddr( device, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" ) );
13909       vkCmdSubpassShadingHUAWEI =
13910         PFN_vkCmdSubpassShadingHUAWEI( vkGetDeviceProcAddr( device, "vkCmdSubpassShadingHUAWEI" ) );
13911 
13912       //=== VK_HUAWEI_invocation_mask ===
13913       vkCmdBindInvocationMaskHUAWEI =
13914         PFN_vkCmdBindInvocationMaskHUAWEI( vkGetDeviceProcAddr( device, "vkCmdBindInvocationMaskHUAWEI" ) );
13915 
13916       //=== VK_NV_external_memory_rdma ===
13917       vkGetMemoryRemoteAddressNV =
13918         PFN_vkGetMemoryRemoteAddressNV( vkGetDeviceProcAddr( device, "vkGetMemoryRemoteAddressNV" ) );
13919 
13920       //=== VK_EXT_extended_dynamic_state2 ===
13921       vkCmdSetPatchControlPointsEXT =
13922         PFN_vkCmdSetPatchControlPointsEXT( vkGetDeviceProcAddr( device, "vkCmdSetPatchControlPointsEXT" ) );
13923       vkCmdSetRasterizerDiscardEnableEXT =
13924         PFN_vkCmdSetRasterizerDiscardEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetRasterizerDiscardEnableEXT" ) );
13925       vkCmdSetDepthBiasEnableEXT =
13926         PFN_vkCmdSetDepthBiasEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBiasEnableEXT" ) );
13927       vkCmdSetLogicOpEXT = PFN_vkCmdSetLogicOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetLogicOpEXT" ) );
13928       vkCmdSetPrimitiveRestartEnableEXT =
13929         PFN_vkCmdSetPrimitiveRestartEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveRestartEnableEXT" ) );
13930 
13931       //=== VK_EXT_color_write_enable ===
13932       vkCmdSetColorWriteEnableEXT =
13933         PFN_vkCmdSetColorWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorWriteEnableEXT" ) );
13934 
13935       //=== VK_EXT_multi_draw ===
13936       vkCmdDrawMultiEXT = PFN_vkCmdDrawMultiEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiEXT" ) );
13937       vkCmdDrawMultiIndexedEXT =
13938         PFN_vkCmdDrawMultiIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiIndexedEXT" ) );
13939 
13940       //=== VK_EXT_pageable_device_local_memory ===
13941       vkSetDeviceMemoryPriorityEXT =
13942         PFN_vkSetDeviceMemoryPriorityEXT( vkGetDeviceProcAddr( device, "vkSetDeviceMemoryPriorityEXT" ) );
13943 
13944       //=== VK_KHR_maintenance4 ===
13945       vkGetDeviceBufferMemoryRequirementsKHR = PFN_vkGetDeviceBufferMemoryRequirementsKHR(
13946         vkGetDeviceProcAddr( device, "vkGetDeviceBufferMemoryRequirementsKHR" ) );
13947       vkGetDeviceImageMemoryRequirementsKHR = PFN_vkGetDeviceImageMemoryRequirementsKHR(
13948         vkGetDeviceProcAddr( device, "vkGetDeviceImageMemoryRequirementsKHR" ) );
13949       vkGetDeviceImageSparseMemoryRequirementsKHR = PFN_vkGetDeviceImageSparseMemoryRequirementsKHR(
13950         vkGetDeviceProcAddr( device, "vkGetDeviceImageSparseMemoryRequirementsKHR" ) );
13951     }
13952   };
13953 }  // namespace VULKAN_HPP_NAMESPACE
13954 
13955 namespace std
13956 {
13957   //=======================
13958   //=== HASH structures ===
13959   //=======================
13960 
13961   template <typename BitType>
13962   struct hash<VULKAN_HPP_NAMESPACE::Flags<BitType>>
13963   {
operator ()std::hash13964     std::size_t operator()( VULKAN_HPP_NAMESPACE::Flags<BitType> const & flags ) const VULKAN_HPP_NOEXCEPT
13965     {
13966       return std::hash<typename std::underlying_type<BitType>::type>{}(
13967         static_cast<typename std::underlying_type<BitType>::type>( flags ) );
13968     }
13969   };
13970 
13971   //=== VK_VERSION_1_0 ===
13972 
13973   template <>
13974   struct hash<VULKAN_HPP_NAMESPACE::Instance>
13975   {
operator ()std::hash13976     std::size_t operator()( VULKAN_HPP_NAMESPACE::Instance const & instance ) const VULKAN_HPP_NOEXCEPT
13977     {
13978       return std::hash<VkInstance>{}( static_cast<VkInstance>( instance ) );
13979     }
13980   };
13981 
13982   template <>
13983   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevice>
13984   {
operator ()std::hash13985     std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevice const & physicalDevice ) const VULKAN_HPP_NOEXCEPT
13986     {
13987       return std::hash<VkPhysicalDevice>{}( static_cast<VkPhysicalDevice>( physicalDevice ) );
13988     }
13989   };
13990 
13991   template <>
13992   struct hash<VULKAN_HPP_NAMESPACE::Device>
13993   {
operator ()std::hash13994     std::size_t operator()( VULKAN_HPP_NAMESPACE::Device const & device ) const VULKAN_HPP_NOEXCEPT
13995     {
13996       return std::hash<VkDevice>{}( static_cast<VkDevice>( device ) );
13997     }
13998   };
13999 
14000   template <>
14001   struct hash<VULKAN_HPP_NAMESPACE::Queue>
14002   {
operator ()std::hash14003     std::size_t operator()( VULKAN_HPP_NAMESPACE::Queue const & queue ) const VULKAN_HPP_NOEXCEPT
14004     {
14005       return std::hash<VkQueue>{}( static_cast<VkQueue>( queue ) );
14006     }
14007   };
14008 
14009   template <>
14010   struct hash<VULKAN_HPP_NAMESPACE::DeviceMemory>
14011   {
operator ()std::hash14012     std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceMemory const & deviceMemory ) const VULKAN_HPP_NOEXCEPT
14013     {
14014       return std::hash<VkDeviceMemory>{}( static_cast<VkDeviceMemory>( deviceMemory ) );
14015     }
14016   };
14017 
14018   template <>
14019   struct hash<VULKAN_HPP_NAMESPACE::Fence>
14020   {
operator ()std::hash14021     std::size_t operator()( VULKAN_HPP_NAMESPACE::Fence const & fence ) const VULKAN_HPP_NOEXCEPT
14022     {
14023       return std::hash<VkFence>{}( static_cast<VkFence>( fence ) );
14024     }
14025   };
14026 
14027   template <>
14028   struct hash<VULKAN_HPP_NAMESPACE::Semaphore>
14029   {
operator ()std::hash14030     std::size_t operator()( VULKAN_HPP_NAMESPACE::Semaphore const & semaphore ) const VULKAN_HPP_NOEXCEPT
14031     {
14032       return std::hash<VkSemaphore>{}( static_cast<VkSemaphore>( semaphore ) );
14033     }
14034   };
14035 
14036   template <>
14037   struct hash<VULKAN_HPP_NAMESPACE::Event>
14038   {
operator ()std::hash14039     std::size_t operator()( VULKAN_HPP_NAMESPACE::Event const & event ) const VULKAN_HPP_NOEXCEPT
14040     {
14041       return std::hash<VkEvent>{}( static_cast<VkEvent>( event ) );
14042     }
14043   };
14044 
14045   template <>
14046   struct hash<VULKAN_HPP_NAMESPACE::QueryPool>
14047   {
operator ()std::hash14048     std::size_t operator()( VULKAN_HPP_NAMESPACE::QueryPool const & queryPool ) const VULKAN_HPP_NOEXCEPT
14049     {
14050       return std::hash<VkQueryPool>{}( static_cast<VkQueryPool>( queryPool ) );
14051     }
14052   };
14053 
14054   template <>
14055   struct hash<VULKAN_HPP_NAMESPACE::Buffer>
14056   {
operator ()std::hash14057     std::size_t operator()( VULKAN_HPP_NAMESPACE::Buffer const & buffer ) const VULKAN_HPP_NOEXCEPT
14058     {
14059       return std::hash<VkBuffer>{}( static_cast<VkBuffer>( buffer ) );
14060     }
14061   };
14062 
14063   template <>
14064   struct hash<VULKAN_HPP_NAMESPACE::BufferView>
14065   {
operator ()std::hash14066     std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferView const & bufferView ) const VULKAN_HPP_NOEXCEPT
14067     {
14068       return std::hash<VkBufferView>{}( static_cast<VkBufferView>( bufferView ) );
14069     }
14070   };
14071 
14072   template <>
14073   struct hash<VULKAN_HPP_NAMESPACE::Image>
14074   {
operator ()std::hash14075     std::size_t operator()( VULKAN_HPP_NAMESPACE::Image const & image ) const VULKAN_HPP_NOEXCEPT
14076     {
14077       return std::hash<VkImage>{}( static_cast<VkImage>( image ) );
14078     }
14079   };
14080 
14081   template <>
14082   struct hash<VULKAN_HPP_NAMESPACE::ImageView>
14083   {
operator ()std::hash14084     std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageView const & imageView ) const VULKAN_HPP_NOEXCEPT
14085     {
14086       return std::hash<VkImageView>{}( static_cast<VkImageView>( imageView ) );
14087     }
14088   };
14089 
14090   template <>
14091   struct hash<VULKAN_HPP_NAMESPACE::ShaderModule>
14092   {
operator ()std::hash14093     std::size_t operator()( VULKAN_HPP_NAMESPACE::ShaderModule const & shaderModule ) const VULKAN_HPP_NOEXCEPT
14094     {
14095       return std::hash<VkShaderModule>{}( static_cast<VkShaderModule>( shaderModule ) );
14096     }
14097   };
14098 
14099   template <>
14100   struct hash<VULKAN_HPP_NAMESPACE::PipelineCache>
14101   {
operator ()std::hash14102     std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCache const & pipelineCache ) const VULKAN_HPP_NOEXCEPT
14103     {
14104       return std::hash<VkPipelineCache>{}( static_cast<VkPipelineCache>( pipelineCache ) );
14105     }
14106   };
14107 
14108   template <>
14109   struct hash<VULKAN_HPP_NAMESPACE::Pipeline>
14110   {
operator ()std::hash14111     std::size_t operator()( VULKAN_HPP_NAMESPACE::Pipeline const & pipeline ) const VULKAN_HPP_NOEXCEPT
14112     {
14113       return std::hash<VkPipeline>{}( static_cast<VkPipeline>( pipeline ) );
14114     }
14115   };
14116 
14117   template <>
14118   struct hash<VULKAN_HPP_NAMESPACE::PipelineLayout>
14119   {
operator ()std::hash14120     std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineLayout const & pipelineLayout ) const VULKAN_HPP_NOEXCEPT
14121     {
14122       return std::hash<VkPipelineLayout>{}( static_cast<VkPipelineLayout>( pipelineLayout ) );
14123     }
14124   };
14125 
14126   template <>
14127   struct hash<VULKAN_HPP_NAMESPACE::Sampler>
14128   {
operator ()std::hash14129     std::size_t operator()( VULKAN_HPP_NAMESPACE::Sampler const & sampler ) const VULKAN_HPP_NOEXCEPT
14130     {
14131       return std::hash<VkSampler>{}( static_cast<VkSampler>( sampler ) );
14132     }
14133   };
14134 
14135   template <>
14136   struct hash<VULKAN_HPP_NAMESPACE::DescriptorPool>
14137   {
operator ()std::hash14138     std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorPool const & descriptorPool ) const VULKAN_HPP_NOEXCEPT
14139     {
14140       return std::hash<VkDescriptorPool>{}( static_cast<VkDescriptorPool>( descriptorPool ) );
14141     }
14142   };
14143 
14144   template <>
14145   struct hash<VULKAN_HPP_NAMESPACE::DescriptorSet>
14146   {
operator ()std::hash14147     std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorSet const & descriptorSet ) const VULKAN_HPP_NOEXCEPT
14148     {
14149       return std::hash<VkDescriptorSet>{}( static_cast<VkDescriptorSet>( descriptorSet ) );
14150     }
14151   };
14152 
14153   template <>
14154   struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetLayout>
14155   {
14156     std::size_t
operator ()std::hash14157       operator()( VULKAN_HPP_NAMESPACE::DescriptorSetLayout const & descriptorSetLayout ) const VULKAN_HPP_NOEXCEPT
14158     {
14159       return std::hash<VkDescriptorSetLayout>{}( static_cast<VkDescriptorSetLayout>( descriptorSetLayout ) );
14160     }
14161   };
14162 
14163   template <>
14164   struct hash<VULKAN_HPP_NAMESPACE::Framebuffer>
14165   {
operator ()std::hash14166     std::size_t operator()( VULKAN_HPP_NAMESPACE::Framebuffer const & framebuffer ) const VULKAN_HPP_NOEXCEPT
14167     {
14168       return std::hash<VkFramebuffer>{}( static_cast<VkFramebuffer>( framebuffer ) );
14169     }
14170   };
14171 
14172   template <>
14173   struct hash<VULKAN_HPP_NAMESPACE::RenderPass>
14174   {
operator ()std::hash14175     std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPass const & renderPass ) const VULKAN_HPP_NOEXCEPT
14176     {
14177       return std::hash<VkRenderPass>{}( static_cast<VkRenderPass>( renderPass ) );
14178     }
14179   };
14180 
14181   template <>
14182   struct hash<VULKAN_HPP_NAMESPACE::CommandPool>
14183   {
operator ()std::hash14184     std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandPool const & commandPool ) const VULKAN_HPP_NOEXCEPT
14185     {
14186       return std::hash<VkCommandPool>{}( static_cast<VkCommandPool>( commandPool ) );
14187     }
14188   };
14189 
14190   template <>
14191   struct hash<VULKAN_HPP_NAMESPACE::CommandBuffer>
14192   {
operator ()std::hash14193     std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandBuffer const & commandBuffer ) const VULKAN_HPP_NOEXCEPT
14194     {
14195       return std::hash<VkCommandBuffer>{}( static_cast<VkCommandBuffer>( commandBuffer ) );
14196     }
14197   };
14198 
14199   //=== VK_VERSION_1_1 ===
14200 
14201   template <>
14202   struct hash<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>
14203   {
operator ()std::hash14204     std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion const & samplerYcbcrConversion ) const
14205       VULKAN_HPP_NOEXCEPT
14206     {
14207       return std::hash<VkSamplerYcbcrConversion>{}( static_cast<VkSamplerYcbcrConversion>( samplerYcbcrConversion ) );
14208     }
14209   };
14210 
14211   template <>
14212   struct hash<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>
14213   {
operator ()std::hash14214     std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate const & descriptorUpdateTemplate ) const
14215       VULKAN_HPP_NOEXCEPT
14216     {
14217       return std::hash<VkDescriptorUpdateTemplate>{}(
14218         static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ) );
14219     }
14220   };
14221 
14222   //=== VK_KHR_surface ===
14223 
14224   template <>
14225   struct hash<VULKAN_HPP_NAMESPACE::SurfaceKHR>
14226   {
operator ()std::hash14227     std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfaceKHR const & surfaceKHR ) const VULKAN_HPP_NOEXCEPT
14228     {
14229       return std::hash<VkSurfaceKHR>{}( static_cast<VkSurfaceKHR>( surfaceKHR ) );
14230     }
14231   };
14232 
14233   //=== VK_KHR_swapchain ===
14234 
14235   template <>
14236   struct hash<VULKAN_HPP_NAMESPACE::SwapchainKHR>
14237   {
operator ()std::hash14238     std::size_t operator()( VULKAN_HPP_NAMESPACE::SwapchainKHR const & swapchainKHR ) const VULKAN_HPP_NOEXCEPT
14239     {
14240       return std::hash<VkSwapchainKHR>{}( static_cast<VkSwapchainKHR>( swapchainKHR ) );
14241     }
14242   };
14243 
14244   //=== VK_KHR_display ===
14245 
14246   template <>
14247   struct hash<VULKAN_HPP_NAMESPACE::DisplayKHR>
14248   {
operator ()std::hash14249     std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayKHR const & displayKHR ) const VULKAN_HPP_NOEXCEPT
14250     {
14251       return std::hash<VkDisplayKHR>{}( static_cast<VkDisplayKHR>( displayKHR ) );
14252     }
14253   };
14254 
14255   template <>
14256   struct hash<VULKAN_HPP_NAMESPACE::DisplayModeKHR>
14257   {
operator ()std::hash14258     std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayModeKHR const & displayModeKHR ) const VULKAN_HPP_NOEXCEPT
14259     {
14260       return std::hash<VkDisplayModeKHR>{}( static_cast<VkDisplayModeKHR>( displayModeKHR ) );
14261     }
14262   };
14263 
14264   //=== VK_EXT_debug_report ===
14265 
14266   template <>
14267   struct hash<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT>
14268   {
operator ()std::hash14269     std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT const & debugReportCallbackEXT ) const
14270       VULKAN_HPP_NOEXCEPT
14271     {
14272       return std::hash<VkDebugReportCallbackEXT>{}( static_cast<VkDebugReportCallbackEXT>( debugReportCallbackEXT ) );
14273     }
14274   };
14275 
14276 #if defined( VK_ENABLE_BETA_EXTENSIONS )
14277   //=== VK_KHR_video_queue ===
14278 
14279   template <>
14280   struct hash<VULKAN_HPP_NAMESPACE::VideoSessionKHR>
14281   {
operator ()std::hash14282     std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoSessionKHR const & videoSessionKHR ) const VULKAN_HPP_NOEXCEPT
14283     {
14284       return std::hash<VkVideoSessionKHR>{}( static_cast<VkVideoSessionKHR>( videoSessionKHR ) );
14285     }
14286   };
14287 
14288   template <>
14289   struct hash<VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR>
14290   {
operator ()std::hash14291     std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR const & videoSessionParametersKHR ) const
14292       VULKAN_HPP_NOEXCEPT
14293     {
14294       return std::hash<VkVideoSessionParametersKHR>{}(
14295         static_cast<VkVideoSessionParametersKHR>( videoSessionParametersKHR ) );
14296     }
14297   };
14298 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14299 
14300   //=== VK_NVX_binary_import ===
14301 
14302   template <>
14303   struct hash<VULKAN_HPP_NAMESPACE::CuModuleNVX>
14304   {
operator ()std::hash14305     std::size_t operator()( VULKAN_HPP_NAMESPACE::CuModuleNVX const & cuModuleNVX ) const VULKAN_HPP_NOEXCEPT
14306     {
14307       return std::hash<VkCuModuleNVX>{}( static_cast<VkCuModuleNVX>( cuModuleNVX ) );
14308     }
14309   };
14310 
14311   template <>
14312   struct hash<VULKAN_HPP_NAMESPACE::CuFunctionNVX>
14313   {
operator ()std::hash14314     std::size_t operator()( VULKAN_HPP_NAMESPACE::CuFunctionNVX const & cuFunctionNVX ) const VULKAN_HPP_NOEXCEPT
14315     {
14316       return std::hash<VkCuFunctionNVX>{}( static_cast<VkCuFunctionNVX>( cuFunctionNVX ) );
14317     }
14318   };
14319 
14320   //=== VK_EXT_debug_utils ===
14321 
14322   template <>
14323   struct hash<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT>
14324   {
operator ()std::hash14325     std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT const & debugUtilsMessengerEXT ) const
14326       VULKAN_HPP_NOEXCEPT
14327     {
14328       return std::hash<VkDebugUtilsMessengerEXT>{}( static_cast<VkDebugUtilsMessengerEXT>( debugUtilsMessengerEXT ) );
14329     }
14330   };
14331 
14332   //=== VK_KHR_acceleration_structure ===
14333 
14334   template <>
14335   struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR>
14336   {
operator ()std::hash14337     std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const & accelerationStructureKHR ) const
14338       VULKAN_HPP_NOEXCEPT
14339     {
14340       return std::hash<VkAccelerationStructureKHR>{}(
14341         static_cast<VkAccelerationStructureKHR>( accelerationStructureKHR ) );
14342     }
14343   };
14344 
14345   //=== VK_EXT_validation_cache ===
14346 
14347   template <>
14348   struct hash<VULKAN_HPP_NAMESPACE::ValidationCacheEXT>
14349   {
14350     std::size_t
operator ()std::hash14351       operator()( VULKAN_HPP_NAMESPACE::ValidationCacheEXT const & validationCacheEXT ) const VULKAN_HPP_NOEXCEPT
14352     {
14353       return std::hash<VkValidationCacheEXT>{}( static_cast<VkValidationCacheEXT>( validationCacheEXT ) );
14354     }
14355   };
14356 
14357   //=== VK_NV_ray_tracing ===
14358 
14359   template <>
14360   struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureNV>
14361   {
operator ()std::hash14362     std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureNV const & accelerationStructureNV ) const
14363       VULKAN_HPP_NOEXCEPT
14364     {
14365       return std::hash<VkAccelerationStructureNV>{}(
14366         static_cast<VkAccelerationStructureNV>( accelerationStructureNV ) );
14367     }
14368   };
14369 
14370   //=== VK_INTEL_performance_query ===
14371 
14372   template <>
14373   struct hash<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL>
14374   {
operator ()std::hash14375     std::size_t operator()( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL const & performanceConfigurationINTEL )
14376       const VULKAN_HPP_NOEXCEPT
14377     {
14378       return std::hash<VkPerformanceConfigurationINTEL>{}(
14379         static_cast<VkPerformanceConfigurationINTEL>( performanceConfigurationINTEL ) );
14380     }
14381   };
14382 
14383   //=== VK_KHR_deferred_host_operations ===
14384 
14385   template <>
14386   struct hash<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>
14387   {
14388     std::size_t
operator ()std::hash14389       operator()( VULKAN_HPP_NAMESPACE::DeferredOperationKHR const & deferredOperationKHR ) const VULKAN_HPP_NOEXCEPT
14390     {
14391       return std::hash<VkDeferredOperationKHR>{}( static_cast<VkDeferredOperationKHR>( deferredOperationKHR ) );
14392     }
14393   };
14394 
14395   //=== VK_NV_device_generated_commands ===
14396 
14397   template <>
14398   struct hash<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV>
14399   {
operator ()std::hash14400     std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV const & indirectCommandsLayoutNV ) const
14401       VULKAN_HPP_NOEXCEPT
14402     {
14403       return std::hash<VkIndirectCommandsLayoutNV>{}(
14404         static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayoutNV ) );
14405     }
14406   };
14407 
14408   //=== VK_EXT_private_data ===
14409 
14410   template <>
14411   struct hash<VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT>
14412   {
14413     std::size_t
operator ()std::hash14414       operator()( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT const & privateDataSlotEXT ) const VULKAN_HPP_NOEXCEPT
14415     {
14416       return std::hash<VkPrivateDataSlotEXT>{}( static_cast<VkPrivateDataSlotEXT>( privateDataSlotEXT ) );
14417     }
14418   };
14419 
14420 #if defined( VK_USE_PLATFORM_FUCHSIA )
14421   //=== VK_FUCHSIA_buffer_collection ===
14422 
14423   template <>
14424   struct hash<VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA>
14425   {
operator ()std::hash14426     std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA const & bufferCollectionFUCHSIA ) const
14427       VULKAN_HPP_NOEXCEPT
14428     {
14429       return std::hash<VkBufferCollectionFUCHSIA>{}(
14430         static_cast<VkBufferCollectionFUCHSIA>( bufferCollectionFUCHSIA ) );
14431     }
14432   };
14433 #endif /*VK_USE_PLATFORM_FUCHSIA*/
14434 
14435 }  // namespace std
14436 #endif
14437