1// Copyright 2015-2024 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#include <algorithm>
12#include <array>     // ArrayWrapperND
13#include <string.h>  // strnlen
14#include <string>    // std::string
15#include <vulkan/vulkan.h>
16#include <vulkan/vulkan_hpp_macros.hpp>
17
18#if 17 <= VULKAN_HPP_CPP_VERSION
19#  include <string_view>
20#endif
21
22#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
23#  include <tuple>   // std::tie
24#  include <vector>  // std::vector
25#endif
26
27#if !defined( VULKAN_HPP_NO_EXCEPTIONS )
28#  include <system_error>  // std::is_error_code_enum
29#endif
30
31#if ( VULKAN_HPP_ASSERT == assert )
32#  include <cassert>
33#endif
34
35#if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL == 1
36#  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNX__ ) || defined( __Fuchsia__ )
37#    include <dlfcn.h>
38#  elif defined( _WIN32 )
39typedef struct HINSTANCE__ * HINSTANCE;
40#    if defined( _WIN64 )
41typedef int64_t( __stdcall * FARPROC )();
42#    else
43typedef int( __stdcall * FARPROC )();
44#    endif
45extern "C" __declspec( dllimport ) HINSTANCE __stdcall LoadLibraryA( char const * lpLibFileName );
46extern "C" __declspec( dllimport ) int __stdcall FreeLibrary( HINSTANCE hLibModule );
47extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE hModule, const char * lpProcName );
48#  endif
49#endif
50
51#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
52#  include <compare>
53#endif
54
55#if defined( VULKAN_HPP_SUPPORT_SPAN )
56#  include <span>
57#endif
58
59static_assert( VK_HEADER_VERSION == 275, "Wrong VK_HEADER_VERSION!" );
60
61// <tuple> includes <sys/sysmacros.h> through some other header
62// this results in major(x) being resolved to gnu_dev_major(x)
63// which is an expression in a constructor initializer list.
64#if defined( major )
65#  undef major
66#endif
67#if defined( minor )
68#  undef minor
69#endif
70
71// Windows defines MemoryBarrier which is deprecated and collides
72// with the VULKAN_HPP_NAMESPACE::MemoryBarrier struct.
73#if defined( MemoryBarrier )
74#  undef MemoryBarrier
75#endif
76
77// XLib.h defines True/False, which collides with our vk::True/vk::False
78// ->  undef them and provide some namepace-secure constexpr
79#if defined( True )
80#  undef True
81constexpr int True = 1;
82#endif
83#if defined( False )
84#  undef False
85constexpr int False = 0;
86#endif
87
88namespace VULKAN_HPP_NAMESPACE
89{
90  template <typename T, size_t N>
91  class ArrayWrapper1D : public std::array<T, N>
92  {
93  public:
94    VULKAN_HPP_CONSTEXPR ArrayWrapper1D() VULKAN_HPP_NOEXCEPT : std::array<T, N>() {}
95
96    VULKAN_HPP_CONSTEXPR ArrayWrapper1D( std::array<T, N> const & data ) VULKAN_HPP_NOEXCEPT : std::array<T, N>( data ) {}
97
98    template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
99    VULKAN_HPP_CONSTEXPR_14 ArrayWrapper1D( std::string const & data ) VULKAN_HPP_NOEXCEPT
100    {
101      copy( data.data(), data.length() );
102    }
103
104#if 17 <= VULKAN_HPP_CPP_VERSION
105    template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
106    VULKAN_HPP_CONSTEXPR_14 ArrayWrapper1D( std::string_view data ) VULKAN_HPP_NOEXCEPT
107    {
108      copy( data.data(), data.length() );
109    }
110#endif
111
112#if ( VK_USE_64_BIT_PTR_DEFINES == 0 )
113    // on 32 bit compiles, needs overloads on index type int to resolve ambiguities
114    VULKAN_HPP_CONSTEXPR T const & operator[]( int index ) const VULKAN_HPP_NOEXCEPT
115    {
116      return std::array<T, N>::operator[]( index );
117    }
118
119    T & operator[]( int index ) VULKAN_HPP_NOEXCEPT
120    {
121      return std::array<T, N>::operator[]( index );
122    }
123#endif
124
125    operator T const *() const VULKAN_HPP_NOEXCEPT
126    {
127      return this->data();
128    }
129
130    operator T *() VULKAN_HPP_NOEXCEPT
131    {
132      return this->data();
133    }
134
135    template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
136    operator std::string() const
137    {
138      return std::string( this->data(), strnlen( this->data(), N ) );
139    }
140
141#if 17 <= VULKAN_HPP_CPP_VERSION
142    template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
143    operator std::string_view() const
144    {
145      return std::string_view( this->data(), strnlen( this->data(), N ) );
146    }
147#endif
148
149#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
150    template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
151    std::strong_ordering operator<=>( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
152    {
153      return *static_cast<std::array<char, N> const *>( this ) <=> *static_cast<std::array<char, N> const *>( &rhs );
154    }
155#else
156    template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
157    bool operator<( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
158    {
159      return *static_cast<std::array<char, N> const *>( this ) < *static_cast<std::array<char, N> const *>( &rhs );
160    }
161
162    template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
163    bool operator<=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
164    {
165      return *static_cast<std::array<char, N> const *>( this ) <= *static_cast<std::array<char, N> const *>( &rhs );
166    }
167
168    template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
169    bool operator>( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
170    {
171      return *static_cast<std::array<char, N> const *>( this ) > *static_cast<std::array<char, N> const *>( &rhs );
172    }
173
174    template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
175    bool operator>=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
176    {
177      return *static_cast<std::array<char, N> const *>( this ) >= *static_cast<std::array<char, N> const *>( &rhs );
178    }
179#endif
180
181    template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
182    bool operator==( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
183    {
184      return *static_cast<std::array<char, N> const *>( this ) == *static_cast<std::array<char, N> const *>( &rhs );
185    }
186
187    template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
188    bool operator!=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
189    {
190      return *static_cast<std::array<char, N> const *>( this ) != *static_cast<std::array<char, N> const *>( &rhs );
191    }
192
193  private:
194    VULKAN_HPP_CONSTEXPR_14 void copy( char const * data, size_t len ) VULKAN_HPP_NOEXCEPT
195    {
196      size_t n = std::min( N, len );
197      for ( size_t i = 0; i < n; ++i )
198      {
199        ( *this )[i] = data[i];
200      }
201      for ( size_t i = n; i < N; ++i )
202      {
203        ( *this )[i] = 0;
204      }
205    }
206  };
207
208  // specialization of relational operators between std::string and arrays of chars
209  template <size_t N>
210  bool operator<( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
211  {
212    return lhs < rhs.data();
213  }
214
215  template <size_t N>
216  bool operator<=( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
217  {
218    return lhs <= rhs.data();
219  }
220
221  template <size_t N>
222  bool operator>( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
223  {
224    return lhs > rhs.data();
225  }
226
227  template <size_t N>
228  bool operator>=( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
229  {
230    return lhs >= rhs.data();
231  }
232
233  template <size_t N>
234  bool operator==( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
235  {
236    return lhs == rhs.data();
237  }
238
239  template <size_t N>
240  bool operator!=( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
241  {
242    return lhs != rhs.data();
243  }
244
245  template <typename T, size_t N, size_t M>
246  class ArrayWrapper2D : public std::array<ArrayWrapper1D<T, M>, N>
247  {
248  public:
249    VULKAN_HPP_CONSTEXPR ArrayWrapper2D() VULKAN_HPP_NOEXCEPT : std::array<ArrayWrapper1D<T, M>, N>() {}
250
251    VULKAN_HPP_CONSTEXPR ArrayWrapper2D( std::array<std::array<T, M>, N> const & data ) VULKAN_HPP_NOEXCEPT
252      : std::array<ArrayWrapper1D<T, M>, N>( *reinterpret_cast<std::array<ArrayWrapper1D<T, M>, N> const *>( &data ) )
253    {
254    }
255  };
256
257#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
258  template <typename T>
259  class ArrayProxy
260  {
261  public:
262    VULKAN_HPP_CONSTEXPR ArrayProxy() VULKAN_HPP_NOEXCEPT
263      : m_count( 0 )
264      , m_ptr( nullptr )
265    {
266    }
267
268    VULKAN_HPP_CONSTEXPR ArrayProxy( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
269      : m_count( 0 )
270      , m_ptr( nullptr )
271    {
272    }
273
274    ArrayProxy( T const & value ) VULKAN_HPP_NOEXCEPT
275      : m_count( 1 )
276      , m_ptr( &value )
277    {
278    }
279
280    ArrayProxy( uint32_t count, T const * ptr ) VULKAN_HPP_NOEXCEPT
281      : m_count( count )
282      , m_ptr( ptr )
283    {
284    }
285
286    template <std::size_t C>
287    ArrayProxy( T const ( &ptr )[C] ) VULKAN_HPP_NOEXCEPT
288      : m_count( C )
289      , m_ptr( ptr )
290    {
291    }
292
293#  if __GNUC__ >= 9
294#    pragma GCC diagnostic push
295#    pragma GCC diagnostic ignored "-Winit-list-lifetime"
296#  endif
297
298    ArrayProxy( std::initializer_list<T> const & list ) VULKAN_HPP_NOEXCEPT
299      : m_count( static_cast<uint32_t>( list.size() ) )
300      , m_ptr( list.begin() )
301    {
302    }
303
304    template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
305    ArrayProxy( std::initializer_list<typename std::remove_const<T>::type> const & list ) VULKAN_HPP_NOEXCEPT
306      : m_count( static_cast<uint32_t>( list.size() ) )
307      , m_ptr( list.begin() )
308    {
309    }
310
311#  if __GNUC__ >= 9
312#    pragma GCC diagnostic pop
313#  endif
314
315    // Any type with a .data() return type implicitly convertible to T*, and a .size() return type implicitly
316    // convertible to size_t. The const version can capture temporaries, with lifetime ending at end of statement.
317    template <typename V,
318              typename std::enable_if<std::is_convertible<decltype( std::declval<V>().data() ), T *>::value &&
319                                      std::is_convertible<decltype( std::declval<V>().size() ), std::size_t>::value>::type * = nullptr>
320    ArrayProxy( V const & v ) VULKAN_HPP_NOEXCEPT
321      : m_count( static_cast<uint32_t>( v.size() ) )
322      , m_ptr( v.data() )
323    {
324    }
325
326    const T * begin() const VULKAN_HPP_NOEXCEPT
327    {
328      return m_ptr;
329    }
330
331    const T * end() const VULKAN_HPP_NOEXCEPT
332    {
333      return m_ptr + m_count;
334    }
335
336    const T & front() const VULKAN_HPP_NOEXCEPT
337    {
338      VULKAN_HPP_ASSERT( m_count && m_ptr );
339      return *m_ptr;
340    }
341
342    const T & back() const VULKAN_HPP_NOEXCEPT
343    {
344      VULKAN_HPP_ASSERT( m_count && m_ptr );
345      return *( m_ptr + m_count - 1 );
346    }
347
348    bool empty() const VULKAN_HPP_NOEXCEPT
349    {
350      return ( m_count == 0 );
351    }
352
353    uint32_t size() const VULKAN_HPP_NOEXCEPT
354    {
355      return m_count;
356    }
357
358    T const * data() const VULKAN_HPP_NOEXCEPT
359    {
360      return m_ptr;
361    }
362
363  private:
364    uint32_t  m_count;
365    T const * m_ptr;
366  };
367
368  template <typename T>
369  class ArrayProxyNoTemporaries
370  {
371  public:
372    VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries() VULKAN_HPP_NOEXCEPT
373      : m_count( 0 )
374      , m_ptr( nullptr )
375    {
376    }
377
378    VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
379      : m_count( 0 )
380      , m_ptr( nullptr )
381    {
382    }
383
384    ArrayProxyNoTemporaries( T & value ) VULKAN_HPP_NOEXCEPT
385      : m_count( 1 )
386      , m_ptr( &value )
387    {
388    }
389
390    template <typename V>
391    ArrayProxyNoTemporaries( V && value ) = delete;
392
393    template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
394    ArrayProxyNoTemporaries( typename std::remove_const<T>::type & value ) VULKAN_HPP_NOEXCEPT
395      : m_count( 1 )
396      , m_ptr( &value )
397    {
398    }
399
400    template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
401    ArrayProxyNoTemporaries( typename std::remove_const<T>::type && value ) = delete;
402
403    ArrayProxyNoTemporaries( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT
404      : m_count( count )
405      , m_ptr( ptr )
406    {
407    }
408
409    template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
410    ArrayProxyNoTemporaries( uint32_t count, typename std::remove_const<T>::type * ptr ) VULKAN_HPP_NOEXCEPT
411      : m_count( count )
412      , m_ptr( ptr )
413    {
414    }
415
416    template <std::size_t C>
417    ArrayProxyNoTemporaries( T ( &ptr )[C] ) VULKAN_HPP_NOEXCEPT
418      : m_count( C )
419      , m_ptr( ptr )
420    {
421    }
422
423    template <std::size_t C>
424    ArrayProxyNoTemporaries( T ( &&ptr )[C] ) = delete;
425
426    template <std::size_t C, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
427    ArrayProxyNoTemporaries( typename std::remove_const<T>::type ( &ptr )[C] ) VULKAN_HPP_NOEXCEPT
428      : m_count( C )
429      , m_ptr( ptr )
430    {
431    }
432
433    template <std::size_t C, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
434    ArrayProxyNoTemporaries( typename std::remove_const<T>::type ( &&ptr )[C] ) = delete;
435
436    ArrayProxyNoTemporaries( std::initializer_list<T> const & list ) VULKAN_HPP_NOEXCEPT
437      : m_count( static_cast<uint32_t>( list.size() ) )
438      , m_ptr( list.begin() )
439    {
440    }
441
442    ArrayProxyNoTemporaries( std::initializer_list<T> const && list ) = delete;
443
444    template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
445    ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> const & list ) VULKAN_HPP_NOEXCEPT
446      : m_count( static_cast<uint32_t>( list.size() ) )
447      , m_ptr( list.begin() )
448    {
449    }
450
451    template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
452    ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> const && list ) = delete;
453
454    ArrayProxyNoTemporaries( std::initializer_list<T> & list ) VULKAN_HPP_NOEXCEPT
455      : m_count( static_cast<uint32_t>( list.size() ) )
456      , m_ptr( list.begin() )
457    {
458    }
459
460    ArrayProxyNoTemporaries( std::initializer_list<T> && list ) = delete;
461
462    template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
463    ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> & list ) VULKAN_HPP_NOEXCEPT
464      : m_count( static_cast<uint32_t>( list.size() ) )
465      , m_ptr( list.begin() )
466    {
467    }
468
469    template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
470    ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> && list ) = delete;
471
472    // Any type with a .data() return type implicitly convertible to T*, and a .size() return type implicitly convertible to size_t.
473    template <typename V,
474              typename std::enable_if<std::is_convertible<decltype( std::declval<V>().data() ), T *>::value &&
475                                      std::is_convertible<decltype( std::declval<V>().size() ), std::size_t>::value>::type * = nullptr>
476    ArrayProxyNoTemporaries( V & v ) VULKAN_HPP_NOEXCEPT
477      : m_count( static_cast<uint32_t>( v.size() ) )
478      , m_ptr( v.data() )
479    {
480    }
481
482    const T * begin() const VULKAN_HPP_NOEXCEPT
483    {
484      return m_ptr;
485    }
486
487    const T * end() const VULKAN_HPP_NOEXCEPT
488    {
489      return m_ptr + m_count;
490    }
491
492    const T & front() const VULKAN_HPP_NOEXCEPT
493    {
494      VULKAN_HPP_ASSERT( m_count && m_ptr );
495      return *m_ptr;
496    }
497
498    const T & back() const VULKAN_HPP_NOEXCEPT
499    {
500      VULKAN_HPP_ASSERT( m_count && m_ptr );
501      return *( m_ptr + m_count - 1 );
502    }
503
504    bool empty() const VULKAN_HPP_NOEXCEPT
505    {
506      return ( m_count == 0 );
507    }
508
509    uint32_t size() const VULKAN_HPP_NOEXCEPT
510    {
511      return m_count;
512    }
513
514    T * data() const VULKAN_HPP_NOEXCEPT
515    {
516      return m_ptr;
517    }
518
519  private:
520    uint32_t m_count;
521    T *      m_ptr;
522  };
523
524  template <typename T>
525  class StridedArrayProxy : protected ArrayProxy<T>
526  {
527  public:
528    using ArrayProxy<T>::ArrayProxy;
529
530    StridedArrayProxy( uint32_t count, T const * ptr, uint32_t stride ) VULKAN_HPP_NOEXCEPT
531      : ArrayProxy<T>( count, ptr )
532      , m_stride( stride )
533    {
534      VULKAN_HPP_ASSERT( sizeof( T ) <= stride );
535    }
536
537    using ArrayProxy<T>::begin;
538
539    const T * end() const VULKAN_HPP_NOEXCEPT
540    {
541      return reinterpret_cast<T const *>( static_cast<uint8_t const *>( begin() ) + size() * m_stride );
542    }
543
544    using ArrayProxy<T>::front;
545
546    const T & back() const VULKAN_HPP_NOEXCEPT
547    {
548      VULKAN_HPP_ASSERT( begin() && size() );
549      return *reinterpret_cast<T const *>( static_cast<uint8_t const *>( begin() ) + ( size() - 1 ) * m_stride );
550    }
551
552    using ArrayProxy<T>::empty;
553    using ArrayProxy<T>::size;
554    using ArrayProxy<T>::data;
555
556    uint32_t stride() const
557    {
558      return m_stride;
559    }
560
561  private:
562    uint32_t m_stride = sizeof( T );
563  };
564
565  template <typename RefType>
566  class Optional
567  {
568  public:
569    Optional( RefType & reference ) VULKAN_HPP_NOEXCEPT
570    {
571      m_ptr = &reference;
572    }
573
574    Optional( RefType * ptr ) VULKAN_HPP_NOEXCEPT
575    {
576      m_ptr = ptr;
577    }
578
579    Optional( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
580    {
581      m_ptr = nullptr;
582    }
583
584    operator RefType *() const VULKAN_HPP_NOEXCEPT
585    {
586      return m_ptr;
587    }
588
589    RefType const * operator->() const VULKAN_HPP_NOEXCEPT
590    {
591      return m_ptr;
592    }
593
594    explicit operator bool() const VULKAN_HPP_NOEXCEPT
595    {
596      return !!m_ptr;
597    }
598
599  private:
600    RefType * m_ptr;
601  };
602
603  template <typename X, typename Y>
604  struct StructExtends
605  {
606    enum
607    {
608      value = false
609    };
610  };
611
612  template <typename Type, class...>
613  struct IsPartOfStructureChain
614  {
615    static const bool valid = false;
616  };
617
618  template <typename Type, typename Head, typename... Tail>
619  struct IsPartOfStructureChain<Type, Head, Tail...>
620  {
621    static const bool valid = std::is_same<Type, Head>::value || IsPartOfStructureChain<Type, Tail...>::valid;
622  };
623
624  template <size_t Index, typename T, typename... ChainElements>
625  struct StructureChainContains
626  {
627    static const bool value = std::is_same<T, typename std::tuple_element<Index, std::tuple<ChainElements...>>::type>::value ||
628                              StructureChainContains<Index - 1, T, ChainElements...>::value;
629  };
630
631  template <typename T, typename... ChainElements>
632  struct StructureChainContains<0, T, ChainElements...>
633  {
634    static const bool value = std::is_same<T, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value;
635  };
636
637  template <size_t Index, typename... ChainElements>
638  struct StructureChainValidation
639  {
640    using TestType          = typename std::tuple_element<Index, std::tuple<ChainElements...>>::type;
641    static const bool valid = StructExtends<TestType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value &&
642                              ( TestType::allowDuplicate || !StructureChainContains<Index - 1, TestType, ChainElements...>::value ) &&
643                              StructureChainValidation<Index - 1, ChainElements...>::valid;
644  };
645
646  template <typename... ChainElements>
647  struct StructureChainValidation<0, ChainElements...>
648  {
649    static const bool valid = true;
650  };
651
652  template <typename... ChainElements>
653  class StructureChain : public std::tuple<ChainElements...>
654  {
655  public:
656    StructureChain() VULKAN_HPP_NOEXCEPT
657    {
658      static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid, "The structure chain is not valid!" );
659      link<sizeof...( ChainElements ) - 1>();
660    }
661
662    StructureChain( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT : std::tuple<ChainElements...>( rhs )
663    {
664      static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid, "The structure chain is not valid!" );
665      link( &std::get<0>( *this ),
666            &std::get<0>( rhs ),
667            reinterpret_cast<VkBaseOutStructure *>( &std::get<0>( *this ) ),
668            reinterpret_cast<VkBaseInStructure const *>( &std::get<0>( rhs ) ) );
669    }
670
671    StructureChain( StructureChain && rhs ) VULKAN_HPP_NOEXCEPT : std::tuple<ChainElements...>( std::forward<std::tuple<ChainElements...>>( rhs ) )
672    {
673      static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid, "The structure chain is not valid!" );
674      link( &std::get<0>( *this ),
675            &std::get<0>( rhs ),
676            reinterpret_cast<VkBaseOutStructure *>( &std::get<0>( *this ) ),
677            reinterpret_cast<VkBaseInStructure const *>( &std::get<0>( rhs ) ) );
678    }
679
680    StructureChain( ChainElements const &... elems ) VULKAN_HPP_NOEXCEPT : std::tuple<ChainElements...>( elems... )
681    {
682      static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid, "The structure chain is not valid!" );
683      link<sizeof...( ChainElements ) - 1>();
684    }
685
686    StructureChain & operator=( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT
687    {
688      std::tuple<ChainElements...>::operator=( rhs );
689      link( &std::get<0>( *this ),
690            &std::get<0>( rhs ),
691            reinterpret_cast<VkBaseOutStructure *>( &std::get<0>( *this ) ),
692            reinterpret_cast<VkBaseInStructure const *>( &std::get<0>( rhs ) ) );
693      return *this;
694    }
695
696    StructureChain & operator=( StructureChain && rhs ) = delete;
697
698    template <typename T = typename std::tuple_element<0, std::tuple<ChainElements...>>::type, size_t Which = 0>
699    T & get() VULKAN_HPP_NOEXCEPT
700    {
701      return std::get<ChainElementIndex<0, T, Which, void, ChainElements...>::value>( static_cast<std::tuple<ChainElements...> &>( *this ) );
702    }
703
704    template <typename T = typename std::tuple_element<0, std::tuple<ChainElements...>>::type, size_t Which = 0>
705    T const & get() const VULKAN_HPP_NOEXCEPT
706    {
707      return std::get<ChainElementIndex<0, T, Which, void, ChainElements...>::value>( static_cast<std::tuple<ChainElements...> const &>( *this ) );
708    }
709
710    template <typename T0, typename T1, typename... Ts>
711    std::tuple<T0 &, T1 &, Ts &...> get() VULKAN_HPP_NOEXCEPT
712    {
713      return std::tie( get<T0>(), get<T1>(), get<Ts>()... );
714    }
715
716    template <typename T0, typename T1, typename... Ts>
717    std::tuple<T0 const &, T1 const &, Ts const &...> get() const VULKAN_HPP_NOEXCEPT
718    {
719      return std::tie( get<T0>(), get<T1>(), get<Ts>()... );
720    }
721
722    // assign a complete structure to the StructureChain without modifying the chaining
723    template <typename T = typename std::tuple_element<0, std::tuple<ChainElements...>>::type, size_t Which = 0>
724    StructureChain & assign( const T & rhs ) VULKAN_HPP_NOEXCEPT
725    {
726      T &    lhs   = get<T, Which>();
727      void * pNext = lhs.pNext;
728      lhs          = rhs;
729      lhs.pNext    = pNext;
730      return *this;
731    }
732
733    template <typename ClassType, size_t Which = 0>
734    typename std::enable_if<std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value && ( Which == 0 ), bool>::type
735      isLinked() const VULKAN_HPP_NOEXCEPT
736    {
737      return true;
738    }
739
740    template <typename ClassType, size_t Which = 0>
741    typename std::enable_if<!std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value || ( Which != 0 ), bool>::type
742      isLinked() const VULKAN_HPP_NOEXCEPT
743    {
744      static_assert( IsPartOfStructureChain<ClassType, ChainElements...>::valid, "Can't unlink Structure that's not part of this StructureChain!" );
745      return isLinked( reinterpret_cast<VkBaseInStructure const *>( &get<ClassType, Which>() ) );
746    }
747
748    template <typename ClassType, size_t Which = 0>
749    typename std::enable_if<!std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value || ( Which != 0 ), void>::type
750      relink() VULKAN_HPP_NOEXCEPT
751    {
752      static_assert( IsPartOfStructureChain<ClassType, ChainElements...>::valid, "Can't relink Structure that's not part of this StructureChain!" );
753      auto pNext = reinterpret_cast<VkBaseInStructure *>( &get<ClassType, Which>() );
754      VULKAN_HPP_ASSERT( !isLinked( pNext ) );
755      auto & headElement = std::get<0>( static_cast<std::tuple<ChainElements...> &>( *this ) );
756      pNext->pNext       = reinterpret_cast<VkBaseInStructure const *>( headElement.pNext );
757      headElement.pNext  = pNext;
758    }
759
760    template <typename ClassType, size_t Which = 0>
761    typename std::enable_if<!std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value || ( Which != 0 ), void>::type
762      unlink() VULKAN_HPP_NOEXCEPT
763    {
764      static_assert( IsPartOfStructureChain<ClassType, ChainElements...>::valid, "Can't unlink Structure that's not part of this StructureChain!" );
765      unlink( reinterpret_cast<VkBaseOutStructure const *>( &get<ClassType, Which>() ) );
766    }
767
768  private:
769    template <int Index, typename T, int Which, typename, class First, class... Types>
770    struct ChainElementIndex : ChainElementIndex<Index + 1, T, Which, void, Types...>
771    {
772    };
773
774    template <int Index, typename T, int Which, class First, class... Types>
775    struct ChainElementIndex<Index, T, Which, typename std::enable_if<!std::is_same<T, First>::value, void>::type, First, Types...>
776      : ChainElementIndex<Index + 1, T, Which, void, Types...>
777    {
778    };
779
780    template <int Index, typename T, int Which, class First, class... Types>
781    struct ChainElementIndex<Index, T, Which, typename std::enable_if<std::is_same<T, First>::value, void>::type, First, Types...>
782      : ChainElementIndex<Index + 1, T, Which - 1, void, Types...>
783    {
784    };
785
786    template <int Index, typename T, class First, class... Types>
787    struct ChainElementIndex<Index, T, 0, typename std::enable_if<std::is_same<T, First>::value, void>::type, First, Types...>
788      : std::integral_constant<int, Index>
789    {
790    };
791
792    bool isLinked( VkBaseInStructure const * pNext ) const VULKAN_HPP_NOEXCEPT
793    {
794      VkBaseInStructure const * elementPtr =
795        reinterpret_cast<VkBaseInStructure const *>( &std::get<0>( static_cast<std::tuple<ChainElements...> const &>( *this ) ) );
796      while ( elementPtr )
797      {
798        if ( elementPtr->pNext == pNext )
799        {
800          return true;
801        }
802        elementPtr = elementPtr->pNext;
803      }
804      return false;
805    }
806
807    template <size_t Index>
808    typename std::enable_if<Index != 0, void>::type link() VULKAN_HPP_NOEXCEPT
809    {
810      auto & x = std::get<Index - 1>( static_cast<std::tuple<ChainElements...> &>( *this ) );
811      x.pNext  = &std::get<Index>( static_cast<std::tuple<ChainElements...> &>( *this ) );
812      link<Index - 1>();
813    }
814
815    template <size_t Index>
816    typename std::enable_if<Index == 0, void>::type link() VULKAN_HPP_NOEXCEPT
817    {
818    }
819
820    void link( void * dstBase, void const * srcBase, VkBaseOutStructure * dst, VkBaseInStructure const * src )
821    {
822      while ( src->pNext )
823      {
824        std::ptrdiff_t offset = reinterpret_cast<char const *>( src->pNext ) - reinterpret_cast<char const *>( srcBase );
825        dst->pNext            = reinterpret_cast<VkBaseOutStructure *>( reinterpret_cast<char *>( dstBase ) + offset );
826        dst                   = dst->pNext;
827        src                   = src->pNext;
828      }
829      dst->pNext = nullptr;
830    }
831
832    void unlink( VkBaseOutStructure const * pNext ) VULKAN_HPP_NOEXCEPT
833    {
834      VkBaseOutStructure * elementPtr = reinterpret_cast<VkBaseOutStructure *>( &std::get<0>( static_cast<std::tuple<ChainElements...> &>( *this ) ) );
835      while ( elementPtr && ( elementPtr->pNext != pNext ) )
836      {
837        elementPtr = elementPtr->pNext;
838      }
839      if ( elementPtr )
840      {
841        elementPtr->pNext = pNext->pNext;
842      }
843      else
844      {
845        VULKAN_HPP_ASSERT( false );  // fires, if the ClassType member has already been unlinked !
846      }
847    }
848  };
849
850  // interupt the VULKAN_HPP_NAMESPACE for a moment to add specializations of std::tuple_size and std::tuple_element for the StructureChain!
851}
852
853namespace std
854{
855  template <typename... Elements>
856  struct tuple_size<VULKAN_HPP_NAMESPACE::StructureChain<Elements...>>
857  {
858    static constexpr size_t value = std::tuple_size<std::tuple<Elements...>>::value;
859  };
860
861  template <std::size_t Index, typename... Elements>
862  struct tuple_element<Index, VULKAN_HPP_NAMESPACE::StructureChain<Elements...>>
863  {
864    using type = typename std::tuple_element<Index, std::tuple<Elements...>>::type;
865  };
866}  // namespace std
867
868namespace VULKAN_HPP_NAMESPACE
869{
870
871#  if !defined( VULKAN_HPP_NO_SMART_HANDLE )
872  template <typename Type, typename Dispatch>
873  class UniqueHandleTraits;
874
875  template <typename Type, typename Dispatch>
876  class UniqueHandle : public UniqueHandleTraits<Type, Dispatch>::deleter
877  {
878  private:
879    using Deleter = typename UniqueHandleTraits<Type, Dispatch>::deleter;
880
881  public:
882    using element_type = Type;
883
884    UniqueHandle() : Deleter(), m_value() {}
885
886    explicit UniqueHandle( Type const & value, Deleter const & deleter = Deleter() ) VULKAN_HPP_NOEXCEPT
887      : Deleter( deleter )
888      , m_value( value )
889    {
890    }
891
892    UniqueHandle( UniqueHandle const & ) = delete;
893
894    UniqueHandle( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT
895      : Deleter( std::move( static_cast<Deleter &>( other ) ) )
896      , m_value( other.release() )
897    {
898    }
899
900    ~UniqueHandle() VULKAN_HPP_NOEXCEPT
901    {
902      if ( m_value )
903      {
904        this->destroy( m_value );
905      }
906    }
907
908    UniqueHandle & operator=( UniqueHandle const & ) = delete;
909
910    UniqueHandle & operator=( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT
911    {
912      reset( other.release() );
913      *static_cast<Deleter *>( this ) = std::move( static_cast<Deleter &>( other ) );
914      return *this;
915    }
916
917    explicit operator bool() const VULKAN_HPP_NOEXCEPT
918    {
919      return m_value.operator bool();
920    }
921
922    Type const * operator->() const VULKAN_HPP_NOEXCEPT
923    {
924      return &m_value;
925    }
926
927    Type * operator->() VULKAN_HPP_NOEXCEPT
928    {
929      return &m_value;
930    }
931
932    Type const & operator*() const VULKAN_HPP_NOEXCEPT
933    {
934      return m_value;
935    }
936
937    Type & operator*() VULKAN_HPP_NOEXCEPT
938    {
939      return m_value;
940    }
941
942    const Type & get() const VULKAN_HPP_NOEXCEPT
943    {
944      return m_value;
945    }
946
947    Type & get() VULKAN_HPP_NOEXCEPT
948    {
949      return m_value;
950    }
951
952    void reset( Type const & value = Type() ) VULKAN_HPP_NOEXCEPT
953    {
954      if ( m_value != value )
955      {
956        if ( m_value )
957        {
958          this->destroy( m_value );
959        }
960        m_value = value;
961      }
962    }
963
964    Type release() VULKAN_HPP_NOEXCEPT
965    {
966      Type value = m_value;
967      m_value    = nullptr;
968      return value;
969    }
970
971    void swap( UniqueHandle<Type, Dispatch> & rhs ) VULKAN_HPP_NOEXCEPT
972    {
973      std::swap( m_value, rhs.m_value );
974      std::swap( static_cast<Deleter &>( *this ), static_cast<Deleter &>( rhs ) );
975    }
976
977  private:
978    Type m_value;
979  };
980
981  template <typename UniqueType>
982  VULKAN_HPP_INLINE std::vector<typename UniqueType::element_type> uniqueToRaw( std::vector<UniqueType> const & handles )
983  {
984    std::vector<typename UniqueType::element_type> newBuffer( handles.size() );
985    std::transform( handles.begin(), handles.end(), newBuffer.begin(), []( UniqueType const & handle ) { return handle.get(); } );
986    return newBuffer;
987  }
988
989  template <typename Type, typename Dispatch>
990  VULKAN_HPP_INLINE void swap( UniqueHandle<Type, Dispatch> & lhs, UniqueHandle<Type, Dispatch> & rhs ) VULKAN_HPP_NOEXCEPT
991  {
992    lhs.swap( rhs );
993  }
994#  endif
995#endif  // VULKAN_HPP_DISABLE_ENHANCED_MODE
996
997  class DispatchLoaderBase
998  {
999  public:
1000    DispatchLoaderBase() = default;
1001    DispatchLoaderBase( std::nullptr_t )
1002#if !defined( NDEBUG )
1003      : m_valid( false )
1004#endif
1005    {
1006    }
1007
1008#if !defined( NDEBUG )
1009    size_t getVkHeaderVersion() const
1010    {
1011      VULKAN_HPP_ASSERT( m_valid );
1012      return vkHeaderVersion;
1013    }
1014
1015  private:
1016    size_t vkHeaderVersion = VK_HEADER_VERSION;
1017    bool   m_valid         = true;
1018#endif
1019  };
1020
1021#if !defined( VK_NO_PROTOTYPES )
1022  class DispatchLoaderStatic : public DispatchLoaderBase
1023  {
1024  public:
1025    //=== VK_VERSION_1_0 ===
1026
1027    VkResult
1028      vkCreateInstance( const VkInstanceCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkInstance * pInstance ) const VULKAN_HPP_NOEXCEPT
1029    {
1030      return ::vkCreateInstance( pCreateInfo, pAllocator, pInstance );
1031    }
1032
1033    void vkDestroyInstance( VkInstance instance, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1034    {
1035      return ::vkDestroyInstance( instance, pAllocator );
1036    }
1037
1038    VkResult vkEnumeratePhysicalDevices( VkInstance instance, uint32_t * pPhysicalDeviceCount, VkPhysicalDevice * pPhysicalDevices ) const VULKAN_HPP_NOEXCEPT
1039    {
1040      return ::vkEnumeratePhysicalDevices( instance, pPhysicalDeviceCount, pPhysicalDevices );
1041    }
1042
1043    void vkGetPhysicalDeviceFeatures( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures * pFeatures ) const VULKAN_HPP_NOEXCEPT
1044    {
1045      return ::vkGetPhysicalDeviceFeatures( physicalDevice, pFeatures );
1046    }
1047
1048    void
1049      vkGetPhysicalDeviceFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties * pFormatProperties ) const VULKAN_HPP_NOEXCEPT
1050    {
1051      return ::vkGetPhysicalDeviceFormatProperties( physicalDevice, format, pFormatProperties );
1052    }
1053
1054    VkResult vkGetPhysicalDeviceImageFormatProperties( VkPhysicalDevice          physicalDevice,
1055                                                       VkFormat                  format,
1056                                                       VkImageType               type,
1057                                                       VkImageTiling             tiling,
1058                                                       VkImageUsageFlags         usage,
1059                                                       VkImageCreateFlags        flags,
1060                                                       VkImageFormatProperties * pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
1061    {
1062      return ::vkGetPhysicalDeviceImageFormatProperties( physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties );
1063    }
1064
1065    void vkGetPhysicalDeviceProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties * pProperties ) const VULKAN_HPP_NOEXCEPT
1066    {
1067      return ::vkGetPhysicalDeviceProperties( physicalDevice, pProperties );
1068    }
1069
1070    void vkGetPhysicalDeviceQueueFamilyProperties( VkPhysicalDevice          physicalDevice,
1071                                                   uint32_t *                pQueueFamilyPropertyCount,
1072                                                   VkQueueFamilyProperties * pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
1073    {
1074      return ::vkGetPhysicalDeviceQueueFamilyProperties( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
1075    }
1076
1077    void vkGetPhysicalDeviceMemoryProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties * pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
1078    {
1079      return ::vkGetPhysicalDeviceMemoryProperties( physicalDevice, pMemoryProperties );
1080    }
1081
1082    PFN_vkVoidFunction vkGetInstanceProcAddr( VkInstance instance, const char * pName ) const VULKAN_HPP_NOEXCEPT
1083    {
1084      return ::vkGetInstanceProcAddr( instance, pName );
1085    }
1086
1087    PFN_vkVoidFunction vkGetDeviceProcAddr( VkDevice device, const char * pName ) const VULKAN_HPP_NOEXCEPT
1088    {
1089      return ::vkGetDeviceProcAddr( device, pName );
1090    }
1091
1092    VkResult vkCreateDevice( VkPhysicalDevice              physicalDevice,
1093                             const VkDeviceCreateInfo *    pCreateInfo,
1094                             const VkAllocationCallbacks * pAllocator,
1095                             VkDevice *                    pDevice ) const VULKAN_HPP_NOEXCEPT
1096    {
1097      return ::vkCreateDevice( physicalDevice, pCreateInfo, pAllocator, pDevice );
1098    }
1099
1100    void vkDestroyDevice( VkDevice device, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1101    {
1102      return ::vkDestroyDevice( device, pAllocator );
1103    }
1104
1105    VkResult vkEnumerateInstanceExtensionProperties( const char *            pLayerName,
1106                                                     uint32_t *              pPropertyCount,
1107                                                     VkExtensionProperties * pProperties ) const VULKAN_HPP_NOEXCEPT
1108    {
1109      return ::vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, pProperties );
1110    }
1111
1112    VkResult vkEnumerateDeviceExtensionProperties( VkPhysicalDevice        physicalDevice,
1113                                                   const char *            pLayerName,
1114                                                   uint32_t *              pPropertyCount,
1115                                                   VkExtensionProperties * pProperties ) const VULKAN_HPP_NOEXCEPT
1116    {
1117      return ::vkEnumerateDeviceExtensionProperties( physicalDevice, pLayerName, pPropertyCount, pProperties );
1118    }
1119
1120    VkResult vkEnumerateInstanceLayerProperties( uint32_t * pPropertyCount, VkLayerProperties * pProperties ) const VULKAN_HPP_NOEXCEPT
1121    {
1122      return ::vkEnumerateInstanceLayerProperties( pPropertyCount, pProperties );
1123    }
1124
1125    VkResult
1126      vkEnumerateDeviceLayerProperties( VkPhysicalDevice physicalDevice, uint32_t * pPropertyCount, VkLayerProperties * pProperties ) const VULKAN_HPP_NOEXCEPT
1127    {
1128      return ::vkEnumerateDeviceLayerProperties( physicalDevice, pPropertyCount, pProperties );
1129    }
1130
1131    void vkGetDeviceQueue( VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue * pQueue ) const VULKAN_HPP_NOEXCEPT
1132    {
1133      return ::vkGetDeviceQueue( device, queueFamilyIndex, queueIndex, pQueue );
1134    }
1135
1136    VkResult vkQueueSubmit( VkQueue queue, uint32_t submitCount, const VkSubmitInfo * pSubmits, VkFence fence ) const VULKAN_HPP_NOEXCEPT
1137    {
1138      return ::vkQueueSubmit( queue, submitCount, pSubmits, fence );
1139    }
1140
1141    VkResult vkQueueWaitIdle( VkQueue queue ) const VULKAN_HPP_NOEXCEPT
1142    {
1143      return ::vkQueueWaitIdle( queue );
1144    }
1145
1146    VkResult vkDeviceWaitIdle( VkDevice device ) const VULKAN_HPP_NOEXCEPT
1147    {
1148      return ::vkDeviceWaitIdle( device );
1149    }
1150
1151    VkResult vkAllocateMemory( VkDevice                      device,
1152                               const VkMemoryAllocateInfo *  pAllocateInfo,
1153                               const VkAllocationCallbacks * pAllocator,
1154                               VkDeviceMemory *              pMemory ) const VULKAN_HPP_NOEXCEPT
1155    {
1156      return ::vkAllocateMemory( device, pAllocateInfo, pAllocator, pMemory );
1157    }
1158
1159    void vkFreeMemory( VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1160    {
1161      return ::vkFreeMemory( device, memory, pAllocator );
1162    }
1163
1164    VkResult vkMapMemory( VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void ** ppData ) const
1165      VULKAN_HPP_NOEXCEPT
1166    {
1167      return ::vkMapMemory( device, memory, offset, size, flags, ppData );
1168    }
1169
1170    void vkUnmapMemory( VkDevice device, VkDeviceMemory memory ) const VULKAN_HPP_NOEXCEPT
1171    {
1172      return ::vkUnmapMemory( device, memory );
1173    }
1174
1175    VkResult vkFlushMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange * pMemoryRanges ) const VULKAN_HPP_NOEXCEPT
1176    {
1177      return ::vkFlushMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges );
1178    }
1179
1180    VkResult vkInvalidateMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange * pMemoryRanges ) const VULKAN_HPP_NOEXCEPT
1181    {
1182      return ::vkInvalidateMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges );
1183    }
1184
1185    void vkGetDeviceMemoryCommitment( VkDevice device, VkDeviceMemory memory, VkDeviceSize * pCommittedMemoryInBytes ) const VULKAN_HPP_NOEXCEPT
1186    {
1187      return ::vkGetDeviceMemoryCommitment( device, memory, pCommittedMemoryInBytes );
1188    }
1189
1190    VkResult vkBindBufferMemory( VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT
1191    {
1192      return ::vkBindBufferMemory( device, buffer, memory, memoryOffset );
1193    }
1194
1195    VkResult vkBindImageMemory( VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT
1196    {
1197      return ::vkBindImageMemory( device, image, memory, memoryOffset );
1198    }
1199
1200    void vkGetBufferMemoryRequirements( VkDevice device, VkBuffer buffer, VkMemoryRequirements * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
1201    {
1202      return ::vkGetBufferMemoryRequirements( device, buffer, pMemoryRequirements );
1203    }
1204
1205    void vkGetImageMemoryRequirements( VkDevice device, VkImage image, VkMemoryRequirements * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
1206    {
1207      return ::vkGetImageMemoryRequirements( device, image, pMemoryRequirements );
1208    }
1209
1210    void vkGetImageSparseMemoryRequirements( VkDevice                          device,
1211                                             VkImage                           image,
1212                                             uint32_t *                        pSparseMemoryRequirementCount,
1213                                             VkSparseImageMemoryRequirements * pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
1214    {
1215      return ::vkGetImageSparseMemoryRequirements( device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
1216    }
1217
1218    void vkGetPhysicalDeviceSparseImageFormatProperties( VkPhysicalDevice                physicalDevice,
1219                                                         VkFormat                        format,
1220                                                         VkImageType                     type,
1221                                                         VkSampleCountFlagBits           samples,
1222                                                         VkImageUsageFlags               usage,
1223                                                         VkImageTiling                   tiling,
1224                                                         uint32_t *                      pPropertyCount,
1225                                                         VkSparseImageFormatProperties * pProperties ) const VULKAN_HPP_NOEXCEPT
1226    {
1227      return ::vkGetPhysicalDeviceSparseImageFormatProperties( physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties );
1228    }
1229
1230    VkResult vkQueueBindSparse( VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo * pBindInfo, VkFence fence ) const VULKAN_HPP_NOEXCEPT
1231    {
1232      return ::vkQueueBindSparse( queue, bindInfoCount, pBindInfo, fence );
1233    }
1234
1235    VkResult vkCreateFence( VkDevice                      device,
1236                            const VkFenceCreateInfo *     pCreateInfo,
1237                            const VkAllocationCallbacks * pAllocator,
1238                            VkFence *                     pFence ) const VULKAN_HPP_NOEXCEPT
1239    {
1240      return ::vkCreateFence( device, pCreateInfo, pAllocator, pFence );
1241    }
1242
1243    void vkDestroyFence( VkDevice device, VkFence fence, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1244    {
1245      return ::vkDestroyFence( device, fence, pAllocator );
1246    }
1247
1248    VkResult vkResetFences( VkDevice device, uint32_t fenceCount, const VkFence * pFences ) const VULKAN_HPP_NOEXCEPT
1249    {
1250      return ::vkResetFences( device, fenceCount, pFences );
1251    }
1252
1253    VkResult vkGetFenceStatus( VkDevice device, VkFence fence ) const VULKAN_HPP_NOEXCEPT
1254    {
1255      return ::vkGetFenceStatus( device, fence );
1256    }
1257
1258    VkResult vkWaitForFences( VkDevice device, uint32_t fenceCount, const VkFence * pFences, VkBool32 waitAll, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
1259    {
1260      return ::vkWaitForFences( device, fenceCount, pFences, waitAll, timeout );
1261    }
1262
1263    VkResult vkCreateSemaphore( VkDevice                      device,
1264                                const VkSemaphoreCreateInfo * pCreateInfo,
1265                                const VkAllocationCallbacks * pAllocator,
1266                                VkSemaphore *                 pSemaphore ) const VULKAN_HPP_NOEXCEPT
1267    {
1268      return ::vkCreateSemaphore( device, pCreateInfo, pAllocator, pSemaphore );
1269    }
1270
1271    void vkDestroySemaphore( VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1272    {
1273      return ::vkDestroySemaphore( device, semaphore, pAllocator );
1274    }
1275
1276    VkResult vkCreateEvent( VkDevice                      device,
1277                            const VkEventCreateInfo *     pCreateInfo,
1278                            const VkAllocationCallbacks * pAllocator,
1279                            VkEvent *                     pEvent ) const VULKAN_HPP_NOEXCEPT
1280    {
1281      return ::vkCreateEvent( device, pCreateInfo, pAllocator, pEvent );
1282    }
1283
1284    void vkDestroyEvent( VkDevice device, VkEvent event, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1285    {
1286      return ::vkDestroyEvent( device, event, pAllocator );
1287    }
1288
1289    VkResult vkGetEventStatus( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
1290    {
1291      return ::vkGetEventStatus( device, event );
1292    }
1293
1294    VkResult vkSetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
1295    {
1296      return ::vkSetEvent( device, event );
1297    }
1298
1299    VkResult vkResetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
1300    {
1301      return ::vkResetEvent( device, event );
1302    }
1303
1304    VkResult vkCreateQueryPool( VkDevice                      device,
1305                                const VkQueryPoolCreateInfo * pCreateInfo,
1306                                const VkAllocationCallbacks * pAllocator,
1307                                VkQueryPool *                 pQueryPool ) const VULKAN_HPP_NOEXCEPT
1308    {
1309      return ::vkCreateQueryPool( device, pCreateInfo, pAllocator, pQueryPool );
1310    }
1311
1312    void vkDestroyQueryPool( VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1313    {
1314      return ::vkDestroyQueryPool( device, queryPool, pAllocator );
1315    }
1316
1317    VkResult vkGetQueryPoolResults( VkDevice           device,
1318                                    VkQueryPool        queryPool,
1319                                    uint32_t           firstQuery,
1320                                    uint32_t           queryCount,
1321                                    size_t             dataSize,
1322                                    void *             pData,
1323                                    VkDeviceSize       stride,
1324                                    VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT
1325    {
1326      return ::vkGetQueryPoolResults( device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags );
1327    }
1328
1329    VkResult vkCreateBuffer( VkDevice                      device,
1330                             const VkBufferCreateInfo *    pCreateInfo,
1331                             const VkAllocationCallbacks * pAllocator,
1332                             VkBuffer *                    pBuffer ) const VULKAN_HPP_NOEXCEPT
1333    {
1334      return ::vkCreateBuffer( device, pCreateInfo, pAllocator, pBuffer );
1335    }
1336
1337    void vkDestroyBuffer( VkDevice device, VkBuffer buffer, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1338    {
1339      return ::vkDestroyBuffer( device, buffer, pAllocator );
1340    }
1341
1342    VkResult vkCreateBufferView( VkDevice                       device,
1343                                 const VkBufferViewCreateInfo * pCreateInfo,
1344                                 const VkAllocationCallbacks *  pAllocator,
1345                                 VkBufferView *                 pView ) const VULKAN_HPP_NOEXCEPT
1346    {
1347      return ::vkCreateBufferView( device, pCreateInfo, pAllocator, pView );
1348    }
1349
1350    void vkDestroyBufferView( VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1351    {
1352      return ::vkDestroyBufferView( device, bufferView, pAllocator );
1353    }
1354
1355    VkResult vkCreateImage( VkDevice                      device,
1356                            const VkImageCreateInfo *     pCreateInfo,
1357                            const VkAllocationCallbacks * pAllocator,
1358                            VkImage *                     pImage ) const VULKAN_HPP_NOEXCEPT
1359    {
1360      return ::vkCreateImage( device, pCreateInfo, pAllocator, pImage );
1361    }
1362
1363    void vkDestroyImage( VkDevice device, VkImage image, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1364    {
1365      return ::vkDestroyImage( device, image, pAllocator );
1366    }
1367
1368    void vkGetImageSubresourceLayout( VkDevice                   device,
1369                                      VkImage                    image,
1370                                      const VkImageSubresource * pSubresource,
1371                                      VkSubresourceLayout *      pLayout ) const VULKAN_HPP_NOEXCEPT
1372    {
1373      return ::vkGetImageSubresourceLayout( device, image, pSubresource, pLayout );
1374    }
1375
1376    VkResult vkCreateImageView( VkDevice                      device,
1377                                const VkImageViewCreateInfo * pCreateInfo,
1378                                const VkAllocationCallbacks * pAllocator,
1379                                VkImageView *                 pView ) const VULKAN_HPP_NOEXCEPT
1380    {
1381      return ::vkCreateImageView( device, pCreateInfo, pAllocator, pView );
1382    }
1383
1384    void vkDestroyImageView( VkDevice device, VkImageView imageView, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1385    {
1386      return ::vkDestroyImageView( device, imageView, pAllocator );
1387    }
1388
1389    VkResult vkCreateShaderModule( VkDevice                         device,
1390                                   const VkShaderModuleCreateInfo * pCreateInfo,
1391                                   const VkAllocationCallbacks *    pAllocator,
1392                                   VkShaderModule *                 pShaderModule ) const VULKAN_HPP_NOEXCEPT
1393    {
1394      return ::vkCreateShaderModule( device, pCreateInfo, pAllocator, pShaderModule );
1395    }
1396
1397    void vkDestroyShaderModule( VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1398    {
1399      return ::vkDestroyShaderModule( device, shaderModule, pAllocator );
1400    }
1401
1402    VkResult vkCreatePipelineCache( VkDevice                          device,
1403                                    const VkPipelineCacheCreateInfo * pCreateInfo,
1404                                    const VkAllocationCallbacks *     pAllocator,
1405                                    VkPipelineCache *                 pPipelineCache ) const VULKAN_HPP_NOEXCEPT
1406    {
1407      return ::vkCreatePipelineCache( device, pCreateInfo, pAllocator, pPipelineCache );
1408    }
1409
1410    void vkDestroyPipelineCache( VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1411    {
1412      return ::vkDestroyPipelineCache( device, pipelineCache, pAllocator );
1413    }
1414
1415    VkResult vkGetPipelineCacheData( VkDevice device, VkPipelineCache pipelineCache, size_t * pDataSize, void * pData ) const VULKAN_HPP_NOEXCEPT
1416    {
1417      return ::vkGetPipelineCacheData( device, pipelineCache, pDataSize, pData );
1418    }
1419
1420    VkResult
1421      vkMergePipelineCaches( VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache * pSrcCaches ) const VULKAN_HPP_NOEXCEPT
1422    {
1423      return ::vkMergePipelineCaches( device, dstCache, srcCacheCount, pSrcCaches );
1424    }
1425
1426    VkResult vkCreateGraphicsPipelines( VkDevice                             device,
1427                                        VkPipelineCache                      pipelineCache,
1428                                        uint32_t                             createInfoCount,
1429                                        const VkGraphicsPipelineCreateInfo * pCreateInfos,
1430                                        const VkAllocationCallbacks *        pAllocator,
1431                                        VkPipeline *                         pPipelines ) const VULKAN_HPP_NOEXCEPT
1432    {
1433      return ::vkCreateGraphicsPipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
1434    }
1435
1436    VkResult vkCreateComputePipelines( VkDevice                            device,
1437                                       VkPipelineCache                     pipelineCache,
1438                                       uint32_t                            createInfoCount,
1439                                       const VkComputePipelineCreateInfo * pCreateInfos,
1440                                       const VkAllocationCallbacks *       pAllocator,
1441                                       VkPipeline *                        pPipelines ) const VULKAN_HPP_NOEXCEPT
1442    {
1443      return ::vkCreateComputePipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
1444    }
1445
1446    void vkDestroyPipeline( VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1447    {
1448      return ::vkDestroyPipeline( device, pipeline, pAllocator );
1449    }
1450
1451    VkResult vkCreatePipelineLayout( VkDevice                           device,
1452                                     const VkPipelineLayoutCreateInfo * pCreateInfo,
1453                                     const VkAllocationCallbacks *      pAllocator,
1454                                     VkPipelineLayout *                 pPipelineLayout ) const VULKAN_HPP_NOEXCEPT
1455    {
1456      return ::vkCreatePipelineLayout( device, pCreateInfo, pAllocator, pPipelineLayout );
1457    }
1458
1459    void vkDestroyPipelineLayout( VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1460    {
1461      return ::vkDestroyPipelineLayout( device, pipelineLayout, pAllocator );
1462    }
1463
1464    VkResult vkCreateSampler( VkDevice                      device,
1465                              const VkSamplerCreateInfo *   pCreateInfo,
1466                              const VkAllocationCallbacks * pAllocator,
1467                              VkSampler *                   pSampler ) const VULKAN_HPP_NOEXCEPT
1468    {
1469      return ::vkCreateSampler( device, pCreateInfo, pAllocator, pSampler );
1470    }
1471
1472    void vkDestroySampler( VkDevice device, VkSampler sampler, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1473    {
1474      return ::vkDestroySampler( device, sampler, pAllocator );
1475    }
1476
1477    VkResult vkCreateDescriptorSetLayout( VkDevice                                device,
1478                                          const VkDescriptorSetLayoutCreateInfo * pCreateInfo,
1479                                          const VkAllocationCallbacks *           pAllocator,
1480                                          VkDescriptorSetLayout *                 pSetLayout ) const VULKAN_HPP_NOEXCEPT
1481    {
1482      return ::vkCreateDescriptorSetLayout( device, pCreateInfo, pAllocator, pSetLayout );
1483    }
1484
1485    void vkDestroyDescriptorSetLayout( VkDevice                      device,
1486                                       VkDescriptorSetLayout         descriptorSetLayout,
1487                                       const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1488    {
1489      return ::vkDestroyDescriptorSetLayout( device, descriptorSetLayout, pAllocator );
1490    }
1491
1492    VkResult vkCreateDescriptorPool( VkDevice                           device,
1493                                     const VkDescriptorPoolCreateInfo * pCreateInfo,
1494                                     const VkAllocationCallbacks *      pAllocator,
1495                                     VkDescriptorPool *                 pDescriptorPool ) const VULKAN_HPP_NOEXCEPT
1496    {
1497      return ::vkCreateDescriptorPool( device, pCreateInfo, pAllocator, pDescriptorPool );
1498    }
1499
1500    void vkDestroyDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1501    {
1502      return ::vkDestroyDescriptorPool( device, descriptorPool, pAllocator );
1503    }
1504
1505    VkResult vkResetDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT
1506    {
1507      return ::vkResetDescriptorPool( device, descriptorPool, flags );
1508    }
1509
1510    VkResult vkAllocateDescriptorSets( VkDevice                            device,
1511                                       const VkDescriptorSetAllocateInfo * pAllocateInfo,
1512                                       VkDescriptorSet *                   pDescriptorSets ) const VULKAN_HPP_NOEXCEPT
1513    {
1514      return ::vkAllocateDescriptorSets( device, pAllocateInfo, pDescriptorSets );
1515    }
1516
1517    VkResult vkFreeDescriptorSets( VkDevice                device,
1518                                   VkDescriptorPool        descriptorPool,
1519                                   uint32_t                descriptorSetCount,
1520                                   const VkDescriptorSet * pDescriptorSets ) const VULKAN_HPP_NOEXCEPT
1521    {
1522      return ::vkFreeDescriptorSets( device, descriptorPool, descriptorSetCount, pDescriptorSets );
1523    }
1524
1525    void vkUpdateDescriptorSets( VkDevice                     device,
1526                                 uint32_t                     descriptorWriteCount,
1527                                 const VkWriteDescriptorSet * pDescriptorWrites,
1528                                 uint32_t                     descriptorCopyCount,
1529                                 const VkCopyDescriptorSet *  pDescriptorCopies ) const VULKAN_HPP_NOEXCEPT
1530    {
1531      return ::vkUpdateDescriptorSets( device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies );
1532    }
1533
1534    VkResult vkCreateFramebuffer( VkDevice                        device,
1535                                  const VkFramebufferCreateInfo * pCreateInfo,
1536                                  const VkAllocationCallbacks *   pAllocator,
1537                                  VkFramebuffer *                 pFramebuffer ) const VULKAN_HPP_NOEXCEPT
1538    {
1539      return ::vkCreateFramebuffer( device, pCreateInfo, pAllocator, pFramebuffer );
1540    }
1541
1542    void vkDestroyFramebuffer( VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1543    {
1544      return ::vkDestroyFramebuffer( device, framebuffer, pAllocator );
1545    }
1546
1547    VkResult vkCreateRenderPass( VkDevice                       device,
1548                                 const VkRenderPassCreateInfo * pCreateInfo,
1549                                 const VkAllocationCallbacks *  pAllocator,
1550                                 VkRenderPass *                 pRenderPass ) const VULKAN_HPP_NOEXCEPT
1551    {
1552      return ::vkCreateRenderPass( device, pCreateInfo, pAllocator, pRenderPass );
1553    }
1554
1555    void vkDestroyRenderPass( VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1556    {
1557      return ::vkDestroyRenderPass( device, renderPass, pAllocator );
1558    }
1559
1560    void vkGetRenderAreaGranularity( VkDevice device, VkRenderPass renderPass, VkExtent2D * pGranularity ) const VULKAN_HPP_NOEXCEPT
1561    {
1562      return ::vkGetRenderAreaGranularity( device, renderPass, pGranularity );
1563    }
1564
1565    VkResult vkCreateCommandPool( VkDevice                        device,
1566                                  const VkCommandPoolCreateInfo * pCreateInfo,
1567                                  const VkAllocationCallbacks *   pAllocator,
1568                                  VkCommandPool *                 pCommandPool ) const VULKAN_HPP_NOEXCEPT
1569    {
1570      return ::vkCreateCommandPool( device, pCreateInfo, pAllocator, pCommandPool );
1571    }
1572
1573    void vkDestroyCommandPool( VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
1574    {
1575      return ::vkDestroyCommandPool( device, commandPool, pAllocator );
1576    }
1577
1578    VkResult vkResetCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT
1579    {
1580      return ::vkResetCommandPool( device, commandPool, flags );
1581    }
1582
1583    VkResult vkAllocateCommandBuffers( VkDevice                            device,
1584                                       const VkCommandBufferAllocateInfo * pAllocateInfo,
1585                                       VkCommandBuffer *                   pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
1586    {
1587      return ::vkAllocateCommandBuffers( device, pAllocateInfo, pCommandBuffers );
1588    }
1589
1590    void vkFreeCommandBuffers( VkDevice                device,
1591                               VkCommandPool           commandPool,
1592                               uint32_t                commandBufferCount,
1593                               const VkCommandBuffer * pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
1594    {
1595      return ::vkFreeCommandBuffers( device, commandPool, commandBufferCount, pCommandBuffers );
1596    }
1597
1598    VkResult vkBeginCommandBuffer( VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo * pBeginInfo ) const VULKAN_HPP_NOEXCEPT
1599    {
1600      return ::vkBeginCommandBuffer( commandBuffer, pBeginInfo );
1601    }
1602
1603    VkResult vkEndCommandBuffer( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1604    {
1605      return ::vkEndCommandBuffer( commandBuffer );
1606    }
1607
1608    VkResult vkResetCommandBuffer( VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags ) const VULKAN_HPP_NOEXCEPT
1609    {
1610      return ::vkResetCommandBuffer( commandBuffer, flags );
1611    }
1612
1613    void vkCmdBindPipeline( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline ) const VULKAN_HPP_NOEXCEPT
1614    {
1615      return ::vkCmdBindPipeline( commandBuffer, pipelineBindPoint, pipeline );
1616    }
1617
1618    void
1619      vkCmdSetViewport( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport * pViewports ) const VULKAN_HPP_NOEXCEPT
1620    {
1621      return ::vkCmdSetViewport( commandBuffer, firstViewport, viewportCount, pViewports );
1622    }
1623
1624    void vkCmdSetScissor( VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D * pScissors ) const VULKAN_HPP_NOEXCEPT
1625    {
1626      return ::vkCmdSetScissor( commandBuffer, firstScissor, scissorCount, pScissors );
1627    }
1628
1629    void vkCmdSetLineWidth( VkCommandBuffer commandBuffer, float lineWidth ) const VULKAN_HPP_NOEXCEPT
1630    {
1631      return ::vkCmdSetLineWidth( commandBuffer, lineWidth );
1632    }
1633
1634    void vkCmdSetDepthBias( VkCommandBuffer commandBuffer,
1635                            float           depthBiasConstantFactor,
1636                            float           depthBiasClamp,
1637                            float           depthBiasSlopeFactor ) const VULKAN_HPP_NOEXCEPT
1638    {
1639      return ::vkCmdSetDepthBias( commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
1640    }
1641
1642    void vkCmdSetBlendConstants( VkCommandBuffer commandBuffer, const float blendConstants[4] ) const VULKAN_HPP_NOEXCEPT
1643    {
1644      return ::vkCmdSetBlendConstants( commandBuffer, blendConstants );
1645    }
1646
1647    void vkCmdSetDepthBounds( VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds ) const VULKAN_HPP_NOEXCEPT
1648    {
1649      return ::vkCmdSetDepthBounds( commandBuffer, minDepthBounds, maxDepthBounds );
1650    }
1651
1652    void vkCmdSetStencilCompareMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask ) const VULKAN_HPP_NOEXCEPT
1653    {
1654      return ::vkCmdSetStencilCompareMask( commandBuffer, faceMask, compareMask );
1655    }
1656
1657    void vkCmdSetStencilWriteMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask ) const VULKAN_HPP_NOEXCEPT
1658    {
1659      return ::vkCmdSetStencilWriteMask( commandBuffer, faceMask, writeMask );
1660    }
1661
1662    void vkCmdSetStencilReference( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference ) const VULKAN_HPP_NOEXCEPT
1663    {
1664      return ::vkCmdSetStencilReference( commandBuffer, faceMask, reference );
1665    }
1666
1667    void vkCmdBindDescriptorSets( VkCommandBuffer         commandBuffer,
1668                                  VkPipelineBindPoint     pipelineBindPoint,
1669                                  VkPipelineLayout        layout,
1670                                  uint32_t                firstSet,
1671                                  uint32_t                descriptorSetCount,
1672                                  const VkDescriptorSet * pDescriptorSets,
1673                                  uint32_t                dynamicOffsetCount,
1674                                  const uint32_t *        pDynamicOffsets ) const VULKAN_HPP_NOEXCEPT
1675    {
1676      return ::vkCmdBindDescriptorSets(
1677        commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets );
1678    }
1679
1680    void vkCmdBindIndexBuffer( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType ) const VULKAN_HPP_NOEXCEPT
1681    {
1682      return ::vkCmdBindIndexBuffer( commandBuffer, buffer, offset, indexType );
1683    }
1684
1685    void vkCmdBindVertexBuffers( VkCommandBuffer      commandBuffer,
1686                                 uint32_t             firstBinding,
1687                                 uint32_t             bindingCount,
1688                                 const VkBuffer *     pBuffers,
1689                                 const VkDeviceSize * pOffsets ) const VULKAN_HPP_NOEXCEPT
1690    {
1691      return ::vkCmdBindVertexBuffers( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets );
1692    }
1693
1694    void vkCmdDraw( VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance ) const
1695      VULKAN_HPP_NOEXCEPT
1696    {
1697      return ::vkCmdDraw( commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
1698    }
1699
1700    void vkCmdDrawIndexed( VkCommandBuffer commandBuffer,
1701                           uint32_t        indexCount,
1702                           uint32_t        instanceCount,
1703                           uint32_t        firstIndex,
1704                           int32_t         vertexOffset,
1705                           uint32_t        firstInstance ) const VULKAN_HPP_NOEXCEPT
1706    {
1707      return ::vkCmdDrawIndexed( commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
1708    }
1709
1710    void vkCmdDrawIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
1711    {
1712      return ::vkCmdDrawIndirect( commandBuffer, buffer, offset, drawCount, stride );
1713    }
1714
1715    void vkCmdDrawIndexedIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const
1716      VULKAN_HPP_NOEXCEPT
1717    {
1718      return ::vkCmdDrawIndexedIndirect( commandBuffer, buffer, offset, drawCount, stride );
1719    }
1720
1721    void vkCmdDispatch( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT
1722    {
1723      return ::vkCmdDispatch( commandBuffer, groupCountX, groupCountY, groupCountZ );
1724    }
1725
1726    void vkCmdDispatchIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset ) const VULKAN_HPP_NOEXCEPT
1727    {
1728      return ::vkCmdDispatchIndirect( commandBuffer, buffer, offset );
1729    }
1730
1731    void vkCmdCopyBuffer( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy * pRegions ) const
1732      VULKAN_HPP_NOEXCEPT
1733    {
1734      return ::vkCmdCopyBuffer( commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions );
1735    }
1736
1737    void vkCmdCopyImage( VkCommandBuffer     commandBuffer,
1738                         VkImage             srcImage,
1739                         VkImageLayout       srcImageLayout,
1740                         VkImage             dstImage,
1741                         VkImageLayout       dstImageLayout,
1742                         uint32_t            regionCount,
1743                         const VkImageCopy * pRegions ) const VULKAN_HPP_NOEXCEPT
1744    {
1745      return ::vkCmdCopyImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
1746    }
1747
1748    void vkCmdBlitImage( VkCommandBuffer     commandBuffer,
1749                         VkImage             srcImage,
1750                         VkImageLayout       srcImageLayout,
1751                         VkImage             dstImage,
1752                         VkImageLayout       dstImageLayout,
1753                         uint32_t            regionCount,
1754                         const VkImageBlit * pRegions,
1755                         VkFilter            filter ) const VULKAN_HPP_NOEXCEPT
1756    {
1757      return ::vkCmdBlitImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter );
1758    }
1759
1760    void vkCmdCopyBufferToImage( VkCommandBuffer           commandBuffer,
1761                                 VkBuffer                  srcBuffer,
1762                                 VkImage                   dstImage,
1763                                 VkImageLayout             dstImageLayout,
1764                                 uint32_t                  regionCount,
1765                                 const VkBufferImageCopy * pRegions ) const VULKAN_HPP_NOEXCEPT
1766    {
1767      return ::vkCmdCopyBufferToImage( commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions );
1768    }
1769
1770    void vkCmdCopyImageToBuffer( VkCommandBuffer           commandBuffer,
1771                                 VkImage                   srcImage,
1772                                 VkImageLayout             srcImageLayout,
1773                                 VkBuffer                  dstBuffer,
1774                                 uint32_t                  regionCount,
1775                                 const VkBufferImageCopy * pRegions ) const VULKAN_HPP_NOEXCEPT
1776    {
1777      return ::vkCmdCopyImageToBuffer( commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions );
1778    }
1779
1780    void vkCmdUpdateBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void * pData ) const
1781      VULKAN_HPP_NOEXCEPT
1782    {
1783      return ::vkCmdUpdateBuffer( commandBuffer, dstBuffer, dstOffset, dataSize, pData );
1784    }
1785
1786    void
1787      vkCmdFillBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data ) const VULKAN_HPP_NOEXCEPT
1788    {
1789      return ::vkCmdFillBuffer( commandBuffer, dstBuffer, dstOffset, size, data );
1790    }
1791
1792    void vkCmdClearColorImage( VkCommandBuffer                 commandBuffer,
1793                               VkImage                         image,
1794                               VkImageLayout                   imageLayout,
1795                               const VkClearColorValue *       pColor,
1796                               uint32_t                        rangeCount,
1797                               const VkImageSubresourceRange * pRanges ) const VULKAN_HPP_NOEXCEPT
1798    {
1799      return ::vkCmdClearColorImage( commandBuffer, image, imageLayout, pColor, rangeCount, pRanges );
1800    }
1801
1802    void vkCmdClearDepthStencilImage( VkCommandBuffer                  commandBuffer,
1803                                      VkImage                          image,
1804                                      VkImageLayout                    imageLayout,
1805                                      const VkClearDepthStencilValue * pDepthStencil,
1806                                      uint32_t                         rangeCount,
1807                                      const VkImageSubresourceRange *  pRanges ) const VULKAN_HPP_NOEXCEPT
1808    {
1809      return ::vkCmdClearDepthStencilImage( commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges );
1810    }
1811
1812    void vkCmdClearAttachments( VkCommandBuffer           commandBuffer,
1813                                uint32_t                  attachmentCount,
1814                                const VkClearAttachment * pAttachments,
1815                                uint32_t                  rectCount,
1816                                const VkClearRect *       pRects ) const VULKAN_HPP_NOEXCEPT
1817    {
1818      return ::vkCmdClearAttachments( commandBuffer, attachmentCount, pAttachments, rectCount, pRects );
1819    }
1820
1821    void vkCmdResolveImage( VkCommandBuffer        commandBuffer,
1822                            VkImage                srcImage,
1823                            VkImageLayout          srcImageLayout,
1824                            VkImage                dstImage,
1825                            VkImageLayout          dstImageLayout,
1826                            uint32_t               regionCount,
1827                            const VkImageResolve * pRegions ) const VULKAN_HPP_NOEXCEPT
1828    {
1829      return ::vkCmdResolveImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
1830    }
1831
1832    void vkCmdSetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT
1833    {
1834      return ::vkCmdSetEvent( commandBuffer, event, stageMask );
1835    }
1836
1837    void vkCmdResetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT
1838    {
1839      return ::vkCmdResetEvent( commandBuffer, event, stageMask );
1840    }
1841
1842    void vkCmdWaitEvents( VkCommandBuffer               commandBuffer,
1843                          uint32_t                      eventCount,
1844                          const VkEvent *               pEvents,
1845                          VkPipelineStageFlags          srcStageMask,
1846                          VkPipelineStageFlags          dstStageMask,
1847                          uint32_t                      memoryBarrierCount,
1848                          const VkMemoryBarrier *       pMemoryBarriers,
1849                          uint32_t                      bufferMemoryBarrierCount,
1850                          const VkBufferMemoryBarrier * pBufferMemoryBarriers,
1851                          uint32_t                      imageMemoryBarrierCount,
1852                          const VkImageMemoryBarrier *  pImageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT
1853    {
1854      return ::vkCmdWaitEvents( commandBuffer,
1855                                eventCount,
1856                                pEvents,
1857                                srcStageMask,
1858                                dstStageMask,
1859                                memoryBarrierCount,
1860                                pMemoryBarriers,
1861                                bufferMemoryBarrierCount,
1862                                pBufferMemoryBarriers,
1863                                imageMemoryBarrierCount,
1864                                pImageMemoryBarriers );
1865    }
1866
1867    void vkCmdPipelineBarrier( VkCommandBuffer               commandBuffer,
1868                               VkPipelineStageFlags          srcStageMask,
1869                               VkPipelineStageFlags          dstStageMask,
1870                               VkDependencyFlags             dependencyFlags,
1871                               uint32_t                      memoryBarrierCount,
1872                               const VkMemoryBarrier *       pMemoryBarriers,
1873                               uint32_t                      bufferMemoryBarrierCount,
1874                               const VkBufferMemoryBarrier * pBufferMemoryBarriers,
1875                               uint32_t                      imageMemoryBarrierCount,
1876                               const VkImageMemoryBarrier *  pImageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT
1877    {
1878      return ::vkCmdPipelineBarrier( commandBuffer,
1879                                     srcStageMask,
1880                                     dstStageMask,
1881                                     dependencyFlags,
1882                                     memoryBarrierCount,
1883                                     pMemoryBarriers,
1884                                     bufferMemoryBarrierCount,
1885                                     pBufferMemoryBarriers,
1886                                     imageMemoryBarrierCount,
1887                                     pImageMemoryBarriers );
1888    }
1889
1890    void vkCmdBeginQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags ) const VULKAN_HPP_NOEXCEPT
1891    {
1892      return ::vkCmdBeginQuery( commandBuffer, queryPool, query, flags );
1893    }
1894
1895    void vkCmdEndQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT
1896    {
1897      return ::vkCmdEndQuery( commandBuffer, queryPool, query );
1898    }
1899
1900    void vkCmdResetQueryPool( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
1901    {
1902      return ::vkCmdResetQueryPool( commandBuffer, queryPool, firstQuery, queryCount );
1903    }
1904
1905    void vkCmdWriteTimestamp( VkCommandBuffer         commandBuffer,
1906                              VkPipelineStageFlagBits pipelineStage,
1907                              VkQueryPool             queryPool,
1908                              uint32_t                query ) const VULKAN_HPP_NOEXCEPT
1909    {
1910      return ::vkCmdWriteTimestamp( commandBuffer, pipelineStage, queryPool, query );
1911    }
1912
1913    void vkCmdCopyQueryPoolResults( VkCommandBuffer    commandBuffer,
1914                                    VkQueryPool        queryPool,
1915                                    uint32_t           firstQuery,
1916                                    uint32_t           queryCount,
1917                                    VkBuffer           dstBuffer,
1918                                    VkDeviceSize       dstOffset,
1919                                    VkDeviceSize       stride,
1920                                    VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT
1921    {
1922      return ::vkCmdCopyQueryPoolResults( commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags );
1923    }
1924
1925    void vkCmdPushConstants( VkCommandBuffer    commandBuffer,
1926                             VkPipelineLayout   layout,
1927                             VkShaderStageFlags stageFlags,
1928                             uint32_t           offset,
1929                             uint32_t           size,
1930                             const void *       pValues ) const VULKAN_HPP_NOEXCEPT
1931    {
1932      return ::vkCmdPushConstants( commandBuffer, layout, stageFlags, offset, size, pValues );
1933    }
1934
1935    void vkCmdBeginRenderPass( VkCommandBuffer               commandBuffer,
1936                               const VkRenderPassBeginInfo * pRenderPassBegin,
1937                               VkSubpassContents             contents ) const VULKAN_HPP_NOEXCEPT
1938    {
1939      return ::vkCmdBeginRenderPass( commandBuffer, pRenderPassBegin, contents );
1940    }
1941
1942    void vkCmdNextSubpass( VkCommandBuffer commandBuffer, VkSubpassContents contents ) const VULKAN_HPP_NOEXCEPT
1943    {
1944      return ::vkCmdNextSubpass( commandBuffer, contents );
1945    }
1946
1947    void vkCmdEndRenderPass( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
1948    {
1949      return ::vkCmdEndRenderPass( commandBuffer );
1950    }
1951
1952    void vkCmdExecuteCommands( VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer * pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
1953    {
1954      return ::vkCmdExecuteCommands( commandBuffer, commandBufferCount, pCommandBuffers );
1955    }
1956
1957    //=== VK_VERSION_1_1 ===
1958
1959    VkResult vkEnumerateInstanceVersion( uint32_t * pApiVersion ) const VULKAN_HPP_NOEXCEPT
1960    {
1961      return ::vkEnumerateInstanceVersion( pApiVersion );
1962    }
1963
1964    VkResult vkBindBufferMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT
1965    {
1966      return ::vkBindBufferMemory2( device, bindInfoCount, pBindInfos );
1967    }
1968
1969    VkResult vkBindImageMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT
1970    {
1971      return ::vkBindImageMemory2( device, bindInfoCount, pBindInfos );
1972    }
1973
1974    void vkGetDeviceGroupPeerMemoryFeatures( VkDevice                   device,
1975                                             uint32_t                   heapIndex,
1976                                             uint32_t                   localDeviceIndex,
1977                                             uint32_t                   remoteDeviceIndex,
1978                                             VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT
1979    {
1980      return ::vkGetDeviceGroupPeerMemoryFeatures( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures );
1981    }
1982
1983    void vkCmdSetDeviceMask( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT
1984    {
1985      return ::vkCmdSetDeviceMask( commandBuffer, deviceMask );
1986    }
1987
1988    void vkCmdDispatchBase( VkCommandBuffer commandBuffer,
1989                            uint32_t        baseGroupX,
1990                            uint32_t        baseGroupY,
1991                            uint32_t        baseGroupZ,
1992                            uint32_t        groupCountX,
1993                            uint32_t        groupCountY,
1994                            uint32_t        groupCountZ ) const VULKAN_HPP_NOEXCEPT
1995    {
1996      return ::vkCmdDispatchBase( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
1997    }
1998
1999    VkResult vkEnumeratePhysicalDeviceGroups( VkInstance                        instance,
2000                                              uint32_t *                        pPhysicalDeviceGroupCount,
2001                                              VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT
2002    {
2003      return ::vkEnumeratePhysicalDeviceGroups( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties );
2004    }
2005
2006    void vkGetImageMemoryRequirements2( VkDevice                               device,
2007                                        const VkImageMemoryRequirementsInfo2 * pInfo,
2008                                        VkMemoryRequirements2 *                pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2009    {
2010      return ::vkGetImageMemoryRequirements2( device, pInfo, pMemoryRequirements );
2011    }
2012
2013    void vkGetBufferMemoryRequirements2( VkDevice                                device,
2014                                         const VkBufferMemoryRequirementsInfo2 * pInfo,
2015                                         VkMemoryRequirements2 *                 pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2016    {
2017      return ::vkGetBufferMemoryRequirements2( device, pInfo, pMemoryRequirements );
2018    }
2019
2020    void vkGetImageSparseMemoryRequirements2( VkDevice                                     device,
2021                                              const VkImageSparseMemoryRequirementsInfo2 * pInfo,
2022                                              uint32_t *                                   pSparseMemoryRequirementCount,
2023                                              VkSparseImageMemoryRequirements2 *           pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2024    {
2025      return ::vkGetImageSparseMemoryRequirements2( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
2026    }
2027
2028    void vkGetPhysicalDeviceFeatures2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2 * pFeatures ) const VULKAN_HPP_NOEXCEPT
2029    {
2030      return ::vkGetPhysicalDeviceFeatures2( physicalDevice, pFeatures );
2031    }
2032
2033    void vkGetPhysicalDeviceProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2 * pProperties ) const VULKAN_HPP_NOEXCEPT
2034    {
2035      return ::vkGetPhysicalDeviceProperties2( physicalDevice, pProperties );
2036    }
2037
2038    void vkGetPhysicalDeviceFormatProperties2( VkPhysicalDevice      physicalDevice,
2039                                               VkFormat              format,
2040                                               VkFormatProperties2 * pFormatProperties ) const VULKAN_HPP_NOEXCEPT
2041    {
2042      return ::vkGetPhysicalDeviceFormatProperties2( physicalDevice, format, pFormatProperties );
2043    }
2044
2045    VkResult vkGetPhysicalDeviceImageFormatProperties2( VkPhysicalDevice                         physicalDevice,
2046                                                        const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,
2047                                                        VkImageFormatProperties2 *               pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
2048    {
2049      return ::vkGetPhysicalDeviceImageFormatProperties2( physicalDevice, pImageFormatInfo, pImageFormatProperties );
2050    }
2051
2052    void vkGetPhysicalDeviceQueueFamilyProperties2( VkPhysicalDevice           physicalDevice,
2053                                                    uint32_t *                 pQueueFamilyPropertyCount,
2054                                                    VkQueueFamilyProperties2 * pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
2055    {
2056      return ::vkGetPhysicalDeviceQueueFamilyProperties2( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
2057    }
2058
2059    void vkGetPhysicalDeviceMemoryProperties2( VkPhysicalDevice                    physicalDevice,
2060                                               VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
2061    {
2062      return ::vkGetPhysicalDeviceMemoryProperties2( physicalDevice, pMemoryProperties );
2063    }
2064
2065    void vkGetPhysicalDeviceSparseImageFormatProperties2( VkPhysicalDevice                               physicalDevice,
2066                                                          const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,
2067                                                          uint32_t *                                     pPropertyCount,
2068                                                          VkSparseImageFormatProperties2 *               pProperties ) const VULKAN_HPP_NOEXCEPT
2069    {
2070      return ::vkGetPhysicalDeviceSparseImageFormatProperties2( physicalDevice, pFormatInfo, pPropertyCount, pProperties );
2071    }
2072
2073    void vkTrimCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT
2074    {
2075      return ::vkTrimCommandPool( device, commandPool, flags );
2076    }
2077
2078    void vkGetDeviceQueue2( VkDevice device, const VkDeviceQueueInfo2 * pQueueInfo, VkQueue * pQueue ) const VULKAN_HPP_NOEXCEPT
2079    {
2080      return ::vkGetDeviceQueue2( device, pQueueInfo, pQueue );
2081    }
2082
2083    VkResult vkCreateSamplerYcbcrConversion( VkDevice                                   device,
2084                                             const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,
2085                                             const VkAllocationCallbacks *              pAllocator,
2086                                             VkSamplerYcbcrConversion *                 pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT
2087    {
2088      return ::vkCreateSamplerYcbcrConversion( device, pCreateInfo, pAllocator, pYcbcrConversion );
2089    }
2090
2091    void vkDestroySamplerYcbcrConversion( VkDevice                      device,
2092                                          VkSamplerYcbcrConversion      ycbcrConversion,
2093                                          const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
2094    {
2095      return ::vkDestroySamplerYcbcrConversion( device, ycbcrConversion, pAllocator );
2096    }
2097
2098    VkResult vkCreateDescriptorUpdateTemplate( VkDevice                                     device,
2099                                               const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,
2100                                               const VkAllocationCallbacks *                pAllocator,
2101                                               VkDescriptorUpdateTemplate *                 pDescriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT
2102    {
2103      return ::vkCreateDescriptorUpdateTemplate( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate );
2104    }
2105
2106    void vkDestroyDescriptorUpdateTemplate( VkDevice                      device,
2107                                            VkDescriptorUpdateTemplate    descriptorUpdateTemplate,
2108                                            const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
2109    {
2110      return ::vkDestroyDescriptorUpdateTemplate( device, descriptorUpdateTemplate, pAllocator );
2111    }
2112
2113    void vkUpdateDescriptorSetWithTemplate( VkDevice                   device,
2114                                            VkDescriptorSet            descriptorSet,
2115                                            VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2116                                            const void *               pData ) const VULKAN_HPP_NOEXCEPT
2117    {
2118      return ::vkUpdateDescriptorSetWithTemplate( device, descriptorSet, descriptorUpdateTemplate, pData );
2119    }
2120
2121    void vkGetPhysicalDeviceExternalBufferProperties( VkPhysicalDevice                           physicalDevice,
2122                                                      const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,
2123                                                      VkExternalBufferProperties *               pExternalBufferProperties ) const VULKAN_HPP_NOEXCEPT
2124    {
2125      return ::vkGetPhysicalDeviceExternalBufferProperties( physicalDevice, pExternalBufferInfo, pExternalBufferProperties );
2126    }
2127
2128    void vkGetPhysicalDeviceExternalFenceProperties( VkPhysicalDevice                          physicalDevice,
2129                                                     const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,
2130                                                     VkExternalFenceProperties *               pExternalFenceProperties ) const VULKAN_HPP_NOEXCEPT
2131    {
2132      return ::vkGetPhysicalDeviceExternalFenceProperties( physicalDevice, pExternalFenceInfo, pExternalFenceProperties );
2133    }
2134
2135    void vkGetPhysicalDeviceExternalSemaphoreProperties( VkPhysicalDevice                              physicalDevice,
2136                                                         const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,
2137                                                         VkExternalSemaphoreProperties *               pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT
2138    {
2139      return ::vkGetPhysicalDeviceExternalSemaphoreProperties( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties );
2140    }
2141
2142    void vkGetDescriptorSetLayoutSupport( VkDevice                                device,
2143                                          const VkDescriptorSetLayoutCreateInfo * pCreateInfo,
2144                                          VkDescriptorSetLayoutSupport *          pSupport ) const VULKAN_HPP_NOEXCEPT
2145    {
2146      return ::vkGetDescriptorSetLayoutSupport( device, pCreateInfo, pSupport );
2147    }
2148
2149    //=== VK_VERSION_1_2 ===
2150
2151    void vkCmdDrawIndirectCount( VkCommandBuffer commandBuffer,
2152                                 VkBuffer        buffer,
2153                                 VkDeviceSize    offset,
2154                                 VkBuffer        countBuffer,
2155                                 VkDeviceSize    countBufferOffset,
2156                                 uint32_t        maxDrawCount,
2157                                 uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
2158    {
2159      return ::vkCmdDrawIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
2160    }
2161
2162    void vkCmdDrawIndexedIndirectCount( VkCommandBuffer commandBuffer,
2163                                        VkBuffer        buffer,
2164                                        VkDeviceSize    offset,
2165                                        VkBuffer        countBuffer,
2166                                        VkDeviceSize    countBufferOffset,
2167                                        uint32_t        maxDrawCount,
2168                                        uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
2169    {
2170      return ::vkCmdDrawIndexedIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
2171    }
2172
2173    VkResult vkCreateRenderPass2( VkDevice                        device,
2174                                  const VkRenderPassCreateInfo2 * pCreateInfo,
2175                                  const VkAllocationCallbacks *   pAllocator,
2176                                  VkRenderPass *                  pRenderPass ) const VULKAN_HPP_NOEXCEPT
2177    {
2178      return ::vkCreateRenderPass2( device, pCreateInfo, pAllocator, pRenderPass );
2179    }
2180
2181    void vkCmdBeginRenderPass2( VkCommandBuffer               commandBuffer,
2182                                const VkRenderPassBeginInfo * pRenderPassBegin,
2183                                const VkSubpassBeginInfo *    pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT
2184    {
2185      return ::vkCmdBeginRenderPass2( commandBuffer, pRenderPassBegin, pSubpassBeginInfo );
2186    }
2187
2188    void vkCmdNextSubpass2( VkCommandBuffer            commandBuffer,
2189                            const VkSubpassBeginInfo * pSubpassBeginInfo,
2190                            const VkSubpassEndInfo *   pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
2191    {
2192      return ::vkCmdNextSubpass2( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo );
2193    }
2194
2195    void vkCmdEndRenderPass2( VkCommandBuffer commandBuffer, const VkSubpassEndInfo * pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
2196    {
2197      return ::vkCmdEndRenderPass2( commandBuffer, pSubpassEndInfo );
2198    }
2199
2200    void vkResetQueryPool( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
2201    {
2202      return ::vkResetQueryPool( device, queryPool, firstQuery, queryCount );
2203    }
2204
2205    VkResult vkGetSemaphoreCounterValue( VkDevice device, VkSemaphore semaphore, uint64_t * pValue ) const VULKAN_HPP_NOEXCEPT
2206    {
2207      return ::vkGetSemaphoreCounterValue( device, semaphore, pValue );
2208    }
2209
2210    VkResult vkWaitSemaphores( VkDevice device, const VkSemaphoreWaitInfo * pWaitInfo, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
2211    {
2212      return ::vkWaitSemaphores( device, pWaitInfo, timeout );
2213    }
2214
2215    VkResult vkSignalSemaphore( VkDevice device, const VkSemaphoreSignalInfo * pSignalInfo ) const VULKAN_HPP_NOEXCEPT
2216    {
2217      return ::vkSignalSemaphore( device, pSignalInfo );
2218    }
2219
2220    VkDeviceAddress vkGetBufferDeviceAddress( VkDevice device, const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
2221    {
2222      return ::vkGetBufferDeviceAddress( device, pInfo );
2223    }
2224
2225    uint64_t vkGetBufferOpaqueCaptureAddress( VkDevice device, const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
2226    {
2227      return ::vkGetBufferOpaqueCaptureAddress( device, pInfo );
2228    }
2229
2230    uint64_t vkGetDeviceMemoryOpaqueCaptureAddress( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
2231    {
2232      return ::vkGetDeviceMemoryOpaqueCaptureAddress( device, pInfo );
2233    }
2234
2235    //=== VK_VERSION_1_3 ===
2236
2237    VkResult vkGetPhysicalDeviceToolProperties( VkPhysicalDevice                 physicalDevice,
2238                                                uint32_t *                       pToolCount,
2239                                                VkPhysicalDeviceToolProperties * pToolProperties ) const VULKAN_HPP_NOEXCEPT
2240    {
2241      return ::vkGetPhysicalDeviceToolProperties( physicalDevice, pToolCount, pToolProperties );
2242    }
2243
2244    VkResult vkCreatePrivateDataSlot( VkDevice                            device,
2245                                      const VkPrivateDataSlotCreateInfo * pCreateInfo,
2246                                      const VkAllocationCallbacks *       pAllocator,
2247                                      VkPrivateDataSlot *                 pPrivateDataSlot ) const VULKAN_HPP_NOEXCEPT
2248    {
2249      return ::vkCreatePrivateDataSlot( device, pCreateInfo, pAllocator, pPrivateDataSlot );
2250    }
2251
2252    void vkDestroyPrivateDataSlot( VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
2253    {
2254      return ::vkDestroyPrivateDataSlot( device, privateDataSlot, pAllocator );
2255    }
2256
2257    VkResult vkSetPrivateData( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data ) const
2258      VULKAN_HPP_NOEXCEPT
2259    {
2260      return ::vkSetPrivateData( device, objectType, objectHandle, privateDataSlot, data );
2261    }
2262
2263    void vkGetPrivateData( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t * pData ) const
2264      VULKAN_HPP_NOEXCEPT
2265    {
2266      return ::vkGetPrivateData( device, objectType, objectHandle, privateDataSlot, pData );
2267    }
2268
2269    void vkCmdSetEvent2( VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo * pDependencyInfo ) const VULKAN_HPP_NOEXCEPT
2270    {
2271      return ::vkCmdSetEvent2( commandBuffer, event, pDependencyInfo );
2272    }
2273
2274    void vkCmdResetEvent2( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask ) const VULKAN_HPP_NOEXCEPT
2275    {
2276      return ::vkCmdResetEvent2( commandBuffer, event, stageMask );
2277    }
2278
2279    void vkCmdWaitEvents2( VkCommandBuffer          commandBuffer,
2280                           uint32_t                 eventCount,
2281                           const VkEvent *          pEvents,
2282                           const VkDependencyInfo * pDependencyInfos ) const VULKAN_HPP_NOEXCEPT
2283    {
2284      return ::vkCmdWaitEvents2( commandBuffer, eventCount, pEvents, pDependencyInfos );
2285    }
2286
2287    void vkCmdPipelineBarrier2( VkCommandBuffer commandBuffer, const VkDependencyInfo * pDependencyInfo ) const VULKAN_HPP_NOEXCEPT
2288    {
2289      return ::vkCmdPipelineBarrier2( commandBuffer, pDependencyInfo );
2290    }
2291
2292    void vkCmdWriteTimestamp2( VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT
2293    {
2294      return ::vkCmdWriteTimestamp2( commandBuffer, stage, queryPool, query );
2295    }
2296
2297    VkResult vkQueueSubmit2( VkQueue queue, uint32_t submitCount, const VkSubmitInfo2 * pSubmits, VkFence fence ) const VULKAN_HPP_NOEXCEPT
2298    {
2299      return ::vkQueueSubmit2( queue, submitCount, pSubmits, fence );
2300    }
2301
2302    void vkCmdCopyBuffer2( VkCommandBuffer commandBuffer, const VkCopyBufferInfo2 * pCopyBufferInfo ) const VULKAN_HPP_NOEXCEPT
2303    {
2304      return ::vkCmdCopyBuffer2( commandBuffer, pCopyBufferInfo );
2305    }
2306
2307    void vkCmdCopyImage2( VkCommandBuffer commandBuffer, const VkCopyImageInfo2 * pCopyImageInfo ) const VULKAN_HPP_NOEXCEPT
2308    {
2309      return ::vkCmdCopyImage2( commandBuffer, pCopyImageInfo );
2310    }
2311
2312    void vkCmdCopyBufferToImage2( VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT
2313    {
2314      return ::vkCmdCopyBufferToImage2( commandBuffer, pCopyBufferToImageInfo );
2315    }
2316
2317    void vkCmdCopyImageToBuffer2( VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT
2318    {
2319      return ::vkCmdCopyImageToBuffer2( commandBuffer, pCopyImageToBufferInfo );
2320    }
2321
2322    void vkCmdBlitImage2( VkCommandBuffer commandBuffer, const VkBlitImageInfo2 * pBlitImageInfo ) const VULKAN_HPP_NOEXCEPT
2323    {
2324      return ::vkCmdBlitImage2( commandBuffer, pBlitImageInfo );
2325    }
2326
2327    void vkCmdResolveImage2( VkCommandBuffer commandBuffer, const VkResolveImageInfo2 * pResolveImageInfo ) const VULKAN_HPP_NOEXCEPT
2328    {
2329      return ::vkCmdResolveImage2( commandBuffer, pResolveImageInfo );
2330    }
2331
2332    void vkCmdBeginRendering( VkCommandBuffer commandBuffer, const VkRenderingInfo * pRenderingInfo ) const VULKAN_HPP_NOEXCEPT
2333    {
2334      return ::vkCmdBeginRendering( commandBuffer, pRenderingInfo );
2335    }
2336
2337    void vkCmdEndRendering( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
2338    {
2339      return ::vkCmdEndRendering( commandBuffer );
2340    }
2341
2342    void vkCmdSetCullMode( VkCommandBuffer commandBuffer, VkCullModeFlags cullMode ) const VULKAN_HPP_NOEXCEPT
2343    {
2344      return ::vkCmdSetCullMode( commandBuffer, cullMode );
2345    }
2346
2347    void vkCmdSetFrontFace( VkCommandBuffer commandBuffer, VkFrontFace frontFace ) const VULKAN_HPP_NOEXCEPT
2348    {
2349      return ::vkCmdSetFrontFace( commandBuffer, frontFace );
2350    }
2351
2352    void vkCmdSetPrimitiveTopology( VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT
2353    {
2354      return ::vkCmdSetPrimitiveTopology( commandBuffer, primitiveTopology );
2355    }
2356
2357    void vkCmdSetViewportWithCount( VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport * pViewports ) const VULKAN_HPP_NOEXCEPT
2358    {
2359      return ::vkCmdSetViewportWithCount( commandBuffer, viewportCount, pViewports );
2360    }
2361
2362    void vkCmdSetScissorWithCount( VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D * pScissors ) const VULKAN_HPP_NOEXCEPT
2363    {
2364      return ::vkCmdSetScissorWithCount( commandBuffer, scissorCount, pScissors );
2365    }
2366
2367    void vkCmdBindVertexBuffers2( VkCommandBuffer      commandBuffer,
2368                                  uint32_t             firstBinding,
2369                                  uint32_t             bindingCount,
2370                                  const VkBuffer *     pBuffers,
2371                                  const VkDeviceSize * pOffsets,
2372                                  const VkDeviceSize * pSizes,
2373                                  const VkDeviceSize * pStrides ) const VULKAN_HPP_NOEXCEPT
2374    {
2375      return ::vkCmdBindVertexBuffers2( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides );
2376    }
2377
2378    void vkCmdSetDepthTestEnable( VkCommandBuffer commandBuffer, VkBool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT
2379    {
2380      return ::vkCmdSetDepthTestEnable( commandBuffer, depthTestEnable );
2381    }
2382
2383    void vkCmdSetDepthWriteEnable( VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT
2384    {
2385      return ::vkCmdSetDepthWriteEnable( commandBuffer, depthWriteEnable );
2386    }
2387
2388    void vkCmdSetDepthCompareOp( VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT
2389    {
2390      return ::vkCmdSetDepthCompareOp( commandBuffer, depthCompareOp );
2391    }
2392
2393    void vkCmdSetDepthBoundsTestEnable( VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT
2394    {
2395      return ::vkCmdSetDepthBoundsTestEnable( commandBuffer, depthBoundsTestEnable );
2396    }
2397
2398    void vkCmdSetStencilTestEnable( VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT
2399    {
2400      return ::vkCmdSetStencilTestEnable( commandBuffer, stencilTestEnable );
2401    }
2402
2403    void vkCmdSetStencilOp( VkCommandBuffer    commandBuffer,
2404                            VkStencilFaceFlags faceMask,
2405                            VkStencilOp        failOp,
2406                            VkStencilOp        passOp,
2407                            VkStencilOp        depthFailOp,
2408                            VkCompareOp        compareOp ) const VULKAN_HPP_NOEXCEPT
2409    {
2410      return ::vkCmdSetStencilOp( commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp );
2411    }
2412
2413    void vkCmdSetRasterizerDiscardEnable( VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable ) const VULKAN_HPP_NOEXCEPT
2414    {
2415      return ::vkCmdSetRasterizerDiscardEnable( commandBuffer, rasterizerDiscardEnable );
2416    }
2417
2418    void vkCmdSetDepthBiasEnable( VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable ) const VULKAN_HPP_NOEXCEPT
2419    {
2420      return ::vkCmdSetDepthBiasEnable( commandBuffer, depthBiasEnable );
2421    }
2422
2423    void vkCmdSetPrimitiveRestartEnable( VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable ) const VULKAN_HPP_NOEXCEPT
2424    {
2425      return ::vkCmdSetPrimitiveRestartEnable( commandBuffer, primitiveRestartEnable );
2426    }
2427
2428    void vkGetDeviceBufferMemoryRequirements( VkDevice                                 device,
2429                                              const VkDeviceBufferMemoryRequirements * pInfo,
2430                                              VkMemoryRequirements2 *                  pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2431    {
2432      return ::vkGetDeviceBufferMemoryRequirements( device, pInfo, pMemoryRequirements );
2433    }
2434
2435    void vkGetDeviceImageMemoryRequirements( VkDevice                                device,
2436                                             const VkDeviceImageMemoryRequirements * pInfo,
2437                                             VkMemoryRequirements2 *                 pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2438    {
2439      return ::vkGetDeviceImageMemoryRequirements( device, pInfo, pMemoryRequirements );
2440    }
2441
2442    void vkGetDeviceImageSparseMemoryRequirements( VkDevice                                device,
2443                                                   const VkDeviceImageMemoryRequirements * pInfo,
2444                                                   uint32_t *                              pSparseMemoryRequirementCount,
2445                                                   VkSparseImageMemoryRequirements2 *      pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2446    {
2447      return ::vkGetDeviceImageSparseMemoryRequirements( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
2448    }
2449
2450    //=== VK_KHR_surface ===
2451
2452    void vkDestroySurfaceKHR( VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
2453    {
2454      return ::vkDestroySurfaceKHR( instance, surface, pAllocator );
2455    }
2456
2457    VkResult vkGetPhysicalDeviceSurfaceSupportKHR( VkPhysicalDevice physicalDevice,
2458                                                   uint32_t         queueFamilyIndex,
2459                                                   VkSurfaceKHR     surface,
2460                                                   VkBool32 *       pSupported ) const VULKAN_HPP_NOEXCEPT
2461    {
2462      return ::vkGetPhysicalDeviceSurfaceSupportKHR( physicalDevice, queueFamilyIndex, surface, pSupported );
2463    }
2464
2465    VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR( VkPhysicalDevice           physicalDevice,
2466                                                        VkSurfaceKHR               surface,
2467                                                        VkSurfaceCapabilitiesKHR * pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
2468    {
2469      return ::vkGetPhysicalDeviceSurfaceCapabilitiesKHR( physicalDevice, surface, pSurfaceCapabilities );
2470    }
2471
2472    VkResult vkGetPhysicalDeviceSurfaceFormatsKHR( VkPhysicalDevice     physicalDevice,
2473                                                   VkSurfaceKHR         surface,
2474                                                   uint32_t *           pSurfaceFormatCount,
2475                                                   VkSurfaceFormatKHR * pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT
2476    {
2477      return ::vkGetPhysicalDeviceSurfaceFormatsKHR( physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats );
2478    }
2479
2480    VkResult vkGetPhysicalDeviceSurfacePresentModesKHR( VkPhysicalDevice   physicalDevice,
2481                                                        VkSurfaceKHR       surface,
2482                                                        uint32_t *         pPresentModeCount,
2483                                                        VkPresentModeKHR * pPresentModes ) const VULKAN_HPP_NOEXCEPT
2484    {
2485      return ::vkGetPhysicalDeviceSurfacePresentModesKHR( physicalDevice, surface, pPresentModeCount, pPresentModes );
2486    }
2487
2488    //=== VK_KHR_swapchain ===
2489
2490    VkResult vkCreateSwapchainKHR( VkDevice                         device,
2491                                   const VkSwapchainCreateInfoKHR * pCreateInfo,
2492                                   const VkAllocationCallbacks *    pAllocator,
2493                                   VkSwapchainKHR *                 pSwapchain ) const VULKAN_HPP_NOEXCEPT
2494    {
2495      return ::vkCreateSwapchainKHR( device, pCreateInfo, pAllocator, pSwapchain );
2496    }
2497
2498    void vkDestroySwapchainKHR( VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
2499    {
2500      return ::vkDestroySwapchainKHR( device, swapchain, pAllocator );
2501    }
2502
2503    VkResult vkGetSwapchainImagesKHR( VkDevice       device,
2504                                      VkSwapchainKHR swapchain,
2505                                      uint32_t *     pSwapchainImageCount,
2506                                      VkImage *      pSwapchainImages ) const VULKAN_HPP_NOEXCEPT
2507    {
2508      return ::vkGetSwapchainImagesKHR( device, swapchain, pSwapchainImageCount, pSwapchainImages );
2509    }
2510
2511    VkResult vkAcquireNextImageKHR(
2512      VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t * pImageIndex ) const VULKAN_HPP_NOEXCEPT
2513    {
2514      return ::vkAcquireNextImageKHR( device, swapchain, timeout, semaphore, fence, pImageIndex );
2515    }
2516
2517    VkResult vkQueuePresentKHR( VkQueue queue, const VkPresentInfoKHR * pPresentInfo ) const VULKAN_HPP_NOEXCEPT
2518    {
2519      return ::vkQueuePresentKHR( queue, pPresentInfo );
2520    }
2521
2522    VkResult vkGetDeviceGroupPresentCapabilitiesKHR( VkDevice                              device,
2523                                                     VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities ) const VULKAN_HPP_NOEXCEPT
2524    {
2525      return ::vkGetDeviceGroupPresentCapabilitiesKHR( device, pDeviceGroupPresentCapabilities );
2526    }
2527
2528    VkResult
2529      vkGetDeviceGroupSurfacePresentModesKHR( VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR * pModes ) const VULKAN_HPP_NOEXCEPT
2530    {
2531      return ::vkGetDeviceGroupSurfacePresentModesKHR( device, surface, pModes );
2532    }
2533
2534    VkResult vkGetPhysicalDevicePresentRectanglesKHR( VkPhysicalDevice physicalDevice,
2535                                                      VkSurfaceKHR     surface,
2536                                                      uint32_t *       pRectCount,
2537                                                      VkRect2D *       pRects ) const VULKAN_HPP_NOEXCEPT
2538    {
2539      return ::vkGetPhysicalDevicePresentRectanglesKHR( physicalDevice, surface, pRectCount, pRects );
2540    }
2541
2542    VkResult vkAcquireNextImage2KHR( VkDevice device, const VkAcquireNextImageInfoKHR * pAcquireInfo, uint32_t * pImageIndex ) const VULKAN_HPP_NOEXCEPT
2543    {
2544      return ::vkAcquireNextImage2KHR( device, pAcquireInfo, pImageIndex );
2545    }
2546
2547    //=== VK_KHR_display ===
2548
2549    VkResult vkGetPhysicalDeviceDisplayPropertiesKHR( VkPhysicalDevice         physicalDevice,
2550                                                      uint32_t *               pPropertyCount,
2551                                                      VkDisplayPropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT
2552    {
2553      return ::vkGetPhysicalDeviceDisplayPropertiesKHR( physicalDevice, pPropertyCount, pProperties );
2554    }
2555
2556    VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR( VkPhysicalDevice              physicalDevice,
2557                                                           uint32_t *                    pPropertyCount,
2558                                                           VkDisplayPlanePropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT
2559    {
2560      return ::vkGetPhysicalDeviceDisplayPlanePropertiesKHR( physicalDevice, pPropertyCount, pProperties );
2561    }
2562
2563    VkResult vkGetDisplayPlaneSupportedDisplaysKHR( VkPhysicalDevice physicalDevice,
2564                                                    uint32_t         planeIndex,
2565                                                    uint32_t *       pDisplayCount,
2566                                                    VkDisplayKHR *   pDisplays ) const VULKAN_HPP_NOEXCEPT
2567    {
2568      return ::vkGetDisplayPlaneSupportedDisplaysKHR( physicalDevice, planeIndex, pDisplayCount, pDisplays );
2569    }
2570
2571    VkResult vkGetDisplayModePropertiesKHR( VkPhysicalDevice             physicalDevice,
2572                                            VkDisplayKHR                 display,
2573                                            uint32_t *                   pPropertyCount,
2574                                            VkDisplayModePropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT
2575    {
2576      return ::vkGetDisplayModePropertiesKHR( physicalDevice, display, pPropertyCount, pProperties );
2577    }
2578
2579    VkResult vkCreateDisplayModeKHR( VkPhysicalDevice                   physicalDevice,
2580                                     VkDisplayKHR                       display,
2581                                     const VkDisplayModeCreateInfoKHR * pCreateInfo,
2582                                     const VkAllocationCallbacks *      pAllocator,
2583                                     VkDisplayModeKHR *                 pMode ) const VULKAN_HPP_NOEXCEPT
2584    {
2585      return ::vkCreateDisplayModeKHR( physicalDevice, display, pCreateInfo, pAllocator, pMode );
2586    }
2587
2588    VkResult vkGetDisplayPlaneCapabilitiesKHR( VkPhysicalDevice                physicalDevice,
2589                                               VkDisplayModeKHR                mode,
2590                                               uint32_t                        planeIndex,
2591                                               VkDisplayPlaneCapabilitiesKHR * pCapabilities ) const VULKAN_HPP_NOEXCEPT
2592    {
2593      return ::vkGetDisplayPlaneCapabilitiesKHR( physicalDevice, mode, planeIndex, pCapabilities );
2594    }
2595
2596    VkResult vkCreateDisplayPlaneSurfaceKHR( VkInstance                            instance,
2597                                             const VkDisplaySurfaceCreateInfoKHR * pCreateInfo,
2598                                             const VkAllocationCallbacks *         pAllocator,
2599                                             VkSurfaceKHR *                        pSurface ) const VULKAN_HPP_NOEXCEPT
2600    {
2601      return ::vkCreateDisplayPlaneSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2602    }
2603
2604    //=== VK_KHR_display_swapchain ===
2605
2606    VkResult vkCreateSharedSwapchainsKHR( VkDevice                         device,
2607                                          uint32_t                         swapchainCount,
2608                                          const VkSwapchainCreateInfoKHR * pCreateInfos,
2609                                          const VkAllocationCallbacks *    pAllocator,
2610                                          VkSwapchainKHR *                 pSwapchains ) const VULKAN_HPP_NOEXCEPT
2611    {
2612      return ::vkCreateSharedSwapchainsKHR( device, swapchainCount, pCreateInfos, pAllocator, pSwapchains );
2613    }
2614
2615#  if defined( VK_USE_PLATFORM_XLIB_KHR )
2616    //=== VK_KHR_xlib_surface ===
2617
2618    VkResult vkCreateXlibSurfaceKHR( VkInstance                         instance,
2619                                     const VkXlibSurfaceCreateInfoKHR * pCreateInfo,
2620                                     const VkAllocationCallbacks *      pAllocator,
2621                                     VkSurfaceKHR *                     pSurface ) const VULKAN_HPP_NOEXCEPT
2622    {
2623      return ::vkCreateXlibSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2624    }
2625
2626    VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR( VkPhysicalDevice physicalDevice,
2627                                                            uint32_t         queueFamilyIndex,
2628                                                            Display *        dpy,
2629                                                            VisualID         visualID ) const VULKAN_HPP_NOEXCEPT
2630    {
2631      return ::vkGetPhysicalDeviceXlibPresentationSupportKHR( physicalDevice, queueFamilyIndex, dpy, visualID );
2632    }
2633#  endif /*VK_USE_PLATFORM_XLIB_KHR*/
2634
2635#  if defined( VK_USE_PLATFORM_XCB_KHR )
2636    //=== VK_KHR_xcb_surface ===
2637
2638    VkResult vkCreateXcbSurfaceKHR( VkInstance                        instance,
2639                                    const VkXcbSurfaceCreateInfoKHR * pCreateInfo,
2640                                    const VkAllocationCallbacks *     pAllocator,
2641                                    VkSurfaceKHR *                    pSurface ) const VULKAN_HPP_NOEXCEPT
2642    {
2643      return ::vkCreateXcbSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2644    }
2645
2646    VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR( VkPhysicalDevice   physicalDevice,
2647                                                           uint32_t           queueFamilyIndex,
2648                                                           xcb_connection_t * connection,
2649                                                           xcb_visualid_t     visual_id ) const VULKAN_HPP_NOEXCEPT
2650    {
2651      return ::vkGetPhysicalDeviceXcbPresentationSupportKHR( physicalDevice, queueFamilyIndex, connection, visual_id );
2652    }
2653#  endif /*VK_USE_PLATFORM_XCB_KHR*/
2654
2655#  if defined( VK_USE_PLATFORM_WAYLAND_KHR )
2656    //=== VK_KHR_wayland_surface ===
2657
2658    VkResult vkCreateWaylandSurfaceKHR( VkInstance                            instance,
2659                                        const VkWaylandSurfaceCreateInfoKHR * pCreateInfo,
2660                                        const VkAllocationCallbacks *         pAllocator,
2661                                        VkSurfaceKHR *                        pSurface ) const VULKAN_HPP_NOEXCEPT
2662    {
2663      return ::vkCreateWaylandSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2664    }
2665
2666    VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR( VkPhysicalDevice    physicalDevice,
2667                                                               uint32_t            queueFamilyIndex,
2668                                                               struct wl_display * display ) const VULKAN_HPP_NOEXCEPT
2669    {
2670      return ::vkGetPhysicalDeviceWaylandPresentationSupportKHR( physicalDevice, queueFamilyIndex, display );
2671    }
2672#  endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
2673
2674#  if defined( VK_USE_PLATFORM_ANDROID_KHR )
2675    //=== VK_KHR_android_surface ===
2676
2677    VkResult vkCreateAndroidSurfaceKHR( VkInstance                            instance,
2678                                        const VkAndroidSurfaceCreateInfoKHR * pCreateInfo,
2679                                        const VkAllocationCallbacks *         pAllocator,
2680                                        VkSurfaceKHR *                        pSurface ) const VULKAN_HPP_NOEXCEPT
2681    {
2682      return ::vkCreateAndroidSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2683    }
2684#  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
2685
2686#  if defined( VK_USE_PLATFORM_WIN32_KHR )
2687    //=== VK_KHR_win32_surface ===
2688
2689    VkResult vkCreateWin32SurfaceKHR( VkInstance                          instance,
2690                                      const VkWin32SurfaceCreateInfoKHR * pCreateInfo,
2691                                      const VkAllocationCallbacks *       pAllocator,
2692                                      VkSurfaceKHR *                      pSurface ) const VULKAN_HPP_NOEXCEPT
2693    {
2694      return ::vkCreateWin32SurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
2695    }
2696
2697    VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT
2698    {
2699      return ::vkGetPhysicalDeviceWin32PresentationSupportKHR( physicalDevice, queueFamilyIndex );
2700    }
2701#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
2702
2703#  if defined( VK_USE_PLATFORM_OHOS )
2704    //=== VK_OHOS_surface ===
2705
2706    VkResult vkCreateSurfaceOHOS(VkInstance instance,
2707    							 const VkSurfaceCreateInfoOHOS * pCreateInfo,
2708                                 const VkAllocationCallbacks * pAllocator,
2709                                 VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT
2710    {
2711      return ::vkCreateSurfaceOHOS( instance, pCreateInfo, pAllocator, pSurface );
2712    }
2713#  endif /*VK_USE_PLATFORM_OHOS*/
2714
2715    //=== VK_EXT_debug_report ===
2716
2717    VkResult vkCreateDebugReportCallbackEXT( VkInstance                                 instance,
2718                                             const VkDebugReportCallbackCreateInfoEXT * pCreateInfo,
2719                                             const VkAllocationCallbacks *              pAllocator,
2720                                             VkDebugReportCallbackEXT *                 pCallback ) const VULKAN_HPP_NOEXCEPT
2721    {
2722      return ::vkCreateDebugReportCallbackEXT( instance, pCreateInfo, pAllocator, pCallback );
2723    }
2724
2725    void vkDestroyDebugReportCallbackEXT( VkInstance                    instance,
2726                                          VkDebugReportCallbackEXT      callback,
2727                                          const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
2728    {
2729      return ::vkDestroyDebugReportCallbackEXT( instance, callback, pAllocator );
2730    }
2731
2732    void vkDebugReportMessageEXT( VkInstance                 instance,
2733                                  VkDebugReportFlagsEXT      flags,
2734                                  VkDebugReportObjectTypeEXT objectType,
2735                                  uint64_t                   object,
2736                                  size_t                     location,
2737                                  int32_t                    messageCode,
2738                                  const char *               pLayerPrefix,
2739                                  const char *               pMessage ) const VULKAN_HPP_NOEXCEPT
2740    {
2741      return ::vkDebugReportMessageEXT( instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage );
2742    }
2743
2744    //=== VK_EXT_debug_marker ===
2745
2746    VkResult vkDebugMarkerSetObjectTagEXT( VkDevice device, const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) const VULKAN_HPP_NOEXCEPT
2747    {
2748      return ::vkDebugMarkerSetObjectTagEXT( device, pTagInfo );
2749    }
2750
2751    VkResult vkDebugMarkerSetObjectNameEXT( VkDevice device, const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) const VULKAN_HPP_NOEXCEPT
2752    {
2753      return ::vkDebugMarkerSetObjectNameEXT( device, pNameInfo );
2754    }
2755
2756    void vkCmdDebugMarkerBeginEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
2757    {
2758      return ::vkCmdDebugMarkerBeginEXT( commandBuffer, pMarkerInfo );
2759    }
2760
2761    void vkCmdDebugMarkerEndEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
2762    {
2763      return ::vkCmdDebugMarkerEndEXT( commandBuffer );
2764    }
2765
2766    void vkCmdDebugMarkerInsertEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
2767    {
2768      return ::vkCmdDebugMarkerInsertEXT( commandBuffer, pMarkerInfo );
2769    }
2770
2771    //=== VK_KHR_video_queue ===
2772
2773    VkResult vkGetPhysicalDeviceVideoCapabilitiesKHR( VkPhysicalDevice              physicalDevice,
2774                                                      const VkVideoProfileInfoKHR * pVideoProfile,
2775                                                      VkVideoCapabilitiesKHR *      pCapabilities ) const VULKAN_HPP_NOEXCEPT
2776    {
2777      return ::vkGetPhysicalDeviceVideoCapabilitiesKHR( physicalDevice, pVideoProfile, pCapabilities );
2778    }
2779
2780    VkResult vkGetPhysicalDeviceVideoFormatPropertiesKHR( VkPhysicalDevice                           physicalDevice,
2781                                                          const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo,
2782                                                          uint32_t *                                 pVideoFormatPropertyCount,
2783                                                          VkVideoFormatPropertiesKHR *               pVideoFormatProperties ) const VULKAN_HPP_NOEXCEPT
2784    {
2785      return ::vkGetPhysicalDeviceVideoFormatPropertiesKHR( physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties );
2786    }
2787
2788    VkResult vkCreateVideoSessionKHR( VkDevice                            device,
2789                                      const VkVideoSessionCreateInfoKHR * pCreateInfo,
2790                                      const VkAllocationCallbacks *       pAllocator,
2791                                      VkVideoSessionKHR *                 pVideoSession ) const VULKAN_HPP_NOEXCEPT
2792    {
2793      return ::vkCreateVideoSessionKHR( device, pCreateInfo, pAllocator, pVideoSession );
2794    }
2795
2796    void vkDestroyVideoSessionKHR( VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
2797    {
2798      return ::vkDestroyVideoSessionKHR( device, videoSession, pAllocator );
2799    }
2800
2801    VkResult vkGetVideoSessionMemoryRequirementsKHR( VkDevice                              device,
2802                                                     VkVideoSessionKHR                     videoSession,
2803                                                     uint32_t *                            pMemoryRequirementsCount,
2804                                                     VkVideoSessionMemoryRequirementsKHR * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
2805    {
2806      return ::vkGetVideoSessionMemoryRequirementsKHR( device, videoSession, pMemoryRequirementsCount, pMemoryRequirements );
2807    }
2808
2809    VkResult vkBindVideoSessionMemoryKHR( VkDevice                                device,
2810                                          VkVideoSessionKHR                       videoSession,
2811                                          uint32_t                                bindSessionMemoryInfoCount,
2812                                          const VkBindVideoSessionMemoryInfoKHR * pBindSessionMemoryInfos ) const VULKAN_HPP_NOEXCEPT
2813    {
2814      return ::vkBindVideoSessionMemoryKHR( device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos );
2815    }
2816
2817    VkResult vkCreateVideoSessionParametersKHR( VkDevice                                      device,
2818                                                const VkVideoSessionParametersCreateInfoKHR * pCreateInfo,
2819                                                const VkAllocationCallbacks *                 pAllocator,
2820                                                VkVideoSessionParametersKHR *                 pVideoSessionParameters ) const VULKAN_HPP_NOEXCEPT
2821    {
2822      return ::vkCreateVideoSessionParametersKHR( device, pCreateInfo, pAllocator, pVideoSessionParameters );
2823    }
2824
2825    VkResult vkUpdateVideoSessionParametersKHR( VkDevice                                      device,
2826                                                VkVideoSessionParametersKHR                   videoSessionParameters,
2827                                                const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo ) const VULKAN_HPP_NOEXCEPT
2828    {
2829      return ::vkUpdateVideoSessionParametersKHR( device, videoSessionParameters, pUpdateInfo );
2830    }
2831
2832    void vkDestroyVideoSessionParametersKHR( VkDevice                      device,
2833                                             VkVideoSessionParametersKHR   videoSessionParameters,
2834                                             const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
2835    {
2836      return ::vkDestroyVideoSessionParametersKHR( device, videoSessionParameters, pAllocator );
2837    }
2838
2839    void vkCmdBeginVideoCodingKHR( VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR * pBeginInfo ) const VULKAN_HPP_NOEXCEPT
2840    {
2841      return ::vkCmdBeginVideoCodingKHR( commandBuffer, pBeginInfo );
2842    }
2843
2844    void vkCmdEndVideoCodingKHR( VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR * pEndCodingInfo ) const VULKAN_HPP_NOEXCEPT
2845    {
2846      return ::vkCmdEndVideoCodingKHR( commandBuffer, pEndCodingInfo );
2847    }
2848
2849    void vkCmdControlVideoCodingKHR( VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR * pCodingControlInfo ) const VULKAN_HPP_NOEXCEPT
2850    {
2851      return ::vkCmdControlVideoCodingKHR( commandBuffer, pCodingControlInfo );
2852    }
2853
2854    //=== VK_KHR_video_decode_queue ===
2855
2856    void vkCmdDecodeVideoKHR( VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR * pDecodeInfo ) const VULKAN_HPP_NOEXCEPT
2857    {
2858      return ::vkCmdDecodeVideoKHR( commandBuffer, pDecodeInfo );
2859    }
2860
2861    //=== VK_EXT_transform_feedback ===
2862
2863    void vkCmdBindTransformFeedbackBuffersEXT( VkCommandBuffer      commandBuffer,
2864                                               uint32_t             firstBinding,
2865                                               uint32_t             bindingCount,
2866                                               const VkBuffer *     pBuffers,
2867                                               const VkDeviceSize * pOffsets,
2868                                               const VkDeviceSize * pSizes ) const VULKAN_HPP_NOEXCEPT
2869    {
2870      return ::vkCmdBindTransformFeedbackBuffersEXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes );
2871    }
2872
2873    void vkCmdBeginTransformFeedbackEXT( VkCommandBuffer      commandBuffer,
2874                                         uint32_t             firstCounterBuffer,
2875                                         uint32_t             counterBufferCount,
2876                                         const VkBuffer *     pCounterBuffers,
2877                                         const VkDeviceSize * pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT
2878    {
2879      return ::vkCmdBeginTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets );
2880    }
2881
2882    void vkCmdEndTransformFeedbackEXT( VkCommandBuffer      commandBuffer,
2883                                       uint32_t             firstCounterBuffer,
2884                                       uint32_t             counterBufferCount,
2885                                       const VkBuffer *     pCounterBuffers,
2886                                       const VkDeviceSize * pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT
2887    {
2888      return ::vkCmdEndTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets );
2889    }
2890
2891    void vkCmdBeginQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index ) const
2892      VULKAN_HPP_NOEXCEPT
2893    {
2894      return ::vkCmdBeginQueryIndexedEXT( commandBuffer, queryPool, query, flags, index );
2895    }
2896
2897    void vkCmdEndQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index ) const VULKAN_HPP_NOEXCEPT
2898    {
2899      return ::vkCmdEndQueryIndexedEXT( commandBuffer, queryPool, query, index );
2900    }
2901
2902    void vkCmdDrawIndirectByteCountEXT( VkCommandBuffer commandBuffer,
2903                                        uint32_t        instanceCount,
2904                                        uint32_t        firstInstance,
2905                                        VkBuffer        counterBuffer,
2906                                        VkDeviceSize    counterBufferOffset,
2907                                        uint32_t        counterOffset,
2908                                        uint32_t        vertexStride ) const VULKAN_HPP_NOEXCEPT
2909    {
2910      return ::vkCmdDrawIndirectByteCountEXT( commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride );
2911    }
2912
2913    //=== VK_NVX_binary_import ===
2914
2915    VkResult vkCreateCuModuleNVX( VkDevice                        device,
2916                                  const VkCuModuleCreateInfoNVX * pCreateInfo,
2917                                  const VkAllocationCallbacks *   pAllocator,
2918                                  VkCuModuleNVX *                 pModule ) const VULKAN_HPP_NOEXCEPT
2919    {
2920      return ::vkCreateCuModuleNVX( device, pCreateInfo, pAllocator, pModule );
2921    }
2922
2923    VkResult vkCreateCuFunctionNVX( VkDevice                          device,
2924                                    const VkCuFunctionCreateInfoNVX * pCreateInfo,
2925                                    const VkAllocationCallbacks *     pAllocator,
2926                                    VkCuFunctionNVX *                 pFunction ) const VULKAN_HPP_NOEXCEPT
2927    {
2928      return ::vkCreateCuFunctionNVX( device, pCreateInfo, pAllocator, pFunction );
2929    }
2930
2931    void vkDestroyCuModuleNVX( VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
2932    {
2933      return ::vkDestroyCuModuleNVX( device, module, pAllocator );
2934    }
2935
2936    void vkDestroyCuFunctionNVX( VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
2937    {
2938      return ::vkDestroyCuFunctionNVX( device, function, pAllocator );
2939    }
2940
2941    void vkCmdCuLaunchKernelNVX( VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX * pLaunchInfo ) const VULKAN_HPP_NOEXCEPT
2942    {
2943      return ::vkCmdCuLaunchKernelNVX( commandBuffer, pLaunchInfo );
2944    }
2945
2946    //=== VK_NVX_image_view_handle ===
2947
2948    uint32_t vkGetImageViewHandleNVX( VkDevice device, const VkImageViewHandleInfoNVX * pInfo ) const VULKAN_HPP_NOEXCEPT
2949    {
2950      return ::vkGetImageViewHandleNVX( device, pInfo );
2951    }
2952
2953    VkResult vkGetImageViewAddressNVX( VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX * pProperties ) const VULKAN_HPP_NOEXCEPT
2954    {
2955      return ::vkGetImageViewAddressNVX( device, imageView, pProperties );
2956    }
2957
2958    //=== VK_AMD_draw_indirect_count ===
2959
2960    void vkCmdDrawIndirectCountAMD( VkCommandBuffer commandBuffer,
2961                                    VkBuffer        buffer,
2962                                    VkDeviceSize    offset,
2963                                    VkBuffer        countBuffer,
2964                                    VkDeviceSize    countBufferOffset,
2965                                    uint32_t        maxDrawCount,
2966                                    uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
2967    {
2968      return ::vkCmdDrawIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
2969    }
2970
2971    void vkCmdDrawIndexedIndirectCountAMD( VkCommandBuffer commandBuffer,
2972                                           VkBuffer        buffer,
2973                                           VkDeviceSize    offset,
2974                                           VkBuffer        countBuffer,
2975                                           VkDeviceSize    countBufferOffset,
2976                                           uint32_t        maxDrawCount,
2977                                           uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
2978    {
2979      return ::vkCmdDrawIndexedIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
2980    }
2981
2982    //=== VK_AMD_shader_info ===
2983
2984    VkResult vkGetShaderInfoAMD( VkDevice              device,
2985                                 VkPipeline            pipeline,
2986                                 VkShaderStageFlagBits shaderStage,
2987                                 VkShaderInfoTypeAMD   infoType,
2988                                 size_t *              pInfoSize,
2989                                 void *                pInfo ) const VULKAN_HPP_NOEXCEPT
2990    {
2991      return ::vkGetShaderInfoAMD( device, pipeline, shaderStage, infoType, pInfoSize, pInfo );
2992    }
2993
2994    //=== VK_KHR_dynamic_rendering ===
2995
2996    void vkCmdBeginRenderingKHR( VkCommandBuffer commandBuffer, const VkRenderingInfo * pRenderingInfo ) const VULKAN_HPP_NOEXCEPT
2997    {
2998      return ::vkCmdBeginRenderingKHR( commandBuffer, pRenderingInfo );
2999    }
3000
3001    void vkCmdEndRenderingKHR( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
3002    {
3003      return ::vkCmdEndRenderingKHR( commandBuffer );
3004    }
3005
3006#  if defined( VK_USE_PLATFORM_GGP )
3007    //=== VK_GGP_stream_descriptor_surface ===
3008
3009    VkResult vkCreateStreamDescriptorSurfaceGGP( VkInstance                                     instance,
3010                                                 const VkStreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,
3011                                                 const VkAllocationCallbacks *                  pAllocator,
3012                                                 VkSurfaceKHR *                                 pSurface ) const VULKAN_HPP_NOEXCEPT
3013    {
3014      return ::vkCreateStreamDescriptorSurfaceGGP( instance, pCreateInfo, pAllocator, pSurface );
3015    }
3016#  endif /*VK_USE_PLATFORM_GGP*/
3017
3018    //=== VK_NV_external_memory_capabilities ===
3019
3020    VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV( VkPhysicalDevice                    physicalDevice,
3021                                                                 VkFormat                            format,
3022                                                                 VkImageType                         type,
3023                                                                 VkImageTiling                       tiling,
3024                                                                 VkImageUsageFlags                   usage,
3025                                                                 VkImageCreateFlags                  flags,
3026                                                                 VkExternalMemoryHandleTypeFlagsNV   externalHandleType,
3027                                                                 VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
3028    {
3029      return ::vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
3030        physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties );
3031    }
3032
3033#  if defined( VK_USE_PLATFORM_WIN32_KHR )
3034    //=== VK_NV_external_memory_win32 ===
3035
3036    VkResult vkGetMemoryWin32HandleNV( VkDevice                          device,
3037                                       VkDeviceMemory                    memory,
3038                                       VkExternalMemoryHandleTypeFlagsNV handleType,
3039                                       HANDLE *                          pHandle ) const VULKAN_HPP_NOEXCEPT
3040    {
3041      return ::vkGetMemoryWin32HandleNV( device, memory, handleType, pHandle );
3042    }
3043#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
3044
3045    //=== VK_KHR_get_physical_device_properties2 ===
3046
3047    void vkGetPhysicalDeviceFeatures2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2 * pFeatures ) const VULKAN_HPP_NOEXCEPT
3048    {
3049      return ::vkGetPhysicalDeviceFeatures2KHR( physicalDevice, pFeatures );
3050    }
3051
3052    void vkGetPhysicalDeviceProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2 * pProperties ) const VULKAN_HPP_NOEXCEPT
3053    {
3054      return ::vkGetPhysicalDeviceProperties2KHR( physicalDevice, pProperties );
3055    }
3056
3057    void vkGetPhysicalDeviceFormatProperties2KHR( VkPhysicalDevice      physicalDevice,
3058                                                  VkFormat              format,
3059                                                  VkFormatProperties2 * pFormatProperties ) const VULKAN_HPP_NOEXCEPT
3060    {
3061      return ::vkGetPhysicalDeviceFormatProperties2KHR( physicalDevice, format, pFormatProperties );
3062    }
3063
3064    VkResult vkGetPhysicalDeviceImageFormatProperties2KHR( VkPhysicalDevice                         physicalDevice,
3065                                                           const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,
3066                                                           VkImageFormatProperties2 *               pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
3067    {
3068      return ::vkGetPhysicalDeviceImageFormatProperties2KHR( physicalDevice, pImageFormatInfo, pImageFormatProperties );
3069    }
3070
3071    void vkGetPhysicalDeviceQueueFamilyProperties2KHR( VkPhysicalDevice           physicalDevice,
3072                                                       uint32_t *                 pQueueFamilyPropertyCount,
3073                                                       VkQueueFamilyProperties2 * pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
3074    {
3075      return ::vkGetPhysicalDeviceQueueFamilyProperties2KHR( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
3076    }
3077
3078    void vkGetPhysicalDeviceMemoryProperties2KHR( VkPhysicalDevice                    physicalDevice,
3079                                                  VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
3080    {
3081      return ::vkGetPhysicalDeviceMemoryProperties2KHR( physicalDevice, pMemoryProperties );
3082    }
3083
3084    void vkGetPhysicalDeviceSparseImageFormatProperties2KHR( VkPhysicalDevice                               physicalDevice,
3085                                                             const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,
3086                                                             uint32_t *                                     pPropertyCount,
3087                                                             VkSparseImageFormatProperties2 *               pProperties ) const VULKAN_HPP_NOEXCEPT
3088    {
3089      return ::vkGetPhysicalDeviceSparseImageFormatProperties2KHR( physicalDevice, pFormatInfo, pPropertyCount, pProperties );
3090    }
3091
3092    //=== VK_KHR_device_group ===
3093
3094    void vkGetDeviceGroupPeerMemoryFeaturesKHR( VkDevice                   device,
3095                                                uint32_t                   heapIndex,
3096                                                uint32_t                   localDeviceIndex,
3097                                                uint32_t                   remoteDeviceIndex,
3098                                                VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT
3099    {
3100      return ::vkGetDeviceGroupPeerMemoryFeaturesKHR( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures );
3101    }
3102
3103    void vkCmdSetDeviceMaskKHR( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT
3104    {
3105      return ::vkCmdSetDeviceMaskKHR( commandBuffer, deviceMask );
3106    }
3107
3108    void vkCmdDispatchBaseKHR( VkCommandBuffer commandBuffer,
3109                               uint32_t        baseGroupX,
3110                               uint32_t        baseGroupY,
3111                               uint32_t        baseGroupZ,
3112                               uint32_t        groupCountX,
3113                               uint32_t        groupCountY,
3114                               uint32_t        groupCountZ ) const VULKAN_HPP_NOEXCEPT
3115    {
3116      return ::vkCmdDispatchBaseKHR( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
3117    }
3118
3119#  if defined( VK_USE_PLATFORM_VI_NN )
3120    //=== VK_NN_vi_surface ===
3121
3122    VkResult vkCreateViSurfaceNN( VkInstance                      instance,
3123                                  const VkViSurfaceCreateInfoNN * pCreateInfo,
3124                                  const VkAllocationCallbacks *   pAllocator,
3125                                  VkSurfaceKHR *                  pSurface ) const VULKAN_HPP_NOEXCEPT
3126    {
3127      return ::vkCreateViSurfaceNN( instance, pCreateInfo, pAllocator, pSurface );
3128    }
3129#  endif /*VK_USE_PLATFORM_VI_NN*/
3130
3131    //=== VK_KHR_maintenance1 ===
3132
3133    void vkTrimCommandPoolKHR( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT
3134    {
3135      return ::vkTrimCommandPoolKHR( device, commandPool, flags );
3136    }
3137
3138    //=== VK_KHR_device_group_creation ===
3139
3140    VkResult vkEnumeratePhysicalDeviceGroupsKHR( VkInstance                        instance,
3141                                                 uint32_t *                        pPhysicalDeviceGroupCount,
3142                                                 VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT
3143    {
3144      return ::vkEnumeratePhysicalDeviceGroupsKHR( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties );
3145    }
3146
3147    //=== VK_KHR_external_memory_capabilities ===
3148
3149    void vkGetPhysicalDeviceExternalBufferPropertiesKHR( VkPhysicalDevice                           physicalDevice,
3150                                                         const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,
3151                                                         VkExternalBufferProperties *               pExternalBufferProperties ) const VULKAN_HPP_NOEXCEPT
3152    {
3153      return ::vkGetPhysicalDeviceExternalBufferPropertiesKHR( physicalDevice, pExternalBufferInfo, pExternalBufferProperties );
3154    }
3155
3156#  if defined( VK_USE_PLATFORM_WIN32_KHR )
3157    //=== VK_KHR_external_memory_win32 ===
3158
3159    VkResult vkGetMemoryWin32HandleKHR( VkDevice device, const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo, HANDLE * pHandle ) const VULKAN_HPP_NOEXCEPT
3160    {
3161      return ::vkGetMemoryWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
3162    }
3163
3164    VkResult vkGetMemoryWin32HandlePropertiesKHR( VkDevice                           device,
3165                                                  VkExternalMemoryHandleTypeFlagBits handleType,
3166                                                  HANDLE                             handle,
3167                                                  VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties ) const VULKAN_HPP_NOEXCEPT
3168    {
3169      return ::vkGetMemoryWin32HandlePropertiesKHR( device, handleType, handle, pMemoryWin32HandleProperties );
3170    }
3171#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
3172
3173    //=== VK_KHR_external_memory_fd ===
3174
3175    VkResult vkGetMemoryFdKHR( VkDevice device, const VkMemoryGetFdInfoKHR * pGetFdInfo, int * pFd ) const VULKAN_HPP_NOEXCEPT
3176    {
3177      return ::vkGetMemoryFdKHR( device, pGetFdInfo, pFd );
3178    }
3179
3180    VkResult vkGetMemoryFdPropertiesKHR( VkDevice                           device,
3181                                         VkExternalMemoryHandleTypeFlagBits handleType,
3182                                         int                                fd,
3183                                         VkMemoryFdPropertiesKHR *          pMemoryFdProperties ) const VULKAN_HPP_NOEXCEPT
3184    {
3185      return ::vkGetMemoryFdPropertiesKHR( device, handleType, fd, pMemoryFdProperties );
3186    }
3187
3188    //=== VK_KHR_external_semaphore_capabilities ===
3189
3190    void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( VkPhysicalDevice                              physicalDevice,
3191                                                            const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,
3192                                                            VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT
3193    {
3194      return ::vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties );
3195    }
3196
3197#  if defined( VK_USE_PLATFORM_WIN32_KHR )
3198    //=== VK_KHR_external_semaphore_win32 ===
3199
3200    VkResult vkImportSemaphoreWin32HandleKHR( VkDevice                                    device,
3201                                              const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT
3202    {
3203      return ::vkImportSemaphoreWin32HandleKHR( device, pImportSemaphoreWin32HandleInfo );
3204    }
3205
3206    VkResult
3207      vkGetSemaphoreWin32HandleKHR( VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo, HANDLE * pHandle ) const VULKAN_HPP_NOEXCEPT
3208    {
3209      return ::vkGetSemaphoreWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
3210    }
3211#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
3212
3213    //=== VK_KHR_external_semaphore_fd ===
3214
3215    VkResult vkImportSemaphoreFdKHR( VkDevice device, const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) const VULKAN_HPP_NOEXCEPT
3216    {
3217      return ::vkImportSemaphoreFdKHR( device, pImportSemaphoreFdInfo );
3218    }
3219
3220    VkResult vkGetSemaphoreFdKHR( VkDevice device, const VkSemaphoreGetFdInfoKHR * pGetFdInfo, int * pFd ) const VULKAN_HPP_NOEXCEPT
3221    {
3222      return ::vkGetSemaphoreFdKHR( device, pGetFdInfo, pFd );
3223    }
3224
3225    //=== VK_KHR_push_descriptor ===
3226
3227    void vkCmdPushDescriptorSetKHR( VkCommandBuffer              commandBuffer,
3228                                    VkPipelineBindPoint          pipelineBindPoint,
3229                                    VkPipelineLayout             layout,
3230                                    uint32_t                     set,
3231                                    uint32_t                     descriptorWriteCount,
3232                                    const VkWriteDescriptorSet * pDescriptorWrites ) const VULKAN_HPP_NOEXCEPT
3233    {
3234      return ::vkCmdPushDescriptorSetKHR( commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites );
3235    }
3236
3237    void vkCmdPushDescriptorSetWithTemplateKHR( VkCommandBuffer            commandBuffer,
3238                                                VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3239                                                VkPipelineLayout           layout,
3240                                                uint32_t                   set,
3241                                                const void *               pData ) const VULKAN_HPP_NOEXCEPT
3242    {
3243      return ::vkCmdPushDescriptorSetWithTemplateKHR( commandBuffer, descriptorUpdateTemplate, layout, set, pData );
3244    }
3245
3246    //=== VK_EXT_conditional_rendering ===
3247
3248    void vkCmdBeginConditionalRenderingEXT( VkCommandBuffer                            commandBuffer,
3249                                            const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) const VULKAN_HPP_NOEXCEPT
3250    {
3251      return ::vkCmdBeginConditionalRenderingEXT( commandBuffer, pConditionalRenderingBegin );
3252    }
3253
3254    void vkCmdEndConditionalRenderingEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
3255    {
3256      return ::vkCmdEndConditionalRenderingEXT( commandBuffer );
3257    }
3258
3259    //=== VK_KHR_descriptor_update_template ===
3260
3261    VkResult vkCreateDescriptorUpdateTemplateKHR( VkDevice                                     device,
3262                                                  const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,
3263                                                  const VkAllocationCallbacks *                pAllocator,
3264                                                  VkDescriptorUpdateTemplate *                 pDescriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT
3265    {
3266      return ::vkCreateDescriptorUpdateTemplateKHR( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate );
3267    }
3268
3269    void vkDestroyDescriptorUpdateTemplateKHR( VkDevice                      device,
3270                                               VkDescriptorUpdateTemplate    descriptorUpdateTemplate,
3271                                               const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
3272    {
3273      return ::vkDestroyDescriptorUpdateTemplateKHR( device, descriptorUpdateTemplate, pAllocator );
3274    }
3275
3276    void vkUpdateDescriptorSetWithTemplateKHR( VkDevice                   device,
3277                                               VkDescriptorSet            descriptorSet,
3278                                               VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3279                                               const void *               pData ) const VULKAN_HPP_NOEXCEPT
3280    {
3281      return ::vkUpdateDescriptorSetWithTemplateKHR( device, descriptorSet, descriptorUpdateTemplate, pData );
3282    }
3283
3284    //=== VK_NV_clip_space_w_scaling ===
3285
3286    void vkCmdSetViewportWScalingNV( VkCommandBuffer              commandBuffer,
3287                                     uint32_t                     firstViewport,
3288                                     uint32_t                     viewportCount,
3289                                     const VkViewportWScalingNV * pViewportWScalings ) const VULKAN_HPP_NOEXCEPT
3290    {
3291      return ::vkCmdSetViewportWScalingNV( commandBuffer, firstViewport, viewportCount, pViewportWScalings );
3292    }
3293
3294    //=== VK_EXT_direct_mode_display ===
3295
3296    VkResult vkReleaseDisplayEXT( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
3297    {
3298      return ::vkReleaseDisplayEXT( physicalDevice, display );
3299    }
3300
3301#  if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
3302    //=== VK_EXT_acquire_xlib_display ===
3303
3304    VkResult vkAcquireXlibDisplayEXT( VkPhysicalDevice physicalDevice, Display * dpy, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
3305    {
3306      return ::vkAcquireXlibDisplayEXT( physicalDevice, dpy, display );
3307    }
3308
3309    VkResult vkGetRandROutputDisplayEXT( VkPhysicalDevice physicalDevice, Display * dpy, RROutput rrOutput, VkDisplayKHR * pDisplay ) const VULKAN_HPP_NOEXCEPT
3310    {
3311      return ::vkGetRandROutputDisplayEXT( physicalDevice, dpy, rrOutput, pDisplay );
3312    }
3313#  endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
3314
3315    //=== VK_EXT_display_surface_counter ===
3316
3317    VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT( VkPhysicalDevice            physicalDevice,
3318                                                         VkSurfaceKHR                surface,
3319                                                         VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
3320    {
3321      return ::vkGetPhysicalDeviceSurfaceCapabilities2EXT( physicalDevice, surface, pSurfaceCapabilities );
3322    }
3323
3324    //=== VK_EXT_display_control ===
3325
3326    VkResult vkDisplayPowerControlEXT( VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) const VULKAN_HPP_NOEXCEPT
3327    {
3328      return ::vkDisplayPowerControlEXT( device, display, pDisplayPowerInfo );
3329    }
3330
3331    VkResult vkRegisterDeviceEventEXT( VkDevice                      device,
3332                                       const VkDeviceEventInfoEXT *  pDeviceEventInfo,
3333                                       const VkAllocationCallbacks * pAllocator,
3334                                       VkFence *                     pFence ) const VULKAN_HPP_NOEXCEPT
3335    {
3336      return ::vkRegisterDeviceEventEXT( device, pDeviceEventInfo, pAllocator, pFence );
3337    }
3338
3339    VkResult vkRegisterDisplayEventEXT( VkDevice                      device,
3340                                        VkDisplayKHR                  display,
3341                                        const VkDisplayEventInfoEXT * pDisplayEventInfo,
3342                                        const VkAllocationCallbacks * pAllocator,
3343                                        VkFence *                     pFence ) const VULKAN_HPP_NOEXCEPT
3344    {
3345      return ::vkRegisterDisplayEventEXT( device, display, pDisplayEventInfo, pAllocator, pFence );
3346    }
3347
3348    VkResult vkGetSwapchainCounterEXT( VkDevice                    device,
3349                                       VkSwapchainKHR              swapchain,
3350                                       VkSurfaceCounterFlagBitsEXT counter,
3351                                       uint64_t *                  pCounterValue ) const VULKAN_HPP_NOEXCEPT
3352    {
3353      return ::vkGetSwapchainCounterEXT( device, swapchain, counter, pCounterValue );
3354    }
3355
3356    //=== VK_GOOGLE_display_timing ===
3357
3358    VkResult vkGetRefreshCycleDurationGOOGLE( VkDevice                       device,
3359                                              VkSwapchainKHR                 swapchain,
3360                                              VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) const VULKAN_HPP_NOEXCEPT
3361    {
3362      return ::vkGetRefreshCycleDurationGOOGLE( device, swapchain, pDisplayTimingProperties );
3363    }
3364
3365    VkResult vkGetPastPresentationTimingGOOGLE( VkDevice                         device,
3366                                                VkSwapchainKHR                   swapchain,
3367                                                uint32_t *                       pPresentationTimingCount,
3368                                                VkPastPresentationTimingGOOGLE * pPresentationTimings ) const VULKAN_HPP_NOEXCEPT
3369    {
3370      return ::vkGetPastPresentationTimingGOOGLE( device, swapchain, pPresentationTimingCount, pPresentationTimings );
3371    }
3372
3373    //=== VK_EXT_discard_rectangles ===
3374
3375    void vkCmdSetDiscardRectangleEXT( VkCommandBuffer  commandBuffer,
3376                                      uint32_t         firstDiscardRectangle,
3377                                      uint32_t         discardRectangleCount,
3378                                      const VkRect2D * pDiscardRectangles ) const VULKAN_HPP_NOEXCEPT
3379    {
3380      return ::vkCmdSetDiscardRectangleEXT( commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles );
3381    }
3382
3383    void vkCmdSetDiscardRectangleEnableEXT( VkCommandBuffer commandBuffer, VkBool32 discardRectangleEnable ) const VULKAN_HPP_NOEXCEPT
3384    {
3385      return ::vkCmdSetDiscardRectangleEnableEXT( commandBuffer, discardRectangleEnable );
3386    }
3387
3388    void vkCmdSetDiscardRectangleModeEXT( VkCommandBuffer commandBuffer, VkDiscardRectangleModeEXT discardRectangleMode ) const VULKAN_HPP_NOEXCEPT
3389    {
3390      return ::vkCmdSetDiscardRectangleModeEXT( commandBuffer, discardRectangleMode );
3391    }
3392
3393    //=== VK_EXT_hdr_metadata ===
3394
3395    void vkSetHdrMetadataEXT( VkDevice                 device,
3396                              uint32_t                 swapchainCount,
3397                              const VkSwapchainKHR *   pSwapchains,
3398                              const VkHdrMetadataEXT * pMetadata ) const VULKAN_HPP_NOEXCEPT
3399    {
3400      return ::vkSetHdrMetadataEXT( device, swapchainCount, pSwapchains, pMetadata );
3401    }
3402
3403    //=== VK_KHR_create_renderpass2 ===
3404
3405    VkResult vkCreateRenderPass2KHR( VkDevice                        device,
3406                                     const VkRenderPassCreateInfo2 * pCreateInfo,
3407                                     const VkAllocationCallbacks *   pAllocator,
3408                                     VkRenderPass *                  pRenderPass ) const VULKAN_HPP_NOEXCEPT
3409    {
3410      return ::vkCreateRenderPass2KHR( device, pCreateInfo, pAllocator, pRenderPass );
3411    }
3412
3413    void vkCmdBeginRenderPass2KHR( VkCommandBuffer               commandBuffer,
3414                                   const VkRenderPassBeginInfo * pRenderPassBegin,
3415                                   const VkSubpassBeginInfo *    pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT
3416    {
3417      return ::vkCmdBeginRenderPass2KHR( commandBuffer, pRenderPassBegin, pSubpassBeginInfo );
3418    }
3419
3420    void vkCmdNextSubpass2KHR( VkCommandBuffer            commandBuffer,
3421                               const VkSubpassBeginInfo * pSubpassBeginInfo,
3422                               const VkSubpassEndInfo *   pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
3423    {
3424      return ::vkCmdNextSubpass2KHR( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo );
3425    }
3426
3427    void vkCmdEndRenderPass2KHR( VkCommandBuffer commandBuffer, const VkSubpassEndInfo * pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
3428    {
3429      return ::vkCmdEndRenderPass2KHR( commandBuffer, pSubpassEndInfo );
3430    }
3431
3432    //=== VK_KHR_shared_presentable_image ===
3433
3434    VkResult vkGetSwapchainStatusKHR( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
3435    {
3436      return ::vkGetSwapchainStatusKHR( device, swapchain );
3437    }
3438
3439    //=== VK_KHR_external_fence_capabilities ===
3440
3441    void vkGetPhysicalDeviceExternalFencePropertiesKHR( VkPhysicalDevice                          physicalDevice,
3442                                                        const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,
3443                                                        VkExternalFenceProperties *               pExternalFenceProperties ) const VULKAN_HPP_NOEXCEPT
3444    {
3445      return ::vkGetPhysicalDeviceExternalFencePropertiesKHR( physicalDevice, pExternalFenceInfo, pExternalFenceProperties );
3446    }
3447
3448#  if defined( VK_USE_PLATFORM_WIN32_KHR )
3449    //=== VK_KHR_external_fence_win32 ===
3450
3451    VkResult vkImportFenceWin32HandleKHR( VkDevice device, const VkImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT
3452    {
3453      return ::vkImportFenceWin32HandleKHR( device, pImportFenceWin32HandleInfo );
3454    }
3455
3456    VkResult vkGetFenceWin32HandleKHR( VkDevice device, const VkFenceGetWin32HandleInfoKHR * pGetWin32HandleInfo, HANDLE * pHandle ) const VULKAN_HPP_NOEXCEPT
3457    {
3458      return ::vkGetFenceWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
3459    }
3460#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
3461
3462    //=== VK_KHR_external_fence_fd ===
3463
3464    VkResult vkImportFenceFdKHR( VkDevice device, const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) const VULKAN_HPP_NOEXCEPT
3465    {
3466      return ::vkImportFenceFdKHR( device, pImportFenceFdInfo );
3467    }
3468
3469    VkResult vkGetFenceFdKHR( VkDevice device, const VkFenceGetFdInfoKHR * pGetFdInfo, int * pFd ) const VULKAN_HPP_NOEXCEPT
3470    {
3471      return ::vkGetFenceFdKHR( device, pGetFdInfo, pFd );
3472    }
3473
3474    //=== VK_KHR_performance_query ===
3475
3476    VkResult
3477      vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( VkPhysicalDevice                     physicalDevice,
3478                                                                       uint32_t                             queueFamilyIndex,
3479                                                                       uint32_t *                           pCounterCount,
3480                                                                       VkPerformanceCounterKHR *            pCounters,
3481                                                                       VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) const VULKAN_HPP_NOEXCEPT
3482    {
3483      return ::vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
3484        physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions );
3485    }
3486
3487    void vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( VkPhysicalDevice                            physicalDevice,
3488                                                                  const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,
3489                                                                  uint32_t *                                  pNumPasses ) const VULKAN_HPP_NOEXCEPT
3490    {
3491      return ::vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( physicalDevice, pPerformanceQueryCreateInfo, pNumPasses );
3492    }
3493
3494    VkResult vkAcquireProfilingLockKHR( VkDevice device, const VkAcquireProfilingLockInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
3495    {
3496      return ::vkAcquireProfilingLockKHR( device, pInfo );
3497    }
3498
3499    void vkReleaseProfilingLockKHR( VkDevice device ) const VULKAN_HPP_NOEXCEPT
3500    {
3501      return ::vkReleaseProfilingLockKHR( device );
3502    }
3503
3504    //=== VK_KHR_get_surface_capabilities2 ===
3505
3506    VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR( VkPhysicalDevice                        physicalDevice,
3507                                                         const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,
3508                                                         VkSurfaceCapabilities2KHR *             pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
3509    {
3510      return ::vkGetPhysicalDeviceSurfaceCapabilities2KHR( physicalDevice, pSurfaceInfo, pSurfaceCapabilities );
3511    }
3512
3513    VkResult vkGetPhysicalDeviceSurfaceFormats2KHR( VkPhysicalDevice                        physicalDevice,
3514                                                    const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,
3515                                                    uint32_t *                              pSurfaceFormatCount,
3516                                                    VkSurfaceFormat2KHR *                   pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT
3517    {
3518      return ::vkGetPhysicalDeviceSurfaceFormats2KHR( physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats );
3519    }
3520
3521    //=== VK_KHR_get_display_properties2 ===
3522
3523    VkResult vkGetPhysicalDeviceDisplayProperties2KHR( VkPhysicalDevice          physicalDevice,
3524                                                       uint32_t *                pPropertyCount,
3525                                                       VkDisplayProperties2KHR * pProperties ) const VULKAN_HPP_NOEXCEPT
3526    {
3527      return ::vkGetPhysicalDeviceDisplayProperties2KHR( physicalDevice, pPropertyCount, pProperties );
3528    }
3529
3530    VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR( VkPhysicalDevice               physicalDevice,
3531                                                            uint32_t *                     pPropertyCount,
3532                                                            VkDisplayPlaneProperties2KHR * pProperties ) const VULKAN_HPP_NOEXCEPT
3533    {
3534      return ::vkGetPhysicalDeviceDisplayPlaneProperties2KHR( physicalDevice, pPropertyCount, pProperties );
3535    }
3536
3537    VkResult vkGetDisplayModeProperties2KHR( VkPhysicalDevice              physicalDevice,
3538                                             VkDisplayKHR                  display,
3539                                             uint32_t *                    pPropertyCount,
3540                                             VkDisplayModeProperties2KHR * pProperties ) const VULKAN_HPP_NOEXCEPT
3541    {
3542      return ::vkGetDisplayModeProperties2KHR( physicalDevice, display, pPropertyCount, pProperties );
3543    }
3544
3545    VkResult vkGetDisplayPlaneCapabilities2KHR( VkPhysicalDevice                 physicalDevice,
3546                                                const VkDisplayPlaneInfo2KHR *   pDisplayPlaneInfo,
3547                                                VkDisplayPlaneCapabilities2KHR * pCapabilities ) const VULKAN_HPP_NOEXCEPT
3548    {
3549      return ::vkGetDisplayPlaneCapabilities2KHR( physicalDevice, pDisplayPlaneInfo, pCapabilities );
3550    }
3551
3552#  if defined( VK_USE_PLATFORM_IOS_MVK )
3553    //=== VK_MVK_ios_surface ===
3554
3555    VkResult vkCreateIOSSurfaceMVK( VkInstance                        instance,
3556                                    const VkIOSSurfaceCreateInfoMVK * pCreateInfo,
3557                                    const VkAllocationCallbacks *     pAllocator,
3558                                    VkSurfaceKHR *                    pSurface ) const VULKAN_HPP_NOEXCEPT
3559    {
3560      return ::vkCreateIOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface );
3561    }
3562#  endif /*VK_USE_PLATFORM_IOS_MVK*/
3563
3564#  if defined( VK_USE_PLATFORM_MACOS_MVK )
3565    //=== VK_MVK_macos_surface ===
3566
3567    VkResult vkCreateMacOSSurfaceMVK( VkInstance                          instance,
3568                                      const VkMacOSSurfaceCreateInfoMVK * pCreateInfo,
3569                                      const VkAllocationCallbacks *       pAllocator,
3570                                      VkSurfaceKHR *                      pSurface ) const VULKAN_HPP_NOEXCEPT
3571    {
3572      return ::vkCreateMacOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface );
3573    }
3574#  endif /*VK_USE_PLATFORM_MACOS_MVK*/
3575
3576    //=== VK_EXT_debug_utils ===
3577
3578    VkResult vkSetDebugUtilsObjectNameEXT( VkDevice device, const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) const VULKAN_HPP_NOEXCEPT
3579    {
3580      return ::vkSetDebugUtilsObjectNameEXT( device, pNameInfo );
3581    }
3582
3583    VkResult vkSetDebugUtilsObjectTagEXT( VkDevice device, const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) const VULKAN_HPP_NOEXCEPT
3584    {
3585      return ::vkSetDebugUtilsObjectTagEXT( device, pTagInfo );
3586    }
3587
3588    void vkQueueBeginDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT
3589    {
3590      return ::vkQueueBeginDebugUtilsLabelEXT( queue, pLabelInfo );
3591    }
3592
3593    void vkQueueEndDebugUtilsLabelEXT( VkQueue queue ) const VULKAN_HPP_NOEXCEPT
3594    {
3595      return ::vkQueueEndDebugUtilsLabelEXT( queue );
3596    }
3597
3598    void vkQueueInsertDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT
3599    {
3600      return ::vkQueueInsertDebugUtilsLabelEXT( queue, pLabelInfo );
3601    }
3602
3603    void vkCmdBeginDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT
3604    {
3605      return ::vkCmdBeginDebugUtilsLabelEXT( commandBuffer, pLabelInfo );
3606    }
3607
3608    void vkCmdEndDebugUtilsLabelEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
3609    {
3610      return ::vkCmdEndDebugUtilsLabelEXT( commandBuffer );
3611    }
3612
3613    void vkCmdInsertDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT
3614    {
3615      return ::vkCmdInsertDebugUtilsLabelEXT( commandBuffer, pLabelInfo );
3616    }
3617
3618    VkResult vkCreateDebugUtilsMessengerEXT( VkInstance                                 instance,
3619                                             const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo,
3620                                             const VkAllocationCallbacks *              pAllocator,
3621                                             VkDebugUtilsMessengerEXT *                 pMessenger ) const VULKAN_HPP_NOEXCEPT
3622    {
3623      return ::vkCreateDebugUtilsMessengerEXT( instance, pCreateInfo, pAllocator, pMessenger );
3624    }
3625
3626    void vkDestroyDebugUtilsMessengerEXT( VkInstance                    instance,
3627                                          VkDebugUtilsMessengerEXT      messenger,
3628                                          const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
3629    {
3630      return ::vkDestroyDebugUtilsMessengerEXT( instance, messenger, pAllocator );
3631    }
3632
3633    void vkSubmitDebugUtilsMessageEXT( VkInstance                                   instance,
3634                                       VkDebugUtilsMessageSeverityFlagBitsEXT       messageSeverity,
3635                                       VkDebugUtilsMessageTypeFlagsEXT              messageTypes,
3636                                       const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) const VULKAN_HPP_NOEXCEPT
3637    {
3638      return ::vkSubmitDebugUtilsMessageEXT( instance, messageSeverity, messageTypes, pCallbackData );
3639    }
3640
3641#  if defined( VK_USE_PLATFORM_ANDROID_KHR )
3642    //=== VK_ANDROID_external_memory_android_hardware_buffer ===
3643
3644    VkResult vkGetAndroidHardwareBufferPropertiesANDROID( VkDevice                                   device,
3645                                                          const struct AHardwareBuffer *             buffer,
3646                                                          VkAndroidHardwareBufferPropertiesANDROID * pProperties ) const VULKAN_HPP_NOEXCEPT
3647    {
3648      return ::vkGetAndroidHardwareBufferPropertiesANDROID( device, buffer, pProperties );
3649    }
3650
3651    VkResult vkGetMemoryAndroidHardwareBufferANDROID( VkDevice                                            device,
3652                                                      const VkMemoryGetAndroidHardwareBufferInfoANDROID * pInfo,
3653                                                      struct AHardwareBuffer **                           pBuffer ) const VULKAN_HPP_NOEXCEPT
3654    {
3655      return ::vkGetMemoryAndroidHardwareBufferANDROID( device, pInfo, pBuffer );
3656    }
3657#  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
3658
3659#  if defined( VK_ENABLE_BETA_EXTENSIONS )
3660    //=== VK_AMDX_shader_enqueue ===
3661
3662    VkResult vkCreateExecutionGraphPipelinesAMDX( VkDevice                                       device,
3663                                                  VkPipelineCache                                pipelineCache,
3664                                                  uint32_t                                       createInfoCount,
3665                                                  const VkExecutionGraphPipelineCreateInfoAMDX * pCreateInfos,
3666                                                  const VkAllocationCallbacks *                  pAllocator,
3667                                                  VkPipeline *                                   pPipelines ) const VULKAN_HPP_NOEXCEPT
3668    {
3669      return ::vkCreateExecutionGraphPipelinesAMDX( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
3670    }
3671
3672    VkResult vkGetExecutionGraphPipelineScratchSizeAMDX( VkDevice                                  device,
3673                                                         VkPipeline                                executionGraph,
3674                                                         VkExecutionGraphPipelineScratchSizeAMDX * pSizeInfo ) const VULKAN_HPP_NOEXCEPT
3675    {
3676      return ::vkGetExecutionGraphPipelineScratchSizeAMDX( device, executionGraph, pSizeInfo );
3677    }
3678
3679    VkResult vkGetExecutionGraphPipelineNodeIndexAMDX( VkDevice                                        device,
3680                                                       VkPipeline                                      executionGraph,
3681                                                       const VkPipelineShaderStageNodeCreateInfoAMDX * pNodeInfo,
3682                                                       uint32_t *                                      pNodeIndex ) const VULKAN_HPP_NOEXCEPT
3683    {
3684      return ::vkGetExecutionGraphPipelineNodeIndexAMDX( device, executionGraph, pNodeInfo, pNodeIndex );
3685    }
3686
3687    void vkCmdInitializeGraphScratchMemoryAMDX( VkCommandBuffer commandBuffer, VkDeviceAddress scratch ) const VULKAN_HPP_NOEXCEPT
3688    {
3689      return ::vkCmdInitializeGraphScratchMemoryAMDX( commandBuffer, scratch );
3690    }
3691
3692    void vkCmdDispatchGraphAMDX( VkCommandBuffer                      commandBuffer,
3693                                 VkDeviceAddress                      scratch,
3694                                 const VkDispatchGraphCountInfoAMDX * pCountInfo ) const VULKAN_HPP_NOEXCEPT
3695    {
3696      return ::vkCmdDispatchGraphAMDX( commandBuffer, scratch, pCountInfo );
3697    }
3698
3699    void vkCmdDispatchGraphIndirectAMDX( VkCommandBuffer                      commandBuffer,
3700                                         VkDeviceAddress                      scratch,
3701                                         const VkDispatchGraphCountInfoAMDX * pCountInfo ) const VULKAN_HPP_NOEXCEPT
3702    {
3703      return ::vkCmdDispatchGraphIndirectAMDX( commandBuffer, scratch, pCountInfo );
3704    }
3705
3706    void vkCmdDispatchGraphIndirectCountAMDX( VkCommandBuffer commandBuffer, VkDeviceAddress scratch, VkDeviceAddress countInfo ) const VULKAN_HPP_NOEXCEPT
3707    {
3708      return ::vkCmdDispatchGraphIndirectCountAMDX( commandBuffer, scratch, countInfo );
3709    }
3710#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
3711
3712    //=== VK_EXT_sample_locations ===
3713
3714    void vkCmdSetSampleLocationsEXT( VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) const VULKAN_HPP_NOEXCEPT
3715    {
3716      return ::vkCmdSetSampleLocationsEXT( commandBuffer, pSampleLocationsInfo );
3717    }
3718
3719    void vkGetPhysicalDeviceMultisamplePropertiesEXT( VkPhysicalDevice             physicalDevice,
3720                                                      VkSampleCountFlagBits        samples,
3721                                                      VkMultisamplePropertiesEXT * pMultisampleProperties ) const VULKAN_HPP_NOEXCEPT
3722    {
3723      return ::vkGetPhysicalDeviceMultisamplePropertiesEXT( physicalDevice, samples, pMultisampleProperties );
3724    }
3725
3726    //=== VK_KHR_get_memory_requirements2 ===
3727
3728    void vkGetImageMemoryRequirements2KHR( VkDevice                               device,
3729                                           const VkImageMemoryRequirementsInfo2 * pInfo,
3730                                           VkMemoryRequirements2 *                pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
3731    {
3732      return ::vkGetImageMemoryRequirements2KHR( device, pInfo, pMemoryRequirements );
3733    }
3734
3735    void vkGetBufferMemoryRequirements2KHR( VkDevice                                device,
3736                                            const VkBufferMemoryRequirementsInfo2 * pInfo,
3737                                            VkMemoryRequirements2 *                 pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
3738    {
3739      return ::vkGetBufferMemoryRequirements2KHR( device, pInfo, pMemoryRequirements );
3740    }
3741
3742    void vkGetImageSparseMemoryRequirements2KHR( VkDevice                                     device,
3743                                                 const VkImageSparseMemoryRequirementsInfo2 * pInfo,
3744                                                 uint32_t *                                   pSparseMemoryRequirementCount,
3745                                                 VkSparseImageMemoryRequirements2 *           pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
3746    {
3747      return ::vkGetImageSparseMemoryRequirements2KHR( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
3748    }
3749
3750    //=== VK_KHR_acceleration_structure ===
3751
3752    VkResult vkCreateAccelerationStructureKHR( VkDevice                                     device,
3753                                               const VkAccelerationStructureCreateInfoKHR * pCreateInfo,
3754                                               const VkAllocationCallbacks *                pAllocator,
3755                                               VkAccelerationStructureKHR *                 pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT
3756    {
3757      return ::vkCreateAccelerationStructureKHR( device, pCreateInfo, pAllocator, pAccelerationStructure );
3758    }
3759
3760    void vkDestroyAccelerationStructureKHR( VkDevice                      device,
3761                                            VkAccelerationStructureKHR    accelerationStructure,
3762                                            const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
3763    {
3764      return ::vkDestroyAccelerationStructureKHR( device, accelerationStructure, pAllocator );
3765    }
3766
3767    void vkCmdBuildAccelerationStructuresKHR( VkCommandBuffer                                          commandBuffer,
3768                                              uint32_t                                                 infoCount,
3769                                              const VkAccelerationStructureBuildGeometryInfoKHR *      pInfos,
3770                                              const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos ) const VULKAN_HPP_NOEXCEPT
3771    {
3772      return ::vkCmdBuildAccelerationStructuresKHR( commandBuffer, infoCount, pInfos, ppBuildRangeInfos );
3773    }
3774
3775    void vkCmdBuildAccelerationStructuresIndirectKHR( VkCommandBuffer                                     commandBuffer,
3776                                                      uint32_t                                            infoCount,
3777                                                      const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,
3778                                                      const VkDeviceAddress *                             pIndirectDeviceAddresses,
3779                                                      const uint32_t *                                    pIndirectStrides,
3780                                                      const uint32_t * const *                            ppMaxPrimitiveCounts ) const VULKAN_HPP_NOEXCEPT
3781    {
3782      return ::vkCmdBuildAccelerationStructuresIndirectKHR(
3783        commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts );
3784    }
3785
3786    VkResult vkBuildAccelerationStructuresKHR( VkDevice                                                 device,
3787                                               VkDeferredOperationKHR                                   deferredOperation,
3788                                               uint32_t                                                 infoCount,
3789                                               const VkAccelerationStructureBuildGeometryInfoKHR *      pInfos,
3790                                               const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos ) const VULKAN_HPP_NOEXCEPT
3791    {
3792      return ::vkBuildAccelerationStructuresKHR( device, deferredOperation, infoCount, pInfos, ppBuildRangeInfos );
3793    }
3794
3795    VkResult vkCopyAccelerationStructureKHR( VkDevice                                   device,
3796                                             VkDeferredOperationKHR                     deferredOperation,
3797                                             const VkCopyAccelerationStructureInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
3798    {
3799      return ::vkCopyAccelerationStructureKHR( device, deferredOperation, pInfo );
3800    }
3801
3802    VkResult vkCopyAccelerationStructureToMemoryKHR( VkDevice                                           device,
3803                                                     VkDeferredOperationKHR                             deferredOperation,
3804                                                     const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
3805    {
3806      return ::vkCopyAccelerationStructureToMemoryKHR( device, deferredOperation, pInfo );
3807    }
3808
3809    VkResult vkCopyMemoryToAccelerationStructureKHR( VkDevice                                           device,
3810                                                     VkDeferredOperationKHR                             deferredOperation,
3811                                                     const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
3812    {
3813      return ::vkCopyMemoryToAccelerationStructureKHR( device, deferredOperation, pInfo );
3814    }
3815
3816    VkResult vkWriteAccelerationStructuresPropertiesKHR( VkDevice                           device,
3817                                                         uint32_t                           accelerationStructureCount,
3818                                                         const VkAccelerationStructureKHR * pAccelerationStructures,
3819                                                         VkQueryType                        queryType,
3820                                                         size_t                             dataSize,
3821                                                         void *                             pData,
3822                                                         size_t                             stride ) const VULKAN_HPP_NOEXCEPT
3823    {
3824      return ::vkWriteAccelerationStructuresPropertiesKHR( device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride );
3825    }
3826
3827    void vkCmdCopyAccelerationStructureKHR( VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
3828    {
3829      return ::vkCmdCopyAccelerationStructureKHR( commandBuffer, pInfo );
3830    }
3831
3832    void vkCmdCopyAccelerationStructureToMemoryKHR( VkCommandBuffer                                    commandBuffer,
3833                                                    const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
3834    {
3835      return ::vkCmdCopyAccelerationStructureToMemoryKHR( commandBuffer, pInfo );
3836    }
3837
3838    void vkCmdCopyMemoryToAccelerationStructureKHR( VkCommandBuffer                                    commandBuffer,
3839                                                    const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
3840    {
3841      return ::vkCmdCopyMemoryToAccelerationStructureKHR( commandBuffer, pInfo );
3842    }
3843
3844    VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR( VkDevice                                            device,
3845                                                                const VkAccelerationStructureDeviceAddressInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
3846    {
3847      return ::vkGetAccelerationStructureDeviceAddressKHR( device, pInfo );
3848    }
3849
3850    void vkCmdWriteAccelerationStructuresPropertiesKHR( VkCommandBuffer                    commandBuffer,
3851                                                        uint32_t                           accelerationStructureCount,
3852                                                        const VkAccelerationStructureKHR * pAccelerationStructures,
3853                                                        VkQueryType                        queryType,
3854                                                        VkQueryPool                        queryPool,
3855                                                        uint32_t                           firstQuery ) const VULKAN_HPP_NOEXCEPT
3856    {
3857      return ::vkCmdWriteAccelerationStructuresPropertiesKHR(
3858        commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery );
3859    }
3860
3861    void vkGetDeviceAccelerationStructureCompatibilityKHR( VkDevice                                      device,
3862                                                           const VkAccelerationStructureVersionInfoKHR * pVersionInfo,
3863                                                           VkAccelerationStructureCompatibilityKHR *     pCompatibility ) const VULKAN_HPP_NOEXCEPT
3864    {
3865      return ::vkGetDeviceAccelerationStructureCompatibilityKHR( device, pVersionInfo, pCompatibility );
3866    }
3867
3868    void vkGetAccelerationStructureBuildSizesKHR( VkDevice                                            device,
3869                                                  VkAccelerationStructureBuildTypeKHR                 buildType,
3870                                                  const VkAccelerationStructureBuildGeometryInfoKHR * pBuildInfo,
3871                                                  const uint32_t *                                    pMaxPrimitiveCounts,
3872                                                  VkAccelerationStructureBuildSizesInfoKHR *          pSizeInfo ) const VULKAN_HPP_NOEXCEPT
3873    {
3874      return ::vkGetAccelerationStructureBuildSizesKHR( device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo );
3875    }
3876
3877    //=== VK_KHR_ray_tracing_pipeline ===
3878
3879    void vkCmdTraceRaysKHR( VkCommandBuffer                         commandBuffer,
3880                            const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,
3881                            const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,
3882                            const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,
3883                            const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,
3884                            uint32_t                                width,
3885                            uint32_t                                height,
3886                            uint32_t                                depth ) const VULKAN_HPP_NOEXCEPT
3887    {
3888      return ::vkCmdTraceRaysKHR(
3889        commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth );
3890    }
3891
3892    VkResult vkCreateRayTracingPipelinesKHR( VkDevice                                  device,
3893                                             VkDeferredOperationKHR                    deferredOperation,
3894                                             VkPipelineCache                           pipelineCache,
3895                                             uint32_t                                  createInfoCount,
3896                                             const VkRayTracingPipelineCreateInfoKHR * pCreateInfos,
3897                                             const VkAllocationCallbacks *             pAllocator,
3898                                             VkPipeline *                              pPipelines ) const VULKAN_HPP_NOEXCEPT
3899    {
3900      return ::vkCreateRayTracingPipelinesKHR( device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
3901    }
3902
3903    VkResult vkGetRayTracingShaderGroupHandlesKHR(
3904      VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void * pData ) const VULKAN_HPP_NOEXCEPT
3905    {
3906      return ::vkGetRayTracingShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData );
3907    }
3908
3909    VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
3910      VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void * pData ) const VULKAN_HPP_NOEXCEPT
3911    {
3912      return ::vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData );
3913    }
3914
3915    void vkCmdTraceRaysIndirectKHR( VkCommandBuffer                         commandBuffer,
3916                                    const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,
3917                                    const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,
3918                                    const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,
3919                                    const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,
3920                                    VkDeviceAddress                         indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT
3921    {
3922      return ::vkCmdTraceRaysIndirectKHR(
3923        commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress );
3924    }
3925
3926    VkDeviceSize vkGetRayTracingShaderGroupStackSizeKHR( VkDevice               device,
3927                                                         VkPipeline             pipeline,
3928                                                         uint32_t               group,
3929                                                         VkShaderGroupShaderKHR groupShader ) const VULKAN_HPP_NOEXCEPT
3930    {
3931      return ::vkGetRayTracingShaderGroupStackSizeKHR( device, pipeline, group, groupShader );
3932    }
3933
3934    void vkCmdSetRayTracingPipelineStackSizeKHR( VkCommandBuffer commandBuffer, uint32_t pipelineStackSize ) const VULKAN_HPP_NOEXCEPT
3935    {
3936      return ::vkCmdSetRayTracingPipelineStackSizeKHR( commandBuffer, pipelineStackSize );
3937    }
3938
3939    //=== VK_KHR_sampler_ycbcr_conversion ===
3940
3941    VkResult vkCreateSamplerYcbcrConversionKHR( VkDevice                                   device,
3942                                                const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,
3943                                                const VkAllocationCallbacks *              pAllocator,
3944                                                VkSamplerYcbcrConversion *                 pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT
3945    {
3946      return ::vkCreateSamplerYcbcrConversionKHR( device, pCreateInfo, pAllocator, pYcbcrConversion );
3947    }
3948
3949    void vkDestroySamplerYcbcrConversionKHR( VkDevice                      device,
3950                                             VkSamplerYcbcrConversion      ycbcrConversion,
3951                                             const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
3952    {
3953      return ::vkDestroySamplerYcbcrConversionKHR( device, ycbcrConversion, pAllocator );
3954    }
3955
3956    //=== VK_KHR_bind_memory2 ===
3957
3958    VkResult vkBindBufferMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT
3959    {
3960      return ::vkBindBufferMemory2KHR( device, bindInfoCount, pBindInfos );
3961    }
3962
3963    VkResult vkBindImageMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT
3964    {
3965      return ::vkBindImageMemory2KHR( device, bindInfoCount, pBindInfos );
3966    }
3967
3968    //=== VK_EXT_image_drm_format_modifier ===
3969
3970    VkResult
3971      vkGetImageDrmFormatModifierPropertiesEXT( VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT * pProperties ) const VULKAN_HPP_NOEXCEPT
3972    {
3973      return ::vkGetImageDrmFormatModifierPropertiesEXT( device, image, pProperties );
3974    }
3975
3976    //=== VK_EXT_validation_cache ===
3977
3978    VkResult vkCreateValidationCacheEXT( VkDevice                               device,
3979                                         const VkValidationCacheCreateInfoEXT * pCreateInfo,
3980                                         const VkAllocationCallbacks *          pAllocator,
3981                                         VkValidationCacheEXT *                 pValidationCache ) const VULKAN_HPP_NOEXCEPT
3982    {
3983      return ::vkCreateValidationCacheEXT( device, pCreateInfo, pAllocator, pValidationCache );
3984    }
3985
3986    void
3987      vkDestroyValidationCacheEXT( VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
3988    {
3989      return ::vkDestroyValidationCacheEXT( device, validationCache, pAllocator );
3990    }
3991
3992    VkResult vkMergeValidationCachesEXT( VkDevice                     device,
3993                                         VkValidationCacheEXT         dstCache,
3994                                         uint32_t                     srcCacheCount,
3995                                         const VkValidationCacheEXT * pSrcCaches ) const VULKAN_HPP_NOEXCEPT
3996    {
3997      return ::vkMergeValidationCachesEXT( device, dstCache, srcCacheCount, pSrcCaches );
3998    }
3999
4000    VkResult vkGetValidationCacheDataEXT( VkDevice device, VkValidationCacheEXT validationCache, size_t * pDataSize, void * pData ) const VULKAN_HPP_NOEXCEPT
4001    {
4002      return ::vkGetValidationCacheDataEXT( device, validationCache, pDataSize, pData );
4003    }
4004
4005    //=== VK_NV_shading_rate_image ===
4006
4007    void vkCmdBindShadingRateImageNV( VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT
4008    {
4009      return ::vkCmdBindShadingRateImageNV( commandBuffer, imageView, imageLayout );
4010    }
4011
4012    void vkCmdSetViewportShadingRatePaletteNV( VkCommandBuffer                commandBuffer,
4013                                               uint32_t                       firstViewport,
4014                                               uint32_t                       viewportCount,
4015                                               const VkShadingRatePaletteNV * pShadingRatePalettes ) const VULKAN_HPP_NOEXCEPT
4016    {
4017      return ::vkCmdSetViewportShadingRatePaletteNV( commandBuffer, firstViewport, viewportCount, pShadingRatePalettes );
4018    }
4019
4020    void vkCmdSetCoarseSampleOrderNV( VkCommandBuffer                     commandBuffer,
4021                                      VkCoarseSampleOrderTypeNV           sampleOrderType,
4022                                      uint32_t                            customSampleOrderCount,
4023                                      const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) const VULKAN_HPP_NOEXCEPT
4024    {
4025      return ::vkCmdSetCoarseSampleOrderNV( commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders );
4026    }
4027
4028    //=== VK_NV_ray_tracing ===
4029
4030    VkResult vkCreateAccelerationStructureNV( VkDevice                                    device,
4031                                              const VkAccelerationStructureCreateInfoNV * pCreateInfo,
4032                                              const VkAllocationCallbacks *               pAllocator,
4033                                              VkAccelerationStructureNV *                 pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT
4034    {
4035      return ::vkCreateAccelerationStructureNV( device, pCreateInfo, pAllocator, pAccelerationStructure );
4036    }
4037
4038    void vkDestroyAccelerationStructureNV( VkDevice                      device,
4039                                           VkAccelerationStructureNV     accelerationStructure,
4040                                           const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
4041    {
4042      return ::vkDestroyAccelerationStructureNV( device, accelerationStructure, pAllocator );
4043    }
4044
4045    void vkGetAccelerationStructureMemoryRequirementsNV( VkDevice                                                device,
4046                                                         const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo,
4047                                                         VkMemoryRequirements2KHR *                              pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
4048    {
4049      return ::vkGetAccelerationStructureMemoryRequirementsNV( device, pInfo, pMemoryRequirements );
4050    }
4051
4052    VkResult vkBindAccelerationStructureMemoryNV( VkDevice                                        device,
4053                                                  uint32_t                                        bindInfoCount,
4054                                                  const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) const VULKAN_HPP_NOEXCEPT
4055    {
4056      return ::vkBindAccelerationStructureMemoryNV( device, bindInfoCount, pBindInfos );
4057    }
4058
4059    void vkCmdBuildAccelerationStructureNV( VkCommandBuffer                       commandBuffer,
4060                                            const VkAccelerationStructureInfoNV * pInfo,
4061                                            VkBuffer                              instanceData,
4062                                            VkDeviceSize                          instanceOffset,
4063                                            VkBool32                              update,
4064                                            VkAccelerationStructureNV             dst,
4065                                            VkAccelerationStructureNV             src,
4066                                            VkBuffer                              scratch,
4067                                            VkDeviceSize                          scratchOffset ) const VULKAN_HPP_NOEXCEPT
4068    {
4069      return ::vkCmdBuildAccelerationStructureNV( commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset );
4070    }
4071
4072    void vkCmdCopyAccelerationStructureNV( VkCommandBuffer                    commandBuffer,
4073                                           VkAccelerationStructureNV          dst,
4074                                           VkAccelerationStructureNV          src,
4075                                           VkCopyAccelerationStructureModeKHR mode ) const VULKAN_HPP_NOEXCEPT
4076    {
4077      return ::vkCmdCopyAccelerationStructureNV( commandBuffer, dst, src, mode );
4078    }
4079
4080    void vkCmdTraceRaysNV( VkCommandBuffer commandBuffer,
4081                           VkBuffer        raygenShaderBindingTableBuffer,
4082                           VkDeviceSize    raygenShaderBindingOffset,
4083                           VkBuffer        missShaderBindingTableBuffer,
4084                           VkDeviceSize    missShaderBindingOffset,
4085                           VkDeviceSize    missShaderBindingStride,
4086                           VkBuffer        hitShaderBindingTableBuffer,
4087                           VkDeviceSize    hitShaderBindingOffset,
4088                           VkDeviceSize    hitShaderBindingStride,
4089                           VkBuffer        callableShaderBindingTableBuffer,
4090                           VkDeviceSize    callableShaderBindingOffset,
4091                           VkDeviceSize    callableShaderBindingStride,
4092                           uint32_t        width,
4093                           uint32_t        height,
4094                           uint32_t        depth ) const VULKAN_HPP_NOEXCEPT
4095    {
4096      return ::vkCmdTraceRaysNV( commandBuffer,
4097                                 raygenShaderBindingTableBuffer,
4098                                 raygenShaderBindingOffset,
4099                                 missShaderBindingTableBuffer,
4100                                 missShaderBindingOffset,
4101                                 missShaderBindingStride,
4102                                 hitShaderBindingTableBuffer,
4103                                 hitShaderBindingOffset,
4104                                 hitShaderBindingStride,
4105                                 callableShaderBindingTableBuffer,
4106                                 callableShaderBindingOffset,
4107                                 callableShaderBindingStride,
4108                                 width,
4109                                 height,
4110                                 depth );
4111    }
4112
4113    VkResult vkCreateRayTracingPipelinesNV( VkDevice                                 device,
4114                                            VkPipelineCache                          pipelineCache,
4115                                            uint32_t                                 createInfoCount,
4116                                            const VkRayTracingPipelineCreateInfoNV * pCreateInfos,
4117                                            const VkAllocationCallbacks *            pAllocator,
4118                                            VkPipeline *                             pPipelines ) const VULKAN_HPP_NOEXCEPT
4119    {
4120      return ::vkCreateRayTracingPipelinesNV( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
4121    }
4122
4123    VkResult vkGetRayTracingShaderGroupHandlesNV(
4124      VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void * pData ) const VULKAN_HPP_NOEXCEPT
4125    {
4126      return ::vkGetRayTracingShaderGroupHandlesNV( device, pipeline, firstGroup, groupCount, dataSize, pData );
4127    }
4128
4129    VkResult vkGetAccelerationStructureHandleNV( VkDevice                  device,
4130                                                 VkAccelerationStructureNV accelerationStructure,
4131                                                 size_t                    dataSize,
4132                                                 void *                    pData ) const VULKAN_HPP_NOEXCEPT
4133    {
4134      return ::vkGetAccelerationStructureHandleNV( device, accelerationStructure, dataSize, pData );
4135    }
4136
4137    void vkCmdWriteAccelerationStructuresPropertiesNV( VkCommandBuffer                   commandBuffer,
4138                                                       uint32_t                          accelerationStructureCount,
4139                                                       const VkAccelerationStructureNV * pAccelerationStructures,
4140                                                       VkQueryType                       queryType,
4141                                                       VkQueryPool                       queryPool,
4142                                                       uint32_t                          firstQuery ) const VULKAN_HPP_NOEXCEPT
4143    {
4144      return ::vkCmdWriteAccelerationStructuresPropertiesNV(
4145        commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery );
4146    }
4147
4148    VkResult vkCompileDeferredNV( VkDevice device, VkPipeline pipeline, uint32_t shader ) const VULKAN_HPP_NOEXCEPT
4149    {
4150      return ::vkCompileDeferredNV( device, pipeline, shader );
4151    }
4152
4153    //=== VK_KHR_maintenance3 ===
4154
4155    void vkGetDescriptorSetLayoutSupportKHR( VkDevice                                device,
4156                                             const VkDescriptorSetLayoutCreateInfo * pCreateInfo,
4157                                             VkDescriptorSetLayoutSupport *          pSupport ) const VULKAN_HPP_NOEXCEPT
4158    {
4159      return ::vkGetDescriptorSetLayoutSupportKHR( device, pCreateInfo, pSupport );
4160    }
4161
4162    //=== VK_KHR_draw_indirect_count ===
4163
4164    void vkCmdDrawIndirectCountKHR( VkCommandBuffer commandBuffer,
4165                                    VkBuffer        buffer,
4166                                    VkDeviceSize    offset,
4167                                    VkBuffer        countBuffer,
4168                                    VkDeviceSize    countBufferOffset,
4169                                    uint32_t        maxDrawCount,
4170                                    uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
4171    {
4172      return ::vkCmdDrawIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
4173    }
4174
4175    void vkCmdDrawIndexedIndirectCountKHR( VkCommandBuffer commandBuffer,
4176                                           VkBuffer        buffer,
4177                                           VkDeviceSize    offset,
4178                                           VkBuffer        countBuffer,
4179                                           VkDeviceSize    countBufferOffset,
4180                                           uint32_t        maxDrawCount,
4181                                           uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
4182    {
4183      return ::vkCmdDrawIndexedIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
4184    }
4185
4186    //=== VK_EXT_external_memory_host ===
4187
4188    VkResult vkGetMemoryHostPointerPropertiesEXT( VkDevice                           device,
4189                                                  VkExternalMemoryHandleTypeFlagBits handleType,
4190                                                  const void *                       pHostPointer,
4191                                                  VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) const VULKAN_HPP_NOEXCEPT
4192    {
4193      return ::vkGetMemoryHostPointerPropertiesEXT( device, handleType, pHostPointer, pMemoryHostPointerProperties );
4194    }
4195
4196    //=== VK_AMD_buffer_marker ===
4197
4198    void vkCmdWriteBufferMarkerAMD( VkCommandBuffer         commandBuffer,
4199                                    VkPipelineStageFlagBits pipelineStage,
4200                                    VkBuffer                dstBuffer,
4201                                    VkDeviceSize            dstOffset,
4202                                    uint32_t                marker ) const VULKAN_HPP_NOEXCEPT
4203    {
4204      return ::vkCmdWriteBufferMarkerAMD( commandBuffer, pipelineStage, dstBuffer, dstOffset, marker );
4205    }
4206
4207    //=== VK_EXT_calibrated_timestamps ===
4208
4209    VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( VkPhysicalDevice  physicalDevice,
4210                                                             uint32_t *        pTimeDomainCount,
4211                                                             VkTimeDomainKHR * pTimeDomains ) const VULKAN_HPP_NOEXCEPT
4212    {
4213      return ::vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( physicalDevice, pTimeDomainCount, pTimeDomains );
4214    }
4215
4216    VkResult vkGetCalibratedTimestampsEXT( VkDevice                             device,
4217                                           uint32_t                             timestampCount,
4218                                           const VkCalibratedTimestampInfoKHR * pTimestampInfos,
4219                                           uint64_t *                           pTimestamps,
4220                                           uint64_t *                           pMaxDeviation ) const VULKAN_HPP_NOEXCEPT
4221    {
4222      return ::vkGetCalibratedTimestampsEXT( device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation );
4223    }
4224
4225    //=== VK_NV_mesh_shader ===
4226
4227    void vkCmdDrawMeshTasksNV( VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask ) const VULKAN_HPP_NOEXCEPT
4228    {
4229      return ::vkCmdDrawMeshTasksNV( commandBuffer, taskCount, firstTask );
4230    }
4231
4232    void vkCmdDrawMeshTasksIndirectNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const
4233      VULKAN_HPP_NOEXCEPT
4234    {
4235      return ::vkCmdDrawMeshTasksIndirectNV( commandBuffer, buffer, offset, drawCount, stride );
4236    }
4237
4238    void vkCmdDrawMeshTasksIndirectCountNV( VkCommandBuffer commandBuffer,
4239                                            VkBuffer        buffer,
4240                                            VkDeviceSize    offset,
4241                                            VkBuffer        countBuffer,
4242                                            VkDeviceSize    countBufferOffset,
4243                                            uint32_t        maxDrawCount,
4244                                            uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
4245    {
4246      return ::vkCmdDrawMeshTasksIndirectCountNV( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
4247    }
4248
4249    //=== VK_NV_scissor_exclusive ===
4250
4251    void vkCmdSetExclusiveScissorEnableNV( VkCommandBuffer  commandBuffer,
4252                                           uint32_t         firstExclusiveScissor,
4253                                           uint32_t         exclusiveScissorCount,
4254                                           const VkBool32 * pExclusiveScissorEnables ) const VULKAN_HPP_NOEXCEPT
4255    {
4256      return ::vkCmdSetExclusiveScissorEnableNV( commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissorEnables );
4257    }
4258
4259    void vkCmdSetExclusiveScissorNV( VkCommandBuffer  commandBuffer,
4260                                     uint32_t         firstExclusiveScissor,
4261                                     uint32_t         exclusiveScissorCount,
4262                                     const VkRect2D * pExclusiveScissors ) const VULKAN_HPP_NOEXCEPT
4263    {
4264      return ::vkCmdSetExclusiveScissorNV( commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors );
4265    }
4266
4267    //=== VK_NV_device_diagnostic_checkpoints ===
4268
4269    void vkCmdSetCheckpointNV( VkCommandBuffer commandBuffer, const void * pCheckpointMarker ) const VULKAN_HPP_NOEXCEPT
4270    {
4271      return ::vkCmdSetCheckpointNV( commandBuffer, pCheckpointMarker );
4272    }
4273
4274    void vkGetQueueCheckpointDataNV( VkQueue queue, uint32_t * pCheckpointDataCount, VkCheckpointDataNV * pCheckpointData ) const VULKAN_HPP_NOEXCEPT
4275    {
4276      return ::vkGetQueueCheckpointDataNV( queue, pCheckpointDataCount, pCheckpointData );
4277    }
4278
4279    //=== VK_KHR_timeline_semaphore ===
4280
4281    VkResult vkGetSemaphoreCounterValueKHR( VkDevice device, VkSemaphore semaphore, uint64_t * pValue ) const VULKAN_HPP_NOEXCEPT
4282    {
4283      return ::vkGetSemaphoreCounterValueKHR( device, semaphore, pValue );
4284    }
4285
4286    VkResult vkWaitSemaphoresKHR( VkDevice device, const VkSemaphoreWaitInfo * pWaitInfo, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
4287    {
4288      return ::vkWaitSemaphoresKHR( device, pWaitInfo, timeout );
4289    }
4290
4291    VkResult vkSignalSemaphoreKHR( VkDevice device, const VkSemaphoreSignalInfo * pSignalInfo ) const VULKAN_HPP_NOEXCEPT
4292    {
4293      return ::vkSignalSemaphoreKHR( device, pSignalInfo );
4294    }
4295
4296    //=== VK_INTEL_performance_query ===
4297
4298    VkResult vkInitializePerformanceApiINTEL( VkDevice device, const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) const VULKAN_HPP_NOEXCEPT
4299    {
4300      return ::vkInitializePerformanceApiINTEL( device, pInitializeInfo );
4301    }
4302
4303    void vkUninitializePerformanceApiINTEL( VkDevice device ) const VULKAN_HPP_NOEXCEPT
4304    {
4305      return ::vkUninitializePerformanceApiINTEL( device );
4306    }
4307
4308    VkResult vkCmdSetPerformanceMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
4309    {
4310      return ::vkCmdSetPerformanceMarkerINTEL( commandBuffer, pMarkerInfo );
4311    }
4312
4313    VkResult vkCmdSetPerformanceStreamMarkerINTEL( VkCommandBuffer                            commandBuffer,
4314                                                   const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
4315    {
4316      return ::vkCmdSetPerformanceStreamMarkerINTEL( commandBuffer, pMarkerInfo );
4317    }
4318
4319    VkResult vkCmdSetPerformanceOverrideINTEL( VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) const VULKAN_HPP_NOEXCEPT
4320    {
4321      return ::vkCmdSetPerformanceOverrideINTEL( commandBuffer, pOverrideInfo );
4322    }
4323
4324    VkResult vkAcquirePerformanceConfigurationINTEL( VkDevice                                           device,
4325                                                     const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,
4326                                                     VkPerformanceConfigurationINTEL *                  pConfiguration ) const VULKAN_HPP_NOEXCEPT
4327    {
4328      return ::vkAcquirePerformanceConfigurationINTEL( device, pAcquireInfo, pConfiguration );
4329    }
4330
4331    VkResult vkReleasePerformanceConfigurationINTEL( VkDevice device, VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT
4332    {
4333      return ::vkReleasePerformanceConfigurationINTEL( device, configuration );
4334    }
4335
4336    VkResult vkQueueSetPerformanceConfigurationINTEL( VkQueue queue, VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT
4337    {
4338      return ::vkQueueSetPerformanceConfigurationINTEL( queue, configuration );
4339    }
4340
4341    VkResult
4342      vkGetPerformanceParameterINTEL( VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL * pValue ) const VULKAN_HPP_NOEXCEPT
4343    {
4344      return ::vkGetPerformanceParameterINTEL( device, parameter, pValue );
4345    }
4346
4347    //=== VK_AMD_display_native_hdr ===
4348
4349    void vkSetLocalDimmingAMD( VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable ) const VULKAN_HPP_NOEXCEPT
4350    {
4351      return ::vkSetLocalDimmingAMD( device, swapChain, localDimmingEnable );
4352    }
4353
4354#  if defined( VK_USE_PLATFORM_FUCHSIA )
4355    //=== VK_FUCHSIA_imagepipe_surface ===
4356
4357    VkResult vkCreateImagePipeSurfaceFUCHSIA( VkInstance                                  instance,
4358                                              const VkImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,
4359                                              const VkAllocationCallbacks *               pAllocator,
4360                                              VkSurfaceKHR *                              pSurface ) const VULKAN_HPP_NOEXCEPT
4361    {
4362      return ::vkCreateImagePipeSurfaceFUCHSIA( instance, pCreateInfo, pAllocator, pSurface );
4363    }
4364#  endif /*VK_USE_PLATFORM_FUCHSIA*/
4365
4366#  if defined( VK_USE_PLATFORM_METAL_EXT )
4367    //=== VK_EXT_metal_surface ===
4368
4369    VkResult vkCreateMetalSurfaceEXT( VkInstance                          instance,
4370                                      const VkMetalSurfaceCreateInfoEXT * pCreateInfo,
4371                                      const VkAllocationCallbacks *       pAllocator,
4372                                      VkSurfaceKHR *                      pSurface ) const VULKAN_HPP_NOEXCEPT
4373    {
4374      return ::vkCreateMetalSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
4375    }
4376#  endif /*VK_USE_PLATFORM_METAL_EXT*/
4377
4378    //=== VK_KHR_fragment_shading_rate ===
4379
4380    VkResult vkGetPhysicalDeviceFragmentShadingRatesKHR( VkPhysicalDevice                         physicalDevice,
4381                                                         uint32_t *                               pFragmentShadingRateCount,
4382                                                         VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) const VULKAN_HPP_NOEXCEPT
4383    {
4384      return ::vkGetPhysicalDeviceFragmentShadingRatesKHR( physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates );
4385    }
4386
4387    void vkCmdSetFragmentShadingRateKHR( VkCommandBuffer                          commandBuffer,
4388                                         const VkExtent2D *                       pFragmentSize,
4389                                         const VkFragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT
4390    {
4391      return ::vkCmdSetFragmentShadingRateKHR( commandBuffer, pFragmentSize, combinerOps );
4392    }
4393
4394    //=== VK_EXT_buffer_device_address ===
4395
4396    VkDeviceAddress vkGetBufferDeviceAddressEXT( VkDevice device, const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
4397    {
4398      return ::vkGetBufferDeviceAddressEXT( device, pInfo );
4399    }
4400
4401    //=== VK_EXT_tooling_info ===
4402
4403    VkResult vkGetPhysicalDeviceToolPropertiesEXT( VkPhysicalDevice                 physicalDevice,
4404                                                   uint32_t *                       pToolCount,
4405                                                   VkPhysicalDeviceToolProperties * pToolProperties ) const VULKAN_HPP_NOEXCEPT
4406    {
4407      return ::vkGetPhysicalDeviceToolPropertiesEXT( physicalDevice, pToolCount, pToolProperties );
4408    }
4409
4410    //=== VK_KHR_present_wait ===
4411
4412    VkResult vkWaitForPresentKHR( VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
4413    {
4414      return ::vkWaitForPresentKHR( device, swapchain, presentId, timeout );
4415    }
4416
4417    //=== VK_NV_cooperative_matrix ===
4418
4419    VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDevice                  physicalDevice,
4420                                                               uint32_t *                        pPropertyCount,
4421                                                               VkCooperativeMatrixPropertiesNV * pProperties ) const VULKAN_HPP_NOEXCEPT
4422    {
4423      return ::vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( physicalDevice, pPropertyCount, pProperties );
4424    }
4425
4426    //=== VK_NV_coverage_reduction_mode ===
4427
4428    VkResult vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
4429      VkPhysicalDevice physicalDevice, uint32_t * pCombinationCount, VkFramebufferMixedSamplesCombinationNV * pCombinations ) const VULKAN_HPP_NOEXCEPT
4430    {
4431      return ::vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( physicalDevice, pCombinationCount, pCombinations );
4432    }
4433
4434#  if defined( VK_USE_PLATFORM_WIN32_KHR )
4435    //=== VK_EXT_full_screen_exclusive ===
4436
4437    VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT( VkPhysicalDevice                        physicalDevice,
4438                                                         const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,
4439                                                         uint32_t *                              pPresentModeCount,
4440                                                         VkPresentModeKHR *                      pPresentModes ) const VULKAN_HPP_NOEXCEPT
4441    {
4442      return ::vkGetPhysicalDeviceSurfacePresentModes2EXT( physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes );
4443    }
4444
4445    VkResult vkAcquireFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
4446    {
4447      return ::vkAcquireFullScreenExclusiveModeEXT( device, swapchain );
4448    }
4449
4450    VkResult vkReleaseFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
4451    {
4452      return ::vkReleaseFullScreenExclusiveModeEXT( device, swapchain );
4453    }
4454
4455    VkResult vkGetDeviceGroupSurfacePresentModes2EXT( VkDevice                                device,
4456                                                      const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,
4457                                                      VkDeviceGroupPresentModeFlagsKHR *      pModes ) const VULKAN_HPP_NOEXCEPT
4458    {
4459      return ::vkGetDeviceGroupSurfacePresentModes2EXT( device, pSurfaceInfo, pModes );
4460    }
4461#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
4462
4463    //=== VK_EXT_headless_surface ===
4464
4465    VkResult vkCreateHeadlessSurfaceEXT( VkInstance                             instance,
4466                                         const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo,
4467                                         const VkAllocationCallbacks *          pAllocator,
4468                                         VkSurfaceKHR *                         pSurface ) const VULKAN_HPP_NOEXCEPT
4469    {
4470      return ::vkCreateHeadlessSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
4471    }
4472
4473    //=== VK_KHR_buffer_device_address ===
4474
4475    VkDeviceAddress vkGetBufferDeviceAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
4476    {
4477      return ::vkGetBufferDeviceAddressKHR( device, pInfo );
4478    }
4479
4480    uint64_t vkGetBufferOpaqueCaptureAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
4481    {
4482      return ::vkGetBufferOpaqueCaptureAddressKHR( device, pInfo );
4483    }
4484
4485    uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
4486    {
4487      return ::vkGetDeviceMemoryOpaqueCaptureAddressKHR( device, pInfo );
4488    }
4489
4490    //=== VK_EXT_line_rasterization ===
4491
4492    void vkCmdSetLineStippleEXT( VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern ) const VULKAN_HPP_NOEXCEPT
4493    {
4494      return ::vkCmdSetLineStippleEXT( commandBuffer, lineStippleFactor, lineStipplePattern );
4495    }
4496
4497    //=== VK_EXT_host_query_reset ===
4498
4499    void vkResetQueryPoolEXT( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
4500    {
4501      return ::vkResetQueryPoolEXT( device, queryPool, firstQuery, queryCount );
4502    }
4503
4504    //=== VK_EXT_extended_dynamic_state ===
4505
4506    void vkCmdSetCullModeEXT( VkCommandBuffer commandBuffer, VkCullModeFlags cullMode ) const VULKAN_HPP_NOEXCEPT
4507    {
4508      return ::vkCmdSetCullModeEXT( commandBuffer, cullMode );
4509    }
4510
4511    void vkCmdSetFrontFaceEXT( VkCommandBuffer commandBuffer, VkFrontFace frontFace ) const VULKAN_HPP_NOEXCEPT
4512    {
4513      return ::vkCmdSetFrontFaceEXT( commandBuffer, frontFace );
4514    }
4515
4516    void vkCmdSetPrimitiveTopologyEXT( VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT
4517    {
4518      return ::vkCmdSetPrimitiveTopologyEXT( commandBuffer, primitiveTopology );
4519    }
4520
4521    void vkCmdSetViewportWithCountEXT( VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport * pViewports ) const VULKAN_HPP_NOEXCEPT
4522    {
4523      return ::vkCmdSetViewportWithCountEXT( commandBuffer, viewportCount, pViewports );
4524    }
4525
4526    void vkCmdSetScissorWithCountEXT( VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D * pScissors ) const VULKAN_HPP_NOEXCEPT
4527    {
4528      return ::vkCmdSetScissorWithCountEXT( commandBuffer, scissorCount, pScissors );
4529    }
4530
4531    void vkCmdBindVertexBuffers2EXT( VkCommandBuffer      commandBuffer,
4532                                     uint32_t             firstBinding,
4533                                     uint32_t             bindingCount,
4534                                     const VkBuffer *     pBuffers,
4535                                     const VkDeviceSize * pOffsets,
4536                                     const VkDeviceSize * pSizes,
4537                                     const VkDeviceSize * pStrides ) const VULKAN_HPP_NOEXCEPT
4538    {
4539      return ::vkCmdBindVertexBuffers2EXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides );
4540    }
4541
4542    void vkCmdSetDepthTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT
4543    {
4544      return ::vkCmdSetDepthTestEnableEXT( commandBuffer, depthTestEnable );
4545    }
4546
4547    void vkCmdSetDepthWriteEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT
4548    {
4549      return ::vkCmdSetDepthWriteEnableEXT( commandBuffer, depthWriteEnable );
4550    }
4551
4552    void vkCmdSetDepthCompareOpEXT( VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT
4553    {
4554      return ::vkCmdSetDepthCompareOpEXT( commandBuffer, depthCompareOp );
4555    }
4556
4557    void vkCmdSetDepthBoundsTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT
4558    {
4559      return ::vkCmdSetDepthBoundsTestEnableEXT( commandBuffer, depthBoundsTestEnable );
4560    }
4561
4562    void vkCmdSetStencilTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT
4563    {
4564      return ::vkCmdSetStencilTestEnableEXT( commandBuffer, stencilTestEnable );
4565    }
4566
4567    void vkCmdSetStencilOpEXT( VkCommandBuffer    commandBuffer,
4568                               VkStencilFaceFlags faceMask,
4569                               VkStencilOp        failOp,
4570                               VkStencilOp        passOp,
4571                               VkStencilOp        depthFailOp,
4572                               VkCompareOp        compareOp ) const VULKAN_HPP_NOEXCEPT
4573    {
4574      return ::vkCmdSetStencilOpEXT( commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp );
4575    }
4576
4577    //=== VK_KHR_deferred_host_operations ===
4578
4579    VkResult vkCreateDeferredOperationKHR( VkDevice                      device,
4580                                           const VkAllocationCallbacks * pAllocator,
4581                                           VkDeferredOperationKHR *      pDeferredOperation ) const VULKAN_HPP_NOEXCEPT
4582    {
4583      return ::vkCreateDeferredOperationKHR( device, pAllocator, pDeferredOperation );
4584    }
4585
4586    void vkDestroyDeferredOperationKHR( VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
4587    {
4588      return ::vkDestroyDeferredOperationKHR( device, operation, pAllocator );
4589    }
4590
4591    uint32_t vkGetDeferredOperationMaxConcurrencyKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
4592    {
4593      return ::vkGetDeferredOperationMaxConcurrencyKHR( device, operation );
4594    }
4595
4596    VkResult vkGetDeferredOperationResultKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
4597    {
4598      return ::vkGetDeferredOperationResultKHR( device, operation );
4599    }
4600
4601    VkResult vkDeferredOperationJoinKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
4602    {
4603      return ::vkDeferredOperationJoinKHR( device, operation );
4604    }
4605
4606    //=== VK_KHR_pipeline_executable_properties ===
4607
4608    VkResult vkGetPipelineExecutablePropertiesKHR( VkDevice                            device,
4609                                                   const VkPipelineInfoKHR *           pPipelineInfo,
4610                                                   uint32_t *                          pExecutableCount,
4611                                                   VkPipelineExecutablePropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT
4612    {
4613      return ::vkGetPipelineExecutablePropertiesKHR( device, pPipelineInfo, pExecutableCount, pProperties );
4614    }
4615
4616    VkResult vkGetPipelineExecutableStatisticsKHR( VkDevice                            device,
4617                                                   const VkPipelineExecutableInfoKHR * pExecutableInfo,
4618                                                   uint32_t *                          pStatisticCount,
4619                                                   VkPipelineExecutableStatisticKHR *  pStatistics ) const VULKAN_HPP_NOEXCEPT
4620    {
4621      return ::vkGetPipelineExecutableStatisticsKHR( device, pExecutableInfo, pStatisticCount, pStatistics );
4622    }
4623
4624    VkResult
4625      vkGetPipelineExecutableInternalRepresentationsKHR( VkDevice                                        device,
4626                                                         const VkPipelineExecutableInfoKHR *             pExecutableInfo,
4627                                                         uint32_t *                                      pInternalRepresentationCount,
4628                                                         VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) const VULKAN_HPP_NOEXCEPT
4629    {
4630      return ::vkGetPipelineExecutableInternalRepresentationsKHR( device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations );
4631    }
4632
4633    //=== VK_EXT_host_image_copy ===
4634
4635    VkResult vkCopyMemoryToImageEXT( VkDevice device, const VkCopyMemoryToImageInfoEXT * pCopyMemoryToImageInfo ) const VULKAN_HPP_NOEXCEPT
4636    {
4637      return ::vkCopyMemoryToImageEXT( device, pCopyMemoryToImageInfo );
4638    }
4639
4640    VkResult vkCopyImageToMemoryEXT( VkDevice device, const VkCopyImageToMemoryInfoEXT * pCopyImageToMemoryInfo ) const VULKAN_HPP_NOEXCEPT
4641    {
4642      return ::vkCopyImageToMemoryEXT( device, pCopyImageToMemoryInfo );
4643    }
4644
4645    VkResult vkCopyImageToImageEXT( VkDevice device, const VkCopyImageToImageInfoEXT * pCopyImageToImageInfo ) const VULKAN_HPP_NOEXCEPT
4646    {
4647      return ::vkCopyImageToImageEXT( device, pCopyImageToImageInfo );
4648    }
4649
4650    VkResult
4651      vkTransitionImageLayoutEXT( VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfoEXT * pTransitions ) const VULKAN_HPP_NOEXCEPT
4652    {
4653      return ::vkTransitionImageLayoutEXT( device, transitionCount, pTransitions );
4654    }
4655
4656    void vkGetImageSubresourceLayout2EXT( VkDevice                       device,
4657                                          VkImage                        image,
4658                                          const VkImageSubresource2KHR * pSubresource,
4659                                          VkSubresourceLayout2KHR *      pLayout ) const VULKAN_HPP_NOEXCEPT
4660    {
4661      return ::vkGetImageSubresourceLayout2EXT( device, image, pSubresource, pLayout );
4662    }
4663
4664    //=== VK_KHR_map_memory2 ===
4665
4666    VkResult vkMapMemory2KHR( VkDevice device, const VkMemoryMapInfoKHR * pMemoryMapInfo, void ** ppData ) const VULKAN_HPP_NOEXCEPT
4667    {
4668      return ::vkMapMemory2KHR( device, pMemoryMapInfo, ppData );
4669    }
4670
4671    VkResult vkUnmapMemory2KHR( VkDevice device, const VkMemoryUnmapInfoKHR * pMemoryUnmapInfo ) const VULKAN_HPP_NOEXCEPT
4672    {
4673      return ::vkUnmapMemory2KHR( device, pMemoryUnmapInfo );
4674    }
4675
4676    //=== VK_EXT_swapchain_maintenance1 ===
4677
4678    VkResult vkReleaseSwapchainImagesEXT( VkDevice device, const VkReleaseSwapchainImagesInfoEXT * pReleaseInfo ) const VULKAN_HPP_NOEXCEPT
4679    {
4680      return ::vkReleaseSwapchainImagesEXT( device, pReleaseInfo );
4681    }
4682
4683    //=== VK_NV_device_generated_commands ===
4684
4685    void vkGetGeneratedCommandsMemoryRequirementsNV( VkDevice                                            device,
4686                                                     const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo,
4687                                                     VkMemoryRequirements2 *                             pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
4688    {
4689      return ::vkGetGeneratedCommandsMemoryRequirementsNV( device, pInfo, pMemoryRequirements );
4690    }
4691
4692    void vkCmdPreprocessGeneratedCommandsNV( VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) const VULKAN_HPP_NOEXCEPT
4693    {
4694      return ::vkCmdPreprocessGeneratedCommandsNV( commandBuffer, pGeneratedCommandsInfo );
4695    }
4696
4697    void vkCmdExecuteGeneratedCommandsNV( VkCommandBuffer                   commandBuffer,
4698                                          VkBool32                          isPreprocessed,
4699                                          const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) const VULKAN_HPP_NOEXCEPT
4700    {
4701      return ::vkCmdExecuteGeneratedCommandsNV( commandBuffer, isPreprocessed, pGeneratedCommandsInfo );
4702    }
4703
4704    void vkCmdBindPipelineShaderGroupNV( VkCommandBuffer     commandBuffer,
4705                                         VkPipelineBindPoint pipelineBindPoint,
4706                                         VkPipeline          pipeline,
4707                                         uint32_t            groupIndex ) const VULKAN_HPP_NOEXCEPT
4708    {
4709      return ::vkCmdBindPipelineShaderGroupNV( commandBuffer, pipelineBindPoint, pipeline, groupIndex );
4710    }
4711
4712    VkResult vkCreateIndirectCommandsLayoutNV( VkDevice                                     device,
4713                                               const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo,
4714                                               const VkAllocationCallbacks *                pAllocator,
4715                                               VkIndirectCommandsLayoutNV *                 pIndirectCommandsLayout ) const VULKAN_HPP_NOEXCEPT
4716    {
4717      return ::vkCreateIndirectCommandsLayoutNV( device, pCreateInfo, pAllocator, pIndirectCommandsLayout );
4718    }
4719
4720    void vkDestroyIndirectCommandsLayoutNV( VkDevice                      device,
4721                                            VkIndirectCommandsLayoutNV    indirectCommandsLayout,
4722                                            const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
4723    {
4724      return ::vkDestroyIndirectCommandsLayoutNV( device, indirectCommandsLayout, pAllocator );
4725    }
4726
4727    //=== VK_EXT_depth_bias_control ===
4728
4729    void vkCmdSetDepthBias2EXT( VkCommandBuffer commandBuffer, const VkDepthBiasInfoEXT * pDepthBiasInfo ) const VULKAN_HPP_NOEXCEPT
4730    {
4731      return ::vkCmdSetDepthBias2EXT( commandBuffer, pDepthBiasInfo );
4732    }
4733
4734    //=== VK_EXT_acquire_drm_display ===
4735
4736    VkResult vkAcquireDrmDisplayEXT( VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
4737    {
4738      return ::vkAcquireDrmDisplayEXT( physicalDevice, drmFd, display );
4739    }
4740
4741    VkResult vkGetDrmDisplayEXT( VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR * display ) const VULKAN_HPP_NOEXCEPT
4742    {
4743      return ::vkGetDrmDisplayEXT( physicalDevice, drmFd, connectorId, display );
4744    }
4745
4746    //=== VK_EXT_private_data ===
4747
4748    VkResult vkCreatePrivateDataSlotEXT( VkDevice                            device,
4749                                         const VkPrivateDataSlotCreateInfo * pCreateInfo,
4750                                         const VkAllocationCallbacks *       pAllocator,
4751                                         VkPrivateDataSlot *                 pPrivateDataSlot ) const VULKAN_HPP_NOEXCEPT
4752    {
4753      return ::vkCreatePrivateDataSlotEXT( device, pCreateInfo, pAllocator, pPrivateDataSlot );
4754    }
4755
4756    void vkDestroyPrivateDataSlotEXT( VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
4757    {
4758      return ::vkDestroyPrivateDataSlotEXT( device, privateDataSlot, pAllocator );
4759    }
4760
4761    VkResult vkSetPrivateDataEXT( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data ) const
4762      VULKAN_HPP_NOEXCEPT
4763    {
4764      return ::vkSetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, data );
4765    }
4766
4767    void vkGetPrivateDataEXT( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t * pData ) const
4768      VULKAN_HPP_NOEXCEPT
4769    {
4770      return ::vkGetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, pData );
4771    }
4772
4773    //=== VK_KHR_video_encode_queue ===
4774
4775    VkResult
4776      vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR( VkPhysicalDevice                                       physicalDevice,
4777                                                               const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR * pQualityLevelInfo,
4778                                                               VkVideoEncodeQualityLevelPropertiesKHR * pQualityLevelProperties ) const VULKAN_HPP_NOEXCEPT
4779    {
4780      return ::vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR( physicalDevice, pQualityLevelInfo, pQualityLevelProperties );
4781    }
4782
4783    VkResult vkGetEncodedVideoSessionParametersKHR( VkDevice                                         device,
4784                                                    const VkVideoEncodeSessionParametersGetInfoKHR * pVideoSessionParametersInfo,
4785                                                    VkVideoEncodeSessionParametersFeedbackInfoKHR *  pFeedbackInfo,
4786                                                    size_t *                                         pDataSize,
4787                                                    void *                                           pData ) const VULKAN_HPP_NOEXCEPT
4788    {
4789      return ::vkGetEncodedVideoSessionParametersKHR( device, pVideoSessionParametersInfo, pFeedbackInfo, pDataSize, pData );
4790    }
4791
4792    void vkCmdEncodeVideoKHR( VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR * pEncodeInfo ) const VULKAN_HPP_NOEXCEPT
4793    {
4794      return ::vkCmdEncodeVideoKHR( commandBuffer, pEncodeInfo );
4795    }
4796
4797#  if defined( VK_ENABLE_BETA_EXTENSIONS )
4798    //=== VK_NV_cuda_kernel_launch ===
4799
4800    VkResult vkCreateCudaModuleNV( VkDevice                         device,
4801                                   const VkCudaModuleCreateInfoNV * pCreateInfo,
4802                                   const VkAllocationCallbacks *    pAllocator,
4803                                   VkCudaModuleNV *                 pModule ) const VULKAN_HPP_NOEXCEPT
4804    {
4805      return ::vkCreateCudaModuleNV( device, pCreateInfo, pAllocator, pModule );
4806    }
4807
4808    VkResult vkGetCudaModuleCacheNV( VkDevice device, VkCudaModuleNV module, size_t * pCacheSize, void * pCacheData ) const VULKAN_HPP_NOEXCEPT
4809    {
4810      return ::vkGetCudaModuleCacheNV( device, module, pCacheSize, pCacheData );
4811    }
4812
4813    VkResult vkCreateCudaFunctionNV( VkDevice                           device,
4814                                     const VkCudaFunctionCreateInfoNV * pCreateInfo,
4815                                     const VkAllocationCallbacks *      pAllocator,
4816                                     VkCudaFunctionNV *                 pFunction ) const VULKAN_HPP_NOEXCEPT
4817    {
4818      return ::vkCreateCudaFunctionNV( device, pCreateInfo, pAllocator, pFunction );
4819    }
4820
4821    void vkDestroyCudaModuleNV( VkDevice device, VkCudaModuleNV module, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
4822    {
4823      return ::vkDestroyCudaModuleNV( device, module, pAllocator );
4824    }
4825
4826    void vkDestroyCudaFunctionNV( VkDevice device, VkCudaFunctionNV function, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
4827    {
4828      return ::vkDestroyCudaFunctionNV( device, function, pAllocator );
4829    }
4830
4831    void vkCmdCudaLaunchKernelNV( VkCommandBuffer commandBuffer, const VkCudaLaunchInfoNV * pLaunchInfo ) const VULKAN_HPP_NOEXCEPT
4832    {
4833      return ::vkCmdCudaLaunchKernelNV( commandBuffer, pLaunchInfo );
4834    }
4835#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
4836
4837#  if defined( VK_USE_PLATFORM_METAL_EXT )
4838    //=== VK_EXT_metal_objects ===
4839
4840    void vkExportMetalObjectsEXT( VkDevice device, VkExportMetalObjectsInfoEXT * pMetalObjectsInfo ) const VULKAN_HPP_NOEXCEPT
4841    {
4842      return ::vkExportMetalObjectsEXT( device, pMetalObjectsInfo );
4843    }
4844#  endif /*VK_USE_PLATFORM_METAL_EXT*/
4845
4846    //=== VK_KHR_synchronization2 ===
4847
4848    void vkCmdSetEvent2KHR( VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo * pDependencyInfo ) const VULKAN_HPP_NOEXCEPT
4849    {
4850      return ::vkCmdSetEvent2KHR( commandBuffer, event, pDependencyInfo );
4851    }
4852
4853    void vkCmdResetEvent2KHR( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask ) const VULKAN_HPP_NOEXCEPT
4854    {
4855      return ::vkCmdResetEvent2KHR( commandBuffer, event, stageMask );
4856    }
4857
4858    void vkCmdWaitEvents2KHR( VkCommandBuffer          commandBuffer,
4859                              uint32_t                 eventCount,
4860                              const VkEvent *          pEvents,
4861                              const VkDependencyInfo * pDependencyInfos ) const VULKAN_HPP_NOEXCEPT
4862    {
4863      return ::vkCmdWaitEvents2KHR( commandBuffer, eventCount, pEvents, pDependencyInfos );
4864    }
4865
4866    void vkCmdPipelineBarrier2KHR( VkCommandBuffer commandBuffer, const VkDependencyInfo * pDependencyInfo ) const VULKAN_HPP_NOEXCEPT
4867    {
4868      return ::vkCmdPipelineBarrier2KHR( commandBuffer, pDependencyInfo );
4869    }
4870
4871    void vkCmdWriteTimestamp2KHR( VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT
4872    {
4873      return ::vkCmdWriteTimestamp2KHR( commandBuffer, stage, queryPool, query );
4874    }
4875
4876    VkResult vkQueueSubmit2KHR( VkQueue queue, uint32_t submitCount, const VkSubmitInfo2 * pSubmits, VkFence fence ) const VULKAN_HPP_NOEXCEPT
4877    {
4878      return ::vkQueueSubmit2KHR( queue, submitCount, pSubmits, fence );
4879    }
4880
4881    void vkCmdWriteBufferMarker2AMD(
4882      VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker ) const VULKAN_HPP_NOEXCEPT
4883    {
4884      return ::vkCmdWriteBufferMarker2AMD( commandBuffer, stage, dstBuffer, dstOffset, marker );
4885    }
4886
4887    void vkGetQueueCheckpointData2NV( VkQueue queue, uint32_t * pCheckpointDataCount, VkCheckpointData2NV * pCheckpointData ) const VULKAN_HPP_NOEXCEPT
4888    {
4889      return ::vkGetQueueCheckpointData2NV( queue, pCheckpointDataCount, pCheckpointData );
4890    }
4891
4892    //=== VK_EXT_descriptor_buffer ===
4893
4894    void vkGetDescriptorSetLayoutSizeEXT( VkDevice device, VkDescriptorSetLayout layout, VkDeviceSize * pLayoutSizeInBytes ) const VULKAN_HPP_NOEXCEPT
4895    {
4896      return ::vkGetDescriptorSetLayoutSizeEXT( device, layout, pLayoutSizeInBytes );
4897    }
4898
4899    void vkGetDescriptorSetLayoutBindingOffsetEXT( VkDevice              device,
4900                                                   VkDescriptorSetLayout layout,
4901                                                   uint32_t              binding,
4902                                                   VkDeviceSize *        pOffset ) const VULKAN_HPP_NOEXCEPT
4903    {
4904      return ::vkGetDescriptorSetLayoutBindingOffsetEXT( device, layout, binding, pOffset );
4905    }
4906
4907    void vkGetDescriptorEXT( VkDevice device, const VkDescriptorGetInfoEXT * pDescriptorInfo, size_t dataSize, void * pDescriptor ) const VULKAN_HPP_NOEXCEPT
4908    {
4909      return ::vkGetDescriptorEXT( device, pDescriptorInfo, dataSize, pDescriptor );
4910    }
4911
4912    void vkCmdBindDescriptorBuffersEXT( VkCommandBuffer                          commandBuffer,
4913                                        uint32_t                                 bufferCount,
4914                                        const VkDescriptorBufferBindingInfoEXT * pBindingInfos ) const VULKAN_HPP_NOEXCEPT
4915    {
4916      return ::vkCmdBindDescriptorBuffersEXT( commandBuffer, bufferCount, pBindingInfos );
4917    }
4918
4919    void vkCmdSetDescriptorBufferOffsetsEXT( VkCommandBuffer      commandBuffer,
4920                                             VkPipelineBindPoint  pipelineBindPoint,
4921                                             VkPipelineLayout     layout,
4922                                             uint32_t             firstSet,
4923                                             uint32_t             setCount,
4924                                             const uint32_t *     pBufferIndices,
4925                                             const VkDeviceSize * pOffsets ) const VULKAN_HPP_NOEXCEPT
4926    {
4927      return ::vkCmdSetDescriptorBufferOffsetsEXT( commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets );
4928    }
4929
4930    void vkCmdBindDescriptorBufferEmbeddedSamplersEXT( VkCommandBuffer     commandBuffer,
4931                                                       VkPipelineBindPoint pipelineBindPoint,
4932                                                       VkPipelineLayout    layout,
4933                                                       uint32_t            set ) const VULKAN_HPP_NOEXCEPT
4934    {
4935      return ::vkCmdBindDescriptorBufferEmbeddedSamplersEXT( commandBuffer, pipelineBindPoint, layout, set );
4936    }
4937
4938    VkResult
4939      vkGetBufferOpaqueCaptureDescriptorDataEXT( VkDevice device, const VkBufferCaptureDescriptorDataInfoEXT * pInfo, void * pData ) const VULKAN_HPP_NOEXCEPT
4940    {
4941      return ::vkGetBufferOpaqueCaptureDescriptorDataEXT( device, pInfo, pData );
4942    }
4943
4944    VkResult
4945      vkGetImageOpaqueCaptureDescriptorDataEXT( VkDevice device, const VkImageCaptureDescriptorDataInfoEXT * pInfo, void * pData ) const VULKAN_HPP_NOEXCEPT
4946    {
4947      return ::vkGetImageOpaqueCaptureDescriptorDataEXT( device, pInfo, pData );
4948    }
4949
4950    VkResult vkGetImageViewOpaqueCaptureDescriptorDataEXT( VkDevice                                        device,
4951                                                           const VkImageViewCaptureDescriptorDataInfoEXT * pInfo,
4952                                                           void *                                          pData ) const VULKAN_HPP_NOEXCEPT
4953    {
4954      return ::vkGetImageViewOpaqueCaptureDescriptorDataEXT( device, pInfo, pData );
4955    }
4956
4957    VkResult
4958      vkGetSamplerOpaqueCaptureDescriptorDataEXT( VkDevice device, const VkSamplerCaptureDescriptorDataInfoEXT * pInfo, void * pData ) const VULKAN_HPP_NOEXCEPT
4959    {
4960      return ::vkGetSamplerOpaqueCaptureDescriptorDataEXT( device, pInfo, pData );
4961    }
4962
4963    VkResult vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT( VkDevice                                                    device,
4964                                                                       const VkAccelerationStructureCaptureDescriptorDataInfoEXT * pInfo,
4965                                                                       void * pData ) const VULKAN_HPP_NOEXCEPT
4966    {
4967      return ::vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT( device, pInfo, pData );
4968    }
4969
4970    //=== VK_NV_fragment_shading_rate_enums ===
4971
4972    void vkCmdSetFragmentShadingRateEnumNV( VkCommandBuffer                          commandBuffer,
4973                                            VkFragmentShadingRateNV                  shadingRate,
4974                                            const VkFragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT
4975    {
4976      return ::vkCmdSetFragmentShadingRateEnumNV( commandBuffer, shadingRate, combinerOps );
4977    }
4978
4979    //=== VK_EXT_mesh_shader ===
4980
4981    void vkCmdDrawMeshTasksEXT( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT
4982    {
4983      return ::vkCmdDrawMeshTasksEXT( commandBuffer, groupCountX, groupCountY, groupCountZ );
4984    }
4985
4986    void vkCmdDrawMeshTasksIndirectEXT( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const
4987      VULKAN_HPP_NOEXCEPT
4988    {
4989      return ::vkCmdDrawMeshTasksIndirectEXT( commandBuffer, buffer, offset, drawCount, stride );
4990    }
4991
4992    void vkCmdDrawMeshTasksIndirectCountEXT( VkCommandBuffer commandBuffer,
4993                                             VkBuffer        buffer,
4994                                             VkDeviceSize    offset,
4995                                             VkBuffer        countBuffer,
4996                                             VkDeviceSize    countBufferOffset,
4997                                             uint32_t        maxDrawCount,
4998                                             uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
4999    {
5000      return ::vkCmdDrawMeshTasksIndirectCountEXT( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
5001    }
5002
5003    //=== VK_KHR_copy_commands2 ===
5004
5005    void vkCmdCopyBuffer2KHR( VkCommandBuffer commandBuffer, const VkCopyBufferInfo2 * pCopyBufferInfo ) const VULKAN_HPP_NOEXCEPT
5006    {
5007      return ::vkCmdCopyBuffer2KHR( commandBuffer, pCopyBufferInfo );
5008    }
5009
5010    void vkCmdCopyImage2KHR( VkCommandBuffer commandBuffer, const VkCopyImageInfo2 * pCopyImageInfo ) const VULKAN_HPP_NOEXCEPT
5011    {
5012      return ::vkCmdCopyImage2KHR( commandBuffer, pCopyImageInfo );
5013    }
5014
5015    void vkCmdCopyBufferToImage2KHR( VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT
5016    {
5017      return ::vkCmdCopyBufferToImage2KHR( commandBuffer, pCopyBufferToImageInfo );
5018    }
5019
5020    void vkCmdCopyImageToBuffer2KHR( VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT
5021    {
5022      return ::vkCmdCopyImageToBuffer2KHR( commandBuffer, pCopyImageToBufferInfo );
5023    }
5024
5025    void vkCmdBlitImage2KHR( VkCommandBuffer commandBuffer, const VkBlitImageInfo2 * pBlitImageInfo ) const VULKAN_HPP_NOEXCEPT
5026    {
5027      return ::vkCmdBlitImage2KHR( commandBuffer, pBlitImageInfo );
5028    }
5029
5030    void vkCmdResolveImage2KHR( VkCommandBuffer commandBuffer, const VkResolveImageInfo2 * pResolveImageInfo ) const VULKAN_HPP_NOEXCEPT
5031    {
5032      return ::vkCmdResolveImage2KHR( commandBuffer, pResolveImageInfo );
5033    }
5034
5035    //=== VK_EXT_device_fault ===
5036
5037    VkResult vkGetDeviceFaultInfoEXT( VkDevice device, VkDeviceFaultCountsEXT * pFaultCounts, VkDeviceFaultInfoEXT * pFaultInfo ) const VULKAN_HPP_NOEXCEPT
5038    {
5039      return ::vkGetDeviceFaultInfoEXT( device, pFaultCounts, pFaultInfo );
5040    }
5041
5042#  if defined( VK_USE_PLATFORM_WIN32_KHR )
5043    //=== VK_NV_acquire_winrt_display ===
5044
5045    VkResult vkAcquireWinrtDisplayNV( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
5046    {
5047      return ::vkAcquireWinrtDisplayNV( physicalDevice, display );
5048    }
5049
5050    VkResult vkGetWinrtDisplayNV( VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR * pDisplay ) const VULKAN_HPP_NOEXCEPT
5051    {
5052      return ::vkGetWinrtDisplayNV( physicalDevice, deviceRelativeId, pDisplay );
5053    }
5054#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
5055
5056#  if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
5057    //=== VK_EXT_directfb_surface ===
5058
5059    VkResult vkCreateDirectFBSurfaceEXT( VkInstance                             instance,
5060                                         const VkDirectFBSurfaceCreateInfoEXT * pCreateInfo,
5061                                         const VkAllocationCallbacks *          pAllocator,
5062                                         VkSurfaceKHR *                         pSurface ) const VULKAN_HPP_NOEXCEPT
5063    {
5064      return ::vkCreateDirectFBSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
5065    }
5066
5067    VkBool32
5068      vkGetPhysicalDeviceDirectFBPresentationSupportEXT( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, IDirectFB * dfb ) const VULKAN_HPP_NOEXCEPT
5069    {
5070      return ::vkGetPhysicalDeviceDirectFBPresentationSupportEXT( physicalDevice, queueFamilyIndex, dfb );
5071    }
5072#  endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
5073
5074    //=== VK_EXT_vertex_input_dynamic_state ===
5075
5076    void vkCmdSetVertexInputEXT( VkCommandBuffer                               commandBuffer,
5077                                 uint32_t                                      vertexBindingDescriptionCount,
5078                                 const VkVertexInputBindingDescription2EXT *   pVertexBindingDescriptions,
5079                                 uint32_t                                      vertexAttributeDescriptionCount,
5080                                 const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) const VULKAN_HPP_NOEXCEPT
5081    {
5082      return ::vkCmdSetVertexInputEXT(
5083        commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions );
5084    }
5085
5086#  if defined( VK_USE_PLATFORM_FUCHSIA )
5087    //=== VK_FUCHSIA_external_memory ===
5088
5089    VkResult vkGetMemoryZirconHandleFUCHSIA( VkDevice                                   device,
5090                                             const VkMemoryGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo,
5091                                             zx_handle_t *                              pZirconHandle ) const VULKAN_HPP_NOEXCEPT
5092    {
5093      return ::vkGetMemoryZirconHandleFUCHSIA( device, pGetZirconHandleInfo, pZirconHandle );
5094    }
5095
5096    VkResult vkGetMemoryZirconHandlePropertiesFUCHSIA( VkDevice                                device,
5097                                                       VkExternalMemoryHandleTypeFlagBits      handleType,
5098                                                       zx_handle_t                             zirconHandle,
5099                                                       VkMemoryZirconHandlePropertiesFUCHSIA * pMemoryZirconHandleProperties ) const VULKAN_HPP_NOEXCEPT
5100    {
5101      return ::vkGetMemoryZirconHandlePropertiesFUCHSIA( device, handleType, zirconHandle, pMemoryZirconHandleProperties );
5102    }
5103#  endif /*VK_USE_PLATFORM_FUCHSIA*/
5104
5105#  if defined( VK_USE_PLATFORM_FUCHSIA )
5106    //=== VK_FUCHSIA_external_semaphore ===
5107
5108    VkResult vkImportSemaphoreZirconHandleFUCHSIA( VkDevice                                         device,
5109                                                   const VkImportSemaphoreZirconHandleInfoFUCHSIA * pImportSemaphoreZirconHandleInfo ) const VULKAN_HPP_NOEXCEPT
5110    {
5111      return ::vkImportSemaphoreZirconHandleFUCHSIA( device, pImportSemaphoreZirconHandleInfo );
5112    }
5113
5114    VkResult vkGetSemaphoreZirconHandleFUCHSIA( VkDevice                                      device,
5115                                                const VkSemaphoreGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo,
5116                                                zx_handle_t *                                 pZirconHandle ) const VULKAN_HPP_NOEXCEPT
5117    {
5118      return ::vkGetSemaphoreZirconHandleFUCHSIA( device, pGetZirconHandleInfo, pZirconHandle );
5119    }
5120#  endif /*VK_USE_PLATFORM_FUCHSIA*/
5121
5122#  if defined( VK_USE_PLATFORM_FUCHSIA )
5123    //=== VK_FUCHSIA_buffer_collection ===
5124
5125    VkResult vkCreateBufferCollectionFUCHSIA( VkDevice                                    device,
5126                                              const VkBufferCollectionCreateInfoFUCHSIA * pCreateInfo,
5127                                              const VkAllocationCallbacks *               pAllocator,
5128                                              VkBufferCollectionFUCHSIA *                 pCollection ) const VULKAN_HPP_NOEXCEPT
5129    {
5130      return ::vkCreateBufferCollectionFUCHSIA( device, pCreateInfo, pAllocator, pCollection );
5131    }
5132
5133    VkResult vkSetBufferCollectionImageConstraintsFUCHSIA( VkDevice                              device,
5134                                                           VkBufferCollectionFUCHSIA             collection,
5135                                                           const VkImageConstraintsInfoFUCHSIA * pImageConstraintsInfo ) const VULKAN_HPP_NOEXCEPT
5136    {
5137      return ::vkSetBufferCollectionImageConstraintsFUCHSIA( device, collection, pImageConstraintsInfo );
5138    }
5139
5140    VkResult vkSetBufferCollectionBufferConstraintsFUCHSIA( VkDevice                               device,
5141                                                            VkBufferCollectionFUCHSIA              collection,
5142                                                            const VkBufferConstraintsInfoFUCHSIA * pBufferConstraintsInfo ) const VULKAN_HPP_NOEXCEPT
5143    {
5144      return ::vkSetBufferCollectionBufferConstraintsFUCHSIA( device, collection, pBufferConstraintsInfo );
5145    }
5146
5147    void vkDestroyBufferCollectionFUCHSIA( VkDevice                      device,
5148                                           VkBufferCollectionFUCHSIA     collection,
5149                                           const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
5150    {
5151      return ::vkDestroyBufferCollectionFUCHSIA( device, collection, pAllocator );
5152    }
5153
5154    VkResult vkGetBufferCollectionPropertiesFUCHSIA( VkDevice                              device,
5155                                                     VkBufferCollectionFUCHSIA             collection,
5156                                                     VkBufferCollectionPropertiesFUCHSIA * pProperties ) const VULKAN_HPP_NOEXCEPT
5157    {
5158      return ::vkGetBufferCollectionPropertiesFUCHSIA( device, collection, pProperties );
5159    }
5160#  endif /*VK_USE_PLATFORM_FUCHSIA*/
5161
5162    //=== VK_HUAWEI_subpass_shading ===
5163
5164    VkResult
5165      vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( VkDevice device, VkRenderPass renderpass, VkExtent2D * pMaxWorkgroupSize ) const VULKAN_HPP_NOEXCEPT
5166    {
5167      return ::vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( device, renderpass, pMaxWorkgroupSize );
5168    }
5169
5170    void vkCmdSubpassShadingHUAWEI( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
5171    {
5172      return ::vkCmdSubpassShadingHUAWEI( commandBuffer );
5173    }
5174
5175    //=== VK_HUAWEI_invocation_mask ===
5176
5177    void vkCmdBindInvocationMaskHUAWEI( VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT
5178    {
5179      return ::vkCmdBindInvocationMaskHUAWEI( commandBuffer, imageView, imageLayout );
5180    }
5181
5182    //=== VK_NV_external_memory_rdma ===
5183
5184    VkResult vkGetMemoryRemoteAddressNV( VkDevice                               device,
5185                                         const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo,
5186                                         VkRemoteAddressNV *                    pAddress ) const VULKAN_HPP_NOEXCEPT
5187    {
5188      return ::vkGetMemoryRemoteAddressNV( device, pMemoryGetRemoteAddressInfo, pAddress );
5189    }
5190
5191    //=== VK_EXT_pipeline_properties ===
5192
5193    VkResult
5194      vkGetPipelinePropertiesEXT( VkDevice device, const VkPipelineInfoEXT * pPipelineInfo, VkBaseOutStructure * pPipelineProperties ) const VULKAN_HPP_NOEXCEPT
5195    {
5196      return ::vkGetPipelinePropertiesEXT( device, pPipelineInfo, pPipelineProperties );
5197    }
5198
5199    //=== VK_EXT_extended_dynamic_state2 ===
5200
5201    void vkCmdSetPatchControlPointsEXT( VkCommandBuffer commandBuffer, uint32_t patchControlPoints ) const VULKAN_HPP_NOEXCEPT
5202    {
5203      return ::vkCmdSetPatchControlPointsEXT( commandBuffer, patchControlPoints );
5204    }
5205
5206    void vkCmdSetRasterizerDiscardEnableEXT( VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable ) const VULKAN_HPP_NOEXCEPT
5207    {
5208      return ::vkCmdSetRasterizerDiscardEnableEXT( commandBuffer, rasterizerDiscardEnable );
5209    }
5210
5211    void vkCmdSetDepthBiasEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable ) const VULKAN_HPP_NOEXCEPT
5212    {
5213      return ::vkCmdSetDepthBiasEnableEXT( commandBuffer, depthBiasEnable );
5214    }
5215
5216    void vkCmdSetLogicOpEXT( VkCommandBuffer commandBuffer, VkLogicOp logicOp ) const VULKAN_HPP_NOEXCEPT
5217    {
5218      return ::vkCmdSetLogicOpEXT( commandBuffer, logicOp );
5219    }
5220
5221    void vkCmdSetPrimitiveRestartEnableEXT( VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable ) const VULKAN_HPP_NOEXCEPT
5222    {
5223      return ::vkCmdSetPrimitiveRestartEnableEXT( commandBuffer, primitiveRestartEnable );
5224    }
5225
5226#  if defined( VK_USE_PLATFORM_SCREEN_QNX )
5227    //=== VK_QNX_screen_surface ===
5228
5229    VkResult vkCreateScreenSurfaceQNX( VkInstance                           instance,
5230                                       const VkScreenSurfaceCreateInfoQNX * pCreateInfo,
5231                                       const VkAllocationCallbacks *        pAllocator,
5232                                       VkSurfaceKHR *                       pSurface ) const VULKAN_HPP_NOEXCEPT
5233    {
5234      return ::vkCreateScreenSurfaceQNX( instance, pCreateInfo, pAllocator, pSurface );
5235    }
5236
5237    VkBool32 vkGetPhysicalDeviceScreenPresentationSupportQNX( VkPhysicalDevice        physicalDevice,
5238                                                              uint32_t                queueFamilyIndex,
5239                                                              struct _screen_window * window ) const VULKAN_HPP_NOEXCEPT
5240    {
5241      return ::vkGetPhysicalDeviceScreenPresentationSupportQNX( physicalDevice, queueFamilyIndex, window );
5242    }
5243#  endif /*VK_USE_PLATFORM_SCREEN_QNX*/
5244
5245    //=== VK_EXT_color_write_enable ===
5246
5247    void vkCmdSetColorWriteEnableEXT( VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32 * pColorWriteEnables ) const VULKAN_HPP_NOEXCEPT
5248    {
5249      return ::vkCmdSetColorWriteEnableEXT( commandBuffer, attachmentCount, pColorWriteEnables );
5250    }
5251
5252    //=== VK_KHR_ray_tracing_maintenance1 ===
5253
5254    void vkCmdTraceRaysIndirect2KHR( VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT
5255    {
5256      return ::vkCmdTraceRaysIndirect2KHR( commandBuffer, indirectDeviceAddress );
5257    }
5258
5259    //=== VK_EXT_multi_draw ===
5260
5261    void vkCmdDrawMultiEXT( VkCommandBuffer            commandBuffer,
5262                            uint32_t                   drawCount,
5263                            const VkMultiDrawInfoEXT * pVertexInfo,
5264                            uint32_t                   instanceCount,
5265                            uint32_t                   firstInstance,
5266                            uint32_t                   stride ) const VULKAN_HPP_NOEXCEPT
5267    {
5268      return ::vkCmdDrawMultiEXT( commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride );
5269    }
5270
5271    void vkCmdDrawMultiIndexedEXT( VkCommandBuffer                   commandBuffer,
5272                                   uint32_t                          drawCount,
5273                                   const VkMultiDrawIndexedInfoEXT * pIndexInfo,
5274                                   uint32_t                          instanceCount,
5275                                   uint32_t                          firstInstance,
5276                                   uint32_t                          stride,
5277                                   const int32_t *                   pVertexOffset ) const VULKAN_HPP_NOEXCEPT
5278    {
5279      return ::vkCmdDrawMultiIndexedEXT( commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset );
5280    }
5281
5282    //=== VK_EXT_opacity_micromap ===
5283
5284    VkResult vkCreateMicromapEXT( VkDevice                        device,
5285                                  const VkMicromapCreateInfoEXT * pCreateInfo,
5286                                  const VkAllocationCallbacks *   pAllocator,
5287                                  VkMicromapEXT *                 pMicromap ) const VULKAN_HPP_NOEXCEPT
5288    {
5289      return ::vkCreateMicromapEXT( device, pCreateInfo, pAllocator, pMicromap );
5290    }
5291
5292    void vkDestroyMicromapEXT( VkDevice device, VkMicromapEXT micromap, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
5293    {
5294      return ::vkDestroyMicromapEXT( device, micromap, pAllocator );
5295    }
5296
5297    void vkCmdBuildMicromapsEXT( VkCommandBuffer commandBuffer, uint32_t infoCount, const VkMicromapBuildInfoEXT * pInfos ) const VULKAN_HPP_NOEXCEPT
5298    {
5299      return ::vkCmdBuildMicromapsEXT( commandBuffer, infoCount, pInfos );
5300    }
5301
5302    VkResult vkBuildMicromapsEXT( VkDevice                       device,
5303                                  VkDeferredOperationKHR         deferredOperation,
5304                                  uint32_t                       infoCount,
5305                                  const VkMicromapBuildInfoEXT * pInfos ) const VULKAN_HPP_NOEXCEPT
5306    {
5307      return ::vkBuildMicromapsEXT( device, deferredOperation, infoCount, pInfos );
5308    }
5309
5310    VkResult vkCopyMicromapEXT( VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapInfoEXT * pInfo ) const VULKAN_HPP_NOEXCEPT
5311    {
5312      return ::vkCopyMicromapEXT( device, deferredOperation, pInfo );
5313    }
5314
5315    VkResult vkCopyMicromapToMemoryEXT( VkDevice                              device,
5316                                        VkDeferredOperationKHR                deferredOperation,
5317                                        const VkCopyMicromapToMemoryInfoEXT * pInfo ) const VULKAN_HPP_NOEXCEPT
5318    {
5319      return ::vkCopyMicromapToMemoryEXT( device, deferredOperation, pInfo );
5320    }
5321
5322    VkResult vkCopyMemoryToMicromapEXT( VkDevice                              device,
5323                                        VkDeferredOperationKHR                deferredOperation,
5324                                        const VkCopyMemoryToMicromapInfoEXT * pInfo ) const VULKAN_HPP_NOEXCEPT
5325    {
5326      return ::vkCopyMemoryToMicromapEXT( device, deferredOperation, pInfo );
5327    }
5328
5329    VkResult vkWriteMicromapsPropertiesEXT( VkDevice              device,
5330                                            uint32_t              micromapCount,
5331                                            const VkMicromapEXT * pMicromaps,
5332                                            VkQueryType           queryType,
5333                                            size_t                dataSize,
5334                                            void *                pData,
5335                                            size_t                stride ) const VULKAN_HPP_NOEXCEPT
5336    {
5337      return ::vkWriteMicromapsPropertiesEXT( device, micromapCount, pMicromaps, queryType, dataSize, pData, stride );
5338    }
5339
5340    void vkCmdCopyMicromapEXT( VkCommandBuffer commandBuffer, const VkCopyMicromapInfoEXT * pInfo ) const VULKAN_HPP_NOEXCEPT
5341    {
5342      return ::vkCmdCopyMicromapEXT( commandBuffer, pInfo );
5343    }
5344
5345    void vkCmdCopyMicromapToMemoryEXT( VkCommandBuffer commandBuffer, const VkCopyMicromapToMemoryInfoEXT * pInfo ) const VULKAN_HPP_NOEXCEPT
5346    {
5347      return ::vkCmdCopyMicromapToMemoryEXT( commandBuffer, pInfo );
5348    }
5349
5350    void vkCmdCopyMemoryToMicromapEXT( VkCommandBuffer commandBuffer, const VkCopyMemoryToMicromapInfoEXT * pInfo ) const VULKAN_HPP_NOEXCEPT
5351    {
5352      return ::vkCmdCopyMemoryToMicromapEXT( commandBuffer, pInfo );
5353    }
5354
5355    void vkCmdWriteMicromapsPropertiesEXT( VkCommandBuffer       commandBuffer,
5356                                           uint32_t              micromapCount,
5357                                           const VkMicromapEXT * pMicromaps,
5358                                           VkQueryType           queryType,
5359                                           VkQueryPool           queryPool,
5360                                           uint32_t              firstQuery ) const VULKAN_HPP_NOEXCEPT
5361    {
5362      return ::vkCmdWriteMicromapsPropertiesEXT( commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery );
5363    }
5364
5365    void vkGetDeviceMicromapCompatibilityEXT( VkDevice                                  device,
5366                                              const VkMicromapVersionInfoEXT *          pVersionInfo,
5367                                              VkAccelerationStructureCompatibilityKHR * pCompatibility ) const VULKAN_HPP_NOEXCEPT
5368    {
5369      return ::vkGetDeviceMicromapCompatibilityEXT( device, pVersionInfo, pCompatibility );
5370    }
5371
5372    void vkGetMicromapBuildSizesEXT( VkDevice                            device,
5373                                     VkAccelerationStructureBuildTypeKHR buildType,
5374                                     const VkMicromapBuildInfoEXT *      pBuildInfo,
5375                                     VkMicromapBuildSizesInfoEXT *       pSizeInfo ) const VULKAN_HPP_NOEXCEPT
5376    {
5377      return ::vkGetMicromapBuildSizesEXT( device, buildType, pBuildInfo, pSizeInfo );
5378    }
5379
5380    //=== VK_HUAWEI_cluster_culling_shader ===
5381
5382    void vkCmdDrawClusterHUAWEI( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT
5383    {
5384      return ::vkCmdDrawClusterHUAWEI( commandBuffer, groupCountX, groupCountY, groupCountZ );
5385    }
5386
5387    void vkCmdDrawClusterIndirectHUAWEI( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset ) const VULKAN_HPP_NOEXCEPT
5388    {
5389      return ::vkCmdDrawClusterIndirectHUAWEI( commandBuffer, buffer, offset );
5390    }
5391
5392    //=== VK_EXT_pageable_device_local_memory ===
5393
5394    void vkSetDeviceMemoryPriorityEXT( VkDevice device, VkDeviceMemory memory, float priority ) const VULKAN_HPP_NOEXCEPT
5395    {
5396      return ::vkSetDeviceMemoryPriorityEXT( device, memory, priority );
5397    }
5398
5399    //=== VK_KHR_maintenance4 ===
5400
5401    void vkGetDeviceBufferMemoryRequirementsKHR( VkDevice                                 device,
5402                                                 const VkDeviceBufferMemoryRequirements * pInfo,
5403                                                 VkMemoryRequirements2 *                  pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
5404    {
5405      return ::vkGetDeviceBufferMemoryRequirementsKHR( device, pInfo, pMemoryRequirements );
5406    }
5407
5408    void vkGetDeviceImageMemoryRequirementsKHR( VkDevice                                device,
5409                                                const VkDeviceImageMemoryRequirements * pInfo,
5410                                                VkMemoryRequirements2 *                 pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
5411    {
5412      return ::vkGetDeviceImageMemoryRequirementsKHR( device, pInfo, pMemoryRequirements );
5413    }
5414
5415    void vkGetDeviceImageSparseMemoryRequirementsKHR( VkDevice                                device,
5416                                                      const VkDeviceImageMemoryRequirements * pInfo,
5417                                                      uint32_t *                              pSparseMemoryRequirementCount,
5418                                                      VkSparseImageMemoryRequirements2 *      pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
5419    {
5420      return ::vkGetDeviceImageSparseMemoryRequirementsKHR( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
5421    }
5422
5423    //=== VK_VALVE_descriptor_set_host_mapping ===
5424
5425    void vkGetDescriptorSetLayoutHostMappingInfoVALVE( VkDevice                                     device,
5426                                                       const VkDescriptorSetBindingReferenceVALVE * pBindingReference,
5427                                                       VkDescriptorSetLayoutHostMappingInfoVALVE *  pHostMapping ) const VULKAN_HPP_NOEXCEPT
5428    {
5429      return ::vkGetDescriptorSetLayoutHostMappingInfoVALVE( device, pBindingReference, pHostMapping );
5430    }
5431
5432    void vkGetDescriptorSetHostMappingVALVE( VkDevice device, VkDescriptorSet descriptorSet, void ** ppData ) const VULKAN_HPP_NOEXCEPT
5433    {
5434      return ::vkGetDescriptorSetHostMappingVALVE( device, descriptorSet, ppData );
5435    }
5436
5437    //=== VK_NV_copy_memory_indirect ===
5438
5439    void vkCmdCopyMemoryIndirectNV( VkCommandBuffer commandBuffer,
5440                                    VkDeviceAddress copyBufferAddress,
5441                                    uint32_t        copyCount,
5442                                    uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
5443    {
5444      return ::vkCmdCopyMemoryIndirectNV( commandBuffer, copyBufferAddress, copyCount, stride );
5445    }
5446
5447    void vkCmdCopyMemoryToImageIndirectNV( VkCommandBuffer                  commandBuffer,
5448                                           VkDeviceAddress                  copyBufferAddress,
5449                                           uint32_t                         copyCount,
5450                                           uint32_t                         stride,
5451                                           VkImage                          dstImage,
5452                                           VkImageLayout                    dstImageLayout,
5453                                           const VkImageSubresourceLayers * pImageSubresources ) const VULKAN_HPP_NOEXCEPT
5454    {
5455      return ::vkCmdCopyMemoryToImageIndirectNV( commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources );
5456    }
5457
5458    //=== VK_NV_memory_decompression ===
5459
5460    void vkCmdDecompressMemoryNV( VkCommandBuffer                    commandBuffer,
5461                                  uint32_t                           decompressRegionCount,
5462                                  const VkDecompressMemoryRegionNV * pDecompressMemoryRegions ) const VULKAN_HPP_NOEXCEPT
5463    {
5464      return ::vkCmdDecompressMemoryNV( commandBuffer, decompressRegionCount, pDecompressMemoryRegions );
5465    }
5466
5467    void vkCmdDecompressMemoryIndirectCountNV( VkCommandBuffer commandBuffer,
5468                                               VkDeviceAddress indirectCommandsAddress,
5469                                               VkDeviceAddress indirectCommandsCountAddress,
5470                                               uint32_t        stride ) const VULKAN_HPP_NOEXCEPT
5471    {
5472      return ::vkCmdDecompressMemoryIndirectCountNV( commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride );
5473    }
5474
5475    //=== VK_NV_device_generated_commands_compute ===
5476
5477    void vkGetPipelineIndirectMemoryRequirementsNV( VkDevice                            device,
5478                                                    const VkComputePipelineCreateInfo * pCreateInfo,
5479                                                    VkMemoryRequirements2 *             pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
5480    {
5481      return ::vkGetPipelineIndirectMemoryRequirementsNV( device, pCreateInfo, pMemoryRequirements );
5482    }
5483
5484    void
5485      vkCmdUpdatePipelineIndirectBufferNV( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline ) const VULKAN_HPP_NOEXCEPT
5486    {
5487      return ::vkCmdUpdatePipelineIndirectBufferNV( commandBuffer, pipelineBindPoint, pipeline );
5488    }
5489
5490    VkDeviceAddress vkGetPipelineIndirectDeviceAddressNV( VkDevice device, const VkPipelineIndirectDeviceAddressInfoNV * pInfo ) const VULKAN_HPP_NOEXCEPT
5491    {
5492      return ::vkGetPipelineIndirectDeviceAddressNV( device, pInfo );
5493    }
5494
5495    //=== VK_EXT_extended_dynamic_state3 ===
5496
5497    void vkCmdSetTessellationDomainOriginEXT( VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin ) const VULKAN_HPP_NOEXCEPT
5498    {
5499      return ::vkCmdSetTessellationDomainOriginEXT( commandBuffer, domainOrigin );
5500    }
5501
5502    void vkCmdSetDepthClampEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthClampEnable ) const VULKAN_HPP_NOEXCEPT
5503    {
5504      return ::vkCmdSetDepthClampEnableEXT( commandBuffer, depthClampEnable );
5505    }
5506
5507    void vkCmdSetPolygonModeEXT( VkCommandBuffer commandBuffer, VkPolygonMode polygonMode ) const VULKAN_HPP_NOEXCEPT
5508    {
5509      return ::vkCmdSetPolygonModeEXT( commandBuffer, polygonMode );
5510    }
5511
5512    void vkCmdSetRasterizationSamplesEXT( VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples ) const VULKAN_HPP_NOEXCEPT
5513    {
5514      return ::vkCmdSetRasterizationSamplesEXT( commandBuffer, rasterizationSamples );
5515    }
5516
5517    void vkCmdSetSampleMaskEXT( VkCommandBuffer commandBuffer, VkSampleCountFlagBits samples, const VkSampleMask * pSampleMask ) const VULKAN_HPP_NOEXCEPT
5518    {
5519      return ::vkCmdSetSampleMaskEXT( commandBuffer, samples, pSampleMask );
5520    }
5521
5522    void vkCmdSetAlphaToCoverageEnableEXT( VkCommandBuffer commandBuffer, VkBool32 alphaToCoverageEnable ) const VULKAN_HPP_NOEXCEPT
5523    {
5524      return ::vkCmdSetAlphaToCoverageEnableEXT( commandBuffer, alphaToCoverageEnable );
5525    }
5526
5527    void vkCmdSetAlphaToOneEnableEXT( VkCommandBuffer commandBuffer, VkBool32 alphaToOneEnable ) const VULKAN_HPP_NOEXCEPT
5528    {
5529      return ::vkCmdSetAlphaToOneEnableEXT( commandBuffer, alphaToOneEnable );
5530    }
5531
5532    void vkCmdSetLogicOpEnableEXT( VkCommandBuffer commandBuffer, VkBool32 logicOpEnable ) const VULKAN_HPP_NOEXCEPT
5533    {
5534      return ::vkCmdSetLogicOpEnableEXT( commandBuffer, logicOpEnable );
5535    }
5536
5537    void vkCmdSetColorBlendEnableEXT( VkCommandBuffer  commandBuffer,
5538                                      uint32_t         firstAttachment,
5539                                      uint32_t         attachmentCount,
5540                                      const VkBool32 * pColorBlendEnables ) const VULKAN_HPP_NOEXCEPT
5541    {
5542      return ::vkCmdSetColorBlendEnableEXT( commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables );
5543    }
5544
5545    void vkCmdSetColorBlendEquationEXT( VkCommandBuffer                 commandBuffer,
5546                                        uint32_t                        firstAttachment,
5547                                        uint32_t                        attachmentCount,
5548                                        const VkColorBlendEquationEXT * pColorBlendEquations ) const VULKAN_HPP_NOEXCEPT
5549    {
5550      return ::vkCmdSetColorBlendEquationEXT( commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations );
5551    }
5552
5553    void vkCmdSetColorWriteMaskEXT( VkCommandBuffer               commandBuffer,
5554                                    uint32_t                      firstAttachment,
5555                                    uint32_t                      attachmentCount,
5556                                    const VkColorComponentFlags * pColorWriteMasks ) const VULKAN_HPP_NOEXCEPT
5557    {
5558      return ::vkCmdSetColorWriteMaskEXT( commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks );
5559    }
5560
5561    void vkCmdSetRasterizationStreamEXT( VkCommandBuffer commandBuffer, uint32_t rasterizationStream ) const VULKAN_HPP_NOEXCEPT
5562    {
5563      return ::vkCmdSetRasterizationStreamEXT( commandBuffer, rasterizationStream );
5564    }
5565
5566    void vkCmdSetConservativeRasterizationModeEXT( VkCommandBuffer                    commandBuffer,
5567                                                   VkConservativeRasterizationModeEXT conservativeRasterizationMode ) const VULKAN_HPP_NOEXCEPT
5568    {
5569      return ::vkCmdSetConservativeRasterizationModeEXT( commandBuffer, conservativeRasterizationMode );
5570    }
5571
5572    void vkCmdSetExtraPrimitiveOverestimationSizeEXT( VkCommandBuffer commandBuffer, float extraPrimitiveOverestimationSize ) const VULKAN_HPP_NOEXCEPT
5573    {
5574      return ::vkCmdSetExtraPrimitiveOverestimationSizeEXT( commandBuffer, extraPrimitiveOverestimationSize );
5575    }
5576
5577    void vkCmdSetDepthClipEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthClipEnable ) const VULKAN_HPP_NOEXCEPT
5578    {
5579      return ::vkCmdSetDepthClipEnableEXT( commandBuffer, depthClipEnable );
5580    }
5581
5582    void vkCmdSetSampleLocationsEnableEXT( VkCommandBuffer commandBuffer, VkBool32 sampleLocationsEnable ) const VULKAN_HPP_NOEXCEPT
5583    {
5584      return ::vkCmdSetSampleLocationsEnableEXT( commandBuffer, sampleLocationsEnable );
5585    }
5586
5587    void vkCmdSetColorBlendAdvancedEXT( VkCommandBuffer                 commandBuffer,
5588                                        uint32_t                        firstAttachment,
5589                                        uint32_t                        attachmentCount,
5590                                        const VkColorBlendAdvancedEXT * pColorBlendAdvanced ) const VULKAN_HPP_NOEXCEPT
5591    {
5592      return ::vkCmdSetColorBlendAdvancedEXT( commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced );
5593    }
5594
5595    void vkCmdSetProvokingVertexModeEXT( VkCommandBuffer commandBuffer, VkProvokingVertexModeEXT provokingVertexMode ) const VULKAN_HPP_NOEXCEPT
5596    {
5597      return ::vkCmdSetProvokingVertexModeEXT( commandBuffer, provokingVertexMode );
5598    }
5599
5600    void vkCmdSetLineRasterizationModeEXT( VkCommandBuffer commandBuffer, VkLineRasterizationModeEXT lineRasterizationMode ) const VULKAN_HPP_NOEXCEPT
5601    {
5602      return ::vkCmdSetLineRasterizationModeEXT( commandBuffer, lineRasterizationMode );
5603    }
5604
5605    void vkCmdSetLineStippleEnableEXT( VkCommandBuffer commandBuffer, VkBool32 stippledLineEnable ) const VULKAN_HPP_NOEXCEPT
5606    {
5607      return ::vkCmdSetLineStippleEnableEXT( commandBuffer, stippledLineEnable );
5608    }
5609
5610    void vkCmdSetDepthClipNegativeOneToOneEXT( VkCommandBuffer commandBuffer, VkBool32 negativeOneToOne ) const VULKAN_HPP_NOEXCEPT
5611    {
5612      return ::vkCmdSetDepthClipNegativeOneToOneEXT( commandBuffer, negativeOneToOne );
5613    }
5614
5615    void vkCmdSetViewportWScalingEnableNV( VkCommandBuffer commandBuffer, VkBool32 viewportWScalingEnable ) const VULKAN_HPP_NOEXCEPT
5616    {
5617      return ::vkCmdSetViewportWScalingEnableNV( commandBuffer, viewportWScalingEnable );
5618    }
5619
5620    void vkCmdSetViewportSwizzleNV( VkCommandBuffer             commandBuffer,
5621                                    uint32_t                    firstViewport,
5622                                    uint32_t                    viewportCount,
5623                                    const VkViewportSwizzleNV * pViewportSwizzles ) const VULKAN_HPP_NOEXCEPT
5624    {
5625      return ::vkCmdSetViewportSwizzleNV( commandBuffer, firstViewport, viewportCount, pViewportSwizzles );
5626    }
5627
5628    void vkCmdSetCoverageToColorEnableNV( VkCommandBuffer commandBuffer, VkBool32 coverageToColorEnable ) const VULKAN_HPP_NOEXCEPT
5629    {
5630      return ::vkCmdSetCoverageToColorEnableNV( commandBuffer, coverageToColorEnable );
5631    }
5632
5633    void vkCmdSetCoverageToColorLocationNV( VkCommandBuffer commandBuffer, uint32_t coverageToColorLocation ) const VULKAN_HPP_NOEXCEPT
5634    {
5635      return ::vkCmdSetCoverageToColorLocationNV( commandBuffer, coverageToColorLocation );
5636    }
5637
5638    void vkCmdSetCoverageModulationModeNV( VkCommandBuffer commandBuffer, VkCoverageModulationModeNV coverageModulationMode ) const VULKAN_HPP_NOEXCEPT
5639    {
5640      return ::vkCmdSetCoverageModulationModeNV( commandBuffer, coverageModulationMode );
5641    }
5642
5643    void vkCmdSetCoverageModulationTableEnableNV( VkCommandBuffer commandBuffer, VkBool32 coverageModulationTableEnable ) const VULKAN_HPP_NOEXCEPT
5644    {
5645      return ::vkCmdSetCoverageModulationTableEnableNV( commandBuffer, coverageModulationTableEnable );
5646    }
5647
5648    void vkCmdSetCoverageModulationTableNV( VkCommandBuffer commandBuffer,
5649                                            uint32_t        coverageModulationTableCount,
5650                                            const float *   pCoverageModulationTable ) const VULKAN_HPP_NOEXCEPT
5651    {
5652      return ::vkCmdSetCoverageModulationTableNV( commandBuffer, coverageModulationTableCount, pCoverageModulationTable );
5653    }
5654
5655    void vkCmdSetShadingRateImageEnableNV( VkCommandBuffer commandBuffer, VkBool32 shadingRateImageEnable ) const VULKAN_HPP_NOEXCEPT
5656    {
5657      return ::vkCmdSetShadingRateImageEnableNV( commandBuffer, shadingRateImageEnable );
5658    }
5659
5660    void vkCmdSetRepresentativeFragmentTestEnableNV( VkCommandBuffer commandBuffer, VkBool32 representativeFragmentTestEnable ) const VULKAN_HPP_NOEXCEPT
5661    {
5662      return ::vkCmdSetRepresentativeFragmentTestEnableNV( commandBuffer, representativeFragmentTestEnable );
5663    }
5664
5665    void vkCmdSetCoverageReductionModeNV( VkCommandBuffer commandBuffer, VkCoverageReductionModeNV coverageReductionMode ) const VULKAN_HPP_NOEXCEPT
5666    {
5667      return ::vkCmdSetCoverageReductionModeNV( commandBuffer, coverageReductionMode );
5668    }
5669
5670    //=== VK_EXT_shader_module_identifier ===
5671
5672    void vkGetShaderModuleIdentifierEXT( VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT * pIdentifier ) const VULKAN_HPP_NOEXCEPT
5673    {
5674      return ::vkGetShaderModuleIdentifierEXT( device, shaderModule, pIdentifier );
5675    }
5676
5677    void vkGetShaderModuleCreateInfoIdentifierEXT( VkDevice                         device,
5678                                                   const VkShaderModuleCreateInfo * pCreateInfo,
5679                                                   VkShaderModuleIdentifierEXT *    pIdentifier ) const VULKAN_HPP_NOEXCEPT
5680    {
5681      return ::vkGetShaderModuleCreateInfoIdentifierEXT( device, pCreateInfo, pIdentifier );
5682    }
5683
5684    //=== VK_NV_optical_flow ===
5685
5686    VkResult vkGetPhysicalDeviceOpticalFlowImageFormatsNV( VkPhysicalDevice                       physicalDevice,
5687                                                           const VkOpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo,
5688                                                           uint32_t *                             pFormatCount,
5689                                                           VkOpticalFlowImageFormatPropertiesNV * pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
5690    {
5691      return ::vkGetPhysicalDeviceOpticalFlowImageFormatsNV( physicalDevice, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties );
5692    }
5693
5694    VkResult vkCreateOpticalFlowSessionNV( VkDevice                                 device,
5695                                           const VkOpticalFlowSessionCreateInfoNV * pCreateInfo,
5696                                           const VkAllocationCallbacks *            pAllocator,
5697                                           VkOpticalFlowSessionNV *                 pSession ) const VULKAN_HPP_NOEXCEPT
5698    {
5699      return ::vkCreateOpticalFlowSessionNV( device, pCreateInfo, pAllocator, pSession );
5700    }
5701
5702    void vkDestroyOpticalFlowSessionNV( VkDevice device, VkOpticalFlowSessionNV session, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
5703    {
5704      return ::vkDestroyOpticalFlowSessionNV( device, session, pAllocator );
5705    }
5706
5707    VkResult vkBindOpticalFlowSessionImageNV( VkDevice                           device,
5708                                              VkOpticalFlowSessionNV             session,
5709                                              VkOpticalFlowSessionBindingPointNV bindingPoint,
5710                                              VkImageView                        view,
5711                                              VkImageLayout                      layout ) const VULKAN_HPP_NOEXCEPT
5712    {
5713      return ::vkBindOpticalFlowSessionImageNV( device, session, bindingPoint, view, layout );
5714    }
5715
5716    void vkCmdOpticalFlowExecuteNV( VkCommandBuffer                    commandBuffer,
5717                                    VkOpticalFlowSessionNV             session,
5718                                    const VkOpticalFlowExecuteInfoNV * pExecuteInfo ) const VULKAN_HPP_NOEXCEPT
5719    {
5720      return ::vkCmdOpticalFlowExecuteNV( commandBuffer, session, pExecuteInfo );
5721    }
5722
5723    //=== VK_KHR_maintenance5 ===
5724
5725    void vkCmdBindIndexBuffer2KHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType ) const
5726      VULKAN_HPP_NOEXCEPT
5727    {
5728      return ::vkCmdBindIndexBuffer2KHR( commandBuffer, buffer, offset, size, indexType );
5729    }
5730
5731    void vkGetRenderingAreaGranularityKHR( VkDevice                       device,
5732                                           const VkRenderingAreaInfoKHR * pRenderingAreaInfo,
5733                                           VkExtent2D *                   pGranularity ) const VULKAN_HPP_NOEXCEPT
5734    {
5735      return ::vkGetRenderingAreaGranularityKHR( device, pRenderingAreaInfo, pGranularity );
5736    }
5737
5738    void vkGetDeviceImageSubresourceLayoutKHR( VkDevice                                device,
5739                                               const VkDeviceImageSubresourceInfoKHR * pInfo,
5740                                               VkSubresourceLayout2KHR *               pLayout ) const VULKAN_HPP_NOEXCEPT
5741    {
5742      return ::vkGetDeviceImageSubresourceLayoutKHR( device, pInfo, pLayout );
5743    }
5744
5745    void vkGetImageSubresourceLayout2KHR( VkDevice                       device,
5746                                          VkImage                        image,
5747                                          const VkImageSubresource2KHR * pSubresource,
5748                                          VkSubresourceLayout2KHR *      pLayout ) const VULKAN_HPP_NOEXCEPT
5749    {
5750      return ::vkGetImageSubresourceLayout2KHR( device, image, pSubresource, pLayout );
5751    }
5752
5753    //=== VK_EXT_shader_object ===
5754
5755    VkResult vkCreateShadersEXT( VkDevice                      device,
5756                                 uint32_t                      createInfoCount,
5757                                 const VkShaderCreateInfoEXT * pCreateInfos,
5758                                 const VkAllocationCallbacks * pAllocator,
5759                                 VkShaderEXT *                 pShaders ) const VULKAN_HPP_NOEXCEPT
5760    {
5761      return ::vkCreateShadersEXT( device, createInfoCount, pCreateInfos, pAllocator, pShaders );
5762    }
5763
5764    void vkDestroyShaderEXT( VkDevice device, VkShaderEXT shader, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
5765    {
5766      return ::vkDestroyShaderEXT( device, shader, pAllocator );
5767    }
5768
5769    VkResult vkGetShaderBinaryDataEXT( VkDevice device, VkShaderEXT shader, size_t * pDataSize, void * pData ) const VULKAN_HPP_NOEXCEPT
5770    {
5771      return ::vkGetShaderBinaryDataEXT( device, shader, pDataSize, pData );
5772    }
5773
5774    void vkCmdBindShadersEXT( VkCommandBuffer               commandBuffer,
5775                              uint32_t                      stageCount,
5776                              const VkShaderStageFlagBits * pStages,
5777                              const VkShaderEXT *           pShaders ) const VULKAN_HPP_NOEXCEPT
5778    {
5779      return ::vkCmdBindShadersEXT( commandBuffer, stageCount, pStages, pShaders );
5780    }
5781
5782    //=== VK_QCOM_tile_properties ===
5783
5784    VkResult vkGetFramebufferTilePropertiesQCOM( VkDevice               device,
5785                                                 VkFramebuffer          framebuffer,
5786                                                 uint32_t *             pPropertiesCount,
5787                                                 VkTilePropertiesQCOM * pProperties ) const VULKAN_HPP_NOEXCEPT
5788    {
5789      return ::vkGetFramebufferTilePropertiesQCOM( device, framebuffer, pPropertiesCount, pProperties );
5790    }
5791
5792    VkResult vkGetDynamicRenderingTilePropertiesQCOM( VkDevice                device,
5793                                                      const VkRenderingInfo * pRenderingInfo,
5794                                                      VkTilePropertiesQCOM *  pProperties ) const VULKAN_HPP_NOEXCEPT
5795    {
5796      return ::vkGetDynamicRenderingTilePropertiesQCOM( device, pRenderingInfo, pProperties );
5797    }
5798
5799    //=== VK_NV_low_latency2 ===
5800
5801    VkResult vkSetLatencySleepModeNV( VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV * pSleepModeInfo ) const VULKAN_HPP_NOEXCEPT
5802    {
5803      return ::vkSetLatencySleepModeNV( device, swapchain, pSleepModeInfo );
5804    }
5805
5806    VkResult vkLatencySleepNV( VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV * pSleepInfo ) const VULKAN_HPP_NOEXCEPT
5807    {
5808      return ::vkLatencySleepNV( device, swapchain, pSleepInfo );
5809    }
5810
5811    void vkSetLatencyMarkerNV( VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV * pLatencyMarkerInfo ) const VULKAN_HPP_NOEXCEPT
5812    {
5813      return ::vkSetLatencyMarkerNV( device, swapchain, pLatencyMarkerInfo );
5814    }
5815
5816    void vkGetLatencyTimingsNV( VkDevice device, VkSwapchainKHR swapchain, VkGetLatencyMarkerInfoNV * pLatencyMarkerInfo ) const VULKAN_HPP_NOEXCEPT
5817    {
5818      return ::vkGetLatencyTimingsNV( device, swapchain, pLatencyMarkerInfo );
5819    }
5820
5821    void vkQueueNotifyOutOfBandNV( VkQueue queue, const VkOutOfBandQueueTypeInfoNV * pQueueTypeInfo ) const VULKAN_HPP_NOEXCEPT
5822    {
5823      return ::vkQueueNotifyOutOfBandNV( queue, pQueueTypeInfo );
5824    }
5825
5826    //=== VK_KHR_cooperative_matrix ===
5827
5828    VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR( VkPhysicalDevice                   physicalDevice,
5829                                                                uint32_t *                         pPropertyCount,
5830                                                                VkCooperativeMatrixPropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT
5831    {
5832      return ::vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR( physicalDevice, pPropertyCount, pProperties );
5833    }
5834
5835    //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
5836
5837    void vkCmdSetAttachmentFeedbackLoopEnableEXT( VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask ) const VULKAN_HPP_NOEXCEPT
5838    {
5839      return ::vkCmdSetAttachmentFeedbackLoopEnableEXT( commandBuffer, aspectMask );
5840    }
5841
5842#  if defined( VK_USE_PLATFORM_SCREEN_QNX )
5843    //=== VK_QNX_external_memory_screen_buffer ===
5844
5845    VkResult vkGetScreenBufferPropertiesQNX( VkDevice                      device,
5846                                             const struct _screen_buffer * buffer,
5847                                             VkScreenBufferPropertiesQNX * pProperties ) const VULKAN_HPP_NOEXCEPT
5848    {
5849      return ::vkGetScreenBufferPropertiesQNX( device, buffer, pProperties );
5850    }
5851#  endif /*VK_USE_PLATFORM_SCREEN_QNX*/
5852
5853    //=== VK_KHR_calibrated_timestamps ===
5854
5855    VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsKHR( VkPhysicalDevice  physicalDevice,
5856                                                             uint32_t *        pTimeDomainCount,
5857                                                             VkTimeDomainKHR * pTimeDomains ) const VULKAN_HPP_NOEXCEPT
5858    {
5859      return ::vkGetPhysicalDeviceCalibrateableTimeDomainsKHR( physicalDevice, pTimeDomainCount, pTimeDomains );
5860    }
5861
5862    VkResult vkGetCalibratedTimestampsKHR( VkDevice                             device,
5863                                           uint32_t                             timestampCount,
5864                                           const VkCalibratedTimestampInfoKHR * pTimestampInfos,
5865                                           uint64_t *                           pTimestamps,
5866                                           uint64_t *                           pMaxDeviation ) const VULKAN_HPP_NOEXCEPT
5867    {
5868      return ::vkGetCalibratedTimestampsKHR( device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation );
5869    }
5870
5871    //=== VK_KHR_maintenance6 ===
5872
5873    void vkCmdBindDescriptorSets2KHR( VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfoKHR * pBindDescriptorSetsInfo ) const VULKAN_HPP_NOEXCEPT
5874    {
5875      return ::vkCmdBindDescriptorSets2KHR( commandBuffer, pBindDescriptorSetsInfo );
5876    }
5877
5878    void vkCmdPushConstants2KHR( VkCommandBuffer commandBuffer, const VkPushConstantsInfoKHR * pPushConstantsInfo ) const VULKAN_HPP_NOEXCEPT
5879    {
5880      return ::vkCmdPushConstants2KHR( commandBuffer, pPushConstantsInfo );
5881    }
5882
5883    void vkCmdPushDescriptorSet2KHR( VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfoKHR * pPushDescriptorSetInfo ) const VULKAN_HPP_NOEXCEPT
5884    {
5885      return ::vkCmdPushDescriptorSet2KHR( commandBuffer, pPushDescriptorSetInfo );
5886    }
5887
5888    void vkCmdPushDescriptorSetWithTemplate2KHR( VkCommandBuffer                                commandBuffer,
5889                                                 const VkPushDescriptorSetWithTemplateInfoKHR * pPushDescriptorSetWithTemplateInfo ) const VULKAN_HPP_NOEXCEPT
5890    {
5891      return ::vkCmdPushDescriptorSetWithTemplate2KHR( commandBuffer, pPushDescriptorSetWithTemplateInfo );
5892    }
5893
5894    void vkCmdSetDescriptorBufferOffsets2EXT( VkCommandBuffer                             commandBuffer,
5895                                              const VkSetDescriptorBufferOffsetsInfoEXT * pSetDescriptorBufferOffsetsInfo ) const VULKAN_HPP_NOEXCEPT
5896    {
5897      return ::vkCmdSetDescriptorBufferOffsets2EXT( commandBuffer, pSetDescriptorBufferOffsetsInfo );
5898    }
5899
5900    void vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(
5901      VkCommandBuffer commandBuffer, const VkBindDescriptorBufferEmbeddedSamplersInfoEXT * pBindDescriptorBufferEmbeddedSamplersInfo ) const VULKAN_HPP_NOEXCEPT
5902    {
5903      return ::vkCmdBindDescriptorBufferEmbeddedSamplers2EXT( commandBuffer, pBindDescriptorBufferEmbeddedSamplersInfo );
5904    }
5905  };
5906
5907  inline ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic & getDispatchLoaderStatic()
5908  {
5909    static ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic dls;
5910    return dls;
5911  }
5912#endif
5913
5914#if !defined( VULKAN_HPP_NO_SMART_HANDLE )
5915  struct AllocationCallbacks;
5916
5917  template <typename OwnerType, typename Dispatch>
5918  class ObjectDestroy
5919  {
5920  public:
5921    ObjectDestroy() = default;
5922
5923    ObjectDestroy( OwnerType                                               owner,
5924                   Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
5925                   Dispatch const & dispatch                               VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
5926      : m_owner( owner )
5927      , m_allocationCallbacks( allocationCallbacks )
5928      , m_dispatch( &dispatch )
5929    {
5930    }
5931
5932    OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
5933    {
5934      return m_owner;
5935    }
5936
5937    Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT
5938    {
5939      return m_allocationCallbacks;
5940    }
5941
5942    Dispatch const & getDispatch() const VULKAN_HPP_NOEXCEPT
5943    {
5944      return *m_dispatch;
5945    }
5946
5947  protected:
5948    template <typename T>
5949    void destroy( T t ) VULKAN_HPP_NOEXCEPT
5950    {
5951      VULKAN_HPP_ASSERT( m_owner && m_dispatch );
5952      m_owner.destroy( t, m_allocationCallbacks, *m_dispatch );
5953    }
5954
5955  private:
5956    OwnerType                           m_owner               = {};
5957    Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
5958    Dispatch const *                    m_dispatch            = nullptr;
5959  };
5960
5961  class NoParent;
5962
5963  template <typename Dispatch>
5964  class ObjectDestroy<NoParent, Dispatch>
5965  {
5966  public:
5967    ObjectDestroy() = default;
5968
5969    ObjectDestroy( Optional<const AllocationCallbacks> allocationCallbacks,
5970                   Dispatch const & dispatch           VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
5971      : m_allocationCallbacks( allocationCallbacks )
5972      , m_dispatch( &dispatch )
5973    {
5974    }
5975
5976    Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT
5977    {
5978      return m_allocationCallbacks;
5979    }
5980
5981    Dispatch const & getDispatch() const VULKAN_HPP_NOEXCEPT
5982    {
5983      return *m_dispatch;
5984    }
5985
5986  protected:
5987    template <typename T>
5988    void destroy( T t ) VULKAN_HPP_NOEXCEPT
5989    {
5990      VULKAN_HPP_ASSERT( m_dispatch );
5991      t.destroy( m_allocationCallbacks, *m_dispatch );
5992    }
5993
5994  private:
5995    Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
5996    Dispatch const *                    m_dispatch            = nullptr;
5997  };
5998
5999  template <typename OwnerType, typename Dispatch>
6000  class ObjectFree
6001  {
6002  public:
6003    ObjectFree() = default;
6004
6005    ObjectFree( OwnerType                                               owner,
6006                Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
6007                Dispatch const & dispatch                               VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
6008      : m_owner( owner )
6009      , m_allocationCallbacks( allocationCallbacks )
6010      , m_dispatch( &dispatch )
6011    {
6012    }
6013
6014    OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
6015    {
6016      return m_owner;
6017    }
6018
6019    Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT
6020    {
6021      return m_allocationCallbacks;
6022    }
6023
6024    Dispatch const & getDispatch() const VULKAN_HPP_NOEXCEPT
6025    {
6026      return *m_dispatch;
6027    }
6028
6029  protected:
6030    template <typename T>
6031    void destroy( T t ) VULKAN_HPP_NOEXCEPT
6032    {
6033      VULKAN_HPP_ASSERT( m_owner && m_dispatch );
6034      ( m_owner.free )( t, m_allocationCallbacks, *m_dispatch );
6035    }
6036
6037  private:
6038    OwnerType                           m_owner               = {};
6039    Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
6040    Dispatch const *                    m_dispatch            = nullptr;
6041  };
6042
6043  template <typename OwnerType, typename Dispatch>
6044  class ObjectRelease
6045  {
6046  public:
6047    ObjectRelease() = default;
6048
6049    ObjectRelease( OwnerType owner, Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
6050      : m_owner( owner )
6051      , m_dispatch( &dispatch )
6052    {
6053    }
6054
6055    OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
6056    {
6057      return m_owner;
6058    }
6059
6060    Dispatch const & getDispatch() const VULKAN_HPP_NOEXCEPT
6061    {
6062      return *m_dispatch;
6063    }
6064
6065  protected:
6066    template <typename T>
6067    void destroy( T t ) VULKAN_HPP_NOEXCEPT
6068    {
6069      VULKAN_HPP_ASSERT( m_owner && m_dispatch );
6070      m_owner.release( t, *m_dispatch );
6071    }
6072
6073  private:
6074    OwnerType        m_owner    = {};
6075    Dispatch const * m_dispatch = nullptr;
6076  };
6077
6078  template <typename OwnerType, typename PoolType, typename Dispatch>
6079  class PoolFree
6080  {
6081  public:
6082    PoolFree() = default;
6083
6084    PoolFree( OwnerType owner, PoolType pool, Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
6085      : m_owner( owner )
6086      , m_pool( pool )
6087      , m_dispatch( &dispatch )
6088    {
6089    }
6090
6091    OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
6092    {
6093      return m_owner;
6094    }
6095
6096    PoolType getPool() const VULKAN_HPP_NOEXCEPT
6097    {
6098      return m_pool;
6099    }
6100
6101    Dispatch const & getDispatch() const VULKAN_HPP_NOEXCEPT
6102    {
6103      return *m_dispatch;
6104    }
6105
6106  protected:
6107    template <typename T>
6108    void destroy( T t ) VULKAN_HPP_NOEXCEPT
6109    {
6110      ( m_owner.free )( m_pool, t, *m_dispatch );
6111    }
6112
6113  private:
6114    OwnerType        m_owner    = OwnerType();
6115    PoolType         m_pool     = PoolType();
6116    Dispatch const * m_dispatch = nullptr;
6117  };
6118
6119#endif  // !VULKAN_HPP_NO_SMART_HANDLE
6120
6121  //==================
6122  //=== BASE TYPEs ===
6123  //==================
6124
6125  using Bool32          = uint32_t;
6126  using DeviceAddress   = uint64_t;
6127  using DeviceSize      = uint64_t;
6128  using RemoteAddressNV = void *;
6129  using SampleMask      = uint32_t;
6130
6131}  // namespace VULKAN_HPP_NAMESPACE
6132
6133#include <vulkan/vulkan_enums.hpp>
6134#if !defined( VULKAN_HPP_NO_TO_STRING )
6135#  include <vulkan/vulkan_to_string.hpp>
6136#endif
6137
6138#ifndef VULKAN_HPP_NO_EXCEPTIONS
6139namespace std
6140{
6141  template <>
6142  struct is_error_code_enum<VULKAN_HPP_NAMESPACE::Result> : public true_type
6143  {
6144  };
6145}  // namespace std
6146#endif
6147
6148namespace VULKAN_HPP_NAMESPACE
6149{
6150#ifndef VULKAN_HPP_NO_EXCEPTIONS
6151  class ErrorCategoryImpl : public std::error_category
6152  {
6153  public:
6154    virtual const char * name() const VULKAN_HPP_NOEXCEPT override
6155    {
6156      return VULKAN_HPP_NAMESPACE_STRING "::Result";
6157    }
6158
6159    virtual std::string message( int ev ) const override
6160    {
6161#  if defined( VULKAN_HPP_NO_TO_STRING )
6162      return std::to_string( ev );
6163#  else
6164      return VULKAN_HPP_NAMESPACE::to_string( static_cast<VULKAN_HPP_NAMESPACE::Result>( ev ) );
6165#  endif
6166    }
6167  };
6168
6169  class Error
6170  {
6171  public:
6172    Error() VULKAN_HPP_NOEXCEPT                = default;
6173    Error( const Error & ) VULKAN_HPP_NOEXCEPT = default;
6174    virtual ~Error() VULKAN_HPP_NOEXCEPT       = default;
6175
6176    virtual const char * what() const VULKAN_HPP_NOEXCEPT = 0;
6177  };
6178
6179  class LogicError
6180    : public Error
6181    , public std::logic_error
6182  {
6183  public:
6184    explicit LogicError( const std::string & what ) : Error(), std::logic_error( what ) {}
6185
6186    explicit LogicError( char const * what ) : Error(), std::logic_error( what ) {}
6187
6188    virtual const char * what() const VULKAN_HPP_NOEXCEPT
6189    {
6190      return std::logic_error::what();
6191    }
6192  };
6193
6194  class SystemError
6195    : public Error
6196    , public std::system_error
6197  {
6198  public:
6199    SystemError( std::error_code ec ) : Error(), std::system_error( ec ) {}
6200
6201    SystemError( std::error_code ec, std::string const & what ) : Error(), std::system_error( ec, what ) {}
6202
6203    SystemError( std::error_code ec, char const * what ) : Error(), std::system_error( ec, what ) {}
6204
6205    SystemError( int ev, std::error_category const & ecat ) : Error(), std::system_error( ev, ecat ) {}
6206
6207    SystemError( int ev, std::error_category const & ecat, std::string const & what ) : Error(), std::system_error( ev, ecat, what ) {}
6208
6209    SystemError( int ev, std::error_category const & ecat, char const * what ) : Error(), std::system_error( ev, ecat, what ) {}
6210
6211    virtual const char * what() const VULKAN_HPP_NOEXCEPT
6212    {
6213      return std::system_error::what();
6214    }
6215  };
6216
6217  VULKAN_HPP_INLINE const std::error_category & errorCategory() VULKAN_HPP_NOEXCEPT
6218  {
6219    static ErrorCategoryImpl instance;
6220    return instance;
6221  }
6222
6223  VULKAN_HPP_INLINE std::error_code make_error_code( Result e ) VULKAN_HPP_NOEXCEPT
6224  {
6225    return std::error_code( static_cast<int>( e ), errorCategory() );
6226  }
6227
6228  VULKAN_HPP_INLINE std::error_condition make_error_condition( Result e ) VULKAN_HPP_NOEXCEPT
6229  {
6230    return std::error_condition( static_cast<int>( e ), errorCategory() );
6231  }
6232
6233  class OutOfHostMemoryError : public SystemError
6234  {
6235  public:
6236    OutOfHostMemoryError( std::string const & message ) : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {}
6237
6238    OutOfHostMemoryError( char const * message ) : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {}
6239  };
6240
6241  class OutOfDeviceMemoryError : public SystemError
6242  {
6243  public:
6244    OutOfDeviceMemoryError( std::string const & message ) : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {}
6245
6246    OutOfDeviceMemoryError( char const * message ) : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {}
6247  };
6248
6249  class InitializationFailedError : public SystemError
6250  {
6251  public:
6252    InitializationFailedError( std::string const & message ) : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {}
6253
6254    InitializationFailedError( char const * message ) : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {}
6255  };
6256
6257  class DeviceLostError : public SystemError
6258  {
6259  public:
6260    DeviceLostError( std::string const & message ) : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {}
6261
6262    DeviceLostError( char const * message ) : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {}
6263  };
6264
6265  class MemoryMapFailedError : public SystemError
6266  {
6267  public:
6268    MemoryMapFailedError( std::string const & message ) : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {}
6269
6270    MemoryMapFailedError( char const * message ) : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {}
6271  };
6272
6273  class LayerNotPresentError : public SystemError
6274  {
6275  public:
6276    LayerNotPresentError( std::string const & message ) : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {}
6277
6278    LayerNotPresentError( char const * message ) : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {}
6279  };
6280
6281  class ExtensionNotPresentError : public SystemError
6282  {
6283  public:
6284    ExtensionNotPresentError( std::string const & message ) : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {}
6285
6286    ExtensionNotPresentError( char const * message ) : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {}
6287  };
6288
6289  class FeatureNotPresentError : public SystemError
6290  {
6291  public:
6292    FeatureNotPresentError( std::string const & message ) : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {}
6293
6294    FeatureNotPresentError( char const * message ) : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {}
6295  };
6296
6297  class IncompatibleDriverError : public SystemError
6298  {
6299  public:
6300    IncompatibleDriverError( std::string const & message ) : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {}
6301
6302    IncompatibleDriverError( char const * message ) : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {}
6303  };
6304
6305  class TooManyObjectsError : public SystemError
6306  {
6307  public:
6308    TooManyObjectsError( std::string const & message ) : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {}
6309
6310    TooManyObjectsError( char const * message ) : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {}
6311  };
6312
6313  class FormatNotSupportedError : public SystemError
6314  {
6315  public:
6316    FormatNotSupportedError( std::string const & message ) : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {}
6317
6318    FormatNotSupportedError( char const * message ) : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {}
6319  };
6320
6321  class FragmentedPoolError : public SystemError
6322  {
6323  public:
6324    FragmentedPoolError( std::string const & message ) : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {}
6325
6326    FragmentedPoolError( char const * message ) : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {}
6327  };
6328
6329  class UnknownError : public SystemError
6330  {
6331  public:
6332    UnknownError( std::string const & message ) : SystemError( make_error_code( Result::eErrorUnknown ), message ) {}
6333
6334    UnknownError( char const * message ) : SystemError( make_error_code( Result::eErrorUnknown ), message ) {}
6335  };
6336
6337  class OutOfPoolMemoryError : public SystemError
6338  {
6339  public:
6340    OutOfPoolMemoryError( std::string const & message ) : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {}
6341
6342    OutOfPoolMemoryError( char const * message ) : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {}
6343  };
6344
6345  class InvalidExternalHandleError : public SystemError
6346  {
6347  public:
6348    InvalidExternalHandleError( std::string const & message ) : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {}
6349
6350    InvalidExternalHandleError( char const * message ) : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {}
6351  };
6352
6353  class FragmentationError : public SystemError
6354  {
6355  public:
6356    FragmentationError( std::string const & message ) : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {}
6357
6358    FragmentationError( char const * message ) : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {}
6359  };
6360
6361  class InvalidOpaqueCaptureAddressError : public SystemError
6362  {
6363  public:
6364    InvalidOpaqueCaptureAddressError( std::string const & message ) : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {}
6365
6366    InvalidOpaqueCaptureAddressError( char const * message ) : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {}
6367  };
6368
6369  class SurfaceLostKHRError : public SystemError
6370  {
6371  public:
6372    SurfaceLostKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {}
6373
6374    SurfaceLostKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {}
6375  };
6376
6377  class NativeWindowInUseKHRError : public SystemError
6378  {
6379  public:
6380    NativeWindowInUseKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {}
6381
6382    NativeWindowInUseKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {}
6383  };
6384
6385  class OutOfDateKHRError : public SystemError
6386  {
6387  public:
6388    OutOfDateKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {}
6389
6390    OutOfDateKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {}
6391  };
6392
6393  class IncompatibleDisplayKHRError : public SystemError
6394  {
6395  public:
6396    IncompatibleDisplayKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {}
6397
6398    IncompatibleDisplayKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {}
6399  };
6400
6401  class ValidationFailedEXTError : public SystemError
6402  {
6403  public:
6404    ValidationFailedEXTError( std::string const & message ) : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {}
6405
6406    ValidationFailedEXTError( char const * message ) : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {}
6407  };
6408
6409  class InvalidShaderNVError : public SystemError
6410  {
6411  public:
6412    InvalidShaderNVError( std::string const & message ) : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {}
6413
6414    InvalidShaderNVError( char const * message ) : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {}
6415  };
6416
6417  class ImageUsageNotSupportedKHRError : public SystemError
6418  {
6419  public:
6420    ImageUsageNotSupportedKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorImageUsageNotSupportedKHR ), message ) {}
6421
6422    ImageUsageNotSupportedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorImageUsageNotSupportedKHR ), message ) {}
6423  };
6424
6425  class VideoPictureLayoutNotSupportedKHRError : public SystemError
6426  {
6427  public:
6428    VideoPictureLayoutNotSupportedKHRError( std::string const & message )
6429      : SystemError( make_error_code( Result::eErrorVideoPictureLayoutNotSupportedKHR ), message )
6430    {
6431    }
6432
6433    VideoPictureLayoutNotSupportedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorVideoPictureLayoutNotSupportedKHR ), message )
6434    {
6435    }
6436  };
6437
6438  class VideoProfileOperationNotSupportedKHRError : public SystemError
6439  {
6440  public:
6441    VideoProfileOperationNotSupportedKHRError( std::string const & message )
6442      : SystemError( make_error_code( Result::eErrorVideoProfileOperationNotSupportedKHR ), message )
6443    {
6444    }
6445
6446    VideoProfileOperationNotSupportedKHRError( char const * message )
6447      : SystemError( make_error_code( Result::eErrorVideoProfileOperationNotSupportedKHR ), message )
6448    {
6449    }
6450  };
6451
6452  class VideoProfileFormatNotSupportedKHRError : public SystemError
6453  {
6454  public:
6455    VideoProfileFormatNotSupportedKHRError( std::string const & message )
6456      : SystemError( make_error_code( Result::eErrorVideoProfileFormatNotSupportedKHR ), message )
6457    {
6458    }
6459
6460    VideoProfileFormatNotSupportedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorVideoProfileFormatNotSupportedKHR ), message )
6461    {
6462    }
6463  };
6464
6465  class VideoProfileCodecNotSupportedKHRError : public SystemError
6466  {
6467  public:
6468    VideoProfileCodecNotSupportedKHRError( std::string const & message )
6469      : SystemError( make_error_code( Result::eErrorVideoProfileCodecNotSupportedKHR ), message )
6470    {
6471    }
6472
6473    VideoProfileCodecNotSupportedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorVideoProfileCodecNotSupportedKHR ), message ) {}
6474  };
6475
6476  class VideoStdVersionNotSupportedKHRError : public SystemError
6477  {
6478  public:
6479    VideoStdVersionNotSupportedKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorVideoStdVersionNotSupportedKHR ), message )
6480    {
6481    }
6482
6483    VideoStdVersionNotSupportedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorVideoStdVersionNotSupportedKHR ), message ) {}
6484  };
6485
6486  class InvalidDrmFormatModifierPlaneLayoutEXTError : public SystemError
6487  {
6488  public:
6489    InvalidDrmFormatModifierPlaneLayoutEXTError( std::string const & message )
6490      : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message )
6491    {
6492    }
6493
6494    InvalidDrmFormatModifierPlaneLayoutEXTError( char const * message )
6495      : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message )
6496    {
6497    }
6498  };
6499
6500  class NotPermittedKHRError : public SystemError
6501  {
6502  public:
6503    NotPermittedKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorNotPermittedKHR ), message ) {}
6504
6505    NotPermittedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorNotPermittedKHR ), message ) {}
6506  };
6507
6508#  if defined( VK_USE_PLATFORM_WIN32_KHR )
6509  class FullScreenExclusiveModeLostEXTError : public SystemError
6510  {
6511  public:
6512    FullScreenExclusiveModeLostEXTError( std::string const & message ) : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message )
6513    {
6514    }
6515
6516    FullScreenExclusiveModeLostEXTError( char const * message ) : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {}
6517  };
6518#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
6519
6520  class InvalidVideoStdParametersKHRError : public SystemError
6521  {
6522  public:
6523    InvalidVideoStdParametersKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorInvalidVideoStdParametersKHR ), message ) {}
6524
6525    InvalidVideoStdParametersKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorInvalidVideoStdParametersKHR ), message ) {}
6526  };
6527
6528  class CompressionExhaustedEXTError : public SystemError
6529  {
6530  public:
6531    CompressionExhaustedEXTError( std::string const & message ) : SystemError( make_error_code( Result::eErrorCompressionExhaustedEXT ), message ) {}
6532
6533    CompressionExhaustedEXTError( char const * message ) : SystemError( make_error_code( Result::eErrorCompressionExhaustedEXT ), message ) {}
6534  };
6535
6536  class IncompatibleShaderBinaryEXTError : public SystemError
6537  {
6538  public:
6539    IncompatibleShaderBinaryEXTError( std::string const & message ) : SystemError( make_error_code( Result::eErrorIncompatibleShaderBinaryEXT ), message ) {}
6540
6541    IncompatibleShaderBinaryEXTError( char const * message ) : SystemError( make_error_code( Result::eErrorIncompatibleShaderBinaryEXT ), message ) {}
6542  };
6543
6544  namespace detail
6545  {
6546    [[noreturn]] VULKAN_HPP_INLINE void throwResultException( Result result, char const * message )
6547    {
6548      switch ( result )
6549      {
6550        case Result::eErrorOutOfHostMemory: throw OutOfHostMemoryError( message );
6551        case Result::eErrorOutOfDeviceMemory: throw OutOfDeviceMemoryError( message );
6552        case Result::eErrorInitializationFailed: throw InitializationFailedError( message );
6553        case Result::eErrorDeviceLost: throw DeviceLostError( message );
6554        case Result::eErrorMemoryMapFailed: throw MemoryMapFailedError( message );
6555        case Result::eErrorLayerNotPresent: throw LayerNotPresentError( message );
6556        case Result::eErrorExtensionNotPresent: throw ExtensionNotPresentError( message );
6557        case Result::eErrorFeatureNotPresent: throw FeatureNotPresentError( message );
6558        case Result::eErrorIncompatibleDriver: throw IncompatibleDriverError( message );
6559        case Result::eErrorTooManyObjects: throw TooManyObjectsError( message );
6560        case Result::eErrorFormatNotSupported: throw FormatNotSupportedError( message );
6561        case Result::eErrorFragmentedPool: throw FragmentedPoolError( message );
6562        case Result::eErrorUnknown: throw UnknownError( message );
6563        case Result::eErrorOutOfPoolMemory: throw OutOfPoolMemoryError( message );
6564        case Result::eErrorInvalidExternalHandle: throw InvalidExternalHandleError( message );
6565        case Result::eErrorFragmentation: throw FragmentationError( message );
6566        case Result::eErrorInvalidOpaqueCaptureAddress: throw InvalidOpaqueCaptureAddressError( message );
6567        case Result::eErrorSurfaceLostKHR: throw SurfaceLostKHRError( message );
6568        case Result::eErrorNativeWindowInUseKHR: throw NativeWindowInUseKHRError( message );
6569        case Result::eErrorOutOfDateKHR: throw OutOfDateKHRError( message );
6570        case Result::eErrorIncompatibleDisplayKHR: throw IncompatibleDisplayKHRError( message );
6571        case Result::eErrorValidationFailedEXT: throw ValidationFailedEXTError( message );
6572        case Result::eErrorInvalidShaderNV: throw InvalidShaderNVError( message );
6573        case Result::eErrorImageUsageNotSupportedKHR: throw ImageUsageNotSupportedKHRError( message );
6574        case Result::eErrorVideoPictureLayoutNotSupportedKHR: throw VideoPictureLayoutNotSupportedKHRError( message );
6575        case Result::eErrorVideoProfileOperationNotSupportedKHR: throw VideoProfileOperationNotSupportedKHRError( message );
6576        case Result::eErrorVideoProfileFormatNotSupportedKHR: throw VideoProfileFormatNotSupportedKHRError( message );
6577        case Result::eErrorVideoProfileCodecNotSupportedKHR: throw VideoProfileCodecNotSupportedKHRError( message );
6578        case Result::eErrorVideoStdVersionNotSupportedKHR: throw VideoStdVersionNotSupportedKHRError( message );
6579        case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT: throw InvalidDrmFormatModifierPlaneLayoutEXTError( message );
6580        case Result::eErrorNotPermittedKHR: throw NotPermittedKHRError( message );
6581#  if defined( VK_USE_PLATFORM_WIN32_KHR )
6582        case Result::eErrorFullScreenExclusiveModeLostEXT: throw FullScreenExclusiveModeLostEXTError( message );
6583#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
6584        case Result::eErrorInvalidVideoStdParametersKHR: throw InvalidVideoStdParametersKHRError( message );
6585        case Result::eErrorCompressionExhaustedEXT: throw CompressionExhaustedEXTError( message );
6586        case Result::eErrorIncompatibleShaderBinaryEXT: throw IncompatibleShaderBinaryEXTError( message );
6587        default: throw SystemError( make_error_code( result ), message );
6588      }
6589    }
6590  }  // namespace detail
6591#endif
6592
6593  template <typename T>
6594  void ignore( T const & ) VULKAN_HPP_NOEXCEPT
6595  {
6596  }
6597
6598  template <typename T>
6599  struct ResultValue
6600  {
6601#ifdef VULKAN_HPP_HAS_NOEXCEPT
6602    ResultValue( Result r, T & v ) VULKAN_HPP_NOEXCEPT( VULKAN_HPP_NOEXCEPT( T( v ) ) )
6603#else
6604    ResultValue( Result r, T & v )
6605#endif
6606      : result( r ), value( v )
6607    {
6608    }
6609
6610#ifdef VULKAN_HPP_HAS_NOEXCEPT
6611    ResultValue( Result r, T && v ) VULKAN_HPP_NOEXCEPT( VULKAN_HPP_NOEXCEPT( T( std::move( v ) ) ) )
6612#else
6613    ResultValue( Result r, T && v )
6614#endif
6615      : result( r ), value( std::move( v ) )
6616    {
6617    }
6618
6619    Result result;
6620    T      value;
6621
6622    operator std::tuple<Result &, T &>() VULKAN_HPP_NOEXCEPT
6623    {
6624      return std::tuple<Result &, T &>( result, value );
6625    }
6626  };
6627
6628#if !defined( VULKAN_HPP_NO_SMART_HANDLE )
6629  template <typename Type, typename Dispatch>
6630  struct ResultValue<UniqueHandle<Type, Dispatch>>
6631  {
6632#  ifdef VULKAN_HPP_HAS_NOEXCEPT
6633    ResultValue( Result r, UniqueHandle<Type, Dispatch> && v ) VULKAN_HPP_NOEXCEPT
6634#  else
6635    ResultValue( Result r, UniqueHandle<Type, Dispatch> && v )
6636#  endif
6637      : result( r )
6638      , value( std::move( v ) )
6639    {
6640    }
6641
6642    VULKAN_HPP_DEPRECATED(
6643      "asTuple() on an l-value is deprecated, as it implicitly moves the UniqueHandle out of the ResultValue. Use asTuple() on an r-value instead, requiring to explicitly move the UniqueHandle." )
6644
6645    std::tuple<Result, UniqueHandle<Type, Dispatch>> asTuple() &
6646    {
6647      return std::make_tuple( result, std::move( value ) );
6648    }
6649
6650    std::tuple<Result, UniqueHandle<Type, Dispatch>> asTuple() &&
6651    {
6652      return std::make_tuple( result, std::move( value ) );
6653    }
6654
6655    Result                       result;
6656    UniqueHandle<Type, Dispatch> value;
6657  };
6658
6659  template <typename Type, typename Dispatch>
6660  struct ResultValue<std::vector<UniqueHandle<Type, Dispatch>>>
6661  {
6662#  ifdef VULKAN_HPP_HAS_NOEXCEPT
6663    ResultValue( Result r, std::vector<UniqueHandle<Type, Dispatch>> && v ) VULKAN_HPP_NOEXCEPT
6664#  else
6665    ResultValue( Result r, std::vector<UniqueHandle<Type, Dispatch>> && v )
6666#  endif
6667      : result( r )
6668      , value( std::move( v ) )
6669    {
6670    }
6671
6672    VULKAN_HPP_DEPRECATED(
6673      "asTuple() on an l-value is deprecated, as it implicitly moves the UniqueHandle out of the ResultValue. Use asTuple() on an r-value instead, requiring to explicitly move the UniqueHandle." )
6674
6675    std::tuple<Result, std::vector<UniqueHandle<Type, Dispatch>>> asTuple() &
6676    {
6677      return std::make_tuple( result, std::move( value ) );
6678    }
6679
6680    std::tuple<Result, std::vector<UniqueHandle<Type, Dispatch>>> asTuple() &&
6681    {
6682      return std::make_tuple( result, std::move( value ) );
6683    }
6684
6685    Result                                    result;
6686    std::vector<UniqueHandle<Type, Dispatch>> value;
6687  };
6688#endif
6689
6690  template <typename T>
6691  struct ResultValueType
6692  {
6693#ifdef VULKAN_HPP_NO_EXCEPTIONS
6694    typedef ResultValue<T> type;
6695#else
6696    typedef T    type;
6697#endif
6698  };
6699
6700  template <>
6701  struct ResultValueType<void>
6702  {
6703#ifdef VULKAN_HPP_NO_EXCEPTIONS
6704    typedef Result type;
6705#else
6706    typedef void type;
6707#endif
6708  };
6709
6710  VULKAN_HPP_INLINE typename ResultValueType<void>::type createResultValueType( Result result )
6711  {
6712#ifdef VULKAN_HPP_NO_EXCEPTIONS
6713    return result;
6714#else
6715    ignore( result );
6716#endif
6717  }
6718
6719  template <typename T>
6720  VULKAN_HPP_INLINE typename ResultValueType<T>::type createResultValueType( Result result, T & data )
6721  {
6722#ifdef VULKAN_HPP_NO_EXCEPTIONS
6723    return ResultValue<T>( result, data );
6724#else
6725    ignore( result );
6726    return data;
6727#endif
6728  }
6729
6730  template <typename T>
6731  VULKAN_HPP_INLINE typename ResultValueType<T>::type createResultValueType( Result result, T && data )
6732  {
6733#ifdef VULKAN_HPP_NO_EXCEPTIONS
6734    return ResultValue<T>( result, std::move( data ) );
6735#else
6736    ignore( result );
6737    return std::move( data );
6738#endif
6739  }
6740
6741  VULKAN_HPP_INLINE void resultCheck( Result result, char const * message )
6742  {
6743#ifdef VULKAN_HPP_NO_EXCEPTIONS
6744    ignore( result );  // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty
6745    ignore( message );
6746    VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess );
6747#else
6748    if ( result != Result::eSuccess )
6749    {
6750      detail::throwResultException( result, message );
6751    }
6752#endif
6753  }
6754
6755  VULKAN_HPP_INLINE void resultCheck( Result result, char const * message, std::initializer_list<Result> successCodes )
6756  {
6757#ifdef VULKAN_HPP_NO_EXCEPTIONS
6758    ignore( result );  // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty
6759    ignore( message );
6760    ignore( successCodes );  // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty
6761    VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
6762#else
6763    if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
6764    {
6765      detail::throwResultException( result, message );
6766    }
6767#endif
6768  }
6769
6770  //===========================
6771  //=== CONSTEXPR CONSTANTs ===
6772  //===========================
6773
6774  //=== VK_VERSION_1_0 ===
6775  VULKAN_HPP_CONSTEXPR_INLINE uint32_t AttachmentUnused          = VK_ATTACHMENT_UNUSED;
6776  VULKAN_HPP_CONSTEXPR_INLINE uint32_t False                     = VK_FALSE;
6777  VULKAN_HPP_CONSTEXPR_INLINE float    LodClampNone              = VK_LOD_CLAMP_NONE;
6778  VULKAN_HPP_CONSTEXPR_INLINE uint32_t QueueFamilyIgnored        = VK_QUEUE_FAMILY_IGNORED;
6779  VULKAN_HPP_CONSTEXPR_INLINE uint32_t RemainingArrayLayers      = VK_REMAINING_ARRAY_LAYERS;
6780  VULKAN_HPP_CONSTEXPR_INLINE uint32_t RemainingMipLevels        = VK_REMAINING_MIP_LEVELS;
6781  VULKAN_HPP_CONSTEXPR_INLINE uint32_t SubpassExternal           = VK_SUBPASS_EXTERNAL;
6782  VULKAN_HPP_CONSTEXPR_INLINE uint32_t True                      = VK_TRUE;
6783  VULKAN_HPP_CONSTEXPR_INLINE uint64_t WholeSize                 = VK_WHOLE_SIZE;
6784  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxMemoryTypes            = VK_MAX_MEMORY_TYPES;
6785  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxPhysicalDeviceNameSize = VK_MAX_PHYSICAL_DEVICE_NAME_SIZE;
6786  VULKAN_HPP_CONSTEXPR_INLINE uint32_t UuidSize                  = VK_UUID_SIZE;
6787  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxExtensionNameSize      = VK_MAX_EXTENSION_NAME_SIZE;
6788  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDescriptionSize        = VK_MAX_DESCRIPTION_SIZE;
6789  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxMemoryHeaps            = VK_MAX_MEMORY_HEAPS;
6790
6791  //=== VK_VERSION_1_1 ===
6792  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDeviceGroupSize  = VK_MAX_DEVICE_GROUP_SIZE;
6793  VULKAN_HPP_CONSTEXPR_INLINE uint32_t LuidSize            = VK_LUID_SIZE;
6794  VULKAN_HPP_CONSTEXPR_INLINE uint32_t QueueFamilyExternal = VK_QUEUE_FAMILY_EXTERNAL;
6795
6796  //=== VK_VERSION_1_2 ===
6797  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDriverNameSize = VK_MAX_DRIVER_NAME_SIZE;
6798  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDriverInfoSize = VK_MAX_DRIVER_INFO_SIZE;
6799
6800  //=== VK_KHR_device_group_creation ===
6801  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDeviceGroupSizeKHR = VK_MAX_DEVICE_GROUP_SIZE_KHR;
6802
6803  //=== VK_KHR_external_memory_capabilities ===
6804  VULKAN_HPP_CONSTEXPR_INLINE uint32_t LuidSizeKHR = VK_LUID_SIZE_KHR;
6805
6806  //=== VK_KHR_external_memory ===
6807  VULKAN_HPP_CONSTEXPR_INLINE uint32_t QueueFamilyExternalKHR = VK_QUEUE_FAMILY_EXTERNAL_KHR;
6808
6809  //=== VK_EXT_queue_family_foreign ===
6810  VULKAN_HPP_CONSTEXPR_INLINE uint32_t QueueFamilyForeignEXT = VK_QUEUE_FAMILY_FOREIGN_EXT;
6811
6812#if defined( VK_ENABLE_BETA_EXTENSIONS )
6813  //=== VK_AMDX_shader_enqueue ===
6814  VULKAN_HPP_CONSTEXPR_INLINE uint32_t ShaderIndexUnusedAMDX = VK_SHADER_INDEX_UNUSED_AMDX;
6815#endif /*VK_ENABLE_BETA_EXTENSIONS*/
6816
6817  //=== VK_KHR_ray_tracing_pipeline ===
6818  VULKAN_HPP_CONSTEXPR_INLINE uint32_t ShaderUnusedKHR = VK_SHADER_UNUSED_KHR;
6819
6820  //=== VK_NV_ray_tracing ===
6821  VULKAN_HPP_CONSTEXPR_INLINE uint32_t ShaderUnusedNV = VK_SHADER_UNUSED_NV;
6822
6823  //=== VK_KHR_global_priority ===
6824  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxGlobalPrioritySizeKHR = VK_MAX_GLOBAL_PRIORITY_SIZE_KHR;
6825
6826  //=== VK_KHR_driver_properties ===
6827  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDriverNameSizeKHR = VK_MAX_DRIVER_NAME_SIZE_KHR;
6828  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxDriverInfoSizeKHR = VK_MAX_DRIVER_INFO_SIZE_KHR;
6829
6830  //=== VK_EXT_global_priority_query ===
6831  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxGlobalPrioritySizeEXT = VK_MAX_GLOBAL_PRIORITY_SIZE_EXT;
6832
6833  //=== VK_EXT_image_sliced_view_of_3d ===
6834  VULKAN_HPP_CONSTEXPR_INLINE uint32_t Remaining3DSlicesEXT = VK_REMAINING_3D_SLICES_EXT;
6835
6836  //=== VK_EXT_shader_module_identifier ===
6837  VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxShaderModuleIdentifierSizeEXT = VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT;
6838
6839  //========================
6840  //=== CONSTEXPR VALUEs ===
6841  //========================
6842  VULKAN_HPP_CONSTEXPR_INLINE uint32_t HeaderVersion = VK_HEADER_VERSION;
6843
6844  //=========================
6845  //=== CONSTEXPR CALLEEs ===
6846  //=========================
6847  template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
6848  VULKAN_HPP_CONSTEXPR uint32_t apiVersionMajor( T const version )
6849  {
6850    return ( ( (uint32_t)( version ) >> 22U ) & 0x7FU );
6851  }
6852
6853  template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
6854  VULKAN_HPP_CONSTEXPR uint32_t apiVersionMinor( T const version )
6855  {
6856    return ( ( (uint32_t)( version ) >> 12U ) & 0x3FFU );
6857  }
6858
6859  template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
6860  VULKAN_HPP_CONSTEXPR uint32_t apiVersionPatch( T const version )
6861  {
6862    return ( (uint32_t)(version)&0xFFFU );
6863  }
6864
6865  template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
6866  VULKAN_HPP_CONSTEXPR uint32_t apiVersionVariant( T const version )
6867  {
6868    return ( (uint32_t)( version ) >> 29U );
6869  }
6870
6871  template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
6872  VULKAN_HPP_CONSTEXPR uint32_t makeApiVersion( T const variant, T const major, T const minor, T const patch )
6873  {
6874    return ( ( ( (uint32_t)( variant ) ) << 29U ) | ( ( (uint32_t)( major ) ) << 22U ) | ( ( (uint32_t)( minor ) ) << 12U ) | ( (uint32_t)( patch ) ) );
6875  }
6876
6877  template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
6878  VULKAN_HPP_DEPRECATED( "This define is deprecated. VK_MAKE_API_VERSION should be used instead." )
6879  VULKAN_HPP_CONSTEXPR uint32_t makeVersion( T const major, T const minor, T const patch )
6880  {
6881    return ( ( ( (uint32_t)( major ) ) << 22U ) | ( ( (uint32_t)( minor ) ) << 12U ) | ( (uint32_t)( patch ) ) );
6882  }
6883
6884  template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
6885  VULKAN_HPP_DEPRECATED( "This define is deprecated. VK_API_VERSION_MAJOR should be used instead." )
6886  VULKAN_HPP_CONSTEXPR uint32_t versionMajor( T const version )
6887  {
6888    return ( (uint32_t)( version ) >> 22U );
6889  }
6890
6891  template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
6892  VULKAN_HPP_DEPRECATED( "This define is deprecated. VK_API_VERSION_MINOR should be used instead." )
6893  VULKAN_HPP_CONSTEXPR uint32_t versionMinor( T const version )
6894  {
6895    return ( ( (uint32_t)( version ) >> 12U ) & 0x3FFU );
6896  }
6897
6898  template <typename T, typename = typename std::enable_if<std::is_integral<T>::value>::type>
6899  VULKAN_HPP_DEPRECATED( "This define is deprecated. VK_API_VERSION_PATCH should be used instead." )
6900  VULKAN_HPP_CONSTEXPR uint32_t versionPatch( T const version )
6901  {
6902    return ( (uint32_t)(version)&0xFFFU );
6903  }
6904
6905  //=========================
6906  //=== CONSTEXPR CALLERs ===
6907  //=========================
6908  VULKAN_HPP_CONSTEXPR_INLINE auto ApiVersion            = makeApiVersion( 0, 1, 0, 0 );
6909  VULKAN_HPP_CONSTEXPR_INLINE auto ApiVersion10          = makeApiVersion( 0, 1, 0, 0 );
6910  VULKAN_HPP_CONSTEXPR_INLINE auto ApiVersion11          = makeApiVersion( 0, 1, 1, 0 );
6911  VULKAN_HPP_CONSTEXPR_INLINE auto ApiVersion12          = makeApiVersion( 0, 1, 2, 0 );
6912  VULKAN_HPP_CONSTEXPR_INLINE auto ApiVersion13          = makeApiVersion( 0, 1, 3, 0 );
6913  VULKAN_HPP_CONSTEXPR_INLINE auto HeaderVersionComplete = makeApiVersion( 0, 1, 3, VK_HEADER_VERSION );
6914
6915  //=================================
6916  //=== CONSTEXPR EXTENSION NAMEs ===
6917  //=================================
6918
6919  //=== VK_KHR_surface ===
6920  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSurfaceExtensionName = VK_KHR_SURFACE_EXTENSION_NAME;
6921  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSurfaceSpecVersion   = VK_KHR_SURFACE_SPEC_VERSION;
6922
6923  //=== VK_KHR_swapchain ===
6924  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSwapchainExtensionName = VK_KHR_SWAPCHAIN_EXTENSION_NAME;
6925  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSwapchainSpecVersion   = VK_KHR_SWAPCHAIN_SPEC_VERSION;
6926
6927  //=== VK_KHR_display ===
6928  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDisplayExtensionName = VK_KHR_DISPLAY_EXTENSION_NAME;
6929  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDisplaySpecVersion   = VK_KHR_DISPLAY_SPEC_VERSION;
6930
6931  //=== VK_KHR_display_swapchain ===
6932  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDisplaySwapchainExtensionName = VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME;
6933  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDisplaySwapchainSpecVersion   = VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION;
6934
6935#if defined( VK_USE_PLATFORM_XLIB_KHR )
6936  //=== VK_KHR_xlib_surface ===
6937  VULKAN_HPP_CONSTEXPR_INLINE auto KHRXlibSurfaceExtensionName = VK_KHR_XLIB_SURFACE_EXTENSION_NAME;
6938  VULKAN_HPP_CONSTEXPR_INLINE auto KHRXlibSurfaceSpecVersion   = VK_KHR_XLIB_SURFACE_SPEC_VERSION;
6939#endif /*VK_USE_PLATFORM_XLIB_KHR*/
6940
6941#if defined( VK_USE_PLATFORM_XCB_KHR )
6942  //=== VK_KHR_xcb_surface ===
6943  VULKAN_HPP_CONSTEXPR_INLINE auto KHRXcbSurfaceExtensionName = VK_KHR_XCB_SURFACE_EXTENSION_NAME;
6944  VULKAN_HPP_CONSTEXPR_INLINE auto KHRXcbSurfaceSpecVersion   = VK_KHR_XCB_SURFACE_SPEC_VERSION;
6945#endif /*VK_USE_PLATFORM_XCB_KHR*/
6946
6947#if defined( VK_USE_PLATFORM_WAYLAND_KHR )
6948  //=== VK_KHR_wayland_surface ===
6949  VULKAN_HPP_CONSTEXPR_INLINE auto KHRWaylandSurfaceExtensionName = VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME;
6950  VULKAN_HPP_CONSTEXPR_INLINE auto KHRWaylandSurfaceSpecVersion   = VK_KHR_WAYLAND_SURFACE_SPEC_VERSION;
6951#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
6952
6953#if defined( VK_USE_PLATFORM_ANDROID_KHR )
6954  //=== VK_KHR_android_surface ===
6955  VULKAN_HPP_CONSTEXPR_INLINE auto KHRAndroidSurfaceExtensionName = VK_KHR_ANDROID_SURFACE_EXTENSION_NAME;
6956  VULKAN_HPP_CONSTEXPR_INLINE auto KHRAndroidSurfaceSpecVersion   = VK_KHR_ANDROID_SURFACE_SPEC_VERSION;
6957#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
6958
6959#if defined( VK_USE_PLATFORM_WIN32_KHR )
6960  //=== VK_KHR_win32_surface ===
6961  VULKAN_HPP_CONSTEXPR_INLINE auto KHRWin32SurfaceExtensionName = VK_KHR_WIN32_SURFACE_EXTENSION_NAME;
6962  VULKAN_HPP_CONSTEXPR_INLINE auto KHRWin32SurfaceSpecVersion   = VK_KHR_WIN32_SURFACE_SPEC_VERSION;
6963#endif /*VK_USE_PLATFORM_WIN32_KHR*/
6964
6965  //=== VK_EXT_debug_report ===
6966  VULKAN_HPP_DEPRECATED( "The VK_EXT_debug_report extension has been deprecated by VK_EXT_debug_utils." )
6967  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDebugReportExtensionName = VK_EXT_DEBUG_REPORT_EXTENSION_NAME;
6968  VULKAN_HPP_DEPRECATED( "The VK_EXT_debug_report extension has been deprecated by VK_EXT_debug_utils." )
6969  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDebugReportSpecVersion = VK_EXT_DEBUG_REPORT_SPEC_VERSION;
6970
6971  //=== VK_NV_glsl_shader ===
6972  VULKAN_HPP_DEPRECATED( "The VK_NV_glsl_shader extension has been deprecated." )
6973  VULKAN_HPP_CONSTEXPR_INLINE auto NVGlslShaderExtensionName = VK_NV_GLSL_SHADER_EXTENSION_NAME;
6974  VULKAN_HPP_DEPRECATED( "The VK_NV_glsl_shader extension has been deprecated." )
6975  VULKAN_HPP_CONSTEXPR_INLINE auto NVGlslShaderSpecVersion = VK_NV_GLSL_SHADER_SPEC_VERSION;
6976
6977  //=== VK_EXT_depth_range_unrestricted ===
6978  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDepthRangeUnrestrictedExtensionName = VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME;
6979  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDepthRangeUnrestrictedSpecVersion   = VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION;
6980
6981  //=== VK_KHR_sampler_mirror_clamp_to_edge ===
6982  VULKAN_HPP_DEPRECATED( "The VK_KHR_sampler_mirror_clamp_to_edge extension has been promoted to core in version 1.2." )
6983  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSamplerMirrorClampToEdgeExtensionName = VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME;
6984  VULKAN_HPP_DEPRECATED( "The VK_KHR_sampler_mirror_clamp_to_edge extension has been promoted to core in version 1.2." )
6985  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSamplerMirrorClampToEdgeSpecVersion = VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION;
6986
6987  //=== VK_IMG_filter_cubic ===
6988  VULKAN_HPP_CONSTEXPR_INLINE auto IMGFilterCubicExtensionName = VK_IMG_FILTER_CUBIC_EXTENSION_NAME;
6989  VULKAN_HPP_CONSTEXPR_INLINE auto IMGFilterCubicSpecVersion   = VK_IMG_FILTER_CUBIC_SPEC_VERSION;
6990
6991  //=== VK_AMD_rasterization_order ===
6992  VULKAN_HPP_CONSTEXPR_INLINE auto AMDRasterizationOrderExtensionName = VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME;
6993  VULKAN_HPP_CONSTEXPR_INLINE auto AMDRasterizationOrderSpecVersion   = VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION;
6994
6995  //=== VK_AMD_shader_trinary_minmax ===
6996  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderTrinaryMinmaxExtensionName = VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME;
6997  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderTrinaryMinmaxSpecVersion   = VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION;
6998
6999  //=== VK_AMD_shader_explicit_vertex_parameter ===
7000  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderExplicitVertexParameterExtensionName = VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME;
7001  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderExplicitVertexParameterSpecVersion   = VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION;
7002
7003  //=== VK_EXT_debug_marker ===
7004  VULKAN_HPP_DEPRECATED( "The VK_EXT_debug_marker extension has been promoted to VK_EXT_debug_utils." )
7005  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDebugMarkerExtensionName = VK_EXT_DEBUG_MARKER_EXTENSION_NAME;
7006  VULKAN_HPP_DEPRECATED( "The VK_EXT_debug_marker extension has been promoted to VK_EXT_debug_utils." )
7007  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDebugMarkerSpecVersion = VK_EXT_DEBUG_MARKER_SPEC_VERSION;
7008
7009  //=== VK_KHR_video_queue ===
7010  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoQueueExtensionName = VK_KHR_VIDEO_QUEUE_EXTENSION_NAME;
7011  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoQueueSpecVersion   = VK_KHR_VIDEO_QUEUE_SPEC_VERSION;
7012
7013  //=== VK_KHR_video_decode_queue ===
7014  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoDecodeQueueExtensionName = VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME;
7015  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoDecodeQueueSpecVersion   = VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION;
7016
7017  //=== VK_AMD_gcn_shader ===
7018  VULKAN_HPP_CONSTEXPR_INLINE auto AMDGcnShaderExtensionName = VK_AMD_GCN_SHADER_EXTENSION_NAME;
7019  VULKAN_HPP_CONSTEXPR_INLINE auto AMDGcnShaderSpecVersion   = VK_AMD_GCN_SHADER_SPEC_VERSION;
7020
7021  //=== VK_NV_dedicated_allocation ===
7022  VULKAN_HPP_DEPRECATED( "The VK_NV_dedicated_allocation extension has been deprecated by VK_KHR_dedicated_allocation." )
7023  VULKAN_HPP_CONSTEXPR_INLINE auto NVDedicatedAllocationExtensionName = VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME;
7024  VULKAN_HPP_DEPRECATED( "The VK_NV_dedicated_allocation extension has been deprecated by VK_KHR_dedicated_allocation." )
7025  VULKAN_HPP_CONSTEXPR_INLINE auto NVDedicatedAllocationSpecVersion = VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION;
7026
7027  //=== VK_EXT_transform_feedback ===
7028  VULKAN_HPP_CONSTEXPR_INLINE auto EXTTransformFeedbackExtensionName = VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME;
7029  VULKAN_HPP_CONSTEXPR_INLINE auto EXTTransformFeedbackSpecVersion   = VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION;
7030
7031  //=== VK_NVX_binary_import ===
7032  VULKAN_HPP_CONSTEXPR_INLINE auto NVXBinaryImportExtensionName = VK_NVX_BINARY_IMPORT_EXTENSION_NAME;
7033  VULKAN_HPP_CONSTEXPR_INLINE auto NVXBinaryImportSpecVersion   = VK_NVX_BINARY_IMPORT_SPEC_VERSION;
7034
7035  //=== VK_NVX_image_view_handle ===
7036  VULKAN_HPP_CONSTEXPR_INLINE auto NVXImageViewHandleExtensionName = VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME;
7037  VULKAN_HPP_CONSTEXPR_INLINE auto NVXImageViewHandleSpecVersion   = VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION;
7038
7039  //=== VK_AMD_draw_indirect_count ===
7040  VULKAN_HPP_DEPRECATED( "The VK_AMD_draw_indirect_count extension has been promoted to VK_KHR_draw_indirect_count." )
7041  VULKAN_HPP_CONSTEXPR_INLINE auto AMDDrawIndirectCountExtensionName = VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME;
7042  VULKAN_HPP_DEPRECATED( "The VK_AMD_draw_indirect_count extension has been promoted to VK_KHR_draw_indirect_count." )
7043  VULKAN_HPP_CONSTEXPR_INLINE auto AMDDrawIndirectCountSpecVersion = VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION;
7044
7045  //=== VK_AMD_negative_viewport_height ===
7046  VULKAN_HPP_DEPRECATED( "The VK_AMD_negative_viewport_height extension has been obsoleted by VK_KHR_maintenance1." )
7047  VULKAN_HPP_CONSTEXPR_INLINE auto AMDNegativeViewportHeightExtensionName = VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME;
7048  VULKAN_HPP_DEPRECATED( "The VK_AMD_negative_viewport_height extension has been obsoleted by VK_KHR_maintenance1." )
7049  VULKAN_HPP_CONSTEXPR_INLINE auto AMDNegativeViewportHeightSpecVersion = VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION;
7050
7051  //=== VK_AMD_gpu_shader_half_float ===
7052  VULKAN_HPP_DEPRECATED( "The VK_AMD_gpu_shader_half_float extension has been deprecated by VK_KHR_shader_float16_int8." )
7053  VULKAN_HPP_CONSTEXPR_INLINE auto AMDGpuShaderHalfFloatExtensionName = VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME;
7054  VULKAN_HPP_DEPRECATED( "The VK_AMD_gpu_shader_half_float extension has been deprecated by VK_KHR_shader_float16_int8." )
7055  VULKAN_HPP_CONSTEXPR_INLINE auto AMDGpuShaderHalfFloatSpecVersion = VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION;
7056
7057  //=== VK_AMD_shader_ballot ===
7058  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderBallotExtensionName = VK_AMD_SHADER_BALLOT_EXTENSION_NAME;
7059  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderBallotSpecVersion   = VK_AMD_SHADER_BALLOT_SPEC_VERSION;
7060
7061  //=== VK_KHR_video_encode_h264 ===
7062  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoEncodeH264ExtensionName = VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME;
7063  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoEncodeH264SpecVersion   = VK_KHR_VIDEO_ENCODE_H264_SPEC_VERSION;
7064
7065  //=== VK_KHR_video_encode_h265 ===
7066  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoEncodeH265ExtensionName = VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME;
7067  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoEncodeH265SpecVersion   = VK_KHR_VIDEO_ENCODE_H265_SPEC_VERSION;
7068
7069  //=== VK_KHR_video_decode_h264 ===
7070  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoDecodeH264ExtensionName = VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME;
7071  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoDecodeH264SpecVersion   = VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION;
7072
7073  //=== VK_AMD_texture_gather_bias_lod ===
7074  VULKAN_HPP_CONSTEXPR_INLINE auto AMDTextureGatherBiasLodExtensionName = VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME;
7075  VULKAN_HPP_CONSTEXPR_INLINE auto AMDTextureGatherBiasLodSpecVersion   = VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION;
7076
7077  //=== VK_AMD_shader_info ===
7078  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderInfoExtensionName = VK_AMD_SHADER_INFO_EXTENSION_NAME;
7079  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderInfoSpecVersion   = VK_AMD_SHADER_INFO_SPEC_VERSION;
7080
7081  //=== VK_KHR_dynamic_rendering ===
7082  VULKAN_HPP_DEPRECATED( "The VK_KHR_dynamic_rendering extension has been promoted to core in version 1.3." )
7083  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDynamicRenderingExtensionName = VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME;
7084  VULKAN_HPP_DEPRECATED( "The VK_KHR_dynamic_rendering extension has been promoted to core in version 1.3." )
7085  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDynamicRenderingSpecVersion = VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION;
7086
7087  //=== VK_AMD_shader_image_load_store_lod ===
7088  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderImageLoadStoreLodExtensionName = VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME;
7089  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderImageLoadStoreLodSpecVersion   = VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION;
7090
7091#if defined( VK_USE_PLATFORM_GGP )
7092  //=== VK_GGP_stream_descriptor_surface ===
7093  VULKAN_HPP_CONSTEXPR_INLINE auto GGPStreamDescriptorSurfaceExtensionName = VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME;
7094  VULKAN_HPP_CONSTEXPR_INLINE auto GGPStreamDescriptorSurfaceSpecVersion   = VK_GGP_STREAM_DESCRIPTOR_SURFACE_SPEC_VERSION;
7095#endif /*VK_USE_PLATFORM_GGP*/
7096
7097  //=== VK_NV_corner_sampled_image ===
7098  VULKAN_HPP_CONSTEXPR_INLINE auto NVCornerSampledImageExtensionName = VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME;
7099  VULKAN_HPP_CONSTEXPR_INLINE auto NVCornerSampledImageSpecVersion   = VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION;
7100
7101  //=== VK_KHR_multiview ===
7102  VULKAN_HPP_DEPRECATED( "The VK_KHR_multiview extension has been promoted to core in version 1.1." )
7103  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMultiviewExtensionName = VK_KHR_MULTIVIEW_EXTENSION_NAME;
7104  VULKAN_HPP_DEPRECATED( "The VK_KHR_multiview extension has been promoted to core in version 1.1." )
7105  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMultiviewSpecVersion = VK_KHR_MULTIVIEW_SPEC_VERSION;
7106
7107  //=== VK_IMG_format_pvrtc ===
7108  VULKAN_HPP_DEPRECATED( "The VK_IMG_format_pvrtc extension has been deprecated." )
7109  VULKAN_HPP_CONSTEXPR_INLINE auto IMGFormatPvrtcExtensionName = VK_IMG_FORMAT_PVRTC_EXTENSION_NAME;
7110  VULKAN_HPP_DEPRECATED( "The VK_IMG_format_pvrtc extension has been deprecated." )
7111  VULKAN_HPP_CONSTEXPR_INLINE auto IMGFormatPvrtcSpecVersion = VK_IMG_FORMAT_PVRTC_SPEC_VERSION;
7112
7113  //=== VK_NV_external_memory_capabilities ===
7114  VULKAN_HPP_DEPRECATED( "The VK_NV_external_memory_capabilities extension has been deprecated by VK_KHR_external_memory_capabilities." )
7115  VULKAN_HPP_CONSTEXPR_INLINE auto NVExternalMemoryCapabilitiesExtensionName = VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME;
7116  VULKAN_HPP_DEPRECATED( "The VK_NV_external_memory_capabilities extension has been deprecated by VK_KHR_external_memory_capabilities." )
7117  VULKAN_HPP_CONSTEXPR_INLINE auto NVExternalMemoryCapabilitiesSpecVersion = VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION;
7118
7119  //=== VK_NV_external_memory ===
7120  VULKAN_HPP_DEPRECATED( "The VK_NV_external_memory extension has been deprecated by VK_KHR_external_memory." )
7121  VULKAN_HPP_CONSTEXPR_INLINE auto NVExternalMemoryExtensionName = VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME;
7122  VULKAN_HPP_DEPRECATED( "The VK_NV_external_memory extension has been deprecated by VK_KHR_external_memory." )
7123  VULKAN_HPP_CONSTEXPR_INLINE auto NVExternalMemorySpecVersion = VK_NV_EXTERNAL_MEMORY_SPEC_VERSION;
7124
7125#if defined( VK_USE_PLATFORM_WIN32_KHR )
7126  //=== VK_NV_external_memory_win32 ===
7127  VULKAN_HPP_DEPRECATED( "The VK_NV_external_memory_win32 extension has been deprecated by VK_KHR_external_memory_win32." )
7128  VULKAN_HPP_CONSTEXPR_INLINE auto NVExternalMemoryWin32ExtensionName = VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME;
7129  VULKAN_HPP_DEPRECATED( "The VK_NV_external_memory_win32 extension has been deprecated by VK_KHR_external_memory_win32." )
7130  VULKAN_HPP_CONSTEXPR_INLINE auto NVExternalMemoryWin32SpecVersion = VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION;
7131#endif /*VK_USE_PLATFORM_WIN32_KHR*/
7132
7133#if defined( VK_USE_PLATFORM_WIN32_KHR )
7134  //=== VK_NV_win32_keyed_mutex ===
7135  VULKAN_HPP_DEPRECATED( "The VK_NV_win32_keyed_mutex extension has been promoted to VK_KHR_win32_keyed_mutex." )
7136  VULKAN_HPP_CONSTEXPR_INLINE auto NVWin32KeyedMutexExtensionName = VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME;
7137  VULKAN_HPP_DEPRECATED( "The VK_NV_win32_keyed_mutex extension has been promoted to VK_KHR_win32_keyed_mutex." )
7138  VULKAN_HPP_CONSTEXPR_INLINE auto NVWin32KeyedMutexSpecVersion = VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION;
7139#endif /*VK_USE_PLATFORM_WIN32_KHR*/
7140
7141  //=== VK_KHR_get_physical_device_properties2 ===
7142  VULKAN_HPP_DEPRECATED( "The VK_KHR_get_physical_device_properties2 extension has been promoted to core in version 1.1." )
7143  VULKAN_HPP_CONSTEXPR_INLINE auto KHRGetPhysicalDeviceProperties2ExtensionName = VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME;
7144  VULKAN_HPP_DEPRECATED( "The VK_KHR_get_physical_device_properties2 extension has been promoted to core in version 1.1." )
7145  VULKAN_HPP_CONSTEXPR_INLINE auto KHRGetPhysicalDeviceProperties2SpecVersion = VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION;
7146
7147  //=== VK_KHR_device_group ===
7148  VULKAN_HPP_DEPRECATED( "The VK_KHR_device_group extension has been promoted to core in version 1.1." )
7149  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDeviceGroupExtensionName = VK_KHR_DEVICE_GROUP_EXTENSION_NAME;
7150  VULKAN_HPP_DEPRECATED( "The VK_KHR_device_group extension has been promoted to core in version 1.1." )
7151  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDeviceGroupSpecVersion = VK_KHR_DEVICE_GROUP_SPEC_VERSION;
7152
7153  //=== VK_EXT_validation_flags ===
7154  VULKAN_HPP_DEPRECATED( "The VK_EXT_validation_flags extension has been deprecated by VK_EXT_layer_settings." )
7155  VULKAN_HPP_CONSTEXPR_INLINE auto EXTValidationFlagsExtensionName = VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME;
7156  VULKAN_HPP_DEPRECATED( "The VK_EXT_validation_flags extension has been deprecated by VK_EXT_layer_settings." )
7157  VULKAN_HPP_CONSTEXPR_INLINE auto EXTValidationFlagsSpecVersion = VK_EXT_VALIDATION_FLAGS_SPEC_VERSION;
7158
7159#if defined( VK_USE_PLATFORM_VI_NN )
7160  //=== VK_NN_vi_surface ===
7161  VULKAN_HPP_CONSTEXPR_INLINE auto NNViSurfaceExtensionName = VK_NN_VI_SURFACE_EXTENSION_NAME;
7162  VULKAN_HPP_CONSTEXPR_INLINE auto NNViSurfaceSpecVersion   = VK_NN_VI_SURFACE_SPEC_VERSION;
7163#endif /*VK_USE_PLATFORM_VI_NN*/
7164
7165  //=== VK_KHR_shader_draw_parameters ===
7166  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_draw_parameters extension has been promoted to core in version 1.1." )
7167  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderDrawParametersExtensionName = VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME;
7168  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_draw_parameters extension has been promoted to core in version 1.1." )
7169  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderDrawParametersSpecVersion = VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION;
7170
7171  //=== VK_EXT_shader_subgroup_ballot ===
7172  VULKAN_HPP_DEPRECATED( "The VK_EXT_shader_subgroup_ballot extension has been deprecated by VK_VERSION_1_2." )
7173  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderSubgroupBallotExtensionName = VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME;
7174  VULKAN_HPP_DEPRECATED( "The VK_EXT_shader_subgroup_ballot extension has been deprecated by VK_VERSION_1_2." )
7175  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderSubgroupBallotSpecVersion = VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION;
7176
7177  //=== VK_EXT_shader_subgroup_vote ===
7178  VULKAN_HPP_DEPRECATED( "The VK_EXT_shader_subgroup_vote extension has been deprecated by VK_VERSION_1_1." )
7179  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderSubgroupVoteExtensionName = VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME;
7180  VULKAN_HPP_DEPRECATED( "The VK_EXT_shader_subgroup_vote extension has been deprecated by VK_VERSION_1_1." )
7181  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderSubgroupVoteSpecVersion = VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION;
7182
7183  //=== VK_EXT_texture_compression_astc_hdr ===
7184  VULKAN_HPP_DEPRECATED( "The VK_EXT_texture_compression_astc_hdr extension has been promoted to core in version 1.3." )
7185  VULKAN_HPP_CONSTEXPR_INLINE auto EXTTextureCompressionAstcHdrExtensionName = VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME;
7186  VULKAN_HPP_DEPRECATED( "The VK_EXT_texture_compression_astc_hdr extension has been promoted to core in version 1.3." )
7187  VULKAN_HPP_CONSTEXPR_INLINE auto EXTTextureCompressionAstcHdrSpecVersion = VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION;
7188
7189  //=== VK_EXT_astc_decode_mode ===
7190  VULKAN_HPP_CONSTEXPR_INLINE auto EXTAstcDecodeModeExtensionName = VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME;
7191  VULKAN_HPP_CONSTEXPR_INLINE auto EXTAstcDecodeModeSpecVersion   = VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION;
7192
7193  //=== VK_EXT_pipeline_robustness ===
7194  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelineRobustnessExtensionName = VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME;
7195  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelineRobustnessSpecVersion   = VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION;
7196
7197  //=== VK_KHR_maintenance1 ===
7198  VULKAN_HPP_DEPRECATED( "The VK_KHR_maintenance1 extension has been promoted to core in version 1.1." )
7199  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance1ExtensionName = VK_KHR_MAINTENANCE_1_EXTENSION_NAME;
7200  VULKAN_HPP_DEPRECATED( "The VK_KHR_maintenance1 extension has been promoted to core in version 1.1." )
7201  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance1SpecVersion = VK_KHR_MAINTENANCE_1_SPEC_VERSION;
7202
7203  //=== VK_KHR_device_group_creation ===
7204  VULKAN_HPP_DEPRECATED( "The VK_KHR_device_group_creation extension has been promoted to core in version 1.1." )
7205  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDeviceGroupCreationExtensionName = VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME;
7206  VULKAN_HPP_DEPRECATED( "The VK_KHR_device_group_creation extension has been promoted to core in version 1.1." )
7207  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDeviceGroupCreationSpecVersion = VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION;
7208
7209  //=== VK_KHR_external_memory_capabilities ===
7210  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_memory_capabilities extension has been promoted to core in version 1.1." )
7211  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalMemoryCapabilitiesExtensionName = VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME;
7212  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_memory_capabilities extension has been promoted to core in version 1.1." )
7213  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalMemoryCapabilitiesSpecVersion = VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION;
7214
7215  //=== VK_KHR_external_memory ===
7216  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_memory extension has been promoted to core in version 1.1." )
7217  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalMemoryExtensionName = VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME;
7218  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_memory extension has been promoted to core in version 1.1." )
7219  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalMemorySpecVersion = VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION;
7220
7221#if defined( VK_USE_PLATFORM_WIN32_KHR )
7222  //=== VK_KHR_external_memory_win32 ===
7223  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalMemoryWin32ExtensionName = VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME;
7224  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalMemoryWin32SpecVersion   = VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION;
7225#endif /*VK_USE_PLATFORM_WIN32_KHR*/
7226
7227  //=== VK_KHR_external_memory_fd ===
7228  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalMemoryFdExtensionName = VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME;
7229  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalMemoryFdSpecVersion   = VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION;
7230
7231#if defined( VK_USE_PLATFORM_WIN32_KHR )
7232  //=== VK_KHR_win32_keyed_mutex ===
7233  VULKAN_HPP_CONSTEXPR_INLINE auto KHRWin32KeyedMutexExtensionName = VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME;
7234  VULKAN_HPP_CONSTEXPR_INLINE auto KHRWin32KeyedMutexSpecVersion   = VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION;
7235#endif /*VK_USE_PLATFORM_WIN32_KHR*/
7236
7237  //=== VK_KHR_external_semaphore_capabilities ===
7238  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_semaphore_capabilities extension has been promoted to core in version 1.1." )
7239  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalSemaphoreCapabilitiesExtensionName = VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME;
7240  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_semaphore_capabilities extension has been promoted to core in version 1.1." )
7241  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalSemaphoreCapabilitiesSpecVersion = VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION;
7242
7243  //=== VK_KHR_external_semaphore ===
7244  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_semaphore extension has been promoted to core in version 1.1." )
7245  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalSemaphoreExtensionName = VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME;
7246  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_semaphore extension has been promoted to core in version 1.1." )
7247  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalSemaphoreSpecVersion = VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION;
7248
7249#if defined( VK_USE_PLATFORM_WIN32_KHR )
7250  //=== VK_KHR_external_semaphore_win32 ===
7251  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalSemaphoreWin32ExtensionName = VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME;
7252  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalSemaphoreWin32SpecVersion   = VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION;
7253#endif /*VK_USE_PLATFORM_WIN32_KHR*/
7254
7255  //=== VK_KHR_external_semaphore_fd ===
7256  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalSemaphoreFdExtensionName = VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME;
7257  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalSemaphoreFdSpecVersion   = VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION;
7258
7259  //=== VK_KHR_push_descriptor ===
7260  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPushDescriptorExtensionName = VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME;
7261  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPushDescriptorSpecVersion   = VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION;
7262
7263  //=== VK_EXT_conditional_rendering ===
7264  VULKAN_HPP_CONSTEXPR_INLINE auto EXTConditionalRenderingExtensionName = VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME;
7265  VULKAN_HPP_CONSTEXPR_INLINE auto EXTConditionalRenderingSpecVersion   = VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION;
7266
7267  //=== VK_KHR_shader_float16_int8 ===
7268  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_float16_int8 extension has been promoted to core in version 1.2." )
7269  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderFloat16Int8ExtensionName = VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME;
7270  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_float16_int8 extension has been promoted to core in version 1.2." )
7271  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderFloat16Int8SpecVersion = VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION;
7272
7273  //=== VK_KHR_16bit_storage ===
7274  VULKAN_HPP_DEPRECATED( "The VK_KHR_16bit_storage extension has been promoted to core in version 1.1." )
7275  VULKAN_HPP_CONSTEXPR_INLINE auto KHR16BitStorageExtensionName = VK_KHR_16BIT_STORAGE_EXTENSION_NAME;
7276  VULKAN_HPP_DEPRECATED( "The VK_KHR_16bit_storage extension has been promoted to core in version 1.1." )
7277  VULKAN_HPP_CONSTEXPR_INLINE auto KHR16BitStorageSpecVersion = VK_KHR_16BIT_STORAGE_SPEC_VERSION;
7278
7279  //=== VK_KHR_incremental_present ===
7280  VULKAN_HPP_CONSTEXPR_INLINE auto KHRIncrementalPresentExtensionName = VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME;
7281  VULKAN_HPP_CONSTEXPR_INLINE auto KHRIncrementalPresentSpecVersion   = VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION;
7282
7283  //=== VK_KHR_descriptor_update_template ===
7284  VULKAN_HPP_DEPRECATED( "The VK_KHR_descriptor_update_template extension has been promoted to core in version 1.1." )
7285  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDescriptorUpdateTemplateExtensionName = VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME;
7286  VULKAN_HPP_DEPRECATED( "The VK_KHR_descriptor_update_template extension has been promoted to core in version 1.1." )
7287  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDescriptorUpdateTemplateSpecVersion = VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION;
7288
7289  //=== VK_NV_clip_space_w_scaling ===
7290  VULKAN_HPP_CONSTEXPR_INLINE auto NVClipSpaceWScalingExtensionName = VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME;
7291  VULKAN_HPP_CONSTEXPR_INLINE auto NVClipSpaceWScalingSpecVersion   = VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION;
7292
7293  //=== VK_EXT_direct_mode_display ===
7294  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDirectModeDisplayExtensionName = VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME;
7295  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDirectModeDisplaySpecVersion   = VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION;
7296
7297#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
7298  //=== VK_EXT_acquire_xlib_display ===
7299  VULKAN_HPP_CONSTEXPR_INLINE auto EXTAcquireXlibDisplayExtensionName = VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME;
7300  VULKAN_HPP_CONSTEXPR_INLINE auto EXTAcquireXlibDisplaySpecVersion   = VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION;
7301#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
7302
7303  //=== VK_EXT_display_surface_counter ===
7304  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDisplaySurfaceCounterExtensionName = VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME;
7305  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDisplaySurfaceCounterSpecVersion   = VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION;
7306
7307  //=== VK_EXT_display_control ===
7308  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDisplayControlExtensionName = VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME;
7309  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDisplayControlSpecVersion   = VK_EXT_DISPLAY_CONTROL_SPEC_VERSION;
7310
7311  //=== VK_GOOGLE_display_timing ===
7312  VULKAN_HPP_CONSTEXPR_INLINE auto GOOGLEDisplayTimingExtensionName = VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME;
7313  VULKAN_HPP_CONSTEXPR_INLINE auto GOOGLEDisplayTimingSpecVersion   = VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION;
7314
7315  //=== VK_NV_sample_mask_override_coverage ===
7316  VULKAN_HPP_CONSTEXPR_INLINE auto NVSampleMaskOverrideCoverageExtensionName = VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME;
7317  VULKAN_HPP_CONSTEXPR_INLINE auto NVSampleMaskOverrideCoverageSpecVersion   = VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION;
7318
7319  //=== VK_NV_geometry_shader_passthrough ===
7320  VULKAN_HPP_CONSTEXPR_INLINE auto NVGeometryShaderPassthroughExtensionName = VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME;
7321  VULKAN_HPP_CONSTEXPR_INLINE auto NVGeometryShaderPassthroughSpecVersion   = VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION;
7322
7323  //=== VK_NV_viewport_array2 ===
7324  VULKAN_HPP_CONSTEXPR_INLINE auto NVViewportArray2ExtensionName = VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME;
7325  VULKAN_HPP_CONSTEXPR_INLINE auto NVViewportArray2SpecVersion   = VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION;
7326
7327  //=== VK_NVX_multiview_per_view_attributes ===
7328  VULKAN_HPP_CONSTEXPR_INLINE auto NVXMultiviewPerViewAttributesExtensionName = VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME;
7329  VULKAN_HPP_CONSTEXPR_INLINE auto NVXMultiviewPerViewAttributesSpecVersion   = VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION;
7330
7331  //=== VK_NV_viewport_swizzle ===
7332  VULKAN_HPP_CONSTEXPR_INLINE auto NVViewportSwizzleExtensionName = VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME;
7333  VULKAN_HPP_CONSTEXPR_INLINE auto NVViewportSwizzleSpecVersion   = VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION;
7334
7335  //=== VK_EXT_discard_rectangles ===
7336  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDiscardRectanglesExtensionName = VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME;
7337  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDiscardRectanglesSpecVersion   = VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION;
7338
7339  //=== VK_EXT_conservative_rasterization ===
7340  VULKAN_HPP_CONSTEXPR_INLINE auto EXTConservativeRasterizationExtensionName = VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME;
7341  VULKAN_HPP_CONSTEXPR_INLINE auto EXTConservativeRasterizationSpecVersion   = VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION;
7342
7343  //=== VK_EXT_depth_clip_enable ===
7344  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDepthClipEnableExtensionName = VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME;
7345  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDepthClipEnableSpecVersion   = VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION;
7346
7347  //=== VK_EXT_swapchain_colorspace ===
7348  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSwapchainColorSpaceExtensionName = VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME;
7349  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSwapchainColorSpaceSpecVersion   = VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION;
7350
7351  //=== VK_EXT_hdr_metadata ===
7352  VULKAN_HPP_CONSTEXPR_INLINE auto EXTHdrMetadataExtensionName = VK_EXT_HDR_METADATA_EXTENSION_NAME;
7353  VULKAN_HPP_CONSTEXPR_INLINE auto EXTHdrMetadataSpecVersion   = VK_EXT_HDR_METADATA_SPEC_VERSION;
7354
7355  //=== VK_KHR_imageless_framebuffer ===
7356  VULKAN_HPP_DEPRECATED( "The VK_KHR_imageless_framebuffer extension has been promoted to core in version 1.2." )
7357  VULKAN_HPP_CONSTEXPR_INLINE auto KHRImagelessFramebufferExtensionName = VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME;
7358  VULKAN_HPP_DEPRECATED( "The VK_KHR_imageless_framebuffer extension has been promoted to core in version 1.2." )
7359  VULKAN_HPP_CONSTEXPR_INLINE auto KHRImagelessFramebufferSpecVersion = VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION;
7360
7361  //=== VK_KHR_create_renderpass2 ===
7362  VULKAN_HPP_DEPRECATED( "The VK_KHR_create_renderpass2 extension has been promoted to core in version 1.2." )
7363  VULKAN_HPP_CONSTEXPR_INLINE auto KHRCreateRenderpass2ExtensionName = VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME;
7364  VULKAN_HPP_DEPRECATED( "The VK_KHR_create_renderpass2 extension has been promoted to core in version 1.2." )
7365  VULKAN_HPP_CONSTEXPR_INLINE auto KHRCreateRenderpass2SpecVersion = VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION;
7366
7367  //=== VK_IMG_relaxed_line_rasterization ===
7368  VULKAN_HPP_CONSTEXPR_INLINE auto IMGRelaxedLineRasterizationExtensionName = VK_IMG_RELAXED_LINE_RASTERIZATION_EXTENSION_NAME;
7369  VULKAN_HPP_CONSTEXPR_INLINE auto IMGRelaxedLineRasterizationSpecVersion   = VK_IMG_RELAXED_LINE_RASTERIZATION_SPEC_VERSION;
7370
7371  //=== VK_KHR_shared_presentable_image ===
7372  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSharedPresentableImageExtensionName = VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME;
7373  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSharedPresentableImageSpecVersion   = VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION;
7374
7375  //=== VK_KHR_external_fence_capabilities ===
7376  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_fence_capabilities extension has been promoted to core in version 1.1." )
7377  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalFenceCapabilitiesExtensionName = VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME;
7378  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_fence_capabilities extension has been promoted to core in version 1.1." )
7379  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalFenceCapabilitiesSpecVersion = VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION;
7380
7381  //=== VK_KHR_external_fence ===
7382  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_fence extension has been promoted to core in version 1.1." )
7383  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalFenceExtensionName = VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME;
7384  VULKAN_HPP_DEPRECATED( "The VK_KHR_external_fence extension has been promoted to core in version 1.1." )
7385  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalFenceSpecVersion = VK_KHR_EXTERNAL_FENCE_SPEC_VERSION;
7386
7387#if defined( VK_USE_PLATFORM_WIN32_KHR )
7388  //=== VK_KHR_external_fence_win32 ===
7389  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalFenceWin32ExtensionName = VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME;
7390  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalFenceWin32SpecVersion   = VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION;
7391#endif /*VK_USE_PLATFORM_WIN32_KHR*/
7392
7393  //=== VK_KHR_external_fence_fd ===
7394  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalFenceFdExtensionName = VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME;
7395  VULKAN_HPP_CONSTEXPR_INLINE auto KHRExternalFenceFdSpecVersion   = VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION;
7396
7397  //=== VK_KHR_performance_query ===
7398  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPerformanceQueryExtensionName = VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME;
7399  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPerformanceQuerySpecVersion   = VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION;
7400
7401  //=== VK_KHR_maintenance2 ===
7402  VULKAN_HPP_DEPRECATED( "The VK_KHR_maintenance2 extension has been promoted to core in version 1.1." )
7403  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance2ExtensionName = VK_KHR_MAINTENANCE_2_EXTENSION_NAME;
7404  VULKAN_HPP_DEPRECATED( "The VK_KHR_maintenance2 extension has been promoted to core in version 1.1." )
7405  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance2SpecVersion = VK_KHR_MAINTENANCE_2_SPEC_VERSION;
7406
7407  //=== VK_KHR_get_surface_capabilities2 ===
7408  VULKAN_HPP_CONSTEXPR_INLINE auto KHRGetSurfaceCapabilities2ExtensionName = VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME;
7409  VULKAN_HPP_CONSTEXPR_INLINE auto KHRGetSurfaceCapabilities2SpecVersion   = VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION;
7410
7411  //=== VK_KHR_variable_pointers ===
7412  VULKAN_HPP_DEPRECATED( "The VK_KHR_variable_pointers extension has been promoted to core in version 1.1." )
7413  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVariablePointersExtensionName = VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME;
7414  VULKAN_HPP_DEPRECATED( "The VK_KHR_variable_pointers extension has been promoted to core in version 1.1." )
7415  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVariablePointersSpecVersion = VK_KHR_VARIABLE_POINTERS_SPEC_VERSION;
7416
7417  //=== VK_KHR_get_display_properties2 ===
7418  VULKAN_HPP_CONSTEXPR_INLINE auto KHRGetDisplayProperties2ExtensionName = VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME;
7419  VULKAN_HPP_CONSTEXPR_INLINE auto KHRGetDisplayProperties2SpecVersion   = VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION;
7420
7421#if defined( VK_USE_PLATFORM_IOS_MVK )
7422  //=== VK_MVK_ios_surface ===
7423  VULKAN_HPP_DEPRECATED( "The VK_MVK_ios_surface extension has been deprecated by VK_EXT_metal_surface." )
7424  VULKAN_HPP_CONSTEXPR_INLINE auto MVKIosSurfaceExtensionName = VK_MVK_IOS_SURFACE_EXTENSION_NAME;
7425  VULKAN_HPP_DEPRECATED( "The VK_MVK_ios_surface extension has been deprecated by VK_EXT_metal_surface." )
7426  VULKAN_HPP_CONSTEXPR_INLINE auto MVKIosSurfaceSpecVersion = VK_MVK_IOS_SURFACE_SPEC_VERSION;
7427#endif /*VK_USE_PLATFORM_IOS_MVK*/
7428
7429#if defined( VK_USE_PLATFORM_MACOS_MVK )
7430  //=== VK_MVK_macos_surface ===
7431  VULKAN_HPP_DEPRECATED( "The VK_MVK_macos_surface extension has been deprecated by VK_EXT_metal_surface." )
7432  VULKAN_HPP_CONSTEXPR_INLINE auto MVKMacosSurfaceExtensionName = VK_MVK_MACOS_SURFACE_EXTENSION_NAME;
7433  VULKAN_HPP_DEPRECATED( "The VK_MVK_macos_surface extension has been deprecated by VK_EXT_metal_surface." )
7434  VULKAN_HPP_CONSTEXPR_INLINE auto MVKMacosSurfaceSpecVersion = VK_MVK_MACOS_SURFACE_SPEC_VERSION;
7435#endif /*VK_USE_PLATFORM_MACOS_MVK*/
7436
7437  //=== VK_EXT_external_memory_dma_buf ===
7438  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExternalMemoryDmaBufExtensionName = VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME;
7439  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExternalMemoryDmaBufSpecVersion   = VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION;
7440
7441  //=== VK_EXT_queue_family_foreign ===
7442  VULKAN_HPP_CONSTEXPR_INLINE auto EXTQueueFamilyForeignExtensionName = VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME;
7443  VULKAN_HPP_CONSTEXPR_INLINE auto EXTQueueFamilyForeignSpecVersion   = VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION;
7444
7445  //=== VK_KHR_dedicated_allocation ===
7446  VULKAN_HPP_DEPRECATED( "The VK_KHR_dedicated_allocation extension has been promoted to core in version 1.1." )
7447  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDedicatedAllocationExtensionName = VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME;
7448  VULKAN_HPP_DEPRECATED( "The VK_KHR_dedicated_allocation extension has been promoted to core in version 1.1." )
7449  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDedicatedAllocationSpecVersion = VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION;
7450
7451  //=== VK_EXT_debug_utils ===
7452  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDebugUtilsExtensionName = VK_EXT_DEBUG_UTILS_EXTENSION_NAME;
7453  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDebugUtilsSpecVersion   = VK_EXT_DEBUG_UTILS_SPEC_VERSION;
7454
7455#if defined( VK_USE_PLATFORM_ANDROID_KHR )
7456  //=== VK_ANDROID_external_memory_android_hardware_buffer ===
7457  VULKAN_HPP_CONSTEXPR_INLINE auto ANDROIDExternalMemoryAndroidHardwareBufferExtensionName = VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME;
7458  VULKAN_HPP_CONSTEXPR_INLINE auto ANDROIDExternalMemoryAndroidHardwareBufferSpecVersion   = VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION;
7459#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
7460
7461  //=== VK_EXT_sampler_filter_minmax ===
7462  VULKAN_HPP_DEPRECATED( "The VK_EXT_sampler_filter_minmax extension has been promoted to core in version 1.2." )
7463  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSamplerFilterMinmaxExtensionName = VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME;
7464  VULKAN_HPP_DEPRECATED( "The VK_EXT_sampler_filter_minmax extension has been promoted to core in version 1.2." )
7465  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSamplerFilterMinmaxSpecVersion = VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION;
7466
7467  //=== VK_KHR_storage_buffer_storage_class ===
7468  VULKAN_HPP_DEPRECATED( "The VK_KHR_storage_buffer_storage_class extension has been promoted to core in version 1.1." )
7469  VULKAN_HPP_CONSTEXPR_INLINE auto KHRStorageBufferStorageClassExtensionName = VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME;
7470  VULKAN_HPP_DEPRECATED( "The VK_KHR_storage_buffer_storage_class extension has been promoted to core in version 1.1." )
7471  VULKAN_HPP_CONSTEXPR_INLINE auto KHRStorageBufferStorageClassSpecVersion = VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION;
7472
7473  //=== VK_AMD_gpu_shader_int16 ===
7474  VULKAN_HPP_DEPRECATED( "The VK_AMD_gpu_shader_int16 extension has been deprecated by VK_KHR_shader_float16_int8." )
7475  VULKAN_HPP_CONSTEXPR_INLINE auto AMDGpuShaderInt16ExtensionName = VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME;
7476  VULKAN_HPP_DEPRECATED( "The VK_AMD_gpu_shader_int16 extension has been deprecated by VK_KHR_shader_float16_int8." )
7477  VULKAN_HPP_CONSTEXPR_INLINE auto AMDGpuShaderInt16SpecVersion = VK_AMD_GPU_SHADER_INT16_SPEC_VERSION;
7478
7479#if defined( VK_ENABLE_BETA_EXTENSIONS )
7480  //=== VK_AMDX_shader_enqueue ===
7481  VULKAN_HPP_CONSTEXPR_INLINE auto AMDXShaderEnqueueExtensionName = VK_AMDX_SHADER_ENQUEUE_EXTENSION_NAME;
7482  VULKAN_HPP_CONSTEXPR_INLINE auto AMDXShaderEnqueueSpecVersion   = VK_AMDX_SHADER_ENQUEUE_SPEC_VERSION;
7483#endif /*VK_ENABLE_BETA_EXTENSIONS*/
7484
7485  //=== VK_AMD_mixed_attachment_samples ===
7486  VULKAN_HPP_CONSTEXPR_INLINE auto AMDMixedAttachmentSamplesExtensionName = VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME;
7487  VULKAN_HPP_CONSTEXPR_INLINE auto AMDMixedAttachmentSamplesSpecVersion   = VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION;
7488
7489  //=== VK_AMD_shader_fragment_mask ===
7490  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderFragmentMaskExtensionName = VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME;
7491  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderFragmentMaskSpecVersion   = VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION;
7492
7493  //=== VK_EXT_inline_uniform_block ===
7494  VULKAN_HPP_DEPRECATED( "The VK_EXT_inline_uniform_block extension has been promoted to core in version 1.3." )
7495  VULKAN_HPP_CONSTEXPR_INLINE auto EXTInlineUniformBlockExtensionName = VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME;
7496  VULKAN_HPP_DEPRECATED( "The VK_EXT_inline_uniform_block extension has been promoted to core in version 1.3." )
7497  VULKAN_HPP_CONSTEXPR_INLINE auto EXTInlineUniformBlockSpecVersion = VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION;
7498
7499  //=== VK_EXT_shader_stencil_export ===
7500  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderStencilExportExtensionName = VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME;
7501  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderStencilExportSpecVersion   = VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION;
7502
7503  //=== VK_EXT_sample_locations ===
7504  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSampleLocationsExtensionName = VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME;
7505  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSampleLocationsSpecVersion   = VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION;
7506
7507  //=== VK_KHR_relaxed_block_layout ===
7508  VULKAN_HPP_DEPRECATED( "The VK_KHR_relaxed_block_layout extension has been promoted to core in version 1.1." )
7509  VULKAN_HPP_CONSTEXPR_INLINE auto KHRRelaxedBlockLayoutExtensionName = VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME;
7510  VULKAN_HPP_DEPRECATED( "The VK_KHR_relaxed_block_layout extension has been promoted to core in version 1.1." )
7511  VULKAN_HPP_CONSTEXPR_INLINE auto KHRRelaxedBlockLayoutSpecVersion = VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION;
7512
7513  //=== VK_KHR_get_memory_requirements2 ===
7514  VULKAN_HPP_DEPRECATED( "The VK_KHR_get_memory_requirements2 extension has been promoted to core in version 1.1." )
7515  VULKAN_HPP_CONSTEXPR_INLINE auto KHRGetMemoryRequirements2ExtensionName = VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME;
7516  VULKAN_HPP_DEPRECATED( "The VK_KHR_get_memory_requirements2 extension has been promoted to core in version 1.1." )
7517  VULKAN_HPP_CONSTEXPR_INLINE auto KHRGetMemoryRequirements2SpecVersion = VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION;
7518
7519  //=== VK_KHR_image_format_list ===
7520  VULKAN_HPP_DEPRECATED( "The VK_KHR_image_format_list extension has been promoted to core in version 1.2." )
7521  VULKAN_HPP_CONSTEXPR_INLINE auto KHRImageFormatListExtensionName = VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME;
7522  VULKAN_HPP_DEPRECATED( "The VK_KHR_image_format_list extension has been promoted to core in version 1.2." )
7523  VULKAN_HPP_CONSTEXPR_INLINE auto KHRImageFormatListSpecVersion = VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION;
7524
7525  //=== VK_EXT_blend_operation_advanced ===
7526  VULKAN_HPP_CONSTEXPR_INLINE auto EXTBlendOperationAdvancedExtensionName = VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME;
7527  VULKAN_HPP_CONSTEXPR_INLINE auto EXTBlendOperationAdvancedSpecVersion   = VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION;
7528
7529  //=== VK_NV_fragment_coverage_to_color ===
7530  VULKAN_HPP_CONSTEXPR_INLINE auto NVFragmentCoverageToColorExtensionName = VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME;
7531  VULKAN_HPP_CONSTEXPR_INLINE auto NVFragmentCoverageToColorSpecVersion   = VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION;
7532
7533  //=== VK_KHR_acceleration_structure ===
7534  VULKAN_HPP_CONSTEXPR_INLINE auto KHRAccelerationStructureExtensionName = VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME;
7535  VULKAN_HPP_CONSTEXPR_INLINE auto KHRAccelerationStructureSpecVersion   = VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION;
7536
7537  //=== VK_KHR_ray_tracing_pipeline ===
7538  VULKAN_HPP_CONSTEXPR_INLINE auto KHRRayTracingPipelineExtensionName = VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME;
7539  VULKAN_HPP_CONSTEXPR_INLINE auto KHRRayTracingPipelineSpecVersion   = VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION;
7540
7541  //=== VK_KHR_ray_query ===
7542  VULKAN_HPP_CONSTEXPR_INLINE auto KHRRayQueryExtensionName = VK_KHR_RAY_QUERY_EXTENSION_NAME;
7543  VULKAN_HPP_CONSTEXPR_INLINE auto KHRRayQuerySpecVersion   = VK_KHR_RAY_QUERY_SPEC_VERSION;
7544
7545  //=== VK_NV_framebuffer_mixed_samples ===
7546  VULKAN_HPP_CONSTEXPR_INLINE auto NVFramebufferMixedSamplesExtensionName = VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME;
7547  VULKAN_HPP_CONSTEXPR_INLINE auto NVFramebufferMixedSamplesSpecVersion   = VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION;
7548
7549  //=== VK_NV_fill_rectangle ===
7550  VULKAN_HPP_CONSTEXPR_INLINE auto NVFillRectangleExtensionName = VK_NV_FILL_RECTANGLE_EXTENSION_NAME;
7551  VULKAN_HPP_CONSTEXPR_INLINE auto NVFillRectangleSpecVersion   = VK_NV_FILL_RECTANGLE_SPEC_VERSION;
7552
7553  //=== VK_NV_shader_sm_builtins ===
7554  VULKAN_HPP_CONSTEXPR_INLINE auto NVShaderSmBuiltinsExtensionName = VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME;
7555  VULKAN_HPP_CONSTEXPR_INLINE auto NVShaderSmBuiltinsSpecVersion   = VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION;
7556
7557  //=== VK_EXT_post_depth_coverage ===
7558  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPostDepthCoverageExtensionName = VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME;
7559  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPostDepthCoverageSpecVersion   = VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION;
7560
7561  //=== VK_KHR_sampler_ycbcr_conversion ===
7562  VULKAN_HPP_DEPRECATED( "The VK_KHR_sampler_ycbcr_conversion extension has been promoted to core in version 1.1." )
7563  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSamplerYcbcrConversionExtensionName = VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME;
7564  VULKAN_HPP_DEPRECATED( "The VK_KHR_sampler_ycbcr_conversion extension has been promoted to core in version 1.1." )
7565  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSamplerYcbcrConversionSpecVersion = VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION;
7566
7567  //=== VK_KHR_bind_memory2 ===
7568  VULKAN_HPP_DEPRECATED( "The VK_KHR_bind_memory2 extension has been promoted to core in version 1.1." )
7569  VULKAN_HPP_CONSTEXPR_INLINE auto KHRBindMemory2ExtensionName = VK_KHR_BIND_MEMORY_2_EXTENSION_NAME;
7570  VULKAN_HPP_DEPRECATED( "The VK_KHR_bind_memory2 extension has been promoted to core in version 1.1." )
7571  VULKAN_HPP_CONSTEXPR_INLINE auto KHRBindMemory2SpecVersion = VK_KHR_BIND_MEMORY_2_SPEC_VERSION;
7572
7573  //=== VK_EXT_image_drm_format_modifier ===
7574  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageDrmFormatModifierExtensionName = VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME;
7575  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageDrmFormatModifierSpecVersion   = VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION;
7576
7577  //=== VK_EXT_validation_cache ===
7578  VULKAN_HPP_CONSTEXPR_INLINE auto EXTValidationCacheExtensionName = VK_EXT_VALIDATION_CACHE_EXTENSION_NAME;
7579  VULKAN_HPP_CONSTEXPR_INLINE auto EXTValidationCacheSpecVersion   = VK_EXT_VALIDATION_CACHE_SPEC_VERSION;
7580
7581  //=== VK_EXT_descriptor_indexing ===
7582  VULKAN_HPP_DEPRECATED( "The VK_EXT_descriptor_indexing extension has been promoted to core in version 1.2." )
7583  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDescriptorIndexingExtensionName = VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME;
7584  VULKAN_HPP_DEPRECATED( "The VK_EXT_descriptor_indexing extension has been promoted to core in version 1.2." )
7585  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDescriptorIndexingSpecVersion = VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION;
7586
7587  //=== VK_EXT_shader_viewport_index_layer ===
7588  VULKAN_HPP_DEPRECATED( "The VK_EXT_shader_viewport_index_layer extension has been promoted to core in version 1.2." )
7589  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderViewportIndexLayerExtensionName = VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME;
7590  VULKAN_HPP_DEPRECATED( "The VK_EXT_shader_viewport_index_layer extension has been promoted to core in version 1.2." )
7591  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderViewportIndexLayerSpecVersion = VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION;
7592
7593#if defined( VK_ENABLE_BETA_EXTENSIONS )
7594  //=== VK_KHR_portability_subset ===
7595  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPortabilitySubsetExtensionName = VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME;
7596  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPortabilitySubsetSpecVersion   = VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION;
7597#endif /*VK_ENABLE_BETA_EXTENSIONS*/
7598
7599  //=== VK_NV_shading_rate_image ===
7600  VULKAN_HPP_CONSTEXPR_INLINE auto NVShadingRateImageExtensionName = VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME;
7601  VULKAN_HPP_CONSTEXPR_INLINE auto NVShadingRateImageSpecVersion   = VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION;
7602
7603  //=== VK_NV_ray_tracing ===
7604  VULKAN_HPP_CONSTEXPR_INLINE auto NVRayTracingExtensionName = VK_NV_RAY_TRACING_EXTENSION_NAME;
7605  VULKAN_HPP_CONSTEXPR_INLINE auto NVRayTracingSpecVersion   = VK_NV_RAY_TRACING_SPEC_VERSION;
7606
7607  //=== VK_NV_representative_fragment_test ===
7608  VULKAN_HPP_CONSTEXPR_INLINE auto NVRepresentativeFragmentTestExtensionName = VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME;
7609  VULKAN_HPP_CONSTEXPR_INLINE auto NVRepresentativeFragmentTestSpecVersion   = VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION;
7610
7611  //=== VK_KHR_maintenance3 ===
7612  VULKAN_HPP_DEPRECATED( "The VK_KHR_maintenance3 extension has been promoted to core in version 1.1." )
7613  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance3ExtensionName = VK_KHR_MAINTENANCE_3_EXTENSION_NAME;
7614  VULKAN_HPP_DEPRECATED( "The VK_KHR_maintenance3 extension has been promoted to core in version 1.1." )
7615  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance3SpecVersion = VK_KHR_MAINTENANCE_3_SPEC_VERSION;
7616
7617  //=== VK_KHR_draw_indirect_count ===
7618  VULKAN_HPP_DEPRECATED( "The VK_KHR_draw_indirect_count extension has been promoted to core in version 1.2." )
7619  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDrawIndirectCountExtensionName = VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME;
7620  VULKAN_HPP_DEPRECATED( "The VK_KHR_draw_indirect_count extension has been promoted to core in version 1.2." )
7621  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDrawIndirectCountSpecVersion = VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION;
7622
7623  //=== VK_EXT_filter_cubic ===
7624  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFilterCubicExtensionName = VK_EXT_FILTER_CUBIC_EXTENSION_NAME;
7625  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFilterCubicSpecVersion   = VK_EXT_FILTER_CUBIC_SPEC_VERSION;
7626
7627  //=== VK_QCOM_render_pass_shader_resolve ===
7628  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMRenderPassShaderResolveExtensionName = VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME;
7629  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMRenderPassShaderResolveSpecVersion   = VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION;
7630
7631  //=== VK_EXT_global_priority ===
7632  VULKAN_HPP_DEPRECATED( "The VK_EXT_global_priority extension has been promoted to VK_KHR_global_priority." )
7633  VULKAN_HPP_CONSTEXPR_INLINE auto EXTGlobalPriorityExtensionName = VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME;
7634  VULKAN_HPP_DEPRECATED( "The VK_EXT_global_priority extension has been promoted to VK_KHR_global_priority." )
7635  VULKAN_HPP_CONSTEXPR_INLINE auto EXTGlobalPrioritySpecVersion = VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION;
7636
7637  //=== VK_KHR_shader_subgroup_extended_types ===
7638  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_subgroup_extended_types extension has been promoted to core in version 1.2." )
7639  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderSubgroupExtendedTypesExtensionName = VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME;
7640  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_subgroup_extended_types extension has been promoted to core in version 1.2." )
7641  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderSubgroupExtendedTypesSpecVersion = VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION;
7642
7643  //=== VK_KHR_8bit_storage ===
7644  VULKAN_HPP_DEPRECATED( "The VK_KHR_8bit_storage extension has been promoted to core in version 1.2." )
7645  VULKAN_HPP_CONSTEXPR_INLINE auto KHR8BitStorageExtensionName = VK_KHR_8BIT_STORAGE_EXTENSION_NAME;
7646  VULKAN_HPP_DEPRECATED( "The VK_KHR_8bit_storage extension has been promoted to core in version 1.2." )
7647  VULKAN_HPP_CONSTEXPR_INLINE auto KHR8BitStorageSpecVersion = VK_KHR_8BIT_STORAGE_SPEC_VERSION;
7648
7649  //=== VK_EXT_external_memory_host ===
7650  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExternalMemoryHostExtensionName = VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME;
7651  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExternalMemoryHostSpecVersion   = VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION;
7652
7653  //=== VK_AMD_buffer_marker ===
7654  VULKAN_HPP_CONSTEXPR_INLINE auto AMDBufferMarkerExtensionName = VK_AMD_BUFFER_MARKER_EXTENSION_NAME;
7655  VULKAN_HPP_CONSTEXPR_INLINE auto AMDBufferMarkerSpecVersion   = VK_AMD_BUFFER_MARKER_SPEC_VERSION;
7656
7657  //=== VK_KHR_shader_atomic_int64 ===
7658  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_atomic_int64 extension has been promoted to core in version 1.2." )
7659  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderAtomicInt64ExtensionName = VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME;
7660  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_atomic_int64 extension has been promoted to core in version 1.2." )
7661  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderAtomicInt64SpecVersion = VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION;
7662
7663  //=== VK_KHR_shader_clock ===
7664  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderClockExtensionName = VK_KHR_SHADER_CLOCK_EXTENSION_NAME;
7665  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderClockSpecVersion   = VK_KHR_SHADER_CLOCK_SPEC_VERSION;
7666
7667  //=== VK_AMD_pipeline_compiler_control ===
7668  VULKAN_HPP_CONSTEXPR_INLINE auto AMDPipelineCompilerControlExtensionName = VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME;
7669  VULKAN_HPP_CONSTEXPR_INLINE auto AMDPipelineCompilerControlSpecVersion   = VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION;
7670
7671  //=== VK_EXT_calibrated_timestamps ===
7672  VULKAN_HPP_DEPRECATED( "The VK_EXT_calibrated_timestamps extension has been promoted to VK_KHR_calibrated_timestamps." )
7673  VULKAN_HPP_CONSTEXPR_INLINE auto EXTCalibratedTimestampsExtensionName = VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME;
7674  VULKAN_HPP_DEPRECATED( "The VK_EXT_calibrated_timestamps extension has been promoted to VK_KHR_calibrated_timestamps." )
7675  VULKAN_HPP_CONSTEXPR_INLINE auto EXTCalibratedTimestampsSpecVersion = VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION;
7676
7677  //=== VK_AMD_shader_core_properties ===
7678  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderCorePropertiesExtensionName = VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME;
7679  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderCorePropertiesSpecVersion   = VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION;
7680
7681  //=== VK_KHR_video_decode_h265 ===
7682  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoDecodeH265ExtensionName = VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME;
7683  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoDecodeH265SpecVersion   = VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION;
7684
7685  //=== VK_KHR_global_priority ===
7686  VULKAN_HPP_CONSTEXPR_INLINE auto KHRGlobalPriorityExtensionName = VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME;
7687  VULKAN_HPP_CONSTEXPR_INLINE auto KHRGlobalPrioritySpecVersion   = VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION;
7688
7689  //=== VK_AMD_memory_overallocation_behavior ===
7690  VULKAN_HPP_CONSTEXPR_INLINE auto AMDMemoryOverallocationBehaviorExtensionName = VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME;
7691  VULKAN_HPP_CONSTEXPR_INLINE auto AMDMemoryOverallocationBehaviorSpecVersion   = VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION;
7692
7693  //=== VK_EXT_vertex_attribute_divisor ===
7694  VULKAN_HPP_DEPRECATED( "The VK_EXT_vertex_attribute_divisor extension has been promoted to VK_KHR_vertex_attribute_divisor." )
7695  VULKAN_HPP_CONSTEXPR_INLINE auto EXTVertexAttributeDivisorExtensionName = VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME;
7696  VULKAN_HPP_DEPRECATED( "The VK_EXT_vertex_attribute_divisor extension has been promoted to VK_KHR_vertex_attribute_divisor." )
7697  VULKAN_HPP_CONSTEXPR_INLINE auto EXTVertexAttributeDivisorSpecVersion = VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION;
7698
7699#if defined( VK_USE_PLATFORM_GGP )
7700  //=== VK_GGP_frame_token ===
7701  VULKAN_HPP_CONSTEXPR_INLINE auto GGPFrameTokenExtensionName = VK_GGP_FRAME_TOKEN_EXTENSION_NAME;
7702  VULKAN_HPP_CONSTEXPR_INLINE auto GGPFrameTokenSpecVersion   = VK_GGP_FRAME_TOKEN_SPEC_VERSION;
7703#endif /*VK_USE_PLATFORM_GGP*/
7704
7705  //=== VK_EXT_pipeline_creation_feedback ===
7706  VULKAN_HPP_DEPRECATED( "The VK_EXT_pipeline_creation_feedback extension has been promoted to core in version 1.3." )
7707  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelineCreationFeedbackExtensionName = VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME;
7708  VULKAN_HPP_DEPRECATED( "The VK_EXT_pipeline_creation_feedback extension has been promoted to core in version 1.3." )
7709  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelineCreationFeedbackSpecVersion = VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION;
7710
7711  //=== VK_KHR_driver_properties ===
7712  VULKAN_HPP_DEPRECATED( "The VK_KHR_driver_properties extension has been promoted to core in version 1.2." )
7713  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDriverPropertiesExtensionName = VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME;
7714  VULKAN_HPP_DEPRECATED( "The VK_KHR_driver_properties extension has been promoted to core in version 1.2." )
7715  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDriverPropertiesSpecVersion = VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION;
7716
7717  //=== VK_KHR_shader_float_controls ===
7718  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_float_controls extension has been promoted to core in version 1.2." )
7719  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderFloatControlsExtensionName = VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME;
7720  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_float_controls extension has been promoted to core in version 1.2." )
7721  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderFloatControlsSpecVersion = VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION;
7722
7723  //=== VK_NV_shader_subgroup_partitioned ===
7724  VULKAN_HPP_CONSTEXPR_INLINE auto NVShaderSubgroupPartitionedExtensionName = VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME;
7725  VULKAN_HPP_CONSTEXPR_INLINE auto NVShaderSubgroupPartitionedSpecVersion   = VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION;
7726
7727  //=== VK_KHR_depth_stencil_resolve ===
7728  VULKAN_HPP_DEPRECATED( "The VK_KHR_depth_stencil_resolve extension has been promoted to core in version 1.2." )
7729  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDepthStencilResolveExtensionName = VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME;
7730  VULKAN_HPP_DEPRECATED( "The VK_KHR_depth_stencil_resolve extension has been promoted to core in version 1.2." )
7731  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDepthStencilResolveSpecVersion = VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION;
7732
7733  //=== VK_KHR_swapchain_mutable_format ===
7734  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSwapchainMutableFormatExtensionName = VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME;
7735  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSwapchainMutableFormatSpecVersion   = VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION;
7736
7737  //=== VK_NV_compute_shader_derivatives ===
7738  VULKAN_HPP_CONSTEXPR_INLINE auto NVComputeShaderDerivativesExtensionName = VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME;
7739  VULKAN_HPP_CONSTEXPR_INLINE auto NVComputeShaderDerivativesSpecVersion   = VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION;
7740
7741  //=== VK_NV_mesh_shader ===
7742  VULKAN_HPP_CONSTEXPR_INLINE auto NVMeshShaderExtensionName = VK_NV_MESH_SHADER_EXTENSION_NAME;
7743  VULKAN_HPP_CONSTEXPR_INLINE auto NVMeshShaderSpecVersion   = VK_NV_MESH_SHADER_SPEC_VERSION;
7744
7745  //=== VK_NV_fragment_shader_barycentric ===
7746  VULKAN_HPP_DEPRECATED( "The VK_NV_fragment_shader_barycentric extension has been promoted to VK_KHR_fragment_shader_barycentric." )
7747  VULKAN_HPP_CONSTEXPR_INLINE auto NVFragmentShaderBarycentricExtensionName = VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME;
7748  VULKAN_HPP_DEPRECATED( "The VK_NV_fragment_shader_barycentric extension has been promoted to VK_KHR_fragment_shader_barycentric." )
7749  VULKAN_HPP_CONSTEXPR_INLINE auto NVFragmentShaderBarycentricSpecVersion = VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION;
7750
7751  //=== VK_NV_shader_image_footprint ===
7752  VULKAN_HPP_CONSTEXPR_INLINE auto NVShaderImageFootprintExtensionName = VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME;
7753  VULKAN_HPP_CONSTEXPR_INLINE auto NVShaderImageFootprintSpecVersion   = VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION;
7754
7755  //=== VK_NV_scissor_exclusive ===
7756  VULKAN_HPP_CONSTEXPR_INLINE auto NVScissorExclusiveExtensionName = VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME;
7757  VULKAN_HPP_CONSTEXPR_INLINE auto NVScissorExclusiveSpecVersion   = VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION;
7758
7759  //=== VK_NV_device_diagnostic_checkpoints ===
7760  VULKAN_HPP_CONSTEXPR_INLINE auto NVDeviceDiagnosticCheckpointsExtensionName = VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME;
7761  VULKAN_HPP_CONSTEXPR_INLINE auto NVDeviceDiagnosticCheckpointsSpecVersion   = VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION;
7762
7763  //=== VK_KHR_timeline_semaphore ===
7764  VULKAN_HPP_DEPRECATED( "The VK_KHR_timeline_semaphore extension has been promoted to core in version 1.2." )
7765  VULKAN_HPP_CONSTEXPR_INLINE auto KHRTimelineSemaphoreExtensionName = VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME;
7766  VULKAN_HPP_DEPRECATED( "The VK_KHR_timeline_semaphore extension has been promoted to core in version 1.2." )
7767  VULKAN_HPP_CONSTEXPR_INLINE auto KHRTimelineSemaphoreSpecVersion = VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION;
7768
7769  //=== VK_INTEL_shader_integer_functions2 ===
7770  VULKAN_HPP_CONSTEXPR_INLINE auto INTELShaderIntegerFunctions2ExtensionName = VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME;
7771  VULKAN_HPP_CONSTEXPR_INLINE auto INTELShaderIntegerFunctions2SpecVersion   = VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION;
7772
7773  //=== VK_INTEL_performance_query ===
7774  VULKAN_HPP_CONSTEXPR_INLINE auto INTELPerformanceQueryExtensionName = VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME;
7775  VULKAN_HPP_CONSTEXPR_INLINE auto INTELPerformanceQuerySpecVersion   = VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION;
7776
7777  //=== VK_KHR_vulkan_memory_model ===
7778  VULKAN_HPP_DEPRECATED( "The VK_KHR_vulkan_memory_model extension has been promoted to core in version 1.2." )
7779  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVulkanMemoryModelExtensionName = VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME;
7780  VULKAN_HPP_DEPRECATED( "The VK_KHR_vulkan_memory_model extension has been promoted to core in version 1.2." )
7781  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVulkanMemoryModelSpecVersion = VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION;
7782
7783  //=== VK_EXT_pci_bus_info ===
7784  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPciBusInfoExtensionName = VK_EXT_PCI_BUS_INFO_EXTENSION_NAME;
7785  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPciBusInfoSpecVersion   = VK_EXT_PCI_BUS_INFO_SPEC_VERSION;
7786
7787  //=== VK_AMD_display_native_hdr ===
7788  VULKAN_HPP_CONSTEXPR_INLINE auto AMDDisplayNativeHdrExtensionName = VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME;
7789  VULKAN_HPP_CONSTEXPR_INLINE auto AMDDisplayNativeHdrSpecVersion   = VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION;
7790
7791#if defined( VK_USE_PLATFORM_FUCHSIA )
7792  //=== VK_FUCHSIA_imagepipe_surface ===
7793  VULKAN_HPP_CONSTEXPR_INLINE auto FUCHSIAImagepipeSurfaceExtensionName = VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME;
7794  VULKAN_HPP_CONSTEXPR_INLINE auto FUCHSIAImagepipeSurfaceSpecVersion   = VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION;
7795#endif /*VK_USE_PLATFORM_FUCHSIA*/
7796
7797  //=== VK_KHR_shader_terminate_invocation ===
7798  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_terminate_invocation extension has been promoted to core in version 1.3." )
7799  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderTerminateInvocationExtensionName = VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME;
7800  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_terminate_invocation extension has been promoted to core in version 1.3." )
7801  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderTerminateInvocationSpecVersion = VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION;
7802
7803#if defined( VK_USE_PLATFORM_METAL_EXT )
7804  //=== VK_EXT_metal_surface ===
7805  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMetalSurfaceExtensionName = VK_EXT_METAL_SURFACE_EXTENSION_NAME;
7806  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMetalSurfaceSpecVersion   = VK_EXT_METAL_SURFACE_SPEC_VERSION;
7807#endif /*VK_USE_PLATFORM_METAL_EXT*/
7808
7809  //=== VK_EXT_fragment_density_map ===
7810  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFragmentDensityMapExtensionName = VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME;
7811  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFragmentDensityMapSpecVersion   = VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION;
7812
7813  //=== VK_EXT_scalar_block_layout ===
7814  VULKAN_HPP_DEPRECATED( "The VK_EXT_scalar_block_layout extension has been promoted to core in version 1.2." )
7815  VULKAN_HPP_CONSTEXPR_INLINE auto EXTScalarBlockLayoutExtensionName = VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME;
7816  VULKAN_HPP_DEPRECATED( "The VK_EXT_scalar_block_layout extension has been promoted to core in version 1.2." )
7817  VULKAN_HPP_CONSTEXPR_INLINE auto EXTScalarBlockLayoutSpecVersion = VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION;
7818
7819  //=== VK_GOOGLE_hlsl_functionality1 ===
7820  VULKAN_HPP_CONSTEXPR_INLINE auto GOOGLEHlslFunctionality1ExtensionName = VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME;
7821  VULKAN_HPP_CONSTEXPR_INLINE auto GOOGLEHlslFunctionality1SpecVersion   = VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION;
7822
7823  //=== VK_GOOGLE_decorate_string ===
7824  VULKAN_HPP_CONSTEXPR_INLINE auto GOOGLEDecorateStringExtensionName = VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME;
7825  VULKAN_HPP_CONSTEXPR_INLINE auto GOOGLEDecorateStringSpecVersion   = VK_GOOGLE_DECORATE_STRING_SPEC_VERSION;
7826
7827  //=== VK_EXT_subgroup_size_control ===
7828  VULKAN_HPP_DEPRECATED( "The VK_EXT_subgroup_size_control extension has been promoted to core in version 1.3." )
7829  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSubgroupSizeControlExtensionName = VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME;
7830  VULKAN_HPP_DEPRECATED( "The VK_EXT_subgroup_size_control extension has been promoted to core in version 1.3." )
7831  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSubgroupSizeControlSpecVersion = VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION;
7832
7833  //=== VK_KHR_fragment_shading_rate ===
7834  VULKAN_HPP_CONSTEXPR_INLINE auto KHRFragmentShadingRateExtensionName = VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME;
7835  VULKAN_HPP_CONSTEXPR_INLINE auto KHRFragmentShadingRateSpecVersion   = VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION;
7836
7837  //=== VK_AMD_shader_core_properties2 ===
7838  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderCoreProperties2ExtensionName = VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME;
7839  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderCoreProperties2SpecVersion   = VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION;
7840
7841  //=== VK_AMD_device_coherent_memory ===
7842  VULKAN_HPP_CONSTEXPR_INLINE auto AMDDeviceCoherentMemoryExtensionName = VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME;
7843  VULKAN_HPP_CONSTEXPR_INLINE auto AMDDeviceCoherentMemorySpecVersion   = VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION;
7844
7845  //=== VK_EXT_shader_image_atomic_int64 ===
7846  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderImageAtomicInt64ExtensionName = VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME;
7847  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderImageAtomicInt64SpecVersion   = VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION;
7848
7849  //=== VK_KHR_spirv_1_4 ===
7850  VULKAN_HPP_DEPRECATED( "The VK_KHR_spirv_1_4 extension has been promoted to core in version 1.2." )
7851  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSpirv14ExtensionName = VK_KHR_SPIRV_1_4_EXTENSION_NAME;
7852  VULKAN_HPP_DEPRECATED( "The VK_KHR_spirv_1_4 extension has been promoted to core in version 1.2." )
7853  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSpirv14SpecVersion = VK_KHR_SPIRV_1_4_SPEC_VERSION;
7854
7855  //=== VK_EXT_memory_budget ===
7856  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMemoryBudgetExtensionName = VK_EXT_MEMORY_BUDGET_EXTENSION_NAME;
7857  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMemoryBudgetSpecVersion   = VK_EXT_MEMORY_BUDGET_SPEC_VERSION;
7858
7859  //=== VK_EXT_memory_priority ===
7860  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMemoryPriorityExtensionName = VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME;
7861  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMemoryPrioritySpecVersion   = VK_EXT_MEMORY_PRIORITY_SPEC_VERSION;
7862
7863  //=== VK_KHR_surface_protected_capabilities ===
7864  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSurfaceProtectedCapabilitiesExtensionName = VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME;
7865  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSurfaceProtectedCapabilitiesSpecVersion   = VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION;
7866
7867  //=== VK_NV_dedicated_allocation_image_aliasing ===
7868  VULKAN_HPP_CONSTEXPR_INLINE auto NVDedicatedAllocationImageAliasingExtensionName = VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME;
7869  VULKAN_HPP_CONSTEXPR_INLINE auto NVDedicatedAllocationImageAliasingSpecVersion   = VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION;
7870
7871  //=== VK_KHR_separate_depth_stencil_layouts ===
7872  VULKAN_HPP_DEPRECATED( "The VK_KHR_separate_depth_stencil_layouts extension has been promoted to core in version 1.2." )
7873  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSeparateDepthStencilLayoutsExtensionName = VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME;
7874  VULKAN_HPP_DEPRECATED( "The VK_KHR_separate_depth_stencil_layouts extension has been promoted to core in version 1.2." )
7875  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSeparateDepthStencilLayoutsSpecVersion = VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION;
7876
7877  //=== VK_EXT_buffer_device_address ===
7878  VULKAN_HPP_DEPRECATED( "The VK_EXT_buffer_device_address extension has been deprecated by VK_KHR_buffer_device_address." )
7879  VULKAN_HPP_CONSTEXPR_INLINE auto EXTBufferDeviceAddressExtensionName = VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME;
7880  VULKAN_HPP_DEPRECATED( "The VK_EXT_buffer_device_address extension has been deprecated by VK_KHR_buffer_device_address." )
7881  VULKAN_HPP_CONSTEXPR_INLINE auto EXTBufferDeviceAddressSpecVersion = VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION;
7882
7883  //=== VK_EXT_tooling_info ===
7884  VULKAN_HPP_DEPRECATED( "The VK_EXT_tooling_info extension has been promoted to core in version 1.3." )
7885  VULKAN_HPP_CONSTEXPR_INLINE auto EXTToolingInfoExtensionName = VK_EXT_TOOLING_INFO_EXTENSION_NAME;
7886  VULKAN_HPP_DEPRECATED( "The VK_EXT_tooling_info extension has been promoted to core in version 1.3." )
7887  VULKAN_HPP_CONSTEXPR_INLINE auto EXTToolingInfoSpecVersion = VK_EXT_TOOLING_INFO_SPEC_VERSION;
7888
7889  //=== VK_EXT_separate_stencil_usage ===
7890  VULKAN_HPP_DEPRECATED( "The VK_EXT_separate_stencil_usage extension has been promoted to core in version 1.2." )
7891  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSeparateStencilUsageExtensionName = VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME;
7892  VULKAN_HPP_DEPRECATED( "The VK_EXT_separate_stencil_usage extension has been promoted to core in version 1.2." )
7893  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSeparateStencilUsageSpecVersion = VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION;
7894
7895  //=== VK_EXT_validation_features ===
7896  VULKAN_HPP_DEPRECATED( "The VK_EXT_validation_features extension has been deprecated by VK_EXT_layer_settings." )
7897  VULKAN_HPP_CONSTEXPR_INLINE auto EXTValidationFeaturesExtensionName = VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME;
7898  VULKAN_HPP_DEPRECATED( "The VK_EXT_validation_features extension has been deprecated by VK_EXT_layer_settings." )
7899  VULKAN_HPP_CONSTEXPR_INLINE auto EXTValidationFeaturesSpecVersion = VK_EXT_VALIDATION_FEATURES_SPEC_VERSION;
7900
7901  //=== VK_KHR_present_wait ===
7902  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPresentWaitExtensionName = VK_KHR_PRESENT_WAIT_EXTENSION_NAME;
7903  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPresentWaitSpecVersion   = VK_KHR_PRESENT_WAIT_SPEC_VERSION;
7904
7905  //=== VK_NV_cooperative_matrix ===
7906  VULKAN_HPP_CONSTEXPR_INLINE auto NVCooperativeMatrixExtensionName = VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME;
7907  VULKAN_HPP_CONSTEXPR_INLINE auto NVCooperativeMatrixSpecVersion   = VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION;
7908
7909  //=== VK_NV_coverage_reduction_mode ===
7910  VULKAN_HPP_CONSTEXPR_INLINE auto NVCoverageReductionModeExtensionName = VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME;
7911  VULKAN_HPP_CONSTEXPR_INLINE auto NVCoverageReductionModeSpecVersion   = VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION;
7912
7913  //=== VK_EXT_fragment_shader_interlock ===
7914  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFragmentShaderInterlockExtensionName = VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME;
7915  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFragmentShaderInterlockSpecVersion   = VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION;
7916
7917  //=== VK_EXT_ycbcr_image_arrays ===
7918  VULKAN_HPP_CONSTEXPR_INLINE auto EXTYcbcrImageArraysExtensionName = VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME;
7919  VULKAN_HPP_CONSTEXPR_INLINE auto EXTYcbcrImageArraysSpecVersion   = VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION;
7920
7921  //=== VK_KHR_uniform_buffer_standard_layout ===
7922  VULKAN_HPP_DEPRECATED( "The VK_KHR_uniform_buffer_standard_layout extension has been promoted to core in version 1.2." )
7923  VULKAN_HPP_CONSTEXPR_INLINE auto KHRUniformBufferStandardLayoutExtensionName = VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME;
7924  VULKAN_HPP_DEPRECATED( "The VK_KHR_uniform_buffer_standard_layout extension has been promoted to core in version 1.2." )
7925  VULKAN_HPP_CONSTEXPR_INLINE auto KHRUniformBufferStandardLayoutSpecVersion = VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION;
7926
7927  //=== VK_EXT_provoking_vertex ===
7928  VULKAN_HPP_CONSTEXPR_INLINE auto EXTProvokingVertexExtensionName = VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME;
7929  VULKAN_HPP_CONSTEXPR_INLINE auto EXTProvokingVertexSpecVersion   = VK_EXT_PROVOKING_VERTEX_SPEC_VERSION;
7930
7931#if defined( VK_USE_PLATFORM_WIN32_KHR )
7932  //=== VK_EXT_full_screen_exclusive ===
7933  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFullScreenExclusiveExtensionName = VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME;
7934  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFullScreenExclusiveSpecVersion   = VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION;
7935#endif /*VK_USE_PLATFORM_WIN32_KHR*/
7936
7937  //=== VK_EXT_headless_surface ===
7938  VULKAN_HPP_CONSTEXPR_INLINE auto EXTHeadlessSurfaceExtensionName = VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME;
7939  VULKAN_HPP_CONSTEXPR_INLINE auto EXTHeadlessSurfaceSpecVersion   = VK_EXT_HEADLESS_SURFACE_SPEC_VERSION;
7940
7941  //=== VK_KHR_buffer_device_address ===
7942  VULKAN_HPP_DEPRECATED( "The VK_KHR_buffer_device_address extension has been promoted to core in version 1.2." )
7943  VULKAN_HPP_CONSTEXPR_INLINE auto KHRBufferDeviceAddressExtensionName = VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME;
7944  VULKAN_HPP_DEPRECATED( "The VK_KHR_buffer_device_address extension has been promoted to core in version 1.2." )
7945  VULKAN_HPP_CONSTEXPR_INLINE auto KHRBufferDeviceAddressSpecVersion = VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION;
7946
7947  //=== VK_EXT_line_rasterization ===
7948  VULKAN_HPP_CONSTEXPR_INLINE auto EXTLineRasterizationExtensionName = VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME;
7949  VULKAN_HPP_CONSTEXPR_INLINE auto EXTLineRasterizationSpecVersion   = VK_EXT_LINE_RASTERIZATION_SPEC_VERSION;
7950
7951  //=== VK_EXT_shader_atomic_float ===
7952  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderAtomicFloatExtensionName = VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME;
7953  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderAtomicFloatSpecVersion   = VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION;
7954
7955  //=== VK_EXT_host_query_reset ===
7956  VULKAN_HPP_DEPRECATED( "The VK_EXT_host_query_reset extension has been promoted to core in version 1.2." )
7957  VULKAN_HPP_CONSTEXPR_INLINE auto EXTHostQueryResetExtensionName = VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME;
7958  VULKAN_HPP_DEPRECATED( "The VK_EXT_host_query_reset extension has been promoted to core in version 1.2." )
7959  VULKAN_HPP_CONSTEXPR_INLINE auto EXTHostQueryResetSpecVersion = VK_EXT_HOST_QUERY_RESET_SPEC_VERSION;
7960
7961  //=== VK_EXT_index_type_uint8 ===
7962  VULKAN_HPP_CONSTEXPR_INLINE auto EXTIndexTypeUint8ExtensionName = VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME;
7963  VULKAN_HPP_CONSTEXPR_INLINE auto EXTIndexTypeUint8SpecVersion   = VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION;
7964
7965  //=== VK_EXT_extended_dynamic_state ===
7966  VULKAN_HPP_DEPRECATED( "The VK_EXT_extended_dynamic_state extension has been promoted to core in version 1.3." )
7967  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExtendedDynamicStateExtensionName = VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME;
7968  VULKAN_HPP_DEPRECATED( "The VK_EXT_extended_dynamic_state extension has been promoted to core in version 1.3." )
7969  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExtendedDynamicStateSpecVersion = VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION;
7970
7971  //=== VK_KHR_deferred_host_operations ===
7972  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDeferredHostOperationsExtensionName = VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME;
7973  VULKAN_HPP_CONSTEXPR_INLINE auto KHRDeferredHostOperationsSpecVersion   = VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION;
7974
7975  //=== VK_KHR_pipeline_executable_properties ===
7976  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPipelineExecutablePropertiesExtensionName = VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME;
7977  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPipelineExecutablePropertiesSpecVersion   = VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION;
7978
7979  //=== VK_EXT_host_image_copy ===
7980  VULKAN_HPP_CONSTEXPR_INLINE auto EXTHostImageCopyExtensionName = VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME;
7981  VULKAN_HPP_CONSTEXPR_INLINE auto EXTHostImageCopySpecVersion   = VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION;
7982
7983  //=== VK_KHR_map_memory2 ===
7984  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMapMemory2ExtensionName = VK_KHR_MAP_MEMORY_2_EXTENSION_NAME;
7985  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMapMemory2SpecVersion   = VK_KHR_MAP_MEMORY_2_SPEC_VERSION;
7986
7987  //=== VK_EXT_shader_atomic_float2 ===
7988  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderAtomicFloat2ExtensionName = VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME;
7989  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderAtomicFloat2SpecVersion   = VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION;
7990
7991  //=== VK_EXT_surface_maintenance1 ===
7992  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSurfaceMaintenance1ExtensionName = VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME;
7993  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSurfaceMaintenance1SpecVersion   = VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION;
7994
7995  //=== VK_EXT_swapchain_maintenance1 ===
7996  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSwapchainMaintenance1ExtensionName = VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME;
7997  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSwapchainMaintenance1SpecVersion   = VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION;
7998
7999  //=== VK_EXT_shader_demote_to_helper_invocation ===
8000  VULKAN_HPP_DEPRECATED( "The VK_EXT_shader_demote_to_helper_invocation extension has been promoted to core in version 1.3." )
8001  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderDemoteToHelperInvocationExtensionName = VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME;
8002  VULKAN_HPP_DEPRECATED( "The VK_EXT_shader_demote_to_helper_invocation extension has been promoted to core in version 1.3." )
8003  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderDemoteToHelperInvocationSpecVersion = VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION;
8004
8005  //=== VK_NV_device_generated_commands ===
8006  VULKAN_HPP_CONSTEXPR_INLINE auto NVDeviceGeneratedCommandsExtensionName = VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME;
8007  VULKAN_HPP_CONSTEXPR_INLINE auto NVDeviceGeneratedCommandsSpecVersion   = VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION;
8008
8009  //=== VK_NV_inherited_viewport_scissor ===
8010  VULKAN_HPP_CONSTEXPR_INLINE auto NVInheritedViewportScissorExtensionName = VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME;
8011  VULKAN_HPP_CONSTEXPR_INLINE auto NVInheritedViewportScissorSpecVersion   = VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION;
8012
8013  //=== VK_KHR_shader_integer_dot_product ===
8014  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_integer_dot_product extension has been promoted to core in version 1.3." )
8015  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderIntegerDotProductExtensionName = VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME;
8016  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_integer_dot_product extension has been promoted to core in version 1.3." )
8017  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderIntegerDotProductSpecVersion = VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION;
8018
8019  //=== VK_EXT_texel_buffer_alignment ===
8020  VULKAN_HPP_DEPRECATED( "The VK_EXT_texel_buffer_alignment extension has been promoted to core in version 1.3." )
8021  VULKAN_HPP_CONSTEXPR_INLINE auto EXTTexelBufferAlignmentExtensionName = VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME;
8022  VULKAN_HPP_DEPRECATED( "The VK_EXT_texel_buffer_alignment extension has been promoted to core in version 1.3." )
8023  VULKAN_HPP_CONSTEXPR_INLINE auto EXTTexelBufferAlignmentSpecVersion = VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION;
8024
8025  //=== VK_QCOM_render_pass_transform ===
8026  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMRenderPassTransformExtensionName = VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME;
8027  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMRenderPassTransformSpecVersion   = VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION;
8028
8029  //=== VK_EXT_depth_bias_control ===
8030  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDepthBiasControlExtensionName = VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME;
8031  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDepthBiasControlSpecVersion   = VK_EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION;
8032
8033  //=== VK_EXT_device_memory_report ===
8034  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDeviceMemoryReportExtensionName = VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME;
8035  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDeviceMemoryReportSpecVersion   = VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION;
8036
8037  //=== VK_EXT_acquire_drm_display ===
8038  VULKAN_HPP_CONSTEXPR_INLINE auto EXTAcquireDrmDisplayExtensionName = VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME;
8039  VULKAN_HPP_CONSTEXPR_INLINE auto EXTAcquireDrmDisplaySpecVersion   = VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION;
8040
8041  //=== VK_EXT_robustness2 ===
8042  VULKAN_HPP_CONSTEXPR_INLINE auto EXTRobustness2ExtensionName = VK_EXT_ROBUSTNESS_2_EXTENSION_NAME;
8043  VULKAN_HPP_CONSTEXPR_INLINE auto EXTRobustness2SpecVersion   = VK_EXT_ROBUSTNESS_2_SPEC_VERSION;
8044
8045  //=== VK_EXT_custom_border_color ===
8046  VULKAN_HPP_CONSTEXPR_INLINE auto EXTCustomBorderColorExtensionName = VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME;
8047  VULKAN_HPP_CONSTEXPR_INLINE auto EXTCustomBorderColorSpecVersion   = VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION;
8048
8049  //=== VK_GOOGLE_user_type ===
8050  VULKAN_HPP_CONSTEXPR_INLINE auto GOOGLEUserTypeExtensionName = VK_GOOGLE_USER_TYPE_EXTENSION_NAME;
8051  VULKAN_HPP_CONSTEXPR_INLINE auto GOOGLEUserTypeSpecVersion   = VK_GOOGLE_USER_TYPE_SPEC_VERSION;
8052
8053  //=== VK_KHR_pipeline_library ===
8054  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPipelineLibraryExtensionName = VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME;
8055  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPipelineLibrarySpecVersion   = VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION;
8056
8057  //=== VK_NV_present_barrier ===
8058  VULKAN_HPP_CONSTEXPR_INLINE auto NVPresentBarrierExtensionName = VK_NV_PRESENT_BARRIER_EXTENSION_NAME;
8059  VULKAN_HPP_CONSTEXPR_INLINE auto NVPresentBarrierSpecVersion   = VK_NV_PRESENT_BARRIER_SPEC_VERSION;
8060
8061  //=== VK_KHR_shader_non_semantic_info ===
8062  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_non_semantic_info extension has been promoted to core in version 1.3." )
8063  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderNonSemanticInfoExtensionName = VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME;
8064  VULKAN_HPP_DEPRECATED( "The VK_KHR_shader_non_semantic_info extension has been promoted to core in version 1.3." )
8065  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderNonSemanticInfoSpecVersion = VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION;
8066
8067  //=== VK_KHR_present_id ===
8068  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPresentIdExtensionName = VK_KHR_PRESENT_ID_EXTENSION_NAME;
8069  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPresentIdSpecVersion   = VK_KHR_PRESENT_ID_SPEC_VERSION;
8070
8071  //=== VK_EXT_private_data ===
8072  VULKAN_HPP_DEPRECATED( "The VK_EXT_private_data extension has been promoted to core in version 1.3." )
8073  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPrivateDataExtensionName = VK_EXT_PRIVATE_DATA_EXTENSION_NAME;
8074  VULKAN_HPP_DEPRECATED( "The VK_EXT_private_data extension has been promoted to core in version 1.3." )
8075  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPrivateDataSpecVersion = VK_EXT_PRIVATE_DATA_SPEC_VERSION;
8076
8077  //=== VK_EXT_pipeline_creation_cache_control ===
8078  VULKAN_HPP_DEPRECATED( "The VK_EXT_pipeline_creation_cache_control extension has been promoted to core in version 1.3." )
8079  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelineCreationCacheControlExtensionName = VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME;
8080  VULKAN_HPP_DEPRECATED( "The VK_EXT_pipeline_creation_cache_control extension has been promoted to core in version 1.3." )
8081  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelineCreationCacheControlSpecVersion = VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION;
8082
8083  //=== VK_KHR_video_encode_queue ===
8084  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoEncodeQueueExtensionName = VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME;
8085  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoEncodeQueueSpecVersion   = VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION;
8086
8087  //=== VK_NV_device_diagnostics_config ===
8088  VULKAN_HPP_CONSTEXPR_INLINE auto NVDeviceDiagnosticsConfigExtensionName = VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME;
8089  VULKAN_HPP_CONSTEXPR_INLINE auto NVDeviceDiagnosticsConfigSpecVersion   = VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION;
8090
8091  //=== VK_QCOM_render_pass_store_ops ===
8092  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMRenderPassStoreOpsExtensionName = VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME;
8093  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMRenderPassStoreOpsSpecVersion   = VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION;
8094
8095#if defined( VK_ENABLE_BETA_EXTENSIONS )
8096  //=== VK_NV_cuda_kernel_launch ===
8097  VULKAN_HPP_CONSTEXPR_INLINE auto NVCudaKernelLaunchExtensionName = VK_NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME;
8098  VULKAN_HPP_CONSTEXPR_INLINE auto NVCudaKernelLaunchSpecVersion   = VK_NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION;
8099#endif /*VK_ENABLE_BETA_EXTENSIONS*/
8100
8101  //=== VK_NV_low_latency ===
8102  VULKAN_HPP_CONSTEXPR_INLINE auto NVLowLatencyExtensionName = VK_NV_LOW_LATENCY_EXTENSION_NAME;
8103  VULKAN_HPP_CONSTEXPR_INLINE auto NVLowLatencySpecVersion   = VK_NV_LOW_LATENCY_SPEC_VERSION;
8104
8105#if defined( VK_USE_PLATFORM_METAL_EXT )
8106  //=== VK_EXT_metal_objects ===
8107  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMetalObjectsExtensionName = VK_EXT_METAL_OBJECTS_EXTENSION_NAME;
8108  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMetalObjectsSpecVersion   = VK_EXT_METAL_OBJECTS_SPEC_VERSION;
8109#endif /*VK_USE_PLATFORM_METAL_EXT*/
8110
8111  //=== VK_KHR_synchronization2 ===
8112  VULKAN_HPP_DEPRECATED( "The VK_KHR_synchronization2 extension has been promoted to core in version 1.3." )
8113  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSynchronization2ExtensionName = VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME;
8114  VULKAN_HPP_DEPRECATED( "The VK_KHR_synchronization2 extension has been promoted to core in version 1.3." )
8115  VULKAN_HPP_CONSTEXPR_INLINE auto KHRSynchronization2SpecVersion = VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION;
8116
8117  //=== VK_EXT_descriptor_buffer ===
8118  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDescriptorBufferExtensionName = VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME;
8119  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDescriptorBufferSpecVersion   = VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION;
8120
8121  //=== VK_EXT_graphics_pipeline_library ===
8122  VULKAN_HPP_CONSTEXPR_INLINE auto EXTGraphicsPipelineLibraryExtensionName = VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME;
8123  VULKAN_HPP_CONSTEXPR_INLINE auto EXTGraphicsPipelineLibrarySpecVersion   = VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION;
8124
8125  //=== VK_AMD_shader_early_and_late_fragment_tests ===
8126  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderEarlyAndLateFragmentTestsExtensionName = VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME;
8127  VULKAN_HPP_CONSTEXPR_INLINE auto AMDShaderEarlyAndLateFragmentTestsSpecVersion   = VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION;
8128
8129  //=== VK_KHR_fragment_shader_barycentric ===
8130  VULKAN_HPP_CONSTEXPR_INLINE auto KHRFragmentShaderBarycentricExtensionName = VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME;
8131  VULKAN_HPP_CONSTEXPR_INLINE auto KHRFragmentShaderBarycentricSpecVersion   = VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION;
8132
8133  //=== VK_KHR_shader_subgroup_uniform_control_flow ===
8134  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderSubgroupUniformControlFlowExtensionName = VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME;
8135  VULKAN_HPP_CONSTEXPR_INLINE auto KHRShaderSubgroupUniformControlFlowSpecVersion   = VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION;
8136
8137  //=== VK_KHR_zero_initialize_workgroup_memory ===
8138  VULKAN_HPP_DEPRECATED( "The VK_KHR_zero_initialize_workgroup_memory extension has been promoted to core in version 1.3." )
8139  VULKAN_HPP_CONSTEXPR_INLINE auto KHRZeroInitializeWorkgroupMemoryExtensionName = VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME;
8140  VULKAN_HPP_DEPRECATED( "The VK_KHR_zero_initialize_workgroup_memory extension has been promoted to core in version 1.3." )
8141  VULKAN_HPP_CONSTEXPR_INLINE auto KHRZeroInitializeWorkgroupMemorySpecVersion = VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION;
8142
8143  //=== VK_NV_fragment_shading_rate_enums ===
8144  VULKAN_HPP_CONSTEXPR_INLINE auto NVFragmentShadingRateEnumsExtensionName = VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME;
8145  VULKAN_HPP_CONSTEXPR_INLINE auto NVFragmentShadingRateEnumsSpecVersion   = VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION;
8146
8147  //=== VK_NV_ray_tracing_motion_blur ===
8148  VULKAN_HPP_CONSTEXPR_INLINE auto NVRayTracingMotionBlurExtensionName = VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME;
8149  VULKAN_HPP_CONSTEXPR_INLINE auto NVRayTracingMotionBlurSpecVersion   = VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION;
8150
8151  //=== VK_EXT_mesh_shader ===
8152  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMeshShaderExtensionName = VK_EXT_MESH_SHADER_EXTENSION_NAME;
8153  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMeshShaderSpecVersion   = VK_EXT_MESH_SHADER_SPEC_VERSION;
8154
8155  //=== VK_EXT_ycbcr_2plane_444_formats ===
8156  VULKAN_HPP_DEPRECATED( "The VK_EXT_ycbcr_2plane_444_formats extension has been promoted to core in version 1.3." )
8157  VULKAN_HPP_CONSTEXPR_INLINE auto EXTYcbcr2Plane444FormatsExtensionName = VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME;
8158  VULKAN_HPP_DEPRECATED( "The VK_EXT_ycbcr_2plane_444_formats extension has been promoted to core in version 1.3." )
8159  VULKAN_HPP_CONSTEXPR_INLINE auto EXTYcbcr2Plane444FormatsSpecVersion = VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION;
8160
8161  //=== VK_EXT_fragment_density_map2 ===
8162  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFragmentDensityMap2ExtensionName = VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME;
8163  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFragmentDensityMap2SpecVersion   = VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION;
8164
8165  //=== VK_QCOM_rotated_copy_commands ===
8166  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMRotatedCopyCommandsExtensionName = VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME;
8167  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMRotatedCopyCommandsSpecVersion   = VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION;
8168
8169  //=== VK_EXT_image_robustness ===
8170  VULKAN_HPP_DEPRECATED( "The VK_EXT_image_robustness extension has been promoted to core in version 1.3." )
8171  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageRobustnessExtensionName = VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME;
8172  VULKAN_HPP_DEPRECATED( "The VK_EXT_image_robustness extension has been promoted to core in version 1.3." )
8173  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageRobustnessSpecVersion = VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION;
8174
8175  //=== VK_KHR_workgroup_memory_explicit_layout ===
8176  VULKAN_HPP_CONSTEXPR_INLINE auto KHRWorkgroupMemoryExplicitLayoutExtensionName = VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME;
8177  VULKAN_HPP_CONSTEXPR_INLINE auto KHRWorkgroupMemoryExplicitLayoutSpecVersion   = VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION;
8178
8179  //=== VK_KHR_copy_commands2 ===
8180  VULKAN_HPP_DEPRECATED( "The VK_KHR_copy_commands2 extension has been promoted to core in version 1.3." )
8181  VULKAN_HPP_CONSTEXPR_INLINE auto KHRCopyCommands2ExtensionName = VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME;
8182  VULKAN_HPP_DEPRECATED( "The VK_KHR_copy_commands2 extension has been promoted to core in version 1.3." )
8183  VULKAN_HPP_CONSTEXPR_INLINE auto KHRCopyCommands2SpecVersion = VK_KHR_COPY_COMMANDS_2_SPEC_VERSION;
8184
8185  //=== VK_EXT_image_compression_control ===
8186  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageCompressionControlExtensionName = VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME;
8187  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageCompressionControlSpecVersion   = VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION;
8188
8189  //=== VK_EXT_attachment_feedback_loop_layout ===
8190  VULKAN_HPP_CONSTEXPR_INLINE auto EXTAttachmentFeedbackLoopLayoutExtensionName = VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME;
8191  VULKAN_HPP_CONSTEXPR_INLINE auto EXTAttachmentFeedbackLoopLayoutSpecVersion   = VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION;
8192
8193  //=== VK_EXT_4444_formats ===
8194  VULKAN_HPP_DEPRECATED( "The VK_EXT_4444_formats extension has been promoted to core in version 1.3." )
8195  VULKAN_HPP_CONSTEXPR_INLINE auto EXT4444FormatsExtensionName = VK_EXT_4444_FORMATS_EXTENSION_NAME;
8196  VULKAN_HPP_DEPRECATED( "The VK_EXT_4444_formats extension has been promoted to core in version 1.3." )
8197  VULKAN_HPP_CONSTEXPR_INLINE auto EXT4444FormatsSpecVersion = VK_EXT_4444_FORMATS_SPEC_VERSION;
8198
8199  //=== VK_EXT_device_fault ===
8200  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDeviceFaultExtensionName = VK_EXT_DEVICE_FAULT_EXTENSION_NAME;
8201  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDeviceFaultSpecVersion   = VK_EXT_DEVICE_FAULT_SPEC_VERSION;
8202
8203  //=== VK_ARM_rasterization_order_attachment_access ===
8204  VULKAN_HPP_DEPRECATED( "The VK_ARM_rasterization_order_attachment_access extension has been promoted to VK_EXT_rasterization_order_attachment_access." )
8205  VULKAN_HPP_CONSTEXPR_INLINE auto ARMRasterizationOrderAttachmentAccessExtensionName = VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME;
8206  VULKAN_HPP_DEPRECATED( "The VK_ARM_rasterization_order_attachment_access extension has been promoted to VK_EXT_rasterization_order_attachment_access." )
8207  VULKAN_HPP_CONSTEXPR_INLINE auto ARMRasterizationOrderAttachmentAccessSpecVersion = VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION;
8208
8209  //=== VK_EXT_rgba10x6_formats ===
8210  VULKAN_HPP_CONSTEXPR_INLINE auto EXTRgba10X6FormatsExtensionName = VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME;
8211  VULKAN_HPP_CONSTEXPR_INLINE auto EXTRgba10X6FormatsSpecVersion   = VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION;
8212
8213#if defined( VK_USE_PLATFORM_WIN32_KHR )
8214  //=== VK_NV_acquire_winrt_display ===
8215  VULKAN_HPP_CONSTEXPR_INLINE auto NVAcquireWinrtDisplayExtensionName = VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME;
8216  VULKAN_HPP_CONSTEXPR_INLINE auto NVAcquireWinrtDisplaySpecVersion   = VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION;
8217#endif /*VK_USE_PLATFORM_WIN32_KHR*/
8218
8219#if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
8220  //=== VK_EXT_directfb_surface ===
8221  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDirectfbSurfaceExtensionName = VK_EXT_DIRECTFB_SURFACE_EXTENSION_NAME;
8222  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDirectfbSurfaceSpecVersion   = VK_EXT_DIRECTFB_SURFACE_SPEC_VERSION;
8223#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
8224
8225  //=== VK_VALVE_mutable_descriptor_type ===
8226  VULKAN_HPP_DEPRECATED( "The VK_VALVE_mutable_descriptor_type extension has been promoted to VK_EXT_mutable_descriptor_type." )
8227  VULKAN_HPP_CONSTEXPR_INLINE auto VALVEMutableDescriptorTypeExtensionName = VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME;
8228  VULKAN_HPP_DEPRECATED( "The VK_VALVE_mutable_descriptor_type extension has been promoted to VK_EXT_mutable_descriptor_type." )
8229  VULKAN_HPP_CONSTEXPR_INLINE auto VALVEMutableDescriptorTypeSpecVersion = VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION;
8230
8231  //=== VK_EXT_vertex_input_dynamic_state ===
8232  VULKAN_HPP_CONSTEXPR_INLINE auto EXTVertexInputDynamicStateExtensionName = VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME;
8233  VULKAN_HPP_CONSTEXPR_INLINE auto EXTVertexInputDynamicStateSpecVersion   = VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION;
8234
8235  //=== VK_EXT_physical_device_drm ===
8236  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPhysicalDeviceDrmExtensionName = VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME;
8237  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPhysicalDeviceDrmSpecVersion   = VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION;
8238
8239  //=== VK_EXT_device_address_binding_report ===
8240  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDeviceAddressBindingReportExtensionName = VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME;
8241  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDeviceAddressBindingReportSpecVersion   = VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION;
8242
8243  //=== VK_EXT_depth_clip_control ===
8244  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDepthClipControlExtensionName = VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME;
8245  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDepthClipControlSpecVersion   = VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION;
8246
8247  //=== VK_EXT_primitive_topology_list_restart ===
8248  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPrimitiveTopologyListRestartExtensionName = VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME;
8249  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPrimitiveTopologyListRestartSpecVersion   = VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION;
8250
8251  //=== VK_KHR_format_feature_flags2 ===
8252  VULKAN_HPP_DEPRECATED( "The VK_KHR_format_feature_flags2 extension has been promoted to core in version 1.3." )
8253  VULKAN_HPP_CONSTEXPR_INLINE auto KHRFormatFeatureFlags2ExtensionName = VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME;
8254  VULKAN_HPP_DEPRECATED( "The VK_KHR_format_feature_flags2 extension has been promoted to core in version 1.3." )
8255  VULKAN_HPP_CONSTEXPR_INLINE auto KHRFormatFeatureFlags2SpecVersion = VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION;
8256
8257#if defined( VK_USE_PLATFORM_FUCHSIA )
8258  //=== VK_FUCHSIA_external_memory ===
8259  VULKAN_HPP_CONSTEXPR_INLINE auto FUCHSIAExternalMemoryExtensionName = VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME;
8260  VULKAN_HPP_CONSTEXPR_INLINE auto FUCHSIAExternalMemorySpecVersion   = VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION;
8261#endif /*VK_USE_PLATFORM_FUCHSIA*/
8262
8263#if defined( VK_USE_PLATFORM_FUCHSIA )
8264  //=== VK_FUCHSIA_external_semaphore ===
8265  VULKAN_HPP_CONSTEXPR_INLINE auto FUCHSIAExternalSemaphoreExtensionName = VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME;
8266  VULKAN_HPP_CONSTEXPR_INLINE auto FUCHSIAExternalSemaphoreSpecVersion   = VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION;
8267#endif /*VK_USE_PLATFORM_FUCHSIA*/
8268
8269#if defined( VK_USE_PLATFORM_FUCHSIA )
8270  //=== VK_FUCHSIA_buffer_collection ===
8271  VULKAN_HPP_CONSTEXPR_INLINE auto FUCHSIABufferCollectionExtensionName = VK_FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME;
8272  VULKAN_HPP_CONSTEXPR_INLINE auto FUCHSIABufferCollectionSpecVersion   = VK_FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION;
8273#endif /*VK_USE_PLATFORM_FUCHSIA*/
8274
8275  //=== VK_HUAWEI_subpass_shading ===
8276  VULKAN_HPP_CONSTEXPR_INLINE auto HUAWEISubpassShadingExtensionName = VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME;
8277  VULKAN_HPP_CONSTEXPR_INLINE auto HUAWEISubpassShadingSpecVersion   = VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION;
8278
8279  //=== VK_HUAWEI_invocation_mask ===
8280  VULKAN_HPP_CONSTEXPR_INLINE auto HUAWEIInvocationMaskExtensionName = VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME;
8281  VULKAN_HPP_CONSTEXPR_INLINE auto HUAWEIInvocationMaskSpecVersion   = VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION;
8282
8283  //=== VK_NV_external_memory_rdma ===
8284  VULKAN_HPP_CONSTEXPR_INLINE auto NVExternalMemoryRdmaExtensionName = VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME;
8285  VULKAN_HPP_CONSTEXPR_INLINE auto NVExternalMemoryRdmaSpecVersion   = VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION;
8286
8287  //=== VK_EXT_pipeline_properties ===
8288  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelinePropertiesExtensionName = VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME;
8289  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelinePropertiesSpecVersion   = VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION;
8290
8291  //=== VK_EXT_frame_boundary ===
8292  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFrameBoundaryExtensionName = VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME;
8293  VULKAN_HPP_CONSTEXPR_INLINE auto EXTFrameBoundarySpecVersion   = VK_EXT_FRAME_BOUNDARY_SPEC_VERSION;
8294
8295  //=== VK_EXT_multisampled_render_to_single_sampled ===
8296  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMultisampledRenderToSingleSampledExtensionName = VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME;
8297  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMultisampledRenderToSingleSampledSpecVersion   = VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION;
8298
8299  //=== VK_EXT_extended_dynamic_state2 ===
8300  VULKAN_HPP_DEPRECATED( "The VK_EXT_extended_dynamic_state2 extension has been promoted to core in version 1.3." )
8301  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExtendedDynamicState2ExtensionName = VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME;
8302  VULKAN_HPP_DEPRECATED( "The VK_EXT_extended_dynamic_state2 extension has been promoted to core in version 1.3." )
8303  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExtendedDynamicState2SpecVersion = VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION;
8304
8305#if defined( VK_USE_PLATFORM_SCREEN_QNX )
8306  //=== VK_QNX_screen_surface ===
8307  VULKAN_HPP_CONSTEXPR_INLINE auto QNXScreenSurfaceExtensionName = VK_QNX_SCREEN_SURFACE_EXTENSION_NAME;
8308  VULKAN_HPP_CONSTEXPR_INLINE auto QNXScreenSurfaceSpecVersion   = VK_QNX_SCREEN_SURFACE_SPEC_VERSION;
8309#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
8310
8311  //=== VK_EXT_color_write_enable ===
8312  VULKAN_HPP_CONSTEXPR_INLINE auto EXTColorWriteEnableExtensionName = VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME;
8313  VULKAN_HPP_CONSTEXPR_INLINE auto EXTColorWriteEnableSpecVersion   = VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION;
8314
8315  //=== VK_EXT_primitives_generated_query ===
8316  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPrimitivesGeneratedQueryExtensionName = VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME;
8317  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPrimitivesGeneratedQuerySpecVersion   = VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION;
8318
8319  //=== VK_KHR_ray_tracing_maintenance1 ===
8320  VULKAN_HPP_CONSTEXPR_INLINE auto KHRRayTracingMaintenance1ExtensionName = VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME;
8321  VULKAN_HPP_CONSTEXPR_INLINE auto KHRRayTracingMaintenance1SpecVersion   = VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION;
8322
8323  //=== VK_EXT_global_priority_query ===
8324  VULKAN_HPP_DEPRECATED( "The VK_EXT_global_priority_query extension has been promoted to VK_KHR_global_priority." )
8325  VULKAN_HPP_CONSTEXPR_INLINE auto EXTGlobalPriorityQueryExtensionName = VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME;
8326  VULKAN_HPP_DEPRECATED( "The VK_EXT_global_priority_query extension has been promoted to VK_KHR_global_priority." )
8327  VULKAN_HPP_CONSTEXPR_INLINE auto EXTGlobalPriorityQuerySpecVersion = VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION;
8328
8329  //=== VK_EXT_image_view_min_lod ===
8330  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageViewMinLodExtensionName = VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME;
8331  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageViewMinLodSpecVersion   = VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION;
8332
8333  //=== VK_EXT_multi_draw ===
8334  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMultiDrawExtensionName = VK_EXT_MULTI_DRAW_EXTENSION_NAME;
8335  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMultiDrawSpecVersion   = VK_EXT_MULTI_DRAW_SPEC_VERSION;
8336
8337  //=== VK_EXT_image_2d_view_of_3d ===
8338  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImage2DViewOf3DExtensionName = VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME;
8339  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImage2DViewOf3DSpecVersion   = VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION;
8340
8341  //=== VK_KHR_portability_enumeration ===
8342  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPortabilityEnumerationExtensionName = VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME;
8343  VULKAN_HPP_CONSTEXPR_INLINE auto KHRPortabilityEnumerationSpecVersion   = VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION;
8344
8345  //=== VK_EXT_shader_tile_image ===
8346  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderTileImageExtensionName = VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME;
8347  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderTileImageSpecVersion   = VK_EXT_SHADER_TILE_IMAGE_SPEC_VERSION;
8348
8349  //=== VK_EXT_opacity_micromap ===
8350  VULKAN_HPP_CONSTEXPR_INLINE auto EXTOpacityMicromapExtensionName = VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME;
8351  VULKAN_HPP_CONSTEXPR_INLINE auto EXTOpacityMicromapSpecVersion   = VK_EXT_OPACITY_MICROMAP_SPEC_VERSION;
8352
8353#if defined( VK_ENABLE_BETA_EXTENSIONS )
8354  //=== VK_NV_displacement_micromap ===
8355  VULKAN_HPP_CONSTEXPR_INLINE auto NVDisplacementMicromapExtensionName = VK_NV_DISPLACEMENT_MICROMAP_EXTENSION_NAME;
8356  VULKAN_HPP_CONSTEXPR_INLINE auto NVDisplacementMicromapSpecVersion   = VK_NV_DISPLACEMENT_MICROMAP_SPEC_VERSION;
8357#endif /*VK_ENABLE_BETA_EXTENSIONS*/
8358
8359  //=== VK_EXT_load_store_op_none ===
8360  VULKAN_HPP_CONSTEXPR_INLINE auto EXTLoadStoreOpNoneExtensionName = VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME;
8361  VULKAN_HPP_CONSTEXPR_INLINE auto EXTLoadStoreOpNoneSpecVersion   = VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION;
8362
8363  //=== VK_HUAWEI_cluster_culling_shader ===
8364  VULKAN_HPP_CONSTEXPR_INLINE auto HUAWEIClusterCullingShaderExtensionName = VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME;
8365  VULKAN_HPP_CONSTEXPR_INLINE auto HUAWEIClusterCullingShaderSpecVersion   = VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION;
8366
8367  //=== VK_EXT_border_color_swizzle ===
8368  VULKAN_HPP_CONSTEXPR_INLINE auto EXTBorderColorSwizzleExtensionName = VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME;
8369  VULKAN_HPP_CONSTEXPR_INLINE auto EXTBorderColorSwizzleSpecVersion   = VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION;
8370
8371  //=== VK_EXT_pageable_device_local_memory ===
8372  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPageableDeviceLocalMemoryExtensionName = VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME;
8373  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPageableDeviceLocalMemorySpecVersion   = VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION;
8374
8375  //=== VK_KHR_maintenance4 ===
8376  VULKAN_HPP_DEPRECATED( "The VK_KHR_maintenance4 extension has been promoted to core in version 1.3." )
8377  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance4ExtensionName = VK_KHR_MAINTENANCE_4_EXTENSION_NAME;
8378  VULKAN_HPP_DEPRECATED( "The VK_KHR_maintenance4 extension has been promoted to core in version 1.3." )
8379  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance4SpecVersion = VK_KHR_MAINTENANCE_4_SPEC_VERSION;
8380
8381  //=== VK_ARM_shader_core_properties ===
8382  VULKAN_HPP_CONSTEXPR_INLINE auto ARMShaderCorePropertiesExtensionName = VK_ARM_SHADER_CORE_PROPERTIES_EXTENSION_NAME;
8383  VULKAN_HPP_CONSTEXPR_INLINE auto ARMShaderCorePropertiesSpecVersion   = VK_ARM_SHADER_CORE_PROPERTIES_SPEC_VERSION;
8384
8385  //=== VK_ARM_scheduling_controls ===
8386  VULKAN_HPP_CONSTEXPR_INLINE auto ARMSchedulingControlsExtensionName = VK_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME;
8387  VULKAN_HPP_CONSTEXPR_INLINE auto ARMSchedulingControlsSpecVersion   = VK_ARM_SCHEDULING_CONTROLS_SPEC_VERSION;
8388
8389  //=== VK_EXT_image_sliced_view_of_3d ===
8390  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageSlicedViewOf3DExtensionName = VK_EXT_IMAGE_SLICED_VIEW_OF_3D_EXTENSION_NAME;
8391  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageSlicedViewOf3DSpecVersion   = VK_EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION;
8392
8393  //=== VK_VALVE_descriptor_set_host_mapping ===
8394  VULKAN_HPP_CONSTEXPR_INLINE auto VALVEDescriptorSetHostMappingExtensionName = VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME;
8395  VULKAN_HPP_CONSTEXPR_INLINE auto VALVEDescriptorSetHostMappingSpecVersion   = VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION;
8396
8397  //=== VK_EXT_depth_clamp_zero_one ===
8398  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDepthClampZeroOneExtensionName = VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME;
8399  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDepthClampZeroOneSpecVersion   = VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION;
8400
8401  //=== VK_EXT_non_seamless_cube_map ===
8402  VULKAN_HPP_CONSTEXPR_INLINE auto EXTNonSeamlessCubeMapExtensionName = VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME;
8403  VULKAN_HPP_CONSTEXPR_INLINE auto EXTNonSeamlessCubeMapSpecVersion   = VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION;
8404
8405  //=== VK_ARM_render_pass_striped ===
8406  VULKAN_HPP_CONSTEXPR_INLINE auto ARMRenderPassStripedExtensionName = VK_ARM_RENDER_PASS_STRIPED_EXTENSION_NAME;
8407  VULKAN_HPP_CONSTEXPR_INLINE auto ARMRenderPassStripedSpecVersion   = VK_ARM_RENDER_PASS_STRIPED_SPEC_VERSION;
8408
8409  //=== VK_QCOM_fragment_density_map_offset ===
8410  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMFragmentDensityMapOffsetExtensionName = VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME;
8411  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMFragmentDensityMapOffsetSpecVersion   = VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION;
8412
8413  //=== VK_NV_copy_memory_indirect ===
8414  VULKAN_HPP_CONSTEXPR_INLINE auto NVCopyMemoryIndirectExtensionName = VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME;
8415  VULKAN_HPP_CONSTEXPR_INLINE auto NVCopyMemoryIndirectSpecVersion   = VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION;
8416
8417  //=== VK_NV_memory_decompression ===
8418  VULKAN_HPP_CONSTEXPR_INLINE auto NVMemoryDecompressionExtensionName = VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME;
8419  VULKAN_HPP_CONSTEXPR_INLINE auto NVMemoryDecompressionSpecVersion   = VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION;
8420
8421  //=== VK_NV_device_generated_commands_compute ===
8422  VULKAN_HPP_CONSTEXPR_INLINE auto NVDeviceGeneratedCommandsComputeExtensionName = VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME;
8423  VULKAN_HPP_CONSTEXPR_INLINE auto NVDeviceGeneratedCommandsComputeSpecVersion   = VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION;
8424
8425  //=== VK_NV_linear_color_attachment ===
8426  VULKAN_HPP_CONSTEXPR_INLINE auto NVLinearColorAttachmentExtensionName = VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME;
8427  VULKAN_HPP_CONSTEXPR_INLINE auto NVLinearColorAttachmentSpecVersion   = VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION;
8428
8429  //=== VK_GOOGLE_surfaceless_query ===
8430  VULKAN_HPP_CONSTEXPR_INLINE auto GOOGLESurfacelessQueryExtensionName = VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME;
8431  VULKAN_HPP_CONSTEXPR_INLINE auto GOOGLESurfacelessQuerySpecVersion   = VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION;
8432
8433  //=== VK_EXT_image_compression_control_swapchain ===
8434  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageCompressionControlSwapchainExtensionName = VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME;
8435  VULKAN_HPP_CONSTEXPR_INLINE auto EXTImageCompressionControlSwapchainSpecVersion   = VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION;
8436
8437  //=== VK_QCOM_image_processing ===
8438  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMImageProcessingExtensionName = VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME;
8439  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMImageProcessingSpecVersion   = VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION;
8440
8441  //=== VK_EXT_nested_command_buffer ===
8442  VULKAN_HPP_CONSTEXPR_INLINE auto EXTNestedCommandBufferExtensionName = VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME;
8443  VULKAN_HPP_CONSTEXPR_INLINE auto EXTNestedCommandBufferSpecVersion   = VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION;
8444
8445  //=== VK_EXT_external_memory_acquire_unmodified ===
8446  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExternalMemoryAcquireUnmodifiedExtensionName = VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME;
8447  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExternalMemoryAcquireUnmodifiedSpecVersion   = VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION;
8448
8449  //=== VK_EXT_extended_dynamic_state3 ===
8450  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExtendedDynamicState3ExtensionName = VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME;
8451  VULKAN_HPP_CONSTEXPR_INLINE auto EXTExtendedDynamicState3SpecVersion   = VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION;
8452
8453  //=== VK_EXT_subpass_merge_feedback ===
8454  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSubpassMergeFeedbackExtensionName = VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME;
8455  VULKAN_HPP_CONSTEXPR_INLINE auto EXTSubpassMergeFeedbackSpecVersion   = VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION;
8456
8457  //=== VK_LUNARG_direct_driver_loading ===
8458  VULKAN_HPP_CONSTEXPR_INLINE auto LUNARGDirectDriverLoadingExtensionName = VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME;
8459  VULKAN_HPP_CONSTEXPR_INLINE auto LUNARGDirectDriverLoadingSpecVersion   = VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION;
8460
8461  //=== VK_EXT_shader_module_identifier ===
8462  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderModuleIdentifierExtensionName = VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME;
8463  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderModuleIdentifierSpecVersion   = VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION;
8464
8465  //=== VK_EXT_rasterization_order_attachment_access ===
8466  VULKAN_HPP_CONSTEXPR_INLINE auto EXTRasterizationOrderAttachmentAccessExtensionName = VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME;
8467  VULKAN_HPP_CONSTEXPR_INLINE auto EXTRasterizationOrderAttachmentAccessSpecVersion   = VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION;
8468
8469  //=== VK_NV_optical_flow ===
8470  VULKAN_HPP_CONSTEXPR_INLINE auto NVOpticalFlowExtensionName = VK_NV_OPTICAL_FLOW_EXTENSION_NAME;
8471  VULKAN_HPP_CONSTEXPR_INLINE auto NVOpticalFlowSpecVersion   = VK_NV_OPTICAL_FLOW_SPEC_VERSION;
8472
8473  //=== VK_EXT_legacy_dithering ===
8474  VULKAN_HPP_CONSTEXPR_INLINE auto EXTLegacyDitheringExtensionName = VK_EXT_LEGACY_DITHERING_EXTENSION_NAME;
8475  VULKAN_HPP_CONSTEXPR_INLINE auto EXTLegacyDitheringSpecVersion   = VK_EXT_LEGACY_DITHERING_SPEC_VERSION;
8476
8477  //=== VK_EXT_pipeline_protected_access ===
8478  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelineProtectedAccessExtensionName = VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME;
8479  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelineProtectedAccessSpecVersion   = VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION;
8480
8481#if defined( VK_USE_PLATFORM_ANDROID_KHR )
8482  //=== VK_ANDROID_external_format_resolve ===
8483  VULKAN_HPP_CONSTEXPR_INLINE auto ANDROIDExternalFormatResolveExtensionName = VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME;
8484  VULKAN_HPP_CONSTEXPR_INLINE auto ANDROIDExternalFormatResolveSpecVersion   = VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION;
8485#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
8486
8487  //=== VK_KHR_maintenance5 ===
8488  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance5ExtensionName = VK_KHR_MAINTENANCE_5_EXTENSION_NAME;
8489  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance5SpecVersion   = VK_KHR_MAINTENANCE_5_SPEC_VERSION;
8490
8491  //=== VK_KHR_ray_tracing_position_fetch ===
8492  VULKAN_HPP_CONSTEXPR_INLINE auto KHRRayTracingPositionFetchExtensionName = VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME;
8493  VULKAN_HPP_CONSTEXPR_INLINE auto KHRRayTracingPositionFetchSpecVersion   = VK_KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION;
8494
8495  //=== VK_EXT_shader_object ===
8496  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderObjectExtensionName = VK_EXT_SHADER_OBJECT_EXTENSION_NAME;
8497  VULKAN_HPP_CONSTEXPR_INLINE auto EXTShaderObjectSpecVersion   = VK_EXT_SHADER_OBJECT_SPEC_VERSION;
8498
8499  //=== VK_QCOM_tile_properties ===
8500  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMTilePropertiesExtensionName = VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME;
8501  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMTilePropertiesSpecVersion   = VK_QCOM_TILE_PROPERTIES_SPEC_VERSION;
8502
8503  //=== VK_SEC_amigo_profiling ===
8504  VULKAN_HPP_CONSTEXPR_INLINE auto SECAmigoProfilingExtensionName = VK_SEC_AMIGO_PROFILING_EXTENSION_NAME;
8505  VULKAN_HPP_CONSTEXPR_INLINE auto SECAmigoProfilingSpecVersion   = VK_SEC_AMIGO_PROFILING_SPEC_VERSION;
8506
8507  //=== VK_QCOM_multiview_per_view_viewports ===
8508  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMMultiviewPerViewViewportsExtensionName = VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME;
8509  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMMultiviewPerViewViewportsSpecVersion   = VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION;
8510
8511  //=== VK_NV_ray_tracing_invocation_reorder ===
8512  VULKAN_HPP_CONSTEXPR_INLINE auto NVRayTracingInvocationReorderExtensionName = VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME;
8513  VULKAN_HPP_CONSTEXPR_INLINE auto NVRayTracingInvocationReorderSpecVersion   = VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION;
8514
8515  //=== VK_NV_extended_sparse_address_space ===
8516  VULKAN_HPP_CONSTEXPR_INLINE auto NVExtendedSparseAddressSpaceExtensionName = VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME;
8517  VULKAN_HPP_CONSTEXPR_INLINE auto NVExtendedSparseAddressSpaceSpecVersion   = VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION;
8518
8519  //=== VK_EXT_mutable_descriptor_type ===
8520  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMutableDescriptorTypeExtensionName = VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME;
8521  VULKAN_HPP_CONSTEXPR_INLINE auto EXTMutableDescriptorTypeSpecVersion   = VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION;
8522
8523  //=== VK_EXT_layer_settings ===
8524  VULKAN_HPP_CONSTEXPR_INLINE auto EXTLayerSettingsExtensionName = VK_EXT_LAYER_SETTINGS_EXTENSION_NAME;
8525  VULKAN_HPP_CONSTEXPR_INLINE auto EXTLayerSettingsSpecVersion   = VK_EXT_LAYER_SETTINGS_SPEC_VERSION;
8526
8527  //=== VK_ARM_shader_core_builtins ===
8528  VULKAN_HPP_CONSTEXPR_INLINE auto ARMShaderCoreBuiltinsExtensionName = VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME;
8529  VULKAN_HPP_CONSTEXPR_INLINE auto ARMShaderCoreBuiltinsSpecVersion   = VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION;
8530
8531  //=== VK_EXT_pipeline_library_group_handles ===
8532  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelineLibraryGroupHandlesExtensionName = VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME;
8533  VULKAN_HPP_CONSTEXPR_INLINE auto EXTPipelineLibraryGroupHandlesSpecVersion   = VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION;
8534
8535  //=== VK_EXT_dynamic_rendering_unused_attachments ===
8536  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDynamicRenderingUnusedAttachmentsExtensionName = VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME;
8537  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDynamicRenderingUnusedAttachmentsSpecVersion   = VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION;
8538
8539  //=== VK_NV_low_latency2 ===
8540  VULKAN_HPP_CONSTEXPR_INLINE auto NVLowLatency2ExtensionName = VK_NV_LOW_LATENCY_2_EXTENSION_NAME;
8541  VULKAN_HPP_CONSTEXPR_INLINE auto NVLowLatency2SpecVersion   = VK_NV_LOW_LATENCY_2_SPEC_VERSION;
8542
8543  //=== VK_KHR_cooperative_matrix ===
8544  VULKAN_HPP_CONSTEXPR_INLINE auto KHRCooperativeMatrixExtensionName = VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME;
8545  VULKAN_HPP_CONSTEXPR_INLINE auto KHRCooperativeMatrixSpecVersion   = VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION;
8546
8547  //=== VK_QCOM_multiview_per_view_render_areas ===
8548  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMMultiviewPerViewRenderAreasExtensionName = VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_EXTENSION_NAME;
8549  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMMultiviewPerViewRenderAreasSpecVersion   = VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION;
8550
8551  //=== VK_KHR_video_maintenance1 ===
8552  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoMaintenance1ExtensionName = VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME;
8553  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVideoMaintenance1SpecVersion   = VK_KHR_VIDEO_MAINTENANCE_1_SPEC_VERSION;
8554
8555  //=== VK_NV_per_stage_descriptor_set ===
8556  VULKAN_HPP_CONSTEXPR_INLINE auto NVPerStageDescriptorSetExtensionName = VK_NV_PER_STAGE_DESCRIPTOR_SET_EXTENSION_NAME;
8557  VULKAN_HPP_CONSTEXPR_INLINE auto NVPerStageDescriptorSetSpecVersion   = VK_NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION;
8558
8559  //=== VK_QCOM_image_processing2 ===
8560  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMImageProcessing2ExtensionName = VK_QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME;
8561  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMImageProcessing2SpecVersion   = VK_QCOM_IMAGE_PROCESSING_2_SPEC_VERSION;
8562
8563  //=== VK_QCOM_filter_cubic_weights ===
8564  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMFilterCubicWeightsExtensionName = VK_QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME;
8565  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMFilterCubicWeightsSpecVersion   = VK_QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION;
8566
8567  //=== VK_QCOM_ycbcr_degamma ===
8568  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMYcbcrDegammaExtensionName = VK_QCOM_YCBCR_DEGAMMA_EXTENSION_NAME;
8569  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMYcbcrDegammaSpecVersion   = VK_QCOM_YCBCR_DEGAMMA_SPEC_VERSION;
8570
8571  //=== VK_QCOM_filter_cubic_clamp ===
8572  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMFilterCubicClampExtensionName = VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME;
8573  VULKAN_HPP_CONSTEXPR_INLINE auto QCOMFilterCubicClampSpecVersion   = VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION;
8574
8575  //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
8576  VULKAN_HPP_CONSTEXPR_INLINE auto EXTAttachmentFeedbackLoopDynamicStateExtensionName = VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME;
8577  VULKAN_HPP_CONSTEXPR_INLINE auto EXTAttachmentFeedbackLoopDynamicStateSpecVersion   = VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION;
8578
8579  //=== VK_KHR_vertex_attribute_divisor ===
8580  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVertexAttributeDivisorExtensionName = VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME;
8581  VULKAN_HPP_CONSTEXPR_INLINE auto KHRVertexAttributeDivisorSpecVersion   = VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION;
8582
8583#if defined( VK_USE_PLATFORM_SCREEN_QNX )
8584  //=== VK_QNX_external_memory_screen_buffer ===
8585  VULKAN_HPP_CONSTEXPR_INLINE auto QNXExternalMemoryScreenBufferExtensionName = VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME;
8586  VULKAN_HPP_CONSTEXPR_INLINE auto QNXExternalMemoryScreenBufferSpecVersion   = VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION;
8587#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
8588
8589  //=== VK_MSFT_layered_driver ===
8590  VULKAN_HPP_CONSTEXPR_INLINE auto MSFTLayeredDriverExtensionName = VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME;
8591  VULKAN_HPP_CONSTEXPR_INLINE auto MSFTLayeredDriverSpecVersion   = VK_MSFT_LAYERED_DRIVER_SPEC_VERSION;
8592
8593  //=== VK_KHR_calibrated_timestamps ===
8594  VULKAN_HPP_CONSTEXPR_INLINE auto KHRCalibratedTimestampsExtensionName = VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME;
8595  VULKAN_HPP_CONSTEXPR_INLINE auto KHRCalibratedTimestampsSpecVersion   = VK_KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION;
8596
8597  //=== VK_KHR_maintenance6 ===
8598  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance6ExtensionName = VK_KHR_MAINTENANCE_6_EXTENSION_NAME;
8599  VULKAN_HPP_CONSTEXPR_INLINE auto KHRMaintenance6SpecVersion   = VK_KHR_MAINTENANCE_6_SPEC_VERSION;
8600
8601  //=== VK_NV_descriptor_pool_overallocation ===
8602  VULKAN_HPP_CONSTEXPR_INLINE auto NVDescriptorPoolOverallocationExtensionName = VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME;
8603  VULKAN_HPP_CONSTEXPR_INLINE auto NVDescriptorPoolOverallocationSpecVersion   = VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION;
8604
8605}  // namespace VULKAN_HPP_NAMESPACE
8606
8607// clang-format off
8608#include <vulkan/vulkan_handles.hpp>
8609#include <vulkan/vulkan_structs.hpp>
8610#include <vulkan/vulkan_funcs.hpp>
8611
8612// clang-format on
8613
8614namespace VULKAN_HPP_NAMESPACE
8615{
8616#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
8617
8618  //=======================
8619  //=== STRUCTS EXTENDS ===
8620  //=======================
8621
8622  //=== VK_VERSION_1_0 ===
8623  template <>
8624  struct StructExtends<ShaderModuleCreateInfo, PipelineShaderStageCreateInfo>
8625  {
8626    enum
8627    {
8628      value = true
8629    };
8630  };
8631
8632  template <>
8633  struct StructExtends<PipelineLayoutCreateInfo, BindDescriptorSetsInfoKHR>
8634  {
8635    enum
8636    {
8637      value = true
8638    };
8639  };
8640
8641  template <>
8642  struct StructExtends<PipelineLayoutCreateInfo, PushConstantsInfoKHR>
8643  {
8644    enum
8645    {
8646      value = true
8647    };
8648  };
8649
8650  template <>
8651  struct StructExtends<PipelineLayoutCreateInfo, PushDescriptorSetInfoKHR>
8652  {
8653    enum
8654    {
8655      value = true
8656    };
8657  };
8658
8659  template <>
8660  struct StructExtends<PipelineLayoutCreateInfo, PushDescriptorSetWithTemplateInfoKHR>
8661  {
8662    enum
8663    {
8664      value = true
8665    };
8666  };
8667
8668  template <>
8669  struct StructExtends<PipelineLayoutCreateInfo, SetDescriptorBufferOffsetsInfoEXT>
8670  {
8671    enum
8672    {
8673      value = true
8674    };
8675  };
8676
8677  template <>
8678  struct StructExtends<PipelineLayoutCreateInfo, BindDescriptorBufferEmbeddedSamplersInfoEXT>
8679  {
8680    enum
8681    {
8682      value = true
8683    };
8684  };
8685
8686  //=== VK_VERSION_1_1 ===
8687  template <>
8688  struct StructExtends<PhysicalDeviceSubgroupProperties, PhysicalDeviceProperties2>
8689  {
8690    enum
8691    {
8692      value = true
8693    };
8694  };
8695
8696  template <>
8697  struct StructExtends<PhysicalDevice16BitStorageFeatures, PhysicalDeviceFeatures2>
8698  {
8699    enum
8700    {
8701      value = true
8702    };
8703  };
8704
8705  template <>
8706  struct StructExtends<PhysicalDevice16BitStorageFeatures, DeviceCreateInfo>
8707  {
8708    enum
8709    {
8710      value = true
8711    };
8712  };
8713
8714  template <>
8715  struct StructExtends<MemoryDedicatedRequirements, MemoryRequirements2>
8716  {
8717    enum
8718    {
8719      value = true
8720    };
8721  };
8722
8723  template <>
8724  struct StructExtends<MemoryDedicatedAllocateInfo, MemoryAllocateInfo>
8725  {
8726    enum
8727    {
8728      value = true
8729    };
8730  };
8731
8732  template <>
8733  struct StructExtends<MemoryAllocateFlagsInfo, MemoryAllocateInfo>
8734  {
8735    enum
8736    {
8737      value = true
8738    };
8739  };
8740
8741  template <>
8742  struct StructExtends<DeviceGroupRenderPassBeginInfo, RenderPassBeginInfo>
8743  {
8744    enum
8745    {
8746      value = true
8747    };
8748  };
8749
8750  template <>
8751  struct StructExtends<DeviceGroupRenderPassBeginInfo, RenderingInfo>
8752  {
8753    enum
8754    {
8755      value = true
8756    };
8757  };
8758
8759  template <>
8760  struct StructExtends<DeviceGroupCommandBufferBeginInfo, CommandBufferBeginInfo>
8761  {
8762    enum
8763    {
8764      value = true
8765    };
8766  };
8767
8768  template <>
8769  struct StructExtends<DeviceGroupSubmitInfo, SubmitInfo>
8770  {
8771    enum
8772    {
8773      value = true
8774    };
8775  };
8776
8777  template <>
8778  struct StructExtends<DeviceGroupBindSparseInfo, BindSparseInfo>
8779  {
8780    enum
8781    {
8782      value = true
8783    };
8784  };
8785
8786  template <>
8787  struct StructExtends<BindBufferMemoryDeviceGroupInfo, BindBufferMemoryInfo>
8788  {
8789    enum
8790    {
8791      value = true
8792    };
8793  };
8794
8795  template <>
8796  struct StructExtends<BindImageMemoryDeviceGroupInfo, BindImageMemoryInfo>
8797  {
8798    enum
8799    {
8800      value = true
8801    };
8802  };
8803
8804  template <>
8805  struct StructExtends<DeviceGroupDeviceCreateInfo, DeviceCreateInfo>
8806  {
8807    enum
8808    {
8809      value = true
8810    };
8811  };
8812
8813  template <>
8814  struct StructExtends<PhysicalDeviceFeatures2, DeviceCreateInfo>
8815  {
8816    enum
8817    {
8818      value = true
8819    };
8820  };
8821
8822  template <>
8823  struct StructExtends<PhysicalDevicePointClippingProperties, PhysicalDeviceProperties2>
8824  {
8825    enum
8826    {
8827      value = true
8828    };
8829  };
8830
8831  template <>
8832  struct StructExtends<RenderPassInputAttachmentAspectCreateInfo, RenderPassCreateInfo>
8833  {
8834    enum
8835    {
8836      value = true
8837    };
8838  };
8839
8840  template <>
8841  struct StructExtends<ImageViewUsageCreateInfo, ImageViewCreateInfo>
8842  {
8843    enum
8844    {
8845      value = true
8846    };
8847  };
8848
8849  template <>
8850  struct StructExtends<PipelineTessellationDomainOriginStateCreateInfo, PipelineTessellationStateCreateInfo>
8851  {
8852    enum
8853    {
8854      value = true
8855    };
8856  };
8857
8858  template <>
8859  struct StructExtends<RenderPassMultiviewCreateInfo, RenderPassCreateInfo>
8860  {
8861    enum
8862    {
8863      value = true
8864    };
8865  };
8866
8867  template <>
8868  struct StructExtends<PhysicalDeviceMultiviewFeatures, PhysicalDeviceFeatures2>
8869  {
8870    enum
8871    {
8872      value = true
8873    };
8874  };
8875
8876  template <>
8877  struct StructExtends<PhysicalDeviceMultiviewFeatures, DeviceCreateInfo>
8878  {
8879    enum
8880    {
8881      value = true
8882    };
8883  };
8884
8885  template <>
8886  struct StructExtends<PhysicalDeviceMultiviewProperties, PhysicalDeviceProperties2>
8887  {
8888    enum
8889    {
8890      value = true
8891    };
8892  };
8893
8894  template <>
8895  struct StructExtends<PhysicalDeviceVariablePointersFeatures, PhysicalDeviceFeatures2>
8896  {
8897    enum
8898    {
8899      value = true
8900    };
8901  };
8902
8903  template <>
8904  struct StructExtends<PhysicalDeviceVariablePointersFeatures, DeviceCreateInfo>
8905  {
8906    enum
8907    {
8908      value = true
8909    };
8910  };
8911
8912  template <>
8913  struct StructExtends<PhysicalDeviceProtectedMemoryFeatures, PhysicalDeviceFeatures2>
8914  {
8915    enum
8916    {
8917      value = true
8918    };
8919  };
8920
8921  template <>
8922  struct StructExtends<PhysicalDeviceProtectedMemoryFeatures, DeviceCreateInfo>
8923  {
8924    enum
8925    {
8926      value = true
8927    };
8928  };
8929
8930  template <>
8931  struct StructExtends<PhysicalDeviceProtectedMemoryProperties, PhysicalDeviceProperties2>
8932  {
8933    enum
8934    {
8935      value = true
8936    };
8937  };
8938
8939  template <>
8940  struct StructExtends<ProtectedSubmitInfo, SubmitInfo>
8941  {
8942    enum
8943    {
8944      value = true
8945    };
8946  };
8947
8948  template <>
8949  struct StructExtends<SamplerYcbcrConversionInfo, SamplerCreateInfo>
8950  {
8951    enum
8952    {
8953      value = true
8954    };
8955  };
8956
8957  template <>
8958  struct StructExtends<SamplerYcbcrConversionInfo, ImageViewCreateInfo>
8959  {
8960    enum
8961    {
8962      value = true
8963    };
8964  };
8965
8966  template <>
8967  struct StructExtends<BindImagePlaneMemoryInfo, BindImageMemoryInfo>
8968  {
8969    enum
8970    {
8971      value = true
8972    };
8973  };
8974
8975  template <>
8976  struct StructExtends<ImagePlaneMemoryRequirementsInfo, ImageMemoryRequirementsInfo2>
8977  {
8978    enum
8979    {
8980      value = true
8981    };
8982  };
8983
8984  template <>
8985  struct StructExtends<PhysicalDeviceSamplerYcbcrConversionFeatures, PhysicalDeviceFeatures2>
8986  {
8987    enum
8988    {
8989      value = true
8990    };
8991  };
8992
8993  template <>
8994  struct StructExtends<PhysicalDeviceSamplerYcbcrConversionFeatures, DeviceCreateInfo>
8995  {
8996    enum
8997    {
8998      value = true
8999    };
9000  };
9001
9002  template <>
9003  struct StructExtends<SamplerYcbcrConversionImageFormatProperties, ImageFormatProperties2>
9004  {
9005    enum
9006    {
9007      value = true
9008    };
9009  };
9010
9011  template <>
9012  struct StructExtends<PhysicalDeviceExternalImageFormatInfo, PhysicalDeviceImageFormatInfo2>
9013  {
9014    enum
9015    {
9016      value = true
9017    };
9018  };
9019
9020  template <>
9021  struct StructExtends<ExternalImageFormatProperties, ImageFormatProperties2>
9022  {
9023    enum
9024    {
9025      value = true
9026    };
9027  };
9028
9029  template <>
9030  struct StructExtends<PhysicalDeviceIDProperties, PhysicalDeviceProperties2>
9031  {
9032    enum
9033    {
9034      value = true
9035    };
9036  };
9037
9038  template <>
9039  struct StructExtends<ExternalMemoryImageCreateInfo, ImageCreateInfo>
9040  {
9041    enum
9042    {
9043      value = true
9044    };
9045  };
9046
9047  template <>
9048  struct StructExtends<ExternalMemoryBufferCreateInfo, BufferCreateInfo>
9049  {
9050    enum
9051    {
9052      value = true
9053    };
9054  };
9055
9056  template <>
9057  struct StructExtends<ExportMemoryAllocateInfo, MemoryAllocateInfo>
9058  {
9059    enum
9060    {
9061      value = true
9062    };
9063  };
9064
9065  template <>
9066  struct StructExtends<ExportFenceCreateInfo, FenceCreateInfo>
9067  {
9068    enum
9069    {
9070      value = true
9071    };
9072  };
9073
9074  template <>
9075  struct StructExtends<ExportSemaphoreCreateInfo, SemaphoreCreateInfo>
9076  {
9077    enum
9078    {
9079      value = true
9080    };
9081  };
9082
9083  template <>
9084  struct StructExtends<PhysicalDeviceMaintenance3Properties, PhysicalDeviceProperties2>
9085  {
9086    enum
9087    {
9088      value = true
9089    };
9090  };
9091
9092  template <>
9093  struct StructExtends<PhysicalDeviceShaderDrawParametersFeatures, PhysicalDeviceFeatures2>
9094  {
9095    enum
9096    {
9097      value = true
9098    };
9099  };
9100
9101  template <>
9102  struct StructExtends<PhysicalDeviceShaderDrawParametersFeatures, DeviceCreateInfo>
9103  {
9104    enum
9105    {
9106      value = true
9107    };
9108  };
9109
9110  //=== VK_VERSION_1_2 ===
9111  template <>
9112  struct StructExtends<PhysicalDeviceVulkan11Features, PhysicalDeviceFeatures2>
9113  {
9114    enum
9115    {
9116      value = true
9117    };
9118  };
9119
9120  template <>
9121  struct StructExtends<PhysicalDeviceVulkan11Features, DeviceCreateInfo>
9122  {
9123    enum
9124    {
9125      value = true
9126    };
9127  };
9128
9129  template <>
9130  struct StructExtends<PhysicalDeviceVulkan11Properties, PhysicalDeviceProperties2>
9131  {
9132    enum
9133    {
9134      value = true
9135    };
9136  };
9137
9138  template <>
9139  struct StructExtends<PhysicalDeviceVulkan12Features, PhysicalDeviceFeatures2>
9140  {
9141    enum
9142    {
9143      value = true
9144    };
9145  };
9146
9147  template <>
9148  struct StructExtends<PhysicalDeviceVulkan12Features, DeviceCreateInfo>
9149  {
9150    enum
9151    {
9152      value = true
9153    };
9154  };
9155
9156  template <>
9157  struct StructExtends<PhysicalDeviceVulkan12Properties, PhysicalDeviceProperties2>
9158  {
9159    enum
9160    {
9161      value = true
9162    };
9163  };
9164
9165  template <>
9166  struct StructExtends<ImageFormatListCreateInfo, ImageCreateInfo>
9167  {
9168    enum
9169    {
9170      value = true
9171    };
9172  };
9173
9174  template <>
9175  struct StructExtends<ImageFormatListCreateInfo, SwapchainCreateInfoKHR>
9176  {
9177    enum
9178    {
9179      value = true
9180    };
9181  };
9182
9183  template <>
9184  struct StructExtends<ImageFormatListCreateInfo, PhysicalDeviceImageFormatInfo2>
9185  {
9186    enum
9187    {
9188      value = true
9189    };
9190  };
9191
9192  template <>
9193  struct StructExtends<PhysicalDevice8BitStorageFeatures, PhysicalDeviceFeatures2>
9194  {
9195    enum
9196    {
9197      value = true
9198    };
9199  };
9200
9201  template <>
9202  struct StructExtends<PhysicalDevice8BitStorageFeatures, DeviceCreateInfo>
9203  {
9204    enum
9205    {
9206      value = true
9207    };
9208  };
9209
9210  template <>
9211  struct StructExtends<PhysicalDeviceDriverProperties, PhysicalDeviceProperties2>
9212  {
9213    enum
9214    {
9215      value = true
9216    };
9217  };
9218
9219  template <>
9220  struct StructExtends<PhysicalDeviceShaderAtomicInt64Features, PhysicalDeviceFeatures2>
9221  {
9222    enum
9223    {
9224      value = true
9225    };
9226  };
9227
9228  template <>
9229  struct StructExtends<PhysicalDeviceShaderAtomicInt64Features, DeviceCreateInfo>
9230  {
9231    enum
9232    {
9233      value = true
9234    };
9235  };
9236
9237  template <>
9238  struct StructExtends<PhysicalDeviceShaderFloat16Int8Features, PhysicalDeviceFeatures2>
9239  {
9240    enum
9241    {
9242      value = true
9243    };
9244  };
9245
9246  template <>
9247  struct StructExtends<PhysicalDeviceShaderFloat16Int8Features, DeviceCreateInfo>
9248  {
9249    enum
9250    {
9251      value = true
9252    };
9253  };
9254
9255  template <>
9256  struct StructExtends<PhysicalDeviceFloatControlsProperties, PhysicalDeviceProperties2>
9257  {
9258    enum
9259    {
9260      value = true
9261    };
9262  };
9263
9264  template <>
9265  struct StructExtends<DescriptorSetLayoutBindingFlagsCreateInfo, DescriptorSetLayoutCreateInfo>
9266  {
9267    enum
9268    {
9269      value = true
9270    };
9271  };
9272
9273  template <>
9274  struct StructExtends<PhysicalDeviceDescriptorIndexingFeatures, PhysicalDeviceFeatures2>
9275  {
9276    enum
9277    {
9278      value = true
9279    };
9280  };
9281
9282  template <>
9283  struct StructExtends<PhysicalDeviceDescriptorIndexingFeatures, DeviceCreateInfo>
9284  {
9285    enum
9286    {
9287      value = true
9288    };
9289  };
9290
9291  template <>
9292  struct StructExtends<PhysicalDeviceDescriptorIndexingProperties, PhysicalDeviceProperties2>
9293  {
9294    enum
9295    {
9296      value = true
9297    };
9298  };
9299
9300  template <>
9301  struct StructExtends<DescriptorSetVariableDescriptorCountAllocateInfo, DescriptorSetAllocateInfo>
9302  {
9303    enum
9304    {
9305      value = true
9306    };
9307  };
9308
9309  template <>
9310  struct StructExtends<DescriptorSetVariableDescriptorCountLayoutSupport, DescriptorSetLayoutSupport>
9311  {
9312    enum
9313    {
9314      value = true
9315    };
9316  };
9317
9318  template <>
9319  struct StructExtends<SubpassDescriptionDepthStencilResolve, SubpassDescription2>
9320  {
9321    enum
9322    {
9323      value = true
9324    };
9325  };
9326
9327  template <>
9328  struct StructExtends<PhysicalDeviceDepthStencilResolveProperties, PhysicalDeviceProperties2>
9329  {
9330    enum
9331    {
9332      value = true
9333    };
9334  };
9335
9336  template <>
9337  struct StructExtends<PhysicalDeviceScalarBlockLayoutFeatures, PhysicalDeviceFeatures2>
9338  {
9339    enum
9340    {
9341      value = true
9342    };
9343  };
9344
9345  template <>
9346  struct StructExtends<PhysicalDeviceScalarBlockLayoutFeatures, DeviceCreateInfo>
9347  {
9348    enum
9349    {
9350      value = true
9351    };
9352  };
9353
9354  template <>
9355  struct StructExtends<ImageStencilUsageCreateInfo, ImageCreateInfo>
9356  {
9357    enum
9358    {
9359      value = true
9360    };
9361  };
9362
9363  template <>
9364  struct StructExtends<ImageStencilUsageCreateInfo, PhysicalDeviceImageFormatInfo2>
9365  {
9366    enum
9367    {
9368      value = true
9369    };
9370  };
9371
9372  template <>
9373  struct StructExtends<SamplerReductionModeCreateInfo, SamplerCreateInfo>
9374  {
9375    enum
9376    {
9377      value = true
9378    };
9379  };
9380
9381  template <>
9382  struct StructExtends<PhysicalDeviceSamplerFilterMinmaxProperties, PhysicalDeviceProperties2>
9383  {
9384    enum
9385    {
9386      value = true
9387    };
9388  };
9389
9390  template <>
9391  struct StructExtends<PhysicalDeviceVulkanMemoryModelFeatures, PhysicalDeviceFeatures2>
9392  {
9393    enum
9394    {
9395      value = true
9396    };
9397  };
9398
9399  template <>
9400  struct StructExtends<PhysicalDeviceVulkanMemoryModelFeatures, DeviceCreateInfo>
9401  {
9402    enum
9403    {
9404      value = true
9405    };
9406  };
9407
9408  template <>
9409  struct StructExtends<PhysicalDeviceImagelessFramebufferFeatures, PhysicalDeviceFeatures2>
9410  {
9411    enum
9412    {
9413      value = true
9414    };
9415  };
9416
9417  template <>
9418  struct StructExtends<PhysicalDeviceImagelessFramebufferFeatures, DeviceCreateInfo>
9419  {
9420    enum
9421    {
9422      value = true
9423    };
9424  };
9425
9426  template <>
9427  struct StructExtends<FramebufferAttachmentsCreateInfo, FramebufferCreateInfo>
9428  {
9429    enum
9430    {
9431      value = true
9432    };
9433  };
9434
9435  template <>
9436  struct StructExtends<RenderPassAttachmentBeginInfo, RenderPassBeginInfo>
9437  {
9438    enum
9439    {
9440      value = true
9441    };
9442  };
9443
9444  template <>
9445  struct StructExtends<PhysicalDeviceUniformBufferStandardLayoutFeatures, PhysicalDeviceFeatures2>
9446  {
9447    enum
9448    {
9449      value = true
9450    };
9451  };
9452
9453  template <>
9454  struct StructExtends<PhysicalDeviceUniformBufferStandardLayoutFeatures, DeviceCreateInfo>
9455  {
9456    enum
9457    {
9458      value = true
9459    };
9460  };
9461
9462  template <>
9463  struct StructExtends<PhysicalDeviceShaderSubgroupExtendedTypesFeatures, PhysicalDeviceFeatures2>
9464  {
9465    enum
9466    {
9467      value = true
9468    };
9469  };
9470
9471  template <>
9472  struct StructExtends<PhysicalDeviceShaderSubgroupExtendedTypesFeatures, DeviceCreateInfo>
9473  {
9474    enum
9475    {
9476      value = true
9477    };
9478  };
9479
9480  template <>
9481  struct StructExtends<PhysicalDeviceSeparateDepthStencilLayoutsFeatures, PhysicalDeviceFeatures2>
9482  {
9483    enum
9484    {
9485      value = true
9486    };
9487  };
9488
9489  template <>
9490  struct StructExtends<PhysicalDeviceSeparateDepthStencilLayoutsFeatures, DeviceCreateInfo>
9491  {
9492    enum
9493    {
9494      value = true
9495    };
9496  };
9497
9498  template <>
9499  struct StructExtends<AttachmentReferenceStencilLayout, AttachmentReference2>
9500  {
9501    enum
9502    {
9503      value = true
9504    };
9505  };
9506
9507  template <>
9508  struct StructExtends<AttachmentDescriptionStencilLayout, AttachmentDescription2>
9509  {
9510    enum
9511    {
9512      value = true
9513    };
9514  };
9515
9516  template <>
9517  struct StructExtends<PhysicalDeviceHostQueryResetFeatures, PhysicalDeviceFeatures2>
9518  {
9519    enum
9520    {
9521      value = true
9522    };
9523  };
9524
9525  template <>
9526  struct StructExtends<PhysicalDeviceHostQueryResetFeatures, DeviceCreateInfo>
9527  {
9528    enum
9529    {
9530      value = true
9531    };
9532  };
9533
9534  template <>
9535  struct StructExtends<PhysicalDeviceTimelineSemaphoreFeatures, PhysicalDeviceFeatures2>
9536  {
9537    enum
9538    {
9539      value = true
9540    };
9541  };
9542
9543  template <>
9544  struct StructExtends<PhysicalDeviceTimelineSemaphoreFeatures, DeviceCreateInfo>
9545  {
9546    enum
9547    {
9548      value = true
9549    };
9550  };
9551
9552  template <>
9553  struct StructExtends<PhysicalDeviceTimelineSemaphoreProperties, PhysicalDeviceProperties2>
9554  {
9555    enum
9556    {
9557      value = true
9558    };
9559  };
9560
9561  template <>
9562  struct StructExtends<SemaphoreTypeCreateInfo, SemaphoreCreateInfo>
9563  {
9564    enum
9565    {
9566      value = true
9567    };
9568  };
9569
9570  template <>
9571  struct StructExtends<SemaphoreTypeCreateInfo, PhysicalDeviceExternalSemaphoreInfo>
9572  {
9573    enum
9574    {
9575      value = true
9576    };
9577  };
9578
9579  template <>
9580  struct StructExtends<TimelineSemaphoreSubmitInfo, SubmitInfo>
9581  {
9582    enum
9583    {
9584      value = true
9585    };
9586  };
9587
9588  template <>
9589  struct StructExtends<TimelineSemaphoreSubmitInfo, BindSparseInfo>
9590  {
9591    enum
9592    {
9593      value = true
9594    };
9595  };
9596
9597  template <>
9598  struct StructExtends<PhysicalDeviceBufferDeviceAddressFeatures, PhysicalDeviceFeatures2>
9599  {
9600    enum
9601    {
9602      value = true
9603    };
9604  };
9605
9606  template <>
9607  struct StructExtends<PhysicalDeviceBufferDeviceAddressFeatures, DeviceCreateInfo>
9608  {
9609    enum
9610    {
9611      value = true
9612    };
9613  };
9614
9615  template <>
9616  struct StructExtends<BufferOpaqueCaptureAddressCreateInfo, BufferCreateInfo>
9617  {
9618    enum
9619    {
9620      value = true
9621    };
9622  };
9623
9624  template <>
9625  struct StructExtends<MemoryOpaqueCaptureAddressAllocateInfo, MemoryAllocateInfo>
9626  {
9627    enum
9628    {
9629      value = true
9630    };
9631  };
9632
9633  //=== VK_VERSION_1_3 ===
9634  template <>
9635  struct StructExtends<PhysicalDeviceVulkan13Features, PhysicalDeviceFeatures2>
9636  {
9637    enum
9638    {
9639      value = true
9640    };
9641  };
9642
9643  template <>
9644  struct StructExtends<PhysicalDeviceVulkan13Features, DeviceCreateInfo>
9645  {
9646    enum
9647    {
9648      value = true
9649    };
9650  };
9651
9652  template <>
9653  struct StructExtends<PhysicalDeviceVulkan13Properties, PhysicalDeviceProperties2>
9654  {
9655    enum
9656    {
9657      value = true
9658    };
9659  };
9660
9661  template <>
9662  struct StructExtends<PipelineCreationFeedbackCreateInfo, GraphicsPipelineCreateInfo>
9663  {
9664    enum
9665    {
9666      value = true
9667    };
9668  };
9669
9670  template <>
9671  struct StructExtends<PipelineCreationFeedbackCreateInfo, ComputePipelineCreateInfo>
9672  {
9673    enum
9674    {
9675      value = true
9676    };
9677  };
9678
9679  template <>
9680  struct StructExtends<PipelineCreationFeedbackCreateInfo, RayTracingPipelineCreateInfoNV>
9681  {
9682    enum
9683    {
9684      value = true
9685    };
9686  };
9687
9688  template <>
9689  struct StructExtends<PipelineCreationFeedbackCreateInfo, RayTracingPipelineCreateInfoKHR>
9690  {
9691    enum
9692    {
9693      value = true
9694    };
9695  };
9696#  if defined( VK_ENABLE_BETA_EXTENSIONS )
9697  template <>
9698  struct StructExtends<PipelineCreationFeedbackCreateInfo, ExecutionGraphPipelineCreateInfoAMDX>
9699  {
9700    enum
9701    {
9702      value = true
9703    };
9704  };
9705#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
9706  template <>
9707  struct StructExtends<PhysicalDeviceShaderTerminateInvocationFeatures, PhysicalDeviceFeatures2>
9708  {
9709    enum
9710    {
9711      value = true
9712    };
9713  };
9714
9715  template <>
9716  struct StructExtends<PhysicalDeviceShaderTerminateInvocationFeatures, DeviceCreateInfo>
9717  {
9718    enum
9719    {
9720      value = true
9721    };
9722  };
9723
9724  template <>
9725  struct StructExtends<PhysicalDeviceShaderDemoteToHelperInvocationFeatures, PhysicalDeviceFeatures2>
9726  {
9727    enum
9728    {
9729      value = true
9730    };
9731  };
9732
9733  template <>
9734  struct StructExtends<PhysicalDeviceShaderDemoteToHelperInvocationFeatures, DeviceCreateInfo>
9735  {
9736    enum
9737    {
9738      value = true
9739    };
9740  };
9741
9742  template <>
9743  struct StructExtends<PhysicalDevicePrivateDataFeatures, PhysicalDeviceFeatures2>
9744  {
9745    enum
9746    {
9747      value = true
9748    };
9749  };
9750
9751  template <>
9752  struct StructExtends<PhysicalDevicePrivateDataFeatures, DeviceCreateInfo>
9753  {
9754    enum
9755    {
9756      value = true
9757    };
9758  };
9759
9760  template <>
9761  struct StructExtends<DevicePrivateDataCreateInfo, DeviceCreateInfo>
9762  {
9763    enum
9764    {
9765      value = true
9766    };
9767  };
9768
9769  template <>
9770  struct StructExtends<PhysicalDevicePipelineCreationCacheControlFeatures, PhysicalDeviceFeatures2>
9771  {
9772    enum
9773    {
9774      value = true
9775    };
9776  };
9777
9778  template <>
9779  struct StructExtends<PhysicalDevicePipelineCreationCacheControlFeatures, DeviceCreateInfo>
9780  {
9781    enum
9782    {
9783      value = true
9784    };
9785  };
9786
9787  template <>
9788  struct StructExtends<MemoryBarrier2, SubpassDependency2>
9789  {
9790    enum
9791    {
9792      value = true
9793    };
9794  };
9795
9796  template <>
9797  struct StructExtends<PhysicalDeviceSynchronization2Features, PhysicalDeviceFeatures2>
9798  {
9799    enum
9800    {
9801      value = true
9802    };
9803  };
9804
9805  template <>
9806  struct StructExtends<PhysicalDeviceSynchronization2Features, DeviceCreateInfo>
9807  {
9808    enum
9809    {
9810      value = true
9811    };
9812  };
9813
9814  template <>
9815  struct StructExtends<PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures, PhysicalDeviceFeatures2>
9816  {
9817    enum
9818    {
9819      value = true
9820    };
9821  };
9822
9823  template <>
9824  struct StructExtends<PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures, DeviceCreateInfo>
9825  {
9826    enum
9827    {
9828      value = true
9829    };
9830  };
9831
9832  template <>
9833  struct StructExtends<PhysicalDeviceImageRobustnessFeatures, PhysicalDeviceFeatures2>
9834  {
9835    enum
9836    {
9837      value = true
9838    };
9839  };
9840
9841  template <>
9842  struct StructExtends<PhysicalDeviceImageRobustnessFeatures, DeviceCreateInfo>
9843  {
9844    enum
9845    {
9846      value = true
9847    };
9848  };
9849
9850  template <>
9851  struct StructExtends<PhysicalDeviceSubgroupSizeControlFeatures, PhysicalDeviceFeatures2>
9852  {
9853    enum
9854    {
9855      value = true
9856    };
9857  };
9858
9859  template <>
9860  struct StructExtends<PhysicalDeviceSubgroupSizeControlFeatures, DeviceCreateInfo>
9861  {
9862    enum
9863    {
9864      value = true
9865    };
9866  };
9867
9868  template <>
9869  struct StructExtends<PhysicalDeviceSubgroupSizeControlProperties, PhysicalDeviceProperties2>
9870  {
9871    enum
9872    {
9873      value = true
9874    };
9875  };
9876
9877  template <>
9878  struct StructExtends<PipelineShaderStageRequiredSubgroupSizeCreateInfo, PipelineShaderStageCreateInfo>
9879  {
9880    enum
9881    {
9882      value = true
9883    };
9884  };
9885
9886  template <>
9887  struct StructExtends<PipelineShaderStageRequiredSubgroupSizeCreateInfo, ShaderCreateInfoEXT>
9888  {
9889    enum
9890    {
9891      value = true
9892    };
9893  };
9894
9895  template <>
9896  struct StructExtends<PhysicalDeviceInlineUniformBlockFeatures, PhysicalDeviceFeatures2>
9897  {
9898    enum
9899    {
9900      value = true
9901    };
9902  };
9903
9904  template <>
9905  struct StructExtends<PhysicalDeviceInlineUniformBlockFeatures, DeviceCreateInfo>
9906  {
9907    enum
9908    {
9909      value = true
9910    };
9911  };
9912
9913  template <>
9914  struct StructExtends<PhysicalDeviceInlineUniformBlockProperties, PhysicalDeviceProperties2>
9915  {
9916    enum
9917    {
9918      value = true
9919    };
9920  };
9921
9922  template <>
9923  struct StructExtends<WriteDescriptorSetInlineUniformBlock, WriteDescriptorSet>
9924  {
9925    enum
9926    {
9927      value = true
9928    };
9929  };
9930
9931  template <>
9932  struct StructExtends<DescriptorPoolInlineUniformBlockCreateInfo, DescriptorPoolCreateInfo>
9933  {
9934    enum
9935    {
9936      value = true
9937    };
9938  };
9939
9940  template <>
9941  struct StructExtends<PhysicalDeviceTextureCompressionASTCHDRFeatures, PhysicalDeviceFeatures2>
9942  {
9943    enum
9944    {
9945      value = true
9946    };
9947  };
9948
9949  template <>
9950  struct StructExtends<PhysicalDeviceTextureCompressionASTCHDRFeatures, DeviceCreateInfo>
9951  {
9952    enum
9953    {
9954      value = true
9955    };
9956  };
9957
9958  template <>
9959  struct StructExtends<PipelineRenderingCreateInfo, GraphicsPipelineCreateInfo>
9960  {
9961    enum
9962    {
9963      value = true
9964    };
9965  };
9966
9967  template <>
9968  struct StructExtends<PhysicalDeviceDynamicRenderingFeatures, PhysicalDeviceFeatures2>
9969  {
9970    enum
9971    {
9972      value = true
9973    };
9974  };
9975
9976  template <>
9977  struct StructExtends<PhysicalDeviceDynamicRenderingFeatures, DeviceCreateInfo>
9978  {
9979    enum
9980    {
9981      value = true
9982    };
9983  };
9984
9985  template <>
9986  struct StructExtends<CommandBufferInheritanceRenderingInfo, CommandBufferInheritanceInfo>
9987  {
9988    enum
9989    {
9990      value = true
9991    };
9992  };
9993
9994  template <>
9995  struct StructExtends<PhysicalDeviceShaderIntegerDotProductFeatures, PhysicalDeviceFeatures2>
9996  {
9997    enum
9998    {
9999      value = true
10000    };
10001  };
10002
10003  template <>
10004  struct StructExtends<PhysicalDeviceShaderIntegerDotProductFeatures, DeviceCreateInfo>
10005  {
10006    enum
10007    {
10008      value = true
10009    };
10010  };
10011
10012  template <>
10013  struct StructExtends<PhysicalDeviceShaderIntegerDotProductProperties, PhysicalDeviceProperties2>
10014  {
10015    enum
10016    {
10017      value = true
10018    };
10019  };
10020
10021  template <>
10022  struct StructExtends<PhysicalDeviceTexelBufferAlignmentProperties, PhysicalDeviceProperties2>
10023  {
10024    enum
10025    {
10026      value = true
10027    };
10028  };
10029
10030  template <>
10031  struct StructExtends<FormatProperties3, FormatProperties2>
10032  {
10033    enum
10034    {
10035      value = true
10036    };
10037  };
10038
10039  template <>
10040  struct StructExtends<PhysicalDeviceMaintenance4Features, PhysicalDeviceFeatures2>
10041  {
10042    enum
10043    {
10044      value = true
10045    };
10046  };
10047
10048  template <>
10049  struct StructExtends<PhysicalDeviceMaintenance4Features, DeviceCreateInfo>
10050  {
10051    enum
10052    {
10053      value = true
10054    };
10055  };
10056
10057  template <>
10058  struct StructExtends<PhysicalDeviceMaintenance4Properties, PhysicalDeviceProperties2>
10059  {
10060    enum
10061    {
10062      value = true
10063    };
10064  };
10065
10066  //=== VK_KHR_swapchain ===
10067  template <>
10068  struct StructExtends<ImageSwapchainCreateInfoKHR, ImageCreateInfo>
10069  {
10070    enum
10071    {
10072      value = true
10073    };
10074  };
10075
10076  template <>
10077  struct StructExtends<BindImageMemorySwapchainInfoKHR, BindImageMemoryInfo>
10078  {
10079    enum
10080    {
10081      value = true
10082    };
10083  };
10084
10085  template <>
10086  struct StructExtends<DeviceGroupPresentInfoKHR, PresentInfoKHR>
10087  {
10088    enum
10089    {
10090      value = true
10091    };
10092  };
10093
10094  template <>
10095  struct StructExtends<DeviceGroupSwapchainCreateInfoKHR, SwapchainCreateInfoKHR>
10096  {
10097    enum
10098    {
10099      value = true
10100    };
10101  };
10102
10103  //=== VK_KHR_display_swapchain ===
10104  template <>
10105  struct StructExtends<DisplayPresentInfoKHR, PresentInfoKHR>
10106  {
10107    enum
10108    {
10109      value = true
10110    };
10111  };
10112
10113  //=== VK_EXT_debug_report ===
10114  template <>
10115  struct StructExtends<DebugReportCallbackCreateInfoEXT, InstanceCreateInfo>
10116  {
10117    enum
10118    {
10119      value = true
10120    };
10121  };
10122
10123  //=== VK_AMD_rasterization_order ===
10124  template <>
10125  struct StructExtends<PipelineRasterizationStateRasterizationOrderAMD, PipelineRasterizationStateCreateInfo>
10126  {
10127    enum
10128    {
10129      value = true
10130    };
10131  };
10132
10133  //=== VK_KHR_video_queue ===
10134  template <>
10135  struct StructExtends<QueueFamilyQueryResultStatusPropertiesKHR, QueueFamilyProperties2>
10136  {
10137    enum
10138    {
10139      value = true
10140    };
10141  };
10142
10143  template <>
10144  struct StructExtends<QueueFamilyVideoPropertiesKHR, QueueFamilyProperties2>
10145  {
10146    enum
10147    {
10148      value = true
10149    };
10150  };
10151
10152  template <>
10153  struct StructExtends<VideoProfileInfoKHR, QueryPoolCreateInfo>
10154  {
10155    enum
10156    {
10157      value = true
10158    };
10159  };
10160
10161  template <>
10162  struct StructExtends<VideoProfileListInfoKHR, PhysicalDeviceImageFormatInfo2>
10163  {
10164    enum
10165    {
10166      value = true
10167    };
10168  };
10169
10170  template <>
10171  struct StructExtends<VideoProfileListInfoKHR, PhysicalDeviceVideoFormatInfoKHR>
10172  {
10173    enum
10174    {
10175      value = true
10176    };
10177  };
10178
10179  template <>
10180  struct StructExtends<VideoProfileListInfoKHR, ImageCreateInfo>
10181  {
10182    enum
10183    {
10184      value = true
10185    };
10186  };
10187
10188  template <>
10189  struct StructExtends<VideoProfileListInfoKHR, BufferCreateInfo>
10190  {
10191    enum
10192    {
10193      value = true
10194    };
10195  };
10196
10197  //=== VK_KHR_video_decode_queue ===
10198  template <>
10199  struct StructExtends<VideoDecodeCapabilitiesKHR, VideoCapabilitiesKHR>
10200  {
10201    enum
10202    {
10203      value = true
10204    };
10205  };
10206
10207  template <>
10208  struct StructExtends<VideoDecodeUsageInfoKHR, VideoProfileInfoKHR>
10209  {
10210    enum
10211    {
10212      value = true
10213    };
10214  };
10215
10216  template <>
10217  struct StructExtends<VideoDecodeUsageInfoKHR, QueryPoolCreateInfo>
10218  {
10219    enum
10220    {
10221      value = true
10222    };
10223  };
10224
10225  //=== VK_NV_dedicated_allocation ===
10226  template <>
10227  struct StructExtends<DedicatedAllocationImageCreateInfoNV, ImageCreateInfo>
10228  {
10229    enum
10230    {
10231      value = true
10232    };
10233  };
10234
10235  template <>
10236  struct StructExtends<DedicatedAllocationBufferCreateInfoNV, BufferCreateInfo>
10237  {
10238    enum
10239    {
10240      value = true
10241    };
10242  };
10243
10244  template <>
10245  struct StructExtends<DedicatedAllocationMemoryAllocateInfoNV, MemoryAllocateInfo>
10246  {
10247    enum
10248    {
10249      value = true
10250    };
10251  };
10252
10253  //=== VK_EXT_transform_feedback ===
10254  template <>
10255  struct StructExtends<PhysicalDeviceTransformFeedbackFeaturesEXT, PhysicalDeviceFeatures2>
10256  {
10257    enum
10258    {
10259      value = true
10260    };
10261  };
10262
10263  template <>
10264  struct StructExtends<PhysicalDeviceTransformFeedbackFeaturesEXT, DeviceCreateInfo>
10265  {
10266    enum
10267    {
10268      value = true
10269    };
10270  };
10271
10272  template <>
10273  struct StructExtends<PhysicalDeviceTransformFeedbackPropertiesEXT, PhysicalDeviceProperties2>
10274  {
10275    enum
10276    {
10277      value = true
10278    };
10279  };
10280
10281  template <>
10282  struct StructExtends<PipelineRasterizationStateStreamCreateInfoEXT, PipelineRasterizationStateCreateInfo>
10283  {
10284    enum
10285    {
10286      value = true
10287    };
10288  };
10289
10290  //=== VK_KHR_video_encode_h264 ===
10291  template <>
10292  struct StructExtends<VideoEncodeH264CapabilitiesKHR, VideoCapabilitiesKHR>
10293  {
10294    enum
10295    {
10296      value = true
10297    };
10298  };
10299
10300  template <>
10301  struct StructExtends<VideoEncodeH264QualityLevelPropertiesKHR, VideoEncodeQualityLevelPropertiesKHR>
10302  {
10303    enum
10304    {
10305      value = true
10306    };
10307  };
10308
10309  template <>
10310  struct StructExtends<VideoEncodeH264SessionCreateInfoKHR, VideoSessionCreateInfoKHR>
10311  {
10312    enum
10313    {
10314      value = true
10315    };
10316  };
10317
10318  template <>
10319  struct StructExtends<VideoEncodeH264SessionParametersCreateInfoKHR, VideoSessionParametersCreateInfoKHR>
10320  {
10321    enum
10322    {
10323      value = true
10324    };
10325  };
10326
10327  template <>
10328  struct StructExtends<VideoEncodeH264SessionParametersAddInfoKHR, VideoSessionParametersUpdateInfoKHR>
10329  {
10330    enum
10331    {
10332      value = true
10333    };
10334  };
10335
10336  template <>
10337  struct StructExtends<VideoEncodeH264SessionParametersGetInfoKHR, VideoEncodeSessionParametersGetInfoKHR>
10338  {
10339    enum
10340    {
10341      value = true
10342    };
10343  };
10344
10345  template <>
10346  struct StructExtends<VideoEncodeH264SessionParametersFeedbackInfoKHR, VideoEncodeSessionParametersFeedbackInfoKHR>
10347  {
10348    enum
10349    {
10350      value = true
10351    };
10352  };
10353
10354  template <>
10355  struct StructExtends<VideoEncodeH264PictureInfoKHR, VideoEncodeInfoKHR>
10356  {
10357    enum
10358    {
10359      value = true
10360    };
10361  };
10362
10363  template <>
10364  struct StructExtends<VideoEncodeH264DpbSlotInfoKHR, VideoReferenceSlotInfoKHR>
10365  {
10366    enum
10367    {
10368      value = true
10369    };
10370  };
10371
10372  template <>
10373  struct StructExtends<VideoEncodeH264ProfileInfoKHR, VideoProfileInfoKHR>
10374  {
10375    enum
10376    {
10377      value = true
10378    };
10379  };
10380
10381  template <>
10382  struct StructExtends<VideoEncodeH264ProfileInfoKHR, QueryPoolCreateInfo>
10383  {
10384    enum
10385    {
10386      value = true
10387    };
10388  };
10389
10390  template <>
10391  struct StructExtends<VideoEncodeH264RateControlInfoKHR, VideoCodingControlInfoKHR>
10392  {
10393    enum
10394    {
10395      value = true
10396    };
10397  };
10398
10399  template <>
10400  struct StructExtends<VideoEncodeH264RateControlInfoKHR, VideoBeginCodingInfoKHR>
10401  {
10402    enum
10403    {
10404      value = true
10405    };
10406  };
10407
10408  template <>
10409  struct StructExtends<VideoEncodeH264RateControlLayerInfoKHR, VideoEncodeRateControlLayerInfoKHR>
10410  {
10411    enum
10412    {
10413      value = true
10414    };
10415  };
10416
10417  template <>
10418  struct StructExtends<VideoEncodeH264GopRemainingFrameInfoKHR, VideoBeginCodingInfoKHR>
10419  {
10420    enum
10421    {
10422      value = true
10423    };
10424  };
10425
10426  //=== VK_KHR_video_encode_h265 ===
10427  template <>
10428  struct StructExtends<VideoEncodeH265CapabilitiesKHR, VideoCapabilitiesKHR>
10429  {
10430    enum
10431    {
10432      value = true
10433    };
10434  };
10435
10436  template <>
10437  struct StructExtends<VideoEncodeH265SessionCreateInfoKHR, VideoSessionCreateInfoKHR>
10438  {
10439    enum
10440    {
10441      value = true
10442    };
10443  };
10444
10445  template <>
10446  struct StructExtends<VideoEncodeH265QualityLevelPropertiesKHR, VideoEncodeQualityLevelPropertiesKHR>
10447  {
10448    enum
10449    {
10450      value = true
10451    };
10452  };
10453
10454  template <>
10455  struct StructExtends<VideoEncodeH265SessionParametersCreateInfoKHR, VideoSessionParametersCreateInfoKHR>
10456  {
10457    enum
10458    {
10459      value = true
10460    };
10461  };
10462
10463  template <>
10464  struct StructExtends<VideoEncodeH265SessionParametersAddInfoKHR, VideoSessionParametersUpdateInfoKHR>
10465  {
10466    enum
10467    {
10468      value = true
10469    };
10470  };
10471
10472  template <>
10473  struct StructExtends<VideoEncodeH265SessionParametersGetInfoKHR, VideoEncodeSessionParametersGetInfoKHR>
10474  {
10475    enum
10476    {
10477      value = true
10478    };
10479  };
10480
10481  template <>
10482  struct StructExtends<VideoEncodeH265SessionParametersFeedbackInfoKHR, VideoEncodeSessionParametersFeedbackInfoKHR>
10483  {
10484    enum
10485    {
10486      value = true
10487    };
10488  };
10489
10490  template <>
10491  struct StructExtends<VideoEncodeH265PictureInfoKHR, VideoEncodeInfoKHR>
10492  {
10493    enum
10494    {
10495      value = true
10496    };
10497  };
10498
10499  template <>
10500  struct StructExtends<VideoEncodeH265DpbSlotInfoKHR, VideoReferenceSlotInfoKHR>
10501  {
10502    enum
10503    {
10504      value = true
10505    };
10506  };
10507
10508  template <>
10509  struct StructExtends<VideoEncodeH265ProfileInfoKHR, VideoProfileInfoKHR>
10510  {
10511    enum
10512    {
10513      value = true
10514    };
10515  };
10516
10517  template <>
10518  struct StructExtends<VideoEncodeH265ProfileInfoKHR, QueryPoolCreateInfo>
10519  {
10520    enum
10521    {
10522      value = true
10523    };
10524  };
10525
10526  template <>
10527  struct StructExtends<VideoEncodeH265RateControlInfoKHR, VideoCodingControlInfoKHR>
10528  {
10529    enum
10530    {
10531      value = true
10532    };
10533  };
10534
10535  template <>
10536  struct StructExtends<VideoEncodeH265RateControlInfoKHR, VideoBeginCodingInfoKHR>
10537  {
10538    enum
10539    {
10540      value = true
10541    };
10542  };
10543
10544  template <>
10545  struct StructExtends<VideoEncodeH265RateControlLayerInfoKHR, VideoEncodeRateControlLayerInfoKHR>
10546  {
10547    enum
10548    {
10549      value = true
10550    };
10551  };
10552
10553  template <>
10554  struct StructExtends<VideoEncodeH265GopRemainingFrameInfoKHR, VideoBeginCodingInfoKHR>
10555  {
10556    enum
10557    {
10558      value = true
10559    };
10560  };
10561
10562  //=== VK_KHR_video_decode_h264 ===
10563  template <>
10564  struct StructExtends<VideoDecodeH264ProfileInfoKHR, VideoProfileInfoKHR>
10565  {
10566    enum
10567    {
10568      value = true
10569    };
10570  };
10571
10572  template <>
10573  struct StructExtends<VideoDecodeH264ProfileInfoKHR, QueryPoolCreateInfo>
10574  {
10575    enum
10576    {
10577      value = true
10578    };
10579  };
10580
10581  template <>
10582  struct StructExtends<VideoDecodeH264CapabilitiesKHR, VideoCapabilitiesKHR>
10583  {
10584    enum
10585    {
10586      value = true
10587    };
10588  };
10589
10590  template <>
10591  struct StructExtends<VideoDecodeH264SessionParametersCreateInfoKHR, VideoSessionParametersCreateInfoKHR>
10592  {
10593    enum
10594    {
10595      value = true
10596    };
10597  };
10598
10599  template <>
10600  struct StructExtends<VideoDecodeH264SessionParametersAddInfoKHR, VideoSessionParametersUpdateInfoKHR>
10601  {
10602    enum
10603    {
10604      value = true
10605    };
10606  };
10607
10608  template <>
10609  struct StructExtends<VideoDecodeH264PictureInfoKHR, VideoDecodeInfoKHR>
10610  {
10611    enum
10612    {
10613      value = true
10614    };
10615  };
10616
10617  template <>
10618  struct StructExtends<VideoDecodeH264DpbSlotInfoKHR, VideoReferenceSlotInfoKHR>
10619  {
10620    enum
10621    {
10622      value = true
10623    };
10624  };
10625
10626  //=== VK_AMD_texture_gather_bias_lod ===
10627  template <>
10628  struct StructExtends<TextureLODGatherFormatPropertiesAMD, ImageFormatProperties2>
10629  {
10630    enum
10631    {
10632      value = true
10633    };
10634  };
10635
10636  //=== VK_KHR_dynamic_rendering ===
10637  template <>
10638  struct StructExtends<RenderingFragmentShadingRateAttachmentInfoKHR, RenderingInfo>
10639  {
10640    enum
10641    {
10642      value = true
10643    };
10644  };
10645
10646  template <>
10647  struct StructExtends<RenderingFragmentDensityMapAttachmentInfoEXT, RenderingInfo>
10648  {
10649    enum
10650    {
10651      value = true
10652    };
10653  };
10654
10655  template <>
10656  struct StructExtends<AttachmentSampleCountInfoAMD, CommandBufferInheritanceInfo>
10657  {
10658    enum
10659    {
10660      value = true
10661    };
10662  };
10663
10664  template <>
10665  struct StructExtends<AttachmentSampleCountInfoAMD, GraphicsPipelineCreateInfo>
10666  {
10667    enum
10668    {
10669      value = true
10670    };
10671  };
10672
10673  template <>
10674  struct StructExtends<MultiviewPerViewAttributesInfoNVX, CommandBufferInheritanceInfo>
10675  {
10676    enum
10677    {
10678      value = true
10679    };
10680  };
10681
10682  template <>
10683  struct StructExtends<MultiviewPerViewAttributesInfoNVX, GraphicsPipelineCreateInfo>
10684  {
10685    enum
10686    {
10687      value = true
10688    };
10689  };
10690
10691  template <>
10692  struct StructExtends<MultiviewPerViewAttributesInfoNVX, RenderingInfo>
10693  {
10694    enum
10695    {
10696      value = true
10697    };
10698  };
10699
10700  //=== VK_NV_corner_sampled_image ===
10701  template <>
10702  struct StructExtends<PhysicalDeviceCornerSampledImageFeaturesNV, PhysicalDeviceFeatures2>
10703  {
10704    enum
10705    {
10706      value = true
10707    };
10708  };
10709
10710  template <>
10711  struct StructExtends<PhysicalDeviceCornerSampledImageFeaturesNV, DeviceCreateInfo>
10712  {
10713    enum
10714    {
10715      value = true
10716    };
10717  };
10718
10719  //=== VK_NV_external_memory ===
10720  template <>
10721  struct StructExtends<ExternalMemoryImageCreateInfoNV, ImageCreateInfo>
10722  {
10723    enum
10724    {
10725      value = true
10726    };
10727  };
10728
10729  template <>
10730  struct StructExtends<ExportMemoryAllocateInfoNV, MemoryAllocateInfo>
10731  {
10732    enum
10733    {
10734      value = true
10735    };
10736  };
10737
10738#  if defined( VK_USE_PLATFORM_WIN32_KHR )
10739  //=== VK_NV_external_memory_win32 ===
10740  template <>
10741  struct StructExtends<ImportMemoryWin32HandleInfoNV, MemoryAllocateInfo>
10742  {
10743    enum
10744    {
10745      value = true
10746    };
10747  };
10748
10749  template <>
10750  struct StructExtends<ExportMemoryWin32HandleInfoNV, MemoryAllocateInfo>
10751  {
10752    enum
10753    {
10754      value = true
10755    };
10756  };
10757#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
10758
10759#  if defined( VK_USE_PLATFORM_WIN32_KHR )
10760  //=== VK_NV_win32_keyed_mutex ===
10761  template <>
10762  struct StructExtends<Win32KeyedMutexAcquireReleaseInfoNV, SubmitInfo>
10763  {
10764    enum
10765    {
10766      value = true
10767    };
10768  };
10769
10770  template <>
10771  struct StructExtends<Win32KeyedMutexAcquireReleaseInfoNV, SubmitInfo2>
10772  {
10773    enum
10774    {
10775      value = true
10776    };
10777  };
10778#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
10779
10780  //=== VK_EXT_validation_flags ===
10781  template <>
10782  struct StructExtends<ValidationFlagsEXT, InstanceCreateInfo>
10783  {
10784    enum
10785    {
10786      value = true
10787    };
10788  };
10789
10790  //=== VK_EXT_astc_decode_mode ===
10791  template <>
10792  struct StructExtends<ImageViewASTCDecodeModeEXT, ImageViewCreateInfo>
10793  {
10794    enum
10795    {
10796      value = true
10797    };
10798  };
10799
10800  template <>
10801  struct StructExtends<PhysicalDeviceASTCDecodeFeaturesEXT, PhysicalDeviceFeatures2>
10802  {
10803    enum
10804    {
10805      value = true
10806    };
10807  };
10808
10809  template <>
10810  struct StructExtends<PhysicalDeviceASTCDecodeFeaturesEXT, DeviceCreateInfo>
10811  {
10812    enum
10813    {
10814      value = true
10815    };
10816  };
10817
10818  //=== VK_EXT_pipeline_robustness ===
10819  template <>
10820  struct StructExtends<PhysicalDevicePipelineRobustnessFeaturesEXT, PhysicalDeviceFeatures2>
10821  {
10822    enum
10823    {
10824      value = true
10825    };
10826  };
10827
10828  template <>
10829  struct StructExtends<PhysicalDevicePipelineRobustnessFeaturesEXT, DeviceCreateInfo>
10830  {
10831    enum
10832    {
10833      value = true
10834    };
10835  };
10836
10837  template <>
10838  struct StructExtends<PhysicalDevicePipelineRobustnessPropertiesEXT, PhysicalDeviceProperties2>
10839  {
10840    enum
10841    {
10842      value = true
10843    };
10844  };
10845
10846  template <>
10847  struct StructExtends<PipelineRobustnessCreateInfoEXT, GraphicsPipelineCreateInfo>
10848  {
10849    enum
10850    {
10851      value = true
10852    };
10853  };
10854
10855  template <>
10856  struct StructExtends<PipelineRobustnessCreateInfoEXT, ComputePipelineCreateInfo>
10857  {
10858    enum
10859    {
10860      value = true
10861    };
10862  };
10863
10864  template <>
10865  struct StructExtends<PipelineRobustnessCreateInfoEXT, PipelineShaderStageCreateInfo>
10866  {
10867    enum
10868    {
10869      value = true
10870    };
10871  };
10872
10873  template <>
10874  struct StructExtends<PipelineRobustnessCreateInfoEXT, RayTracingPipelineCreateInfoKHR>
10875  {
10876    enum
10877    {
10878      value = true
10879    };
10880  };
10881
10882#  if defined( VK_USE_PLATFORM_WIN32_KHR )
10883  //=== VK_KHR_external_memory_win32 ===
10884  template <>
10885  struct StructExtends<ImportMemoryWin32HandleInfoKHR, MemoryAllocateInfo>
10886  {
10887    enum
10888    {
10889      value = true
10890    };
10891  };
10892
10893  template <>
10894  struct StructExtends<ExportMemoryWin32HandleInfoKHR, MemoryAllocateInfo>
10895  {
10896    enum
10897    {
10898      value = true
10899    };
10900  };
10901#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
10902
10903  //=== VK_KHR_external_memory_fd ===
10904  template <>
10905  struct StructExtends<ImportMemoryFdInfoKHR, MemoryAllocateInfo>
10906  {
10907    enum
10908    {
10909      value = true
10910    };
10911  };
10912
10913#  if defined( VK_USE_PLATFORM_WIN32_KHR )
10914  //=== VK_KHR_win32_keyed_mutex ===
10915  template <>
10916  struct StructExtends<Win32KeyedMutexAcquireReleaseInfoKHR, SubmitInfo>
10917  {
10918    enum
10919    {
10920      value = true
10921    };
10922  };
10923
10924  template <>
10925  struct StructExtends<Win32KeyedMutexAcquireReleaseInfoKHR, SubmitInfo2>
10926  {
10927    enum
10928    {
10929      value = true
10930    };
10931  };
10932#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
10933
10934#  if defined( VK_USE_PLATFORM_WIN32_KHR )
10935  //=== VK_KHR_external_semaphore_win32 ===
10936  template <>
10937  struct StructExtends<ExportSemaphoreWin32HandleInfoKHR, SemaphoreCreateInfo>
10938  {
10939    enum
10940    {
10941      value = true
10942    };
10943  };
10944
10945  template <>
10946  struct StructExtends<D3D12FenceSubmitInfoKHR, SubmitInfo>
10947  {
10948    enum
10949    {
10950      value = true
10951    };
10952  };
10953#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
10954
10955  //=== VK_KHR_push_descriptor ===
10956  template <>
10957  struct StructExtends<PhysicalDevicePushDescriptorPropertiesKHR, PhysicalDeviceProperties2>
10958  {
10959    enum
10960    {
10961      value = true
10962    };
10963  };
10964
10965  //=== VK_EXT_conditional_rendering ===
10966  template <>
10967  struct StructExtends<PhysicalDeviceConditionalRenderingFeaturesEXT, PhysicalDeviceFeatures2>
10968  {
10969    enum
10970    {
10971      value = true
10972    };
10973  };
10974
10975  template <>
10976  struct StructExtends<PhysicalDeviceConditionalRenderingFeaturesEXT, DeviceCreateInfo>
10977  {
10978    enum
10979    {
10980      value = true
10981    };
10982  };
10983
10984  template <>
10985  struct StructExtends<CommandBufferInheritanceConditionalRenderingInfoEXT, CommandBufferInheritanceInfo>
10986  {
10987    enum
10988    {
10989      value = true
10990    };
10991  };
10992
10993  //=== VK_KHR_incremental_present ===
10994  template <>
10995  struct StructExtends<PresentRegionsKHR, PresentInfoKHR>
10996  {
10997    enum
10998    {
10999      value = true
11000    };
11001  };
11002
11003  //=== VK_NV_clip_space_w_scaling ===
11004  template <>
11005  struct StructExtends<PipelineViewportWScalingStateCreateInfoNV, PipelineViewportStateCreateInfo>
11006  {
11007    enum
11008    {
11009      value = true
11010    };
11011  };
11012
11013  //=== VK_EXT_display_control ===
11014  template <>
11015  struct StructExtends<SwapchainCounterCreateInfoEXT, SwapchainCreateInfoKHR>
11016  {
11017    enum
11018    {
11019      value = true
11020    };
11021  };
11022
11023  //=== VK_GOOGLE_display_timing ===
11024  template <>
11025  struct StructExtends<PresentTimesInfoGOOGLE, PresentInfoKHR>
11026  {
11027    enum
11028    {
11029      value = true
11030    };
11031  };
11032
11033  //=== VK_NVX_multiview_per_view_attributes ===
11034  template <>
11035  struct StructExtends<PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, PhysicalDeviceProperties2>
11036  {
11037    enum
11038    {
11039      value = true
11040    };
11041  };
11042
11043  //=== VK_NV_viewport_swizzle ===
11044  template <>
11045  struct StructExtends<PipelineViewportSwizzleStateCreateInfoNV, PipelineViewportStateCreateInfo>
11046  {
11047    enum
11048    {
11049      value = true
11050    };
11051  };
11052
11053  //=== VK_EXT_discard_rectangles ===
11054  template <>
11055  struct StructExtends<PhysicalDeviceDiscardRectanglePropertiesEXT, PhysicalDeviceProperties2>
11056  {
11057    enum
11058    {
11059      value = true
11060    };
11061  };
11062
11063  template <>
11064  struct StructExtends<PipelineDiscardRectangleStateCreateInfoEXT, GraphicsPipelineCreateInfo>
11065  {
11066    enum
11067    {
11068      value = true
11069    };
11070  };
11071
11072  //=== VK_EXT_conservative_rasterization ===
11073  template <>
11074  struct StructExtends<PhysicalDeviceConservativeRasterizationPropertiesEXT, PhysicalDeviceProperties2>
11075  {
11076    enum
11077    {
11078      value = true
11079    };
11080  };
11081
11082  template <>
11083  struct StructExtends<PipelineRasterizationConservativeStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
11084  {
11085    enum
11086    {
11087      value = true
11088    };
11089  };
11090
11091  //=== VK_EXT_depth_clip_enable ===
11092  template <>
11093  struct StructExtends<PhysicalDeviceDepthClipEnableFeaturesEXT, PhysicalDeviceFeatures2>
11094  {
11095    enum
11096    {
11097      value = true
11098    };
11099  };
11100
11101  template <>
11102  struct StructExtends<PhysicalDeviceDepthClipEnableFeaturesEXT, DeviceCreateInfo>
11103  {
11104    enum
11105    {
11106      value = true
11107    };
11108  };
11109
11110  template <>
11111  struct StructExtends<PipelineRasterizationDepthClipStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
11112  {
11113    enum
11114    {
11115      value = true
11116    };
11117  };
11118
11119  //=== VK_IMG_relaxed_line_rasterization ===
11120  template <>
11121  struct StructExtends<PhysicalDeviceRelaxedLineRasterizationFeaturesIMG, PhysicalDeviceFeatures2>
11122  {
11123    enum
11124    {
11125      value = true
11126    };
11127  };
11128
11129  template <>
11130  struct StructExtends<PhysicalDeviceRelaxedLineRasterizationFeaturesIMG, DeviceCreateInfo>
11131  {
11132    enum
11133    {
11134      value = true
11135    };
11136  };
11137
11138  //=== VK_KHR_shared_presentable_image ===
11139  template <>
11140  struct StructExtends<SharedPresentSurfaceCapabilitiesKHR, SurfaceCapabilities2KHR>
11141  {
11142    enum
11143    {
11144      value = true
11145    };
11146  };
11147
11148#  if defined( VK_USE_PLATFORM_WIN32_KHR )
11149  //=== VK_KHR_external_fence_win32 ===
11150  template <>
11151  struct StructExtends<ExportFenceWin32HandleInfoKHR, FenceCreateInfo>
11152  {
11153    enum
11154    {
11155      value = true
11156    };
11157  };
11158#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
11159
11160  //=== VK_KHR_performance_query ===
11161  template <>
11162  struct StructExtends<PhysicalDevicePerformanceQueryFeaturesKHR, PhysicalDeviceFeatures2>
11163  {
11164    enum
11165    {
11166      value = true
11167    };
11168  };
11169
11170  template <>
11171  struct StructExtends<PhysicalDevicePerformanceQueryFeaturesKHR, DeviceCreateInfo>
11172  {
11173    enum
11174    {
11175      value = true
11176    };
11177  };
11178
11179  template <>
11180  struct StructExtends<PhysicalDevicePerformanceQueryPropertiesKHR, PhysicalDeviceProperties2>
11181  {
11182    enum
11183    {
11184      value = true
11185    };
11186  };
11187
11188  template <>
11189  struct StructExtends<QueryPoolPerformanceCreateInfoKHR, QueryPoolCreateInfo>
11190  {
11191    enum
11192    {
11193      value = true
11194    };
11195  };
11196
11197  template <>
11198  struct StructExtends<PerformanceQuerySubmitInfoKHR, SubmitInfo>
11199  {
11200    enum
11201    {
11202      value = true
11203    };
11204  };
11205
11206  template <>
11207  struct StructExtends<PerformanceQuerySubmitInfoKHR, SubmitInfo2>
11208  {
11209    enum
11210    {
11211      value = true
11212    };
11213  };
11214
11215  //=== VK_EXT_debug_utils ===
11216  template <>
11217  struct StructExtends<DebugUtilsMessengerCreateInfoEXT, InstanceCreateInfo>
11218  {
11219    enum
11220    {
11221      value = true
11222    };
11223  };
11224
11225  template <>
11226  struct StructExtends<DebugUtilsObjectNameInfoEXT, PipelineShaderStageCreateInfo>
11227  {
11228    enum
11229    {
11230      value = true
11231    };
11232  };
11233
11234#  if defined( VK_USE_PLATFORM_ANDROID_KHR )
11235  //=== VK_ANDROID_external_memory_android_hardware_buffer ===
11236  template <>
11237  struct StructExtends<AndroidHardwareBufferUsageANDROID, ImageFormatProperties2>
11238  {
11239    enum
11240    {
11241      value = true
11242    };
11243  };
11244
11245  template <>
11246  struct StructExtends<AndroidHardwareBufferFormatPropertiesANDROID, AndroidHardwareBufferPropertiesANDROID>
11247  {
11248    enum
11249    {
11250      value = true
11251    };
11252  };
11253
11254  template <>
11255  struct StructExtends<ImportAndroidHardwareBufferInfoANDROID, MemoryAllocateInfo>
11256  {
11257    enum
11258    {
11259      value = true
11260    };
11261  };
11262
11263  template <>
11264  struct StructExtends<ExternalFormatANDROID, ImageCreateInfo>
11265  {
11266    enum
11267    {
11268      value = true
11269    };
11270  };
11271
11272  template <>
11273  struct StructExtends<ExternalFormatANDROID, SamplerYcbcrConversionCreateInfo>
11274  {
11275    enum
11276    {
11277      value = true
11278    };
11279  };
11280
11281  template <>
11282  struct StructExtends<ExternalFormatANDROID, AttachmentDescription2>
11283  {
11284    enum
11285    {
11286      value = true
11287    };
11288  };
11289
11290  template <>
11291  struct StructExtends<ExternalFormatANDROID, GraphicsPipelineCreateInfo>
11292  {
11293    enum
11294    {
11295      value = true
11296    };
11297  };
11298
11299  template <>
11300  struct StructExtends<ExternalFormatANDROID, CommandBufferInheritanceInfo>
11301  {
11302    enum
11303    {
11304      value = true
11305    };
11306  };
11307
11308  template <>
11309  struct StructExtends<AndroidHardwareBufferFormatProperties2ANDROID, AndroidHardwareBufferPropertiesANDROID>
11310  {
11311    enum
11312    {
11313      value = true
11314    };
11315  };
11316#  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
11317
11318#  if defined( VK_ENABLE_BETA_EXTENSIONS )
11319  //=== VK_AMDX_shader_enqueue ===
11320  template <>
11321  struct StructExtends<PhysicalDeviceShaderEnqueueFeaturesAMDX, PhysicalDeviceFeatures2>
11322  {
11323    enum
11324    {
11325      value = true
11326    };
11327  };
11328
11329  template <>
11330  struct StructExtends<PhysicalDeviceShaderEnqueueFeaturesAMDX, DeviceCreateInfo>
11331  {
11332    enum
11333    {
11334      value = true
11335    };
11336  };
11337
11338  template <>
11339  struct StructExtends<PhysicalDeviceShaderEnqueuePropertiesAMDX, PhysicalDeviceProperties2>
11340  {
11341    enum
11342    {
11343      value = true
11344    };
11345  };
11346
11347  template <>
11348  struct StructExtends<PipelineShaderStageNodeCreateInfoAMDX, PipelineShaderStageCreateInfo>
11349  {
11350    enum
11351    {
11352      value = true
11353    };
11354  };
11355#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
11356
11357  //=== VK_EXT_sample_locations ===
11358  template <>
11359  struct StructExtends<SampleLocationsInfoEXT, ImageMemoryBarrier>
11360  {
11361    enum
11362    {
11363      value = true
11364    };
11365  };
11366
11367  template <>
11368  struct StructExtends<SampleLocationsInfoEXT, ImageMemoryBarrier2>
11369  {
11370    enum
11371    {
11372      value = true
11373    };
11374  };
11375
11376  template <>
11377  struct StructExtends<RenderPassSampleLocationsBeginInfoEXT, RenderPassBeginInfo>
11378  {
11379    enum
11380    {
11381      value = true
11382    };
11383  };
11384
11385  template <>
11386  struct StructExtends<PipelineSampleLocationsStateCreateInfoEXT, PipelineMultisampleStateCreateInfo>
11387  {
11388    enum
11389    {
11390      value = true
11391    };
11392  };
11393
11394  template <>
11395  struct StructExtends<PhysicalDeviceSampleLocationsPropertiesEXT, PhysicalDeviceProperties2>
11396  {
11397    enum
11398    {
11399      value = true
11400    };
11401  };
11402
11403  //=== VK_EXT_blend_operation_advanced ===
11404  template <>
11405  struct StructExtends<PhysicalDeviceBlendOperationAdvancedFeaturesEXT, PhysicalDeviceFeatures2>
11406  {
11407    enum
11408    {
11409      value = true
11410    };
11411  };
11412
11413  template <>
11414  struct StructExtends<PhysicalDeviceBlendOperationAdvancedFeaturesEXT, DeviceCreateInfo>
11415  {
11416    enum
11417    {
11418      value = true
11419    };
11420  };
11421
11422  template <>
11423  struct StructExtends<PhysicalDeviceBlendOperationAdvancedPropertiesEXT, PhysicalDeviceProperties2>
11424  {
11425    enum
11426    {
11427      value = true
11428    };
11429  };
11430
11431  template <>
11432  struct StructExtends<PipelineColorBlendAdvancedStateCreateInfoEXT, PipelineColorBlendStateCreateInfo>
11433  {
11434    enum
11435    {
11436      value = true
11437    };
11438  };
11439
11440  //=== VK_NV_fragment_coverage_to_color ===
11441  template <>
11442  struct StructExtends<PipelineCoverageToColorStateCreateInfoNV, PipelineMultisampleStateCreateInfo>
11443  {
11444    enum
11445    {
11446      value = true
11447    };
11448  };
11449
11450  //=== VK_KHR_acceleration_structure ===
11451  template <>
11452  struct StructExtends<WriteDescriptorSetAccelerationStructureKHR, WriteDescriptorSet>
11453  {
11454    enum
11455    {
11456      value = true
11457    };
11458  };
11459
11460  template <>
11461  struct StructExtends<PhysicalDeviceAccelerationStructureFeaturesKHR, PhysicalDeviceFeatures2>
11462  {
11463    enum
11464    {
11465      value = true
11466    };
11467  };
11468
11469  template <>
11470  struct StructExtends<PhysicalDeviceAccelerationStructureFeaturesKHR, DeviceCreateInfo>
11471  {
11472    enum
11473    {
11474      value = true
11475    };
11476  };
11477
11478  template <>
11479  struct StructExtends<PhysicalDeviceAccelerationStructurePropertiesKHR, PhysicalDeviceProperties2>
11480  {
11481    enum
11482    {
11483      value = true
11484    };
11485  };
11486
11487  //=== VK_KHR_ray_tracing_pipeline ===
11488  template <>
11489  struct StructExtends<PhysicalDeviceRayTracingPipelineFeaturesKHR, PhysicalDeviceFeatures2>
11490  {
11491    enum
11492    {
11493      value = true
11494    };
11495  };
11496
11497  template <>
11498  struct StructExtends<PhysicalDeviceRayTracingPipelineFeaturesKHR, DeviceCreateInfo>
11499  {
11500    enum
11501    {
11502      value = true
11503    };
11504  };
11505
11506  template <>
11507  struct StructExtends<PhysicalDeviceRayTracingPipelinePropertiesKHR, PhysicalDeviceProperties2>
11508  {
11509    enum
11510    {
11511      value = true
11512    };
11513  };
11514
11515  //=== VK_KHR_ray_query ===
11516  template <>
11517  struct StructExtends<PhysicalDeviceRayQueryFeaturesKHR, PhysicalDeviceFeatures2>
11518  {
11519    enum
11520    {
11521      value = true
11522    };
11523  };
11524
11525  template <>
11526  struct StructExtends<PhysicalDeviceRayQueryFeaturesKHR, DeviceCreateInfo>
11527  {
11528    enum
11529    {
11530      value = true
11531    };
11532  };
11533
11534  //=== VK_NV_framebuffer_mixed_samples ===
11535  template <>
11536  struct StructExtends<PipelineCoverageModulationStateCreateInfoNV, PipelineMultisampleStateCreateInfo>
11537  {
11538    enum
11539    {
11540      value = true
11541    };
11542  };
11543
11544  //=== VK_NV_shader_sm_builtins ===
11545  template <>
11546  struct StructExtends<PhysicalDeviceShaderSMBuiltinsPropertiesNV, PhysicalDeviceProperties2>
11547  {
11548    enum
11549    {
11550      value = true
11551    };
11552  };
11553
11554  template <>
11555  struct StructExtends<PhysicalDeviceShaderSMBuiltinsFeaturesNV, PhysicalDeviceFeatures2>
11556  {
11557    enum
11558    {
11559      value = true
11560    };
11561  };
11562
11563  template <>
11564  struct StructExtends<PhysicalDeviceShaderSMBuiltinsFeaturesNV, DeviceCreateInfo>
11565  {
11566    enum
11567    {
11568      value = true
11569    };
11570  };
11571
11572  //=== VK_EXT_image_drm_format_modifier ===
11573  template <>
11574  struct StructExtends<DrmFormatModifierPropertiesListEXT, FormatProperties2>
11575  {
11576    enum
11577    {
11578      value = true
11579    };
11580  };
11581
11582  template <>
11583  struct StructExtends<PhysicalDeviceImageDrmFormatModifierInfoEXT, PhysicalDeviceImageFormatInfo2>
11584  {
11585    enum
11586    {
11587      value = true
11588    };
11589  };
11590
11591  template <>
11592  struct StructExtends<ImageDrmFormatModifierListCreateInfoEXT, ImageCreateInfo>
11593  {
11594    enum
11595    {
11596      value = true
11597    };
11598  };
11599
11600  template <>
11601  struct StructExtends<ImageDrmFormatModifierExplicitCreateInfoEXT, ImageCreateInfo>
11602  {
11603    enum
11604    {
11605      value = true
11606    };
11607  };
11608
11609  template <>
11610  struct StructExtends<DrmFormatModifierPropertiesList2EXT, FormatProperties2>
11611  {
11612    enum
11613    {
11614      value = true
11615    };
11616  };
11617
11618  //=== VK_EXT_validation_cache ===
11619  template <>
11620  struct StructExtends<ShaderModuleValidationCacheCreateInfoEXT, ShaderModuleCreateInfo>
11621  {
11622    enum
11623    {
11624      value = true
11625    };
11626  };
11627
11628  template <>
11629  struct StructExtends<ShaderModuleValidationCacheCreateInfoEXT, PipelineShaderStageCreateInfo>
11630  {
11631    enum
11632    {
11633      value = true
11634    };
11635  };
11636
11637#  if defined( VK_ENABLE_BETA_EXTENSIONS )
11638  //=== VK_KHR_portability_subset ===
11639  template <>
11640  struct StructExtends<PhysicalDevicePortabilitySubsetFeaturesKHR, PhysicalDeviceFeatures2>
11641  {
11642    enum
11643    {
11644      value = true
11645    };
11646  };
11647
11648  template <>
11649  struct StructExtends<PhysicalDevicePortabilitySubsetFeaturesKHR, DeviceCreateInfo>
11650  {
11651    enum
11652    {
11653      value = true
11654    };
11655  };
11656
11657  template <>
11658  struct StructExtends<PhysicalDevicePortabilitySubsetPropertiesKHR, PhysicalDeviceProperties2>
11659  {
11660    enum
11661    {
11662      value = true
11663    };
11664  };
11665#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
11666
11667  //=== VK_NV_shading_rate_image ===
11668  template <>
11669  struct StructExtends<PipelineViewportShadingRateImageStateCreateInfoNV, PipelineViewportStateCreateInfo>
11670  {
11671    enum
11672    {
11673      value = true
11674    };
11675  };
11676
11677  template <>
11678  struct StructExtends<PhysicalDeviceShadingRateImageFeaturesNV, PhysicalDeviceFeatures2>
11679  {
11680    enum
11681    {
11682      value = true
11683    };
11684  };
11685
11686  template <>
11687  struct StructExtends<PhysicalDeviceShadingRateImageFeaturesNV, DeviceCreateInfo>
11688  {
11689    enum
11690    {
11691      value = true
11692    };
11693  };
11694
11695  template <>
11696  struct StructExtends<PhysicalDeviceShadingRateImagePropertiesNV, PhysicalDeviceProperties2>
11697  {
11698    enum
11699    {
11700      value = true
11701    };
11702  };
11703
11704  template <>
11705  struct StructExtends<PipelineViewportCoarseSampleOrderStateCreateInfoNV, PipelineViewportStateCreateInfo>
11706  {
11707    enum
11708    {
11709      value = true
11710    };
11711  };
11712
11713  //=== VK_NV_ray_tracing ===
11714  template <>
11715  struct StructExtends<WriteDescriptorSetAccelerationStructureNV, WriteDescriptorSet>
11716  {
11717    enum
11718    {
11719      value = true
11720    };
11721  };
11722
11723  template <>
11724  struct StructExtends<PhysicalDeviceRayTracingPropertiesNV, PhysicalDeviceProperties2>
11725  {
11726    enum
11727    {
11728      value = true
11729    };
11730  };
11731
11732  //=== VK_NV_representative_fragment_test ===
11733  template <>
11734  struct StructExtends<PhysicalDeviceRepresentativeFragmentTestFeaturesNV, PhysicalDeviceFeatures2>
11735  {
11736    enum
11737    {
11738      value = true
11739    };
11740  };
11741
11742  template <>
11743  struct StructExtends<PhysicalDeviceRepresentativeFragmentTestFeaturesNV, DeviceCreateInfo>
11744  {
11745    enum
11746    {
11747      value = true
11748    };
11749  };
11750
11751  template <>
11752  struct StructExtends<PipelineRepresentativeFragmentTestStateCreateInfoNV, GraphicsPipelineCreateInfo>
11753  {
11754    enum
11755    {
11756      value = true
11757    };
11758  };
11759
11760  //=== VK_EXT_filter_cubic ===
11761  template <>
11762  struct StructExtends<PhysicalDeviceImageViewImageFormatInfoEXT, PhysicalDeviceImageFormatInfo2>
11763  {
11764    enum
11765    {
11766      value = true
11767    };
11768  };
11769
11770  template <>
11771  struct StructExtends<FilterCubicImageViewImageFormatPropertiesEXT, ImageFormatProperties2>
11772  {
11773    enum
11774    {
11775      value = true
11776    };
11777  };
11778
11779  //=== VK_EXT_external_memory_host ===
11780  template <>
11781  struct StructExtends<ImportMemoryHostPointerInfoEXT, MemoryAllocateInfo>
11782  {
11783    enum
11784    {
11785      value = true
11786    };
11787  };
11788
11789  template <>
11790  struct StructExtends<PhysicalDeviceExternalMemoryHostPropertiesEXT, PhysicalDeviceProperties2>
11791  {
11792    enum
11793    {
11794      value = true
11795    };
11796  };
11797
11798  //=== VK_KHR_shader_clock ===
11799  template <>
11800  struct StructExtends<PhysicalDeviceShaderClockFeaturesKHR, PhysicalDeviceFeatures2>
11801  {
11802    enum
11803    {
11804      value = true
11805    };
11806  };
11807
11808  template <>
11809  struct StructExtends<PhysicalDeviceShaderClockFeaturesKHR, DeviceCreateInfo>
11810  {
11811    enum
11812    {
11813      value = true
11814    };
11815  };
11816
11817  //=== VK_AMD_pipeline_compiler_control ===
11818  template <>
11819  struct StructExtends<PipelineCompilerControlCreateInfoAMD, GraphicsPipelineCreateInfo>
11820  {
11821    enum
11822    {
11823      value = true
11824    };
11825  };
11826
11827  template <>
11828  struct StructExtends<PipelineCompilerControlCreateInfoAMD, ComputePipelineCreateInfo>
11829  {
11830    enum
11831    {
11832      value = true
11833    };
11834  };
11835#  if defined( VK_ENABLE_BETA_EXTENSIONS )
11836  template <>
11837  struct StructExtends<PipelineCompilerControlCreateInfoAMD, ExecutionGraphPipelineCreateInfoAMDX>
11838  {
11839    enum
11840    {
11841      value = true
11842    };
11843  };
11844#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
11845
11846  //=== VK_AMD_shader_core_properties ===
11847  template <>
11848  struct StructExtends<PhysicalDeviceShaderCorePropertiesAMD, PhysicalDeviceProperties2>
11849  {
11850    enum
11851    {
11852      value = true
11853    };
11854  };
11855
11856  //=== VK_KHR_video_decode_h265 ===
11857  template <>
11858  struct StructExtends<VideoDecodeH265ProfileInfoKHR, VideoProfileInfoKHR>
11859  {
11860    enum
11861    {
11862      value = true
11863    };
11864  };
11865
11866  template <>
11867  struct StructExtends<VideoDecodeH265ProfileInfoKHR, QueryPoolCreateInfo>
11868  {
11869    enum
11870    {
11871      value = true
11872    };
11873  };
11874
11875  template <>
11876  struct StructExtends<VideoDecodeH265CapabilitiesKHR, VideoCapabilitiesKHR>
11877  {
11878    enum
11879    {
11880      value = true
11881    };
11882  };
11883
11884  template <>
11885  struct StructExtends<VideoDecodeH265SessionParametersCreateInfoKHR, VideoSessionParametersCreateInfoKHR>
11886  {
11887    enum
11888    {
11889      value = true
11890    };
11891  };
11892
11893  template <>
11894  struct StructExtends<VideoDecodeH265SessionParametersAddInfoKHR, VideoSessionParametersUpdateInfoKHR>
11895  {
11896    enum
11897    {
11898      value = true
11899    };
11900  };
11901
11902  template <>
11903  struct StructExtends<VideoDecodeH265PictureInfoKHR, VideoDecodeInfoKHR>
11904  {
11905    enum
11906    {
11907      value = true
11908    };
11909  };
11910
11911  template <>
11912  struct StructExtends<VideoDecodeH265DpbSlotInfoKHR, VideoReferenceSlotInfoKHR>
11913  {
11914    enum
11915    {
11916      value = true
11917    };
11918  };
11919
11920  //=== VK_KHR_global_priority ===
11921  template <>
11922  struct StructExtends<DeviceQueueGlobalPriorityCreateInfoKHR, DeviceQueueCreateInfo>
11923  {
11924    enum
11925    {
11926      value = true
11927    };
11928  };
11929
11930  template <>
11931  struct StructExtends<PhysicalDeviceGlobalPriorityQueryFeaturesKHR, PhysicalDeviceFeatures2>
11932  {
11933    enum
11934    {
11935      value = true
11936    };
11937  };
11938
11939  template <>
11940  struct StructExtends<PhysicalDeviceGlobalPriorityQueryFeaturesKHR, DeviceCreateInfo>
11941  {
11942    enum
11943    {
11944      value = true
11945    };
11946  };
11947
11948  template <>
11949  struct StructExtends<QueueFamilyGlobalPriorityPropertiesKHR, QueueFamilyProperties2>
11950  {
11951    enum
11952    {
11953      value = true
11954    };
11955  };
11956
11957  //=== VK_AMD_memory_overallocation_behavior ===
11958  template <>
11959  struct StructExtends<DeviceMemoryOverallocationCreateInfoAMD, DeviceCreateInfo>
11960  {
11961    enum
11962    {
11963      value = true
11964    };
11965  };
11966
11967  //=== VK_EXT_vertex_attribute_divisor ===
11968  template <>
11969  struct StructExtends<PhysicalDeviceVertexAttributeDivisorPropertiesEXT, PhysicalDeviceProperties2>
11970  {
11971    enum
11972    {
11973      value = true
11974    };
11975  };
11976
11977#  if defined( VK_USE_PLATFORM_GGP )
11978  //=== VK_GGP_frame_token ===
11979  template <>
11980  struct StructExtends<PresentFrameTokenGGP, PresentInfoKHR>
11981  {
11982    enum
11983    {
11984      value = true
11985    };
11986  };
11987#  endif /*VK_USE_PLATFORM_GGP*/
11988
11989  //=== VK_NV_compute_shader_derivatives ===
11990  template <>
11991  struct StructExtends<PhysicalDeviceComputeShaderDerivativesFeaturesNV, PhysicalDeviceFeatures2>
11992  {
11993    enum
11994    {
11995      value = true
11996    };
11997  };
11998
11999  template <>
12000  struct StructExtends<PhysicalDeviceComputeShaderDerivativesFeaturesNV, DeviceCreateInfo>
12001  {
12002    enum
12003    {
12004      value = true
12005    };
12006  };
12007
12008  //=== VK_NV_mesh_shader ===
12009  template <>
12010  struct StructExtends<PhysicalDeviceMeshShaderFeaturesNV, PhysicalDeviceFeatures2>
12011  {
12012    enum
12013    {
12014      value = true
12015    };
12016  };
12017
12018  template <>
12019  struct StructExtends<PhysicalDeviceMeshShaderFeaturesNV, DeviceCreateInfo>
12020  {
12021    enum
12022    {
12023      value = true
12024    };
12025  };
12026
12027  template <>
12028  struct StructExtends<PhysicalDeviceMeshShaderPropertiesNV, PhysicalDeviceProperties2>
12029  {
12030    enum
12031    {
12032      value = true
12033    };
12034  };
12035
12036  //=== VK_NV_shader_image_footprint ===
12037  template <>
12038  struct StructExtends<PhysicalDeviceShaderImageFootprintFeaturesNV, PhysicalDeviceFeatures2>
12039  {
12040    enum
12041    {
12042      value = true
12043    };
12044  };
12045
12046  template <>
12047  struct StructExtends<PhysicalDeviceShaderImageFootprintFeaturesNV, DeviceCreateInfo>
12048  {
12049    enum
12050    {
12051      value = true
12052    };
12053  };
12054
12055  //=== VK_NV_scissor_exclusive ===
12056  template <>
12057  struct StructExtends<PipelineViewportExclusiveScissorStateCreateInfoNV, PipelineViewportStateCreateInfo>
12058  {
12059    enum
12060    {
12061      value = true
12062    };
12063  };
12064
12065  template <>
12066  struct StructExtends<PhysicalDeviceExclusiveScissorFeaturesNV, PhysicalDeviceFeatures2>
12067  {
12068    enum
12069    {
12070      value = true
12071    };
12072  };
12073
12074  template <>
12075  struct StructExtends<PhysicalDeviceExclusiveScissorFeaturesNV, DeviceCreateInfo>
12076  {
12077    enum
12078    {
12079      value = true
12080    };
12081  };
12082
12083  //=== VK_NV_device_diagnostic_checkpoints ===
12084  template <>
12085  struct StructExtends<QueueFamilyCheckpointPropertiesNV, QueueFamilyProperties2>
12086  {
12087    enum
12088    {
12089      value = true
12090    };
12091  };
12092
12093  //=== VK_INTEL_shader_integer_functions2 ===
12094  template <>
12095  struct StructExtends<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, PhysicalDeviceFeatures2>
12096  {
12097    enum
12098    {
12099      value = true
12100    };
12101  };
12102
12103  template <>
12104  struct StructExtends<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, DeviceCreateInfo>
12105  {
12106    enum
12107    {
12108      value = true
12109    };
12110  };
12111
12112  //=== VK_INTEL_performance_query ===
12113  template <>
12114  struct StructExtends<QueryPoolPerformanceQueryCreateInfoINTEL, QueryPoolCreateInfo>
12115  {
12116    enum
12117    {
12118      value = true
12119    };
12120  };
12121
12122  //=== VK_EXT_pci_bus_info ===
12123  template <>
12124  struct StructExtends<PhysicalDevicePCIBusInfoPropertiesEXT, PhysicalDeviceProperties2>
12125  {
12126    enum
12127    {
12128      value = true
12129    };
12130  };
12131
12132  //=== VK_AMD_display_native_hdr ===
12133  template <>
12134  struct StructExtends<DisplayNativeHdrSurfaceCapabilitiesAMD, SurfaceCapabilities2KHR>
12135  {
12136    enum
12137    {
12138      value = true
12139    };
12140  };
12141
12142  template <>
12143  struct StructExtends<SwapchainDisplayNativeHdrCreateInfoAMD, SwapchainCreateInfoKHR>
12144  {
12145    enum
12146    {
12147      value = true
12148    };
12149  };
12150
12151  //=== VK_EXT_fragment_density_map ===
12152  template <>
12153  struct StructExtends<PhysicalDeviceFragmentDensityMapFeaturesEXT, PhysicalDeviceFeatures2>
12154  {
12155    enum
12156    {
12157      value = true
12158    };
12159  };
12160
12161  template <>
12162  struct StructExtends<PhysicalDeviceFragmentDensityMapFeaturesEXT, DeviceCreateInfo>
12163  {
12164    enum
12165    {
12166      value = true
12167    };
12168  };
12169
12170  template <>
12171  struct StructExtends<PhysicalDeviceFragmentDensityMapPropertiesEXT, PhysicalDeviceProperties2>
12172  {
12173    enum
12174    {
12175      value = true
12176    };
12177  };
12178
12179  template <>
12180  struct StructExtends<RenderPassFragmentDensityMapCreateInfoEXT, RenderPassCreateInfo>
12181  {
12182    enum
12183    {
12184      value = true
12185    };
12186  };
12187
12188  template <>
12189  struct StructExtends<RenderPassFragmentDensityMapCreateInfoEXT, RenderPassCreateInfo2>
12190  {
12191    enum
12192    {
12193      value = true
12194    };
12195  };
12196
12197  //=== VK_KHR_fragment_shading_rate ===
12198  template <>
12199  struct StructExtends<FragmentShadingRateAttachmentInfoKHR, SubpassDescription2>
12200  {
12201    enum
12202    {
12203      value = true
12204    };
12205  };
12206
12207  template <>
12208  struct StructExtends<PipelineFragmentShadingRateStateCreateInfoKHR, GraphicsPipelineCreateInfo>
12209  {
12210    enum
12211    {
12212      value = true
12213    };
12214  };
12215
12216  template <>
12217  struct StructExtends<PhysicalDeviceFragmentShadingRateFeaturesKHR, PhysicalDeviceFeatures2>
12218  {
12219    enum
12220    {
12221      value = true
12222    };
12223  };
12224
12225  template <>
12226  struct StructExtends<PhysicalDeviceFragmentShadingRateFeaturesKHR, DeviceCreateInfo>
12227  {
12228    enum
12229    {
12230      value = true
12231    };
12232  };
12233
12234  template <>
12235  struct StructExtends<PhysicalDeviceFragmentShadingRatePropertiesKHR, PhysicalDeviceProperties2>
12236  {
12237    enum
12238    {
12239      value = true
12240    };
12241  };
12242
12243  //=== VK_AMD_shader_core_properties2 ===
12244  template <>
12245  struct StructExtends<PhysicalDeviceShaderCoreProperties2AMD, PhysicalDeviceProperties2>
12246  {
12247    enum
12248    {
12249      value = true
12250    };
12251  };
12252
12253  //=== VK_AMD_device_coherent_memory ===
12254  template <>
12255  struct StructExtends<PhysicalDeviceCoherentMemoryFeaturesAMD, PhysicalDeviceFeatures2>
12256  {
12257    enum
12258    {
12259      value = true
12260    };
12261  };
12262
12263  template <>
12264  struct StructExtends<PhysicalDeviceCoherentMemoryFeaturesAMD, DeviceCreateInfo>
12265  {
12266    enum
12267    {
12268      value = true
12269    };
12270  };
12271
12272  //=== VK_EXT_shader_image_atomic_int64 ===
12273  template <>
12274  struct StructExtends<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT, PhysicalDeviceFeatures2>
12275  {
12276    enum
12277    {
12278      value = true
12279    };
12280  };
12281
12282  template <>
12283  struct StructExtends<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT, DeviceCreateInfo>
12284  {
12285    enum
12286    {
12287      value = true
12288    };
12289  };
12290
12291  //=== VK_EXT_memory_budget ===
12292  template <>
12293  struct StructExtends<PhysicalDeviceMemoryBudgetPropertiesEXT, PhysicalDeviceMemoryProperties2>
12294  {
12295    enum
12296    {
12297      value = true
12298    };
12299  };
12300
12301  //=== VK_EXT_memory_priority ===
12302  template <>
12303  struct StructExtends<PhysicalDeviceMemoryPriorityFeaturesEXT, PhysicalDeviceFeatures2>
12304  {
12305    enum
12306    {
12307      value = true
12308    };
12309  };
12310
12311  template <>
12312  struct StructExtends<PhysicalDeviceMemoryPriorityFeaturesEXT, DeviceCreateInfo>
12313  {
12314    enum
12315    {
12316      value = true
12317    };
12318  };
12319
12320  template <>
12321  struct StructExtends<MemoryPriorityAllocateInfoEXT, MemoryAllocateInfo>
12322  {
12323    enum
12324    {
12325      value = true
12326    };
12327  };
12328
12329  //=== VK_KHR_surface_protected_capabilities ===
12330  template <>
12331  struct StructExtends<SurfaceProtectedCapabilitiesKHR, SurfaceCapabilities2KHR>
12332  {
12333    enum
12334    {
12335      value = true
12336    };
12337  };
12338
12339  //=== VK_NV_dedicated_allocation_image_aliasing ===
12340  template <>
12341  struct StructExtends<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, PhysicalDeviceFeatures2>
12342  {
12343    enum
12344    {
12345      value = true
12346    };
12347  };
12348
12349  template <>
12350  struct StructExtends<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, DeviceCreateInfo>
12351  {
12352    enum
12353    {
12354      value = true
12355    };
12356  };
12357
12358  //=== VK_EXT_buffer_device_address ===
12359  template <>
12360  struct StructExtends<PhysicalDeviceBufferDeviceAddressFeaturesEXT, PhysicalDeviceFeatures2>
12361  {
12362    enum
12363    {
12364      value = true
12365    };
12366  };
12367
12368  template <>
12369  struct StructExtends<PhysicalDeviceBufferDeviceAddressFeaturesEXT, DeviceCreateInfo>
12370  {
12371    enum
12372    {
12373      value = true
12374    };
12375  };
12376
12377  template <>
12378  struct StructExtends<BufferDeviceAddressCreateInfoEXT, BufferCreateInfo>
12379  {
12380    enum
12381    {
12382      value = true
12383    };
12384  };
12385
12386  //=== VK_EXT_validation_features ===
12387  template <>
12388  struct StructExtends<ValidationFeaturesEXT, InstanceCreateInfo>
12389  {
12390    enum
12391    {
12392      value = true
12393    };
12394  };
12395
12396  //=== VK_KHR_present_wait ===
12397  template <>
12398  struct StructExtends<PhysicalDevicePresentWaitFeaturesKHR, PhysicalDeviceFeatures2>
12399  {
12400    enum
12401    {
12402      value = true
12403    };
12404  };
12405
12406  template <>
12407  struct StructExtends<PhysicalDevicePresentWaitFeaturesKHR, DeviceCreateInfo>
12408  {
12409    enum
12410    {
12411      value = true
12412    };
12413  };
12414
12415  //=== VK_NV_cooperative_matrix ===
12416  template <>
12417  struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesNV, PhysicalDeviceFeatures2>
12418  {
12419    enum
12420    {
12421      value = true
12422    };
12423  };
12424
12425  template <>
12426  struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesNV, DeviceCreateInfo>
12427  {
12428    enum
12429    {
12430      value = true
12431    };
12432  };
12433
12434  template <>
12435  struct StructExtends<PhysicalDeviceCooperativeMatrixPropertiesNV, PhysicalDeviceProperties2>
12436  {
12437    enum
12438    {
12439      value = true
12440    };
12441  };
12442
12443  //=== VK_NV_coverage_reduction_mode ===
12444  template <>
12445  struct StructExtends<PhysicalDeviceCoverageReductionModeFeaturesNV, PhysicalDeviceFeatures2>
12446  {
12447    enum
12448    {
12449      value = true
12450    };
12451  };
12452
12453  template <>
12454  struct StructExtends<PhysicalDeviceCoverageReductionModeFeaturesNV, DeviceCreateInfo>
12455  {
12456    enum
12457    {
12458      value = true
12459    };
12460  };
12461
12462  template <>
12463  struct StructExtends<PipelineCoverageReductionStateCreateInfoNV, PipelineMultisampleStateCreateInfo>
12464  {
12465    enum
12466    {
12467      value = true
12468    };
12469  };
12470
12471  //=== VK_EXT_fragment_shader_interlock ===
12472  template <>
12473  struct StructExtends<PhysicalDeviceFragmentShaderInterlockFeaturesEXT, PhysicalDeviceFeatures2>
12474  {
12475    enum
12476    {
12477      value = true
12478    };
12479  };
12480
12481  template <>
12482  struct StructExtends<PhysicalDeviceFragmentShaderInterlockFeaturesEXT, DeviceCreateInfo>
12483  {
12484    enum
12485    {
12486      value = true
12487    };
12488  };
12489
12490  //=== VK_EXT_ycbcr_image_arrays ===
12491  template <>
12492  struct StructExtends<PhysicalDeviceYcbcrImageArraysFeaturesEXT, PhysicalDeviceFeatures2>
12493  {
12494    enum
12495    {
12496      value = true
12497    };
12498  };
12499
12500  template <>
12501  struct StructExtends<PhysicalDeviceYcbcrImageArraysFeaturesEXT, DeviceCreateInfo>
12502  {
12503    enum
12504    {
12505      value = true
12506    };
12507  };
12508
12509  //=== VK_EXT_provoking_vertex ===
12510  template <>
12511  struct StructExtends<PhysicalDeviceProvokingVertexFeaturesEXT, PhysicalDeviceFeatures2>
12512  {
12513    enum
12514    {
12515      value = true
12516    };
12517  };
12518
12519  template <>
12520  struct StructExtends<PhysicalDeviceProvokingVertexFeaturesEXT, DeviceCreateInfo>
12521  {
12522    enum
12523    {
12524      value = true
12525    };
12526  };
12527
12528  template <>
12529  struct StructExtends<PhysicalDeviceProvokingVertexPropertiesEXT, PhysicalDeviceProperties2>
12530  {
12531    enum
12532    {
12533      value = true
12534    };
12535  };
12536
12537  template <>
12538  struct StructExtends<PipelineRasterizationProvokingVertexStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
12539  {
12540    enum
12541    {
12542      value = true
12543    };
12544  };
12545
12546#  if defined( VK_USE_PLATFORM_WIN32_KHR )
12547  //=== VK_EXT_full_screen_exclusive ===
12548  template <>
12549  struct StructExtends<SurfaceFullScreenExclusiveInfoEXT, PhysicalDeviceSurfaceInfo2KHR>
12550  {
12551    enum
12552    {
12553      value = true
12554    };
12555  };
12556
12557  template <>
12558  struct StructExtends<SurfaceFullScreenExclusiveInfoEXT, SwapchainCreateInfoKHR>
12559  {
12560    enum
12561    {
12562      value = true
12563    };
12564  };
12565
12566  template <>
12567  struct StructExtends<SurfaceCapabilitiesFullScreenExclusiveEXT, SurfaceCapabilities2KHR>
12568  {
12569    enum
12570    {
12571      value = true
12572    };
12573  };
12574
12575  template <>
12576  struct StructExtends<SurfaceFullScreenExclusiveWin32InfoEXT, PhysicalDeviceSurfaceInfo2KHR>
12577  {
12578    enum
12579    {
12580      value = true
12581    };
12582  };
12583
12584  template <>
12585  struct StructExtends<SurfaceFullScreenExclusiveWin32InfoEXT, SwapchainCreateInfoKHR>
12586  {
12587    enum
12588    {
12589      value = true
12590    };
12591  };
12592#  endif /*VK_USE_PLATFORM_WIN32_KHR*/
12593
12594  //=== VK_EXT_line_rasterization ===
12595  template <>
12596  struct StructExtends<PhysicalDeviceLineRasterizationFeaturesEXT, PhysicalDeviceFeatures2>
12597  {
12598    enum
12599    {
12600      value = true
12601    };
12602  };
12603
12604  template <>
12605  struct StructExtends<PhysicalDeviceLineRasterizationFeaturesEXT, DeviceCreateInfo>
12606  {
12607    enum
12608    {
12609      value = true
12610    };
12611  };
12612
12613  template <>
12614  struct StructExtends<PhysicalDeviceLineRasterizationPropertiesEXT, PhysicalDeviceProperties2>
12615  {
12616    enum
12617    {
12618      value = true
12619    };
12620  };
12621
12622  template <>
12623  struct StructExtends<PipelineRasterizationLineStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
12624  {
12625    enum
12626    {
12627      value = true
12628    };
12629  };
12630
12631  //=== VK_EXT_shader_atomic_float ===
12632  template <>
12633  struct StructExtends<PhysicalDeviceShaderAtomicFloatFeaturesEXT, PhysicalDeviceFeatures2>
12634  {
12635    enum
12636    {
12637      value = true
12638    };
12639  };
12640
12641  template <>
12642  struct StructExtends<PhysicalDeviceShaderAtomicFloatFeaturesEXT, DeviceCreateInfo>
12643  {
12644    enum
12645    {
12646      value = true
12647    };
12648  };
12649
12650  //=== VK_EXT_index_type_uint8 ===
12651  template <>
12652  struct StructExtends<PhysicalDeviceIndexTypeUint8FeaturesEXT, PhysicalDeviceFeatures2>
12653  {
12654    enum
12655    {
12656      value = true
12657    };
12658  };
12659
12660  template <>
12661  struct StructExtends<PhysicalDeviceIndexTypeUint8FeaturesEXT, DeviceCreateInfo>
12662  {
12663    enum
12664    {
12665      value = true
12666    };
12667  };
12668
12669  //=== VK_EXT_extended_dynamic_state ===
12670  template <>
12671  struct StructExtends<PhysicalDeviceExtendedDynamicStateFeaturesEXT, PhysicalDeviceFeatures2>
12672  {
12673    enum
12674    {
12675      value = true
12676    };
12677  };
12678
12679  template <>
12680  struct StructExtends<PhysicalDeviceExtendedDynamicStateFeaturesEXT, DeviceCreateInfo>
12681  {
12682    enum
12683    {
12684      value = true
12685    };
12686  };
12687
12688  //=== VK_KHR_pipeline_executable_properties ===
12689  template <>
12690  struct StructExtends<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, PhysicalDeviceFeatures2>
12691  {
12692    enum
12693    {
12694      value = true
12695    };
12696  };
12697
12698  template <>
12699  struct StructExtends<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, DeviceCreateInfo>
12700  {
12701    enum
12702    {
12703      value = true
12704    };
12705  };
12706
12707  //=== VK_EXT_host_image_copy ===
12708  template <>
12709  struct StructExtends<PhysicalDeviceHostImageCopyFeaturesEXT, PhysicalDeviceFeatures2>
12710  {
12711    enum
12712    {
12713      value = true
12714    };
12715  };
12716
12717  template <>
12718  struct StructExtends<PhysicalDeviceHostImageCopyFeaturesEXT, DeviceCreateInfo>
12719  {
12720    enum
12721    {
12722      value = true
12723    };
12724  };
12725
12726  template <>
12727  struct StructExtends<PhysicalDeviceHostImageCopyPropertiesEXT, PhysicalDeviceProperties2>
12728  {
12729    enum
12730    {
12731      value = true
12732    };
12733  };
12734
12735  template <>
12736  struct StructExtends<SubresourceHostMemcpySizeEXT, SubresourceLayout2KHR>
12737  {
12738    enum
12739    {
12740      value = true
12741    };
12742  };
12743
12744  template <>
12745  struct StructExtends<HostImageCopyDevicePerformanceQueryEXT, ImageFormatProperties2>
12746  {
12747    enum
12748    {
12749      value = true
12750    };
12751  };
12752
12753  //=== VK_EXT_shader_atomic_float2 ===
12754  template <>
12755  struct StructExtends<PhysicalDeviceShaderAtomicFloat2FeaturesEXT, PhysicalDeviceFeatures2>
12756  {
12757    enum
12758    {
12759      value = true
12760    };
12761  };
12762
12763  template <>
12764  struct StructExtends<PhysicalDeviceShaderAtomicFloat2FeaturesEXT, DeviceCreateInfo>
12765  {
12766    enum
12767    {
12768      value = true
12769    };
12770  };
12771
12772  //=== VK_EXT_surface_maintenance1 ===
12773  template <>
12774  struct StructExtends<SurfacePresentModeEXT, PhysicalDeviceSurfaceInfo2KHR>
12775  {
12776    enum
12777    {
12778      value = true
12779    };
12780  };
12781
12782  template <>
12783  struct StructExtends<SurfacePresentScalingCapabilitiesEXT, SurfaceCapabilities2KHR>
12784  {
12785    enum
12786    {
12787      value = true
12788    };
12789  };
12790
12791  template <>
12792  struct StructExtends<SurfacePresentModeCompatibilityEXT, SurfaceCapabilities2KHR>
12793  {
12794    enum
12795    {
12796      value = true
12797    };
12798  };
12799
12800  //=== VK_EXT_swapchain_maintenance1 ===
12801  template <>
12802  struct StructExtends<PhysicalDeviceSwapchainMaintenance1FeaturesEXT, PhysicalDeviceFeatures2>
12803  {
12804    enum
12805    {
12806      value = true
12807    };
12808  };
12809
12810  template <>
12811  struct StructExtends<PhysicalDeviceSwapchainMaintenance1FeaturesEXT, DeviceCreateInfo>
12812  {
12813    enum
12814    {
12815      value = true
12816    };
12817  };
12818
12819  template <>
12820  struct StructExtends<SwapchainPresentFenceInfoEXT, PresentInfoKHR>
12821  {
12822    enum
12823    {
12824      value = true
12825    };
12826  };
12827
12828  template <>
12829  struct StructExtends<SwapchainPresentModesCreateInfoEXT, SwapchainCreateInfoKHR>
12830  {
12831    enum
12832    {
12833      value = true
12834    };
12835  };
12836
12837  template <>
12838  struct StructExtends<SwapchainPresentModeInfoEXT, PresentInfoKHR>
12839  {
12840    enum
12841    {
12842      value = true
12843    };
12844  };
12845
12846  template <>
12847  struct StructExtends<SwapchainPresentScalingCreateInfoEXT, SwapchainCreateInfoKHR>
12848  {
12849    enum
12850    {
12851      value = true
12852    };
12853  };
12854
12855  //=== VK_NV_device_generated_commands ===
12856  template <>
12857  struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsPropertiesNV, PhysicalDeviceProperties2>
12858  {
12859    enum
12860    {
12861      value = true
12862    };
12863  };
12864
12865  template <>
12866  struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV, PhysicalDeviceFeatures2>
12867  {
12868    enum
12869    {
12870      value = true
12871    };
12872  };
12873
12874  template <>
12875  struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV, DeviceCreateInfo>
12876  {
12877    enum
12878    {
12879      value = true
12880    };
12881  };
12882
12883  template <>
12884  struct StructExtends<GraphicsPipelineShaderGroupsCreateInfoNV, GraphicsPipelineCreateInfo>
12885  {
12886    enum
12887    {
12888      value = true
12889    };
12890  };
12891
12892  //=== VK_NV_inherited_viewport_scissor ===
12893  template <>
12894  struct StructExtends<PhysicalDeviceInheritedViewportScissorFeaturesNV, PhysicalDeviceFeatures2>
12895  {
12896    enum
12897    {
12898      value = true
12899    };
12900  };
12901
12902  template <>
12903  struct StructExtends<PhysicalDeviceInheritedViewportScissorFeaturesNV, DeviceCreateInfo>
12904  {
12905    enum
12906    {
12907      value = true
12908    };
12909  };
12910
12911  template <>
12912  struct StructExtends<CommandBufferInheritanceViewportScissorInfoNV, CommandBufferInheritanceInfo>
12913  {
12914    enum
12915    {
12916      value = true
12917    };
12918  };
12919
12920  //=== VK_EXT_texel_buffer_alignment ===
12921  template <>
12922  struct StructExtends<PhysicalDeviceTexelBufferAlignmentFeaturesEXT, PhysicalDeviceFeatures2>
12923  {
12924    enum
12925    {
12926      value = true
12927    };
12928  };
12929
12930  template <>
12931  struct StructExtends<PhysicalDeviceTexelBufferAlignmentFeaturesEXT, DeviceCreateInfo>
12932  {
12933    enum
12934    {
12935      value = true
12936    };
12937  };
12938
12939  //=== VK_QCOM_render_pass_transform ===
12940  template <>
12941  struct StructExtends<RenderPassTransformBeginInfoQCOM, RenderPassBeginInfo>
12942  {
12943    enum
12944    {
12945      value = true
12946    };
12947  };
12948
12949  template <>
12950  struct StructExtends<CommandBufferInheritanceRenderPassTransformInfoQCOM, CommandBufferInheritanceInfo>
12951  {
12952    enum
12953    {
12954      value = true
12955    };
12956  };
12957
12958  //=== VK_EXT_depth_bias_control ===
12959  template <>
12960  struct StructExtends<PhysicalDeviceDepthBiasControlFeaturesEXT, PhysicalDeviceFeatures2>
12961  {
12962    enum
12963    {
12964      value = true
12965    };
12966  };
12967
12968  template <>
12969  struct StructExtends<PhysicalDeviceDepthBiasControlFeaturesEXT, DeviceCreateInfo>
12970  {
12971    enum
12972    {
12973      value = true
12974    };
12975  };
12976
12977  template <>
12978  struct StructExtends<DepthBiasRepresentationInfoEXT, DepthBiasInfoEXT>
12979  {
12980    enum
12981    {
12982      value = true
12983    };
12984  };
12985
12986  template <>
12987  struct StructExtends<DepthBiasRepresentationInfoEXT, PipelineRasterizationStateCreateInfo>
12988  {
12989    enum
12990    {
12991      value = true
12992    };
12993  };
12994
12995  //=== VK_EXT_device_memory_report ===
12996  template <>
12997  struct StructExtends<PhysicalDeviceDeviceMemoryReportFeaturesEXT, PhysicalDeviceFeatures2>
12998  {
12999    enum
13000    {
13001      value = true
13002    };
13003  };
13004
13005  template <>
13006  struct StructExtends<PhysicalDeviceDeviceMemoryReportFeaturesEXT, DeviceCreateInfo>
13007  {
13008    enum
13009    {
13010      value = true
13011    };
13012  };
13013
13014  template <>
13015  struct StructExtends<DeviceDeviceMemoryReportCreateInfoEXT, DeviceCreateInfo>
13016  {
13017    enum
13018    {
13019      value = true
13020    };
13021  };
13022
13023  //=== VK_EXT_robustness2 ===
13024  template <>
13025  struct StructExtends<PhysicalDeviceRobustness2FeaturesEXT, PhysicalDeviceFeatures2>
13026  {
13027    enum
13028    {
13029      value = true
13030    };
13031  };
13032
13033  template <>
13034  struct StructExtends<PhysicalDeviceRobustness2FeaturesEXT, DeviceCreateInfo>
13035  {
13036    enum
13037    {
13038      value = true
13039    };
13040  };
13041
13042  template <>
13043  struct StructExtends<PhysicalDeviceRobustness2PropertiesEXT, PhysicalDeviceProperties2>
13044  {
13045    enum
13046    {
13047      value = true
13048    };
13049  };
13050
13051  //=== VK_EXT_custom_border_color ===
13052  template <>
13053  struct StructExtends<SamplerCustomBorderColorCreateInfoEXT, SamplerCreateInfo>
13054  {
13055    enum
13056    {
13057      value = true
13058    };
13059  };
13060
13061  template <>
13062  struct StructExtends<PhysicalDeviceCustomBorderColorPropertiesEXT, PhysicalDeviceProperties2>
13063  {
13064    enum
13065    {
13066      value = true
13067    };
13068  };
13069
13070  template <>
13071  struct StructExtends<PhysicalDeviceCustomBorderColorFeaturesEXT, PhysicalDeviceFeatures2>
13072  {
13073    enum
13074    {
13075      value = true
13076    };
13077  };
13078
13079  template <>
13080  struct StructExtends<PhysicalDeviceCustomBorderColorFeaturesEXT, DeviceCreateInfo>
13081  {
13082    enum
13083    {
13084      value = true
13085    };
13086  };
13087
13088  //=== VK_KHR_pipeline_library ===
13089  template <>
13090  struct StructExtends<PipelineLibraryCreateInfoKHR, GraphicsPipelineCreateInfo>
13091  {
13092    enum
13093    {
13094      value = true
13095    };
13096  };
13097
13098  //=== VK_NV_present_barrier ===
13099  template <>
13100  struct StructExtends<PhysicalDevicePresentBarrierFeaturesNV, PhysicalDeviceFeatures2>
13101  {
13102    enum
13103    {
13104      value = true
13105    };
13106  };
13107
13108  template <>
13109  struct StructExtends<PhysicalDevicePresentBarrierFeaturesNV, DeviceCreateInfo>
13110  {
13111    enum
13112    {
13113      value = true
13114    };
13115  };
13116
13117  template <>
13118  struct StructExtends<SurfaceCapabilitiesPresentBarrierNV, SurfaceCapabilities2KHR>
13119  {
13120    enum
13121    {
13122      value = true
13123    };
13124  };
13125
13126  template <>
13127  struct StructExtends<SwapchainPresentBarrierCreateInfoNV, SwapchainCreateInfoKHR>
13128  {
13129    enum
13130    {
13131      value = true
13132    };
13133  };
13134
13135  //=== VK_KHR_present_id ===
13136  template <>
13137  struct StructExtends<PresentIdKHR, PresentInfoKHR>
13138  {
13139    enum
13140    {
13141      value = true
13142    };
13143  };
13144
13145  template <>
13146  struct StructExtends<PhysicalDevicePresentIdFeaturesKHR, PhysicalDeviceFeatures2>
13147  {
13148    enum
13149    {
13150      value = true
13151    };
13152  };
13153
13154  template <>
13155  struct StructExtends<PhysicalDevicePresentIdFeaturesKHR, DeviceCreateInfo>
13156  {
13157    enum
13158    {
13159      value = true
13160    };
13161  };
13162
13163  //=== VK_KHR_video_encode_queue ===
13164  template <>
13165  struct StructExtends<VideoEncodeCapabilitiesKHR, VideoCapabilitiesKHR>
13166  {
13167    enum
13168    {
13169      value = true
13170    };
13171  };
13172
13173  template <>
13174  struct StructExtends<QueryPoolVideoEncodeFeedbackCreateInfoKHR, QueryPoolCreateInfo>
13175  {
13176    enum
13177    {
13178      value = true
13179    };
13180  };
13181
13182  template <>
13183  struct StructExtends<VideoEncodeUsageInfoKHR, VideoProfileInfoKHR>
13184  {
13185    enum
13186    {
13187      value = true
13188    };
13189  };
13190
13191  template <>
13192  struct StructExtends<VideoEncodeUsageInfoKHR, QueryPoolCreateInfo>
13193  {
13194    enum
13195    {
13196      value = true
13197    };
13198  };
13199
13200  template <>
13201  struct StructExtends<VideoEncodeRateControlInfoKHR, VideoCodingControlInfoKHR>
13202  {
13203    enum
13204    {
13205      value = true
13206    };
13207  };
13208
13209  template <>
13210  struct StructExtends<VideoEncodeRateControlInfoKHR, VideoBeginCodingInfoKHR>
13211  {
13212    enum
13213    {
13214      value = true
13215    };
13216  };
13217
13218  template <>
13219  struct StructExtends<VideoEncodeQualityLevelInfoKHR, VideoCodingControlInfoKHR>
13220  {
13221    enum
13222    {
13223      value = true
13224    };
13225  };
13226
13227  template <>
13228  struct StructExtends<VideoEncodeQualityLevelInfoKHR, VideoSessionParametersCreateInfoKHR>
13229  {
13230    enum
13231    {
13232      value = true
13233    };
13234  };
13235
13236  //=== VK_NV_device_diagnostics_config ===
13237  template <>
13238  struct StructExtends<PhysicalDeviceDiagnosticsConfigFeaturesNV, PhysicalDeviceFeatures2>
13239  {
13240    enum
13241    {
13242      value = true
13243    };
13244  };
13245
13246  template <>
13247  struct StructExtends<PhysicalDeviceDiagnosticsConfigFeaturesNV, DeviceCreateInfo>
13248  {
13249    enum
13250    {
13251      value = true
13252    };
13253  };
13254
13255  template <>
13256  struct StructExtends<DeviceDiagnosticsConfigCreateInfoNV, DeviceCreateInfo>
13257  {
13258    enum
13259    {
13260      value = true
13261    };
13262  };
13263
13264#  if defined( VK_ENABLE_BETA_EXTENSIONS )
13265  //=== VK_NV_cuda_kernel_launch ===
13266  template <>
13267  struct StructExtends<PhysicalDeviceCudaKernelLaunchFeaturesNV, PhysicalDeviceFeatures2>
13268  {
13269    enum
13270    {
13271      value = true
13272    };
13273  };
13274
13275  template <>
13276  struct StructExtends<PhysicalDeviceCudaKernelLaunchFeaturesNV, DeviceCreateInfo>
13277  {
13278    enum
13279    {
13280      value = true
13281    };
13282  };
13283
13284  template <>
13285  struct StructExtends<PhysicalDeviceCudaKernelLaunchPropertiesNV, PhysicalDeviceProperties2>
13286  {
13287    enum
13288    {
13289      value = true
13290    };
13291  };
13292#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
13293
13294  //=== VK_NV_low_latency ===
13295  template <>
13296  struct StructExtends<QueryLowLatencySupportNV, SemaphoreCreateInfo>
13297  {
13298    enum
13299    {
13300      value = true
13301    };
13302  };
13303
13304#  if defined( VK_USE_PLATFORM_METAL_EXT )
13305  //=== VK_EXT_metal_objects ===
13306  template <>
13307  struct StructExtends<ExportMetalObjectCreateInfoEXT, InstanceCreateInfo>
13308  {
13309    enum
13310    {
13311      value = true
13312    };
13313  };
13314
13315  template <>
13316  struct StructExtends<ExportMetalObjectCreateInfoEXT, MemoryAllocateInfo>
13317  {
13318    enum
13319    {
13320      value = true
13321    };
13322  };
13323
13324  template <>
13325  struct StructExtends<ExportMetalObjectCreateInfoEXT, ImageCreateInfo>
13326  {
13327    enum
13328    {
13329      value = true
13330    };
13331  };
13332
13333  template <>
13334  struct StructExtends<ExportMetalObjectCreateInfoEXT, ImageViewCreateInfo>
13335  {
13336    enum
13337    {
13338      value = true
13339    };
13340  };
13341
13342  template <>
13343  struct StructExtends<ExportMetalObjectCreateInfoEXT, BufferViewCreateInfo>
13344  {
13345    enum
13346    {
13347      value = true
13348    };
13349  };
13350
13351  template <>
13352  struct StructExtends<ExportMetalObjectCreateInfoEXT, SemaphoreCreateInfo>
13353  {
13354    enum
13355    {
13356      value = true
13357    };
13358  };
13359
13360  template <>
13361  struct StructExtends<ExportMetalObjectCreateInfoEXT, EventCreateInfo>
13362  {
13363    enum
13364    {
13365      value = true
13366    };
13367  };
13368
13369  template <>
13370  struct StructExtends<ExportMetalDeviceInfoEXT, ExportMetalObjectsInfoEXT>
13371  {
13372    enum
13373    {
13374      value = true
13375    };
13376  };
13377
13378  template <>
13379  struct StructExtends<ExportMetalCommandQueueInfoEXT, ExportMetalObjectsInfoEXT>
13380  {
13381    enum
13382    {
13383      value = true
13384    };
13385  };
13386
13387  template <>
13388  struct StructExtends<ExportMetalBufferInfoEXT, ExportMetalObjectsInfoEXT>
13389  {
13390    enum
13391    {
13392      value = true
13393    };
13394  };
13395
13396  template <>
13397  struct StructExtends<ImportMetalBufferInfoEXT, MemoryAllocateInfo>
13398  {
13399    enum
13400    {
13401      value = true
13402    };
13403  };
13404
13405  template <>
13406  struct StructExtends<ExportMetalTextureInfoEXT, ExportMetalObjectsInfoEXT>
13407  {
13408    enum
13409    {
13410      value = true
13411    };
13412  };
13413
13414  template <>
13415  struct StructExtends<ImportMetalTextureInfoEXT, ImageCreateInfo>
13416  {
13417    enum
13418    {
13419      value = true
13420    };
13421  };
13422
13423  template <>
13424  struct StructExtends<ExportMetalIOSurfaceInfoEXT, ExportMetalObjectsInfoEXT>
13425  {
13426    enum
13427    {
13428      value = true
13429    };
13430  };
13431
13432  template <>
13433  struct StructExtends<ImportMetalIOSurfaceInfoEXT, ImageCreateInfo>
13434  {
13435    enum
13436    {
13437      value = true
13438    };
13439  };
13440
13441  template <>
13442  struct StructExtends<ExportMetalSharedEventInfoEXT, ExportMetalObjectsInfoEXT>
13443  {
13444    enum
13445    {
13446      value = true
13447    };
13448  };
13449
13450  template <>
13451  struct StructExtends<ImportMetalSharedEventInfoEXT, SemaphoreCreateInfo>
13452  {
13453    enum
13454    {
13455      value = true
13456    };
13457  };
13458
13459  template <>
13460  struct StructExtends<ImportMetalSharedEventInfoEXT, EventCreateInfo>
13461  {
13462    enum
13463    {
13464      value = true
13465    };
13466  };
13467#  endif /*VK_USE_PLATFORM_METAL_EXT*/
13468
13469  //=== VK_KHR_synchronization2 ===
13470  template <>
13471  struct StructExtends<QueueFamilyCheckpointProperties2NV, QueueFamilyProperties2>
13472  {
13473    enum
13474    {
13475      value = true
13476    };
13477  };
13478
13479  //=== VK_EXT_descriptor_buffer ===
13480  template <>
13481  struct StructExtends<PhysicalDeviceDescriptorBufferPropertiesEXT, PhysicalDeviceProperties2>
13482  {
13483    enum
13484    {
13485      value = true
13486    };
13487  };
13488
13489  template <>
13490  struct StructExtends<PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, PhysicalDeviceProperties2>
13491  {
13492    enum
13493    {
13494      value = true
13495    };
13496  };
13497
13498  template <>
13499  struct StructExtends<PhysicalDeviceDescriptorBufferFeaturesEXT, PhysicalDeviceFeatures2>
13500  {
13501    enum
13502    {
13503      value = true
13504    };
13505  };
13506
13507  template <>
13508  struct StructExtends<PhysicalDeviceDescriptorBufferFeaturesEXT, DeviceCreateInfo>
13509  {
13510    enum
13511    {
13512      value = true
13513    };
13514  };
13515
13516  template <>
13517  struct StructExtends<DescriptorBufferBindingPushDescriptorBufferHandleEXT, DescriptorBufferBindingInfoEXT>
13518  {
13519    enum
13520    {
13521      value = true
13522    };
13523  };
13524
13525  template <>
13526  struct StructExtends<OpaqueCaptureDescriptorDataCreateInfoEXT, BufferCreateInfo>
13527  {
13528    enum
13529    {
13530      value = true
13531    };
13532  };
13533
13534  template <>
13535  struct StructExtends<OpaqueCaptureDescriptorDataCreateInfoEXT, ImageCreateInfo>
13536  {
13537    enum
13538    {
13539      value = true
13540    };
13541  };
13542
13543  template <>
13544  struct StructExtends<OpaqueCaptureDescriptorDataCreateInfoEXT, ImageViewCreateInfo>
13545  {
13546    enum
13547    {
13548      value = true
13549    };
13550  };
13551
13552  template <>
13553  struct StructExtends<OpaqueCaptureDescriptorDataCreateInfoEXT, SamplerCreateInfo>
13554  {
13555    enum
13556    {
13557      value = true
13558    };
13559  };
13560
13561  template <>
13562  struct StructExtends<OpaqueCaptureDescriptorDataCreateInfoEXT, AccelerationStructureCreateInfoKHR>
13563  {
13564    enum
13565    {
13566      value = true
13567    };
13568  };
13569
13570  template <>
13571  struct StructExtends<OpaqueCaptureDescriptorDataCreateInfoEXT, AccelerationStructureCreateInfoNV>
13572  {
13573    enum
13574    {
13575      value = true
13576    };
13577  };
13578
13579  //=== VK_EXT_graphics_pipeline_library ===
13580  template <>
13581  struct StructExtends<PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, PhysicalDeviceFeatures2>
13582  {
13583    enum
13584    {
13585      value = true
13586    };
13587  };
13588
13589  template <>
13590  struct StructExtends<PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, DeviceCreateInfo>
13591  {
13592    enum
13593    {
13594      value = true
13595    };
13596  };
13597
13598  template <>
13599  struct StructExtends<PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, PhysicalDeviceProperties2>
13600  {
13601    enum
13602    {
13603      value = true
13604    };
13605  };
13606
13607  template <>
13608  struct StructExtends<GraphicsPipelineLibraryCreateInfoEXT, GraphicsPipelineCreateInfo>
13609  {
13610    enum
13611    {
13612      value = true
13613    };
13614  };
13615
13616  //=== VK_AMD_shader_early_and_late_fragment_tests ===
13617  template <>
13618  struct StructExtends<PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, PhysicalDeviceFeatures2>
13619  {
13620    enum
13621    {
13622      value = true
13623    };
13624  };
13625
13626  template <>
13627  struct StructExtends<PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, DeviceCreateInfo>
13628  {
13629    enum
13630    {
13631      value = true
13632    };
13633  };
13634
13635  //=== VK_KHR_fragment_shader_barycentric ===
13636  template <>
13637  struct StructExtends<PhysicalDeviceFragmentShaderBarycentricFeaturesKHR, PhysicalDeviceFeatures2>
13638  {
13639    enum
13640    {
13641      value = true
13642    };
13643  };
13644
13645  template <>
13646  struct StructExtends<PhysicalDeviceFragmentShaderBarycentricFeaturesKHR, DeviceCreateInfo>
13647  {
13648    enum
13649    {
13650      value = true
13651    };
13652  };
13653
13654  template <>
13655  struct StructExtends<PhysicalDeviceFragmentShaderBarycentricPropertiesKHR, PhysicalDeviceProperties2>
13656  {
13657    enum
13658    {
13659      value = true
13660    };
13661  };
13662
13663  //=== VK_KHR_shader_subgroup_uniform_control_flow ===
13664  template <>
13665  struct StructExtends<PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, PhysicalDeviceFeatures2>
13666  {
13667    enum
13668    {
13669      value = true
13670    };
13671  };
13672
13673  template <>
13674  struct StructExtends<PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, DeviceCreateInfo>
13675  {
13676    enum
13677    {
13678      value = true
13679    };
13680  };
13681
13682  //=== VK_NV_fragment_shading_rate_enums ===
13683  template <>
13684  struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsFeaturesNV, PhysicalDeviceFeatures2>
13685  {
13686    enum
13687    {
13688      value = true
13689    };
13690  };
13691
13692  template <>
13693  struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsFeaturesNV, DeviceCreateInfo>
13694  {
13695    enum
13696    {
13697      value = true
13698    };
13699  };
13700
13701  template <>
13702  struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsPropertiesNV, PhysicalDeviceProperties2>
13703  {
13704    enum
13705    {
13706      value = true
13707    };
13708  };
13709
13710  template <>
13711  struct StructExtends<PipelineFragmentShadingRateEnumStateCreateInfoNV, GraphicsPipelineCreateInfo>
13712  {
13713    enum
13714    {
13715      value = true
13716    };
13717  };
13718
13719  //=== VK_NV_ray_tracing_motion_blur ===
13720  template <>
13721  struct StructExtends<AccelerationStructureGeometryMotionTrianglesDataNV, AccelerationStructureGeometryTrianglesDataKHR>
13722  {
13723    enum
13724    {
13725      value = true
13726    };
13727  };
13728
13729  template <>
13730  struct StructExtends<AccelerationStructureMotionInfoNV, AccelerationStructureCreateInfoKHR>
13731  {
13732    enum
13733    {
13734      value = true
13735    };
13736  };
13737
13738  template <>
13739  struct StructExtends<PhysicalDeviceRayTracingMotionBlurFeaturesNV, PhysicalDeviceFeatures2>
13740  {
13741    enum
13742    {
13743      value = true
13744    };
13745  };
13746
13747  template <>
13748  struct StructExtends<PhysicalDeviceRayTracingMotionBlurFeaturesNV, DeviceCreateInfo>
13749  {
13750    enum
13751    {
13752      value = true
13753    };
13754  };
13755
13756  //=== VK_EXT_mesh_shader ===
13757  template <>
13758  struct StructExtends<PhysicalDeviceMeshShaderFeaturesEXT, PhysicalDeviceFeatures2>
13759  {
13760    enum
13761    {
13762      value = true
13763    };
13764  };
13765
13766  template <>
13767  struct StructExtends<PhysicalDeviceMeshShaderFeaturesEXT, DeviceCreateInfo>
13768  {
13769    enum
13770    {
13771      value = true
13772    };
13773  };
13774
13775  template <>
13776  struct StructExtends<PhysicalDeviceMeshShaderPropertiesEXT, PhysicalDeviceProperties2>
13777  {
13778    enum
13779    {
13780      value = true
13781    };
13782  };
13783
13784  //=== VK_EXT_ycbcr_2plane_444_formats ===
13785  template <>
13786  struct StructExtends<PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, PhysicalDeviceFeatures2>
13787  {
13788    enum
13789    {
13790      value = true
13791    };
13792  };
13793
13794  template <>
13795  struct StructExtends<PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, DeviceCreateInfo>
13796  {
13797    enum
13798    {
13799      value = true
13800    };
13801  };
13802
13803  //=== VK_EXT_fragment_density_map2 ===
13804  template <>
13805  struct StructExtends<PhysicalDeviceFragmentDensityMap2FeaturesEXT, PhysicalDeviceFeatures2>
13806  {
13807    enum
13808    {
13809      value = true
13810    };
13811  };
13812
13813  template <>
13814  struct StructExtends<PhysicalDeviceFragmentDensityMap2FeaturesEXT, DeviceCreateInfo>
13815  {
13816    enum
13817    {
13818      value = true
13819    };
13820  };
13821
13822  template <>
13823  struct StructExtends<PhysicalDeviceFragmentDensityMap2PropertiesEXT, PhysicalDeviceProperties2>
13824  {
13825    enum
13826    {
13827      value = true
13828    };
13829  };
13830
13831  //=== VK_QCOM_rotated_copy_commands ===
13832  template <>
13833  struct StructExtends<CopyCommandTransformInfoQCOM, BufferImageCopy2>
13834  {
13835    enum
13836    {
13837      value = true
13838    };
13839  };
13840
13841  template <>
13842  struct StructExtends<CopyCommandTransformInfoQCOM, ImageBlit2>
13843  {
13844    enum
13845    {
13846      value = true
13847    };
13848  };
13849
13850  //=== VK_KHR_workgroup_memory_explicit_layout ===
13851  template <>
13852  struct StructExtends<PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, PhysicalDeviceFeatures2>
13853  {
13854    enum
13855    {
13856      value = true
13857    };
13858  };
13859
13860  template <>
13861  struct StructExtends<PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, DeviceCreateInfo>
13862  {
13863    enum
13864    {
13865      value = true
13866    };
13867  };
13868
13869  //=== VK_EXT_image_compression_control ===
13870  template <>
13871  struct StructExtends<PhysicalDeviceImageCompressionControlFeaturesEXT, PhysicalDeviceFeatures2>
13872  {
13873    enum
13874    {
13875      value = true
13876    };
13877  };
13878
13879  template <>
13880  struct StructExtends<PhysicalDeviceImageCompressionControlFeaturesEXT, DeviceCreateInfo>
13881  {
13882    enum
13883    {
13884      value = true
13885    };
13886  };
13887
13888  template <>
13889  struct StructExtends<ImageCompressionControlEXT, ImageCreateInfo>
13890  {
13891    enum
13892    {
13893      value = true
13894    };
13895  };
13896
13897  template <>
13898  struct StructExtends<ImageCompressionControlEXT, SwapchainCreateInfoKHR>
13899  {
13900    enum
13901    {
13902      value = true
13903    };
13904  };
13905
13906  template <>
13907  struct StructExtends<ImageCompressionControlEXT, PhysicalDeviceImageFormatInfo2>
13908  {
13909    enum
13910    {
13911      value = true
13912    };
13913  };
13914
13915  template <>
13916  struct StructExtends<ImageCompressionPropertiesEXT, ImageFormatProperties2>
13917  {
13918    enum
13919    {
13920      value = true
13921    };
13922  };
13923
13924  template <>
13925  struct StructExtends<ImageCompressionPropertiesEXT, SurfaceFormat2KHR>
13926  {
13927    enum
13928    {
13929      value = true
13930    };
13931  };
13932
13933  template <>
13934  struct StructExtends<ImageCompressionPropertiesEXT, SubresourceLayout2KHR>
13935  {
13936    enum
13937    {
13938      value = true
13939    };
13940  };
13941
13942  //=== VK_EXT_attachment_feedback_loop_layout ===
13943  template <>
13944  struct StructExtends<PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, PhysicalDeviceFeatures2>
13945  {
13946    enum
13947    {
13948      value = true
13949    };
13950  };
13951
13952  template <>
13953  struct StructExtends<PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, DeviceCreateInfo>
13954  {
13955    enum
13956    {
13957      value = true
13958    };
13959  };
13960
13961  //=== VK_EXT_4444_formats ===
13962  template <>
13963  struct StructExtends<PhysicalDevice4444FormatsFeaturesEXT, PhysicalDeviceFeatures2>
13964  {
13965    enum
13966    {
13967      value = true
13968    };
13969  };
13970
13971  template <>
13972  struct StructExtends<PhysicalDevice4444FormatsFeaturesEXT, DeviceCreateInfo>
13973  {
13974    enum
13975    {
13976      value = true
13977    };
13978  };
13979
13980  //=== VK_EXT_device_fault ===
13981  template <>
13982  struct StructExtends<PhysicalDeviceFaultFeaturesEXT, PhysicalDeviceFeatures2>
13983  {
13984    enum
13985    {
13986      value = true
13987    };
13988  };
13989
13990  template <>
13991  struct StructExtends<PhysicalDeviceFaultFeaturesEXT, DeviceCreateInfo>
13992  {
13993    enum
13994    {
13995      value = true
13996    };
13997  };
13998
13999  //=== VK_EXT_rgba10x6_formats ===
14000  template <>
14001  struct StructExtends<PhysicalDeviceRGBA10X6FormatsFeaturesEXT, PhysicalDeviceFeatures2>
14002  {
14003    enum
14004    {
14005      value = true
14006    };
14007  };
14008
14009  template <>
14010  struct StructExtends<PhysicalDeviceRGBA10X6FormatsFeaturesEXT, DeviceCreateInfo>
14011  {
14012    enum
14013    {
14014      value = true
14015    };
14016  };
14017
14018  //=== VK_EXT_vertex_input_dynamic_state ===
14019  template <>
14020  struct StructExtends<PhysicalDeviceVertexInputDynamicStateFeaturesEXT, PhysicalDeviceFeatures2>
14021  {
14022    enum
14023    {
14024      value = true
14025    };
14026  };
14027
14028  template <>
14029  struct StructExtends<PhysicalDeviceVertexInputDynamicStateFeaturesEXT, DeviceCreateInfo>
14030  {
14031    enum
14032    {
14033      value = true
14034    };
14035  };
14036
14037  //=== VK_EXT_physical_device_drm ===
14038  template <>
14039  struct StructExtends<PhysicalDeviceDrmPropertiesEXT, PhysicalDeviceProperties2>
14040  {
14041    enum
14042    {
14043      value = true
14044    };
14045  };
14046
14047  //=== VK_EXT_device_address_binding_report ===
14048  template <>
14049  struct StructExtends<PhysicalDeviceAddressBindingReportFeaturesEXT, PhysicalDeviceFeatures2>
14050  {
14051    enum
14052    {
14053      value = true
14054    };
14055  };
14056
14057  template <>
14058  struct StructExtends<PhysicalDeviceAddressBindingReportFeaturesEXT, DeviceCreateInfo>
14059  {
14060    enum
14061    {
14062      value = true
14063    };
14064  };
14065
14066  template <>
14067  struct StructExtends<DeviceAddressBindingCallbackDataEXT, DebugUtilsMessengerCallbackDataEXT>
14068  {
14069    enum
14070    {
14071      value = true
14072    };
14073  };
14074
14075  //=== VK_EXT_depth_clip_control ===
14076  template <>
14077  struct StructExtends<PhysicalDeviceDepthClipControlFeaturesEXT, PhysicalDeviceFeatures2>
14078  {
14079    enum
14080    {
14081      value = true
14082    };
14083  };
14084
14085  template <>
14086  struct StructExtends<PhysicalDeviceDepthClipControlFeaturesEXT, DeviceCreateInfo>
14087  {
14088    enum
14089    {
14090      value = true
14091    };
14092  };
14093
14094  template <>
14095  struct StructExtends<PipelineViewportDepthClipControlCreateInfoEXT, PipelineViewportStateCreateInfo>
14096  {
14097    enum
14098    {
14099      value = true
14100    };
14101  };
14102
14103  //=== VK_EXT_primitive_topology_list_restart ===
14104  template <>
14105  struct StructExtends<PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, PhysicalDeviceFeatures2>
14106  {
14107    enum
14108    {
14109      value = true
14110    };
14111  };
14112
14113  template <>
14114  struct StructExtends<PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, DeviceCreateInfo>
14115  {
14116    enum
14117    {
14118      value = true
14119    };
14120  };
14121
14122#  if defined( VK_USE_PLATFORM_FUCHSIA )
14123  //=== VK_FUCHSIA_external_memory ===
14124  template <>
14125  struct StructExtends<ImportMemoryZirconHandleInfoFUCHSIA, MemoryAllocateInfo>
14126  {
14127    enum
14128    {
14129      value = true
14130    };
14131  };
14132#  endif /*VK_USE_PLATFORM_FUCHSIA*/
14133
14134#  if defined( VK_USE_PLATFORM_FUCHSIA )
14135  //=== VK_FUCHSIA_buffer_collection ===
14136  template <>
14137  struct StructExtends<ImportMemoryBufferCollectionFUCHSIA, MemoryAllocateInfo>
14138  {
14139    enum
14140    {
14141      value = true
14142    };
14143  };
14144
14145  template <>
14146  struct StructExtends<BufferCollectionImageCreateInfoFUCHSIA, ImageCreateInfo>
14147  {
14148    enum
14149    {
14150      value = true
14151    };
14152  };
14153
14154  template <>
14155  struct StructExtends<BufferCollectionBufferCreateInfoFUCHSIA, BufferCreateInfo>
14156  {
14157    enum
14158    {
14159      value = true
14160    };
14161  };
14162#  endif /*VK_USE_PLATFORM_FUCHSIA*/
14163
14164  //=== VK_HUAWEI_subpass_shading ===
14165  template <>
14166  struct StructExtends<SubpassShadingPipelineCreateInfoHUAWEI, ComputePipelineCreateInfo>
14167  {
14168    enum
14169    {
14170      value = true
14171    };
14172  };
14173
14174  template <>
14175  struct StructExtends<PhysicalDeviceSubpassShadingFeaturesHUAWEI, PhysicalDeviceFeatures2>
14176  {
14177    enum
14178    {
14179      value = true
14180    };
14181  };
14182
14183  template <>
14184  struct StructExtends<PhysicalDeviceSubpassShadingFeaturesHUAWEI, DeviceCreateInfo>
14185  {
14186    enum
14187    {
14188      value = true
14189    };
14190  };
14191
14192  template <>
14193  struct StructExtends<PhysicalDeviceSubpassShadingPropertiesHUAWEI, PhysicalDeviceProperties2>
14194  {
14195    enum
14196    {
14197      value = true
14198    };
14199  };
14200
14201  //=== VK_HUAWEI_invocation_mask ===
14202  template <>
14203  struct StructExtends<PhysicalDeviceInvocationMaskFeaturesHUAWEI, PhysicalDeviceFeatures2>
14204  {
14205    enum
14206    {
14207      value = true
14208    };
14209  };
14210
14211  template <>
14212  struct StructExtends<PhysicalDeviceInvocationMaskFeaturesHUAWEI, DeviceCreateInfo>
14213  {
14214    enum
14215    {
14216      value = true
14217    };
14218  };
14219
14220  //=== VK_NV_external_memory_rdma ===
14221  template <>
14222  struct StructExtends<PhysicalDeviceExternalMemoryRDMAFeaturesNV, PhysicalDeviceFeatures2>
14223  {
14224    enum
14225    {
14226      value = true
14227    };
14228  };
14229
14230  template <>
14231  struct StructExtends<PhysicalDeviceExternalMemoryRDMAFeaturesNV, DeviceCreateInfo>
14232  {
14233    enum
14234    {
14235      value = true
14236    };
14237  };
14238
14239  //=== VK_EXT_pipeline_properties ===
14240  template <>
14241  struct StructExtends<PhysicalDevicePipelinePropertiesFeaturesEXT, PhysicalDeviceFeatures2>
14242  {
14243    enum
14244    {
14245      value = true
14246    };
14247  };
14248
14249  template <>
14250  struct StructExtends<PhysicalDevicePipelinePropertiesFeaturesEXT, DeviceCreateInfo>
14251  {
14252    enum
14253    {
14254      value = true
14255    };
14256  };
14257
14258  //=== VK_EXT_frame_boundary ===
14259  template <>
14260  struct StructExtends<PhysicalDeviceFrameBoundaryFeaturesEXT, PhysicalDeviceFeatures2>
14261  {
14262    enum
14263    {
14264      value = true
14265    };
14266  };
14267
14268  template <>
14269  struct StructExtends<PhysicalDeviceFrameBoundaryFeaturesEXT, DeviceCreateInfo>
14270  {
14271    enum
14272    {
14273      value = true
14274    };
14275  };
14276
14277  template <>
14278  struct StructExtends<FrameBoundaryEXT, SubmitInfo>
14279  {
14280    enum
14281    {
14282      value = true
14283    };
14284  };
14285
14286  template <>
14287  struct StructExtends<FrameBoundaryEXT, SubmitInfo2>
14288  {
14289    enum
14290    {
14291      value = true
14292    };
14293  };
14294
14295  template <>
14296  struct StructExtends<FrameBoundaryEXT, PresentInfoKHR>
14297  {
14298    enum
14299    {
14300      value = true
14301    };
14302  };
14303
14304  template <>
14305  struct StructExtends<FrameBoundaryEXT, BindSparseInfo>
14306  {
14307    enum
14308    {
14309      value = true
14310    };
14311  };
14312
14313  //=== VK_EXT_multisampled_render_to_single_sampled ===
14314  template <>
14315  struct StructExtends<PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, PhysicalDeviceFeatures2>
14316  {
14317    enum
14318    {
14319      value = true
14320    };
14321  };
14322
14323  template <>
14324  struct StructExtends<PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, DeviceCreateInfo>
14325  {
14326    enum
14327    {
14328      value = true
14329    };
14330  };
14331
14332  template <>
14333  struct StructExtends<SubpassResolvePerformanceQueryEXT, FormatProperties2>
14334  {
14335    enum
14336    {
14337      value = true
14338    };
14339  };
14340
14341  template <>
14342  struct StructExtends<MultisampledRenderToSingleSampledInfoEXT, SubpassDescription2>
14343  {
14344    enum
14345    {
14346      value = true
14347    };
14348  };
14349
14350  template <>
14351  struct StructExtends<MultisampledRenderToSingleSampledInfoEXT, RenderingInfo>
14352  {
14353    enum
14354    {
14355      value = true
14356    };
14357  };
14358
14359  //=== VK_EXT_extended_dynamic_state2 ===
14360  template <>
14361  struct StructExtends<PhysicalDeviceExtendedDynamicState2FeaturesEXT, PhysicalDeviceFeatures2>
14362  {
14363    enum
14364    {
14365      value = true
14366    };
14367  };
14368
14369  template <>
14370  struct StructExtends<PhysicalDeviceExtendedDynamicState2FeaturesEXT, DeviceCreateInfo>
14371  {
14372    enum
14373    {
14374      value = true
14375    };
14376  };
14377
14378  //=== VK_EXT_color_write_enable ===
14379  template <>
14380  struct StructExtends<PhysicalDeviceColorWriteEnableFeaturesEXT, PhysicalDeviceFeatures2>
14381  {
14382    enum
14383    {
14384      value = true
14385    };
14386  };
14387
14388  template <>
14389  struct StructExtends<PhysicalDeviceColorWriteEnableFeaturesEXT, DeviceCreateInfo>
14390  {
14391    enum
14392    {
14393      value = true
14394    };
14395  };
14396
14397  template <>
14398  struct StructExtends<PipelineColorWriteCreateInfoEXT, PipelineColorBlendStateCreateInfo>
14399  {
14400    enum
14401    {
14402      value = true
14403    };
14404  };
14405
14406  //=== VK_EXT_primitives_generated_query ===
14407  template <>
14408  struct StructExtends<PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, PhysicalDeviceFeatures2>
14409  {
14410    enum
14411    {
14412      value = true
14413    };
14414  };
14415
14416  template <>
14417  struct StructExtends<PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, DeviceCreateInfo>
14418  {
14419    enum
14420    {
14421      value = true
14422    };
14423  };
14424
14425  //=== VK_KHR_ray_tracing_maintenance1 ===
14426  template <>
14427  struct StructExtends<PhysicalDeviceRayTracingMaintenance1FeaturesKHR, PhysicalDeviceFeatures2>
14428  {
14429    enum
14430    {
14431      value = true
14432    };
14433  };
14434
14435  template <>
14436  struct StructExtends<PhysicalDeviceRayTracingMaintenance1FeaturesKHR, DeviceCreateInfo>
14437  {
14438    enum
14439    {
14440      value = true
14441    };
14442  };
14443
14444  //=== VK_EXT_image_view_min_lod ===
14445  template <>
14446  struct StructExtends<PhysicalDeviceImageViewMinLodFeaturesEXT, PhysicalDeviceFeatures2>
14447  {
14448    enum
14449    {
14450      value = true
14451    };
14452  };
14453
14454  template <>
14455  struct StructExtends<PhysicalDeviceImageViewMinLodFeaturesEXT, DeviceCreateInfo>
14456  {
14457    enum
14458    {
14459      value = true
14460    };
14461  };
14462
14463  template <>
14464  struct StructExtends<ImageViewMinLodCreateInfoEXT, ImageViewCreateInfo>
14465  {
14466    enum
14467    {
14468      value = true
14469    };
14470  };
14471
14472  //=== VK_EXT_multi_draw ===
14473  template <>
14474  struct StructExtends<PhysicalDeviceMultiDrawFeaturesEXT, PhysicalDeviceFeatures2>
14475  {
14476    enum
14477    {
14478      value = true
14479    };
14480  };
14481
14482  template <>
14483  struct StructExtends<PhysicalDeviceMultiDrawFeaturesEXT, DeviceCreateInfo>
14484  {
14485    enum
14486    {
14487      value = true
14488    };
14489  };
14490
14491  template <>
14492  struct StructExtends<PhysicalDeviceMultiDrawPropertiesEXT, PhysicalDeviceProperties2>
14493  {
14494    enum
14495    {
14496      value = true
14497    };
14498  };
14499
14500  //=== VK_EXT_image_2d_view_of_3d ===
14501  template <>
14502  struct StructExtends<PhysicalDeviceImage2DViewOf3DFeaturesEXT, PhysicalDeviceFeatures2>
14503  {
14504    enum
14505    {
14506      value = true
14507    };
14508  };
14509
14510  template <>
14511  struct StructExtends<PhysicalDeviceImage2DViewOf3DFeaturesEXT, DeviceCreateInfo>
14512  {
14513    enum
14514    {
14515      value = true
14516    };
14517  };
14518
14519  //=== VK_EXT_shader_tile_image ===
14520  template <>
14521  struct StructExtends<PhysicalDeviceShaderTileImageFeaturesEXT, PhysicalDeviceFeatures2>
14522  {
14523    enum
14524    {
14525      value = true
14526    };
14527  };
14528
14529  template <>
14530  struct StructExtends<PhysicalDeviceShaderTileImageFeaturesEXT, DeviceCreateInfo>
14531  {
14532    enum
14533    {
14534      value = true
14535    };
14536  };
14537
14538  template <>
14539  struct StructExtends<PhysicalDeviceShaderTileImagePropertiesEXT, PhysicalDeviceProperties2>
14540  {
14541    enum
14542    {
14543      value = true
14544    };
14545  };
14546
14547  //=== VK_EXT_opacity_micromap ===
14548  template <>
14549  struct StructExtends<PhysicalDeviceOpacityMicromapFeaturesEXT, PhysicalDeviceFeatures2>
14550  {
14551    enum
14552    {
14553      value = true
14554    };
14555  };
14556
14557  template <>
14558  struct StructExtends<PhysicalDeviceOpacityMicromapFeaturesEXT, DeviceCreateInfo>
14559  {
14560    enum
14561    {
14562      value = true
14563    };
14564  };
14565
14566  template <>
14567  struct StructExtends<PhysicalDeviceOpacityMicromapPropertiesEXT, PhysicalDeviceProperties2>
14568  {
14569    enum
14570    {
14571      value = true
14572    };
14573  };
14574
14575  template <>
14576  struct StructExtends<AccelerationStructureTrianglesOpacityMicromapEXT, AccelerationStructureGeometryTrianglesDataKHR>
14577  {
14578    enum
14579    {
14580      value = true
14581    };
14582  };
14583
14584#  if defined( VK_ENABLE_BETA_EXTENSIONS )
14585  //=== VK_NV_displacement_micromap ===
14586  template <>
14587  struct StructExtends<PhysicalDeviceDisplacementMicromapFeaturesNV, PhysicalDeviceFeatures2>
14588  {
14589    enum
14590    {
14591      value = true
14592    };
14593  };
14594
14595  template <>
14596  struct StructExtends<PhysicalDeviceDisplacementMicromapFeaturesNV, DeviceCreateInfo>
14597  {
14598    enum
14599    {
14600      value = true
14601    };
14602  };
14603
14604  template <>
14605  struct StructExtends<PhysicalDeviceDisplacementMicromapPropertiesNV, PhysicalDeviceProperties2>
14606  {
14607    enum
14608    {
14609      value = true
14610    };
14611  };
14612
14613  template <>
14614  struct StructExtends<AccelerationStructureTrianglesDisplacementMicromapNV, AccelerationStructureGeometryTrianglesDataKHR>
14615  {
14616    enum
14617    {
14618      value = true
14619    };
14620  };
14621#  endif /*VK_ENABLE_BETA_EXTENSIONS*/
14622
14623  //=== VK_HUAWEI_cluster_culling_shader ===
14624  template <>
14625  struct StructExtends<PhysicalDeviceClusterCullingShaderFeaturesHUAWEI, PhysicalDeviceFeatures2>
14626  {
14627    enum
14628    {
14629      value = true
14630    };
14631  };
14632
14633  template <>
14634  struct StructExtends<PhysicalDeviceClusterCullingShaderFeaturesHUAWEI, DeviceCreateInfo>
14635  {
14636    enum
14637    {
14638      value = true
14639    };
14640  };
14641
14642  template <>
14643  struct StructExtends<PhysicalDeviceClusterCullingShaderPropertiesHUAWEI, PhysicalDeviceProperties2>
14644  {
14645    enum
14646    {
14647      value = true
14648    };
14649  };
14650
14651  template <>
14652  struct StructExtends<PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI, PhysicalDeviceClusterCullingShaderFeaturesHUAWEI>
14653  {
14654    enum
14655    {
14656      value = true
14657    };
14658  };
14659
14660  //=== VK_EXT_border_color_swizzle ===
14661  template <>
14662  struct StructExtends<PhysicalDeviceBorderColorSwizzleFeaturesEXT, PhysicalDeviceFeatures2>
14663  {
14664    enum
14665    {
14666      value = true
14667    };
14668  };
14669
14670  template <>
14671  struct StructExtends<PhysicalDeviceBorderColorSwizzleFeaturesEXT, DeviceCreateInfo>
14672  {
14673    enum
14674    {
14675      value = true
14676    };
14677  };
14678
14679  template <>
14680  struct StructExtends<SamplerBorderColorComponentMappingCreateInfoEXT, SamplerCreateInfo>
14681  {
14682    enum
14683    {
14684      value = true
14685    };
14686  };
14687
14688  //=== VK_EXT_pageable_device_local_memory ===
14689  template <>
14690  struct StructExtends<PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, PhysicalDeviceFeatures2>
14691  {
14692    enum
14693    {
14694      value = true
14695    };
14696  };
14697
14698  template <>
14699  struct StructExtends<PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, DeviceCreateInfo>
14700  {
14701    enum
14702    {
14703      value = true
14704    };
14705  };
14706
14707  //=== VK_ARM_shader_core_properties ===
14708  template <>
14709  struct StructExtends<PhysicalDeviceShaderCorePropertiesARM, PhysicalDeviceProperties2>
14710  {
14711    enum
14712    {
14713      value = true
14714    };
14715  };
14716
14717  //=== VK_ARM_scheduling_controls ===
14718  template <>
14719  struct StructExtends<DeviceQueueShaderCoreControlCreateInfoARM, DeviceQueueCreateInfo>
14720  {
14721    enum
14722    {
14723      value = true
14724    };
14725  };
14726
14727  template <>
14728  struct StructExtends<DeviceQueueShaderCoreControlCreateInfoARM, DeviceCreateInfo>
14729  {
14730    enum
14731    {
14732      value = true
14733    };
14734  };
14735
14736  template <>
14737  struct StructExtends<PhysicalDeviceSchedulingControlsFeaturesARM, PhysicalDeviceFeatures2>
14738  {
14739    enum
14740    {
14741      value = true
14742    };
14743  };
14744
14745  template <>
14746  struct StructExtends<PhysicalDeviceSchedulingControlsFeaturesARM, DeviceCreateInfo>
14747  {
14748    enum
14749    {
14750      value = true
14751    };
14752  };
14753
14754  template <>
14755  struct StructExtends<PhysicalDeviceSchedulingControlsPropertiesARM, PhysicalDeviceProperties2>
14756  {
14757    enum
14758    {
14759      value = true
14760    };
14761  };
14762
14763  //=== VK_EXT_image_sliced_view_of_3d ===
14764  template <>
14765  struct StructExtends<PhysicalDeviceImageSlicedViewOf3DFeaturesEXT, PhysicalDeviceFeatures2>
14766  {
14767    enum
14768    {
14769      value = true
14770    };
14771  };
14772
14773  template <>
14774  struct StructExtends<PhysicalDeviceImageSlicedViewOf3DFeaturesEXT, DeviceCreateInfo>
14775  {
14776    enum
14777    {
14778      value = true
14779    };
14780  };
14781
14782  template <>
14783  struct StructExtends<ImageViewSlicedCreateInfoEXT, ImageViewCreateInfo>
14784  {
14785    enum
14786    {
14787      value = true
14788    };
14789  };
14790
14791  //=== VK_VALVE_descriptor_set_host_mapping ===
14792  template <>
14793  struct StructExtends<PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, PhysicalDeviceFeatures2>
14794  {
14795    enum
14796    {
14797      value = true
14798    };
14799  };
14800
14801  template <>
14802  struct StructExtends<PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, DeviceCreateInfo>
14803  {
14804    enum
14805    {
14806      value = true
14807    };
14808  };
14809
14810  //=== VK_EXT_depth_clamp_zero_one ===
14811  template <>
14812  struct StructExtends<PhysicalDeviceDepthClampZeroOneFeaturesEXT, PhysicalDeviceFeatures2>
14813  {
14814    enum
14815    {
14816      value = true
14817    };
14818  };
14819
14820  template <>
14821  struct StructExtends<PhysicalDeviceDepthClampZeroOneFeaturesEXT, DeviceCreateInfo>
14822  {
14823    enum
14824    {
14825      value = true
14826    };
14827  };
14828
14829  //=== VK_EXT_non_seamless_cube_map ===
14830  template <>
14831  struct StructExtends<PhysicalDeviceNonSeamlessCubeMapFeaturesEXT, PhysicalDeviceFeatures2>
14832  {
14833    enum
14834    {
14835      value = true
14836    };
14837  };
14838
14839  template <>
14840  struct StructExtends<PhysicalDeviceNonSeamlessCubeMapFeaturesEXT, DeviceCreateInfo>
14841  {
14842    enum
14843    {
14844      value = true
14845    };
14846  };
14847
14848  //=== VK_ARM_render_pass_striped ===
14849  template <>
14850  struct StructExtends<PhysicalDeviceRenderPassStripedFeaturesARM, PhysicalDeviceFeatures2>
14851  {
14852    enum
14853    {
14854      value = true
14855    };
14856  };
14857
14858  template <>
14859  struct StructExtends<PhysicalDeviceRenderPassStripedFeaturesARM, DeviceCreateInfo>
14860  {
14861    enum
14862    {
14863      value = true
14864    };
14865  };
14866
14867  template <>
14868  struct StructExtends<PhysicalDeviceRenderPassStripedPropertiesARM, PhysicalDeviceProperties2>
14869  {
14870    enum
14871    {
14872      value = true
14873    };
14874  };
14875
14876  template <>
14877  struct StructExtends<RenderPassStripeBeginInfoARM, RenderingInfo>
14878  {
14879    enum
14880    {
14881      value = true
14882    };
14883  };
14884
14885  template <>
14886  struct StructExtends<RenderPassStripeBeginInfoARM, RenderPassBeginInfo>
14887  {
14888    enum
14889    {
14890      value = true
14891    };
14892  };
14893
14894  template <>
14895  struct StructExtends<RenderPassStripeSubmitInfoARM, CommandBufferSubmitInfo>
14896  {
14897    enum
14898    {
14899      value = true
14900    };
14901  };
14902
14903  //=== VK_QCOM_fragment_density_map_offset ===
14904  template <>
14905  struct StructExtends<PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, PhysicalDeviceFeatures2>
14906  {
14907    enum
14908    {
14909      value = true
14910    };
14911  };
14912
14913  template <>
14914  struct StructExtends<PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, DeviceCreateInfo>
14915  {
14916    enum
14917    {
14918      value = true
14919    };
14920  };
14921
14922  template <>
14923  struct StructExtends<PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, PhysicalDeviceProperties2>
14924  {
14925    enum
14926    {
14927      value = true
14928    };
14929  };
14930
14931  template <>
14932  struct StructExtends<SubpassFragmentDensityMapOffsetEndInfoQCOM, SubpassEndInfo>
14933  {
14934    enum
14935    {
14936      value = true
14937    };
14938  };
14939
14940  //=== VK_NV_copy_memory_indirect ===
14941  template <>
14942  struct StructExtends<PhysicalDeviceCopyMemoryIndirectFeaturesNV, PhysicalDeviceFeatures2>
14943  {
14944    enum
14945    {
14946      value = true
14947    };
14948  };
14949
14950  template <>
14951  struct StructExtends<PhysicalDeviceCopyMemoryIndirectFeaturesNV, DeviceCreateInfo>
14952  {
14953    enum
14954    {
14955      value = true
14956    };
14957  };
14958
14959  template <>
14960  struct StructExtends<PhysicalDeviceCopyMemoryIndirectPropertiesNV, PhysicalDeviceProperties2>
14961  {
14962    enum
14963    {
14964      value = true
14965    };
14966  };
14967
14968  //=== VK_NV_memory_decompression ===
14969  template <>
14970  struct StructExtends<PhysicalDeviceMemoryDecompressionFeaturesNV, PhysicalDeviceFeatures2>
14971  {
14972    enum
14973    {
14974      value = true
14975    };
14976  };
14977
14978  template <>
14979  struct StructExtends<PhysicalDeviceMemoryDecompressionFeaturesNV, DeviceCreateInfo>
14980  {
14981    enum
14982    {
14983      value = true
14984    };
14985  };
14986
14987  template <>
14988  struct StructExtends<PhysicalDeviceMemoryDecompressionPropertiesNV, PhysicalDeviceProperties2>
14989  {
14990    enum
14991    {
14992      value = true
14993    };
14994  };
14995
14996  //=== VK_NV_device_generated_commands_compute ===
14997  template <>
14998  struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, PhysicalDeviceFeatures2>
14999  {
15000    enum
15001    {
15002      value = true
15003    };
15004  };
15005
15006  template <>
15007  struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, DeviceCreateInfo>
15008  {
15009    enum
15010    {
15011      value = true
15012    };
15013  };
15014
15015  //=== VK_NV_linear_color_attachment ===
15016  template <>
15017  struct StructExtends<PhysicalDeviceLinearColorAttachmentFeaturesNV, PhysicalDeviceFeatures2>
15018  {
15019    enum
15020    {
15021      value = true
15022    };
15023  };
15024
15025  template <>
15026  struct StructExtends<PhysicalDeviceLinearColorAttachmentFeaturesNV, DeviceCreateInfo>
15027  {
15028    enum
15029    {
15030      value = true
15031    };
15032  };
15033
15034  //=== VK_EXT_image_compression_control_swapchain ===
15035  template <>
15036  struct StructExtends<PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, PhysicalDeviceFeatures2>
15037  {
15038    enum
15039    {
15040      value = true
15041    };
15042  };
15043
15044  template <>
15045  struct StructExtends<PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, DeviceCreateInfo>
15046  {
15047    enum
15048    {
15049      value = true
15050    };
15051  };
15052
15053  //=== VK_QCOM_image_processing ===
15054  template <>
15055  struct StructExtends<ImageViewSampleWeightCreateInfoQCOM, ImageViewCreateInfo>
15056  {
15057    enum
15058    {
15059      value = true
15060    };
15061  };
15062
15063  template <>
15064  struct StructExtends<PhysicalDeviceImageProcessingFeaturesQCOM, PhysicalDeviceFeatures2>
15065  {
15066    enum
15067    {
15068      value = true
15069    };
15070  };
15071
15072  template <>
15073  struct StructExtends<PhysicalDeviceImageProcessingFeaturesQCOM, DeviceCreateInfo>
15074  {
15075    enum
15076    {
15077      value = true
15078    };
15079  };
15080
15081  template <>
15082  struct StructExtends<PhysicalDeviceImageProcessingPropertiesQCOM, PhysicalDeviceProperties2>
15083  {
15084    enum
15085    {
15086      value = true
15087    };
15088  };
15089
15090  //=== VK_EXT_nested_command_buffer ===
15091  template <>
15092  struct StructExtends<PhysicalDeviceNestedCommandBufferFeaturesEXT, PhysicalDeviceFeatures2>
15093  {
15094    enum
15095    {
15096      value = true
15097    };
15098  };
15099
15100  template <>
15101  struct StructExtends<PhysicalDeviceNestedCommandBufferFeaturesEXT, DeviceCreateInfo>
15102  {
15103    enum
15104    {
15105      value = true
15106    };
15107  };
15108
15109  template <>
15110  struct StructExtends<PhysicalDeviceNestedCommandBufferPropertiesEXT, PhysicalDeviceProperties2>
15111  {
15112    enum
15113    {
15114      value = true
15115    };
15116  };
15117
15118  //=== VK_EXT_external_memory_acquire_unmodified ===
15119  template <>
15120  struct StructExtends<ExternalMemoryAcquireUnmodifiedEXT, BufferMemoryBarrier>
15121  {
15122    enum
15123    {
15124      value = true
15125    };
15126  };
15127
15128  template <>
15129  struct StructExtends<ExternalMemoryAcquireUnmodifiedEXT, BufferMemoryBarrier2>
15130  {
15131    enum
15132    {
15133      value = true
15134    };
15135  };
15136
15137  template <>
15138  struct StructExtends<ExternalMemoryAcquireUnmodifiedEXT, ImageMemoryBarrier>
15139  {
15140    enum
15141    {
15142      value = true
15143    };
15144  };
15145
15146  template <>
15147  struct StructExtends<ExternalMemoryAcquireUnmodifiedEXT, ImageMemoryBarrier2>
15148  {
15149    enum
15150    {
15151      value = true
15152    };
15153  };
15154
15155  //=== VK_EXT_extended_dynamic_state3 ===
15156  template <>
15157  struct StructExtends<PhysicalDeviceExtendedDynamicState3FeaturesEXT, PhysicalDeviceFeatures2>
15158  {
15159    enum
15160    {
15161      value = true
15162    };
15163  };
15164
15165  template <>
15166  struct StructExtends<PhysicalDeviceExtendedDynamicState3FeaturesEXT, DeviceCreateInfo>
15167  {
15168    enum
15169    {
15170      value = true
15171    };
15172  };
15173
15174  template <>
15175  struct StructExtends<PhysicalDeviceExtendedDynamicState3PropertiesEXT, PhysicalDeviceProperties2>
15176  {
15177    enum
15178    {
15179      value = true
15180    };
15181  };
15182
15183  //=== VK_EXT_subpass_merge_feedback ===
15184  template <>
15185  struct StructExtends<PhysicalDeviceSubpassMergeFeedbackFeaturesEXT, PhysicalDeviceFeatures2>
15186  {
15187    enum
15188    {
15189      value = true
15190    };
15191  };
15192
15193  template <>
15194  struct StructExtends<PhysicalDeviceSubpassMergeFeedbackFeaturesEXT, DeviceCreateInfo>
15195  {
15196    enum
15197    {
15198      value = true
15199    };
15200  };
15201
15202  template <>
15203  struct StructExtends<RenderPassCreationControlEXT, RenderPassCreateInfo2>
15204  {
15205    enum
15206    {
15207      value = true
15208    };
15209  };
15210
15211  template <>
15212  struct StructExtends<RenderPassCreationControlEXT, SubpassDescription2>
15213  {
15214    enum
15215    {
15216      value = true
15217    };
15218  };
15219
15220  template <>
15221  struct StructExtends<RenderPassCreationFeedbackCreateInfoEXT, RenderPassCreateInfo2>
15222  {
15223    enum
15224    {
15225      value = true
15226    };
15227  };
15228
15229  template <>
15230  struct StructExtends<RenderPassSubpassFeedbackCreateInfoEXT, SubpassDescription2>
15231  {
15232    enum
15233    {
15234      value = true
15235    };
15236  };
15237
15238  //=== VK_LUNARG_direct_driver_loading ===
15239  template <>
15240  struct StructExtends<DirectDriverLoadingListLUNARG, InstanceCreateInfo>
15241  {
15242    enum
15243    {
15244      value = true
15245    };
15246  };
15247
15248  //=== VK_EXT_shader_module_identifier ===
15249  template <>
15250  struct StructExtends<PhysicalDeviceShaderModuleIdentifierFeaturesEXT, PhysicalDeviceFeatures2>
15251  {
15252    enum
15253    {
15254      value = true
15255    };
15256  };
15257
15258  template <>
15259  struct StructExtends<PhysicalDeviceShaderModuleIdentifierFeaturesEXT, DeviceCreateInfo>
15260  {
15261    enum
15262    {
15263      value = true
15264    };
15265  };
15266
15267  template <>
15268  struct StructExtends<PhysicalDeviceShaderModuleIdentifierPropertiesEXT, PhysicalDeviceProperties2>
15269  {
15270    enum
15271    {
15272      value = true
15273    };
15274  };
15275
15276  template <>
15277  struct StructExtends<PipelineShaderStageModuleIdentifierCreateInfoEXT, PipelineShaderStageCreateInfo>
15278  {
15279    enum
15280    {
15281      value = true
15282    };
15283  };
15284
15285  //=== VK_EXT_rasterization_order_attachment_access ===
15286  template <>
15287  struct StructExtends<PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, PhysicalDeviceFeatures2>
15288  {
15289    enum
15290    {
15291      value = true
15292    };
15293  };
15294
15295  template <>
15296  struct StructExtends<PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, DeviceCreateInfo>
15297  {
15298    enum
15299    {
15300      value = true
15301    };
15302  };
15303
15304  //=== VK_NV_optical_flow ===
15305  template <>
15306  struct StructExtends<PhysicalDeviceOpticalFlowFeaturesNV, PhysicalDeviceFeatures2>
15307  {
15308    enum
15309    {
15310      value = true
15311    };
15312  };
15313
15314  template <>
15315  struct StructExtends<PhysicalDeviceOpticalFlowFeaturesNV, DeviceCreateInfo>
15316  {
15317    enum
15318    {
15319      value = true
15320    };
15321  };
15322
15323  template <>
15324  struct StructExtends<PhysicalDeviceOpticalFlowPropertiesNV, PhysicalDeviceProperties2>
15325  {
15326    enum
15327    {
15328      value = true
15329    };
15330  };
15331
15332  template <>
15333  struct StructExtends<OpticalFlowImageFormatInfoNV, PhysicalDeviceImageFormatInfo2>
15334  {
15335    enum
15336    {
15337      value = true
15338    };
15339  };
15340
15341  template <>
15342  struct StructExtends<OpticalFlowImageFormatInfoNV, ImageCreateInfo>
15343  {
15344    enum
15345    {
15346      value = true
15347    };
15348  };
15349
15350  template <>
15351  struct StructExtends<OpticalFlowSessionCreatePrivateDataInfoNV, OpticalFlowSessionCreateInfoNV>
15352  {
15353    enum
15354    {
15355      value = true
15356    };
15357  };
15358
15359  //=== VK_EXT_legacy_dithering ===
15360  template <>
15361  struct StructExtends<PhysicalDeviceLegacyDitheringFeaturesEXT, PhysicalDeviceFeatures2>
15362  {
15363    enum
15364    {
15365      value = true
15366    };
15367  };
15368
15369  template <>
15370  struct StructExtends<PhysicalDeviceLegacyDitheringFeaturesEXT, DeviceCreateInfo>
15371  {
15372    enum
15373    {
15374      value = true
15375    };
15376  };
15377
15378  //=== VK_EXT_pipeline_protected_access ===
15379  template <>
15380  struct StructExtends<PhysicalDevicePipelineProtectedAccessFeaturesEXT, PhysicalDeviceFeatures2>
15381  {
15382    enum
15383    {
15384      value = true
15385    };
15386  };
15387
15388  template <>
15389  struct StructExtends<PhysicalDevicePipelineProtectedAccessFeaturesEXT, DeviceCreateInfo>
15390  {
15391    enum
15392    {
15393      value = true
15394    };
15395  };
15396
15397#  if defined( VK_USE_PLATFORM_ANDROID_KHR )
15398  //=== VK_ANDROID_external_format_resolve ===
15399  template <>
15400  struct StructExtends<PhysicalDeviceExternalFormatResolveFeaturesANDROID, PhysicalDeviceFeatures2>
15401  {
15402    enum
15403    {
15404      value = true
15405    };
15406  };
15407
15408  template <>
15409  struct StructExtends<PhysicalDeviceExternalFormatResolveFeaturesANDROID, DeviceCreateInfo>
15410  {
15411    enum
15412    {
15413      value = true
15414    };
15415  };
15416
15417  template <>
15418  struct StructExtends<PhysicalDeviceExternalFormatResolvePropertiesANDROID, PhysicalDeviceProperties2>
15419  {
15420    enum
15421    {
15422      value = true
15423    };
15424  };
15425
15426  template <>
15427  struct StructExtends<AndroidHardwareBufferFormatResolvePropertiesANDROID, AndroidHardwareBufferPropertiesANDROID>
15428  {
15429    enum
15430    {
15431      value = true
15432    };
15433  };
15434#  endif /*VK_USE_PLATFORM_ANDROID_KHR*/
15435
15436  //=== VK_KHR_maintenance5 ===
15437  template <>
15438  struct StructExtends<PhysicalDeviceMaintenance5FeaturesKHR, PhysicalDeviceFeatures2>
15439  {
15440    enum
15441    {
15442      value = true
15443    };
15444  };
15445
15446  template <>
15447  struct StructExtends<PhysicalDeviceMaintenance5FeaturesKHR, DeviceCreateInfo>
15448  {
15449    enum
15450    {
15451      value = true
15452    };
15453  };
15454
15455  template <>
15456  struct StructExtends<PhysicalDeviceMaintenance5PropertiesKHR, PhysicalDeviceProperties2>
15457  {
15458    enum
15459    {
15460      value = true
15461    };
15462  };
15463
15464  template <>
15465  struct StructExtends<PipelineCreateFlags2CreateInfoKHR, ComputePipelineCreateInfo>
15466  {
15467    enum
15468    {
15469      value = true
15470    };
15471  };
15472
15473  template <>
15474  struct StructExtends<PipelineCreateFlags2CreateInfoKHR, GraphicsPipelineCreateInfo>
15475  {
15476    enum
15477    {
15478      value = true
15479    };
15480  };
15481
15482  template <>
15483  struct StructExtends<PipelineCreateFlags2CreateInfoKHR, RayTracingPipelineCreateInfoNV>
15484  {
15485    enum
15486    {
15487      value = true
15488    };
15489  };
15490
15491  template <>
15492  struct StructExtends<PipelineCreateFlags2CreateInfoKHR, RayTracingPipelineCreateInfoKHR>
15493  {
15494    enum
15495    {
15496      value = true
15497    };
15498  };
15499
15500  template <>
15501  struct StructExtends<BufferUsageFlags2CreateInfoKHR, BufferViewCreateInfo>
15502  {
15503    enum
15504    {
15505      value = true
15506    };
15507  };
15508
15509  template <>
15510  struct StructExtends<BufferUsageFlags2CreateInfoKHR, BufferCreateInfo>
15511  {
15512    enum
15513    {
15514      value = true
15515    };
15516  };
15517
15518  template <>
15519  struct StructExtends<BufferUsageFlags2CreateInfoKHR, PhysicalDeviceExternalBufferInfo>
15520  {
15521    enum
15522    {
15523      value = true
15524    };
15525  };
15526
15527  template <>
15528  struct StructExtends<BufferUsageFlags2CreateInfoKHR, DescriptorBufferBindingInfoEXT>
15529  {
15530    enum
15531    {
15532      value = true
15533    };
15534  };
15535
15536  //=== VK_KHR_ray_tracing_position_fetch ===
15537  template <>
15538  struct StructExtends<PhysicalDeviceRayTracingPositionFetchFeaturesKHR, PhysicalDeviceFeatures2>
15539  {
15540    enum
15541    {
15542      value = true
15543    };
15544  };
15545
15546  template <>
15547  struct StructExtends<PhysicalDeviceRayTracingPositionFetchFeaturesKHR, DeviceCreateInfo>
15548  {
15549    enum
15550    {
15551      value = true
15552    };
15553  };
15554
15555  //=== VK_EXT_shader_object ===
15556  template <>
15557  struct StructExtends<PhysicalDeviceShaderObjectFeaturesEXT, PhysicalDeviceFeatures2>
15558  {
15559    enum
15560    {
15561      value = true
15562    };
15563  };
15564
15565  template <>
15566  struct StructExtends<PhysicalDeviceShaderObjectFeaturesEXT, DeviceCreateInfo>
15567  {
15568    enum
15569    {
15570      value = true
15571    };
15572  };
15573
15574  template <>
15575  struct StructExtends<PhysicalDeviceShaderObjectPropertiesEXT, PhysicalDeviceProperties2>
15576  {
15577    enum
15578    {
15579      value = true
15580    };
15581  };
15582
15583  //=== VK_QCOM_tile_properties ===
15584  template <>
15585  struct StructExtends<PhysicalDeviceTilePropertiesFeaturesQCOM, PhysicalDeviceFeatures2>
15586  {
15587    enum
15588    {
15589      value = true
15590    };
15591  };
15592
15593  template <>
15594  struct StructExtends<PhysicalDeviceTilePropertiesFeaturesQCOM, DeviceCreateInfo>
15595  {
15596    enum
15597    {
15598      value = true
15599    };
15600  };
15601
15602  //=== VK_SEC_amigo_profiling ===
15603  template <>
15604  struct StructExtends<PhysicalDeviceAmigoProfilingFeaturesSEC, PhysicalDeviceFeatures2>
15605  {
15606    enum
15607    {
15608      value = true
15609    };
15610  };
15611
15612  template <>
15613  struct StructExtends<PhysicalDeviceAmigoProfilingFeaturesSEC, DeviceCreateInfo>
15614  {
15615    enum
15616    {
15617      value = true
15618    };
15619  };
15620
15621  template <>
15622  struct StructExtends<AmigoProfilingSubmitInfoSEC, SubmitInfo>
15623  {
15624    enum
15625    {
15626      value = true
15627    };
15628  };
15629
15630  //=== VK_QCOM_multiview_per_view_viewports ===
15631  template <>
15632  struct StructExtends<PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, PhysicalDeviceFeatures2>
15633  {
15634    enum
15635    {
15636      value = true
15637    };
15638  };
15639
15640  template <>
15641  struct StructExtends<PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, DeviceCreateInfo>
15642  {
15643    enum
15644    {
15645      value = true
15646    };
15647  };
15648
15649  //=== VK_NV_ray_tracing_invocation_reorder ===
15650  template <>
15651  struct StructExtends<PhysicalDeviceRayTracingInvocationReorderPropertiesNV, PhysicalDeviceProperties2>
15652  {
15653    enum
15654    {
15655      value = true
15656    };
15657  };
15658
15659  template <>
15660  struct StructExtends<PhysicalDeviceRayTracingInvocationReorderFeaturesNV, PhysicalDeviceFeatures2>
15661  {
15662    enum
15663    {
15664      value = true
15665    };
15666  };
15667
15668  template <>
15669  struct StructExtends<PhysicalDeviceRayTracingInvocationReorderFeaturesNV, DeviceCreateInfo>
15670  {
15671    enum
15672    {
15673      value = true
15674    };
15675  };
15676
15677  //=== VK_NV_extended_sparse_address_space ===
15678  template <>
15679  struct StructExtends<PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV, PhysicalDeviceFeatures2>
15680  {
15681    enum
15682    {
15683      value = true
15684    };
15685  };
15686
15687  template <>
15688  struct StructExtends<PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV, DeviceCreateInfo>
15689  {
15690    enum
15691    {
15692      value = true
15693    };
15694  };
15695
15696  template <>
15697  struct StructExtends<PhysicalDeviceExtendedSparseAddressSpacePropertiesNV, PhysicalDeviceProperties2>
15698  {
15699    enum
15700    {
15701      value = true
15702    };
15703  };
15704
15705  //=== VK_EXT_mutable_descriptor_type ===
15706  template <>
15707  struct StructExtends<PhysicalDeviceMutableDescriptorTypeFeaturesEXT, PhysicalDeviceFeatures2>
15708  {
15709    enum
15710    {
15711      value = true
15712    };
15713  };
15714
15715  template <>
15716  struct StructExtends<PhysicalDeviceMutableDescriptorTypeFeaturesEXT, DeviceCreateInfo>
15717  {
15718    enum
15719    {
15720      value = true
15721    };
15722  };
15723
15724  template <>
15725  struct StructExtends<MutableDescriptorTypeCreateInfoEXT, DescriptorSetLayoutCreateInfo>
15726  {
15727    enum
15728    {
15729      value = true
15730    };
15731  };
15732
15733  template <>
15734  struct StructExtends<MutableDescriptorTypeCreateInfoEXT, DescriptorPoolCreateInfo>
15735  {
15736    enum
15737    {
15738      value = true
15739    };
15740  };
15741
15742  //=== VK_EXT_layer_settings ===
15743  template <>
15744  struct StructExtends<LayerSettingsCreateInfoEXT, InstanceCreateInfo>
15745  {
15746    enum
15747    {
15748      value = true
15749    };
15750  };
15751
15752  //=== VK_ARM_shader_core_builtins ===
15753  template <>
15754  struct StructExtends<PhysicalDeviceShaderCoreBuiltinsFeaturesARM, PhysicalDeviceFeatures2>
15755  {
15756    enum
15757    {
15758      value = true
15759    };
15760  };
15761
15762  template <>
15763  struct StructExtends<PhysicalDeviceShaderCoreBuiltinsFeaturesARM, DeviceCreateInfo>
15764  {
15765    enum
15766    {
15767      value = true
15768    };
15769  };
15770
15771  template <>
15772  struct StructExtends<PhysicalDeviceShaderCoreBuiltinsPropertiesARM, PhysicalDeviceProperties2>
15773  {
15774    enum
15775    {
15776      value = true
15777    };
15778  };
15779
15780  //=== VK_EXT_pipeline_library_group_handles ===
15781  template <>
15782  struct StructExtends<PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, PhysicalDeviceFeatures2>
15783  {
15784    enum
15785    {
15786      value = true
15787    };
15788  };
15789
15790  template <>
15791  struct StructExtends<PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, DeviceCreateInfo>
15792  {
15793    enum
15794    {
15795      value = true
15796    };
15797  };
15798
15799  //=== VK_EXT_dynamic_rendering_unused_attachments ===
15800  template <>
15801  struct StructExtends<PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, PhysicalDeviceFeatures2>
15802  {
15803    enum
15804    {
15805      value = true
15806    };
15807  };
15808
15809  template <>
15810  struct StructExtends<PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, DeviceCreateInfo>
15811  {
15812    enum
15813    {
15814      value = true
15815    };
15816  };
15817
15818  //=== VK_NV_low_latency2 ===
15819  template <>
15820  struct StructExtends<LatencySubmissionPresentIdNV, SubmitInfo>
15821  {
15822    enum
15823    {
15824      value = true
15825    };
15826  };
15827
15828  template <>
15829  struct StructExtends<LatencySubmissionPresentIdNV, SubmitInfo2>
15830  {
15831    enum
15832    {
15833      value = true
15834    };
15835  };
15836
15837  template <>
15838  struct StructExtends<SwapchainLatencyCreateInfoNV, SwapchainCreateInfoKHR>
15839  {
15840    enum
15841    {
15842      value = true
15843    };
15844  };
15845
15846  template <>
15847  struct StructExtends<LatencySurfaceCapabilitiesNV, SurfaceCapabilities2KHR>
15848  {
15849    enum
15850    {
15851      value = true
15852    };
15853  };
15854
15855  //=== VK_KHR_cooperative_matrix ===
15856  template <>
15857  struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesKHR, PhysicalDeviceFeatures2>
15858  {
15859    enum
15860    {
15861      value = true
15862    };
15863  };
15864
15865  template <>
15866  struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesKHR, DeviceCreateInfo>
15867  {
15868    enum
15869    {
15870      value = true
15871    };
15872  };
15873
15874  template <>
15875  struct StructExtends<PhysicalDeviceCooperativeMatrixPropertiesKHR, PhysicalDeviceProperties2>
15876  {
15877    enum
15878    {
15879      value = true
15880    };
15881  };
15882
15883  //=== VK_QCOM_multiview_per_view_render_areas ===
15884  template <>
15885  struct StructExtends<PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, PhysicalDeviceFeatures2>
15886  {
15887    enum
15888    {
15889      value = true
15890    };
15891  };
15892
15893  template <>
15894  struct StructExtends<PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, DeviceCreateInfo>
15895  {
15896    enum
15897    {
15898      value = true
15899    };
15900  };
15901
15902  template <>
15903  struct StructExtends<MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM, RenderPassBeginInfo>
15904  {
15905    enum
15906    {
15907      value = true
15908    };
15909  };
15910
15911  template <>
15912  struct StructExtends<MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM, RenderingInfo>
15913  {
15914    enum
15915    {
15916      value = true
15917    };
15918  };
15919
15920  //=== VK_KHR_video_maintenance1 ===
15921  template <>
15922  struct StructExtends<PhysicalDeviceVideoMaintenance1FeaturesKHR, PhysicalDeviceFeatures2>
15923  {
15924    enum
15925    {
15926      value = true
15927    };
15928  };
15929
15930  template <>
15931  struct StructExtends<PhysicalDeviceVideoMaintenance1FeaturesKHR, DeviceCreateInfo>
15932  {
15933    enum
15934    {
15935      value = true
15936    };
15937  };
15938
15939  template <>
15940  struct StructExtends<VideoInlineQueryInfoKHR, VideoDecodeInfoKHR>
15941  {
15942    enum
15943    {
15944      value = true
15945    };
15946  };
15947
15948  template <>
15949  struct StructExtends<VideoInlineQueryInfoKHR, VideoEncodeInfoKHR>
15950  {
15951    enum
15952    {
15953      value = true
15954    };
15955  };
15956
15957  //=== VK_NV_per_stage_descriptor_set ===
15958  template <>
15959  struct StructExtends<PhysicalDevicePerStageDescriptorSetFeaturesNV, PhysicalDeviceFeatures2>
15960  {
15961    enum
15962    {
15963      value = true
15964    };
15965  };
15966
15967  template <>
15968  struct StructExtends<PhysicalDevicePerStageDescriptorSetFeaturesNV, DeviceCreateInfo>
15969  {
15970    enum
15971    {
15972      value = true
15973    };
15974  };
15975
15976  //=== VK_QCOM_image_processing2 ===
15977  template <>
15978  struct StructExtends<PhysicalDeviceImageProcessing2FeaturesQCOM, PhysicalDeviceFeatures2>
15979  {
15980    enum
15981    {
15982      value = true
15983    };
15984  };
15985
15986  template <>
15987  struct StructExtends<PhysicalDeviceImageProcessing2FeaturesQCOM, DeviceCreateInfo>
15988  {
15989    enum
15990    {
15991      value = true
15992    };
15993  };
15994
15995  template <>
15996  struct StructExtends<PhysicalDeviceImageProcessing2PropertiesQCOM, PhysicalDeviceProperties2>
15997  {
15998    enum
15999    {
16000      value = true
16001    };
16002  };
16003
16004  template <>
16005  struct StructExtends<SamplerBlockMatchWindowCreateInfoQCOM, SamplerCreateInfo>
16006  {
16007    enum
16008    {
16009      value = true
16010    };
16011  };
16012
16013  //=== VK_QCOM_filter_cubic_weights ===
16014  template <>
16015  struct StructExtends<PhysicalDeviceCubicWeightsFeaturesQCOM, PhysicalDeviceFeatures2>
16016  {
16017    enum
16018    {
16019      value = true
16020    };
16021  };
16022
16023  template <>
16024  struct StructExtends<PhysicalDeviceCubicWeightsFeaturesQCOM, DeviceCreateInfo>
16025  {
16026    enum
16027    {
16028      value = true
16029    };
16030  };
16031
16032  template <>
16033  struct StructExtends<SamplerCubicWeightsCreateInfoQCOM, SamplerCreateInfo>
16034  {
16035    enum
16036    {
16037      value = true
16038    };
16039  };
16040
16041  template <>
16042  struct StructExtends<BlitImageCubicWeightsInfoQCOM, BlitImageInfo2>
16043  {
16044    enum
16045    {
16046      value = true
16047    };
16048  };
16049
16050  //=== VK_QCOM_ycbcr_degamma ===
16051  template <>
16052  struct StructExtends<PhysicalDeviceYcbcrDegammaFeaturesQCOM, PhysicalDeviceFeatures2>
16053  {
16054    enum
16055    {
16056      value = true
16057    };
16058  };
16059
16060  template <>
16061  struct StructExtends<PhysicalDeviceYcbcrDegammaFeaturesQCOM, DeviceCreateInfo>
16062  {
16063    enum
16064    {
16065      value = true
16066    };
16067  };
16068
16069  template <>
16070  struct StructExtends<SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM, SamplerYcbcrConversionCreateInfo>
16071  {
16072    enum
16073    {
16074      value = true
16075    };
16076  };
16077
16078  //=== VK_QCOM_filter_cubic_clamp ===
16079  template <>
16080  struct StructExtends<PhysicalDeviceCubicClampFeaturesQCOM, PhysicalDeviceFeatures2>
16081  {
16082    enum
16083    {
16084      value = true
16085    };
16086  };
16087
16088  template <>
16089  struct StructExtends<PhysicalDeviceCubicClampFeaturesQCOM, DeviceCreateInfo>
16090  {
16091    enum
16092    {
16093      value = true
16094    };
16095  };
16096
16097  //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
16098  template <>
16099  struct StructExtends<PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, PhysicalDeviceFeatures2>
16100  {
16101    enum
16102    {
16103      value = true
16104    };
16105  };
16106
16107  template <>
16108  struct StructExtends<PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, DeviceCreateInfo>
16109  {
16110    enum
16111    {
16112      value = true
16113    };
16114  };
16115
16116  //=== VK_KHR_vertex_attribute_divisor ===
16117  template <>
16118  struct StructExtends<PhysicalDeviceVertexAttributeDivisorPropertiesKHR, PhysicalDeviceProperties2>
16119  {
16120    enum
16121    {
16122      value = true
16123    };
16124  };
16125
16126  template <>
16127  struct StructExtends<PipelineVertexInputDivisorStateCreateInfoKHR, PipelineVertexInputStateCreateInfo>
16128  {
16129    enum
16130    {
16131      value = true
16132    };
16133  };
16134
16135  template <>
16136  struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesKHR, PhysicalDeviceFeatures2>
16137  {
16138    enum
16139    {
16140      value = true
16141    };
16142  };
16143
16144  template <>
16145  struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesKHR, DeviceCreateInfo>
16146  {
16147    enum
16148    {
16149      value = true
16150    };
16151  };
16152
16153#  if defined( VK_USE_PLATFORM_SCREEN_QNX )
16154  //=== VK_QNX_external_memory_screen_buffer ===
16155  template <>
16156  struct StructExtends<ScreenBufferFormatPropertiesQNX, ScreenBufferPropertiesQNX>
16157  {
16158    enum
16159    {
16160      value = true
16161    };
16162  };
16163
16164  template <>
16165  struct StructExtends<ImportScreenBufferInfoQNX, MemoryAllocateInfo>
16166  {
16167    enum
16168    {
16169      value = true
16170    };
16171  };
16172
16173  template <>
16174  struct StructExtends<ExternalFormatQNX, ImageCreateInfo>
16175  {
16176    enum
16177    {
16178      value = true
16179    };
16180  };
16181
16182  template <>
16183  struct StructExtends<ExternalFormatQNX, SamplerYcbcrConversionCreateInfo>
16184  {
16185    enum
16186    {
16187      value = true
16188    };
16189  };
16190
16191  template <>
16192  struct StructExtends<PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX, PhysicalDeviceFeatures2>
16193  {
16194    enum
16195    {
16196      value = true
16197    };
16198  };
16199
16200  template <>
16201  struct StructExtends<PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX, DeviceCreateInfo>
16202  {
16203    enum
16204    {
16205      value = true
16206    };
16207  };
16208#  endif /*VK_USE_PLATFORM_SCREEN_QNX*/
16209
16210  //=== VK_MSFT_layered_driver ===
16211  template <>
16212  struct StructExtends<PhysicalDeviceLayeredDriverPropertiesMSFT, PhysicalDeviceProperties2>
16213  {
16214    enum
16215    {
16216      value = true
16217    };
16218  };
16219
16220  //=== VK_KHR_maintenance6 ===
16221  template <>
16222  struct StructExtends<PhysicalDeviceMaintenance6FeaturesKHR, PhysicalDeviceFeatures2>
16223  {
16224    enum
16225    {
16226      value = true
16227    };
16228  };
16229
16230  template <>
16231  struct StructExtends<PhysicalDeviceMaintenance6FeaturesKHR, DeviceCreateInfo>
16232  {
16233    enum
16234    {
16235      value = true
16236    };
16237  };
16238
16239  template <>
16240  struct StructExtends<PhysicalDeviceMaintenance6PropertiesKHR, PhysicalDeviceProperties2>
16241  {
16242    enum
16243    {
16244      value = true
16245    };
16246  };
16247
16248  template <>
16249  struct StructExtends<BindMemoryStatusKHR, BindBufferMemoryInfo>
16250  {
16251    enum
16252    {
16253      value = true
16254    };
16255  };
16256
16257  template <>
16258  struct StructExtends<BindMemoryStatusKHR, BindImageMemoryInfo>
16259  {
16260    enum
16261    {
16262      value = true
16263    };
16264  };
16265
16266  //=== VK_NV_descriptor_pool_overallocation ===
16267  template <>
16268  struct StructExtends<PhysicalDeviceDescriptorPoolOverallocationFeaturesNV, PhysicalDeviceFeatures2>
16269  {
16270    enum
16271    {
16272      value = true
16273    };
16274  };
16275
16276  template <>
16277  struct StructExtends<PhysicalDeviceDescriptorPoolOverallocationFeaturesNV, DeviceCreateInfo>
16278  {
16279    enum
16280    {
16281      value = true
16282    };
16283  };
16284
16285#endif  // VULKAN_HPP_DISABLE_ENHANCED_MODE
16286
16287#if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
16288  class DynamicLoader
16289  {
16290  public:
16291#  ifdef VULKAN_HPP_NO_EXCEPTIONS
16292    DynamicLoader( std::string const & vulkanLibraryName = {} ) VULKAN_HPP_NOEXCEPT
16293#  else
16294    DynamicLoader( std::string const & vulkanLibraryName = {} )
16295#  endif
16296    {
16297      if ( !vulkanLibraryName.empty() )
16298      {
16299#  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNX__ ) || defined( __Fuchsia__ )
16300        m_library = dlopen( vulkanLibraryName.c_str(), RTLD_NOW | RTLD_LOCAL );
16301#  elif defined( _WIN32 )
16302        m_library = ::LoadLibraryA( vulkanLibraryName.c_str() );
16303#  else
16304#    error unsupported platform
16305#  endif
16306      }
16307      else
16308      {
16309#  if defined( __unix__ ) || defined( __QNX__ ) || defined( __Fuchsia__ )
16310        m_library = dlopen( "libvulkan.so", RTLD_NOW | RTLD_LOCAL );
16311        if ( m_library == nullptr )
16312        {
16313          m_library = dlopen( "libvulkan.so.1", RTLD_NOW | RTLD_LOCAL );
16314        }
16315#  elif defined( __APPLE__ )
16316        m_library = dlopen( "libvulkan.dylib", RTLD_NOW | RTLD_LOCAL );
16317        if ( m_library == nullptr )
16318        {
16319          m_library = dlopen( "libvulkan.1.dylib", RTLD_NOW | RTLD_LOCAL );
16320        }
16321#  elif defined( _WIN32 )
16322        m_library = ::LoadLibraryA( "vulkan-1.dll" );
16323#  else
16324#    error unsupported platform
16325#  endif
16326      }
16327
16328#  ifndef VULKAN_HPP_NO_EXCEPTIONS
16329      if ( m_library == nullptr )
16330      {
16331        // NOTE there should be an InitializationFailedError, but msvc insists on the symbol does not exist within the scope of this function.
16332        throw std::runtime_error( "Failed to load vulkan library!" );
16333      }
16334#  endif
16335    }
16336
16337    DynamicLoader( DynamicLoader const & ) = delete;
16338
16339    DynamicLoader( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT : m_library( other.m_library )
16340    {
16341      other.m_library = nullptr;
16342    }
16343
16344    DynamicLoader & operator=( DynamicLoader const & ) = delete;
16345
16346    DynamicLoader & operator=( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT
16347    {
16348      std::swap( m_library, other.m_library );
16349      return *this;
16350    }
16351
16352    ~DynamicLoader() VULKAN_HPP_NOEXCEPT
16353    {
16354      if ( m_library )
16355      {
16356#  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNX__ ) || defined( __Fuchsia__ )
16357        dlclose( m_library );
16358#  elif defined( _WIN32 )
16359        ::FreeLibrary( m_library );
16360#  else
16361#    error unsupported platform
16362#  endif
16363      }
16364    }
16365
16366    template <typename T>
16367    T getProcAddress( const char * function ) const VULKAN_HPP_NOEXCEPT
16368    {
16369#  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNX__ ) || defined( __Fuchsia__ )
16370      return (T)dlsym( m_library, function );
16371#  elif defined( _WIN32 )
16372      return ( T )::GetProcAddress( m_library, function );
16373#  else
16374#    error unsupported platform
16375#  endif
16376    }
16377
16378    bool success() const VULKAN_HPP_NOEXCEPT
16379    {
16380      return m_library != nullptr;
16381    }
16382
16383  private:
16384#  if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNX__ ) || defined( __Fuchsia__ )
16385    void * m_library;
16386#  elif defined( _WIN32 )
16387    ::HINSTANCE m_library;
16388#  else
16389#    error unsupported platform
16390#  endif
16391  };
16392#endif
16393
16394  using PFN_dummy = void ( * )();
16395
16396  class DispatchLoaderDynamic : public DispatchLoaderBase
16397  {
16398  public:
16399    //=== VK_VERSION_1_0 ===
16400    PFN_vkCreateInstance                               vkCreateInstance                               = 0;
16401    PFN_vkDestroyInstance                              vkDestroyInstance                              = 0;
16402    PFN_vkEnumeratePhysicalDevices                     vkEnumeratePhysicalDevices                     = 0;
16403    PFN_vkGetPhysicalDeviceFeatures                    vkGetPhysicalDeviceFeatures                    = 0;
16404    PFN_vkGetPhysicalDeviceFormatProperties            vkGetPhysicalDeviceFormatProperties            = 0;
16405    PFN_vkGetPhysicalDeviceImageFormatProperties       vkGetPhysicalDeviceImageFormatProperties       = 0;
16406    PFN_vkGetPhysicalDeviceProperties                  vkGetPhysicalDeviceProperties                  = 0;
16407    PFN_vkGetPhysicalDeviceQueueFamilyProperties       vkGetPhysicalDeviceQueueFamilyProperties       = 0;
16408    PFN_vkGetPhysicalDeviceMemoryProperties            vkGetPhysicalDeviceMemoryProperties            = 0;
16409    PFN_vkGetInstanceProcAddr                          vkGetInstanceProcAddr                          = 0;
16410    PFN_vkGetDeviceProcAddr                            vkGetDeviceProcAddr                            = 0;
16411    PFN_vkCreateDevice                                 vkCreateDevice                                 = 0;
16412    PFN_vkDestroyDevice                                vkDestroyDevice                                = 0;
16413    PFN_vkEnumerateInstanceExtensionProperties         vkEnumerateInstanceExtensionProperties         = 0;
16414    PFN_vkEnumerateDeviceExtensionProperties           vkEnumerateDeviceExtensionProperties           = 0;
16415    PFN_vkEnumerateInstanceLayerProperties             vkEnumerateInstanceLayerProperties             = 0;
16416    PFN_vkEnumerateDeviceLayerProperties               vkEnumerateDeviceLayerProperties               = 0;
16417    PFN_vkGetDeviceQueue                               vkGetDeviceQueue                               = 0;
16418    PFN_vkQueueSubmit                                  vkQueueSubmit                                  = 0;
16419    PFN_vkQueueWaitIdle                                vkQueueWaitIdle                                = 0;
16420    PFN_vkDeviceWaitIdle                               vkDeviceWaitIdle                               = 0;
16421    PFN_vkAllocateMemory                               vkAllocateMemory                               = 0;
16422    PFN_vkFreeMemory                                   vkFreeMemory                                   = 0;
16423    PFN_vkMapMemory                                    vkMapMemory                                    = 0;
16424    PFN_vkUnmapMemory                                  vkUnmapMemory                                  = 0;
16425    PFN_vkFlushMappedMemoryRanges                      vkFlushMappedMemoryRanges                      = 0;
16426    PFN_vkInvalidateMappedMemoryRanges                 vkInvalidateMappedMemoryRanges                 = 0;
16427    PFN_vkGetDeviceMemoryCommitment                    vkGetDeviceMemoryCommitment                    = 0;
16428    PFN_vkBindBufferMemory                             vkBindBufferMemory                             = 0;
16429    PFN_vkBindImageMemory                              vkBindImageMemory                              = 0;
16430    PFN_vkGetBufferMemoryRequirements                  vkGetBufferMemoryRequirements                  = 0;
16431    PFN_vkGetImageMemoryRequirements                   vkGetImageMemoryRequirements                   = 0;
16432    PFN_vkGetImageSparseMemoryRequirements             vkGetImageSparseMemoryRequirements             = 0;
16433    PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties = 0;
16434    PFN_vkQueueBindSparse                              vkQueueBindSparse                              = 0;
16435    PFN_vkCreateFence                                  vkCreateFence                                  = 0;
16436    PFN_vkDestroyFence                                 vkDestroyFence                                 = 0;
16437    PFN_vkResetFences                                  vkResetFences                                  = 0;
16438    PFN_vkGetFenceStatus                               vkGetFenceStatus                               = 0;
16439    PFN_vkWaitForFences                                vkWaitForFences                                = 0;
16440    PFN_vkCreateSemaphore                              vkCreateSemaphore                              = 0;
16441    PFN_vkDestroySemaphore                             vkDestroySemaphore                             = 0;
16442    PFN_vkCreateEvent                                  vkCreateEvent                                  = 0;
16443    PFN_vkDestroyEvent                                 vkDestroyEvent                                 = 0;
16444    PFN_vkGetEventStatus                               vkGetEventStatus                               = 0;
16445    PFN_vkSetEvent                                     vkSetEvent                                     = 0;
16446    PFN_vkResetEvent                                   vkResetEvent                                   = 0;
16447    PFN_vkCreateQueryPool                              vkCreateQueryPool                              = 0;
16448    PFN_vkDestroyQueryPool                             vkDestroyQueryPool                             = 0;
16449    PFN_vkGetQueryPoolResults                          vkGetQueryPoolResults                          = 0;
16450    PFN_vkCreateBuffer                                 vkCreateBuffer                                 = 0;
16451    PFN_vkDestroyBuffer                                vkDestroyBuffer                                = 0;
16452    PFN_vkCreateBufferView                             vkCreateBufferView                             = 0;
16453    PFN_vkDestroyBufferView                            vkDestroyBufferView                            = 0;
16454    PFN_vkCreateImage                                  vkCreateImage                                  = 0;
16455    PFN_vkDestroyImage                                 vkDestroyImage                                 = 0;
16456    PFN_vkGetImageSubresourceLayout                    vkGetImageSubresourceLayout                    = 0;
16457    PFN_vkCreateImageView                              vkCreateImageView                              = 0;
16458    PFN_vkDestroyImageView                             vkDestroyImageView                             = 0;
16459    PFN_vkCreateShaderModule                           vkCreateShaderModule                           = 0;
16460    PFN_vkDestroyShaderModule                          vkDestroyShaderModule                          = 0;
16461    PFN_vkCreatePipelineCache                          vkCreatePipelineCache                          = 0;
16462    PFN_vkDestroyPipelineCache                         vkDestroyPipelineCache                         = 0;
16463    PFN_vkGetPipelineCacheData                         vkGetPipelineCacheData                         = 0;
16464    PFN_vkMergePipelineCaches                          vkMergePipelineCaches                          = 0;
16465    PFN_vkCreateGraphicsPipelines                      vkCreateGraphicsPipelines                      = 0;
16466    PFN_vkCreateComputePipelines                       vkCreateComputePipelines                       = 0;
16467    PFN_vkDestroyPipeline                              vkDestroyPipeline                              = 0;
16468    PFN_vkCreatePipelineLayout                         vkCreatePipelineLayout                         = 0;
16469    PFN_vkDestroyPipelineLayout                        vkDestroyPipelineLayout                        = 0;
16470    PFN_vkCreateSampler                                vkCreateSampler                                = 0;
16471    PFN_vkDestroySampler                               vkDestroySampler                               = 0;
16472    PFN_vkCreateDescriptorSetLayout                    vkCreateDescriptorSetLayout                    = 0;
16473    PFN_vkDestroyDescriptorSetLayout                   vkDestroyDescriptorSetLayout                   = 0;
16474    PFN_vkCreateDescriptorPool                         vkCreateDescriptorPool                         = 0;
16475    PFN_vkDestroyDescriptorPool                        vkDestroyDescriptorPool                        = 0;
16476    PFN_vkResetDescriptorPool                          vkResetDescriptorPool                          = 0;
16477    PFN_vkAllocateDescriptorSets                       vkAllocateDescriptorSets                       = 0;
16478    PFN_vkFreeDescriptorSets                           vkFreeDescriptorSets                           = 0;
16479    PFN_vkUpdateDescriptorSets                         vkUpdateDescriptorSets                         = 0;
16480    PFN_vkCreateFramebuffer                            vkCreateFramebuffer                            = 0;
16481    PFN_vkDestroyFramebuffer                           vkDestroyFramebuffer                           = 0;
16482    PFN_vkCreateRenderPass                             vkCreateRenderPass                             = 0;
16483    PFN_vkDestroyRenderPass                            vkDestroyRenderPass                            = 0;
16484    PFN_vkGetRenderAreaGranularity                     vkGetRenderAreaGranularity                     = 0;
16485    PFN_vkCreateCommandPool                            vkCreateCommandPool                            = 0;
16486    PFN_vkDestroyCommandPool                           vkDestroyCommandPool                           = 0;
16487    PFN_vkResetCommandPool                             vkResetCommandPool                             = 0;
16488    PFN_vkAllocateCommandBuffers                       vkAllocateCommandBuffers                       = 0;
16489    PFN_vkFreeCommandBuffers                           vkFreeCommandBuffers                           = 0;
16490    PFN_vkBeginCommandBuffer                           vkBeginCommandBuffer                           = 0;
16491    PFN_vkEndCommandBuffer                             vkEndCommandBuffer                             = 0;
16492    PFN_vkResetCommandBuffer                           vkResetCommandBuffer                           = 0;
16493    PFN_vkCmdBindPipeline                              vkCmdBindPipeline                              = 0;
16494    PFN_vkCmdSetViewport                               vkCmdSetViewport                               = 0;
16495    PFN_vkCmdSetScissor                                vkCmdSetScissor                                = 0;
16496    PFN_vkCmdSetLineWidth                              vkCmdSetLineWidth                              = 0;
16497    PFN_vkCmdSetDepthBias                              vkCmdSetDepthBias                              = 0;
16498    PFN_vkCmdSetBlendConstants                         vkCmdSetBlendConstants                         = 0;
16499    PFN_vkCmdSetDepthBounds                            vkCmdSetDepthBounds                            = 0;
16500    PFN_vkCmdSetStencilCompareMask                     vkCmdSetStencilCompareMask                     = 0;
16501    PFN_vkCmdSetStencilWriteMask                       vkCmdSetStencilWriteMask                       = 0;
16502    PFN_vkCmdSetStencilReference                       vkCmdSetStencilReference                       = 0;
16503    PFN_vkCmdBindDescriptorSets                        vkCmdBindDescriptorSets                        = 0;
16504    PFN_vkCmdBindIndexBuffer                           vkCmdBindIndexBuffer                           = 0;
16505    PFN_vkCmdBindVertexBuffers                         vkCmdBindVertexBuffers                         = 0;
16506    PFN_vkCmdDraw                                      vkCmdDraw                                      = 0;
16507    PFN_vkCmdDrawIndexed                               vkCmdDrawIndexed                               = 0;
16508    PFN_vkCmdDrawIndirect                              vkCmdDrawIndirect                              = 0;
16509    PFN_vkCmdDrawIndexedIndirect                       vkCmdDrawIndexedIndirect                       = 0;
16510    PFN_vkCmdDispatch                                  vkCmdDispatch                                  = 0;
16511    PFN_vkCmdDispatchIndirect                          vkCmdDispatchIndirect                          = 0;
16512    PFN_vkCmdCopyBuffer                                vkCmdCopyBuffer                                = 0;
16513    PFN_vkCmdCopyImage                                 vkCmdCopyImage                                 = 0;
16514    PFN_vkCmdBlitImage                                 vkCmdBlitImage                                 = 0;
16515    PFN_vkCmdCopyBufferToImage                         vkCmdCopyBufferToImage                         = 0;
16516    PFN_vkCmdCopyImageToBuffer                         vkCmdCopyImageToBuffer                         = 0;
16517    PFN_vkCmdUpdateBuffer                              vkCmdUpdateBuffer                              = 0;
16518    PFN_vkCmdFillBuffer                                vkCmdFillBuffer                                = 0;
16519    PFN_vkCmdClearColorImage                           vkCmdClearColorImage                           = 0;
16520    PFN_vkCmdClearDepthStencilImage                    vkCmdClearDepthStencilImage                    = 0;
16521    PFN_vkCmdClearAttachments                          vkCmdClearAttachments                          = 0;
16522    PFN_vkCmdResolveImage                              vkCmdResolveImage                              = 0;
16523    PFN_vkCmdSetEvent                                  vkCmdSetEvent                                  = 0;
16524    PFN_vkCmdResetEvent                                vkCmdResetEvent                                = 0;
16525    PFN_vkCmdWaitEvents                                vkCmdWaitEvents                                = 0;
16526    PFN_vkCmdPipelineBarrier                           vkCmdPipelineBarrier                           = 0;
16527    PFN_vkCmdBeginQuery                                vkCmdBeginQuery                                = 0;
16528    PFN_vkCmdEndQuery                                  vkCmdEndQuery                                  = 0;
16529    PFN_vkCmdResetQueryPool                            vkCmdResetQueryPool                            = 0;
16530    PFN_vkCmdWriteTimestamp                            vkCmdWriteTimestamp                            = 0;
16531    PFN_vkCmdCopyQueryPoolResults                      vkCmdCopyQueryPoolResults                      = 0;
16532    PFN_vkCmdPushConstants                             vkCmdPushConstants                             = 0;
16533    PFN_vkCmdBeginRenderPass                           vkCmdBeginRenderPass                           = 0;
16534    PFN_vkCmdNextSubpass                               vkCmdNextSubpass                               = 0;
16535    PFN_vkCmdEndRenderPass                             vkCmdEndRenderPass                             = 0;
16536    PFN_vkCmdExecuteCommands                           vkCmdExecuteCommands                           = 0;
16537
16538    //=== VK_VERSION_1_1 ===
16539    PFN_vkEnumerateInstanceVersion                      vkEnumerateInstanceVersion                      = 0;
16540    PFN_vkBindBufferMemory2                             vkBindBufferMemory2                             = 0;
16541    PFN_vkBindImageMemory2                              vkBindImageMemory2                              = 0;
16542    PFN_vkGetDeviceGroupPeerMemoryFeatures              vkGetDeviceGroupPeerMemoryFeatures              = 0;
16543    PFN_vkCmdSetDeviceMask                              vkCmdSetDeviceMask                              = 0;
16544    PFN_vkCmdDispatchBase                               vkCmdDispatchBase                               = 0;
16545    PFN_vkEnumeratePhysicalDeviceGroups                 vkEnumeratePhysicalDeviceGroups                 = 0;
16546    PFN_vkGetImageMemoryRequirements2                   vkGetImageMemoryRequirements2                   = 0;
16547    PFN_vkGetBufferMemoryRequirements2                  vkGetBufferMemoryRequirements2                  = 0;
16548    PFN_vkGetImageSparseMemoryRequirements2             vkGetImageSparseMemoryRequirements2             = 0;
16549    PFN_vkGetPhysicalDeviceFeatures2                    vkGetPhysicalDeviceFeatures2                    = 0;
16550    PFN_vkGetPhysicalDeviceProperties2                  vkGetPhysicalDeviceProperties2                  = 0;
16551    PFN_vkGetPhysicalDeviceFormatProperties2            vkGetPhysicalDeviceFormatProperties2            = 0;
16552    PFN_vkGetPhysicalDeviceImageFormatProperties2       vkGetPhysicalDeviceImageFormatProperties2       = 0;
16553    PFN_vkGetPhysicalDeviceQueueFamilyProperties2       vkGetPhysicalDeviceQueueFamilyProperties2       = 0;
16554    PFN_vkGetPhysicalDeviceMemoryProperties2            vkGetPhysicalDeviceMemoryProperties2            = 0;
16555    PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 = 0;
16556    PFN_vkTrimCommandPool                               vkTrimCommandPool                               = 0;
16557    PFN_vkGetDeviceQueue2                               vkGetDeviceQueue2                               = 0;
16558    PFN_vkCreateSamplerYcbcrConversion                  vkCreateSamplerYcbcrConversion                  = 0;
16559    PFN_vkDestroySamplerYcbcrConversion                 vkDestroySamplerYcbcrConversion                 = 0;
16560    PFN_vkCreateDescriptorUpdateTemplate                vkCreateDescriptorUpdateTemplate                = 0;
16561    PFN_vkDestroyDescriptorUpdateTemplate               vkDestroyDescriptorUpdateTemplate               = 0;
16562    PFN_vkUpdateDescriptorSetWithTemplate               vkUpdateDescriptorSetWithTemplate               = 0;
16563    PFN_vkGetPhysicalDeviceExternalBufferProperties     vkGetPhysicalDeviceExternalBufferProperties     = 0;
16564    PFN_vkGetPhysicalDeviceExternalFenceProperties      vkGetPhysicalDeviceExternalFenceProperties      = 0;
16565    PFN_vkGetPhysicalDeviceExternalSemaphoreProperties  vkGetPhysicalDeviceExternalSemaphoreProperties  = 0;
16566    PFN_vkGetDescriptorSetLayoutSupport                 vkGetDescriptorSetLayoutSupport                 = 0;
16567
16568    //=== VK_VERSION_1_2 ===
16569    PFN_vkCmdDrawIndirectCount                vkCmdDrawIndirectCount                = 0;
16570    PFN_vkCmdDrawIndexedIndirectCount         vkCmdDrawIndexedIndirectCount         = 0;
16571    PFN_vkCreateRenderPass2                   vkCreateRenderPass2                   = 0;
16572    PFN_vkCmdBeginRenderPass2                 vkCmdBeginRenderPass2                 = 0;
16573    PFN_vkCmdNextSubpass2                     vkCmdNextSubpass2                     = 0;
16574    PFN_vkCmdEndRenderPass2                   vkCmdEndRenderPass2                   = 0;
16575    PFN_vkResetQueryPool                      vkResetQueryPool                      = 0;
16576    PFN_vkGetSemaphoreCounterValue            vkGetSemaphoreCounterValue            = 0;
16577    PFN_vkWaitSemaphores                      vkWaitSemaphores                      = 0;
16578    PFN_vkSignalSemaphore                     vkSignalSemaphore                     = 0;
16579    PFN_vkGetBufferDeviceAddress              vkGetBufferDeviceAddress              = 0;
16580    PFN_vkGetBufferOpaqueCaptureAddress       vkGetBufferOpaqueCaptureAddress       = 0;
16581    PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress = 0;
16582
16583    //=== VK_VERSION_1_3 ===
16584    PFN_vkGetPhysicalDeviceToolProperties        vkGetPhysicalDeviceToolProperties        = 0;
16585    PFN_vkCreatePrivateDataSlot                  vkCreatePrivateDataSlot                  = 0;
16586    PFN_vkDestroyPrivateDataSlot                 vkDestroyPrivateDataSlot                 = 0;
16587    PFN_vkSetPrivateData                         vkSetPrivateData                         = 0;
16588    PFN_vkGetPrivateData                         vkGetPrivateData                         = 0;
16589    PFN_vkCmdSetEvent2                           vkCmdSetEvent2                           = 0;
16590    PFN_vkCmdResetEvent2                         vkCmdResetEvent2                         = 0;
16591    PFN_vkCmdWaitEvents2                         vkCmdWaitEvents2                         = 0;
16592    PFN_vkCmdPipelineBarrier2                    vkCmdPipelineBarrier2                    = 0;
16593    PFN_vkCmdWriteTimestamp2                     vkCmdWriteTimestamp2                     = 0;
16594    PFN_vkQueueSubmit2                           vkQueueSubmit2                           = 0;
16595    PFN_vkCmdCopyBuffer2                         vkCmdCopyBuffer2                         = 0;
16596    PFN_vkCmdCopyImage2                          vkCmdCopyImage2                          = 0;
16597    PFN_vkCmdCopyBufferToImage2                  vkCmdCopyBufferToImage2                  = 0;
16598    PFN_vkCmdCopyImageToBuffer2                  vkCmdCopyImageToBuffer2                  = 0;
16599    PFN_vkCmdBlitImage2                          vkCmdBlitImage2                          = 0;
16600    PFN_vkCmdResolveImage2                       vkCmdResolveImage2                       = 0;
16601    PFN_vkCmdBeginRendering                      vkCmdBeginRendering                      = 0;
16602    PFN_vkCmdEndRendering                        vkCmdEndRendering                        = 0;
16603    PFN_vkCmdSetCullMode                         vkCmdSetCullMode                         = 0;
16604    PFN_vkCmdSetFrontFace                        vkCmdSetFrontFace                        = 0;
16605    PFN_vkCmdSetPrimitiveTopology                vkCmdSetPrimitiveTopology                = 0;
16606    PFN_vkCmdSetViewportWithCount                vkCmdSetViewportWithCount                = 0;
16607    PFN_vkCmdSetScissorWithCount                 vkCmdSetScissorWithCount                 = 0;
16608    PFN_vkCmdBindVertexBuffers2                  vkCmdBindVertexBuffers2                  = 0;
16609    PFN_vkCmdSetDepthTestEnable                  vkCmdSetDepthTestEnable                  = 0;
16610    PFN_vkCmdSetDepthWriteEnable                 vkCmdSetDepthWriteEnable                 = 0;
16611    PFN_vkCmdSetDepthCompareOp                   vkCmdSetDepthCompareOp                   = 0;
16612    PFN_vkCmdSetDepthBoundsTestEnable            vkCmdSetDepthBoundsTestEnable            = 0;
16613    PFN_vkCmdSetStencilTestEnable                vkCmdSetStencilTestEnable                = 0;
16614    PFN_vkCmdSetStencilOp                        vkCmdSetStencilOp                        = 0;
16615    PFN_vkCmdSetRasterizerDiscardEnable          vkCmdSetRasterizerDiscardEnable          = 0;
16616    PFN_vkCmdSetDepthBiasEnable                  vkCmdSetDepthBiasEnable                  = 0;
16617    PFN_vkCmdSetPrimitiveRestartEnable           vkCmdSetPrimitiveRestartEnable           = 0;
16618    PFN_vkGetDeviceBufferMemoryRequirements      vkGetDeviceBufferMemoryRequirements      = 0;
16619    PFN_vkGetDeviceImageMemoryRequirements       vkGetDeviceImageMemoryRequirements       = 0;
16620    PFN_vkGetDeviceImageSparseMemoryRequirements vkGetDeviceImageSparseMemoryRequirements = 0;
16621
16622    //=== VK_KHR_surface ===
16623    PFN_vkDestroySurfaceKHR                       vkDestroySurfaceKHR                       = 0;
16624    PFN_vkGetPhysicalDeviceSurfaceSupportKHR      vkGetPhysicalDeviceSurfaceSupportKHR      = 0;
16625    PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0;
16626    PFN_vkGetPhysicalDeviceSurfaceFormatsKHR      vkGetPhysicalDeviceSurfaceFormatsKHR      = 0;
16627    PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0;
16628
16629    //=== VK_KHR_swapchain ===
16630    PFN_vkCreateSwapchainKHR                    vkCreateSwapchainKHR                    = 0;
16631    PFN_vkDestroySwapchainKHR                   vkDestroySwapchainKHR                   = 0;
16632    PFN_vkGetSwapchainImagesKHR                 vkGetSwapchainImagesKHR                 = 0;
16633    PFN_vkAcquireNextImageKHR                   vkAcquireNextImageKHR                   = 0;
16634    PFN_vkQueuePresentKHR                       vkQueuePresentKHR                       = 0;
16635    PFN_vkGetDeviceGroupPresentCapabilitiesKHR  vkGetDeviceGroupPresentCapabilitiesKHR  = 0;
16636    PFN_vkGetDeviceGroupSurfacePresentModesKHR  vkGetDeviceGroupSurfacePresentModesKHR  = 0;
16637    PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0;
16638    PFN_vkAcquireNextImage2KHR                  vkAcquireNextImage2KHR                  = 0;
16639
16640    //=== VK_KHR_display ===
16641    PFN_vkGetPhysicalDeviceDisplayPropertiesKHR      vkGetPhysicalDeviceDisplayPropertiesKHR      = 0;
16642    PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0;
16643    PFN_vkGetDisplayPlaneSupportedDisplaysKHR        vkGetDisplayPlaneSupportedDisplaysKHR        = 0;
16644    PFN_vkGetDisplayModePropertiesKHR                vkGetDisplayModePropertiesKHR                = 0;
16645    PFN_vkCreateDisplayModeKHR                       vkCreateDisplayModeKHR                       = 0;
16646    PFN_vkGetDisplayPlaneCapabilitiesKHR             vkGetDisplayPlaneCapabilitiesKHR             = 0;
16647    PFN_vkCreateDisplayPlaneSurfaceKHR               vkCreateDisplayPlaneSurfaceKHR               = 0;
16648
16649    //=== VK_KHR_display_swapchain ===
16650    PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0;
16651
16652#if defined( VK_USE_PLATFORM_XLIB_KHR )
16653    //=== VK_KHR_xlib_surface ===
16654    PFN_vkCreateXlibSurfaceKHR                        vkCreateXlibSurfaceKHR                        = 0;
16655    PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR = 0;
16656#else
16657    PFN_dummy vkCreateXlibSurfaceKHR_placeholder                            = 0;
16658    PFN_dummy vkGetPhysicalDeviceXlibPresentationSupportKHR_placeholder     = 0;
16659#endif /*VK_USE_PLATFORM_XLIB_KHR*/
16660
16661#if defined( VK_USE_PLATFORM_XCB_KHR )
16662    //=== VK_KHR_xcb_surface ===
16663    PFN_vkCreateXcbSurfaceKHR                        vkCreateXcbSurfaceKHR                        = 0;
16664    PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR = 0;
16665#else
16666    PFN_dummy vkCreateXcbSurfaceKHR_placeholder                             = 0;
16667    PFN_dummy vkGetPhysicalDeviceXcbPresentationSupportKHR_placeholder      = 0;
16668#endif /*VK_USE_PLATFORM_XCB_KHR*/
16669
16670#if defined( VK_USE_PLATFORM_WAYLAND_KHR )
16671    //=== VK_KHR_wayland_surface ===
16672    PFN_vkCreateWaylandSurfaceKHR                        vkCreateWaylandSurfaceKHR                        = 0;
16673    PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0;
16674#else
16675    PFN_dummy vkCreateWaylandSurfaceKHR_placeholder                         = 0;
16676    PFN_dummy vkGetPhysicalDeviceWaylandPresentationSupportKHR_placeholder  = 0;
16677#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
16678
16679#if defined( VK_USE_PLATFORM_ANDROID_KHR )
16680    //=== VK_KHR_android_surface ===
16681    PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0;
16682#else
16683    PFN_dummy vkCreateAndroidSurfaceKHR_placeholder                         = 0;
16684#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
16685
16686#if defined( VK_USE_PLATFORM_WIN32_KHR )
16687    //=== VK_KHR_win32_surface ===
16688    PFN_vkCreateWin32SurfaceKHR                        vkCreateWin32SurfaceKHR                        = 0;
16689    PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR = 0;
16690#else
16691    PFN_dummy vkCreateWin32SurfaceKHR_placeholder                           = 0;
16692    PFN_dummy vkGetPhysicalDeviceWin32PresentationSupportKHR_placeholder    = 0;
16693#endif /*VK_USE_PLATFORM_WIN32_KHR*/
16694
16695#if defined( VK_USE_PLATFORM_OHOS )
16696    //=== VK_OHOS_surface ===
16697    PFN_vkCreateSurfaceOHOS vkCreateSurfaceOHOS = 0;
16698#else
16699    PFN_dummy vkCreateSurfaceOHOS_placeholder              = 0;
16700#endif /*VK_USE_PLATFORM_OHOS*/
16701
16702    //=== VK_EXT_debug_report ===
16703    PFN_vkCreateDebugReportCallbackEXT  vkCreateDebugReportCallbackEXT  = 0;
16704    PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0;
16705    PFN_vkDebugReportMessageEXT         vkDebugReportMessageEXT         = 0;
16706
16707    //=== VK_EXT_debug_marker ===
16708    PFN_vkDebugMarkerSetObjectTagEXT  vkDebugMarkerSetObjectTagEXT  = 0;
16709    PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0;
16710    PFN_vkCmdDebugMarkerBeginEXT      vkCmdDebugMarkerBeginEXT      = 0;
16711    PFN_vkCmdDebugMarkerEndEXT        vkCmdDebugMarkerEndEXT        = 0;
16712    PFN_vkCmdDebugMarkerInsertEXT     vkCmdDebugMarkerInsertEXT     = 0;
16713
16714    //=== VK_KHR_video_queue ===
16715    PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR     vkGetPhysicalDeviceVideoCapabilitiesKHR     = 0;
16716    PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR = 0;
16717    PFN_vkCreateVideoSessionKHR                     vkCreateVideoSessionKHR                     = 0;
16718    PFN_vkDestroyVideoSessionKHR                    vkDestroyVideoSessionKHR                    = 0;
16719    PFN_vkGetVideoSessionMemoryRequirementsKHR      vkGetVideoSessionMemoryRequirementsKHR      = 0;
16720    PFN_vkBindVideoSessionMemoryKHR                 vkBindVideoSessionMemoryKHR                 = 0;
16721    PFN_vkCreateVideoSessionParametersKHR           vkCreateVideoSessionParametersKHR           = 0;
16722    PFN_vkUpdateVideoSessionParametersKHR           vkUpdateVideoSessionParametersKHR           = 0;
16723    PFN_vkDestroyVideoSessionParametersKHR          vkDestroyVideoSessionParametersKHR          = 0;
16724    PFN_vkCmdBeginVideoCodingKHR                    vkCmdBeginVideoCodingKHR                    = 0;
16725    PFN_vkCmdEndVideoCodingKHR                      vkCmdEndVideoCodingKHR                      = 0;
16726    PFN_vkCmdControlVideoCodingKHR                  vkCmdControlVideoCodingKHR                  = 0;
16727
16728    //=== VK_KHR_video_decode_queue ===
16729    PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR = 0;
16730
16731    //=== VK_EXT_transform_feedback ===
16732    PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0;
16733    PFN_vkCmdBeginTransformFeedbackEXT       vkCmdBeginTransformFeedbackEXT       = 0;
16734    PFN_vkCmdEndTransformFeedbackEXT         vkCmdEndTransformFeedbackEXT         = 0;
16735    PFN_vkCmdBeginQueryIndexedEXT            vkCmdBeginQueryIndexedEXT            = 0;
16736    PFN_vkCmdEndQueryIndexedEXT              vkCmdEndQueryIndexedEXT              = 0;
16737    PFN_vkCmdDrawIndirectByteCountEXT        vkCmdDrawIndirectByteCountEXT        = 0;
16738
16739    //=== VK_NVX_binary_import ===
16740    PFN_vkCreateCuModuleNVX    vkCreateCuModuleNVX    = 0;
16741    PFN_vkCreateCuFunctionNVX  vkCreateCuFunctionNVX  = 0;
16742    PFN_vkDestroyCuModuleNVX   vkDestroyCuModuleNVX   = 0;
16743    PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX = 0;
16744    PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX = 0;
16745
16746    //=== VK_NVX_image_view_handle ===
16747    PFN_vkGetImageViewHandleNVX  vkGetImageViewHandleNVX  = 0;
16748    PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX = 0;
16749
16750    //=== VK_AMD_draw_indirect_count ===
16751    PFN_vkCmdDrawIndirectCountAMD        vkCmdDrawIndirectCountAMD        = 0;
16752    PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD = 0;
16753
16754    //=== VK_AMD_shader_info ===
16755    PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0;
16756
16757    //=== VK_KHR_dynamic_rendering ===
16758    PFN_vkCmdBeginRenderingKHR vkCmdBeginRenderingKHR = 0;
16759    PFN_vkCmdEndRenderingKHR   vkCmdEndRenderingKHR   = 0;
16760
16761#if defined( VK_USE_PLATFORM_GGP )
16762    //=== VK_GGP_stream_descriptor_surface ===
16763    PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP = 0;
16764#else
16765    PFN_dummy vkCreateStreamDescriptorSurfaceGGP_placeholder                = 0;
16766#endif /*VK_USE_PLATFORM_GGP*/
16767
16768    //=== VK_NV_external_memory_capabilities ===
16769    PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0;
16770
16771#if defined( VK_USE_PLATFORM_WIN32_KHR )
16772    //=== VK_NV_external_memory_win32 ===
16773    PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0;
16774#else
16775    PFN_dummy vkGetMemoryWin32HandleNV_placeholder                          = 0;
16776#endif /*VK_USE_PLATFORM_WIN32_KHR*/
16777
16778    //=== VK_KHR_get_physical_device_properties2 ===
16779    PFN_vkGetPhysicalDeviceFeatures2KHR                    vkGetPhysicalDeviceFeatures2KHR                    = 0;
16780    PFN_vkGetPhysicalDeviceProperties2KHR                  vkGetPhysicalDeviceProperties2KHR                  = 0;
16781    PFN_vkGetPhysicalDeviceFormatProperties2KHR            vkGetPhysicalDeviceFormatProperties2KHR            = 0;
16782    PFN_vkGetPhysicalDeviceImageFormatProperties2KHR       vkGetPhysicalDeviceImageFormatProperties2KHR       = 0;
16783    PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR       vkGetPhysicalDeviceQueueFamilyProperties2KHR       = 0;
16784    PFN_vkGetPhysicalDeviceMemoryProperties2KHR            vkGetPhysicalDeviceMemoryProperties2KHR            = 0;
16785    PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 0;
16786
16787    //=== VK_KHR_device_group ===
16788    PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0;
16789    PFN_vkCmdSetDeviceMaskKHR                 vkCmdSetDeviceMaskKHR                 = 0;
16790    PFN_vkCmdDispatchBaseKHR                  vkCmdDispatchBaseKHR                  = 0;
16791
16792#if defined( VK_USE_PLATFORM_VI_NN )
16793    //=== VK_NN_vi_surface ===
16794    PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN = 0;
16795#else
16796    PFN_dummy vkCreateViSurfaceNN_placeholder                               = 0;
16797#endif /*VK_USE_PLATFORM_VI_NN*/
16798
16799    //=== VK_KHR_maintenance1 ===
16800    PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0;
16801
16802    //=== VK_KHR_device_group_creation ===
16803    PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0;
16804
16805    //=== VK_KHR_external_memory_capabilities ===
16806    PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0;
16807
16808#if defined( VK_USE_PLATFORM_WIN32_KHR )
16809    //=== VK_KHR_external_memory_win32 ===
16810    PFN_vkGetMemoryWin32HandleKHR           vkGetMemoryWin32HandleKHR           = 0;
16811    PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR = 0;
16812#else
16813    PFN_dummy vkGetMemoryWin32HandleKHR_placeholder                         = 0;
16814    PFN_dummy vkGetMemoryWin32HandlePropertiesKHR_placeholder               = 0;
16815#endif /*VK_USE_PLATFORM_WIN32_KHR*/
16816
16817    //=== VK_KHR_external_memory_fd ===
16818    PFN_vkGetMemoryFdKHR           vkGetMemoryFdKHR           = 0;
16819    PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0;
16820
16821    //=== VK_KHR_external_semaphore_capabilities ===
16822    PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0;
16823
16824#if defined( VK_USE_PLATFORM_WIN32_KHR )
16825    //=== VK_KHR_external_semaphore_win32 ===
16826    PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0;
16827    PFN_vkGetSemaphoreWin32HandleKHR    vkGetSemaphoreWin32HandleKHR    = 0;
16828#else
16829    PFN_dummy vkImportSemaphoreWin32HandleKHR_placeholder                   = 0;
16830    PFN_dummy vkGetSemaphoreWin32HandleKHR_placeholder                      = 0;
16831#endif /*VK_USE_PLATFORM_WIN32_KHR*/
16832
16833    //=== VK_KHR_external_semaphore_fd ===
16834    PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0;
16835    PFN_vkGetSemaphoreFdKHR    vkGetSemaphoreFdKHR    = 0;
16836
16837    //=== VK_KHR_push_descriptor ===
16838    PFN_vkCmdPushDescriptorSetKHR             vkCmdPushDescriptorSetKHR             = 0;
16839    PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0;
16840
16841    //=== VK_EXT_conditional_rendering ===
16842    PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0;
16843    PFN_vkCmdEndConditionalRenderingEXT   vkCmdEndConditionalRenderingEXT   = 0;
16844
16845    //=== VK_KHR_descriptor_update_template ===
16846    PFN_vkCreateDescriptorUpdateTemplateKHR  vkCreateDescriptorUpdateTemplateKHR  = 0;
16847    PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR = 0;
16848    PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0;
16849
16850    //=== VK_NV_clip_space_w_scaling ===
16851    PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0;
16852
16853    //=== VK_EXT_direct_mode_display ===
16854    PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0;
16855
16856#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
16857    //=== VK_EXT_acquire_xlib_display ===
16858    PFN_vkAcquireXlibDisplayEXT    vkAcquireXlibDisplayEXT    = 0;
16859    PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0;
16860#else
16861    PFN_dummy vkAcquireXlibDisplayEXT_placeholder                           = 0;
16862    PFN_dummy vkGetRandROutputDisplayEXT_placeholder                        = 0;
16863#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
16864
16865    //=== VK_EXT_display_surface_counter ===
16866    PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0;
16867
16868    //=== VK_EXT_display_control ===
16869    PFN_vkDisplayPowerControlEXT  vkDisplayPowerControlEXT  = 0;
16870    PFN_vkRegisterDeviceEventEXT  vkRegisterDeviceEventEXT  = 0;
16871    PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0;
16872    PFN_vkGetSwapchainCounterEXT  vkGetSwapchainCounterEXT  = 0;
16873
16874    //=== VK_GOOGLE_display_timing ===
16875    PFN_vkGetRefreshCycleDurationGOOGLE   vkGetRefreshCycleDurationGOOGLE   = 0;
16876    PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0;
16877
16878    //=== VK_EXT_discard_rectangles ===
16879    PFN_vkCmdSetDiscardRectangleEXT       vkCmdSetDiscardRectangleEXT       = 0;
16880    PFN_vkCmdSetDiscardRectangleEnableEXT vkCmdSetDiscardRectangleEnableEXT = 0;
16881    PFN_vkCmdSetDiscardRectangleModeEXT   vkCmdSetDiscardRectangleModeEXT   = 0;
16882
16883    //=== VK_EXT_hdr_metadata ===
16884    PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0;
16885
16886    //=== VK_KHR_create_renderpass2 ===
16887    PFN_vkCreateRenderPass2KHR   vkCreateRenderPass2KHR   = 0;
16888    PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0;
16889    PFN_vkCmdNextSubpass2KHR     vkCmdNextSubpass2KHR     = 0;
16890    PFN_vkCmdEndRenderPass2KHR   vkCmdEndRenderPass2KHR   = 0;
16891
16892    //=== VK_KHR_shared_presentable_image ===
16893    PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0;
16894
16895    //=== VK_KHR_external_fence_capabilities ===
16896    PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0;
16897
16898#if defined( VK_USE_PLATFORM_WIN32_KHR )
16899    //=== VK_KHR_external_fence_win32 ===
16900    PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0;
16901    PFN_vkGetFenceWin32HandleKHR    vkGetFenceWin32HandleKHR    = 0;
16902#else
16903    PFN_dummy vkImportFenceWin32HandleKHR_placeholder                       = 0;
16904    PFN_dummy vkGetFenceWin32HandleKHR_placeholder                          = 0;
16905#endif /*VK_USE_PLATFORM_WIN32_KHR*/
16906
16907    //=== VK_KHR_external_fence_fd ===
16908    PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0;
16909    PFN_vkGetFenceFdKHR    vkGetFenceFdKHR    = 0;
16910
16911    //=== VK_KHR_performance_query ===
16912    PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 0;
16913    PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR         vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR         = 0;
16914    PFN_vkAcquireProfilingLockKHR                                       vkAcquireProfilingLockKHR                                       = 0;
16915    PFN_vkReleaseProfilingLockKHR                                       vkReleaseProfilingLockKHR                                       = 0;
16916
16917    //=== VK_KHR_get_surface_capabilities2 ===
16918    PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR = 0;
16919    PFN_vkGetPhysicalDeviceSurfaceFormats2KHR      vkGetPhysicalDeviceSurfaceFormats2KHR      = 0;
16920
16921    //=== VK_KHR_get_display_properties2 ===
16922    PFN_vkGetPhysicalDeviceDisplayProperties2KHR      vkGetPhysicalDeviceDisplayProperties2KHR      = 0;
16923    PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0;
16924    PFN_vkGetDisplayModeProperties2KHR                vkGetDisplayModeProperties2KHR                = 0;
16925    PFN_vkGetDisplayPlaneCapabilities2KHR             vkGetDisplayPlaneCapabilities2KHR             = 0;
16926
16927#if defined( VK_USE_PLATFORM_IOS_MVK )
16928    //=== VK_MVK_ios_surface ===
16929    PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0;
16930#else
16931    PFN_dummy vkCreateIOSSurfaceMVK_placeholder                             = 0;
16932#endif /*VK_USE_PLATFORM_IOS_MVK*/
16933
16934#if defined( VK_USE_PLATFORM_MACOS_MVK )
16935    //=== VK_MVK_macos_surface ===
16936    PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK = 0;
16937#else
16938    PFN_dummy vkCreateMacOSSurfaceMVK_placeholder                           = 0;
16939#endif /*VK_USE_PLATFORM_MACOS_MVK*/
16940
16941    //=== VK_EXT_debug_utils ===
16942    PFN_vkSetDebugUtilsObjectNameEXT    vkSetDebugUtilsObjectNameEXT    = 0;
16943    PFN_vkSetDebugUtilsObjectTagEXT     vkSetDebugUtilsObjectTagEXT     = 0;
16944    PFN_vkQueueBeginDebugUtilsLabelEXT  vkQueueBeginDebugUtilsLabelEXT  = 0;
16945    PFN_vkQueueEndDebugUtilsLabelEXT    vkQueueEndDebugUtilsLabelEXT    = 0;
16946    PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT = 0;
16947    PFN_vkCmdBeginDebugUtilsLabelEXT    vkCmdBeginDebugUtilsLabelEXT    = 0;
16948    PFN_vkCmdEndDebugUtilsLabelEXT      vkCmdEndDebugUtilsLabelEXT      = 0;
16949    PFN_vkCmdInsertDebugUtilsLabelEXT   vkCmdInsertDebugUtilsLabelEXT   = 0;
16950    PFN_vkCreateDebugUtilsMessengerEXT  vkCreateDebugUtilsMessengerEXT  = 0;
16951    PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0;
16952    PFN_vkSubmitDebugUtilsMessageEXT    vkSubmitDebugUtilsMessageEXT    = 0;
16953
16954#if defined( VK_USE_PLATFORM_ANDROID_KHR )
16955    //=== VK_ANDROID_external_memory_android_hardware_buffer ===
16956    PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0;
16957    PFN_vkGetMemoryAndroidHardwareBufferANDROID     vkGetMemoryAndroidHardwareBufferANDROID     = 0;
16958#else
16959    PFN_dummy vkGetAndroidHardwareBufferPropertiesANDROID_placeholder       = 0;
16960    PFN_dummy vkGetMemoryAndroidHardwareBufferANDROID_placeholder           = 0;
16961#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
16962
16963#if defined( VK_ENABLE_BETA_EXTENSIONS )
16964    //=== VK_AMDX_shader_enqueue ===
16965    PFN_vkCreateExecutionGraphPipelinesAMDX        vkCreateExecutionGraphPipelinesAMDX        = 0;
16966    PFN_vkGetExecutionGraphPipelineScratchSizeAMDX vkGetExecutionGraphPipelineScratchSizeAMDX = 0;
16967    PFN_vkGetExecutionGraphPipelineNodeIndexAMDX   vkGetExecutionGraphPipelineNodeIndexAMDX   = 0;
16968    PFN_vkCmdInitializeGraphScratchMemoryAMDX      vkCmdInitializeGraphScratchMemoryAMDX      = 0;
16969    PFN_vkCmdDispatchGraphAMDX                     vkCmdDispatchGraphAMDX                     = 0;
16970    PFN_vkCmdDispatchGraphIndirectAMDX             vkCmdDispatchGraphIndirectAMDX             = 0;
16971    PFN_vkCmdDispatchGraphIndirectCountAMDX        vkCmdDispatchGraphIndirectCountAMDX        = 0;
16972#else
16973    PFN_dummy vkCreateExecutionGraphPipelinesAMDX_placeholder               = 0;
16974    PFN_dummy vkGetExecutionGraphPipelineScratchSizeAMDX_placeholder        = 0;
16975    PFN_dummy vkGetExecutionGraphPipelineNodeIndexAMDX_placeholder          = 0;
16976    PFN_dummy vkCmdInitializeGraphScratchMemoryAMDX_placeholder             = 0;
16977    PFN_dummy vkCmdDispatchGraphAMDX_placeholder                            = 0;
16978    PFN_dummy vkCmdDispatchGraphIndirectAMDX_placeholder                    = 0;
16979    PFN_dummy vkCmdDispatchGraphIndirectCountAMDX_placeholder               = 0;
16980#endif /*VK_ENABLE_BETA_EXTENSIONS*/
16981
16982    //=== VK_EXT_sample_locations ===
16983    PFN_vkCmdSetSampleLocationsEXT                  vkCmdSetSampleLocationsEXT                  = 0;
16984    PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0;
16985
16986    //=== VK_KHR_get_memory_requirements2 ===
16987    PFN_vkGetImageMemoryRequirements2KHR       vkGetImageMemoryRequirements2KHR       = 0;
16988    PFN_vkGetBufferMemoryRequirements2KHR      vkGetBufferMemoryRequirements2KHR      = 0;
16989    PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0;
16990
16991    //=== VK_KHR_acceleration_structure ===
16992    PFN_vkCreateAccelerationStructureKHR                 vkCreateAccelerationStructureKHR                 = 0;
16993    PFN_vkDestroyAccelerationStructureKHR                vkDestroyAccelerationStructureKHR                = 0;
16994    PFN_vkCmdBuildAccelerationStructuresKHR              vkCmdBuildAccelerationStructuresKHR              = 0;
16995    PFN_vkCmdBuildAccelerationStructuresIndirectKHR      vkCmdBuildAccelerationStructuresIndirectKHR      = 0;
16996    PFN_vkBuildAccelerationStructuresKHR                 vkBuildAccelerationStructuresKHR                 = 0;
16997    PFN_vkCopyAccelerationStructureKHR                   vkCopyAccelerationStructureKHR                   = 0;
16998    PFN_vkCopyAccelerationStructureToMemoryKHR           vkCopyAccelerationStructureToMemoryKHR           = 0;
16999    PFN_vkCopyMemoryToAccelerationStructureKHR           vkCopyMemoryToAccelerationStructureKHR           = 0;
17000    PFN_vkWriteAccelerationStructuresPropertiesKHR       vkWriteAccelerationStructuresPropertiesKHR       = 0;
17001    PFN_vkCmdCopyAccelerationStructureKHR                vkCmdCopyAccelerationStructureKHR                = 0;
17002    PFN_vkCmdCopyAccelerationStructureToMemoryKHR        vkCmdCopyAccelerationStructureToMemoryKHR        = 0;
17003    PFN_vkCmdCopyMemoryToAccelerationStructureKHR        vkCmdCopyMemoryToAccelerationStructureKHR        = 0;
17004    PFN_vkGetAccelerationStructureDeviceAddressKHR       vkGetAccelerationStructureDeviceAddressKHR       = 0;
17005    PFN_vkCmdWriteAccelerationStructuresPropertiesKHR    vkCmdWriteAccelerationStructuresPropertiesKHR    = 0;
17006    PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR = 0;
17007    PFN_vkGetAccelerationStructureBuildSizesKHR          vkGetAccelerationStructureBuildSizesKHR          = 0;
17008
17009    //=== VK_KHR_ray_tracing_pipeline ===
17010    PFN_vkCmdTraceRaysKHR                                 vkCmdTraceRaysKHR                                 = 0;
17011    PFN_vkCreateRayTracingPipelinesKHR                    vkCreateRayTracingPipelinesKHR                    = 0;
17012    PFN_vkGetRayTracingShaderGroupHandlesKHR              vkGetRayTracingShaderGroupHandlesKHR              = 0;
17013    PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0;
17014    PFN_vkCmdTraceRaysIndirectKHR                         vkCmdTraceRaysIndirectKHR                         = 0;
17015    PFN_vkGetRayTracingShaderGroupStackSizeKHR            vkGetRayTracingShaderGroupStackSizeKHR            = 0;
17016    PFN_vkCmdSetRayTracingPipelineStackSizeKHR            vkCmdSetRayTracingPipelineStackSizeKHR            = 0;
17017
17018    //=== VK_KHR_sampler_ycbcr_conversion ===
17019    PFN_vkCreateSamplerYcbcrConversionKHR  vkCreateSamplerYcbcrConversionKHR  = 0;
17020    PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0;
17021
17022    //=== VK_KHR_bind_memory2 ===
17023    PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0;
17024    PFN_vkBindImageMemory2KHR  vkBindImageMemory2KHR  = 0;
17025
17026    //=== VK_EXT_image_drm_format_modifier ===
17027    PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0;
17028
17029    //=== VK_EXT_validation_cache ===
17030    PFN_vkCreateValidationCacheEXT  vkCreateValidationCacheEXT  = 0;
17031    PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0;
17032    PFN_vkMergeValidationCachesEXT  vkMergeValidationCachesEXT  = 0;
17033    PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0;
17034
17035    //=== VK_NV_shading_rate_image ===
17036    PFN_vkCmdBindShadingRateImageNV          vkCmdBindShadingRateImageNV          = 0;
17037    PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0;
17038    PFN_vkCmdSetCoarseSampleOrderNV          vkCmdSetCoarseSampleOrderNV          = 0;
17039
17040    //=== VK_NV_ray_tracing ===
17041    PFN_vkCreateAccelerationStructureNV                vkCreateAccelerationStructureNV                = 0;
17042    PFN_vkDestroyAccelerationStructureNV               vkDestroyAccelerationStructureNV               = 0;
17043    PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0;
17044    PFN_vkBindAccelerationStructureMemoryNV            vkBindAccelerationStructureMemoryNV            = 0;
17045    PFN_vkCmdBuildAccelerationStructureNV              vkCmdBuildAccelerationStructureNV              = 0;
17046    PFN_vkCmdCopyAccelerationStructureNV               vkCmdCopyAccelerationStructureNV               = 0;
17047    PFN_vkCmdTraceRaysNV                               vkCmdTraceRaysNV                               = 0;
17048    PFN_vkCreateRayTracingPipelinesNV                  vkCreateRayTracingPipelinesNV                  = 0;
17049    PFN_vkGetRayTracingShaderGroupHandlesNV            vkGetRayTracingShaderGroupHandlesNV            = 0;
17050    PFN_vkGetAccelerationStructureHandleNV             vkGetAccelerationStructureHandleNV             = 0;
17051    PFN_vkCmdWriteAccelerationStructuresPropertiesNV   vkCmdWriteAccelerationStructuresPropertiesNV   = 0;
17052    PFN_vkCompileDeferredNV                            vkCompileDeferredNV                            = 0;
17053
17054    //=== VK_KHR_maintenance3 ===
17055    PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0;
17056
17057    //=== VK_KHR_draw_indirect_count ===
17058    PFN_vkCmdDrawIndirectCountKHR        vkCmdDrawIndirectCountKHR        = 0;
17059    PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0;
17060
17061    //=== VK_EXT_external_memory_host ===
17062    PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT = 0;
17063
17064    //=== VK_AMD_buffer_marker ===
17065    PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0;
17066
17067    //=== VK_EXT_calibrated_timestamps ===
17068    PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0;
17069    PFN_vkGetCalibratedTimestampsEXT                   vkGetCalibratedTimestampsEXT                   = 0;
17070
17071    //=== VK_NV_mesh_shader ===
17072    PFN_vkCmdDrawMeshTasksNV              vkCmdDrawMeshTasksNV              = 0;
17073    PFN_vkCmdDrawMeshTasksIndirectNV      vkCmdDrawMeshTasksIndirectNV      = 0;
17074    PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0;
17075
17076    //=== VK_NV_scissor_exclusive ===
17077    PFN_vkCmdSetExclusiveScissorEnableNV vkCmdSetExclusiveScissorEnableNV = 0;
17078    PFN_vkCmdSetExclusiveScissorNV       vkCmdSetExclusiveScissorNV       = 0;
17079
17080    //=== VK_NV_device_diagnostic_checkpoints ===
17081    PFN_vkCmdSetCheckpointNV       vkCmdSetCheckpointNV       = 0;
17082    PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0;
17083
17084    //=== VK_KHR_timeline_semaphore ===
17085    PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR = 0;
17086    PFN_vkWaitSemaphoresKHR           vkWaitSemaphoresKHR           = 0;
17087    PFN_vkSignalSemaphoreKHR          vkSignalSemaphoreKHR          = 0;
17088
17089    //=== VK_INTEL_performance_query ===
17090    PFN_vkInitializePerformanceApiINTEL         vkInitializePerformanceApiINTEL         = 0;
17091    PFN_vkUninitializePerformanceApiINTEL       vkUninitializePerformanceApiINTEL       = 0;
17092    PFN_vkCmdSetPerformanceMarkerINTEL          vkCmdSetPerformanceMarkerINTEL          = 0;
17093    PFN_vkCmdSetPerformanceStreamMarkerINTEL    vkCmdSetPerformanceStreamMarkerINTEL    = 0;
17094    PFN_vkCmdSetPerformanceOverrideINTEL        vkCmdSetPerformanceOverrideINTEL        = 0;
17095    PFN_vkAcquirePerformanceConfigurationINTEL  vkAcquirePerformanceConfigurationINTEL  = 0;
17096    PFN_vkReleasePerformanceConfigurationINTEL  vkReleasePerformanceConfigurationINTEL  = 0;
17097    PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0;
17098    PFN_vkGetPerformanceParameterINTEL          vkGetPerformanceParameterINTEL          = 0;
17099
17100    //=== VK_AMD_display_native_hdr ===
17101    PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0;
17102
17103#if defined( VK_USE_PLATFORM_FUCHSIA )
17104    //=== VK_FUCHSIA_imagepipe_surface ===
17105    PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0;
17106#else
17107    PFN_dummy vkCreateImagePipeSurfaceFUCHSIA_placeholder                   = 0;
17108#endif /*VK_USE_PLATFORM_FUCHSIA*/
17109
17110#if defined( VK_USE_PLATFORM_METAL_EXT )
17111    //=== VK_EXT_metal_surface ===
17112    PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0;
17113#else
17114    PFN_dummy vkCreateMetalSurfaceEXT_placeholder                           = 0;
17115#endif /*VK_USE_PLATFORM_METAL_EXT*/
17116
17117    //=== VK_KHR_fragment_shading_rate ===
17118    PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR = 0;
17119    PFN_vkCmdSetFragmentShadingRateKHR             vkCmdSetFragmentShadingRateKHR             = 0;
17120
17121    //=== VK_EXT_buffer_device_address ===
17122    PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0;
17123
17124    //=== VK_EXT_tooling_info ===
17125    PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT = 0;
17126
17127    //=== VK_KHR_present_wait ===
17128    PFN_vkWaitForPresentKHR vkWaitForPresentKHR = 0;
17129
17130    //=== VK_NV_cooperative_matrix ===
17131    PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 0;
17132
17133    //=== VK_NV_coverage_reduction_mode ===
17134    PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0;
17135
17136#if defined( VK_USE_PLATFORM_WIN32_KHR )
17137    //=== VK_EXT_full_screen_exclusive ===
17138    PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT = 0;
17139    PFN_vkAcquireFullScreenExclusiveModeEXT        vkAcquireFullScreenExclusiveModeEXT        = 0;
17140    PFN_vkReleaseFullScreenExclusiveModeEXT        vkReleaseFullScreenExclusiveModeEXT        = 0;
17141    PFN_vkGetDeviceGroupSurfacePresentModes2EXT    vkGetDeviceGroupSurfacePresentModes2EXT    = 0;
17142#else
17143    PFN_dummy vkGetPhysicalDeviceSurfacePresentModes2EXT_placeholder        = 0;
17144    PFN_dummy vkAcquireFullScreenExclusiveModeEXT_placeholder               = 0;
17145    PFN_dummy vkReleaseFullScreenExclusiveModeEXT_placeholder               = 0;
17146    PFN_dummy vkGetDeviceGroupSurfacePresentModes2EXT_placeholder           = 0;
17147#endif /*VK_USE_PLATFORM_WIN32_KHR*/
17148
17149    //=== VK_EXT_headless_surface ===
17150    PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0;
17151
17152    //=== VK_KHR_buffer_device_address ===
17153    PFN_vkGetBufferDeviceAddressKHR              vkGetBufferDeviceAddressKHR              = 0;
17154    PFN_vkGetBufferOpaqueCaptureAddressKHR       vkGetBufferOpaqueCaptureAddressKHR       = 0;
17155    PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR = 0;
17156
17157    //=== VK_EXT_line_rasterization ===
17158    PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0;
17159
17160    //=== VK_EXT_host_query_reset ===
17161    PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0;
17162
17163    //=== VK_EXT_extended_dynamic_state ===
17164    PFN_vkCmdSetCullModeEXT              vkCmdSetCullModeEXT              = 0;
17165    PFN_vkCmdSetFrontFaceEXT             vkCmdSetFrontFaceEXT             = 0;
17166    PFN_vkCmdSetPrimitiveTopologyEXT     vkCmdSetPrimitiveTopologyEXT     = 0;
17167    PFN_vkCmdSetViewportWithCountEXT     vkCmdSetViewportWithCountEXT     = 0;
17168    PFN_vkCmdSetScissorWithCountEXT      vkCmdSetScissorWithCountEXT      = 0;
17169    PFN_vkCmdBindVertexBuffers2EXT       vkCmdBindVertexBuffers2EXT       = 0;
17170    PFN_vkCmdSetDepthTestEnableEXT       vkCmdSetDepthTestEnableEXT       = 0;
17171    PFN_vkCmdSetDepthWriteEnableEXT      vkCmdSetDepthWriteEnableEXT      = 0;
17172    PFN_vkCmdSetDepthCompareOpEXT        vkCmdSetDepthCompareOpEXT        = 0;
17173    PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT = 0;
17174    PFN_vkCmdSetStencilTestEnableEXT     vkCmdSetStencilTestEnableEXT     = 0;
17175    PFN_vkCmdSetStencilOpEXT             vkCmdSetStencilOpEXT             = 0;
17176
17177    //=== VK_KHR_deferred_host_operations ===
17178    PFN_vkCreateDeferredOperationKHR            vkCreateDeferredOperationKHR            = 0;
17179    PFN_vkDestroyDeferredOperationKHR           vkDestroyDeferredOperationKHR           = 0;
17180    PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR = 0;
17181    PFN_vkGetDeferredOperationResultKHR         vkGetDeferredOperationResultKHR         = 0;
17182    PFN_vkDeferredOperationJoinKHR              vkDeferredOperationJoinKHR              = 0;
17183
17184    //=== VK_KHR_pipeline_executable_properties ===
17185    PFN_vkGetPipelineExecutablePropertiesKHR              vkGetPipelineExecutablePropertiesKHR              = 0;
17186    PFN_vkGetPipelineExecutableStatisticsKHR              vkGetPipelineExecutableStatisticsKHR              = 0;
17187    PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0;
17188
17189    //=== VK_EXT_host_image_copy ===
17190    PFN_vkCopyMemoryToImageEXT          vkCopyMemoryToImageEXT          = 0;
17191    PFN_vkCopyImageToMemoryEXT          vkCopyImageToMemoryEXT          = 0;
17192    PFN_vkCopyImageToImageEXT           vkCopyImageToImageEXT           = 0;
17193    PFN_vkTransitionImageLayoutEXT      vkTransitionImageLayoutEXT      = 0;
17194    PFN_vkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXT = 0;
17195
17196    //=== VK_KHR_map_memory2 ===
17197    PFN_vkMapMemory2KHR   vkMapMemory2KHR   = 0;
17198    PFN_vkUnmapMemory2KHR vkUnmapMemory2KHR = 0;
17199
17200    //=== VK_EXT_swapchain_maintenance1 ===
17201    PFN_vkReleaseSwapchainImagesEXT vkReleaseSwapchainImagesEXT = 0;
17202
17203    //=== VK_NV_device_generated_commands ===
17204    PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV = 0;
17205    PFN_vkCmdPreprocessGeneratedCommandsNV         vkCmdPreprocessGeneratedCommandsNV         = 0;
17206    PFN_vkCmdExecuteGeneratedCommandsNV            vkCmdExecuteGeneratedCommandsNV            = 0;
17207    PFN_vkCmdBindPipelineShaderGroupNV             vkCmdBindPipelineShaderGroupNV             = 0;
17208    PFN_vkCreateIndirectCommandsLayoutNV           vkCreateIndirectCommandsLayoutNV           = 0;
17209    PFN_vkDestroyIndirectCommandsLayoutNV          vkDestroyIndirectCommandsLayoutNV          = 0;
17210
17211    //=== VK_EXT_depth_bias_control ===
17212    PFN_vkCmdSetDepthBias2EXT vkCmdSetDepthBias2EXT = 0;
17213
17214    //=== VK_EXT_acquire_drm_display ===
17215    PFN_vkAcquireDrmDisplayEXT vkAcquireDrmDisplayEXT = 0;
17216    PFN_vkGetDrmDisplayEXT     vkGetDrmDisplayEXT     = 0;
17217
17218    //=== VK_EXT_private_data ===
17219    PFN_vkCreatePrivateDataSlotEXT  vkCreatePrivateDataSlotEXT  = 0;
17220    PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT = 0;
17221    PFN_vkSetPrivateDataEXT         vkSetPrivateDataEXT         = 0;
17222    PFN_vkGetPrivateDataEXT         vkGetPrivateDataEXT         = 0;
17223
17224    //=== VK_KHR_video_encode_queue ===
17225    PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = 0;
17226    PFN_vkGetEncodedVideoSessionParametersKHR                   vkGetEncodedVideoSessionParametersKHR                   = 0;
17227    PFN_vkCmdEncodeVideoKHR                                     vkCmdEncodeVideoKHR                                     = 0;
17228
17229#if defined( VK_ENABLE_BETA_EXTENSIONS )
17230    //=== VK_NV_cuda_kernel_launch ===
17231    PFN_vkCreateCudaModuleNV    vkCreateCudaModuleNV    = 0;
17232    PFN_vkGetCudaModuleCacheNV  vkGetCudaModuleCacheNV  = 0;
17233    PFN_vkCreateCudaFunctionNV  vkCreateCudaFunctionNV  = 0;
17234    PFN_vkDestroyCudaModuleNV   vkDestroyCudaModuleNV   = 0;
17235    PFN_vkDestroyCudaFunctionNV vkDestroyCudaFunctionNV = 0;
17236    PFN_vkCmdCudaLaunchKernelNV vkCmdCudaLaunchKernelNV = 0;
17237#else
17238    PFN_dummy vkCreateCudaModuleNV_placeholder                              = 0;
17239    PFN_dummy vkGetCudaModuleCacheNV_placeholder                            = 0;
17240    PFN_dummy vkCreateCudaFunctionNV_placeholder                            = 0;
17241    PFN_dummy vkDestroyCudaModuleNV_placeholder                             = 0;
17242    PFN_dummy vkDestroyCudaFunctionNV_placeholder                           = 0;
17243    PFN_dummy vkCmdCudaLaunchKernelNV_placeholder                           = 0;
17244#endif /*VK_ENABLE_BETA_EXTENSIONS*/
17245
17246#if defined( VK_USE_PLATFORM_METAL_EXT )
17247    //=== VK_EXT_metal_objects ===
17248    PFN_vkExportMetalObjectsEXT vkExportMetalObjectsEXT = 0;
17249#else
17250    PFN_dummy vkExportMetalObjectsEXT_placeholder                           = 0;
17251#endif /*VK_USE_PLATFORM_METAL_EXT*/
17252
17253    //=== VK_KHR_synchronization2 ===
17254    PFN_vkCmdSetEvent2KHR           vkCmdSetEvent2KHR           = 0;
17255    PFN_vkCmdResetEvent2KHR         vkCmdResetEvent2KHR         = 0;
17256    PFN_vkCmdWaitEvents2KHR         vkCmdWaitEvents2KHR         = 0;
17257    PFN_vkCmdPipelineBarrier2KHR    vkCmdPipelineBarrier2KHR    = 0;
17258    PFN_vkCmdWriteTimestamp2KHR     vkCmdWriteTimestamp2KHR     = 0;
17259    PFN_vkQueueSubmit2KHR           vkQueueSubmit2KHR           = 0;
17260    PFN_vkCmdWriteBufferMarker2AMD  vkCmdWriteBufferMarker2AMD  = 0;
17261    PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV = 0;
17262
17263    //=== VK_EXT_descriptor_buffer ===
17264    PFN_vkGetDescriptorSetLayoutSizeEXT                          vkGetDescriptorSetLayoutSizeEXT                          = 0;
17265    PFN_vkGetDescriptorSetLayoutBindingOffsetEXT                 vkGetDescriptorSetLayoutBindingOffsetEXT                 = 0;
17266    PFN_vkGetDescriptorEXT                                       vkGetDescriptorEXT                                       = 0;
17267    PFN_vkCmdBindDescriptorBuffersEXT                            vkCmdBindDescriptorBuffersEXT                            = 0;
17268    PFN_vkCmdSetDescriptorBufferOffsetsEXT                       vkCmdSetDescriptorBufferOffsetsEXT                       = 0;
17269    PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT             vkCmdBindDescriptorBufferEmbeddedSamplersEXT             = 0;
17270    PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT                vkGetBufferOpaqueCaptureDescriptorDataEXT                = 0;
17271    PFN_vkGetImageOpaqueCaptureDescriptorDataEXT                 vkGetImageOpaqueCaptureDescriptorDataEXT                 = 0;
17272    PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT             vkGetImageViewOpaqueCaptureDescriptorDataEXT             = 0;
17273    PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT               vkGetSamplerOpaqueCaptureDescriptorDataEXT               = 0;
17274    PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = 0;
17275
17276    //=== VK_NV_fragment_shading_rate_enums ===
17277    PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV = 0;
17278
17279    //=== VK_EXT_mesh_shader ===
17280    PFN_vkCmdDrawMeshTasksEXT              vkCmdDrawMeshTasksEXT              = 0;
17281    PFN_vkCmdDrawMeshTasksIndirectEXT      vkCmdDrawMeshTasksIndirectEXT      = 0;
17282    PFN_vkCmdDrawMeshTasksIndirectCountEXT vkCmdDrawMeshTasksIndirectCountEXT = 0;
17283
17284    //=== VK_KHR_copy_commands2 ===
17285    PFN_vkCmdCopyBuffer2KHR        vkCmdCopyBuffer2KHR        = 0;
17286    PFN_vkCmdCopyImage2KHR         vkCmdCopyImage2KHR         = 0;
17287    PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR = 0;
17288    PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR = 0;
17289    PFN_vkCmdBlitImage2KHR         vkCmdBlitImage2KHR         = 0;
17290    PFN_vkCmdResolveImage2KHR      vkCmdResolveImage2KHR      = 0;
17291
17292    //=== VK_EXT_device_fault ===
17293    PFN_vkGetDeviceFaultInfoEXT vkGetDeviceFaultInfoEXT = 0;
17294
17295#if defined( VK_USE_PLATFORM_WIN32_KHR )
17296    //=== VK_NV_acquire_winrt_display ===
17297    PFN_vkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNV = 0;
17298    PFN_vkGetWinrtDisplayNV     vkGetWinrtDisplayNV     = 0;
17299#else
17300    PFN_dummy vkAcquireWinrtDisplayNV_placeholder                           = 0;
17301    PFN_dummy vkGetWinrtDisplayNV_placeholder                               = 0;
17302#endif /*VK_USE_PLATFORM_WIN32_KHR*/
17303
17304#if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
17305    //=== VK_EXT_directfb_surface ===
17306    PFN_vkCreateDirectFBSurfaceEXT                        vkCreateDirectFBSurfaceEXT                        = 0;
17307    PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0;
17308#else
17309    PFN_dummy vkCreateDirectFBSurfaceEXT_placeholder                        = 0;
17310    PFN_dummy vkGetPhysicalDeviceDirectFBPresentationSupportEXT_placeholder = 0;
17311#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
17312
17313    //=== VK_EXT_vertex_input_dynamic_state ===
17314    PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT = 0;
17315
17316#if defined( VK_USE_PLATFORM_FUCHSIA )
17317    //=== VK_FUCHSIA_external_memory ===
17318    PFN_vkGetMemoryZirconHandleFUCHSIA           vkGetMemoryZirconHandleFUCHSIA           = 0;
17319    PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA = 0;
17320#else
17321    PFN_dummy vkGetMemoryZirconHandleFUCHSIA_placeholder                    = 0;
17322    PFN_dummy vkGetMemoryZirconHandlePropertiesFUCHSIA_placeholder          = 0;
17323#endif /*VK_USE_PLATFORM_FUCHSIA*/
17324
17325#if defined( VK_USE_PLATFORM_FUCHSIA )
17326    //=== VK_FUCHSIA_external_semaphore ===
17327    PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA = 0;
17328    PFN_vkGetSemaphoreZirconHandleFUCHSIA    vkGetSemaphoreZirconHandleFUCHSIA    = 0;
17329#else
17330    PFN_dummy vkImportSemaphoreZirconHandleFUCHSIA_placeholder              = 0;
17331    PFN_dummy vkGetSemaphoreZirconHandleFUCHSIA_placeholder                 = 0;
17332#endif /*VK_USE_PLATFORM_FUCHSIA*/
17333
17334#if defined( VK_USE_PLATFORM_FUCHSIA )
17335    //=== VK_FUCHSIA_buffer_collection ===
17336    PFN_vkCreateBufferCollectionFUCHSIA               vkCreateBufferCollectionFUCHSIA               = 0;
17337    PFN_vkSetBufferCollectionImageConstraintsFUCHSIA  vkSetBufferCollectionImageConstraintsFUCHSIA  = 0;
17338    PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA vkSetBufferCollectionBufferConstraintsFUCHSIA = 0;
17339    PFN_vkDestroyBufferCollectionFUCHSIA              vkDestroyBufferCollectionFUCHSIA              = 0;
17340    PFN_vkGetBufferCollectionPropertiesFUCHSIA        vkGetBufferCollectionPropertiesFUCHSIA        = 0;
17341#else
17342    PFN_dummy vkCreateBufferCollectionFUCHSIA_placeholder                   = 0;
17343    PFN_dummy vkSetBufferCollectionImageConstraintsFUCHSIA_placeholder      = 0;
17344    PFN_dummy vkSetBufferCollectionBufferConstraintsFUCHSIA_placeholder     = 0;
17345    PFN_dummy vkDestroyBufferCollectionFUCHSIA_placeholder                  = 0;
17346    PFN_dummy vkGetBufferCollectionPropertiesFUCHSIA_placeholder            = 0;
17347#endif /*VK_USE_PLATFORM_FUCHSIA*/
17348
17349    //=== VK_HUAWEI_subpass_shading ===
17350    PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = 0;
17351    PFN_vkCmdSubpassShadingHUAWEI                       vkCmdSubpassShadingHUAWEI                       = 0;
17352
17353    //=== VK_HUAWEI_invocation_mask ===
17354    PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI = 0;
17355
17356    //=== VK_NV_external_memory_rdma ===
17357    PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV = 0;
17358
17359    //=== VK_EXT_pipeline_properties ===
17360    PFN_vkGetPipelinePropertiesEXT vkGetPipelinePropertiesEXT = 0;
17361
17362    //=== VK_EXT_extended_dynamic_state2 ===
17363    PFN_vkCmdSetPatchControlPointsEXT      vkCmdSetPatchControlPointsEXT      = 0;
17364    PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT = 0;
17365    PFN_vkCmdSetDepthBiasEnableEXT         vkCmdSetDepthBiasEnableEXT         = 0;
17366    PFN_vkCmdSetLogicOpEXT                 vkCmdSetLogicOpEXT                 = 0;
17367    PFN_vkCmdSetPrimitiveRestartEnableEXT  vkCmdSetPrimitiveRestartEnableEXT  = 0;
17368
17369#if defined( VK_USE_PLATFORM_SCREEN_QNX )
17370    //=== VK_QNX_screen_surface ===
17371    PFN_vkCreateScreenSurfaceQNX                        vkCreateScreenSurfaceQNX                        = 0;
17372    PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX = 0;
17373#else
17374    PFN_dummy vkCreateScreenSurfaceQNX_placeholder                          = 0;
17375    PFN_dummy vkGetPhysicalDeviceScreenPresentationSupportQNX_placeholder   = 0;
17376#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
17377
17378    //=== VK_EXT_color_write_enable ===
17379    PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT = 0;
17380
17381    //=== VK_KHR_ray_tracing_maintenance1 ===
17382    PFN_vkCmdTraceRaysIndirect2KHR vkCmdTraceRaysIndirect2KHR = 0;
17383
17384    //=== VK_EXT_multi_draw ===
17385    PFN_vkCmdDrawMultiEXT        vkCmdDrawMultiEXT        = 0;
17386    PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT = 0;
17387
17388    //=== VK_EXT_opacity_micromap ===
17389    PFN_vkCreateMicromapEXT                 vkCreateMicromapEXT                 = 0;
17390    PFN_vkDestroyMicromapEXT                vkDestroyMicromapEXT                = 0;
17391    PFN_vkCmdBuildMicromapsEXT              vkCmdBuildMicromapsEXT              = 0;
17392    PFN_vkBuildMicromapsEXT                 vkBuildMicromapsEXT                 = 0;
17393    PFN_vkCopyMicromapEXT                   vkCopyMicromapEXT                   = 0;
17394    PFN_vkCopyMicromapToMemoryEXT           vkCopyMicromapToMemoryEXT           = 0;
17395    PFN_vkCopyMemoryToMicromapEXT           vkCopyMemoryToMicromapEXT           = 0;
17396    PFN_vkWriteMicromapsPropertiesEXT       vkWriteMicromapsPropertiesEXT       = 0;
17397    PFN_vkCmdCopyMicromapEXT                vkCmdCopyMicromapEXT                = 0;
17398    PFN_vkCmdCopyMicromapToMemoryEXT        vkCmdCopyMicromapToMemoryEXT        = 0;
17399    PFN_vkCmdCopyMemoryToMicromapEXT        vkCmdCopyMemoryToMicromapEXT        = 0;
17400    PFN_vkCmdWriteMicromapsPropertiesEXT    vkCmdWriteMicromapsPropertiesEXT    = 0;
17401    PFN_vkGetDeviceMicromapCompatibilityEXT vkGetDeviceMicromapCompatibilityEXT = 0;
17402    PFN_vkGetMicromapBuildSizesEXT          vkGetMicromapBuildSizesEXT          = 0;
17403
17404    //=== VK_HUAWEI_cluster_culling_shader ===
17405    PFN_vkCmdDrawClusterHUAWEI         vkCmdDrawClusterHUAWEI         = 0;
17406    PFN_vkCmdDrawClusterIndirectHUAWEI vkCmdDrawClusterIndirectHUAWEI = 0;
17407
17408    //=== VK_EXT_pageable_device_local_memory ===
17409    PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT = 0;
17410
17411    //=== VK_KHR_maintenance4 ===
17412    PFN_vkGetDeviceBufferMemoryRequirementsKHR      vkGetDeviceBufferMemoryRequirementsKHR      = 0;
17413    PFN_vkGetDeviceImageMemoryRequirementsKHR       vkGetDeviceImageMemoryRequirementsKHR       = 0;
17414    PFN_vkGetDeviceImageSparseMemoryRequirementsKHR vkGetDeviceImageSparseMemoryRequirementsKHR = 0;
17415
17416    //=== VK_VALVE_descriptor_set_host_mapping ===
17417    PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE vkGetDescriptorSetLayoutHostMappingInfoVALVE = 0;
17418    PFN_vkGetDescriptorSetHostMappingVALVE           vkGetDescriptorSetHostMappingVALVE           = 0;
17419
17420    //=== VK_NV_copy_memory_indirect ===
17421    PFN_vkCmdCopyMemoryIndirectNV        vkCmdCopyMemoryIndirectNV        = 0;
17422    PFN_vkCmdCopyMemoryToImageIndirectNV vkCmdCopyMemoryToImageIndirectNV = 0;
17423
17424    //=== VK_NV_memory_decompression ===
17425    PFN_vkCmdDecompressMemoryNV              vkCmdDecompressMemoryNV              = 0;
17426    PFN_vkCmdDecompressMemoryIndirectCountNV vkCmdDecompressMemoryIndirectCountNV = 0;
17427
17428    //=== VK_NV_device_generated_commands_compute ===
17429    PFN_vkGetPipelineIndirectMemoryRequirementsNV vkGetPipelineIndirectMemoryRequirementsNV = 0;
17430    PFN_vkCmdUpdatePipelineIndirectBufferNV       vkCmdUpdatePipelineIndirectBufferNV       = 0;
17431    PFN_vkGetPipelineIndirectDeviceAddressNV      vkGetPipelineIndirectDeviceAddressNV      = 0;
17432
17433    //=== VK_EXT_extended_dynamic_state3 ===
17434    PFN_vkCmdSetTessellationDomainOriginEXT         vkCmdSetTessellationDomainOriginEXT         = 0;
17435    PFN_vkCmdSetDepthClampEnableEXT                 vkCmdSetDepthClampEnableEXT                 = 0;
17436    PFN_vkCmdSetPolygonModeEXT                      vkCmdSetPolygonModeEXT                      = 0;
17437    PFN_vkCmdSetRasterizationSamplesEXT             vkCmdSetRasterizationSamplesEXT             = 0;
17438    PFN_vkCmdSetSampleMaskEXT                       vkCmdSetSampleMaskEXT                       = 0;
17439    PFN_vkCmdSetAlphaToCoverageEnableEXT            vkCmdSetAlphaToCoverageEnableEXT            = 0;
17440    PFN_vkCmdSetAlphaToOneEnableEXT                 vkCmdSetAlphaToOneEnableEXT                 = 0;
17441    PFN_vkCmdSetLogicOpEnableEXT                    vkCmdSetLogicOpEnableEXT                    = 0;
17442    PFN_vkCmdSetColorBlendEnableEXT                 vkCmdSetColorBlendEnableEXT                 = 0;
17443    PFN_vkCmdSetColorBlendEquationEXT               vkCmdSetColorBlendEquationEXT               = 0;
17444    PFN_vkCmdSetColorWriteMaskEXT                   vkCmdSetColorWriteMaskEXT                   = 0;
17445    PFN_vkCmdSetRasterizationStreamEXT              vkCmdSetRasterizationStreamEXT              = 0;
17446    PFN_vkCmdSetConservativeRasterizationModeEXT    vkCmdSetConservativeRasterizationModeEXT    = 0;
17447    PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT vkCmdSetExtraPrimitiveOverestimationSizeEXT = 0;
17448    PFN_vkCmdSetDepthClipEnableEXT                  vkCmdSetDepthClipEnableEXT                  = 0;
17449    PFN_vkCmdSetSampleLocationsEnableEXT            vkCmdSetSampleLocationsEnableEXT            = 0;
17450    PFN_vkCmdSetColorBlendAdvancedEXT               vkCmdSetColorBlendAdvancedEXT               = 0;
17451    PFN_vkCmdSetProvokingVertexModeEXT              vkCmdSetProvokingVertexModeEXT              = 0;
17452    PFN_vkCmdSetLineRasterizationModeEXT            vkCmdSetLineRasterizationModeEXT            = 0;
17453    PFN_vkCmdSetLineStippleEnableEXT                vkCmdSetLineStippleEnableEXT                = 0;
17454    PFN_vkCmdSetDepthClipNegativeOneToOneEXT        vkCmdSetDepthClipNegativeOneToOneEXT        = 0;
17455    PFN_vkCmdSetViewportWScalingEnableNV            vkCmdSetViewportWScalingEnableNV            = 0;
17456    PFN_vkCmdSetViewportSwizzleNV                   vkCmdSetViewportSwizzleNV                   = 0;
17457    PFN_vkCmdSetCoverageToColorEnableNV             vkCmdSetCoverageToColorEnableNV             = 0;
17458    PFN_vkCmdSetCoverageToColorLocationNV           vkCmdSetCoverageToColorLocationNV           = 0;
17459    PFN_vkCmdSetCoverageModulationModeNV            vkCmdSetCoverageModulationModeNV            = 0;
17460    PFN_vkCmdSetCoverageModulationTableEnableNV     vkCmdSetCoverageModulationTableEnableNV     = 0;
17461    PFN_vkCmdSetCoverageModulationTableNV           vkCmdSetCoverageModulationTableNV           = 0;
17462    PFN_vkCmdSetShadingRateImageEnableNV            vkCmdSetShadingRateImageEnableNV            = 0;
17463    PFN_vkCmdSetRepresentativeFragmentTestEnableNV  vkCmdSetRepresentativeFragmentTestEnableNV  = 0;
17464    PFN_vkCmdSetCoverageReductionModeNV             vkCmdSetCoverageReductionModeNV             = 0;
17465
17466    //=== VK_EXT_shader_module_identifier ===
17467    PFN_vkGetShaderModuleIdentifierEXT           vkGetShaderModuleIdentifierEXT           = 0;
17468    PFN_vkGetShaderModuleCreateInfoIdentifierEXT vkGetShaderModuleCreateInfoIdentifierEXT = 0;
17469
17470    //=== VK_NV_optical_flow ===
17471    PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV vkGetPhysicalDeviceOpticalFlowImageFormatsNV = 0;
17472    PFN_vkCreateOpticalFlowSessionNV                 vkCreateOpticalFlowSessionNV                 = 0;
17473    PFN_vkDestroyOpticalFlowSessionNV                vkDestroyOpticalFlowSessionNV                = 0;
17474    PFN_vkBindOpticalFlowSessionImageNV              vkBindOpticalFlowSessionImageNV              = 0;
17475    PFN_vkCmdOpticalFlowExecuteNV                    vkCmdOpticalFlowExecuteNV                    = 0;
17476
17477    //=== VK_KHR_maintenance5 ===
17478    PFN_vkCmdBindIndexBuffer2KHR             vkCmdBindIndexBuffer2KHR             = 0;
17479    PFN_vkGetRenderingAreaGranularityKHR     vkGetRenderingAreaGranularityKHR     = 0;
17480    PFN_vkGetDeviceImageSubresourceLayoutKHR vkGetDeviceImageSubresourceLayoutKHR = 0;
17481    PFN_vkGetImageSubresourceLayout2KHR      vkGetImageSubresourceLayout2KHR      = 0;
17482
17483    //=== VK_EXT_shader_object ===
17484    PFN_vkCreateShadersEXT       vkCreateShadersEXT       = 0;
17485    PFN_vkDestroyShaderEXT       vkDestroyShaderEXT       = 0;
17486    PFN_vkGetShaderBinaryDataEXT vkGetShaderBinaryDataEXT = 0;
17487    PFN_vkCmdBindShadersEXT      vkCmdBindShadersEXT      = 0;
17488
17489    //=== VK_QCOM_tile_properties ===
17490    PFN_vkGetFramebufferTilePropertiesQCOM      vkGetFramebufferTilePropertiesQCOM      = 0;
17491    PFN_vkGetDynamicRenderingTilePropertiesQCOM vkGetDynamicRenderingTilePropertiesQCOM = 0;
17492
17493    //=== VK_NV_low_latency2 ===
17494    PFN_vkSetLatencySleepModeNV  vkSetLatencySleepModeNV  = 0;
17495    PFN_vkLatencySleepNV         vkLatencySleepNV         = 0;
17496    PFN_vkSetLatencyMarkerNV     vkSetLatencyMarkerNV     = 0;
17497    PFN_vkGetLatencyTimingsNV    vkGetLatencyTimingsNV    = 0;
17498    PFN_vkQueueNotifyOutOfBandNV vkQueueNotifyOutOfBandNV = 0;
17499
17500    //=== VK_KHR_cooperative_matrix ===
17501    PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = 0;
17502
17503    //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
17504    PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT vkCmdSetAttachmentFeedbackLoopEnableEXT = 0;
17505
17506#if defined( VK_USE_PLATFORM_SCREEN_QNX )
17507    //=== VK_QNX_external_memory_screen_buffer ===
17508    PFN_vkGetScreenBufferPropertiesQNX vkGetScreenBufferPropertiesQNX = 0;
17509#else
17510    PFN_dummy vkGetScreenBufferPropertiesQNX_placeholder                    = 0;
17511#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
17512
17513    //=== VK_KHR_calibrated_timestamps ===
17514    PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR vkGetPhysicalDeviceCalibrateableTimeDomainsKHR = 0;
17515    PFN_vkGetCalibratedTimestampsKHR                   vkGetCalibratedTimestampsKHR                   = 0;
17516
17517    //=== VK_KHR_maintenance6 ===
17518    PFN_vkCmdBindDescriptorSets2KHR                   vkCmdBindDescriptorSets2KHR                   = 0;
17519    PFN_vkCmdPushConstants2KHR                        vkCmdPushConstants2KHR                        = 0;
17520    PFN_vkCmdPushDescriptorSet2KHR                    vkCmdPushDescriptorSet2KHR                    = 0;
17521    PFN_vkCmdPushDescriptorSetWithTemplate2KHR        vkCmdPushDescriptorSetWithTemplate2KHR        = 0;
17522    PFN_vkCmdSetDescriptorBufferOffsets2EXT           vkCmdSetDescriptorBufferOffsets2EXT           = 0;
17523    PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT vkCmdBindDescriptorBufferEmbeddedSamplers2EXT = 0;
17524
17525  public:
17526    DispatchLoaderDynamic() VULKAN_HPP_NOEXCEPT                                    = default;
17527    DispatchLoaderDynamic( DispatchLoaderDynamic const & rhs ) VULKAN_HPP_NOEXCEPT = default;
17528
17529    DispatchLoaderDynamic( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) VULKAN_HPP_NOEXCEPT
17530    {
17531      init( getInstanceProcAddr );
17532    }
17533
17534    // This interface does not require a linked vulkan library.
17535    DispatchLoaderDynamic( VkInstance                instance,
17536                           PFN_vkGetInstanceProcAddr getInstanceProcAddr,
17537                           VkDevice                  device            = {},
17538                           PFN_vkGetDeviceProcAddr   getDeviceProcAddr = nullptr ) VULKAN_HPP_NOEXCEPT
17539    {
17540      init( instance, getInstanceProcAddr, device, getDeviceProcAddr );
17541    }
17542
17543    template <typename DynamicLoader
17544#if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
17545              = VULKAN_HPP_NAMESPACE::DynamicLoader
17546#endif
17547              >
17548    void init()
17549    {
17550      static DynamicLoader dl;
17551      init( dl );
17552    }
17553
17554    template <typename DynamicLoader>
17555    void init( DynamicLoader const & dl ) VULKAN_HPP_NOEXCEPT
17556    {
17557      PFN_vkGetInstanceProcAddr getInstanceProcAddr = dl.template getProcAddress<PFN_vkGetInstanceProcAddr>( "vkGetInstanceProcAddr" );
17558      init( getInstanceProcAddr );
17559    }
17560
17561    void init( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) VULKAN_HPP_NOEXCEPT
17562    {
17563      VULKAN_HPP_ASSERT( getInstanceProcAddr );
17564
17565      vkGetInstanceProcAddr = getInstanceProcAddr;
17566
17567      //=== VK_VERSION_1_0 ===
17568      vkCreateInstance = PFN_vkCreateInstance( vkGetInstanceProcAddr( NULL, "vkCreateInstance" ) );
17569      vkEnumerateInstanceExtensionProperties =
17570        PFN_vkEnumerateInstanceExtensionProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceExtensionProperties" ) );
17571      vkEnumerateInstanceLayerProperties = PFN_vkEnumerateInstanceLayerProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceLayerProperties" ) );
17572
17573      //=== VK_VERSION_1_1 ===
17574      vkEnumerateInstanceVersion = PFN_vkEnumerateInstanceVersion( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceVersion" ) );
17575    }
17576
17577    // This interface does not require a linked vulkan library.
17578    void init( VkInstance                instance,
17579               PFN_vkGetInstanceProcAddr getInstanceProcAddr,
17580               VkDevice                  device              = {},
17581               PFN_vkGetDeviceProcAddr /*getDeviceProcAddr*/ = nullptr ) VULKAN_HPP_NOEXCEPT
17582    {
17583      VULKAN_HPP_ASSERT( instance && getInstanceProcAddr );
17584      vkGetInstanceProcAddr = getInstanceProcAddr;
17585      init( VULKAN_HPP_NAMESPACE::Instance( instance ) );
17586      if ( device )
17587      {
17588        init( VULKAN_HPP_NAMESPACE::Device( device ) );
17589      }
17590    }
17591
17592    void init( VULKAN_HPP_NAMESPACE::Instance instanceCpp ) VULKAN_HPP_NOEXCEPT
17593    {
17594      VkInstance instance = static_cast<VkInstance>( instanceCpp );
17595
17596      //=== VK_VERSION_1_0 ===
17597      vkDestroyInstance                   = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) );
17598      vkEnumeratePhysicalDevices          = PFN_vkEnumeratePhysicalDevices( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ) );
17599      vkGetPhysicalDeviceFeatures         = PFN_vkGetPhysicalDeviceFeatures( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ) );
17600      vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ) );
17601      vkGetPhysicalDeviceImageFormatProperties =
17602        PFN_vkGetPhysicalDeviceImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ) );
17603      vkGetPhysicalDeviceProperties = PFN_vkGetPhysicalDeviceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ) );
17604      vkGetPhysicalDeviceQueueFamilyProperties =
17605        PFN_vkGetPhysicalDeviceQueueFamilyProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) );
17606      vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) );
17607      vkGetDeviceProcAddr                 = PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ) );
17608      vkCreateDevice                      = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) );
17609      vkDestroyDevice                     = PFN_vkDestroyDevice( vkGetInstanceProcAddr( instance, "vkDestroyDevice" ) );
17610      vkEnumerateDeviceExtensionProperties =
17611        PFN_vkEnumerateDeviceExtensionProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) );
17612      vkEnumerateDeviceLayerProperties   = PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) );
17613      vkGetDeviceQueue                   = PFN_vkGetDeviceQueue( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue" ) );
17614      vkQueueSubmit                      = PFN_vkQueueSubmit( vkGetInstanceProcAddr( instance, "vkQueueSubmit" ) );
17615      vkQueueWaitIdle                    = PFN_vkQueueWaitIdle( vkGetInstanceProcAddr( instance, "vkQueueWaitIdle" ) );
17616      vkDeviceWaitIdle                   = PFN_vkDeviceWaitIdle( vkGetInstanceProcAddr( instance, "vkDeviceWaitIdle" ) );
17617      vkAllocateMemory                   = PFN_vkAllocateMemory( vkGetInstanceProcAddr( instance, "vkAllocateMemory" ) );
17618      vkFreeMemory                       = PFN_vkFreeMemory( vkGetInstanceProcAddr( instance, "vkFreeMemory" ) );
17619      vkMapMemory                        = PFN_vkMapMemory( vkGetInstanceProcAddr( instance, "vkMapMemory" ) );
17620      vkUnmapMemory                      = PFN_vkUnmapMemory( vkGetInstanceProcAddr( instance, "vkUnmapMemory" ) );
17621      vkFlushMappedMemoryRanges          = PFN_vkFlushMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkFlushMappedMemoryRanges" ) );
17622      vkInvalidateMappedMemoryRanges     = PFN_vkInvalidateMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkInvalidateMappedMemoryRanges" ) );
17623      vkGetDeviceMemoryCommitment        = PFN_vkGetDeviceMemoryCommitment( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryCommitment" ) );
17624      vkBindBufferMemory                 = PFN_vkBindBufferMemory( vkGetInstanceProcAddr( instance, "vkBindBufferMemory" ) );
17625      vkBindImageMemory                  = PFN_vkBindImageMemory( vkGetInstanceProcAddr( instance, "vkBindImageMemory" ) );
17626      vkGetBufferMemoryRequirements      = PFN_vkGetBufferMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements" ) );
17627      vkGetImageMemoryRequirements       = PFN_vkGetImageMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements" ) );
17628      vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements" ) );
17629      vkGetPhysicalDeviceSparseImageFormatProperties =
17630        PFN_vkGetPhysicalDeviceSparseImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ) );
17631      vkQueueBindSparse            = PFN_vkQueueBindSparse( vkGetInstanceProcAddr( instance, "vkQueueBindSparse" ) );
17632      vkCreateFence                = PFN_vkCreateFence( vkGetInstanceProcAddr( instance, "vkCreateFence" ) );
17633      vkDestroyFence               = PFN_vkDestroyFence( vkGetInstanceProcAddr( instance, "vkDestroyFence" ) );
17634      vkResetFences                = PFN_vkResetFences( vkGetInstanceProcAddr( instance, "vkResetFences" ) );
17635      vkGetFenceStatus             = PFN_vkGetFenceStatus( vkGetInstanceProcAddr( instance, "vkGetFenceStatus" ) );
17636      vkWaitForFences              = PFN_vkWaitForFences( vkGetInstanceProcAddr( instance, "vkWaitForFences" ) );
17637      vkCreateSemaphore            = PFN_vkCreateSemaphore( vkGetInstanceProcAddr( instance, "vkCreateSemaphore" ) );
17638      vkDestroySemaphore           = PFN_vkDestroySemaphore( vkGetInstanceProcAddr( instance, "vkDestroySemaphore" ) );
17639      vkCreateEvent                = PFN_vkCreateEvent( vkGetInstanceProcAddr( instance, "vkCreateEvent" ) );
17640      vkDestroyEvent               = PFN_vkDestroyEvent( vkGetInstanceProcAddr( instance, "vkDestroyEvent" ) );
17641      vkGetEventStatus             = PFN_vkGetEventStatus( vkGetInstanceProcAddr( instance, "vkGetEventStatus" ) );
17642      vkSetEvent                   = PFN_vkSetEvent( vkGetInstanceProcAddr( instance, "vkSetEvent" ) );
17643      vkResetEvent                 = PFN_vkResetEvent( vkGetInstanceProcAddr( instance, "vkResetEvent" ) );
17644      vkCreateQueryPool            = PFN_vkCreateQueryPool( vkGetInstanceProcAddr( instance, "vkCreateQueryPool" ) );
17645      vkDestroyQueryPool           = PFN_vkDestroyQueryPool( vkGetInstanceProcAddr( instance, "vkDestroyQueryPool" ) );
17646      vkGetQueryPoolResults        = PFN_vkGetQueryPoolResults( vkGetInstanceProcAddr( instance, "vkGetQueryPoolResults" ) );
17647      vkCreateBuffer               = PFN_vkCreateBuffer( vkGetInstanceProcAddr( instance, "vkCreateBuffer" ) );
17648      vkDestroyBuffer              = PFN_vkDestroyBuffer( vkGetInstanceProcAddr( instance, "vkDestroyBuffer" ) );
17649      vkCreateBufferView           = PFN_vkCreateBufferView( vkGetInstanceProcAddr( instance, "vkCreateBufferView" ) );
17650      vkDestroyBufferView          = PFN_vkDestroyBufferView( vkGetInstanceProcAddr( instance, "vkDestroyBufferView" ) );
17651      vkCreateImage                = PFN_vkCreateImage( vkGetInstanceProcAddr( instance, "vkCreateImage" ) );
17652      vkDestroyImage               = PFN_vkDestroyImage( vkGetInstanceProcAddr( instance, "vkDestroyImage" ) );
17653      vkGetImageSubresourceLayout  = PFN_vkGetImageSubresourceLayout( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout" ) );
17654      vkCreateImageView            = PFN_vkCreateImageView( vkGetInstanceProcAddr( instance, "vkCreateImageView" ) );
17655      vkDestroyImageView           = PFN_vkDestroyImageView( vkGetInstanceProcAddr( instance, "vkDestroyImageView" ) );
17656      vkCreateShaderModule         = PFN_vkCreateShaderModule( vkGetInstanceProcAddr( instance, "vkCreateShaderModule" ) );
17657      vkDestroyShaderModule        = PFN_vkDestroyShaderModule( vkGetInstanceProcAddr( instance, "vkDestroyShaderModule" ) );
17658      vkCreatePipelineCache        = PFN_vkCreatePipelineCache( vkGetInstanceProcAddr( instance, "vkCreatePipelineCache" ) );
17659      vkDestroyPipelineCache       = PFN_vkDestroyPipelineCache( vkGetInstanceProcAddr( instance, "vkDestroyPipelineCache" ) );
17660      vkGetPipelineCacheData       = PFN_vkGetPipelineCacheData( vkGetInstanceProcAddr( instance, "vkGetPipelineCacheData" ) );
17661      vkMergePipelineCaches        = PFN_vkMergePipelineCaches( vkGetInstanceProcAddr( instance, "vkMergePipelineCaches" ) );
17662      vkCreateGraphicsPipelines    = PFN_vkCreateGraphicsPipelines( vkGetInstanceProcAddr( instance, "vkCreateGraphicsPipelines" ) );
17663      vkCreateComputePipelines     = PFN_vkCreateComputePipelines( vkGetInstanceProcAddr( instance, "vkCreateComputePipelines" ) );
17664      vkDestroyPipeline            = PFN_vkDestroyPipeline( vkGetInstanceProcAddr( instance, "vkDestroyPipeline" ) );
17665      vkCreatePipelineLayout       = PFN_vkCreatePipelineLayout( vkGetInstanceProcAddr( instance, "vkCreatePipelineLayout" ) );
17666      vkDestroyPipelineLayout      = PFN_vkDestroyPipelineLayout( vkGetInstanceProcAddr( instance, "vkDestroyPipelineLayout" ) );
17667      vkCreateSampler              = PFN_vkCreateSampler( vkGetInstanceProcAddr( instance, "vkCreateSampler" ) );
17668      vkDestroySampler             = PFN_vkDestroySampler( vkGetInstanceProcAddr( instance, "vkDestroySampler" ) );
17669      vkCreateDescriptorSetLayout  = PFN_vkCreateDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkCreateDescriptorSetLayout" ) );
17670      vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorSetLayout" ) );
17671      vkCreateDescriptorPool       = PFN_vkCreateDescriptorPool( vkGetInstanceProcAddr( instance, "vkCreateDescriptorPool" ) );
17672      vkDestroyDescriptorPool      = PFN_vkDestroyDescriptorPool( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorPool" ) );
17673      vkResetDescriptorPool        = PFN_vkResetDescriptorPool( vkGetInstanceProcAddr( instance, "vkResetDescriptorPool" ) );
17674      vkAllocateDescriptorSets     = PFN_vkAllocateDescriptorSets( vkGetInstanceProcAddr( instance, "vkAllocateDescriptorSets" ) );
17675      vkFreeDescriptorSets         = PFN_vkFreeDescriptorSets( vkGetInstanceProcAddr( instance, "vkFreeDescriptorSets" ) );
17676      vkUpdateDescriptorSets       = PFN_vkUpdateDescriptorSets( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSets" ) );
17677      vkCreateFramebuffer          = PFN_vkCreateFramebuffer( vkGetInstanceProcAddr( instance, "vkCreateFramebuffer" ) );
17678      vkDestroyFramebuffer         = PFN_vkDestroyFramebuffer( vkGetInstanceProcAddr( instance, "vkDestroyFramebuffer" ) );
17679      vkCreateRenderPass           = PFN_vkCreateRenderPass( vkGetInstanceProcAddr( instance, "vkCreateRenderPass" ) );
17680      vkDestroyRenderPass          = PFN_vkDestroyRenderPass( vkGetInstanceProcAddr( instance, "vkDestroyRenderPass" ) );
17681      vkGetRenderAreaGranularity   = PFN_vkGetRenderAreaGranularity( vkGetInstanceProcAddr( instance, "vkGetRenderAreaGranularity" ) );
17682      vkCreateCommandPool          = PFN_vkCreateCommandPool( vkGetInstanceProcAddr( instance, "vkCreateCommandPool" ) );
17683      vkDestroyCommandPool         = PFN_vkDestroyCommandPool( vkGetInstanceProcAddr( instance, "vkDestroyCommandPool" ) );
17684      vkResetCommandPool           = PFN_vkResetCommandPool( vkGetInstanceProcAddr( instance, "vkResetCommandPool" ) );
17685      vkAllocateCommandBuffers     = PFN_vkAllocateCommandBuffers( vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers" ) );
17686      vkFreeCommandBuffers         = PFN_vkFreeCommandBuffers( vkGetInstanceProcAddr( instance, "vkFreeCommandBuffers" ) );
17687      vkBeginCommandBuffer         = PFN_vkBeginCommandBuffer( vkGetInstanceProcAddr( instance, "vkBeginCommandBuffer" ) );
17688      vkEndCommandBuffer           = PFN_vkEndCommandBuffer( vkGetInstanceProcAddr( instance, "vkEndCommandBuffer" ) );
17689      vkResetCommandBuffer         = PFN_vkResetCommandBuffer( vkGetInstanceProcAddr( instance, "vkResetCommandBuffer" ) );
17690      vkCmdBindPipeline            = PFN_vkCmdBindPipeline( vkGetInstanceProcAddr( instance, "vkCmdBindPipeline" ) );
17691      vkCmdSetViewport             = PFN_vkCmdSetViewport( vkGetInstanceProcAddr( instance, "vkCmdSetViewport" ) );
17692      vkCmdSetScissor              = PFN_vkCmdSetScissor( vkGetInstanceProcAddr( instance, "vkCmdSetScissor" ) );
17693      vkCmdSetLineWidth            = PFN_vkCmdSetLineWidth( vkGetInstanceProcAddr( instance, "vkCmdSetLineWidth" ) );
17694      vkCmdSetDepthBias            = PFN_vkCmdSetDepthBias( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias" ) );
17695      vkCmdSetBlendConstants       = PFN_vkCmdSetBlendConstants( vkGetInstanceProcAddr( instance, "vkCmdSetBlendConstants" ) );
17696      vkCmdSetDepthBounds          = PFN_vkCmdSetDepthBounds( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBounds" ) );
17697      vkCmdSetStencilCompareMask   = PFN_vkCmdSetStencilCompareMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilCompareMask" ) );
17698      vkCmdSetStencilWriteMask     = PFN_vkCmdSetStencilWriteMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilWriteMask" ) );
17699      vkCmdSetStencilReference     = PFN_vkCmdSetStencilReference( vkGetInstanceProcAddr( instance, "vkCmdSetStencilReference" ) );
17700      vkCmdBindDescriptorSets      = PFN_vkCmdBindDescriptorSets( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets" ) );
17701      vkCmdBindIndexBuffer         = PFN_vkCmdBindIndexBuffer( vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer" ) );
17702      vkCmdBindVertexBuffers       = PFN_vkCmdBindVertexBuffers( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers" ) );
17703      vkCmdDraw                    = PFN_vkCmdDraw( vkGetInstanceProcAddr( instance, "vkCmdDraw" ) );
17704      vkCmdDrawIndexed             = PFN_vkCmdDrawIndexed( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexed" ) );
17705      vkCmdDrawIndirect            = PFN_vkCmdDrawIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirect" ) );
17706      vkCmdDrawIndexedIndirect     = PFN_vkCmdDrawIndexedIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirect" ) );
17707      vkCmdDispatch                = PFN_vkCmdDispatch( vkGetInstanceProcAddr( instance, "vkCmdDispatch" ) );
17708      vkCmdDispatchIndirect        = PFN_vkCmdDispatchIndirect( vkGetInstanceProcAddr( instance, "vkCmdDispatchIndirect" ) );
17709      vkCmdCopyBuffer              = PFN_vkCmdCopyBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer" ) );
17710      vkCmdCopyImage               = PFN_vkCmdCopyImage( vkGetInstanceProcAddr( instance, "vkCmdCopyImage" ) );
17711      vkCmdBlitImage               = PFN_vkCmdBlitImage( vkGetInstanceProcAddr( instance, "vkCmdBlitImage" ) );
17712      vkCmdCopyBufferToImage       = PFN_vkCmdCopyBufferToImage( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage" ) );
17713      vkCmdCopyImageToBuffer       = PFN_vkCmdCopyImageToBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer" ) );
17714      vkCmdUpdateBuffer            = PFN_vkCmdUpdateBuffer( vkGetInstanceProcAddr( instance, "vkCmdUpdateBuffer" ) );
17715      vkCmdFillBuffer              = PFN_vkCmdFillBuffer( vkGetInstanceProcAddr( instance, "vkCmdFillBuffer" ) );
17716      vkCmdClearColorImage         = PFN_vkCmdClearColorImage( vkGetInstanceProcAddr( instance, "vkCmdClearColorImage" ) );
17717      vkCmdClearDepthStencilImage  = PFN_vkCmdClearDepthStencilImage( vkGetInstanceProcAddr( instance, "vkCmdClearDepthStencilImage" ) );
17718      vkCmdClearAttachments        = PFN_vkCmdClearAttachments( vkGetInstanceProcAddr( instance, "vkCmdClearAttachments" ) );
17719      vkCmdResolveImage            = PFN_vkCmdResolveImage( vkGetInstanceProcAddr( instance, "vkCmdResolveImage" ) );
17720      vkCmdSetEvent                = PFN_vkCmdSetEvent( vkGetInstanceProcAddr( instance, "vkCmdSetEvent" ) );
17721      vkCmdResetEvent              = PFN_vkCmdResetEvent( vkGetInstanceProcAddr( instance, "vkCmdResetEvent" ) );
17722      vkCmdWaitEvents              = PFN_vkCmdWaitEvents( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents" ) );
17723      vkCmdPipelineBarrier         = PFN_vkCmdPipelineBarrier( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier" ) );
17724      vkCmdBeginQuery              = PFN_vkCmdBeginQuery( vkGetInstanceProcAddr( instance, "vkCmdBeginQuery" ) );
17725      vkCmdEndQuery                = PFN_vkCmdEndQuery( vkGetInstanceProcAddr( instance, "vkCmdEndQuery" ) );
17726      vkCmdResetQueryPool          = PFN_vkCmdResetQueryPool( vkGetInstanceProcAddr( instance, "vkCmdResetQueryPool" ) );
17727      vkCmdWriteTimestamp          = PFN_vkCmdWriteTimestamp( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp" ) );
17728      vkCmdCopyQueryPoolResults    = PFN_vkCmdCopyQueryPoolResults( vkGetInstanceProcAddr( instance, "vkCmdCopyQueryPoolResults" ) );
17729      vkCmdPushConstants           = PFN_vkCmdPushConstants( vkGetInstanceProcAddr( instance, "vkCmdPushConstants" ) );
17730      vkCmdBeginRenderPass         = PFN_vkCmdBeginRenderPass( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass" ) );
17731      vkCmdNextSubpass             = PFN_vkCmdNextSubpass( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass" ) );
17732      vkCmdEndRenderPass           = PFN_vkCmdEndRenderPass( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass" ) );
17733      vkCmdExecuteCommands         = PFN_vkCmdExecuteCommands( vkGetInstanceProcAddr( instance, "vkCmdExecuteCommands" ) );
17734
17735      //=== VK_VERSION_1_1 ===
17736      vkBindBufferMemory2                 = PFN_vkBindBufferMemory2( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2" ) );
17737      vkBindImageMemory2                  = PFN_vkBindImageMemory2( vkGetInstanceProcAddr( instance, "vkBindImageMemory2" ) );
17738      vkGetDeviceGroupPeerMemoryFeatures  = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeatures" ) );
17739      vkCmdSetDeviceMask                  = PFN_vkCmdSetDeviceMask( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMask" ) );
17740      vkCmdDispatchBase                   = PFN_vkCmdDispatchBase( vkGetInstanceProcAddr( instance, "vkCmdDispatchBase" ) );
17741      vkEnumeratePhysicalDeviceGroups     = PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) );
17742      vkGetImageMemoryRequirements2       = PFN_vkGetImageMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2" ) );
17743      vkGetBufferMemoryRequirements2      = PFN_vkGetBufferMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2" ) );
17744      vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2" ) );
17745      vkGetPhysicalDeviceFeatures2        = PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) );
17746      vkGetPhysicalDeviceProperties2      = PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) );
17747      vkGetPhysicalDeviceFormatProperties2 =
17748        PFN_vkGetPhysicalDeviceFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) );
17749      vkGetPhysicalDeviceImageFormatProperties2 =
17750        PFN_vkGetPhysicalDeviceImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) );
17751      vkGetPhysicalDeviceQueueFamilyProperties2 =
17752        PFN_vkGetPhysicalDeviceQueueFamilyProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) );
17753      vkGetPhysicalDeviceMemoryProperties2 =
17754        PFN_vkGetPhysicalDeviceMemoryProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) );
17755      vkGetPhysicalDeviceSparseImageFormatProperties2 =
17756        PFN_vkGetPhysicalDeviceSparseImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ) );
17757      vkTrimCommandPool                 = PFN_vkTrimCommandPool( vkGetInstanceProcAddr( instance, "vkTrimCommandPool" ) );
17758      vkGetDeviceQueue2                 = PFN_vkGetDeviceQueue2( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue2" ) );
17759      vkCreateSamplerYcbcrConversion    = PFN_vkCreateSamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversion" ) );
17760      vkDestroySamplerYcbcrConversion   = PFN_vkDestroySamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversion" ) );
17761      vkCreateDescriptorUpdateTemplate  = PFN_vkCreateDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplate" ) );
17762      vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplate" ) );
17763      vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplate" ) );
17764      vkGetPhysicalDeviceExternalBufferProperties =
17765        PFN_vkGetPhysicalDeviceExternalBufferProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) );
17766      vkGetPhysicalDeviceExternalFenceProperties =
17767        PFN_vkGetPhysicalDeviceExternalFenceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) );
17768      vkGetPhysicalDeviceExternalSemaphoreProperties =
17769        PFN_vkGetPhysicalDeviceExternalSemaphoreProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) );
17770      vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupport" ) );
17771
17772      //=== VK_VERSION_1_2 ===
17773      vkCmdDrawIndirectCount          = PFN_vkCmdDrawIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCount" ) );
17774      vkCmdDrawIndexedIndirectCount   = PFN_vkCmdDrawIndexedIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCount" ) );
17775      vkCreateRenderPass2             = PFN_vkCreateRenderPass2( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2" ) );
17776      vkCmdBeginRenderPass2           = PFN_vkCmdBeginRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2" ) );
17777      vkCmdNextSubpass2               = PFN_vkCmdNextSubpass2( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2" ) );
17778      vkCmdEndRenderPass2             = PFN_vkCmdEndRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2" ) );
17779      vkResetQueryPool                = PFN_vkResetQueryPool( vkGetInstanceProcAddr( instance, "vkResetQueryPool" ) );
17780      vkGetSemaphoreCounterValue      = PFN_vkGetSemaphoreCounterValue( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValue" ) );
17781      vkWaitSemaphores                = PFN_vkWaitSemaphores( vkGetInstanceProcAddr( instance, "vkWaitSemaphores" ) );
17782      vkSignalSemaphore               = PFN_vkSignalSemaphore( vkGetInstanceProcAddr( instance, "vkSignalSemaphore" ) );
17783      vkGetBufferDeviceAddress        = PFN_vkGetBufferDeviceAddress( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddress" ) );
17784      vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddress" ) );
17785      vkGetDeviceMemoryOpaqueCaptureAddress =
17786        PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
17787
17788      //=== VK_VERSION_1_3 ===
17789      vkGetPhysicalDeviceToolProperties   = PFN_vkGetPhysicalDeviceToolProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolProperties" ) );
17790      vkCreatePrivateDataSlot             = PFN_vkCreatePrivateDataSlot( vkGetInstanceProcAddr( instance, "vkCreatePrivateDataSlot" ) );
17791      vkDestroyPrivateDataSlot            = PFN_vkDestroyPrivateDataSlot( vkGetInstanceProcAddr( instance, "vkDestroyPrivateDataSlot" ) );
17792      vkSetPrivateData                    = PFN_vkSetPrivateData( vkGetInstanceProcAddr( instance, "vkSetPrivateData" ) );
17793      vkGetPrivateData                    = PFN_vkGetPrivateData( vkGetInstanceProcAddr( instance, "vkGetPrivateData" ) );
17794      vkCmdSetEvent2                      = PFN_vkCmdSetEvent2( vkGetInstanceProcAddr( instance, "vkCmdSetEvent2" ) );
17795      vkCmdResetEvent2                    = PFN_vkCmdResetEvent2( vkGetInstanceProcAddr( instance, "vkCmdResetEvent2" ) );
17796      vkCmdWaitEvents2                    = PFN_vkCmdWaitEvents2( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents2" ) );
17797      vkCmdPipelineBarrier2               = PFN_vkCmdPipelineBarrier2( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier2" ) );
17798      vkCmdWriteTimestamp2                = PFN_vkCmdWriteTimestamp2( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp2" ) );
17799      vkQueueSubmit2                      = PFN_vkQueueSubmit2( vkGetInstanceProcAddr( instance, "vkQueueSubmit2" ) );
17800      vkCmdCopyBuffer2                    = PFN_vkCmdCopyBuffer2( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer2" ) );
17801      vkCmdCopyImage2                     = PFN_vkCmdCopyImage2( vkGetInstanceProcAddr( instance, "vkCmdCopyImage2" ) );
17802      vkCmdCopyBufferToImage2             = PFN_vkCmdCopyBufferToImage2( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage2" ) );
17803      vkCmdCopyImageToBuffer2             = PFN_vkCmdCopyImageToBuffer2( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer2" ) );
17804      vkCmdBlitImage2                     = PFN_vkCmdBlitImage2( vkGetInstanceProcAddr( instance, "vkCmdBlitImage2" ) );
17805      vkCmdResolveImage2                  = PFN_vkCmdResolveImage2( vkGetInstanceProcAddr( instance, "vkCmdResolveImage2" ) );
17806      vkCmdBeginRendering                 = PFN_vkCmdBeginRendering( vkGetInstanceProcAddr( instance, "vkCmdBeginRendering" ) );
17807      vkCmdEndRendering                   = PFN_vkCmdEndRendering( vkGetInstanceProcAddr( instance, "vkCmdEndRendering" ) );
17808      vkCmdSetCullMode                    = PFN_vkCmdSetCullMode( vkGetInstanceProcAddr( instance, "vkCmdSetCullMode" ) );
17809      vkCmdSetFrontFace                   = PFN_vkCmdSetFrontFace( vkGetInstanceProcAddr( instance, "vkCmdSetFrontFace" ) );
17810      vkCmdSetPrimitiveTopology           = PFN_vkCmdSetPrimitiveTopology( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveTopology" ) );
17811      vkCmdSetViewportWithCount           = PFN_vkCmdSetViewportWithCount( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWithCount" ) );
17812      vkCmdSetScissorWithCount            = PFN_vkCmdSetScissorWithCount( vkGetInstanceProcAddr( instance, "vkCmdSetScissorWithCount" ) );
17813      vkCmdBindVertexBuffers2             = PFN_vkCmdBindVertexBuffers2( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers2" ) );
17814      vkCmdSetDepthTestEnable             = PFN_vkCmdSetDepthTestEnable( vkGetInstanceProcAddr( instance, "vkCmdSetDepthTestEnable" ) );
17815      vkCmdSetDepthWriteEnable            = PFN_vkCmdSetDepthWriteEnable( vkGetInstanceProcAddr( instance, "vkCmdSetDepthWriteEnable" ) );
17816      vkCmdSetDepthCompareOp              = PFN_vkCmdSetDepthCompareOp( vkGetInstanceProcAddr( instance, "vkCmdSetDepthCompareOp" ) );
17817      vkCmdSetDepthBoundsTestEnable       = PFN_vkCmdSetDepthBoundsTestEnable( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBoundsTestEnable" ) );
17818      vkCmdSetStencilTestEnable           = PFN_vkCmdSetStencilTestEnable( vkGetInstanceProcAddr( instance, "vkCmdSetStencilTestEnable" ) );
17819      vkCmdSetStencilOp                   = PFN_vkCmdSetStencilOp( vkGetInstanceProcAddr( instance, "vkCmdSetStencilOp" ) );
17820      vkCmdSetRasterizerDiscardEnable     = PFN_vkCmdSetRasterizerDiscardEnable( vkGetInstanceProcAddr( instance, "vkCmdSetRasterizerDiscardEnable" ) );
17821      vkCmdSetDepthBiasEnable             = PFN_vkCmdSetDepthBiasEnable( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBiasEnable" ) );
17822      vkCmdSetPrimitiveRestartEnable      = PFN_vkCmdSetPrimitiveRestartEnable( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveRestartEnable" ) );
17823      vkGetDeviceBufferMemoryRequirements = PFN_vkGetDeviceBufferMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetDeviceBufferMemoryRequirements" ) );
17824      vkGetDeviceImageMemoryRequirements  = PFN_vkGetDeviceImageMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetDeviceImageMemoryRequirements" ) );
17825      vkGetDeviceImageSparseMemoryRequirements =
17826        PFN_vkGetDeviceImageSparseMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetDeviceImageSparseMemoryRequirements" ) );
17827
17828      //=== VK_KHR_surface ===
17829      vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) );
17830      vkGetPhysicalDeviceSurfaceSupportKHR =
17831        PFN_vkGetPhysicalDeviceSurfaceSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) );
17832      vkGetPhysicalDeviceSurfaceCapabilitiesKHR =
17833        PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) );
17834      vkGetPhysicalDeviceSurfaceFormatsKHR =
17835        PFN_vkGetPhysicalDeviceSurfaceFormatsKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) );
17836      vkGetPhysicalDeviceSurfacePresentModesKHR =
17837        PFN_vkGetPhysicalDeviceSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) );
17838
17839      //=== VK_KHR_swapchain ===
17840      vkCreateSwapchainKHR    = PFN_vkCreateSwapchainKHR( vkGetInstanceProcAddr( instance, "vkCreateSwapchainKHR" ) );
17841      vkDestroySwapchainKHR   = PFN_vkDestroySwapchainKHR( vkGetInstanceProcAddr( instance, "vkDestroySwapchainKHR" ) );
17842      vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainImagesKHR" ) );
17843      vkAcquireNextImageKHR   = PFN_vkAcquireNextImageKHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImageKHR" ) );
17844      vkQueuePresentKHR       = PFN_vkQueuePresentKHR( vkGetInstanceProcAddr( instance, "vkQueuePresentKHR" ) );
17845      vkGetDeviceGroupPresentCapabilitiesKHR =
17846        PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
17847      vkGetDeviceGroupSurfacePresentModesKHR =
17848        PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
17849      vkGetPhysicalDevicePresentRectanglesKHR =
17850        PFN_vkGetPhysicalDevicePresentRectanglesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) );
17851      vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImage2KHR" ) );
17852
17853      //=== VK_KHR_display ===
17854      vkGetPhysicalDeviceDisplayPropertiesKHR =
17855        PFN_vkGetPhysicalDeviceDisplayPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) );
17856      vkGetPhysicalDeviceDisplayPlanePropertiesKHR =
17857        PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) );
17858      vkGetDisplayPlaneSupportedDisplaysKHR =
17859        PFN_vkGetDisplayPlaneSupportedDisplaysKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) );
17860      vkGetDisplayModePropertiesKHR    = PFN_vkGetDisplayModePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ) );
17861      vkCreateDisplayModeKHR           = PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) );
17862      vkGetDisplayPlaneCapabilitiesKHR = PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) );
17863      vkCreateDisplayPlaneSurfaceKHR   = PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) );
17864
17865      //=== VK_KHR_display_swapchain ===
17866      vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetInstanceProcAddr( instance, "vkCreateSharedSwapchainsKHR" ) );
17867
17868#if defined( VK_USE_PLATFORM_XLIB_KHR )
17869      //=== VK_KHR_xlib_surface ===
17870      vkCreateXlibSurfaceKHR = PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) );
17871      vkGetPhysicalDeviceXlibPresentationSupportKHR =
17872        PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) );
17873#endif /*VK_USE_PLATFORM_XLIB_KHR*/
17874
17875#if defined( VK_USE_PLATFORM_XCB_KHR )
17876      //=== VK_KHR_xcb_surface ===
17877      vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) );
17878      vkGetPhysicalDeviceXcbPresentationSupportKHR =
17879        PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) );
17880#endif /*VK_USE_PLATFORM_XCB_KHR*/
17881
17882#if defined( VK_USE_PLATFORM_WAYLAND_KHR )
17883      //=== VK_KHR_wayland_surface ===
17884      vkCreateWaylandSurfaceKHR = PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) );
17885      vkGetPhysicalDeviceWaylandPresentationSupportKHR =
17886        PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) );
17887#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
17888
17889#if defined( VK_USE_PLATFORM_ANDROID_KHR )
17890      //=== VK_KHR_android_surface ===
17891      vkCreateAndroidSurfaceKHR = PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) );
17892#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
17893
17894#if defined( VK_USE_PLATFORM_WIN32_KHR )
17895      //=== VK_KHR_win32_surface ===
17896      vkCreateWin32SurfaceKHR = PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) );
17897      vkGetPhysicalDeviceWin32PresentationSupportKHR =
17898        PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) );
17899#endif /*VK_USE_PLATFORM_WIN32_KHR*/
17900
17901#if defined( VK_USE_PLATFORM_OHOS )
17902      //=== VK_OHOS_surface ===
17903      vkCreateSurfaceOHOS = PFN_vkCreateSurfaceOHOS( vkGetInstanceProcAddr( instance, "vkCreateSurfaceOHOS" ) );
17904#endif /*VK_USE_PLATFORM_OHOS*/
17905
17906      //=== VK_EXT_debug_report ===
17907      vkCreateDebugReportCallbackEXT  = PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) );
17908      vkDestroyDebugReportCallbackEXT = PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) );
17909      vkDebugReportMessageEXT         = PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) );
17910
17911      //=== VK_EXT_debug_marker ===
17912      vkDebugMarkerSetObjectTagEXT  = PFN_vkDebugMarkerSetObjectTagEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectTagEXT" ) );
17913      vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectNameEXT" ) );
17914      vkCmdDebugMarkerBeginEXT      = PFN_vkCmdDebugMarkerBeginEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerBeginEXT" ) );
17915      vkCmdDebugMarkerEndEXT        = PFN_vkCmdDebugMarkerEndEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" ) );
17916      vkCmdDebugMarkerInsertEXT     = PFN_vkCmdDebugMarkerInsertEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" ) );
17917
17918      //=== VK_KHR_video_queue ===
17919      vkGetPhysicalDeviceVideoCapabilitiesKHR =
17920        PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoCapabilitiesKHR" ) );
17921      vkGetPhysicalDeviceVideoFormatPropertiesKHR =
17922        PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoFormatPropertiesKHR" ) );
17923      vkCreateVideoSessionKHR  = PFN_vkCreateVideoSessionKHR( vkGetInstanceProcAddr( instance, "vkCreateVideoSessionKHR" ) );
17924      vkDestroyVideoSessionKHR = PFN_vkDestroyVideoSessionKHR( vkGetInstanceProcAddr( instance, "vkDestroyVideoSessionKHR" ) );
17925      vkGetVideoSessionMemoryRequirementsKHR =
17926        PFN_vkGetVideoSessionMemoryRequirementsKHR( vkGetInstanceProcAddr( instance, "vkGetVideoSessionMemoryRequirementsKHR" ) );
17927      vkBindVideoSessionMemoryKHR        = PFN_vkBindVideoSessionMemoryKHR( vkGetInstanceProcAddr( instance, "vkBindVideoSessionMemoryKHR" ) );
17928      vkCreateVideoSessionParametersKHR  = PFN_vkCreateVideoSessionParametersKHR( vkGetInstanceProcAddr( instance, "vkCreateVideoSessionParametersKHR" ) );
17929      vkUpdateVideoSessionParametersKHR  = PFN_vkUpdateVideoSessionParametersKHR( vkGetInstanceProcAddr( instance, "vkUpdateVideoSessionParametersKHR" ) );
17930      vkDestroyVideoSessionParametersKHR = PFN_vkDestroyVideoSessionParametersKHR( vkGetInstanceProcAddr( instance, "vkDestroyVideoSessionParametersKHR" ) );
17931      vkCmdBeginVideoCodingKHR           = PFN_vkCmdBeginVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdBeginVideoCodingKHR" ) );
17932      vkCmdEndVideoCodingKHR             = PFN_vkCmdEndVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdEndVideoCodingKHR" ) );
17933      vkCmdControlVideoCodingKHR         = PFN_vkCmdControlVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdControlVideoCodingKHR" ) );
17934
17935      //=== VK_KHR_video_decode_queue ===
17936      vkCmdDecodeVideoKHR = PFN_vkCmdDecodeVideoKHR( vkGetInstanceProcAddr( instance, "vkCmdDecodeVideoKHR" ) );
17937
17938      //=== VK_EXT_transform_feedback ===
17939      vkCmdBindTransformFeedbackBuffersEXT =
17940        PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetInstanceProcAddr( instance, "vkCmdBindTransformFeedbackBuffersEXT" ) );
17941      vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginTransformFeedbackEXT" ) );
17942      vkCmdEndTransformFeedbackEXT   = PFN_vkCmdEndTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdEndTransformFeedbackEXT" ) );
17943      vkCmdBeginQueryIndexedEXT      = PFN_vkCmdBeginQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginQueryIndexedEXT" ) );
17944      vkCmdEndQueryIndexedEXT        = PFN_vkCmdEndQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdEndQueryIndexedEXT" ) );
17945      vkCmdDrawIndirectByteCountEXT  = PFN_vkCmdDrawIndirectByteCountEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectByteCountEXT" ) );
17946
17947      //=== VK_NVX_binary_import ===
17948      vkCreateCuModuleNVX    = PFN_vkCreateCuModuleNVX( vkGetInstanceProcAddr( instance, "vkCreateCuModuleNVX" ) );
17949      vkCreateCuFunctionNVX  = PFN_vkCreateCuFunctionNVX( vkGetInstanceProcAddr( instance, "vkCreateCuFunctionNVX" ) );
17950      vkDestroyCuModuleNVX   = PFN_vkDestroyCuModuleNVX( vkGetInstanceProcAddr( instance, "vkDestroyCuModuleNVX" ) );
17951      vkDestroyCuFunctionNVX = PFN_vkDestroyCuFunctionNVX( vkGetInstanceProcAddr( instance, "vkDestroyCuFunctionNVX" ) );
17952      vkCmdCuLaunchKernelNVX = PFN_vkCmdCuLaunchKernelNVX( vkGetInstanceProcAddr( instance, "vkCmdCuLaunchKernelNVX" ) );
17953
17954      //=== VK_NVX_image_view_handle ===
17955      vkGetImageViewHandleNVX  = PFN_vkGetImageViewHandleNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewHandleNVX" ) );
17956      vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewAddressNVX" ) );
17957
17958      //=== VK_AMD_draw_indirect_count ===
17959      vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountAMD" ) );
17960      if ( !vkCmdDrawIndirectCount )
17961        vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD;
17962      vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountAMD" ) );
17963      if ( !vkCmdDrawIndexedIndirectCount )
17964        vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD;
17965
17966      //=== VK_AMD_shader_info ===
17967      vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetInstanceProcAddr( instance, "vkGetShaderInfoAMD" ) );
17968
17969      //=== VK_KHR_dynamic_rendering ===
17970      vkCmdBeginRenderingKHR = PFN_vkCmdBeginRenderingKHR( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderingKHR" ) );
17971      if ( !vkCmdBeginRendering )
17972        vkCmdBeginRendering = vkCmdBeginRenderingKHR;
17973      vkCmdEndRenderingKHR = PFN_vkCmdEndRenderingKHR( vkGetInstanceProcAddr( instance, "vkCmdEndRenderingKHR" ) );
17974      if ( !vkCmdEndRendering )
17975        vkCmdEndRendering = vkCmdEndRenderingKHR;
17976
17977#if defined( VK_USE_PLATFORM_GGP )
17978      //=== VK_GGP_stream_descriptor_surface ===
17979      vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP( vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) );
17980#endif /*VK_USE_PLATFORM_GGP*/
17981
17982      //=== VK_NV_external_memory_capabilities ===
17983      vkGetPhysicalDeviceExternalImageFormatPropertiesNV =
17984        PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) );
17985
17986#if defined( VK_USE_PLATFORM_WIN32_KHR )
17987      //=== VK_NV_external_memory_win32 ===
17988      vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleNV" ) );
17989#endif /*VK_USE_PLATFORM_WIN32_KHR*/
17990
17991      //=== VK_KHR_get_physical_device_properties2 ===
17992      vkGetPhysicalDeviceFeatures2KHR = PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) );
17993      if ( !vkGetPhysicalDeviceFeatures2 )
17994        vkGetPhysicalDeviceFeatures2 = vkGetPhysicalDeviceFeatures2KHR;
17995      vkGetPhysicalDeviceProperties2KHR = PFN_vkGetPhysicalDeviceProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) );
17996      if ( !vkGetPhysicalDeviceProperties2 )
17997        vkGetPhysicalDeviceProperties2 = vkGetPhysicalDeviceProperties2KHR;
17998      vkGetPhysicalDeviceFormatProperties2KHR =
17999        PFN_vkGetPhysicalDeviceFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ) );
18000      if ( !vkGetPhysicalDeviceFormatProperties2 )
18001        vkGetPhysicalDeviceFormatProperties2 = vkGetPhysicalDeviceFormatProperties2KHR;
18002      vkGetPhysicalDeviceImageFormatProperties2KHR =
18003        PFN_vkGetPhysicalDeviceImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ) );
18004      if ( !vkGetPhysicalDeviceImageFormatProperties2 )
18005        vkGetPhysicalDeviceImageFormatProperties2 = vkGetPhysicalDeviceImageFormatProperties2KHR;
18006      vkGetPhysicalDeviceQueueFamilyProperties2KHR =
18007        PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ) );
18008      if ( !vkGetPhysicalDeviceQueueFamilyProperties2 )
18009        vkGetPhysicalDeviceQueueFamilyProperties2 = vkGetPhysicalDeviceQueueFamilyProperties2KHR;
18010      vkGetPhysicalDeviceMemoryProperties2KHR =
18011        PFN_vkGetPhysicalDeviceMemoryProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) );
18012      if ( !vkGetPhysicalDeviceMemoryProperties2 )
18013        vkGetPhysicalDeviceMemoryProperties2 = vkGetPhysicalDeviceMemoryProperties2KHR;
18014      vkGetPhysicalDeviceSparseImageFormatProperties2KHR =
18015        PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ) );
18016      if ( !vkGetPhysicalDeviceSparseImageFormatProperties2 )
18017        vkGetPhysicalDeviceSparseImageFormatProperties2 = vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
18018
18019      //=== VK_KHR_device_group ===
18020      vkGetDeviceGroupPeerMemoryFeaturesKHR =
18021        PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
18022      if ( !vkGetDeviceGroupPeerMemoryFeatures )
18023        vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
18024      vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMaskKHR" ) );
18025      if ( !vkCmdSetDeviceMask )
18026        vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
18027      vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetInstanceProcAddr( instance, "vkCmdDispatchBaseKHR" ) );
18028      if ( !vkCmdDispatchBase )
18029        vkCmdDispatchBase = vkCmdDispatchBaseKHR;
18030
18031#if defined( VK_USE_PLATFORM_VI_NN )
18032      //=== VK_NN_vi_surface ===
18033      vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) );
18034#endif /*VK_USE_PLATFORM_VI_NN*/
18035
18036      //=== VK_KHR_maintenance1 ===
18037      vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetInstanceProcAddr( instance, "vkTrimCommandPoolKHR" ) );
18038      if ( !vkTrimCommandPool )
18039        vkTrimCommandPool = vkTrimCommandPoolKHR;
18040
18041      //=== VK_KHR_device_group_creation ===
18042      vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) );
18043      if ( !vkEnumeratePhysicalDeviceGroups )
18044        vkEnumeratePhysicalDeviceGroups = vkEnumeratePhysicalDeviceGroupsKHR;
18045
18046      //=== VK_KHR_external_memory_capabilities ===
18047      vkGetPhysicalDeviceExternalBufferPropertiesKHR =
18048        PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) );
18049      if ( !vkGetPhysicalDeviceExternalBufferProperties )
18050        vkGetPhysicalDeviceExternalBufferProperties = vkGetPhysicalDeviceExternalBufferPropertiesKHR;
18051
18052#if defined( VK_USE_PLATFORM_WIN32_KHR )
18053      //=== VK_KHR_external_memory_win32 ===
18054      vkGetMemoryWin32HandleKHR           = PFN_vkGetMemoryWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleKHR" ) );
18055      vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandlePropertiesKHR" ) );
18056#endif /*VK_USE_PLATFORM_WIN32_KHR*/
18057
18058      //=== VK_KHR_external_memory_fd ===
18059      vkGetMemoryFdKHR           = PFN_vkGetMemoryFdKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdKHR" ) );
18060      vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdPropertiesKHR" ) );
18061
18062      //=== VK_KHR_external_semaphore_capabilities ===
18063      vkGetPhysicalDeviceExternalSemaphorePropertiesKHR =
18064        PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) );
18065      if ( !vkGetPhysicalDeviceExternalSemaphoreProperties )
18066        vkGetPhysicalDeviceExternalSemaphoreProperties = vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
18067
18068#if defined( VK_USE_PLATFORM_WIN32_KHR )
18069      //=== VK_KHR_external_semaphore_win32 ===
18070      vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreWin32HandleKHR" ) );
18071      vkGetSemaphoreWin32HandleKHR    = PFN_vkGetSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreWin32HandleKHR" ) );
18072#endif /*VK_USE_PLATFORM_WIN32_KHR*/
18073
18074      //=== VK_KHR_external_semaphore_fd ===
18075      vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreFdKHR" ) );
18076      vkGetSemaphoreFdKHR    = PFN_vkGetSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreFdKHR" ) );
18077
18078      //=== VK_KHR_push_descriptor ===
18079      vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetKHR" ) );
18080      vkCmdPushDescriptorSetWithTemplateKHR =
18081        PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
18082
18083      //=== VK_EXT_conditional_rendering ===
18084      vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginConditionalRenderingEXT" ) );
18085      vkCmdEndConditionalRenderingEXT   = PFN_vkCmdEndConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdEndConditionalRenderingEXT" ) );
18086
18087      //=== VK_KHR_descriptor_update_template ===
18088      vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplateKHR" ) );
18089      if ( !vkCreateDescriptorUpdateTemplate )
18090        vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
18091      vkDestroyDescriptorUpdateTemplateKHR =
18092        PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplateKHR" ) );
18093      if ( !vkDestroyDescriptorUpdateTemplate )
18094        vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
18095      vkUpdateDescriptorSetWithTemplateKHR =
18096        PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplateKHR" ) );
18097      if ( !vkUpdateDescriptorSetWithTemplate )
18098        vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
18099
18100      //=== VK_NV_clip_space_w_scaling ===
18101      vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingNV" ) );
18102
18103      //=== VK_EXT_direct_mode_display ===
18104      vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) );
18105
18106#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
18107      //=== VK_EXT_acquire_xlib_display ===
18108      vkAcquireXlibDisplayEXT    = PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) );
18109      vkGetRandROutputDisplayEXT = PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) );
18110#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
18111
18112      //=== VK_EXT_display_surface_counter ===
18113      vkGetPhysicalDeviceSurfaceCapabilities2EXT =
18114        PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) );
18115
18116      //=== VK_EXT_display_control ===
18117      vkDisplayPowerControlEXT  = PFN_vkDisplayPowerControlEXT( vkGetInstanceProcAddr( instance, "vkDisplayPowerControlEXT" ) );
18118      vkRegisterDeviceEventEXT  = PFN_vkRegisterDeviceEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDeviceEventEXT" ) );
18119      vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDisplayEventEXT" ) );
18120      vkGetSwapchainCounterEXT  = PFN_vkGetSwapchainCounterEXT( vkGetInstanceProcAddr( instance, "vkGetSwapchainCounterEXT" ) );
18121
18122      //=== VK_GOOGLE_display_timing ===
18123      vkGetRefreshCycleDurationGOOGLE   = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetInstanceProcAddr( instance, "vkGetRefreshCycleDurationGOOGLE" ) );
18124      vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" ) );
18125
18126      //=== VK_EXT_discard_rectangles ===
18127      vkCmdSetDiscardRectangleEXT       = PFN_vkCmdSetDiscardRectangleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ) );
18128      vkCmdSetDiscardRectangleEnableEXT = PFN_vkCmdSetDiscardRectangleEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEnableEXT" ) );
18129      vkCmdSetDiscardRectangleModeEXT   = PFN_vkCmdSetDiscardRectangleModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleModeEXT" ) );
18130
18131      //=== VK_EXT_hdr_metadata ===
18132      vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" ) );
18133
18134      //=== VK_KHR_create_renderpass2 ===
18135      vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2KHR" ) );
18136      if ( !vkCreateRenderPass2 )
18137        vkCreateRenderPass2 = vkCreateRenderPass2KHR;
18138      vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2KHR" ) );
18139      if ( !vkCmdBeginRenderPass2 )
18140        vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
18141      vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2KHR" ) );
18142      if ( !vkCmdNextSubpass2 )
18143        vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
18144      vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2KHR" ) );
18145      if ( !vkCmdEndRenderPass2 )
18146        vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
18147
18148      //=== VK_KHR_shared_presentable_image ===
18149      vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainStatusKHR" ) );
18150
18151      //=== VK_KHR_external_fence_capabilities ===
18152      vkGetPhysicalDeviceExternalFencePropertiesKHR =
18153        PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) );
18154      if ( !vkGetPhysicalDeviceExternalFenceProperties )
18155        vkGetPhysicalDeviceExternalFenceProperties = vkGetPhysicalDeviceExternalFencePropertiesKHR;
18156
18157#if defined( VK_USE_PLATFORM_WIN32_KHR )
18158      //=== VK_KHR_external_fence_win32 ===
18159      vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportFenceWin32HandleKHR" ) );
18160      vkGetFenceWin32HandleKHR    = PFN_vkGetFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetFenceWin32HandleKHR" ) );
18161#endif /*VK_USE_PLATFORM_WIN32_KHR*/
18162
18163      //=== VK_KHR_external_fence_fd ===
18164      vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetInstanceProcAddr( instance, "vkImportFenceFdKHR" ) );
18165      vkGetFenceFdKHR    = PFN_vkGetFenceFdKHR( vkGetInstanceProcAddr( instance, "vkGetFenceFdKHR" ) );
18166
18167      //=== VK_KHR_performance_query ===
18168      vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
18169        vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" ) );
18170      vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
18171        vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" ) );
18172      vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkAcquireProfilingLockKHR" ) );
18173      vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkReleaseProfilingLockKHR" ) );
18174
18175      //=== VK_KHR_get_surface_capabilities2 ===
18176      vkGetPhysicalDeviceSurfaceCapabilities2KHR =
18177        PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) );
18178      vkGetPhysicalDeviceSurfaceFormats2KHR =
18179        PFN_vkGetPhysicalDeviceSurfaceFormats2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) );
18180
18181      //=== VK_KHR_get_display_properties2 ===
18182      vkGetPhysicalDeviceDisplayProperties2KHR =
18183        PFN_vkGetPhysicalDeviceDisplayProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) );
18184      vkGetPhysicalDeviceDisplayPlaneProperties2KHR =
18185        PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) );
18186      vkGetDisplayModeProperties2KHR    = PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) );
18187      vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) );
18188
18189#if defined( VK_USE_PLATFORM_IOS_MVK )
18190      //=== VK_MVK_ios_surface ===
18191      vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ) );
18192#endif /*VK_USE_PLATFORM_IOS_MVK*/
18193
18194#if defined( VK_USE_PLATFORM_MACOS_MVK )
18195      //=== VK_MVK_macos_surface ===
18196      vkCreateMacOSSurfaceMVK = PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) );
18197#endif /*VK_USE_PLATFORM_MACOS_MVK*/
18198
18199      //=== VK_EXT_debug_utils ===
18200      vkSetDebugUtilsObjectNameEXT    = PFN_vkSetDebugUtilsObjectNameEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectNameEXT" ) );
18201      vkSetDebugUtilsObjectTagEXT     = PFN_vkSetDebugUtilsObjectTagEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectTagEXT" ) );
18202      vkQueueBeginDebugUtilsLabelEXT  = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueBeginDebugUtilsLabelEXT" ) );
18203      vkQueueEndDebugUtilsLabelEXT    = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueEndDebugUtilsLabelEXT" ) );
18204      vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueInsertDebugUtilsLabelEXT" ) );
18205      vkCmdBeginDebugUtilsLabelEXT    = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginDebugUtilsLabelEXT" ) );
18206      vkCmdEndDebugUtilsLabelEXT      = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdEndDebugUtilsLabelEXT" ) );
18207      vkCmdInsertDebugUtilsLabelEXT   = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdInsertDebugUtilsLabelEXT" ) );
18208      vkCreateDebugUtilsMessengerEXT  = PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) );
18209      vkDestroyDebugUtilsMessengerEXT = PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) );
18210      vkSubmitDebugUtilsMessageEXT    = PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) );
18211
18212#if defined( VK_USE_PLATFORM_ANDROID_KHR )
18213      //=== VK_ANDROID_external_memory_android_hardware_buffer ===
18214      vkGetAndroidHardwareBufferPropertiesANDROID =
18215        PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetInstanceProcAddr( instance, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
18216      vkGetMemoryAndroidHardwareBufferANDROID =
18217        PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetInstanceProcAddr( instance, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
18218#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
18219
18220#if defined( VK_ENABLE_BETA_EXTENSIONS )
18221      //=== VK_AMDX_shader_enqueue ===
18222      vkCreateExecutionGraphPipelinesAMDX = PFN_vkCreateExecutionGraphPipelinesAMDX( vkGetInstanceProcAddr( instance, "vkCreateExecutionGraphPipelinesAMDX" ) );
18223      vkGetExecutionGraphPipelineScratchSizeAMDX =
18224        PFN_vkGetExecutionGraphPipelineScratchSizeAMDX( vkGetInstanceProcAddr( instance, "vkGetExecutionGraphPipelineScratchSizeAMDX" ) );
18225      vkGetExecutionGraphPipelineNodeIndexAMDX =
18226        PFN_vkGetExecutionGraphPipelineNodeIndexAMDX( vkGetInstanceProcAddr( instance, "vkGetExecutionGraphPipelineNodeIndexAMDX" ) );
18227      vkCmdInitializeGraphScratchMemoryAMDX =
18228        PFN_vkCmdInitializeGraphScratchMemoryAMDX( vkGetInstanceProcAddr( instance, "vkCmdInitializeGraphScratchMemoryAMDX" ) );
18229      vkCmdDispatchGraphAMDX              = PFN_vkCmdDispatchGraphAMDX( vkGetInstanceProcAddr( instance, "vkCmdDispatchGraphAMDX" ) );
18230      vkCmdDispatchGraphIndirectAMDX      = PFN_vkCmdDispatchGraphIndirectAMDX( vkGetInstanceProcAddr( instance, "vkCmdDispatchGraphIndirectAMDX" ) );
18231      vkCmdDispatchGraphIndirectCountAMDX = PFN_vkCmdDispatchGraphIndirectCountAMDX( vkGetInstanceProcAddr( instance, "vkCmdDispatchGraphIndirectCountAMDX" ) );
18232#endif /*VK_ENABLE_BETA_EXTENSIONS*/
18233
18234      //=== VK_EXT_sample_locations ===
18235      vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEXT" ) );
18236      vkGetPhysicalDeviceMultisamplePropertiesEXT =
18237        PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) );
18238
18239      //=== VK_KHR_get_memory_requirements2 ===
18240      vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2KHR" ) );
18241      if ( !vkGetImageMemoryRequirements2 )
18242        vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
18243      vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2KHR" ) );
18244      if ( !vkGetBufferMemoryRequirements2 )
18245        vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
18246      vkGetImageSparseMemoryRequirements2KHR =
18247        PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2KHR" ) );
18248      if ( !vkGetImageSparseMemoryRequirements2 )
18249        vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
18250
18251      //=== VK_KHR_acceleration_structure ===
18252      vkCreateAccelerationStructureKHR    = PFN_vkCreateAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureKHR" ) );
18253      vkDestroyAccelerationStructureKHR   = PFN_vkDestroyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureKHR" ) );
18254      vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresKHR" ) );
18255      vkCmdBuildAccelerationStructuresIndirectKHR =
18256        PFN_vkCmdBuildAccelerationStructuresIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresIndirectKHR" ) );
18257      vkBuildAccelerationStructuresKHR = PFN_vkBuildAccelerationStructuresKHR( vkGetInstanceProcAddr( instance, "vkBuildAccelerationStructuresKHR" ) );
18258      vkCopyAccelerationStructureKHR   = PFN_vkCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureKHR" ) );
18259      vkCopyAccelerationStructureToMemoryKHR =
18260        PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureToMemoryKHR" ) );
18261      vkCopyMemoryToAccelerationStructureKHR =
18262        PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyMemoryToAccelerationStructureKHR" ) );
18263      vkWriteAccelerationStructuresPropertiesKHR =
18264        PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkWriteAccelerationStructuresPropertiesKHR" ) );
18265      vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureKHR" ) );
18266      vkCmdCopyAccelerationStructureToMemoryKHR =
18267        PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
18268      vkCmdCopyMemoryToAccelerationStructureKHR =
18269        PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
18270      vkGetAccelerationStructureDeviceAddressKHR =
18271        PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureDeviceAddressKHR" ) );
18272      vkCmdWriteAccelerationStructuresPropertiesKHR =
18273        PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
18274      vkGetDeviceAccelerationStructureCompatibilityKHR =
18275        PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
18276      vkGetAccelerationStructureBuildSizesKHR =
18277        PFN_vkGetAccelerationStructureBuildSizesKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureBuildSizesKHR" ) );
18278
18279      //=== VK_KHR_ray_tracing_pipeline ===
18280      vkCmdTraceRaysKHR              = PFN_vkCmdTraceRaysKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysKHR" ) );
18281      vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesKHR" ) );
18282      vkGetRayTracingShaderGroupHandlesKHR =
18283        PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesKHR" ) );
18284      vkGetRayTracingCaptureReplayShaderGroupHandlesKHR =
18285        PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
18286      vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirectKHR" ) );
18287      vkGetRayTracingShaderGroupStackSizeKHR =
18288        PFN_vkGetRayTracingShaderGroupStackSizeKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupStackSizeKHR" ) );
18289      vkCmdSetRayTracingPipelineStackSizeKHR =
18290        PFN_vkCmdSetRayTracingPipelineStackSizeKHR( vkGetInstanceProcAddr( instance, "vkCmdSetRayTracingPipelineStackSizeKHR" ) );
18291
18292      //=== VK_KHR_sampler_ycbcr_conversion ===
18293      vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversionKHR" ) );
18294      if ( !vkCreateSamplerYcbcrConversion )
18295        vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR;
18296      vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversionKHR" ) );
18297      if ( !vkDestroySamplerYcbcrConversion )
18298        vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR;
18299
18300      //=== VK_KHR_bind_memory2 ===
18301      vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2KHR" ) );
18302      if ( !vkBindBufferMemory2 )
18303        vkBindBufferMemory2 = vkBindBufferMemory2KHR;
18304      vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindImageMemory2KHR" ) );
18305      if ( !vkBindImageMemory2 )
18306        vkBindImageMemory2 = vkBindImageMemory2KHR;
18307
18308      //=== VK_EXT_image_drm_format_modifier ===
18309      vkGetImageDrmFormatModifierPropertiesEXT =
18310        PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
18311
18312      //=== VK_EXT_validation_cache ===
18313      vkCreateValidationCacheEXT  = PFN_vkCreateValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkCreateValidationCacheEXT" ) );
18314      vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkDestroyValidationCacheEXT" ) );
18315      vkMergeValidationCachesEXT  = PFN_vkMergeValidationCachesEXT( vkGetInstanceProcAddr( instance, "vkMergeValidationCachesEXT" ) );
18316      vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetInstanceProcAddr( instance, "vkGetValidationCacheDataEXT" ) );
18317
18318      //=== VK_NV_shading_rate_image ===
18319      vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetInstanceProcAddr( instance, "vkCmdBindShadingRateImageNV" ) );
18320      vkCmdSetViewportShadingRatePaletteNV =
18321        PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportShadingRatePaletteNV" ) );
18322      vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoarseSampleOrderNV" ) );
18323
18324      //=== VK_NV_ray_tracing ===
18325      vkCreateAccelerationStructureNV  = PFN_vkCreateAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureNV" ) );
18326      vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureNV" ) );
18327      vkGetAccelerationStructureMemoryRequirementsNV =
18328        PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
18329      vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryNV" ) );
18330      vkCmdBuildAccelerationStructureNV   = PFN_vkCmdBuildAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureNV" ) );
18331      vkCmdCopyAccelerationStructureNV    = PFN_vkCmdCopyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureNV" ) );
18332      vkCmdTraceRaysNV                    = PFN_vkCmdTraceRaysNV( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysNV" ) );
18333      vkCreateRayTracingPipelinesNV       = PFN_vkCreateRayTracingPipelinesNV( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesNV" ) );
18334      vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesNV" ) );
18335      if ( !vkGetRayTracingShaderGroupHandlesKHR )
18336        vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
18337      vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureHandleNV" ) );
18338      vkCmdWriteAccelerationStructuresPropertiesNV =
18339        PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
18340      vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetInstanceProcAddr( instance, "vkCompileDeferredNV" ) );
18341
18342      //=== VK_KHR_maintenance3 ===
18343      vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupportKHR" ) );
18344      if ( !vkGetDescriptorSetLayoutSupport )
18345        vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
18346
18347      //=== VK_KHR_draw_indirect_count ===
18348      vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountKHR" ) );
18349      if ( !vkCmdDrawIndirectCount )
18350        vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
18351      vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountKHR" ) );
18352      if ( !vkCmdDrawIndexedIndirectCount )
18353        vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
18354
18355      //=== VK_EXT_external_memory_host ===
18356      vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetMemoryHostPointerPropertiesEXT" ) );
18357
18358      //=== VK_AMD_buffer_marker ===
18359      vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarkerAMD" ) );
18360
18361      //=== VK_EXT_calibrated_timestamps ===
18362      vkGetPhysicalDeviceCalibrateableTimeDomainsEXT =
18363        PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) );
18364      if ( !vkGetPhysicalDeviceCalibrateableTimeDomainsKHR )
18365        vkGetPhysicalDeviceCalibrateableTimeDomainsKHR = vkGetPhysicalDeviceCalibrateableTimeDomainsEXT;
18366      vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsEXT" ) );
18367      if ( !vkGetCalibratedTimestampsKHR )
18368        vkGetCalibratedTimestampsKHR = vkGetCalibratedTimestampsEXT;
18369
18370      //=== VK_NV_mesh_shader ===
18371      vkCmdDrawMeshTasksNV              = PFN_vkCmdDrawMeshTasksNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksNV" ) );
18372      vkCmdDrawMeshTasksIndirectNV      = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectNV" ) );
18373      vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountNV" ) );
18374
18375      //=== VK_NV_scissor_exclusive ===
18376      vkCmdSetExclusiveScissorEnableNV = PFN_vkCmdSetExclusiveScissorEnableNV( vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorEnableNV" ) );
18377      vkCmdSetExclusiveScissorNV       = PFN_vkCmdSetExclusiveScissorNV( vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" ) );
18378
18379      //=== VK_NV_device_diagnostic_checkpoints ===
18380      vkCmdSetCheckpointNV       = PFN_vkCmdSetCheckpointNV( vkGetInstanceProcAddr( instance, "vkCmdSetCheckpointNV" ) );
18381      vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointDataNV" ) );
18382
18383      //=== VK_KHR_timeline_semaphore ===
18384      vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValueKHR" ) );
18385      if ( !vkGetSemaphoreCounterValue )
18386        vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
18387      vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetInstanceProcAddr( instance, "vkWaitSemaphoresKHR" ) );
18388      if ( !vkWaitSemaphores )
18389        vkWaitSemaphores = vkWaitSemaphoresKHR;
18390      vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetInstanceProcAddr( instance, "vkSignalSemaphoreKHR" ) );
18391      if ( !vkSignalSemaphore )
18392        vkSignalSemaphore = vkSignalSemaphoreKHR;
18393
18394      //=== VK_INTEL_performance_query ===
18395      vkInitializePerformanceApiINTEL   = PFN_vkInitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkInitializePerformanceApiINTEL" ) );
18396      vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkUninitializePerformanceApiINTEL" ) );
18397      vkCmdSetPerformanceMarkerINTEL    = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceMarkerINTEL" ) );
18398      vkCmdSetPerformanceStreamMarkerINTEL =
18399        PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
18400      vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceOverrideINTEL" ) );
18401      vkAcquirePerformanceConfigurationINTEL =
18402        PFN_vkAcquirePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkAcquirePerformanceConfigurationINTEL" ) );
18403      vkReleasePerformanceConfigurationINTEL =
18404        PFN_vkReleasePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkReleasePerformanceConfigurationINTEL" ) );
18405      vkQueueSetPerformanceConfigurationINTEL =
18406        PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkQueueSetPerformanceConfigurationINTEL" ) );
18407      vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetInstanceProcAddr( instance, "vkGetPerformanceParameterINTEL" ) );
18408
18409      //=== VK_AMD_display_native_hdr ===
18410      vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetInstanceProcAddr( instance, "vkSetLocalDimmingAMD" ) );
18411
18412#if defined( VK_USE_PLATFORM_FUCHSIA )
18413      //=== VK_FUCHSIA_imagepipe_surface ===
18414      vkCreateImagePipeSurfaceFUCHSIA = PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) );
18415#endif /*VK_USE_PLATFORM_FUCHSIA*/
18416
18417#if defined( VK_USE_PLATFORM_METAL_EXT )
18418      //=== VK_EXT_metal_surface ===
18419      vkCreateMetalSurfaceEXT = PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) );
18420#endif /*VK_USE_PLATFORM_METAL_EXT*/
18421
18422      //=== VK_KHR_fragment_shading_rate ===
18423      vkGetPhysicalDeviceFragmentShadingRatesKHR =
18424        PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR" ) );
18425      vkCmdSetFragmentShadingRateKHR = PFN_vkCmdSetFragmentShadingRateKHR( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateKHR" ) );
18426
18427      //=== VK_EXT_buffer_device_address ===
18428      vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressEXT" ) );
18429      if ( !vkGetBufferDeviceAddress )
18430        vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT;
18431
18432      //=== VK_EXT_tooling_info ===
18433      vkGetPhysicalDeviceToolPropertiesEXT =
18434        PFN_vkGetPhysicalDeviceToolPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) );
18435      if ( !vkGetPhysicalDeviceToolProperties )
18436        vkGetPhysicalDeviceToolProperties = vkGetPhysicalDeviceToolPropertiesEXT;
18437
18438      //=== VK_KHR_present_wait ===
18439      vkWaitForPresentKHR = PFN_vkWaitForPresentKHR( vkGetInstanceProcAddr( instance, "vkWaitForPresentKHR" ) );
18440
18441      //=== VK_NV_cooperative_matrix ===
18442      vkGetPhysicalDeviceCooperativeMatrixPropertiesNV =
18443        PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) );
18444
18445      //=== VK_NV_coverage_reduction_mode ===
18446      vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
18447        vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) );
18448
18449#if defined( VK_USE_PLATFORM_WIN32_KHR )
18450      //=== VK_EXT_full_screen_exclusive ===
18451      vkGetPhysicalDeviceSurfacePresentModes2EXT =
18452        PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) );
18453      vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkAcquireFullScreenExclusiveModeEXT" ) );
18454      vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkReleaseFullScreenExclusiveModeEXT" ) );
18455      vkGetDeviceGroupSurfacePresentModes2EXT =
18456        PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
18457#endif /*VK_USE_PLATFORM_WIN32_KHR*/
18458
18459      //=== VK_EXT_headless_surface ===
18460      vkCreateHeadlessSurfaceEXT = PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) );
18461
18462      //=== VK_KHR_buffer_device_address ===
18463      vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressKHR" ) );
18464      if ( !vkGetBufferDeviceAddress )
18465        vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR;
18466      vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddressKHR" ) );
18467      if ( !vkGetBufferOpaqueCaptureAddress )
18468        vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR;
18469      vkGetDeviceMemoryOpaqueCaptureAddressKHR =
18470        PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
18471      if ( !vkGetDeviceMemoryOpaqueCaptureAddress )
18472        vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR;
18473
18474      //=== VK_EXT_line_rasterization ===
18475      vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLineStippleEXT" ) );
18476
18477      //=== VK_EXT_host_query_reset ===
18478      vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetInstanceProcAddr( instance, "vkResetQueryPoolEXT" ) );
18479      if ( !vkResetQueryPool )
18480        vkResetQueryPool = vkResetQueryPoolEXT;
18481
18482      //=== VK_EXT_extended_dynamic_state ===
18483      vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetCullModeEXT" ) );
18484      if ( !vkCmdSetCullMode )
18485        vkCmdSetCullMode = vkCmdSetCullModeEXT;
18486      vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetInstanceProcAddr( instance, "vkCmdSetFrontFaceEXT" ) );
18487      if ( !vkCmdSetFrontFace )
18488        vkCmdSetFrontFace = vkCmdSetFrontFaceEXT;
18489      vkCmdSetPrimitiveTopologyEXT = PFN_vkCmdSetPrimitiveTopologyEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveTopologyEXT" ) );
18490      if ( !vkCmdSetPrimitiveTopology )
18491        vkCmdSetPrimitiveTopology = vkCmdSetPrimitiveTopologyEXT;
18492      vkCmdSetViewportWithCountEXT = PFN_vkCmdSetViewportWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWithCountEXT" ) );
18493      if ( !vkCmdSetViewportWithCount )
18494        vkCmdSetViewportWithCount = vkCmdSetViewportWithCountEXT;
18495      vkCmdSetScissorWithCountEXT = PFN_vkCmdSetScissorWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetScissorWithCountEXT" ) );
18496      if ( !vkCmdSetScissorWithCount )
18497        vkCmdSetScissorWithCount = vkCmdSetScissorWithCountEXT;
18498      vkCmdBindVertexBuffers2EXT = PFN_vkCmdBindVertexBuffers2EXT( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers2EXT" ) );
18499      if ( !vkCmdBindVertexBuffers2 )
18500        vkCmdBindVertexBuffers2 = vkCmdBindVertexBuffers2EXT;
18501      vkCmdSetDepthTestEnableEXT = PFN_vkCmdSetDepthTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthTestEnableEXT" ) );
18502      if ( !vkCmdSetDepthTestEnable )
18503        vkCmdSetDepthTestEnable = vkCmdSetDepthTestEnableEXT;
18504      vkCmdSetDepthWriteEnableEXT = PFN_vkCmdSetDepthWriteEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthWriteEnableEXT" ) );
18505      if ( !vkCmdSetDepthWriteEnable )
18506        vkCmdSetDepthWriteEnable = vkCmdSetDepthWriteEnableEXT;
18507      vkCmdSetDepthCompareOpEXT = PFN_vkCmdSetDepthCompareOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthCompareOpEXT" ) );
18508      if ( !vkCmdSetDepthCompareOp )
18509        vkCmdSetDepthCompareOp = vkCmdSetDepthCompareOpEXT;
18510      vkCmdSetDepthBoundsTestEnableEXT = PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBoundsTestEnableEXT" ) );
18511      if ( !vkCmdSetDepthBoundsTestEnable )
18512        vkCmdSetDepthBoundsTestEnable = vkCmdSetDepthBoundsTestEnableEXT;
18513      vkCmdSetStencilTestEnableEXT = PFN_vkCmdSetStencilTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilTestEnableEXT" ) );
18514      if ( !vkCmdSetStencilTestEnable )
18515        vkCmdSetStencilTestEnable = vkCmdSetStencilTestEnableEXT;
18516      vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilOpEXT" ) );
18517      if ( !vkCmdSetStencilOp )
18518        vkCmdSetStencilOp = vkCmdSetStencilOpEXT;
18519
18520      //=== VK_KHR_deferred_host_operations ===
18521      vkCreateDeferredOperationKHR  = PFN_vkCreateDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkCreateDeferredOperationKHR" ) );
18522      vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkDestroyDeferredOperationKHR" ) );
18523      vkGetDeferredOperationMaxConcurrencyKHR =
18524        PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
18525      vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationResultKHR" ) );
18526      vkDeferredOperationJoinKHR      = PFN_vkDeferredOperationJoinKHR( vkGetInstanceProcAddr( instance, "vkDeferredOperationJoinKHR" ) );
18527
18528      //=== VK_KHR_pipeline_executable_properties ===
18529      vkGetPipelineExecutablePropertiesKHR =
18530        PFN_vkGetPipelineExecutablePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutablePropertiesKHR" ) );
18531      vkGetPipelineExecutableStatisticsKHR =
18532        PFN_vkGetPipelineExecutableStatisticsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableStatisticsKHR" ) );
18533      vkGetPipelineExecutableInternalRepresentationsKHR =
18534        PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
18535
18536      //=== VK_EXT_host_image_copy ===
18537      vkCopyMemoryToImageEXT          = PFN_vkCopyMemoryToImageEXT( vkGetInstanceProcAddr( instance, "vkCopyMemoryToImageEXT" ) );
18538      vkCopyImageToMemoryEXT          = PFN_vkCopyImageToMemoryEXT( vkGetInstanceProcAddr( instance, "vkCopyImageToMemoryEXT" ) );
18539      vkCopyImageToImageEXT           = PFN_vkCopyImageToImageEXT( vkGetInstanceProcAddr( instance, "vkCopyImageToImageEXT" ) );
18540      vkTransitionImageLayoutEXT      = PFN_vkTransitionImageLayoutEXT( vkGetInstanceProcAddr( instance, "vkTransitionImageLayoutEXT" ) );
18541      vkGetImageSubresourceLayout2EXT = PFN_vkGetImageSubresourceLayout2EXT( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout2EXT" ) );
18542      if ( !vkGetImageSubresourceLayout2KHR )
18543        vkGetImageSubresourceLayout2KHR = vkGetImageSubresourceLayout2EXT;
18544
18545      //=== VK_KHR_map_memory2 ===
18546      vkMapMemory2KHR   = PFN_vkMapMemory2KHR( vkGetInstanceProcAddr( instance, "vkMapMemory2KHR" ) );
18547      vkUnmapMemory2KHR = PFN_vkUnmapMemory2KHR( vkGetInstanceProcAddr( instance, "vkUnmapMemory2KHR" ) );
18548
18549      //=== VK_EXT_swapchain_maintenance1 ===
18550      vkReleaseSwapchainImagesEXT = PFN_vkReleaseSwapchainImagesEXT( vkGetInstanceProcAddr( instance, "vkReleaseSwapchainImagesEXT" ) );
18551
18552      //=== VK_NV_device_generated_commands ===
18553      vkGetGeneratedCommandsMemoryRequirementsNV =
18554        PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
18555      vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdPreprocessGeneratedCommandsNV" ) );
18556      vkCmdExecuteGeneratedCommandsNV    = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdExecuteGeneratedCommandsNV" ) );
18557      vkCmdBindPipelineShaderGroupNV     = PFN_vkCmdBindPipelineShaderGroupNV( vkGetInstanceProcAddr( instance, "vkCmdBindPipelineShaderGroupNV" ) );
18558      vkCreateIndirectCommandsLayoutNV   = PFN_vkCreateIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNV" ) );
18559      vkDestroyIndirectCommandsLayoutNV  = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNV" ) );
18560
18561      //=== VK_EXT_depth_bias_control ===
18562      vkCmdSetDepthBias2EXT = PFN_vkCmdSetDepthBias2EXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias2EXT" ) );
18563
18564      //=== VK_EXT_acquire_drm_display ===
18565      vkAcquireDrmDisplayEXT = PFN_vkAcquireDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireDrmDisplayEXT" ) );
18566      vkGetDrmDisplayEXT     = PFN_vkGetDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetDrmDisplayEXT" ) );
18567
18568      //=== VK_EXT_private_data ===
18569      vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkCreatePrivateDataSlotEXT" ) );
18570      if ( !vkCreatePrivateDataSlot )
18571        vkCreatePrivateDataSlot = vkCreatePrivateDataSlotEXT;
18572      vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkDestroyPrivateDataSlotEXT" ) );
18573      if ( !vkDestroyPrivateDataSlot )
18574        vkDestroyPrivateDataSlot = vkDestroyPrivateDataSlotEXT;
18575      vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkSetPrivateDataEXT" ) );
18576      if ( !vkSetPrivateData )
18577        vkSetPrivateData = vkSetPrivateDataEXT;
18578      vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkGetPrivateDataEXT" ) );
18579      if ( !vkGetPrivateData )
18580        vkGetPrivateData = vkGetPrivateDataEXT;
18581
18582      //=== VK_KHR_video_encode_queue ===
18583      vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
18584        vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR" ) );
18585      vkGetEncodedVideoSessionParametersKHR =
18586        PFN_vkGetEncodedVideoSessionParametersKHR( vkGetInstanceProcAddr( instance, "vkGetEncodedVideoSessionParametersKHR" ) );
18587      vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetInstanceProcAddr( instance, "vkCmdEncodeVideoKHR" ) );
18588
18589#if defined( VK_ENABLE_BETA_EXTENSIONS )
18590      //=== VK_NV_cuda_kernel_launch ===
18591      vkCreateCudaModuleNV    = PFN_vkCreateCudaModuleNV( vkGetInstanceProcAddr( instance, "vkCreateCudaModuleNV" ) );
18592      vkGetCudaModuleCacheNV  = PFN_vkGetCudaModuleCacheNV( vkGetInstanceProcAddr( instance, "vkGetCudaModuleCacheNV" ) );
18593      vkCreateCudaFunctionNV  = PFN_vkCreateCudaFunctionNV( vkGetInstanceProcAddr( instance, "vkCreateCudaFunctionNV" ) );
18594      vkDestroyCudaModuleNV   = PFN_vkDestroyCudaModuleNV( vkGetInstanceProcAddr( instance, "vkDestroyCudaModuleNV" ) );
18595      vkDestroyCudaFunctionNV = PFN_vkDestroyCudaFunctionNV( vkGetInstanceProcAddr( instance, "vkDestroyCudaFunctionNV" ) );
18596      vkCmdCudaLaunchKernelNV = PFN_vkCmdCudaLaunchKernelNV( vkGetInstanceProcAddr( instance, "vkCmdCudaLaunchKernelNV" ) );
18597#endif /*VK_ENABLE_BETA_EXTENSIONS*/
18598
18599#if defined( VK_USE_PLATFORM_METAL_EXT )
18600      //=== VK_EXT_metal_objects ===
18601      vkExportMetalObjectsEXT = PFN_vkExportMetalObjectsEXT( vkGetInstanceProcAddr( instance, "vkExportMetalObjectsEXT" ) );
18602#endif /*VK_USE_PLATFORM_METAL_EXT*/
18603
18604      //=== VK_KHR_synchronization2 ===
18605      vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetInstanceProcAddr( instance, "vkCmdSetEvent2KHR" ) );
18606      if ( !vkCmdSetEvent2 )
18607        vkCmdSetEvent2 = vkCmdSetEvent2KHR;
18608      vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetInstanceProcAddr( instance, "vkCmdResetEvent2KHR" ) );
18609      if ( !vkCmdResetEvent2 )
18610        vkCmdResetEvent2 = vkCmdResetEvent2KHR;
18611      vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents2KHR" ) );
18612      if ( !vkCmdWaitEvents2 )
18613        vkCmdWaitEvents2 = vkCmdWaitEvents2KHR;
18614      vkCmdPipelineBarrier2KHR = PFN_vkCmdPipelineBarrier2KHR( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier2KHR" ) );
18615      if ( !vkCmdPipelineBarrier2 )
18616        vkCmdPipelineBarrier2 = vkCmdPipelineBarrier2KHR;
18617      vkCmdWriteTimestamp2KHR = PFN_vkCmdWriteTimestamp2KHR( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp2KHR" ) );
18618      if ( !vkCmdWriteTimestamp2 )
18619        vkCmdWriteTimestamp2 = vkCmdWriteTimestamp2KHR;
18620      vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetInstanceProcAddr( instance, "vkQueueSubmit2KHR" ) );
18621      if ( !vkQueueSubmit2 )
18622        vkQueueSubmit2 = vkQueueSubmit2KHR;
18623      vkCmdWriteBufferMarker2AMD  = PFN_vkCmdWriteBufferMarker2AMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarker2AMD" ) );
18624      vkGetQueueCheckpointData2NV = PFN_vkGetQueueCheckpointData2NV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointData2NV" ) );
18625
18626      //=== VK_EXT_descriptor_buffer ===
18627      vkGetDescriptorSetLayoutSizeEXT = PFN_vkGetDescriptorSetLayoutSizeEXT( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSizeEXT" ) );
18628      vkGetDescriptorSetLayoutBindingOffsetEXT =
18629        PFN_vkGetDescriptorSetLayoutBindingOffsetEXT( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutBindingOffsetEXT" ) );
18630      vkGetDescriptorEXT                 = PFN_vkGetDescriptorEXT( vkGetInstanceProcAddr( instance, "vkGetDescriptorEXT" ) );
18631      vkCmdBindDescriptorBuffersEXT      = PFN_vkCmdBindDescriptorBuffersEXT( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorBuffersEXT" ) );
18632      vkCmdSetDescriptorBufferOffsetsEXT = PFN_vkCmdSetDescriptorBufferOffsetsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDescriptorBufferOffsetsEXT" ) );
18633      vkCmdBindDescriptorBufferEmbeddedSamplersEXT =
18634        PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT" ) );
18635      vkGetBufferOpaqueCaptureDescriptorDataEXT =
18636        PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureDescriptorDataEXT" ) );
18637      vkGetImageOpaqueCaptureDescriptorDataEXT =
18638        PFN_vkGetImageOpaqueCaptureDescriptorDataEXT( vkGetInstanceProcAddr( instance, "vkGetImageOpaqueCaptureDescriptorDataEXT" ) );
18639      vkGetImageViewOpaqueCaptureDescriptorDataEXT =
18640        PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT( vkGetInstanceProcAddr( instance, "vkGetImageViewOpaqueCaptureDescriptorDataEXT" ) );
18641      vkGetSamplerOpaqueCaptureDescriptorDataEXT =
18642        PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT( vkGetInstanceProcAddr( instance, "vkGetSamplerOpaqueCaptureDescriptorDataEXT" ) );
18643      vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
18644        vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT" ) );
18645
18646      //=== VK_NV_fragment_shading_rate_enums ===
18647      vkCmdSetFragmentShadingRateEnumNV = PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateEnumNV" ) );
18648
18649      //=== VK_EXT_mesh_shader ===
18650      vkCmdDrawMeshTasksEXT              = PFN_vkCmdDrawMeshTasksEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksEXT" ) );
18651      vkCmdDrawMeshTasksIndirectEXT      = PFN_vkCmdDrawMeshTasksIndirectEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectEXT" ) );
18652      vkCmdDrawMeshTasksIndirectCountEXT = PFN_vkCmdDrawMeshTasksIndirectCountEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountEXT" ) );
18653
18654      //=== VK_KHR_copy_commands2 ===
18655      vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer2KHR" ) );
18656      if ( !vkCmdCopyBuffer2 )
18657        vkCmdCopyBuffer2 = vkCmdCopyBuffer2KHR;
18658      vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImage2KHR" ) );
18659      if ( !vkCmdCopyImage2 )
18660        vkCmdCopyImage2 = vkCmdCopyImage2KHR;
18661      vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage2KHR" ) );
18662      if ( !vkCmdCopyBufferToImage2 )
18663        vkCmdCopyBufferToImage2 = vkCmdCopyBufferToImage2KHR;
18664      vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer2KHR" ) );
18665      if ( !vkCmdCopyImageToBuffer2 )
18666        vkCmdCopyImageToBuffer2 = vkCmdCopyImageToBuffer2KHR;
18667      vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdBlitImage2KHR" ) );
18668      if ( !vkCmdBlitImage2 )
18669        vkCmdBlitImage2 = vkCmdBlitImage2KHR;
18670      vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdResolveImage2KHR" ) );
18671      if ( !vkCmdResolveImage2 )
18672        vkCmdResolveImage2 = vkCmdResolveImage2KHR;
18673
18674      //=== VK_EXT_device_fault ===
18675      vkGetDeviceFaultInfoEXT = PFN_vkGetDeviceFaultInfoEXT( vkGetInstanceProcAddr( instance, "vkGetDeviceFaultInfoEXT" ) );
18676
18677#if defined( VK_USE_PLATFORM_WIN32_KHR )
18678      //=== VK_NV_acquire_winrt_display ===
18679      vkAcquireWinrtDisplayNV = PFN_vkAcquireWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkAcquireWinrtDisplayNV" ) );
18680      vkGetWinrtDisplayNV     = PFN_vkGetWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkGetWinrtDisplayNV" ) );
18681#endif /*VK_USE_PLATFORM_WIN32_KHR*/
18682
18683#if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
18684      //=== VK_EXT_directfb_surface ===
18685      vkCreateDirectFBSurfaceEXT = PFN_vkCreateDirectFBSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateDirectFBSurfaceEXT" ) );
18686      vkGetPhysicalDeviceDirectFBPresentationSupportEXT =
18687        PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" ) );
18688#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
18689
18690      //=== VK_EXT_vertex_input_dynamic_state ===
18691      vkCmdSetVertexInputEXT = PFN_vkCmdSetVertexInputEXT( vkGetInstanceProcAddr( instance, "vkCmdSetVertexInputEXT" ) );
18692
18693#if defined( VK_USE_PLATFORM_FUCHSIA )
18694      //=== VK_FUCHSIA_external_memory ===
18695      vkGetMemoryZirconHandleFUCHSIA = PFN_vkGetMemoryZirconHandleFUCHSIA( vkGetInstanceProcAddr( instance, "vkGetMemoryZirconHandleFUCHSIA" ) );
18696      vkGetMemoryZirconHandlePropertiesFUCHSIA =
18697        PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA( vkGetInstanceProcAddr( instance, "vkGetMemoryZirconHandlePropertiesFUCHSIA" ) );
18698#endif /*VK_USE_PLATFORM_FUCHSIA*/
18699
18700#if defined( VK_USE_PLATFORM_FUCHSIA )
18701      //=== VK_FUCHSIA_external_semaphore ===
18702      vkImportSemaphoreZirconHandleFUCHSIA =
18703        PFN_vkImportSemaphoreZirconHandleFUCHSIA( vkGetInstanceProcAddr( instance, "vkImportSemaphoreZirconHandleFUCHSIA" ) );
18704      vkGetSemaphoreZirconHandleFUCHSIA = PFN_vkGetSemaphoreZirconHandleFUCHSIA( vkGetInstanceProcAddr( instance, "vkGetSemaphoreZirconHandleFUCHSIA" ) );
18705#endif /*VK_USE_PLATFORM_FUCHSIA*/
18706
18707#if defined( VK_USE_PLATFORM_FUCHSIA )
18708      //=== VK_FUCHSIA_buffer_collection ===
18709      vkCreateBufferCollectionFUCHSIA = PFN_vkCreateBufferCollectionFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateBufferCollectionFUCHSIA" ) );
18710      vkSetBufferCollectionImageConstraintsFUCHSIA =
18711        PFN_vkSetBufferCollectionImageConstraintsFUCHSIA( vkGetInstanceProcAddr( instance, "vkSetBufferCollectionImageConstraintsFUCHSIA" ) );
18712      vkSetBufferCollectionBufferConstraintsFUCHSIA =
18713        PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA( vkGetInstanceProcAddr( instance, "vkSetBufferCollectionBufferConstraintsFUCHSIA" ) );
18714      vkDestroyBufferCollectionFUCHSIA = PFN_vkDestroyBufferCollectionFUCHSIA( vkGetInstanceProcAddr( instance, "vkDestroyBufferCollectionFUCHSIA" ) );
18715      vkGetBufferCollectionPropertiesFUCHSIA =
18716        PFN_vkGetBufferCollectionPropertiesFUCHSIA( vkGetInstanceProcAddr( instance, "vkGetBufferCollectionPropertiesFUCHSIA" ) );
18717#endif /*VK_USE_PLATFORM_FUCHSIA*/
18718
18719      //=== VK_HUAWEI_subpass_shading ===
18720      vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI =
18721        PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( vkGetInstanceProcAddr( instance, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" ) );
18722      vkCmdSubpassShadingHUAWEI = PFN_vkCmdSubpassShadingHUAWEI( vkGetInstanceProcAddr( instance, "vkCmdSubpassShadingHUAWEI" ) );
18723
18724      //=== VK_HUAWEI_invocation_mask ===
18725      vkCmdBindInvocationMaskHUAWEI = PFN_vkCmdBindInvocationMaskHUAWEI( vkGetInstanceProcAddr( instance, "vkCmdBindInvocationMaskHUAWEI" ) );
18726
18727      //=== VK_NV_external_memory_rdma ===
18728      vkGetMemoryRemoteAddressNV = PFN_vkGetMemoryRemoteAddressNV( vkGetInstanceProcAddr( instance, "vkGetMemoryRemoteAddressNV" ) );
18729
18730      //=== VK_EXT_pipeline_properties ===
18731      vkGetPipelinePropertiesEXT = PFN_vkGetPipelinePropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPipelinePropertiesEXT" ) );
18732
18733      //=== VK_EXT_extended_dynamic_state2 ===
18734      vkCmdSetPatchControlPointsEXT      = PFN_vkCmdSetPatchControlPointsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPatchControlPointsEXT" ) );
18735      vkCmdSetRasterizerDiscardEnableEXT = PFN_vkCmdSetRasterizerDiscardEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetRasterizerDiscardEnableEXT" ) );
18736      if ( !vkCmdSetRasterizerDiscardEnable )
18737        vkCmdSetRasterizerDiscardEnable = vkCmdSetRasterizerDiscardEnableEXT;
18738      vkCmdSetDepthBiasEnableEXT = PFN_vkCmdSetDepthBiasEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBiasEnableEXT" ) );
18739      if ( !vkCmdSetDepthBiasEnable )
18740        vkCmdSetDepthBiasEnable = vkCmdSetDepthBiasEnableEXT;
18741      vkCmdSetLogicOpEXT                = PFN_vkCmdSetLogicOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLogicOpEXT" ) );
18742      vkCmdSetPrimitiveRestartEnableEXT = PFN_vkCmdSetPrimitiveRestartEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveRestartEnableEXT" ) );
18743      if ( !vkCmdSetPrimitiveRestartEnable )
18744        vkCmdSetPrimitiveRestartEnable = vkCmdSetPrimitiveRestartEnableEXT;
18745
18746#if defined( VK_USE_PLATFORM_SCREEN_QNX )
18747      //=== VK_QNX_screen_surface ===
18748      vkCreateScreenSurfaceQNX = PFN_vkCreateScreenSurfaceQNX( vkGetInstanceProcAddr( instance, "vkCreateScreenSurfaceQNX" ) );
18749      vkGetPhysicalDeviceScreenPresentationSupportQNX =
18750        PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceScreenPresentationSupportQNX" ) );
18751#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
18752
18753      //=== VK_EXT_color_write_enable ===
18754      vkCmdSetColorWriteEnableEXT = PFN_vkCmdSetColorWriteEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetColorWriteEnableEXT" ) );
18755
18756      //=== VK_KHR_ray_tracing_maintenance1 ===
18757      vkCmdTraceRaysIndirect2KHR = PFN_vkCmdTraceRaysIndirect2KHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirect2KHR" ) );
18758
18759      //=== VK_EXT_multi_draw ===
18760      vkCmdDrawMultiEXT        = PFN_vkCmdDrawMultiEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawMultiEXT" ) );
18761      vkCmdDrawMultiIndexedEXT = PFN_vkCmdDrawMultiIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawMultiIndexedEXT" ) );
18762
18763      //=== VK_EXT_opacity_micromap ===
18764      vkCreateMicromapEXT                 = PFN_vkCreateMicromapEXT( vkGetInstanceProcAddr( instance, "vkCreateMicromapEXT" ) );
18765      vkDestroyMicromapEXT                = PFN_vkDestroyMicromapEXT( vkGetInstanceProcAddr( instance, "vkDestroyMicromapEXT" ) );
18766      vkCmdBuildMicromapsEXT              = PFN_vkCmdBuildMicromapsEXT( vkGetInstanceProcAddr( instance, "vkCmdBuildMicromapsEXT" ) );
18767      vkBuildMicromapsEXT                 = PFN_vkBuildMicromapsEXT( vkGetInstanceProcAddr( instance, "vkBuildMicromapsEXT" ) );
18768      vkCopyMicromapEXT                   = PFN_vkCopyMicromapEXT( vkGetInstanceProcAddr( instance, "vkCopyMicromapEXT" ) );
18769      vkCopyMicromapToMemoryEXT           = PFN_vkCopyMicromapToMemoryEXT( vkGetInstanceProcAddr( instance, "vkCopyMicromapToMemoryEXT" ) );
18770      vkCopyMemoryToMicromapEXT           = PFN_vkCopyMemoryToMicromapEXT( vkGetInstanceProcAddr( instance, "vkCopyMemoryToMicromapEXT" ) );
18771      vkWriteMicromapsPropertiesEXT       = PFN_vkWriteMicromapsPropertiesEXT( vkGetInstanceProcAddr( instance, "vkWriteMicromapsPropertiesEXT" ) );
18772      vkCmdCopyMicromapEXT                = PFN_vkCmdCopyMicromapEXT( vkGetInstanceProcAddr( instance, "vkCmdCopyMicromapEXT" ) );
18773      vkCmdCopyMicromapToMemoryEXT        = PFN_vkCmdCopyMicromapToMemoryEXT( vkGetInstanceProcAddr( instance, "vkCmdCopyMicromapToMemoryEXT" ) );
18774      vkCmdCopyMemoryToMicromapEXT        = PFN_vkCmdCopyMemoryToMicromapEXT( vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToMicromapEXT" ) );
18775      vkCmdWriteMicromapsPropertiesEXT    = PFN_vkCmdWriteMicromapsPropertiesEXT( vkGetInstanceProcAddr( instance, "vkCmdWriteMicromapsPropertiesEXT" ) );
18776      vkGetDeviceMicromapCompatibilityEXT = PFN_vkGetDeviceMicromapCompatibilityEXT( vkGetInstanceProcAddr( instance, "vkGetDeviceMicromapCompatibilityEXT" ) );
18777      vkGetMicromapBuildSizesEXT          = PFN_vkGetMicromapBuildSizesEXT( vkGetInstanceProcAddr( instance, "vkGetMicromapBuildSizesEXT" ) );
18778
18779      //=== VK_HUAWEI_cluster_culling_shader ===
18780      vkCmdDrawClusterHUAWEI         = PFN_vkCmdDrawClusterHUAWEI( vkGetInstanceProcAddr( instance, "vkCmdDrawClusterHUAWEI" ) );
18781      vkCmdDrawClusterIndirectHUAWEI = PFN_vkCmdDrawClusterIndirectHUAWEI( vkGetInstanceProcAddr( instance, "vkCmdDrawClusterIndirectHUAWEI" ) );
18782
18783      //=== VK_EXT_pageable_device_local_memory ===
18784      vkSetDeviceMemoryPriorityEXT = PFN_vkSetDeviceMemoryPriorityEXT( vkGetInstanceProcAddr( instance, "vkSetDeviceMemoryPriorityEXT" ) );
18785
18786      //=== VK_KHR_maintenance4 ===
18787      vkGetDeviceBufferMemoryRequirementsKHR =
18788        PFN_vkGetDeviceBufferMemoryRequirementsKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceBufferMemoryRequirementsKHR" ) );
18789      if ( !vkGetDeviceBufferMemoryRequirements )
18790        vkGetDeviceBufferMemoryRequirements = vkGetDeviceBufferMemoryRequirementsKHR;
18791      vkGetDeviceImageMemoryRequirementsKHR =
18792        PFN_vkGetDeviceImageMemoryRequirementsKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceImageMemoryRequirementsKHR" ) );
18793      if ( !vkGetDeviceImageMemoryRequirements )
18794        vkGetDeviceImageMemoryRequirements = vkGetDeviceImageMemoryRequirementsKHR;
18795      vkGetDeviceImageSparseMemoryRequirementsKHR =
18796        PFN_vkGetDeviceImageSparseMemoryRequirementsKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceImageSparseMemoryRequirementsKHR" ) );
18797      if ( !vkGetDeviceImageSparseMemoryRequirements )
18798        vkGetDeviceImageSparseMemoryRequirements = vkGetDeviceImageSparseMemoryRequirementsKHR;
18799
18800      //=== VK_VALVE_descriptor_set_host_mapping ===
18801      vkGetDescriptorSetLayoutHostMappingInfoVALVE =
18802        PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutHostMappingInfoVALVE" ) );
18803      vkGetDescriptorSetHostMappingVALVE = PFN_vkGetDescriptorSetHostMappingVALVE( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetHostMappingVALVE" ) );
18804
18805      //=== VK_NV_copy_memory_indirect ===
18806      vkCmdCopyMemoryIndirectNV        = PFN_vkCmdCopyMemoryIndirectNV( vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryIndirectNV" ) );
18807      vkCmdCopyMemoryToImageIndirectNV = PFN_vkCmdCopyMemoryToImageIndirectNV( vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToImageIndirectNV" ) );
18808
18809      //=== VK_NV_memory_decompression ===
18810      vkCmdDecompressMemoryNV = PFN_vkCmdDecompressMemoryNV( vkGetInstanceProcAddr( instance, "vkCmdDecompressMemoryNV" ) );
18811      vkCmdDecompressMemoryIndirectCountNV =
18812        PFN_vkCmdDecompressMemoryIndirectCountNV( vkGetInstanceProcAddr( instance, "vkCmdDecompressMemoryIndirectCountNV" ) );
18813
18814      //=== VK_NV_device_generated_commands_compute ===
18815      vkGetPipelineIndirectMemoryRequirementsNV =
18816        PFN_vkGetPipelineIndirectMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetPipelineIndirectMemoryRequirementsNV" ) );
18817      vkCmdUpdatePipelineIndirectBufferNV = PFN_vkCmdUpdatePipelineIndirectBufferNV( vkGetInstanceProcAddr( instance, "vkCmdUpdatePipelineIndirectBufferNV" ) );
18818      vkGetPipelineIndirectDeviceAddressNV =
18819        PFN_vkGetPipelineIndirectDeviceAddressNV( vkGetInstanceProcAddr( instance, "vkGetPipelineIndirectDeviceAddressNV" ) );
18820
18821      //=== VK_EXT_extended_dynamic_state3 ===
18822      vkCmdSetTessellationDomainOriginEXT = PFN_vkCmdSetTessellationDomainOriginEXT( vkGetInstanceProcAddr( instance, "vkCmdSetTessellationDomainOriginEXT" ) );
18823      vkCmdSetDepthClampEnableEXT         = PFN_vkCmdSetDepthClampEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthClampEnableEXT" ) );
18824      vkCmdSetPolygonModeEXT              = PFN_vkCmdSetPolygonModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPolygonModeEXT" ) );
18825      vkCmdSetRasterizationSamplesEXT     = PFN_vkCmdSetRasterizationSamplesEXT( vkGetInstanceProcAddr( instance, "vkCmdSetRasterizationSamplesEXT" ) );
18826      vkCmdSetSampleMaskEXT               = PFN_vkCmdSetSampleMaskEXT( vkGetInstanceProcAddr( instance, "vkCmdSetSampleMaskEXT" ) );
18827      vkCmdSetAlphaToCoverageEnableEXT    = PFN_vkCmdSetAlphaToCoverageEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetAlphaToCoverageEnableEXT" ) );
18828      vkCmdSetAlphaToOneEnableEXT         = PFN_vkCmdSetAlphaToOneEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetAlphaToOneEnableEXT" ) );
18829      vkCmdSetLogicOpEnableEXT            = PFN_vkCmdSetLogicOpEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLogicOpEnableEXT" ) );
18830      vkCmdSetColorBlendEnableEXT         = PFN_vkCmdSetColorBlendEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetColorBlendEnableEXT" ) );
18831      vkCmdSetColorBlendEquationEXT       = PFN_vkCmdSetColorBlendEquationEXT( vkGetInstanceProcAddr( instance, "vkCmdSetColorBlendEquationEXT" ) );
18832      vkCmdSetColorWriteMaskEXT           = PFN_vkCmdSetColorWriteMaskEXT( vkGetInstanceProcAddr( instance, "vkCmdSetColorWriteMaskEXT" ) );
18833      vkCmdSetRasterizationStreamEXT      = PFN_vkCmdSetRasterizationStreamEXT( vkGetInstanceProcAddr( instance, "vkCmdSetRasterizationStreamEXT" ) );
18834      vkCmdSetConservativeRasterizationModeEXT =
18835        PFN_vkCmdSetConservativeRasterizationModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetConservativeRasterizationModeEXT" ) );
18836      vkCmdSetExtraPrimitiveOverestimationSizeEXT =
18837        PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetExtraPrimitiveOverestimationSizeEXT" ) );
18838      vkCmdSetDepthClipEnableEXT       = PFN_vkCmdSetDepthClipEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthClipEnableEXT" ) );
18839      vkCmdSetSampleLocationsEnableEXT = PFN_vkCmdSetSampleLocationsEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEnableEXT" ) );
18840      vkCmdSetColorBlendAdvancedEXT    = PFN_vkCmdSetColorBlendAdvancedEXT( vkGetInstanceProcAddr( instance, "vkCmdSetColorBlendAdvancedEXT" ) );
18841      vkCmdSetProvokingVertexModeEXT   = PFN_vkCmdSetProvokingVertexModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetProvokingVertexModeEXT" ) );
18842      vkCmdSetLineRasterizationModeEXT = PFN_vkCmdSetLineRasterizationModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLineRasterizationModeEXT" ) );
18843      vkCmdSetLineStippleEnableEXT     = PFN_vkCmdSetLineStippleEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLineStippleEnableEXT" ) );
18844      vkCmdSetDepthClipNegativeOneToOneEXT =
18845        PFN_vkCmdSetDepthClipNegativeOneToOneEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthClipNegativeOneToOneEXT" ) );
18846      vkCmdSetViewportWScalingEnableNV  = PFN_vkCmdSetViewportWScalingEnableNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingEnableNV" ) );
18847      vkCmdSetViewportSwizzleNV         = PFN_vkCmdSetViewportSwizzleNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportSwizzleNV" ) );
18848      vkCmdSetCoverageToColorEnableNV   = PFN_vkCmdSetCoverageToColorEnableNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoverageToColorEnableNV" ) );
18849      vkCmdSetCoverageToColorLocationNV = PFN_vkCmdSetCoverageToColorLocationNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoverageToColorLocationNV" ) );
18850      vkCmdSetCoverageModulationModeNV  = PFN_vkCmdSetCoverageModulationModeNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoverageModulationModeNV" ) );
18851      vkCmdSetCoverageModulationTableEnableNV =
18852        PFN_vkCmdSetCoverageModulationTableEnableNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoverageModulationTableEnableNV" ) );
18853      vkCmdSetCoverageModulationTableNV = PFN_vkCmdSetCoverageModulationTableNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoverageModulationTableNV" ) );
18854      vkCmdSetShadingRateImageEnableNV  = PFN_vkCmdSetShadingRateImageEnableNV( vkGetInstanceProcAddr( instance, "vkCmdSetShadingRateImageEnableNV" ) );
18855      vkCmdSetRepresentativeFragmentTestEnableNV =
18856        PFN_vkCmdSetRepresentativeFragmentTestEnableNV( vkGetInstanceProcAddr( instance, "vkCmdSetRepresentativeFragmentTestEnableNV" ) );
18857      vkCmdSetCoverageReductionModeNV = PFN_vkCmdSetCoverageReductionModeNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoverageReductionModeNV" ) );
18858
18859      //=== VK_EXT_shader_module_identifier ===
18860      vkGetShaderModuleIdentifierEXT = PFN_vkGetShaderModuleIdentifierEXT( vkGetInstanceProcAddr( instance, "vkGetShaderModuleIdentifierEXT" ) );
18861      vkGetShaderModuleCreateInfoIdentifierEXT =
18862        PFN_vkGetShaderModuleCreateInfoIdentifierEXT( vkGetInstanceProcAddr( instance, "vkGetShaderModuleCreateInfoIdentifierEXT" ) );
18863
18864      //=== VK_NV_optical_flow ===
18865      vkGetPhysicalDeviceOpticalFlowImageFormatsNV =
18866        PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV" ) );
18867      vkCreateOpticalFlowSessionNV    = PFN_vkCreateOpticalFlowSessionNV( vkGetInstanceProcAddr( instance, "vkCreateOpticalFlowSessionNV" ) );
18868      vkDestroyOpticalFlowSessionNV   = PFN_vkDestroyOpticalFlowSessionNV( vkGetInstanceProcAddr( instance, "vkDestroyOpticalFlowSessionNV" ) );
18869      vkBindOpticalFlowSessionImageNV = PFN_vkBindOpticalFlowSessionImageNV( vkGetInstanceProcAddr( instance, "vkBindOpticalFlowSessionImageNV" ) );
18870      vkCmdOpticalFlowExecuteNV       = PFN_vkCmdOpticalFlowExecuteNV( vkGetInstanceProcAddr( instance, "vkCmdOpticalFlowExecuteNV" ) );
18871
18872      //=== VK_KHR_maintenance5 ===
18873      vkCmdBindIndexBuffer2KHR         = PFN_vkCmdBindIndexBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer2KHR" ) );
18874      vkGetRenderingAreaGranularityKHR = PFN_vkGetRenderingAreaGranularityKHR( vkGetInstanceProcAddr( instance, "vkGetRenderingAreaGranularityKHR" ) );
18875      vkGetDeviceImageSubresourceLayoutKHR =
18876        PFN_vkGetDeviceImageSubresourceLayoutKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceImageSubresourceLayoutKHR" ) );
18877      vkGetImageSubresourceLayout2KHR = PFN_vkGetImageSubresourceLayout2KHR( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout2KHR" ) );
18878
18879      //=== VK_EXT_shader_object ===
18880      vkCreateShadersEXT       = PFN_vkCreateShadersEXT( vkGetInstanceProcAddr( instance, "vkCreateShadersEXT" ) );
18881      vkDestroyShaderEXT       = PFN_vkDestroyShaderEXT( vkGetInstanceProcAddr( instance, "vkDestroyShaderEXT" ) );
18882      vkGetShaderBinaryDataEXT = PFN_vkGetShaderBinaryDataEXT( vkGetInstanceProcAddr( instance, "vkGetShaderBinaryDataEXT" ) );
18883      vkCmdBindShadersEXT      = PFN_vkCmdBindShadersEXT( vkGetInstanceProcAddr( instance, "vkCmdBindShadersEXT" ) );
18884
18885      //=== VK_QCOM_tile_properties ===
18886      vkGetFramebufferTilePropertiesQCOM = PFN_vkGetFramebufferTilePropertiesQCOM( vkGetInstanceProcAddr( instance, "vkGetFramebufferTilePropertiesQCOM" ) );
18887      vkGetDynamicRenderingTilePropertiesQCOM =
18888        PFN_vkGetDynamicRenderingTilePropertiesQCOM( vkGetInstanceProcAddr( instance, "vkGetDynamicRenderingTilePropertiesQCOM" ) );
18889
18890      //=== VK_NV_low_latency2 ===
18891      vkSetLatencySleepModeNV  = PFN_vkSetLatencySleepModeNV( vkGetInstanceProcAddr( instance, "vkSetLatencySleepModeNV" ) );
18892      vkLatencySleepNV         = PFN_vkLatencySleepNV( vkGetInstanceProcAddr( instance, "vkLatencySleepNV" ) );
18893      vkSetLatencyMarkerNV     = PFN_vkSetLatencyMarkerNV( vkGetInstanceProcAddr( instance, "vkSetLatencyMarkerNV" ) );
18894      vkGetLatencyTimingsNV    = PFN_vkGetLatencyTimingsNV( vkGetInstanceProcAddr( instance, "vkGetLatencyTimingsNV" ) );
18895      vkQueueNotifyOutOfBandNV = PFN_vkQueueNotifyOutOfBandNV( vkGetInstanceProcAddr( instance, "vkQueueNotifyOutOfBandNV" ) );
18896
18897      //=== VK_KHR_cooperative_matrix ===
18898      vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR =
18899        PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR" ) );
18900
18901      //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
18902      vkCmdSetAttachmentFeedbackLoopEnableEXT =
18903        PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetAttachmentFeedbackLoopEnableEXT" ) );
18904
18905#if defined( VK_USE_PLATFORM_SCREEN_QNX )
18906      //=== VK_QNX_external_memory_screen_buffer ===
18907      vkGetScreenBufferPropertiesQNX = PFN_vkGetScreenBufferPropertiesQNX( vkGetInstanceProcAddr( instance, "vkGetScreenBufferPropertiesQNX" ) );
18908#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
18909
18910      //=== VK_KHR_calibrated_timestamps ===
18911      vkGetPhysicalDeviceCalibrateableTimeDomainsKHR =
18912        PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR" ) );
18913      vkGetCalibratedTimestampsKHR = PFN_vkGetCalibratedTimestampsKHR( vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsKHR" ) );
18914
18915      //=== VK_KHR_maintenance6 ===
18916      vkCmdBindDescriptorSets2KHR = PFN_vkCmdBindDescriptorSets2KHR( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets2KHR" ) );
18917      vkCmdPushConstants2KHR      = PFN_vkCmdPushConstants2KHR( vkGetInstanceProcAddr( instance, "vkCmdPushConstants2KHR" ) );
18918      vkCmdPushDescriptorSet2KHR  = PFN_vkCmdPushDescriptorSet2KHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSet2KHR" ) );
18919      vkCmdPushDescriptorSetWithTemplate2KHR =
18920        PFN_vkCmdPushDescriptorSetWithTemplate2KHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplate2KHR" ) );
18921      vkCmdSetDescriptorBufferOffsets2EXT = PFN_vkCmdSetDescriptorBufferOffsets2EXT( vkGetInstanceProcAddr( instance, "vkCmdSetDescriptorBufferOffsets2EXT" ) );
18922      vkCmdBindDescriptorBufferEmbeddedSamplers2EXT =
18923        PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT" ) );
18924    }
18925
18926    void init( VULKAN_HPP_NAMESPACE::Device deviceCpp ) VULKAN_HPP_NOEXCEPT
18927    {
18928      VkDevice device = static_cast<VkDevice>( deviceCpp );
18929
18930      //=== VK_VERSION_1_0 ===
18931      vkGetDeviceProcAddr                = PFN_vkGetDeviceProcAddr( vkGetDeviceProcAddr( device, "vkGetDeviceProcAddr" ) );
18932      vkDestroyDevice                    = PFN_vkDestroyDevice( vkGetDeviceProcAddr( device, "vkDestroyDevice" ) );
18933      vkGetDeviceQueue                   = PFN_vkGetDeviceQueue( vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) );
18934      vkQueueSubmit                      = PFN_vkQueueSubmit( vkGetDeviceProcAddr( device, "vkQueueSubmit" ) );
18935      vkQueueWaitIdle                    = PFN_vkQueueWaitIdle( vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) );
18936      vkDeviceWaitIdle                   = PFN_vkDeviceWaitIdle( vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ) );
18937      vkAllocateMemory                   = PFN_vkAllocateMemory( vkGetDeviceProcAddr( device, "vkAllocateMemory" ) );
18938      vkFreeMemory                       = PFN_vkFreeMemory( vkGetDeviceProcAddr( device, "vkFreeMemory" ) );
18939      vkMapMemory                        = PFN_vkMapMemory( vkGetDeviceProcAddr( device, "vkMapMemory" ) );
18940      vkUnmapMemory                      = PFN_vkUnmapMemory( vkGetDeviceProcAddr( device, "vkUnmapMemory" ) );
18941      vkFlushMappedMemoryRanges          = PFN_vkFlushMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) );
18942      vkInvalidateMappedMemoryRanges     = PFN_vkInvalidateMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) );
18943      vkGetDeviceMemoryCommitment        = PFN_vkGetDeviceMemoryCommitment( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) );
18944      vkBindBufferMemory                 = PFN_vkBindBufferMemory( vkGetDeviceProcAddr( device, "vkBindBufferMemory" ) );
18945      vkBindImageMemory                  = PFN_vkBindImageMemory( vkGetDeviceProcAddr( device, "vkBindImageMemory" ) );
18946      vkGetBufferMemoryRequirements      = PFN_vkGetBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) );
18947      vkGetImageMemoryRequirements       = PFN_vkGetImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) );
18948      vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) );
18949      vkQueueBindSparse                  = PFN_vkQueueBindSparse( vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) );
18950      vkCreateFence                      = PFN_vkCreateFence( vkGetDeviceProcAddr( device, "vkCreateFence" ) );
18951      vkDestroyFence                     = PFN_vkDestroyFence( vkGetDeviceProcAddr( device, "vkDestroyFence" ) );
18952      vkResetFences                      = PFN_vkResetFences( vkGetDeviceProcAddr( device, "vkResetFences" ) );
18953      vkGetFenceStatus                   = PFN_vkGetFenceStatus( vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) );
18954      vkWaitForFences                    = PFN_vkWaitForFences( vkGetDeviceProcAddr( device, "vkWaitForFences" ) );
18955      vkCreateSemaphore                  = PFN_vkCreateSemaphore( vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) );
18956      vkDestroySemaphore                 = PFN_vkDestroySemaphore( vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) );
18957      vkCreateEvent                      = PFN_vkCreateEvent( vkGetDeviceProcAddr( device, "vkCreateEvent" ) );
18958      vkDestroyEvent                     = PFN_vkDestroyEvent( vkGetDeviceProcAddr( device, "vkDestroyEvent" ) );
18959      vkGetEventStatus                   = PFN_vkGetEventStatus( vkGetDeviceProcAddr( device, "vkGetEventStatus" ) );
18960      vkSetEvent                         = PFN_vkSetEvent( vkGetDeviceProcAddr( device, "vkSetEvent" ) );
18961      vkResetEvent                       = PFN_vkResetEvent( vkGetDeviceProcAddr( device, "vkResetEvent" ) );
18962      vkCreateQueryPool                  = PFN_vkCreateQueryPool( vkGetDeviceProcAddr( device, "vkCreateQueryPool" ) );
18963      vkDestroyQueryPool                 = PFN_vkDestroyQueryPool( vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) );
18964      vkGetQueryPoolResults              = PFN_vkGetQueryPoolResults( vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ) );
18965      vkCreateBuffer                     = PFN_vkCreateBuffer( vkGetDeviceProcAddr( device, "vkCreateBuffer" ) );
18966      vkDestroyBuffer                    = PFN_vkDestroyBuffer( vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) );
18967      vkCreateBufferView                 = PFN_vkCreateBufferView( vkGetDeviceProcAddr( device, "vkCreateBufferView" ) );
18968      vkDestroyBufferView                = PFN_vkDestroyBufferView( vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) );
18969      vkCreateImage                      = PFN_vkCreateImage( vkGetDeviceProcAddr( device, "vkCreateImage" ) );
18970      vkDestroyImage                     = PFN_vkDestroyImage( vkGetDeviceProcAddr( device, "vkDestroyImage" ) );
18971      vkGetImageSubresourceLayout        = PFN_vkGetImageSubresourceLayout( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) );
18972      vkCreateImageView                  = PFN_vkCreateImageView( vkGetDeviceProcAddr( device, "vkCreateImageView" ) );
18973      vkDestroyImageView                 = PFN_vkDestroyImageView( vkGetDeviceProcAddr( device, "vkDestroyImageView" ) );
18974      vkCreateShaderModule               = PFN_vkCreateShaderModule( vkGetDeviceProcAddr( device, "vkCreateShaderModule" ) );
18975      vkDestroyShaderModule              = PFN_vkDestroyShaderModule( vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ) );
18976      vkCreatePipelineCache              = PFN_vkCreatePipelineCache( vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) );
18977      vkDestroyPipelineCache             = PFN_vkDestroyPipelineCache( vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) );
18978      vkGetPipelineCacheData             = PFN_vkGetPipelineCacheData( vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ) );
18979      vkMergePipelineCaches              = PFN_vkMergePipelineCaches( vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ) );
18980      vkCreateGraphicsPipelines          = PFN_vkCreateGraphicsPipelines( vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) );
18981      vkCreateComputePipelines           = PFN_vkCreateComputePipelines( vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) );
18982      vkDestroyPipeline                  = PFN_vkDestroyPipeline( vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) );
18983      vkCreatePipelineLayout             = PFN_vkCreatePipelineLayout( vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ) );
18984      vkDestroyPipelineLayout            = PFN_vkDestroyPipelineLayout( vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ) );
18985      vkCreateSampler                    = PFN_vkCreateSampler( vkGetDeviceProcAddr( device, "vkCreateSampler" ) );
18986      vkDestroySampler                   = PFN_vkDestroySampler( vkGetDeviceProcAddr( device, "vkDestroySampler" ) );
18987      vkCreateDescriptorSetLayout        = PFN_vkCreateDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) );
18988      vkDestroyDescriptorSetLayout       = PFN_vkDestroyDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) );
18989      vkCreateDescriptorPool             = PFN_vkCreateDescriptorPool( vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ) );
18990      vkDestroyDescriptorPool            = PFN_vkDestroyDescriptorPool( vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ) );
18991      vkResetDescriptorPool              = PFN_vkResetDescriptorPool( vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ) );
18992      vkAllocateDescriptorSets           = PFN_vkAllocateDescriptorSets( vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ) );
18993      vkFreeDescriptorSets               = PFN_vkFreeDescriptorSets( vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ) );
18994      vkUpdateDescriptorSets             = PFN_vkUpdateDescriptorSets( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ) );
18995      vkCreateFramebuffer                = PFN_vkCreateFramebuffer( vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ) );
18996      vkDestroyFramebuffer               = PFN_vkDestroyFramebuffer( vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ) );
18997      vkCreateRenderPass                 = PFN_vkCreateRenderPass( vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) );
18998      vkDestroyRenderPass                = PFN_vkDestroyRenderPass( vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ) );
18999      vkGetRenderAreaGranularity         = PFN_vkGetRenderAreaGranularity( vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) );
19000      vkCreateCommandPool                = PFN_vkCreateCommandPool( vkGetDeviceProcAddr( device, "vkCreateCommandPool" ) );
19001      vkDestroyCommandPool               = PFN_vkDestroyCommandPool( vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ) );
19002      vkResetCommandPool                 = PFN_vkResetCommandPool( vkGetDeviceProcAddr( device, "vkResetCommandPool" ) );
19003      vkAllocateCommandBuffers           = PFN_vkAllocateCommandBuffers( vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) );
19004      vkFreeCommandBuffers               = PFN_vkFreeCommandBuffers( vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ) );
19005      vkBeginCommandBuffer               = PFN_vkBeginCommandBuffer( vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ) );
19006      vkEndCommandBuffer                 = PFN_vkEndCommandBuffer( vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) );
19007      vkResetCommandBuffer               = PFN_vkResetCommandBuffer( vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) );
19008      vkCmdBindPipeline                  = PFN_vkCmdBindPipeline( vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) );
19009      vkCmdSetViewport                   = PFN_vkCmdSetViewport( vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) );
19010      vkCmdSetScissor                    = PFN_vkCmdSetScissor( vkGetDeviceProcAddr( device, "vkCmdSetScissor" ) );
19011      vkCmdSetLineWidth                  = PFN_vkCmdSetLineWidth( vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) );
19012      vkCmdSetDepthBias                  = PFN_vkCmdSetDepthBias( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) );
19013      vkCmdSetBlendConstants             = PFN_vkCmdSetBlendConstants( vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ) );
19014      vkCmdSetDepthBounds                = PFN_vkCmdSetDepthBounds( vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ) );
19015      vkCmdSetStencilCompareMask         = PFN_vkCmdSetStencilCompareMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) );
19016      vkCmdSetStencilWriteMask           = PFN_vkCmdSetStencilWriteMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) );
19017      vkCmdSetStencilReference           = PFN_vkCmdSetStencilReference( vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) );
19018      vkCmdBindDescriptorSets            = PFN_vkCmdBindDescriptorSets( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ) );
19019      vkCmdBindIndexBuffer               = PFN_vkCmdBindIndexBuffer( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ) );
19020      vkCmdBindVertexBuffers             = PFN_vkCmdBindVertexBuffers( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ) );
19021      vkCmdDraw                          = PFN_vkCmdDraw( vkGetDeviceProcAddr( device, "vkCmdDraw" ) );
19022      vkCmdDrawIndexed                   = PFN_vkCmdDrawIndexed( vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) );
19023      vkCmdDrawIndirect                  = PFN_vkCmdDrawIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ) );
19024      vkCmdDrawIndexedIndirect           = PFN_vkCmdDrawIndexedIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) );
19025      vkCmdDispatch                      = PFN_vkCmdDispatch( vkGetDeviceProcAddr( device, "vkCmdDispatch" ) );
19026      vkCmdDispatchIndirect              = PFN_vkCmdDispatchIndirect( vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ) );
19027      vkCmdCopyBuffer                    = PFN_vkCmdCopyBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ) );
19028      vkCmdCopyImage                     = PFN_vkCmdCopyImage( vkGetDeviceProcAddr( device, "vkCmdCopyImage" ) );
19029      vkCmdBlitImage                     = PFN_vkCmdBlitImage( vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) );
19030      vkCmdCopyBufferToImage             = PFN_vkCmdCopyBufferToImage( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ) );
19031      vkCmdCopyImageToBuffer             = PFN_vkCmdCopyImageToBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ) );
19032      vkCmdUpdateBuffer                  = PFN_vkCmdUpdateBuffer( vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) );
19033      vkCmdFillBuffer                    = PFN_vkCmdFillBuffer( vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ) );
19034      vkCmdClearColorImage               = PFN_vkCmdClearColorImage( vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) );
19035      vkCmdClearDepthStencilImage        = PFN_vkCmdClearDepthStencilImage( vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) );
19036      vkCmdClearAttachments              = PFN_vkCmdClearAttachments( vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ) );
19037      vkCmdResolveImage                  = PFN_vkCmdResolveImage( vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) );
19038      vkCmdSetEvent                      = PFN_vkCmdSetEvent( vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) );
19039      vkCmdResetEvent                    = PFN_vkCmdResetEvent( vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) );
19040      vkCmdWaitEvents                    = PFN_vkCmdWaitEvents( vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) );
19041      vkCmdPipelineBarrier               = PFN_vkCmdPipelineBarrier( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ) );
19042      vkCmdBeginQuery                    = PFN_vkCmdBeginQuery( vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ) );
19043      vkCmdEndQuery                      = PFN_vkCmdEndQuery( vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) );
19044      vkCmdResetQueryPool                = PFN_vkCmdResetQueryPool( vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) );
19045      vkCmdWriteTimestamp                = PFN_vkCmdWriteTimestamp( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) );
19046      vkCmdCopyQueryPoolResults          = PFN_vkCmdCopyQueryPoolResults( vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ) );
19047      vkCmdPushConstants                 = PFN_vkCmdPushConstants( vkGetDeviceProcAddr( device, "vkCmdPushConstants" ) );
19048      vkCmdBeginRenderPass               = PFN_vkCmdBeginRenderPass( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ) );
19049      vkCmdNextSubpass                   = PFN_vkCmdNextSubpass( vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) );
19050      vkCmdEndRenderPass                 = PFN_vkCmdEndRenderPass( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) );
19051      vkCmdExecuteCommands               = PFN_vkCmdExecuteCommands( vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ) );
19052
19053      //=== VK_VERSION_1_1 ===
19054      vkBindBufferMemory2                 = PFN_vkBindBufferMemory2( vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) );
19055      vkBindImageMemory2                  = PFN_vkBindImageMemory2( vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) );
19056      vkGetDeviceGroupPeerMemoryFeatures  = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) );
19057      vkCmdSetDeviceMask                  = PFN_vkCmdSetDeviceMask( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ) );
19058      vkCmdDispatchBase                   = PFN_vkCmdDispatchBase( vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) );
19059      vkGetImageMemoryRequirements2       = PFN_vkGetImageMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) );
19060      vkGetBufferMemoryRequirements2      = PFN_vkGetBufferMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) );
19061      vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) );
19062      vkTrimCommandPool                   = PFN_vkTrimCommandPool( vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) );
19063      vkGetDeviceQueue2                   = PFN_vkGetDeviceQueue2( vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) );
19064      vkCreateSamplerYcbcrConversion      = PFN_vkCreateSamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) );
19065      vkDestroySamplerYcbcrConversion     = PFN_vkDestroySamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) );
19066      vkCreateDescriptorUpdateTemplate    = PFN_vkCreateDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) );
19067      vkDestroyDescriptorUpdateTemplate   = PFN_vkDestroyDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) );
19068      vkUpdateDescriptorSetWithTemplate   = PFN_vkUpdateDescriptorSetWithTemplate( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) );
19069      vkGetDescriptorSetLayoutSupport     = PFN_vkGetDescriptorSetLayoutSupport( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) );
19070
19071      //=== VK_VERSION_1_2 ===
19072      vkCmdDrawIndirectCount          = PFN_vkCmdDrawIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCount" ) );
19073      vkCmdDrawIndexedIndirectCount   = PFN_vkCmdDrawIndexedIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCount" ) );
19074      vkCreateRenderPass2             = PFN_vkCreateRenderPass2( vkGetDeviceProcAddr( device, "vkCreateRenderPass2" ) );
19075      vkCmdBeginRenderPass2           = PFN_vkCmdBeginRenderPass2( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2" ) );
19076      vkCmdNextSubpass2               = PFN_vkCmdNextSubpass2( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" ) );
19077      vkCmdEndRenderPass2             = PFN_vkCmdEndRenderPass2( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" ) );
19078      vkResetQueryPool                = PFN_vkResetQueryPool( vkGetDeviceProcAddr( device, "vkResetQueryPool" ) );
19079      vkGetSemaphoreCounterValue      = PFN_vkGetSemaphoreCounterValue( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" ) );
19080      vkWaitSemaphores                = PFN_vkWaitSemaphores( vkGetDeviceProcAddr( device, "vkWaitSemaphores" ) );
19081      vkSignalSemaphore               = PFN_vkSignalSemaphore( vkGetDeviceProcAddr( device, "vkSignalSemaphore" ) );
19082      vkGetBufferDeviceAddress        = PFN_vkGetBufferDeviceAddress( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" ) );
19083      vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" ) );
19084      vkGetDeviceMemoryOpaqueCaptureAddress =
19085        PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
19086
19087      //=== VK_VERSION_1_3 ===
19088      vkCreatePrivateDataSlot             = PFN_vkCreatePrivateDataSlot( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlot" ) );
19089      vkDestroyPrivateDataSlot            = PFN_vkDestroyPrivateDataSlot( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlot" ) );
19090      vkSetPrivateData                    = PFN_vkSetPrivateData( vkGetDeviceProcAddr( device, "vkSetPrivateData" ) );
19091      vkGetPrivateData                    = PFN_vkGetPrivateData( vkGetDeviceProcAddr( device, "vkGetPrivateData" ) );
19092      vkCmdSetEvent2                      = PFN_vkCmdSetEvent2( vkGetDeviceProcAddr( device, "vkCmdSetEvent2" ) );
19093      vkCmdResetEvent2                    = PFN_vkCmdResetEvent2( vkGetDeviceProcAddr( device, "vkCmdResetEvent2" ) );
19094      vkCmdWaitEvents2                    = PFN_vkCmdWaitEvents2( vkGetDeviceProcAddr( device, "vkCmdWaitEvents2" ) );
19095      vkCmdPipelineBarrier2               = PFN_vkCmdPipelineBarrier2( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier2" ) );
19096      vkCmdWriteTimestamp2                = PFN_vkCmdWriteTimestamp2( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp2" ) );
19097      vkQueueSubmit2                      = PFN_vkQueueSubmit2( vkGetDeviceProcAddr( device, "vkQueueSubmit2" ) );
19098      vkCmdCopyBuffer2                    = PFN_vkCmdCopyBuffer2( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2" ) );
19099      vkCmdCopyImage2                     = PFN_vkCmdCopyImage2( vkGetDeviceProcAddr( device, "vkCmdCopyImage2" ) );
19100      vkCmdCopyBufferToImage2             = PFN_vkCmdCopyBufferToImage2( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2" ) );
19101      vkCmdCopyImageToBuffer2             = PFN_vkCmdCopyImageToBuffer2( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2" ) );
19102      vkCmdBlitImage2                     = PFN_vkCmdBlitImage2( vkGetDeviceProcAddr( device, "vkCmdBlitImage2" ) );
19103      vkCmdResolveImage2                  = PFN_vkCmdResolveImage2( vkGetDeviceProcAddr( device, "vkCmdResolveImage2" ) );
19104      vkCmdBeginRendering                 = PFN_vkCmdBeginRendering( vkGetDeviceProcAddr( device, "vkCmdBeginRendering" ) );
19105      vkCmdEndRendering                   = PFN_vkCmdEndRendering( vkGetDeviceProcAddr( device, "vkCmdEndRendering" ) );
19106      vkCmdSetCullMode                    = PFN_vkCmdSetCullMode( vkGetDeviceProcAddr( device, "vkCmdSetCullMode" ) );
19107      vkCmdSetFrontFace                   = PFN_vkCmdSetFrontFace( vkGetDeviceProcAddr( device, "vkCmdSetFrontFace" ) );
19108      vkCmdSetPrimitiveTopology           = PFN_vkCmdSetPrimitiveTopology( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopology" ) );
19109      vkCmdSetViewportWithCount           = PFN_vkCmdSetViewportWithCount( vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCount" ) );
19110      vkCmdSetScissorWithCount            = PFN_vkCmdSetScissorWithCount( vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCount" ) );
19111      vkCmdBindVertexBuffers2             = PFN_vkCmdBindVertexBuffers2( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2" ) );
19112      vkCmdSetDepthTestEnable             = PFN_vkCmdSetDepthTestEnable( vkGetDeviceProcAddr( device, "vkCmdSetDepthTestEnable" ) );
19113      vkCmdSetDepthWriteEnable            = PFN_vkCmdSetDepthWriteEnable( vkGetDeviceProcAddr( device, "vkCmdSetDepthWriteEnable" ) );
19114      vkCmdSetDepthCompareOp              = PFN_vkCmdSetDepthCompareOp( vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOp" ) );
19115      vkCmdSetDepthBoundsTestEnable       = PFN_vkCmdSetDepthBoundsTestEnable( vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnable" ) );
19116      vkCmdSetStencilTestEnable           = PFN_vkCmdSetStencilTestEnable( vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnable" ) );
19117      vkCmdSetStencilOp                   = PFN_vkCmdSetStencilOp( vkGetDeviceProcAddr( device, "vkCmdSetStencilOp" ) );
19118      vkCmdSetRasterizerDiscardEnable     = PFN_vkCmdSetRasterizerDiscardEnable( vkGetDeviceProcAddr( device, "vkCmdSetRasterizerDiscardEnable" ) );
19119      vkCmdSetDepthBiasEnable             = PFN_vkCmdSetDepthBiasEnable( vkGetDeviceProcAddr( device, "vkCmdSetDepthBiasEnable" ) );
19120      vkCmdSetPrimitiveRestartEnable      = PFN_vkCmdSetPrimitiveRestartEnable( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveRestartEnable" ) );
19121      vkGetDeviceBufferMemoryRequirements = PFN_vkGetDeviceBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetDeviceBufferMemoryRequirements" ) );
19122      vkGetDeviceImageMemoryRequirements  = PFN_vkGetDeviceImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetDeviceImageMemoryRequirements" ) );
19123      vkGetDeviceImageSparseMemoryRequirements =
19124        PFN_vkGetDeviceImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetDeviceImageSparseMemoryRequirements" ) );
19125
19126      //=== VK_KHR_swapchain ===
19127      vkCreateSwapchainKHR    = PFN_vkCreateSwapchainKHR( vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) );
19128      vkDestroySwapchainKHR   = PFN_vkDestroySwapchainKHR( vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) );
19129      vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) );
19130      vkAcquireNextImageKHR   = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) );
19131      vkQueuePresentKHR       = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) );
19132      vkGetDeviceGroupPresentCapabilitiesKHR =
19133        PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
19134      vkGetDeviceGroupSurfacePresentModesKHR =
19135        PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
19136      vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) );
19137
19138      //=== VK_KHR_display_swapchain ===
19139      vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) );
19140
19141      //=== VK_EXT_debug_marker ===
19142      vkDebugMarkerSetObjectTagEXT  = PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) );
19143      vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) );
19144      vkCmdDebugMarkerBeginEXT      = PFN_vkCmdDebugMarkerBeginEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) );
19145      vkCmdDebugMarkerEndEXT        = PFN_vkCmdDebugMarkerEndEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) );
19146      vkCmdDebugMarkerInsertEXT     = PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) );
19147
19148      //=== VK_KHR_video_queue ===
19149      vkCreateVideoSessionKHR  = PFN_vkCreateVideoSessionKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionKHR" ) );
19150      vkDestroyVideoSessionKHR = PFN_vkDestroyVideoSessionKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionKHR" ) );
19151      vkGetVideoSessionMemoryRequirementsKHR =
19152        PFN_vkGetVideoSessionMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetVideoSessionMemoryRequirementsKHR" ) );
19153      vkBindVideoSessionMemoryKHR        = PFN_vkBindVideoSessionMemoryKHR( vkGetDeviceProcAddr( device, "vkBindVideoSessionMemoryKHR" ) );
19154      vkCreateVideoSessionParametersKHR  = PFN_vkCreateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionParametersKHR" ) );
19155      vkUpdateVideoSessionParametersKHR  = PFN_vkUpdateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkUpdateVideoSessionParametersKHR" ) );
19156      vkDestroyVideoSessionParametersKHR = PFN_vkDestroyVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionParametersKHR" ) );
19157      vkCmdBeginVideoCodingKHR           = PFN_vkCmdBeginVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdBeginVideoCodingKHR" ) );
19158      vkCmdEndVideoCodingKHR             = PFN_vkCmdEndVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdEndVideoCodingKHR" ) );
19159      vkCmdControlVideoCodingKHR         = PFN_vkCmdControlVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdControlVideoCodingKHR" ) );
19160
19161      //=== VK_KHR_video_decode_queue ===
19162      vkCmdDecodeVideoKHR = PFN_vkCmdDecodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdDecodeVideoKHR" ) );
19163
19164      //=== VK_EXT_transform_feedback ===
19165      vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) );
19166      vkCmdBeginTransformFeedbackEXT       = PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) );
19167      vkCmdEndTransformFeedbackEXT         = PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) );
19168      vkCmdBeginQueryIndexedEXT            = PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) );
19169      vkCmdEndQueryIndexedEXT              = PFN_vkCmdEndQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) );
19170      vkCmdDrawIndirectByteCountEXT        = PFN_vkCmdDrawIndirectByteCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) );
19171
19172      //=== VK_NVX_binary_import ===
19173      vkCreateCuModuleNVX    = PFN_vkCreateCuModuleNVX( vkGetDeviceProcAddr( device, "vkCreateCuModuleNVX" ) );
19174      vkCreateCuFunctionNVX  = PFN_vkCreateCuFunctionNVX( vkGetDeviceProcAddr( device, "vkCreateCuFunctionNVX" ) );
19175      vkDestroyCuModuleNVX   = PFN_vkDestroyCuModuleNVX( vkGetDeviceProcAddr( device, "vkDestroyCuModuleNVX" ) );
19176      vkDestroyCuFunctionNVX = PFN_vkDestroyCuFunctionNVX( vkGetDeviceProcAddr( device, "vkDestroyCuFunctionNVX" ) );
19177      vkCmdCuLaunchKernelNVX = PFN_vkCmdCuLaunchKernelNVX( vkGetDeviceProcAddr( device, "vkCmdCuLaunchKernelNVX" ) );
19178
19179      //=== VK_NVX_image_view_handle ===
19180      vkGetImageViewHandleNVX  = PFN_vkGetImageViewHandleNVX( vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) );
19181      vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ) );
19182
19183      //=== VK_AMD_draw_indirect_count ===
19184      vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ) );
19185      if ( !vkCmdDrawIndirectCount )
19186        vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD;
19187      vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) );
19188      if ( !vkCmdDrawIndexedIndirectCount )
19189        vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD;
19190
19191      //=== VK_AMD_shader_info ===
19192      vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) );
19193
19194      //=== VK_KHR_dynamic_rendering ===
19195      vkCmdBeginRenderingKHR = PFN_vkCmdBeginRenderingKHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderingKHR" ) );
19196      if ( !vkCmdBeginRendering )
19197        vkCmdBeginRendering = vkCmdBeginRenderingKHR;
19198      vkCmdEndRenderingKHR = PFN_vkCmdEndRenderingKHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderingKHR" ) );
19199      if ( !vkCmdEndRendering )
19200        vkCmdEndRendering = vkCmdEndRenderingKHR;
19201
19202#if defined( VK_USE_PLATFORM_WIN32_KHR )
19203      //=== VK_NV_external_memory_win32 ===
19204      vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) );
19205#endif /*VK_USE_PLATFORM_WIN32_KHR*/
19206
19207      //=== VK_KHR_device_group ===
19208      vkGetDeviceGroupPeerMemoryFeaturesKHR =
19209        PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
19210      if ( !vkGetDeviceGroupPeerMemoryFeatures )
19211        vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
19212      vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) );
19213      if ( !vkCmdSetDeviceMask )
19214        vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
19215      vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) );
19216      if ( !vkCmdDispatchBase )
19217        vkCmdDispatchBase = vkCmdDispatchBaseKHR;
19218
19219      //=== VK_KHR_maintenance1 ===
19220      vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) );
19221      if ( !vkTrimCommandPool )
19222        vkTrimCommandPool = vkTrimCommandPoolKHR;
19223
19224#if defined( VK_USE_PLATFORM_WIN32_KHR )
19225      //=== VK_KHR_external_memory_win32 ===
19226      vkGetMemoryWin32HandleKHR           = PFN_vkGetMemoryWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) );
19227      vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) );
19228#endif /*VK_USE_PLATFORM_WIN32_KHR*/
19229
19230      //=== VK_KHR_external_memory_fd ===
19231      vkGetMemoryFdKHR           = PFN_vkGetMemoryFdKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) );
19232      vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) );
19233
19234#if defined( VK_USE_PLATFORM_WIN32_KHR )
19235      //=== VK_KHR_external_semaphore_win32 ===
19236      vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) );
19237      vkGetSemaphoreWin32HandleKHR    = PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) );
19238#endif /*VK_USE_PLATFORM_WIN32_KHR*/
19239
19240      //=== VK_KHR_external_semaphore_fd ===
19241      vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) );
19242      vkGetSemaphoreFdKHR    = PFN_vkGetSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) );
19243
19244      //=== VK_KHR_push_descriptor ===
19245      vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) );
19246      vkCmdPushDescriptorSetWithTemplateKHR =
19247        PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
19248
19249      //=== VK_EXT_conditional_rendering ===
19250      vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) );
19251      vkCmdEndConditionalRenderingEXT   = PFN_vkCmdEndConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) );
19252
19253      //=== VK_KHR_descriptor_update_template ===
19254      vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) );
19255      if ( !vkCreateDescriptorUpdateTemplate )
19256        vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
19257      vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) );
19258      if ( !vkDestroyDescriptorUpdateTemplate )
19259        vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
19260      vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) );
19261      if ( !vkUpdateDescriptorSetWithTemplate )
19262        vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
19263
19264      //=== VK_NV_clip_space_w_scaling ===
19265      vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) );
19266
19267      //=== VK_EXT_display_control ===
19268      vkDisplayPowerControlEXT  = PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) );
19269      vkRegisterDeviceEventEXT  = PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) );
19270      vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) );
19271      vkGetSwapchainCounterEXT  = PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) );
19272
19273      //=== VK_GOOGLE_display_timing ===
19274      vkGetRefreshCycleDurationGOOGLE   = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) );
19275      vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) );
19276
19277      //=== VK_EXT_discard_rectangles ===
19278      vkCmdSetDiscardRectangleEXT       = PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) );
19279      vkCmdSetDiscardRectangleEnableEXT = PFN_vkCmdSetDiscardRectangleEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEnableEXT" ) );
19280      vkCmdSetDiscardRectangleModeEXT   = PFN_vkCmdSetDiscardRectangleModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleModeEXT" ) );
19281
19282      //=== VK_EXT_hdr_metadata ===
19283      vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) );
19284
19285      //=== VK_KHR_create_renderpass2 ===
19286      vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) );
19287      if ( !vkCreateRenderPass2 )
19288        vkCreateRenderPass2 = vkCreateRenderPass2KHR;
19289      vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) );
19290      if ( !vkCmdBeginRenderPass2 )
19291        vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
19292      vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) );
19293      if ( !vkCmdNextSubpass2 )
19294        vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
19295      vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) );
19296      if ( !vkCmdEndRenderPass2 )
19297        vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
19298
19299      //=== VK_KHR_shared_presentable_image ===
19300      vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) );
19301
19302#if defined( VK_USE_PLATFORM_WIN32_KHR )
19303      //=== VK_KHR_external_fence_win32 ===
19304      vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) );
19305      vkGetFenceWin32HandleKHR    = PFN_vkGetFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) );
19306#endif /*VK_USE_PLATFORM_WIN32_KHR*/
19307
19308      //=== VK_KHR_external_fence_fd ===
19309      vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) );
19310      vkGetFenceFdKHR    = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) );
19311
19312      //=== VK_KHR_performance_query ===
19313      vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) );
19314      vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) );
19315
19316      //=== VK_EXT_debug_utils ===
19317      vkSetDebugUtilsObjectNameEXT    = PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) );
19318      vkSetDebugUtilsObjectTagEXT     = PFN_vkSetDebugUtilsObjectTagEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) );
19319      vkQueueBeginDebugUtilsLabelEXT  = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) );
19320      vkQueueEndDebugUtilsLabelEXT    = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) );
19321      vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) );
19322      vkCmdBeginDebugUtilsLabelEXT    = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) );
19323      vkCmdEndDebugUtilsLabelEXT      = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) );
19324      vkCmdInsertDebugUtilsLabelEXT   = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) );
19325
19326#if defined( VK_USE_PLATFORM_ANDROID_KHR )
19327      //=== VK_ANDROID_external_memory_android_hardware_buffer ===
19328      vkGetAndroidHardwareBufferPropertiesANDROID =
19329        PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
19330      vkGetMemoryAndroidHardwareBufferANDROID =
19331        PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
19332#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
19333
19334#if defined( VK_ENABLE_BETA_EXTENSIONS )
19335      //=== VK_AMDX_shader_enqueue ===
19336      vkCreateExecutionGraphPipelinesAMDX = PFN_vkCreateExecutionGraphPipelinesAMDX( vkGetDeviceProcAddr( device, "vkCreateExecutionGraphPipelinesAMDX" ) );
19337      vkGetExecutionGraphPipelineScratchSizeAMDX =
19338        PFN_vkGetExecutionGraphPipelineScratchSizeAMDX( vkGetDeviceProcAddr( device, "vkGetExecutionGraphPipelineScratchSizeAMDX" ) );
19339      vkGetExecutionGraphPipelineNodeIndexAMDX =
19340        PFN_vkGetExecutionGraphPipelineNodeIndexAMDX( vkGetDeviceProcAddr( device, "vkGetExecutionGraphPipelineNodeIndexAMDX" ) );
19341      vkCmdInitializeGraphScratchMemoryAMDX =
19342        PFN_vkCmdInitializeGraphScratchMemoryAMDX( vkGetDeviceProcAddr( device, "vkCmdInitializeGraphScratchMemoryAMDX" ) );
19343      vkCmdDispatchGraphAMDX              = PFN_vkCmdDispatchGraphAMDX( vkGetDeviceProcAddr( device, "vkCmdDispatchGraphAMDX" ) );
19344      vkCmdDispatchGraphIndirectAMDX      = PFN_vkCmdDispatchGraphIndirectAMDX( vkGetDeviceProcAddr( device, "vkCmdDispatchGraphIndirectAMDX" ) );
19345      vkCmdDispatchGraphIndirectCountAMDX = PFN_vkCmdDispatchGraphIndirectCountAMDX( vkGetDeviceProcAddr( device, "vkCmdDispatchGraphIndirectCountAMDX" ) );
19346#endif /*VK_ENABLE_BETA_EXTENSIONS*/
19347
19348      //=== VK_EXT_sample_locations ===
19349      vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) );
19350
19351      //=== VK_KHR_get_memory_requirements2 ===
19352      vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) );
19353      if ( !vkGetImageMemoryRequirements2 )
19354        vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
19355      vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) );
19356      if ( !vkGetBufferMemoryRequirements2 )
19357        vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
19358      vkGetImageSparseMemoryRequirements2KHR =
19359        PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) );
19360      if ( !vkGetImageSparseMemoryRequirements2 )
19361        vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
19362
19363      //=== VK_KHR_acceleration_structure ===
19364      vkCreateAccelerationStructureKHR    = PFN_vkCreateAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ) );
19365      vkDestroyAccelerationStructureKHR   = PFN_vkDestroyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ) );
19366      vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresKHR" ) );
19367      vkCmdBuildAccelerationStructuresIndirectKHR =
19368        PFN_vkCmdBuildAccelerationStructuresIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresIndirectKHR" ) );
19369      vkBuildAccelerationStructuresKHR = PFN_vkBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkBuildAccelerationStructuresKHR" ) );
19370      vkCopyAccelerationStructureKHR   = PFN_vkCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureKHR" ) );
19371      vkCopyAccelerationStructureToMemoryKHR =
19372        PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureToMemoryKHR" ) );
19373      vkCopyMemoryToAccelerationStructureKHR =
19374        PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyMemoryToAccelerationStructureKHR" ) );
19375      vkWriteAccelerationStructuresPropertiesKHR =
19376        PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ) );
19377      vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ) );
19378      vkCmdCopyAccelerationStructureToMemoryKHR =
19379        PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
19380      vkCmdCopyMemoryToAccelerationStructureKHR =
19381        PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
19382      vkGetAccelerationStructureDeviceAddressKHR =
19383        PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" ) );
19384      vkCmdWriteAccelerationStructuresPropertiesKHR =
19385        PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
19386      vkGetDeviceAccelerationStructureCompatibilityKHR =
19387        PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
19388      vkGetAccelerationStructureBuildSizesKHR =
19389        PFN_vkGetAccelerationStructureBuildSizesKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureBuildSizesKHR" ) );
19390
19391      //=== VK_KHR_ray_tracing_pipeline ===
19392      vkCmdTraceRaysKHR                    = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) );
19393      vkCreateRayTracingPipelinesKHR       = PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) );
19394      vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ) );
19395      vkGetRayTracingCaptureReplayShaderGroupHandlesKHR =
19396        PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
19397      vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) );
19398      vkGetRayTracingShaderGroupStackSizeKHR =
19399        PFN_vkGetRayTracingShaderGroupStackSizeKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupStackSizeKHR" ) );
19400      vkCmdSetRayTracingPipelineStackSizeKHR =
19401        PFN_vkCmdSetRayTracingPipelineStackSizeKHR( vkGetDeviceProcAddr( device, "vkCmdSetRayTracingPipelineStackSizeKHR" ) );
19402
19403      //=== VK_KHR_sampler_ycbcr_conversion ===
19404      vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) );
19405      if ( !vkCreateSamplerYcbcrConversion )
19406        vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR;
19407      vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) );
19408      if ( !vkDestroySamplerYcbcrConversion )
19409        vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR;
19410
19411      //=== VK_KHR_bind_memory2 ===
19412      vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) );
19413      if ( !vkBindBufferMemory2 )
19414        vkBindBufferMemory2 = vkBindBufferMemory2KHR;
19415      vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) );
19416      if ( !vkBindImageMemory2 )
19417        vkBindImageMemory2 = vkBindImageMemory2KHR;
19418
19419      //=== VK_EXT_image_drm_format_modifier ===
19420      vkGetImageDrmFormatModifierPropertiesEXT =
19421        PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
19422
19423      //=== VK_EXT_validation_cache ===
19424      vkCreateValidationCacheEXT  = PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) );
19425      vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) );
19426      vkMergeValidationCachesEXT  = PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) );
19427      vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) );
19428
19429      //=== VK_NV_shading_rate_image ===
19430      vkCmdBindShadingRateImageNV          = PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) );
19431      vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) );
19432      vkCmdSetCoarseSampleOrderNV          = PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) );
19433
19434      //=== VK_NV_ray_tracing ===
19435      vkCreateAccelerationStructureNV  = PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) );
19436      vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) );
19437      vkGetAccelerationStructureMemoryRequirementsNV =
19438        PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
19439      vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) );
19440      vkCmdBuildAccelerationStructureNV   = PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) );
19441      vkCmdCopyAccelerationStructureNV    = PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) );
19442      vkCmdTraceRaysNV                    = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) );
19443      vkCreateRayTracingPipelinesNV       = PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) );
19444      vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) );
19445      if ( !vkGetRayTracingShaderGroupHandlesKHR )
19446        vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
19447      vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) );
19448      vkCmdWriteAccelerationStructuresPropertiesNV =
19449        PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
19450      vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) );
19451
19452      //=== VK_KHR_maintenance3 ===
19453      vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) );
19454      if ( !vkGetDescriptorSetLayoutSupport )
19455        vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
19456
19457      //=== VK_KHR_draw_indirect_count ===
19458      vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) );
19459      if ( !vkCmdDrawIndirectCount )
19460        vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
19461      vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) );
19462      if ( !vkCmdDrawIndexedIndirectCount )
19463        vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
19464
19465      //=== VK_EXT_external_memory_host ===
19466      vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) );
19467
19468      //=== VK_AMD_buffer_marker ===
19469      vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) );
19470
19471      //=== VK_EXT_calibrated_timestamps ===
19472      vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) );
19473      if ( !vkGetCalibratedTimestampsKHR )
19474        vkGetCalibratedTimestampsKHR = vkGetCalibratedTimestampsEXT;
19475
19476      //=== VK_NV_mesh_shader ===
19477      vkCmdDrawMeshTasksNV              = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) );
19478      vkCmdDrawMeshTasksIndirectNV      = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) );
19479      vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) );
19480
19481      //=== VK_NV_scissor_exclusive ===
19482      vkCmdSetExclusiveScissorEnableNV = PFN_vkCmdSetExclusiveScissorEnableNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorEnableNV" ) );
19483      vkCmdSetExclusiveScissorNV       = PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) );
19484
19485      //=== VK_NV_device_diagnostic_checkpoints ===
19486      vkCmdSetCheckpointNV       = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) );
19487      vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) );
19488
19489      //=== VK_KHR_timeline_semaphore ===
19490      vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValueKHR" ) );
19491      if ( !vkGetSemaphoreCounterValue )
19492        vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
19493      vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetDeviceProcAddr( device, "vkWaitSemaphoresKHR" ) );
19494      if ( !vkWaitSemaphores )
19495        vkWaitSemaphores = vkWaitSemaphoresKHR;
19496      vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetDeviceProcAddr( device, "vkSignalSemaphoreKHR" ) );
19497      if ( !vkSignalSemaphore )
19498        vkSignalSemaphore = vkSignalSemaphoreKHR;
19499
19500      //=== VK_INTEL_performance_query ===
19501      vkInitializePerformanceApiINTEL      = PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) );
19502      vkUninitializePerformanceApiINTEL    = PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) );
19503      vkCmdSetPerformanceMarkerINTEL       = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) );
19504      vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
19505      vkCmdSetPerformanceOverrideINTEL     = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) );
19506      vkAcquirePerformanceConfigurationINTEL =
19507        PFN_vkAcquirePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) );
19508      vkReleasePerformanceConfigurationINTEL =
19509        PFN_vkReleasePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) );
19510      vkQueueSetPerformanceConfigurationINTEL =
19511        PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) );
19512      vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) );
19513
19514      //=== VK_AMD_display_native_hdr ===
19515      vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) );
19516
19517      //=== VK_KHR_fragment_shading_rate ===
19518      vkCmdSetFragmentShadingRateKHR = PFN_vkCmdSetFragmentShadingRateKHR( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateKHR" ) );
19519
19520      //=== VK_EXT_buffer_device_address ===
19521      vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) );
19522      if ( !vkGetBufferDeviceAddress )
19523        vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT;
19524
19525      //=== VK_KHR_present_wait ===
19526      vkWaitForPresentKHR = PFN_vkWaitForPresentKHR( vkGetDeviceProcAddr( device, "vkWaitForPresentKHR" ) );
19527
19528#if defined( VK_USE_PLATFORM_WIN32_KHR )
19529      //=== VK_EXT_full_screen_exclusive ===
19530      vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) );
19531      vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) );
19532      vkGetDeviceGroupSurfacePresentModes2EXT =
19533        PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
19534#endif /*VK_USE_PLATFORM_WIN32_KHR*/
19535
19536      //=== VK_KHR_buffer_device_address ===
19537      vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressKHR" ) );
19538      if ( !vkGetBufferDeviceAddress )
19539        vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR;
19540      vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddressKHR" ) );
19541      if ( !vkGetBufferOpaqueCaptureAddress )
19542        vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR;
19543      vkGetDeviceMemoryOpaqueCaptureAddressKHR =
19544        PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
19545      if ( !vkGetDeviceMemoryOpaqueCaptureAddress )
19546        vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR;
19547
19548      //=== VK_EXT_line_rasterization ===
19549      vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) );
19550
19551      //=== VK_EXT_host_query_reset ===
19552      vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) );
19553      if ( !vkResetQueryPool )
19554        vkResetQueryPool = vkResetQueryPoolEXT;
19555
19556      //=== VK_EXT_extended_dynamic_state ===
19557      vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetCullModeEXT" ) );
19558      if ( !vkCmdSetCullMode )
19559        vkCmdSetCullMode = vkCmdSetCullModeEXT;
19560      vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetDeviceProcAddr( device, "vkCmdSetFrontFaceEXT" ) );
19561      if ( !vkCmdSetFrontFace )
19562        vkCmdSetFrontFace = vkCmdSetFrontFaceEXT;
19563      vkCmdSetPrimitiveTopologyEXT = PFN_vkCmdSetPrimitiveTopologyEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopologyEXT" ) );
19564      if ( !vkCmdSetPrimitiveTopology )
19565        vkCmdSetPrimitiveTopology = vkCmdSetPrimitiveTopologyEXT;
19566      vkCmdSetViewportWithCountEXT = PFN_vkCmdSetViewportWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCountEXT" ) );
19567      if ( !vkCmdSetViewportWithCount )
19568        vkCmdSetViewportWithCount = vkCmdSetViewportWithCountEXT;
19569      vkCmdSetScissorWithCountEXT = PFN_vkCmdSetScissorWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCountEXT" ) );
19570      if ( !vkCmdSetScissorWithCount )
19571        vkCmdSetScissorWithCount = vkCmdSetScissorWithCountEXT;
19572      vkCmdBindVertexBuffers2EXT = PFN_vkCmdBindVertexBuffers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2EXT" ) );
19573      if ( !vkCmdBindVertexBuffers2 )
19574        vkCmdBindVertexBuffers2 = vkCmdBindVertexBuffers2EXT;
19575      vkCmdSetDepthTestEnableEXT = PFN_vkCmdSetDepthTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthTestEnableEXT" ) );
19576      if ( !vkCmdSetDepthTestEnable )
19577        vkCmdSetDepthTestEnable = vkCmdSetDepthTestEnableEXT;
19578      vkCmdSetDepthWriteEnableEXT = PFN_vkCmdSetDepthWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthWriteEnableEXT" ) );
19579      if ( !vkCmdSetDepthWriteEnable )
19580        vkCmdSetDepthWriteEnable = vkCmdSetDepthWriteEnableEXT;
19581      vkCmdSetDepthCompareOpEXT = PFN_vkCmdSetDepthCompareOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOpEXT" ) );
19582      if ( !vkCmdSetDepthCompareOp )
19583        vkCmdSetDepthCompareOp = vkCmdSetDepthCompareOpEXT;
19584      vkCmdSetDepthBoundsTestEnableEXT = PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnableEXT" ) );
19585      if ( !vkCmdSetDepthBoundsTestEnable )
19586        vkCmdSetDepthBoundsTestEnable = vkCmdSetDepthBoundsTestEnableEXT;
19587      vkCmdSetStencilTestEnableEXT = PFN_vkCmdSetStencilTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnableEXT" ) );
19588      if ( !vkCmdSetStencilTestEnable )
19589        vkCmdSetStencilTestEnable = vkCmdSetStencilTestEnableEXT;
19590      vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilOpEXT" ) );
19591      if ( !vkCmdSetStencilOp )
19592        vkCmdSetStencilOp = vkCmdSetStencilOpEXT;
19593
19594      //=== VK_KHR_deferred_host_operations ===
19595      vkCreateDeferredOperationKHR  = PFN_vkCreateDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ) );
19596      vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ) );
19597      vkGetDeferredOperationMaxConcurrencyKHR =
19598        PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
19599      vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" ) );
19600      vkDeferredOperationJoinKHR      = PFN_vkDeferredOperationJoinKHR( vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ) );
19601
19602      //=== VK_KHR_pipeline_executable_properties ===
19603      vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ) );
19604      vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ) );
19605      vkGetPipelineExecutableInternalRepresentationsKHR =
19606        PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
19607
19608      //=== VK_EXT_host_image_copy ===
19609      vkCopyMemoryToImageEXT          = PFN_vkCopyMemoryToImageEXT( vkGetDeviceProcAddr( device, "vkCopyMemoryToImageEXT" ) );
19610      vkCopyImageToMemoryEXT          = PFN_vkCopyImageToMemoryEXT( vkGetDeviceProcAddr( device, "vkCopyImageToMemoryEXT" ) );
19611      vkCopyImageToImageEXT           = PFN_vkCopyImageToImageEXT( vkGetDeviceProcAddr( device, "vkCopyImageToImageEXT" ) );
19612      vkTransitionImageLayoutEXT      = PFN_vkTransitionImageLayoutEXT( vkGetDeviceProcAddr( device, "vkTransitionImageLayoutEXT" ) );
19613      vkGetImageSubresourceLayout2EXT = PFN_vkGetImageSubresourceLayout2EXT( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout2EXT" ) );
19614      if ( !vkGetImageSubresourceLayout2KHR )
19615        vkGetImageSubresourceLayout2KHR = vkGetImageSubresourceLayout2EXT;
19616
19617      //=== VK_KHR_map_memory2 ===
19618      vkMapMemory2KHR   = PFN_vkMapMemory2KHR( vkGetDeviceProcAddr( device, "vkMapMemory2KHR" ) );
19619      vkUnmapMemory2KHR = PFN_vkUnmapMemory2KHR( vkGetDeviceProcAddr( device, "vkUnmapMemory2KHR" ) );
19620
19621      //=== VK_EXT_swapchain_maintenance1 ===
19622      vkReleaseSwapchainImagesEXT = PFN_vkReleaseSwapchainImagesEXT( vkGetDeviceProcAddr( device, "vkReleaseSwapchainImagesEXT" ) );
19623
19624      //=== VK_NV_device_generated_commands ===
19625      vkGetGeneratedCommandsMemoryRequirementsNV =
19626        PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
19627      vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ) );
19628      vkCmdExecuteGeneratedCommandsNV    = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ) );
19629      vkCmdBindPipelineShaderGroupNV     = PFN_vkCmdBindPipelineShaderGroupNV( vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ) );
19630      vkCreateIndirectCommandsLayoutNV   = PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) );
19631      vkDestroyIndirectCommandsLayoutNV  = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) );
19632
19633      //=== VK_EXT_depth_bias_control ===
19634      vkCmdSetDepthBias2EXT = PFN_vkCmdSetDepthBias2EXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias2EXT" ) );
19635
19636      //=== VK_EXT_private_data ===
19637      vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) );
19638      if ( !vkCreatePrivateDataSlot )
19639        vkCreatePrivateDataSlot = vkCreatePrivateDataSlotEXT;
19640      vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ) );
19641      if ( !vkDestroyPrivateDataSlot )
19642        vkDestroyPrivateDataSlot = vkDestroyPrivateDataSlotEXT;
19643      vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkSetPrivateDataEXT" ) );
19644      if ( !vkSetPrivateData )
19645        vkSetPrivateData = vkSetPrivateDataEXT;
19646      vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ) );
19647      if ( !vkGetPrivateData )
19648        vkGetPrivateData = vkGetPrivateDataEXT;
19649
19650      //=== VK_KHR_video_encode_queue ===
19651      vkGetEncodedVideoSessionParametersKHR =
19652        PFN_vkGetEncodedVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkGetEncodedVideoSessionParametersKHR" ) );
19653      vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdEncodeVideoKHR" ) );
19654
19655#if defined( VK_ENABLE_BETA_EXTENSIONS )
19656      //=== VK_NV_cuda_kernel_launch ===
19657      vkCreateCudaModuleNV    = PFN_vkCreateCudaModuleNV( vkGetDeviceProcAddr( device, "vkCreateCudaModuleNV" ) );
19658      vkGetCudaModuleCacheNV  = PFN_vkGetCudaModuleCacheNV( vkGetDeviceProcAddr( device, "vkGetCudaModuleCacheNV" ) );
19659      vkCreateCudaFunctionNV  = PFN_vkCreateCudaFunctionNV( vkGetDeviceProcAddr( device, "vkCreateCudaFunctionNV" ) );
19660      vkDestroyCudaModuleNV   = PFN_vkDestroyCudaModuleNV( vkGetDeviceProcAddr( device, "vkDestroyCudaModuleNV" ) );
19661      vkDestroyCudaFunctionNV = PFN_vkDestroyCudaFunctionNV( vkGetDeviceProcAddr( device, "vkDestroyCudaFunctionNV" ) );
19662      vkCmdCudaLaunchKernelNV = PFN_vkCmdCudaLaunchKernelNV( vkGetDeviceProcAddr( device, "vkCmdCudaLaunchKernelNV" ) );
19663#endif /*VK_ENABLE_BETA_EXTENSIONS*/
19664
19665#if defined( VK_USE_PLATFORM_METAL_EXT )
19666      //=== VK_EXT_metal_objects ===
19667      vkExportMetalObjectsEXT = PFN_vkExportMetalObjectsEXT( vkGetDeviceProcAddr( device, "vkExportMetalObjectsEXT" ) );
19668#endif /*VK_USE_PLATFORM_METAL_EXT*/
19669
19670      //=== VK_KHR_synchronization2 ===
19671      vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdSetEvent2KHR" ) );
19672      if ( !vkCmdSetEvent2 )
19673        vkCmdSetEvent2 = vkCmdSetEvent2KHR;
19674      vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdResetEvent2KHR" ) );
19675      if ( !vkCmdResetEvent2 )
19676        vkCmdResetEvent2 = vkCmdResetEvent2KHR;
19677      vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetDeviceProcAddr( device, "vkCmdWaitEvents2KHR" ) );
19678      if ( !vkCmdWaitEvents2 )
19679        vkCmdWaitEvents2 = vkCmdWaitEvents2KHR;
19680      vkCmdPipelineBarrier2KHR = PFN_vkCmdPipelineBarrier2KHR( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier2KHR" ) );
19681      if ( !vkCmdPipelineBarrier2 )
19682        vkCmdPipelineBarrier2 = vkCmdPipelineBarrier2KHR;
19683      vkCmdWriteTimestamp2KHR = PFN_vkCmdWriteTimestamp2KHR( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp2KHR" ) );
19684      if ( !vkCmdWriteTimestamp2 )
19685        vkCmdWriteTimestamp2 = vkCmdWriteTimestamp2KHR;
19686      vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetDeviceProcAddr( device, "vkQueueSubmit2KHR" ) );
19687      if ( !vkQueueSubmit2 )
19688        vkQueueSubmit2 = vkQueueSubmit2KHR;
19689      vkCmdWriteBufferMarker2AMD  = PFN_vkCmdWriteBufferMarker2AMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarker2AMD" ) );
19690      vkGetQueueCheckpointData2NV = PFN_vkGetQueueCheckpointData2NV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointData2NV" ) );
19691
19692      //=== VK_EXT_descriptor_buffer ===
19693      vkGetDescriptorSetLayoutSizeEXT = PFN_vkGetDescriptorSetLayoutSizeEXT( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSizeEXT" ) );
19694      vkGetDescriptorSetLayoutBindingOffsetEXT =
19695        PFN_vkGetDescriptorSetLayoutBindingOffsetEXT( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutBindingOffsetEXT" ) );
19696      vkGetDescriptorEXT                 = PFN_vkGetDescriptorEXT( vkGetDeviceProcAddr( device, "vkGetDescriptorEXT" ) );
19697      vkCmdBindDescriptorBuffersEXT      = PFN_vkCmdBindDescriptorBuffersEXT( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorBuffersEXT" ) );
19698      vkCmdSetDescriptorBufferOffsetsEXT = PFN_vkCmdSetDescriptorBufferOffsetsEXT( vkGetDeviceProcAddr( device, "vkCmdSetDescriptorBufferOffsetsEXT" ) );
19699      vkCmdBindDescriptorBufferEmbeddedSamplersEXT =
19700        PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT" ) );
19701      vkGetBufferOpaqueCaptureDescriptorDataEXT =
19702        PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureDescriptorDataEXT" ) );
19703      vkGetImageOpaqueCaptureDescriptorDataEXT =
19704        PFN_vkGetImageOpaqueCaptureDescriptorDataEXT( vkGetDeviceProcAddr( device, "vkGetImageOpaqueCaptureDescriptorDataEXT" ) );
19705      vkGetImageViewOpaqueCaptureDescriptorDataEXT =
19706        PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT( vkGetDeviceProcAddr( device, "vkGetImageViewOpaqueCaptureDescriptorDataEXT" ) );
19707      vkGetSamplerOpaqueCaptureDescriptorDataEXT =
19708        PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT( vkGetDeviceProcAddr( device, "vkGetSamplerOpaqueCaptureDescriptorDataEXT" ) );
19709      vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
19710        vkGetDeviceProcAddr( device, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT" ) );
19711
19712      //=== VK_NV_fragment_shading_rate_enums ===
19713      vkCmdSetFragmentShadingRateEnumNV = PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateEnumNV" ) );
19714
19715      //=== VK_EXT_mesh_shader ===
19716      vkCmdDrawMeshTasksEXT              = PFN_vkCmdDrawMeshTasksEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksEXT" ) );
19717      vkCmdDrawMeshTasksIndirectEXT      = PFN_vkCmdDrawMeshTasksIndirectEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectEXT" ) );
19718      vkCmdDrawMeshTasksIndirectCountEXT = PFN_vkCmdDrawMeshTasksIndirectCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountEXT" ) );
19719
19720      //=== VK_KHR_copy_commands2 ===
19721      vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2KHR" ) );
19722      if ( !vkCmdCopyBuffer2 )
19723        vkCmdCopyBuffer2 = vkCmdCopyBuffer2KHR;
19724      vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImage2KHR" ) );
19725      if ( !vkCmdCopyImage2 )
19726        vkCmdCopyImage2 = vkCmdCopyImage2KHR;
19727      vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2KHR" ) );
19728      if ( !vkCmdCopyBufferToImage2 )
19729        vkCmdCopyBufferToImage2 = vkCmdCopyBufferToImage2KHR;
19730      vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2KHR" ) );
19731      if ( !vkCmdCopyImageToBuffer2 )
19732        vkCmdCopyImageToBuffer2 = vkCmdCopyImageToBuffer2KHR;
19733      vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetDeviceProcAddr( device, "vkCmdBlitImage2KHR" ) );
19734      if ( !vkCmdBlitImage2 )
19735        vkCmdBlitImage2 = vkCmdBlitImage2KHR;
19736      vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetDeviceProcAddr( device, "vkCmdResolveImage2KHR" ) );
19737      if ( !vkCmdResolveImage2 )
19738        vkCmdResolveImage2 = vkCmdResolveImage2KHR;
19739
19740      //=== VK_EXT_device_fault ===
19741      vkGetDeviceFaultInfoEXT = PFN_vkGetDeviceFaultInfoEXT( vkGetDeviceProcAddr( device, "vkGetDeviceFaultInfoEXT" ) );
19742
19743      //=== VK_EXT_vertex_input_dynamic_state ===
19744      vkCmdSetVertexInputEXT = PFN_vkCmdSetVertexInputEXT( vkGetDeviceProcAddr( device, "vkCmdSetVertexInputEXT" ) );
19745
19746#if defined( VK_USE_PLATFORM_FUCHSIA )
19747      //=== VK_FUCHSIA_external_memory ===
19748      vkGetMemoryZirconHandleFUCHSIA = PFN_vkGetMemoryZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandleFUCHSIA" ) );
19749      vkGetMemoryZirconHandlePropertiesFUCHSIA =
19750        PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA( vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandlePropertiesFUCHSIA" ) );
19751#endif /*VK_USE_PLATFORM_FUCHSIA*/
19752
19753#if defined( VK_USE_PLATFORM_FUCHSIA )
19754      //=== VK_FUCHSIA_external_semaphore ===
19755      vkImportSemaphoreZirconHandleFUCHSIA = PFN_vkImportSemaphoreZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkImportSemaphoreZirconHandleFUCHSIA" ) );
19756      vkGetSemaphoreZirconHandleFUCHSIA    = PFN_vkGetSemaphoreZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetSemaphoreZirconHandleFUCHSIA" ) );
19757#endif /*VK_USE_PLATFORM_FUCHSIA*/
19758
19759#if defined( VK_USE_PLATFORM_FUCHSIA )
19760      //=== VK_FUCHSIA_buffer_collection ===
19761      vkCreateBufferCollectionFUCHSIA = PFN_vkCreateBufferCollectionFUCHSIA( vkGetDeviceProcAddr( device, "vkCreateBufferCollectionFUCHSIA" ) );
19762      vkSetBufferCollectionImageConstraintsFUCHSIA =
19763        PFN_vkSetBufferCollectionImageConstraintsFUCHSIA( vkGetDeviceProcAddr( device, "vkSetBufferCollectionImageConstraintsFUCHSIA" ) );
19764      vkSetBufferCollectionBufferConstraintsFUCHSIA =
19765        PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA( vkGetDeviceProcAddr( device, "vkSetBufferCollectionBufferConstraintsFUCHSIA" ) );
19766      vkDestroyBufferCollectionFUCHSIA = PFN_vkDestroyBufferCollectionFUCHSIA( vkGetDeviceProcAddr( device, "vkDestroyBufferCollectionFUCHSIA" ) );
19767      vkGetBufferCollectionPropertiesFUCHSIA =
19768        PFN_vkGetBufferCollectionPropertiesFUCHSIA( vkGetDeviceProcAddr( device, "vkGetBufferCollectionPropertiesFUCHSIA" ) );
19769#endif /*VK_USE_PLATFORM_FUCHSIA*/
19770
19771      //=== VK_HUAWEI_subpass_shading ===
19772      vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI =
19773        PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( vkGetDeviceProcAddr( device, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" ) );
19774      vkCmdSubpassShadingHUAWEI = PFN_vkCmdSubpassShadingHUAWEI( vkGetDeviceProcAddr( device, "vkCmdSubpassShadingHUAWEI" ) );
19775
19776      //=== VK_HUAWEI_invocation_mask ===
19777      vkCmdBindInvocationMaskHUAWEI = PFN_vkCmdBindInvocationMaskHUAWEI( vkGetDeviceProcAddr( device, "vkCmdBindInvocationMaskHUAWEI" ) );
19778
19779      //=== VK_NV_external_memory_rdma ===
19780      vkGetMemoryRemoteAddressNV = PFN_vkGetMemoryRemoteAddressNV( vkGetDeviceProcAddr( device, "vkGetMemoryRemoteAddressNV" ) );
19781
19782      //=== VK_EXT_pipeline_properties ===
19783      vkGetPipelinePropertiesEXT = PFN_vkGetPipelinePropertiesEXT( vkGetDeviceProcAddr( device, "vkGetPipelinePropertiesEXT" ) );
19784
19785      //=== VK_EXT_extended_dynamic_state2 ===
19786      vkCmdSetPatchControlPointsEXT      = PFN_vkCmdSetPatchControlPointsEXT( vkGetDeviceProcAddr( device, "vkCmdSetPatchControlPointsEXT" ) );
19787      vkCmdSetRasterizerDiscardEnableEXT = PFN_vkCmdSetRasterizerDiscardEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetRasterizerDiscardEnableEXT" ) );
19788      if ( !vkCmdSetRasterizerDiscardEnable )
19789        vkCmdSetRasterizerDiscardEnable = vkCmdSetRasterizerDiscardEnableEXT;
19790      vkCmdSetDepthBiasEnableEXT = PFN_vkCmdSetDepthBiasEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBiasEnableEXT" ) );
19791      if ( !vkCmdSetDepthBiasEnable )
19792        vkCmdSetDepthBiasEnable = vkCmdSetDepthBiasEnableEXT;
19793      vkCmdSetLogicOpEXT                = PFN_vkCmdSetLogicOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetLogicOpEXT" ) );
19794      vkCmdSetPrimitiveRestartEnableEXT = PFN_vkCmdSetPrimitiveRestartEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveRestartEnableEXT" ) );
19795      if ( !vkCmdSetPrimitiveRestartEnable )
19796        vkCmdSetPrimitiveRestartEnable = vkCmdSetPrimitiveRestartEnableEXT;
19797
19798      //=== VK_EXT_color_write_enable ===
19799      vkCmdSetColorWriteEnableEXT = PFN_vkCmdSetColorWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorWriteEnableEXT" ) );
19800
19801      //=== VK_KHR_ray_tracing_maintenance1 ===
19802      vkCmdTraceRaysIndirect2KHR = PFN_vkCmdTraceRaysIndirect2KHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirect2KHR" ) );
19803
19804      //=== VK_EXT_multi_draw ===
19805      vkCmdDrawMultiEXT        = PFN_vkCmdDrawMultiEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiEXT" ) );
19806      vkCmdDrawMultiIndexedEXT = PFN_vkCmdDrawMultiIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiIndexedEXT" ) );
19807
19808      //=== VK_EXT_opacity_micromap ===
19809      vkCreateMicromapEXT                 = PFN_vkCreateMicromapEXT( vkGetDeviceProcAddr( device, "vkCreateMicromapEXT" ) );
19810      vkDestroyMicromapEXT                = PFN_vkDestroyMicromapEXT( vkGetDeviceProcAddr( device, "vkDestroyMicromapEXT" ) );
19811      vkCmdBuildMicromapsEXT              = PFN_vkCmdBuildMicromapsEXT( vkGetDeviceProcAddr( device, "vkCmdBuildMicromapsEXT" ) );
19812      vkBuildMicromapsEXT                 = PFN_vkBuildMicromapsEXT( vkGetDeviceProcAddr( device, "vkBuildMicromapsEXT" ) );
19813      vkCopyMicromapEXT                   = PFN_vkCopyMicromapEXT( vkGetDeviceProcAddr( device, "vkCopyMicromapEXT" ) );
19814      vkCopyMicromapToMemoryEXT           = PFN_vkCopyMicromapToMemoryEXT( vkGetDeviceProcAddr( device, "vkCopyMicromapToMemoryEXT" ) );
19815      vkCopyMemoryToMicromapEXT           = PFN_vkCopyMemoryToMicromapEXT( vkGetDeviceProcAddr( device, "vkCopyMemoryToMicromapEXT" ) );
19816      vkWriteMicromapsPropertiesEXT       = PFN_vkWriteMicromapsPropertiesEXT( vkGetDeviceProcAddr( device, "vkWriteMicromapsPropertiesEXT" ) );
19817      vkCmdCopyMicromapEXT                = PFN_vkCmdCopyMicromapEXT( vkGetDeviceProcAddr( device, "vkCmdCopyMicromapEXT" ) );
19818      vkCmdCopyMicromapToMemoryEXT        = PFN_vkCmdCopyMicromapToMemoryEXT( vkGetDeviceProcAddr( device, "vkCmdCopyMicromapToMemoryEXT" ) );
19819      vkCmdCopyMemoryToMicromapEXT        = PFN_vkCmdCopyMemoryToMicromapEXT( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToMicromapEXT" ) );
19820      vkCmdWriteMicromapsPropertiesEXT    = PFN_vkCmdWriteMicromapsPropertiesEXT( vkGetDeviceProcAddr( device, "vkCmdWriteMicromapsPropertiesEXT" ) );
19821      vkGetDeviceMicromapCompatibilityEXT = PFN_vkGetDeviceMicromapCompatibilityEXT( vkGetDeviceProcAddr( device, "vkGetDeviceMicromapCompatibilityEXT" ) );
19822      vkGetMicromapBuildSizesEXT          = PFN_vkGetMicromapBuildSizesEXT( vkGetDeviceProcAddr( device, "vkGetMicromapBuildSizesEXT" ) );
19823
19824      //=== VK_HUAWEI_cluster_culling_shader ===
19825      vkCmdDrawClusterHUAWEI         = PFN_vkCmdDrawClusterHUAWEI( vkGetDeviceProcAddr( device, "vkCmdDrawClusterHUAWEI" ) );
19826      vkCmdDrawClusterIndirectHUAWEI = PFN_vkCmdDrawClusterIndirectHUAWEI( vkGetDeviceProcAddr( device, "vkCmdDrawClusterIndirectHUAWEI" ) );
19827
19828      //=== VK_EXT_pageable_device_local_memory ===
19829      vkSetDeviceMemoryPriorityEXT = PFN_vkSetDeviceMemoryPriorityEXT( vkGetDeviceProcAddr( device, "vkSetDeviceMemoryPriorityEXT" ) );
19830
19831      //=== VK_KHR_maintenance4 ===
19832      vkGetDeviceBufferMemoryRequirementsKHR =
19833        PFN_vkGetDeviceBufferMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetDeviceBufferMemoryRequirementsKHR" ) );
19834      if ( !vkGetDeviceBufferMemoryRequirements )
19835        vkGetDeviceBufferMemoryRequirements = vkGetDeviceBufferMemoryRequirementsKHR;
19836      vkGetDeviceImageMemoryRequirementsKHR =
19837        PFN_vkGetDeviceImageMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetDeviceImageMemoryRequirementsKHR" ) );
19838      if ( !vkGetDeviceImageMemoryRequirements )
19839        vkGetDeviceImageMemoryRequirements = vkGetDeviceImageMemoryRequirementsKHR;
19840      vkGetDeviceImageSparseMemoryRequirementsKHR =
19841        PFN_vkGetDeviceImageSparseMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetDeviceImageSparseMemoryRequirementsKHR" ) );
19842      if ( !vkGetDeviceImageSparseMemoryRequirements )
19843        vkGetDeviceImageSparseMemoryRequirements = vkGetDeviceImageSparseMemoryRequirementsKHR;
19844
19845      //=== VK_VALVE_descriptor_set_host_mapping ===
19846      vkGetDescriptorSetLayoutHostMappingInfoVALVE =
19847        PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutHostMappingInfoVALVE" ) );
19848      vkGetDescriptorSetHostMappingVALVE = PFN_vkGetDescriptorSetHostMappingVALVE( vkGetDeviceProcAddr( device, "vkGetDescriptorSetHostMappingVALVE" ) );
19849
19850      //=== VK_NV_copy_memory_indirect ===
19851      vkCmdCopyMemoryIndirectNV        = PFN_vkCmdCopyMemoryIndirectNV( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryIndirectNV" ) );
19852      vkCmdCopyMemoryToImageIndirectNV = PFN_vkCmdCopyMemoryToImageIndirectNV( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToImageIndirectNV" ) );
19853
19854      //=== VK_NV_memory_decompression ===
19855      vkCmdDecompressMemoryNV              = PFN_vkCmdDecompressMemoryNV( vkGetDeviceProcAddr( device, "vkCmdDecompressMemoryNV" ) );
19856      vkCmdDecompressMemoryIndirectCountNV = PFN_vkCmdDecompressMemoryIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDecompressMemoryIndirectCountNV" ) );
19857
19858      //=== VK_NV_device_generated_commands_compute ===
19859      vkGetPipelineIndirectMemoryRequirementsNV =
19860        PFN_vkGetPipelineIndirectMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetPipelineIndirectMemoryRequirementsNV" ) );
19861      vkCmdUpdatePipelineIndirectBufferNV  = PFN_vkCmdUpdatePipelineIndirectBufferNV( vkGetDeviceProcAddr( device, "vkCmdUpdatePipelineIndirectBufferNV" ) );
19862      vkGetPipelineIndirectDeviceAddressNV = PFN_vkGetPipelineIndirectDeviceAddressNV( vkGetDeviceProcAddr( device, "vkGetPipelineIndirectDeviceAddressNV" ) );
19863
19864      //=== VK_EXT_extended_dynamic_state3 ===
19865      vkCmdSetTessellationDomainOriginEXT = PFN_vkCmdSetTessellationDomainOriginEXT( vkGetDeviceProcAddr( device, "vkCmdSetTessellationDomainOriginEXT" ) );
19866      vkCmdSetDepthClampEnableEXT         = PFN_vkCmdSetDepthClampEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthClampEnableEXT" ) );
19867      vkCmdSetPolygonModeEXT              = PFN_vkCmdSetPolygonModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetPolygonModeEXT" ) );
19868      vkCmdSetRasterizationSamplesEXT     = PFN_vkCmdSetRasterizationSamplesEXT( vkGetDeviceProcAddr( device, "vkCmdSetRasterizationSamplesEXT" ) );
19869      vkCmdSetSampleMaskEXT               = PFN_vkCmdSetSampleMaskEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleMaskEXT" ) );
19870      vkCmdSetAlphaToCoverageEnableEXT    = PFN_vkCmdSetAlphaToCoverageEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetAlphaToCoverageEnableEXT" ) );
19871      vkCmdSetAlphaToOneEnableEXT         = PFN_vkCmdSetAlphaToOneEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetAlphaToOneEnableEXT" ) );
19872      vkCmdSetLogicOpEnableEXT            = PFN_vkCmdSetLogicOpEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetLogicOpEnableEXT" ) );
19873      vkCmdSetColorBlendEnableEXT         = PFN_vkCmdSetColorBlendEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorBlendEnableEXT" ) );
19874      vkCmdSetColorBlendEquationEXT       = PFN_vkCmdSetColorBlendEquationEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorBlendEquationEXT" ) );
19875      vkCmdSetColorWriteMaskEXT           = PFN_vkCmdSetColorWriteMaskEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorWriteMaskEXT" ) );
19876      vkCmdSetRasterizationStreamEXT      = PFN_vkCmdSetRasterizationStreamEXT( vkGetDeviceProcAddr( device, "vkCmdSetRasterizationStreamEXT" ) );
19877      vkCmdSetConservativeRasterizationModeEXT =
19878        PFN_vkCmdSetConservativeRasterizationModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetConservativeRasterizationModeEXT" ) );
19879      vkCmdSetExtraPrimitiveOverestimationSizeEXT =
19880        PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT( vkGetDeviceProcAddr( device, "vkCmdSetExtraPrimitiveOverestimationSizeEXT" ) );
19881      vkCmdSetDepthClipEnableEXT           = PFN_vkCmdSetDepthClipEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthClipEnableEXT" ) );
19882      vkCmdSetSampleLocationsEnableEXT     = PFN_vkCmdSetSampleLocationsEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEnableEXT" ) );
19883      vkCmdSetColorBlendAdvancedEXT        = PFN_vkCmdSetColorBlendAdvancedEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorBlendAdvancedEXT" ) );
19884      vkCmdSetProvokingVertexModeEXT       = PFN_vkCmdSetProvokingVertexModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetProvokingVertexModeEXT" ) );
19885      vkCmdSetLineRasterizationModeEXT     = PFN_vkCmdSetLineRasterizationModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineRasterizationModeEXT" ) );
19886      vkCmdSetLineStippleEnableEXT         = PFN_vkCmdSetLineStippleEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEnableEXT" ) );
19887      vkCmdSetDepthClipNegativeOneToOneEXT = PFN_vkCmdSetDepthClipNegativeOneToOneEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthClipNegativeOneToOneEXT" ) );
19888      vkCmdSetViewportWScalingEnableNV     = PFN_vkCmdSetViewportWScalingEnableNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingEnableNV" ) );
19889      vkCmdSetViewportSwizzleNV            = PFN_vkCmdSetViewportSwizzleNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportSwizzleNV" ) );
19890      vkCmdSetCoverageToColorEnableNV      = PFN_vkCmdSetCoverageToColorEnableNV( vkGetDeviceProcAddr( device, "vkCmdSetCoverageToColorEnableNV" ) );
19891      vkCmdSetCoverageToColorLocationNV    = PFN_vkCmdSetCoverageToColorLocationNV( vkGetDeviceProcAddr( device, "vkCmdSetCoverageToColorLocationNV" ) );
19892      vkCmdSetCoverageModulationModeNV     = PFN_vkCmdSetCoverageModulationModeNV( vkGetDeviceProcAddr( device, "vkCmdSetCoverageModulationModeNV" ) );
19893      vkCmdSetCoverageModulationTableEnableNV =
19894        PFN_vkCmdSetCoverageModulationTableEnableNV( vkGetDeviceProcAddr( device, "vkCmdSetCoverageModulationTableEnableNV" ) );
19895      vkCmdSetCoverageModulationTableNV = PFN_vkCmdSetCoverageModulationTableNV( vkGetDeviceProcAddr( device, "vkCmdSetCoverageModulationTableNV" ) );
19896      vkCmdSetShadingRateImageEnableNV  = PFN_vkCmdSetShadingRateImageEnableNV( vkGetDeviceProcAddr( device, "vkCmdSetShadingRateImageEnableNV" ) );
19897      vkCmdSetRepresentativeFragmentTestEnableNV =
19898        PFN_vkCmdSetRepresentativeFragmentTestEnableNV( vkGetDeviceProcAddr( device, "vkCmdSetRepresentativeFragmentTestEnableNV" ) );
19899      vkCmdSetCoverageReductionModeNV = PFN_vkCmdSetCoverageReductionModeNV( vkGetDeviceProcAddr( device, "vkCmdSetCoverageReductionModeNV" ) );
19900
19901      //=== VK_EXT_shader_module_identifier ===
19902      vkGetShaderModuleIdentifierEXT = PFN_vkGetShaderModuleIdentifierEXT( vkGetDeviceProcAddr( device, "vkGetShaderModuleIdentifierEXT" ) );
19903      vkGetShaderModuleCreateInfoIdentifierEXT =
19904        PFN_vkGetShaderModuleCreateInfoIdentifierEXT( vkGetDeviceProcAddr( device, "vkGetShaderModuleCreateInfoIdentifierEXT" ) );
19905
19906      //=== VK_NV_optical_flow ===
19907      vkCreateOpticalFlowSessionNV    = PFN_vkCreateOpticalFlowSessionNV( vkGetDeviceProcAddr( device, "vkCreateOpticalFlowSessionNV" ) );
19908      vkDestroyOpticalFlowSessionNV   = PFN_vkDestroyOpticalFlowSessionNV( vkGetDeviceProcAddr( device, "vkDestroyOpticalFlowSessionNV" ) );
19909      vkBindOpticalFlowSessionImageNV = PFN_vkBindOpticalFlowSessionImageNV( vkGetDeviceProcAddr( device, "vkBindOpticalFlowSessionImageNV" ) );
19910      vkCmdOpticalFlowExecuteNV       = PFN_vkCmdOpticalFlowExecuteNV( vkGetDeviceProcAddr( device, "vkCmdOpticalFlowExecuteNV" ) );
19911
19912      //=== VK_KHR_maintenance5 ===
19913      vkCmdBindIndexBuffer2KHR             = PFN_vkCmdBindIndexBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer2KHR" ) );
19914      vkGetRenderingAreaGranularityKHR     = PFN_vkGetRenderingAreaGranularityKHR( vkGetDeviceProcAddr( device, "vkGetRenderingAreaGranularityKHR" ) );
19915      vkGetDeviceImageSubresourceLayoutKHR = PFN_vkGetDeviceImageSubresourceLayoutKHR( vkGetDeviceProcAddr( device, "vkGetDeviceImageSubresourceLayoutKHR" ) );
19916      vkGetImageSubresourceLayout2KHR      = PFN_vkGetImageSubresourceLayout2KHR( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout2KHR" ) );
19917
19918      //=== VK_EXT_shader_object ===
19919      vkCreateShadersEXT       = PFN_vkCreateShadersEXT( vkGetDeviceProcAddr( device, "vkCreateShadersEXT" ) );
19920      vkDestroyShaderEXT       = PFN_vkDestroyShaderEXT( vkGetDeviceProcAddr( device, "vkDestroyShaderEXT" ) );
19921      vkGetShaderBinaryDataEXT = PFN_vkGetShaderBinaryDataEXT( vkGetDeviceProcAddr( device, "vkGetShaderBinaryDataEXT" ) );
19922      vkCmdBindShadersEXT      = PFN_vkCmdBindShadersEXT( vkGetDeviceProcAddr( device, "vkCmdBindShadersEXT" ) );
19923
19924      //=== VK_QCOM_tile_properties ===
19925      vkGetFramebufferTilePropertiesQCOM = PFN_vkGetFramebufferTilePropertiesQCOM( vkGetDeviceProcAddr( device, "vkGetFramebufferTilePropertiesQCOM" ) );
19926      vkGetDynamicRenderingTilePropertiesQCOM =
19927        PFN_vkGetDynamicRenderingTilePropertiesQCOM( vkGetDeviceProcAddr( device, "vkGetDynamicRenderingTilePropertiesQCOM" ) );
19928
19929      //=== VK_NV_low_latency2 ===
19930      vkSetLatencySleepModeNV  = PFN_vkSetLatencySleepModeNV( vkGetDeviceProcAddr( device, "vkSetLatencySleepModeNV" ) );
19931      vkLatencySleepNV         = PFN_vkLatencySleepNV( vkGetDeviceProcAddr( device, "vkLatencySleepNV" ) );
19932      vkSetLatencyMarkerNV     = PFN_vkSetLatencyMarkerNV( vkGetDeviceProcAddr( device, "vkSetLatencyMarkerNV" ) );
19933      vkGetLatencyTimingsNV    = PFN_vkGetLatencyTimingsNV( vkGetDeviceProcAddr( device, "vkGetLatencyTimingsNV" ) );
19934      vkQueueNotifyOutOfBandNV = PFN_vkQueueNotifyOutOfBandNV( vkGetDeviceProcAddr( device, "vkQueueNotifyOutOfBandNV" ) );
19935
19936      //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
19937      vkCmdSetAttachmentFeedbackLoopEnableEXT =
19938        PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetAttachmentFeedbackLoopEnableEXT" ) );
19939
19940#if defined( VK_USE_PLATFORM_SCREEN_QNX )
19941      //=== VK_QNX_external_memory_screen_buffer ===
19942      vkGetScreenBufferPropertiesQNX = PFN_vkGetScreenBufferPropertiesQNX( vkGetDeviceProcAddr( device, "vkGetScreenBufferPropertiesQNX" ) );
19943#endif /*VK_USE_PLATFORM_SCREEN_QNX*/
19944
19945      //=== VK_KHR_calibrated_timestamps ===
19946      vkGetCalibratedTimestampsKHR = PFN_vkGetCalibratedTimestampsKHR( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsKHR" ) );
19947
19948      //=== VK_KHR_maintenance6 ===
19949      vkCmdBindDescriptorSets2KHR = PFN_vkCmdBindDescriptorSets2KHR( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets2KHR" ) );
19950      vkCmdPushConstants2KHR      = PFN_vkCmdPushConstants2KHR( vkGetDeviceProcAddr( device, "vkCmdPushConstants2KHR" ) );
19951      vkCmdPushDescriptorSet2KHR  = PFN_vkCmdPushDescriptorSet2KHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSet2KHR" ) );
19952      vkCmdPushDescriptorSetWithTemplate2KHR =
19953        PFN_vkCmdPushDescriptorSetWithTemplate2KHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplate2KHR" ) );
19954      vkCmdSetDescriptorBufferOffsets2EXT = PFN_vkCmdSetDescriptorBufferOffsets2EXT( vkGetDeviceProcAddr( device, "vkCmdSetDescriptorBufferOffsets2EXT" ) );
19955      vkCmdBindDescriptorBufferEmbeddedSamplers2EXT =
19956        PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT" ) );
19957    }
19958
19959    template <typename DynamicLoader>
19960    void init( VULKAN_HPP_NAMESPACE::Instance const & instance, VULKAN_HPP_NAMESPACE::Device const & device, DynamicLoader const & dl ) VULKAN_HPP_NOEXCEPT
19961    {
19962      PFN_vkGetInstanceProcAddr getInstanceProcAddr = dl.template getProcAddress<PFN_vkGetInstanceProcAddr>( "vkGetInstanceProcAddr" );
19963      PFN_vkGetDeviceProcAddr   getDeviceProcAddr   = dl.template getProcAddress<PFN_vkGetDeviceProcAddr>( "vkGetDeviceProcAddr" );
19964      init( static_cast<VkInstance>( instance ), getInstanceProcAddr, static_cast<VkDevice>( device ), device ? getDeviceProcAddr : nullptr );
19965    }
19966
19967    template <typename DynamicLoader
19968#if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
19969              = VULKAN_HPP_NAMESPACE::DynamicLoader
19970#endif
19971              >
19972    void init( VULKAN_HPP_NAMESPACE::Instance const & instance, VULKAN_HPP_NAMESPACE::Device const & device ) VULKAN_HPP_NOEXCEPT
19973    {
19974      static DynamicLoader dl;
19975      init( instance, device, dl );
19976    }
19977  };
19978}  // namespace VULKAN_HPP_NAMESPACE
19979#endif
19980