• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2015-2023 The Khronos Group Inc.
2 //
3 // SPDX-License-Identifier: Apache-2.0 OR MIT
4 //
5 
6 // This header is generated from the Khronos Vulkan XML API Registry.
7 
8 #ifndef VULKAN_ENUMS_HPP
9 #define VULKAN_ENUMS_HPP
10 
11 namespace VULKAN_HPP_NAMESPACE
12 {
13   template <typename FlagBitsType>
14   struct FlagTraits
15   {
16     static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = false;
17   };
18 
19   template <typename BitType>
20   class Flags
21   {
22   public:
23     using MaskType = typename std::underlying_type<BitType>::type;
24 
25     // constructors
Flags()26     VULKAN_HPP_CONSTEXPR Flags() VULKAN_HPP_NOEXCEPT : m_mask( 0 ) {}
27 
Flags(BitType bit)28     VULKAN_HPP_CONSTEXPR Flags( BitType bit ) VULKAN_HPP_NOEXCEPT : m_mask( static_cast<MaskType>( bit ) ) {}
29 
30     VULKAN_HPP_CONSTEXPR Flags( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT = default;
31 
Flags(MaskType flags)32     VULKAN_HPP_CONSTEXPR explicit Flags( MaskType flags ) VULKAN_HPP_NOEXCEPT : m_mask( flags ) {}
33 
34     // relational operators
35 #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
36     auto operator<=>( Flags<BitType> const & ) const = default;
37 #else
operator <(Flags<BitType> const & rhs) const38     VULKAN_HPP_CONSTEXPR bool operator<( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
39     {
40       return m_mask < rhs.m_mask;
41     }
42 
operator <=(Flags<BitType> const & rhs) const43     VULKAN_HPP_CONSTEXPR bool operator<=( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
44     {
45       return m_mask <= rhs.m_mask;
46     }
47 
operator >(Flags<BitType> const & rhs) const48     VULKAN_HPP_CONSTEXPR bool operator>( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
49     {
50       return m_mask > rhs.m_mask;
51     }
52 
operator >=(Flags<BitType> const & rhs) const53     VULKAN_HPP_CONSTEXPR bool operator>=( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
54     {
55       return m_mask >= rhs.m_mask;
56     }
57 
operator ==(Flags<BitType> const & rhs) const58     VULKAN_HPP_CONSTEXPR bool operator==( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
59     {
60       return m_mask == rhs.m_mask;
61     }
62 
operator !=(Flags<BitType> const & rhs) const63     VULKAN_HPP_CONSTEXPR bool operator!=( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
64     {
65       return m_mask != rhs.m_mask;
66     }
67 #endif
68 
69     // logical operator
operator !() const70     VULKAN_HPP_CONSTEXPR bool operator!() const VULKAN_HPP_NOEXCEPT
71     {
72       return !m_mask;
73     }
74 
75     // bitwise operators
operator &(Flags<BitType> const & rhs) const76     VULKAN_HPP_CONSTEXPR Flags<BitType> operator&( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
77     {
78       return Flags<BitType>( m_mask & rhs.m_mask );
79     }
80 
operator |(Flags<BitType> const & rhs) const81     VULKAN_HPP_CONSTEXPR Flags<BitType> operator|( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
82     {
83       return Flags<BitType>( m_mask | rhs.m_mask );
84     }
85 
operator ^(Flags<BitType> const & rhs) const86     VULKAN_HPP_CONSTEXPR Flags<BitType> operator^( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
87     {
88       return Flags<BitType>( m_mask ^ rhs.m_mask );
89     }
90 
operator ~() const91     VULKAN_HPP_CONSTEXPR Flags<BitType> operator~() const VULKAN_HPP_NOEXCEPT
92     {
93       return Flags<BitType>( m_mask ^ FlagTraits<BitType>::allFlags.m_mask );
94     }
95 
96     // assignment operators
97     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT = default;
98 
operator |=(Flags<BitType> const & rhs)99     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator|=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT
100     {
101       m_mask |= rhs.m_mask;
102       return *this;
103     }
104 
operator &=(Flags<BitType> const & rhs)105     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator&=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT
106     {
107       m_mask &= rhs.m_mask;
108       return *this;
109     }
110 
operator ^=(Flags<BitType> const & rhs)111     VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator^=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT
112     {
113       m_mask ^= rhs.m_mask;
114       return *this;
115     }
116 
117     // cast operators
operator bool() const118     explicit VULKAN_HPP_CONSTEXPR operator bool() const VULKAN_HPP_NOEXCEPT
119     {
120       return !!m_mask;
121     }
122 
operator MaskType() const123     explicit VULKAN_HPP_CONSTEXPR operator MaskType() const VULKAN_HPP_NOEXCEPT
124     {
125       return m_mask;
126     }
127 
128 #if defined( VULKAN_HPP_FLAGS_MASK_TYPE_AS_PUBLIC )
129   public:
130 #else
131   private:
132 #endif
133     MaskType m_mask;
134   };
135 
136 #if !defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
137   // relational operators only needed for pre C++20
138   template <typename BitType>
operator <(BitType bit,Flags<BitType> const & flags)139   VULKAN_HPP_CONSTEXPR bool operator<( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
140   {
141     return flags.operator>( bit );
142   }
143 
144   template <typename BitType>
operator <=(BitType bit,Flags<BitType> const & flags)145   VULKAN_HPP_CONSTEXPR bool operator<=( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
146   {
147     return flags.operator>=( bit );
148   }
149 
150   template <typename BitType>
operator >(BitType bit,Flags<BitType> const & flags)151   VULKAN_HPP_CONSTEXPR bool operator>( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
152   {
153     return flags.operator<( bit );
154   }
155 
156   template <typename BitType>
operator >=(BitType bit,Flags<BitType> const & flags)157   VULKAN_HPP_CONSTEXPR bool operator>=( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
158   {
159     return flags.operator<=( bit );
160   }
161 
162   template <typename BitType>
operator ==(BitType bit,Flags<BitType> const & flags)163   VULKAN_HPP_CONSTEXPR bool operator==( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
164   {
165     return flags.operator==( bit );
166   }
167 
168   template <typename BitType>
operator !=(BitType bit,Flags<BitType> const & flags)169   VULKAN_HPP_CONSTEXPR bool operator!=( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
170   {
171     return flags.operator!=( bit );
172   }
173 #endif
174 
175   // bitwise operators
176   template <typename BitType>
operator &(BitType bit,Flags<BitType> const & flags)177   VULKAN_HPP_CONSTEXPR Flags<BitType> operator&( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
178   {
179     return flags.operator&( bit );
180   }
181 
182   template <typename BitType>
operator |(BitType bit,Flags<BitType> const & flags)183   VULKAN_HPP_CONSTEXPR Flags<BitType> operator|( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
184   {
185     return flags.operator|( bit );
186   }
187 
188   template <typename BitType>
operator ^(BitType bit,Flags<BitType> const & flags)189   VULKAN_HPP_CONSTEXPR Flags<BitType> operator^( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
190   {
191     return flags.operator^( bit );
192   }
193 
194   // bitwise operators on BitType
195   template <typename BitType, typename std::enable_if<FlagTraits<BitType>::isBitmask, bool>::type = true>
operator &(BitType lhs,BitType rhs)196   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags<BitType> operator&( BitType lhs, BitType rhs ) VULKAN_HPP_NOEXCEPT
197   {
198     return Flags<BitType>( lhs ) & rhs;
199   }
200 
201   template <typename BitType, typename std::enable_if<FlagTraits<BitType>::isBitmask, bool>::type = true>
operator |(BitType lhs,BitType rhs)202   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags<BitType> operator|( BitType lhs, BitType rhs ) VULKAN_HPP_NOEXCEPT
203   {
204     return Flags<BitType>( lhs ) | rhs;
205   }
206 
207   template <typename BitType, typename std::enable_if<FlagTraits<BitType>::isBitmask, bool>::type = true>
operator ^(BitType lhs,BitType rhs)208   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags<BitType> operator^( BitType lhs, BitType rhs ) VULKAN_HPP_NOEXCEPT
209   {
210     return Flags<BitType>( lhs ) ^ rhs;
211   }
212 
213   template <typename BitType, typename std::enable_if<FlagTraits<BitType>::isBitmask, bool>::type = true>
operator ~(BitType bit)214   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR Flags<BitType> operator~( BitType bit ) VULKAN_HPP_NOEXCEPT
215   {
216     return ~( Flags<BitType>( bit ) );
217   }
218 
219   template <typename EnumType, EnumType value>
220   struct CppType
221   {
222   };
223 
224   //=============
225   //=== ENUMs ===
226   //=============
227 
228   //=== VK_VERSION_1_0 ===
229 
230   enum class Result
231   {
232     eSuccess                                     = VK_SUCCESS,
233     eNotReady                                    = VK_NOT_READY,
234     eTimeout                                     = VK_TIMEOUT,
235     eEventSet                                    = VK_EVENT_SET,
236     eEventReset                                  = VK_EVENT_RESET,
237     eIncomplete                                  = VK_INCOMPLETE,
238     eErrorOutOfHostMemory                        = VK_ERROR_OUT_OF_HOST_MEMORY,
239     eErrorOutOfDeviceMemory                      = VK_ERROR_OUT_OF_DEVICE_MEMORY,
240     eErrorInitializationFailed                   = VK_ERROR_INITIALIZATION_FAILED,
241     eErrorDeviceLost                             = VK_ERROR_DEVICE_LOST,
242     eErrorMemoryMapFailed                        = VK_ERROR_MEMORY_MAP_FAILED,
243     eErrorLayerNotPresent                        = VK_ERROR_LAYER_NOT_PRESENT,
244     eErrorExtensionNotPresent                    = VK_ERROR_EXTENSION_NOT_PRESENT,
245     eErrorFeatureNotPresent                      = VK_ERROR_FEATURE_NOT_PRESENT,
246     eErrorIncompatibleDriver                     = VK_ERROR_INCOMPATIBLE_DRIVER,
247     eErrorTooManyObjects                         = VK_ERROR_TOO_MANY_OBJECTS,
248     eErrorFormatNotSupported                     = VK_ERROR_FORMAT_NOT_SUPPORTED,
249     eErrorFragmentedPool                         = VK_ERROR_FRAGMENTED_POOL,
250     eErrorUnknown                                = VK_ERROR_UNKNOWN,
251     eErrorOutOfPoolMemory                        = VK_ERROR_OUT_OF_POOL_MEMORY,
252     eErrorInvalidExternalHandle                  = VK_ERROR_INVALID_EXTERNAL_HANDLE,
253     eErrorFragmentation                          = VK_ERROR_FRAGMENTATION,
254     eErrorInvalidOpaqueCaptureAddress            = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
255     ePipelineCompileRequired                     = VK_PIPELINE_COMPILE_REQUIRED,
256     eErrorSurfaceLostKHR                         = VK_ERROR_SURFACE_LOST_KHR,
257     eErrorNativeWindowInUseKHR                   = VK_ERROR_NATIVE_WINDOW_IN_USE_KHR,
258     eSuboptimalKHR                               = VK_SUBOPTIMAL_KHR,
259     eErrorOutOfDateKHR                           = VK_ERROR_OUT_OF_DATE_KHR,
260     eErrorIncompatibleDisplayKHR                 = VK_ERROR_INCOMPATIBLE_DISPLAY_KHR,
261     eErrorValidationFailedEXT                    = VK_ERROR_VALIDATION_FAILED_EXT,
262     eErrorInvalidShaderNV                        = VK_ERROR_INVALID_SHADER_NV,
263     eErrorImageUsageNotSupportedKHR              = VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR,
264     eErrorVideoPictureLayoutNotSupportedKHR      = VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR,
265     eErrorVideoProfileOperationNotSupportedKHR   = VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR,
266     eErrorVideoProfileFormatNotSupportedKHR      = VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR,
267     eErrorVideoProfileCodecNotSupportedKHR       = VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR,
268     eErrorVideoStdVersionNotSupportedKHR         = VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR,
269     eErrorOutOfPoolMemoryKHR                     = VK_ERROR_OUT_OF_POOL_MEMORY_KHR,
270     eErrorInvalidExternalHandleKHR               = VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR,
271     eErrorInvalidDrmFormatModifierPlaneLayoutEXT = VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT,
272     eErrorFragmentationEXT                       = VK_ERROR_FRAGMENTATION_EXT,
273     eErrorNotPermittedEXT                        = VK_ERROR_NOT_PERMITTED_EXT,
274     eErrorNotPermittedKHR                        = VK_ERROR_NOT_PERMITTED_KHR,
275     eErrorInvalidDeviceAddressEXT                = VK_ERROR_INVALID_DEVICE_ADDRESS_EXT,
276 #if defined( VK_USE_PLATFORM_WIN32_KHR )
277     eErrorFullScreenExclusiveModeLostEXT = VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT,
278 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
279     eErrorInvalidOpaqueCaptureAddressKHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR,
280     eThreadIdleKHR                       = VK_THREAD_IDLE_KHR,
281     eThreadDoneKHR                       = VK_THREAD_DONE_KHR,
282     eOperationDeferredKHR                = VK_OPERATION_DEFERRED_KHR,
283     eOperationNotDeferredKHR             = VK_OPERATION_NOT_DEFERRED_KHR,
284     ePipelineCompileRequiredEXT          = VK_PIPELINE_COMPILE_REQUIRED_EXT,
285     eErrorPipelineCompileRequiredEXT     = VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT,
286 #if defined( VK_ENABLE_BETA_EXTENSIONS )
287     eErrorInvalidVideoStdParametersKHR = VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR,
288 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
289     eErrorCompressionExhaustedEXT     = VK_ERROR_COMPRESSION_EXHAUSTED_EXT,
290     eErrorIncompatibleShaderBinaryEXT = VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT
291   };
292 
293   enum class StructureType
294   {
295     eApplicationInfo                                      = VK_STRUCTURE_TYPE_APPLICATION_INFO,
296     eInstanceCreateInfo                                   = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
297     eDeviceQueueCreateInfo                                = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO,
298     eDeviceCreateInfo                                     = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
299     eSubmitInfo                                           = VK_STRUCTURE_TYPE_SUBMIT_INFO,
300     eMemoryAllocateInfo                                   = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
301     eMappedMemoryRange                                    = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,
302     eBindSparseInfo                                       = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO,
303     eFenceCreateInfo                                      = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO,
304     eSemaphoreCreateInfo                                  = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO,
305     eEventCreateInfo                                      = VK_STRUCTURE_TYPE_EVENT_CREATE_INFO,
306     eQueryPoolCreateInfo                                  = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,
307     eBufferCreateInfo                                     = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
308     eBufferViewCreateInfo                                 = VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO,
309     eImageCreateInfo                                      = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
310     eImageViewCreateInfo                                  = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
311     eShaderModuleCreateInfo                               = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO,
312     ePipelineCacheCreateInfo                              = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO,
313     ePipelineShaderStageCreateInfo                        = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,
314     ePipelineVertexInputStateCreateInfo                   = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,
315     ePipelineInputAssemblyStateCreateInfo                 = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,
316     ePipelineTessellationStateCreateInfo                  = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO,
317     ePipelineViewportStateCreateInfo                      = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,
318     ePipelineRasterizationStateCreateInfo                 = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,
319     ePipelineMultisampleStateCreateInfo                   = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,
320     ePipelineDepthStencilStateCreateInfo                  = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,
321     ePipelineColorBlendStateCreateInfo                    = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,
322     ePipelineDynamicStateCreateInfo                       = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO,
323     eGraphicsPipelineCreateInfo                           = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,
324     eComputePipelineCreateInfo                            = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO,
325     ePipelineLayoutCreateInfo                             = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,
326     eSamplerCreateInfo                                    = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,
327     eDescriptorSetLayoutCreateInfo                        = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
328     eDescriptorPoolCreateInfo                             = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,
329     eDescriptorSetAllocateInfo                            = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,
330     eWriteDescriptorSet                                   = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
331     eCopyDescriptorSet                                    = VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET,
332     eFramebufferCreateInfo                                = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,
333     eRenderPassCreateInfo                                 = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
334     eCommandPoolCreateInfo                                = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO,
335     eCommandBufferAllocateInfo                            = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,
336     eCommandBufferInheritanceInfo                         = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO,
337     eCommandBufferBeginInfo                               = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
338     eRenderPassBeginInfo                                  = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,
339     eBufferMemoryBarrier                                  = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
340     eImageMemoryBarrier                                   = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
341     eMemoryBarrier                                        = VK_STRUCTURE_TYPE_MEMORY_BARRIER,
342     eLoaderInstanceCreateInfo                             = VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO,
343     eLoaderDeviceCreateInfo                               = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
344     ePhysicalDeviceSubgroupProperties                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES,
345     eBindBufferMemoryInfo                                 = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
346     eBindImageMemoryInfo                                  = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
347     ePhysicalDevice16BitStorageFeatures                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
348     eMemoryDedicatedRequirements                          = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
349     eMemoryDedicatedAllocateInfo                          = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
350     eMemoryAllocateFlagsInfo                              = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
351     eDeviceGroupRenderPassBeginInfo                       = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
352     eDeviceGroupCommandBufferBeginInfo                    = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
353     eDeviceGroupSubmitInfo                                = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
354     eDeviceGroupBindSparseInfo                            = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
355     eBindBufferMemoryDeviceGroupInfo                      = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
356     eBindImageMemoryDeviceGroupInfo                       = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
357     ePhysicalDeviceGroupProperties                        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
358     eDeviceGroupDeviceCreateInfo                          = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
359     eBufferMemoryRequirementsInfo2                        = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
360     eImageMemoryRequirementsInfo2                         = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
361     eImageSparseMemoryRequirementsInfo2                   = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
362     eMemoryRequirements2                                  = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
363     eSparseImageMemoryRequirements2                       = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
364     ePhysicalDeviceFeatures2                              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
365     ePhysicalDeviceProperties2                            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
366     eFormatProperties2                                    = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
367     eImageFormatProperties2                               = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
368     ePhysicalDeviceImageFormatInfo2                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
369     eQueueFamilyProperties2                               = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
370     ePhysicalDeviceMemoryProperties2                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
371     eSparseImageFormatProperties2                         = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
372     ePhysicalDeviceSparseImageFormatInfo2                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
373     ePhysicalDevicePointClippingProperties                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
374     eRenderPassInputAttachmentAspectCreateInfo            = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
375     eImageViewUsageCreateInfo                             = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
376     ePipelineTessellationDomainOriginStateCreateInfo      = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
377     eRenderPassMultiviewCreateInfo                        = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
378     ePhysicalDeviceMultiviewFeatures                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
379     ePhysicalDeviceMultiviewProperties                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
380     ePhysicalDeviceVariablePointersFeatures               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
381     ePhysicalDeviceVariablePointerFeatures                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
382     eProtectedSubmitInfo                                  = VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO,
383     ePhysicalDeviceProtectedMemoryFeatures                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES,
384     ePhysicalDeviceProtectedMemoryProperties              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES,
385     eDeviceQueueInfo2                                     = VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2,
386     eSamplerYcbcrConversionCreateInfo                     = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
387     eSamplerYcbcrConversionInfo                           = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
388     eBindImagePlaneMemoryInfo                             = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
389     eImagePlaneMemoryRequirementsInfo                     = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
390     ePhysicalDeviceSamplerYcbcrConversionFeatures         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
391     eSamplerYcbcrConversionImageFormatProperties          = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
392     eDescriptorUpdateTemplateCreateInfo                   = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
393     ePhysicalDeviceExternalImageFormatInfo                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
394     eExternalImageFormatProperties                        = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
395     ePhysicalDeviceExternalBufferInfo                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
396     eExternalBufferProperties                             = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
397     ePhysicalDeviceIdProperties                           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
398     eExternalMemoryBufferCreateInfo                       = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
399     eExternalMemoryImageCreateInfo                        = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
400     eExportMemoryAllocateInfo                             = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
401     ePhysicalDeviceExternalFenceInfo                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
402     eExternalFenceProperties                              = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
403     eExportFenceCreateInfo                                = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
404     eExportSemaphoreCreateInfo                            = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
405     ePhysicalDeviceExternalSemaphoreInfo                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
406     eExternalSemaphoreProperties                          = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
407     ePhysicalDeviceMaintenance3Properties                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
408     eDescriptorSetLayoutSupport                           = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
409     ePhysicalDeviceShaderDrawParametersFeatures           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
410     ePhysicalDeviceShaderDrawParameterFeatures            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES,
411     ePhysicalDeviceVulkan11Features                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES,
412     ePhysicalDeviceVulkan11Properties                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES,
413     ePhysicalDeviceVulkan12Features                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES,
414     ePhysicalDeviceVulkan12Properties                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES,
415     eImageFormatListCreateInfo                            = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
416     eAttachmentDescription2                               = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
417     eAttachmentReference2                                 = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
418     eSubpassDescription2                                  = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
419     eSubpassDependency2                                   = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
420     eRenderPassCreateInfo2                                = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
421     eSubpassBeginInfo                                     = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
422     eSubpassEndInfo                                       = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
423     ePhysicalDevice8BitStorageFeatures                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
424     ePhysicalDeviceDriverProperties                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
425     ePhysicalDeviceShaderAtomicInt64Features              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
426     ePhysicalDeviceShaderFloat16Int8Features              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
427     ePhysicalDeviceFloatControlsProperties                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
428     eDescriptorSetLayoutBindingFlagsCreateInfo            = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
429     ePhysicalDeviceDescriptorIndexingFeatures             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
430     ePhysicalDeviceDescriptorIndexingProperties           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
431     eDescriptorSetVariableDescriptorCountAllocateInfo     = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
432     eDescriptorSetVariableDescriptorCountLayoutSupport    = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
433     ePhysicalDeviceDepthStencilResolveProperties          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
434     eSubpassDescriptionDepthStencilResolve                = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
435     ePhysicalDeviceScalarBlockLayoutFeatures              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
436     eImageStencilUsageCreateInfo                          = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
437     ePhysicalDeviceSamplerFilterMinmaxProperties          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
438     eSamplerReductionModeCreateInfo                       = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
439     ePhysicalDeviceVulkanMemoryModelFeatures              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
440     ePhysicalDeviceImagelessFramebufferFeatures           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
441     eFramebufferAttachmentsCreateInfo                     = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
442     eFramebufferAttachmentImageInfo                       = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
443     eRenderPassAttachmentBeginInfo                        = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
444     ePhysicalDeviceUniformBufferStandardLayoutFeatures    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
445     ePhysicalDeviceShaderSubgroupExtendedTypesFeatures    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
446     ePhysicalDeviceSeparateDepthStencilLayoutsFeatures    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
447     eAttachmentReferenceStencilLayout                     = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
448     eAttachmentDescriptionStencilLayout                   = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
449     ePhysicalDeviceHostQueryResetFeatures                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
450     ePhysicalDeviceTimelineSemaphoreFeatures              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
451     ePhysicalDeviceTimelineSemaphoreProperties            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
452     eSemaphoreTypeCreateInfo                              = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
453     eTimelineSemaphoreSubmitInfo                          = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
454     eSemaphoreWaitInfo                                    = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
455     eSemaphoreSignalInfo                                  = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
456     ePhysicalDeviceBufferDeviceAddressFeatures            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
457     eBufferDeviceAddressInfo                              = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
458     eBufferOpaqueCaptureAddressCreateInfo                 = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
459     eMemoryOpaqueCaptureAddressAllocateInfo               = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
460     eDeviceMemoryOpaqueCaptureAddressInfo                 = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
461     ePhysicalDeviceVulkan13Features                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES,
462     ePhysicalDeviceVulkan13Properties                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES,
463     ePipelineCreationFeedbackCreateInfo                   = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO,
464     ePhysicalDeviceShaderTerminateInvocationFeatures      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,
465     ePhysicalDeviceToolProperties                         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES,
466     ePhysicalDeviceShaderDemoteToHelperInvocationFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,
467     ePhysicalDevicePrivateDataFeatures                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,
468     eDevicePrivateDataCreateInfo                          = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO,
469     ePrivateDataSlotCreateInfo                            = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO,
470     ePhysicalDevicePipelineCreationCacheControlFeatures   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,
471     eMemoryBarrier2                                       = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2,
472     eBufferMemoryBarrier2                                 = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2,
473     eImageMemoryBarrier2                                  = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,
474     eDependencyInfo                                       = VK_STRUCTURE_TYPE_DEPENDENCY_INFO,
475     eSubmitInfo2                                          = VK_STRUCTURE_TYPE_SUBMIT_INFO_2,
476     eSemaphoreSubmitInfo                                  = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO,
477     eCommandBufferSubmitInfo                              = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,
478     ePhysicalDeviceSynchronization2Features               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,
479     ePhysicalDeviceZeroInitializeWorkgroupMemoryFeatures  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,
480     ePhysicalDeviceImageRobustnessFeatures                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,
481     eCopyBufferInfo2                                      = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2,
482     eCopyImageInfo2                                       = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2,
483     eCopyBufferToImageInfo2                               = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2,
484     eCopyImageToBufferInfo2                               = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2,
485     eBlitImageInfo2                                       = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2,
486     eResolveImageInfo2                                    = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2,
487     eBufferCopy2                                          = VK_STRUCTURE_TYPE_BUFFER_COPY_2,
488     eImageCopy2                                           = VK_STRUCTURE_TYPE_IMAGE_COPY_2,
489     eImageBlit2                                           = VK_STRUCTURE_TYPE_IMAGE_BLIT_2,
490     eBufferImageCopy2                                     = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2,
491     eImageResolve2                                        = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2,
492     ePhysicalDeviceSubgroupSizeControlProperties          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,
493     ePipelineShaderStageRequiredSubgroupSizeCreateInfo    = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
494     ePhysicalDeviceSubgroupSizeControlFeatures            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,
495     ePhysicalDeviceInlineUniformBlockFeatures             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,
496     ePhysicalDeviceInlineUniformBlockProperties           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,
497     eWriteDescriptorSetInlineUniformBlock                 = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,
498     eDescriptorPoolInlineUniformBlockCreateInfo           = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,
499     ePhysicalDeviceTextureCompressionAstcHdrFeatures      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,
500     eRenderingInfo                                        = VK_STRUCTURE_TYPE_RENDERING_INFO,
501     eRenderingAttachmentInfo                              = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
502     ePipelineRenderingCreateInfo                          = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO,
503     ePhysicalDeviceDynamicRenderingFeatures               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,
504     eCommandBufferInheritanceRenderingInfo                = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,
505     ePhysicalDeviceShaderIntegerDotProductFeatures        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,
506     ePhysicalDeviceShaderIntegerDotProductProperties      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES,
507     ePhysicalDeviceTexelBufferAlignmentProperties         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,
508     eFormatProperties3                                    = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3,
509     ePhysicalDeviceMaintenance4Features                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,
510     ePhysicalDeviceMaintenance4Properties                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,
511     eDeviceBufferMemoryRequirements                       = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
512     eDeviceImageMemoryRequirements                        = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,
513     eSwapchainCreateInfoKHR                               = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR,
514     ePresentInfoKHR                                       = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR,
515     eDeviceGroupPresentCapabilitiesKHR                    = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,
516     eImageSwapchainCreateInfoKHR                          = VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR,
517     eBindImageMemorySwapchainInfoKHR                      = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,
518     eAcquireNextImageInfoKHR                              = VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR,
519     eDeviceGroupPresentInfoKHR                            = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR,
520     eDeviceGroupSwapchainCreateInfoKHR                    = VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,
521     eDisplayModeCreateInfoKHR                             = VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR,
522     eDisplaySurfaceCreateInfoKHR                          = VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR,
523     eDisplayPresentInfoKHR                                = VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR,
524 #if defined( VK_USE_PLATFORM_XLIB_KHR )
525     eXlibSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR,
526 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
527 #if defined( VK_USE_PLATFORM_XCB_KHR )
528     eXcbSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR,
529 #endif /*VK_USE_PLATFORM_XCB_KHR*/
530 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
531     eWaylandSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR,
532 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
533 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
534     eAndroidSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR,
535 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
536 #if defined( VK_USE_PLATFORM_WIN32_KHR )
537     eWin32SurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR,
538 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
539     eDebugReportCallbackCreateInfoEXT                = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
540     eDebugReportCreateInfoEXT                        = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT,
541     ePipelineRasterizationStateRasterizationOrderAMD = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD,
542     eDebugMarkerObjectNameInfoEXT                    = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT,
543     eDebugMarkerObjectTagInfoEXT                     = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT,
544     eDebugMarkerMarkerInfoEXT                        = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT,
545     eVideoProfileInfoKHR                             = VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR,
546     eVideoCapabilitiesKHR                            = VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR,
547     eVideoPictureResourceInfoKHR                     = VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR,
548     eVideoSessionMemoryRequirementsKHR               = VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR,
549     eBindVideoSessionMemoryInfoKHR                   = VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR,
550     eVideoSessionCreateInfoKHR                       = VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR,
551     eVideoSessionParametersCreateInfoKHR             = VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR,
552     eVideoSessionParametersUpdateInfoKHR             = VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR,
553     eVideoBeginCodingInfoKHR                         = VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR,
554     eVideoEndCodingInfoKHR                           = VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR,
555     eVideoCodingControlInfoKHR                       = VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR,
556     eVideoReferenceSlotInfoKHR                       = VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR,
557     eQueueFamilyVideoPropertiesKHR                   = VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR,
558     eVideoProfileListInfoKHR                         = VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR,
559     ePhysicalDeviceVideoFormatInfoKHR                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR,
560     eVideoFormatPropertiesKHR                        = VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR,
561     eQueueFamilyQueryResultStatusPropertiesKHR       = VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR,
562     eVideoDecodeInfoKHR                              = VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR,
563     eVideoDecodeCapabilitiesKHR                      = VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR,
564     eVideoDecodeUsageInfoKHR                         = VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR,
565     eDedicatedAllocationImageCreateInfoNV            = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV,
566     eDedicatedAllocationBufferCreateInfoNV           = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV,
567     eDedicatedAllocationMemoryAllocateInfoNV         = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV,
568     ePhysicalDeviceTransformFeedbackFeaturesEXT      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT,
569     ePhysicalDeviceTransformFeedbackPropertiesEXT    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT,
570     ePipelineRasterizationStateStreamCreateInfoEXT   = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT,
571     eCuModuleCreateInfoNVX                           = VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX,
572     eCuFunctionCreateInfoNVX                         = VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX,
573     eCuLaunchInfoNVX                                 = VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX,
574     eImageViewHandleInfoNVX                          = VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX,
575     eImageViewAddressPropertiesNVX                   = VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX,
576 #if defined( VK_ENABLE_BETA_EXTENSIONS )
577     eVideoEncodeH264CapabilitiesEXT                  = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT,
578     eVideoEncodeH264SessionParametersCreateInfoEXT   = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT,
579     eVideoEncodeH264SessionParametersAddInfoEXT      = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT,
580     eVideoEncodeH264PictureInfoEXT                   = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_EXT,
581     eVideoEncodeH264DpbSlotInfoEXT                   = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT,
582     eVideoEncodeH264NaluSliceInfoEXT                 = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT,
583     eVideoEncodeH264GopRemainingFrameInfoEXT         = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_EXT,
584     eVideoEncodeH264ProfileInfoEXT                   = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT,
585     eVideoEncodeH264RateControlInfoEXT               = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT,
586     eVideoEncodeH264RateControlLayerInfoEXT          = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT,
587     eVideoEncodeH264SessionCreateInfoEXT             = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT,
588     eVideoEncodeH264QualityLevelPropertiesEXT        = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_EXT,
589     eVideoEncodeH264SessionParametersGetInfoEXT      = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_EXT,
590     eVideoEncodeH264SessionParametersFeedbackInfoEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_EXT,
591     eVideoEncodeH265CapabilitiesEXT                  = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT,
592     eVideoEncodeH265SessionParametersCreateInfoEXT   = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT,
593     eVideoEncodeH265SessionParametersAddInfoEXT      = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT,
594     eVideoEncodeH265PictureInfoEXT                   = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_EXT,
595     eVideoEncodeH265DpbSlotInfoEXT                   = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT,
596     eVideoEncodeH265NaluSliceSegmentInfoEXT          = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT,
597     eVideoEncodeH265GopRemainingFrameInfoEXT         = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_EXT,
598     eVideoEncodeH265ProfileInfoEXT                   = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT,
599     eVideoEncodeH265RateControlInfoEXT               = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT,
600     eVideoEncodeH265RateControlLayerInfoEXT          = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT,
601     eVideoEncodeH265SessionCreateInfoEXT             = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT,
602     eVideoEncodeH265QualityLevelPropertiesEXT        = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_EXT,
603     eVideoEncodeH265SessionParametersGetInfoEXT      = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_EXT,
604     eVideoEncodeH265SessionParametersFeedbackInfoEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_EXT,
605 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
606     eVideoDecodeH264CapabilitiesKHR                = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR,
607     eVideoDecodeH264PictureInfoKHR                 = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR,
608     eVideoDecodeH264ProfileInfoKHR                 = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR,
609     eVideoDecodeH264SessionParametersCreateInfoKHR = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR,
610     eVideoDecodeH264SessionParametersAddInfoKHR    = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR,
611     eVideoDecodeH264DpbSlotInfoKHR                 = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR,
612     eTextureLodGatherFormatPropertiesAMD           = VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD,
613     eRenderingInfoKHR                              = VK_STRUCTURE_TYPE_RENDERING_INFO_KHR,
614     eRenderingAttachmentInfoKHR                    = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR,
615     ePipelineRenderingCreateInfoKHR                = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,
616     ePhysicalDeviceDynamicRenderingFeaturesKHR     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR,
617     eCommandBufferInheritanceRenderingInfoKHR      = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR,
618     eRenderingFragmentShadingRateAttachmentInfoKHR = VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,
619     eRenderingFragmentDensityMapAttachmentInfoEXT  = VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT,
620     eAttachmentSampleCountInfoAMD                  = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
621     eAttachmentSampleCountInfoNV                   = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV,
622     eMultiviewPerViewAttributesInfoNVX             = VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX,
623 #if defined( VK_USE_PLATFORM_GGP )
624     eStreamDescriptorSurfaceCreateInfoGGP = VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP,
625 #endif /*VK_USE_PLATFORM_GGP*/
626     ePhysicalDeviceCornerSampledImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV,
627     eRenderPassMultiviewCreateInfoKHR           = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR,
628     ePhysicalDeviceMultiviewFeaturesKHR         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR,
629     ePhysicalDeviceMultiviewPropertiesKHR       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR,
630     eExternalMemoryImageCreateInfoNV            = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV,
631     eExportMemoryAllocateInfoNV                 = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV,
632 #if defined( VK_USE_PLATFORM_WIN32_KHR )
633     eImportMemoryWin32HandleInfoNV       = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV,
634     eExportMemoryWin32HandleInfoNV       = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV,
635     eWin32KeyedMutexAcquireReleaseInfoNV = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV,
636 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
637     ePhysicalDeviceFeatures2KHR              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR,
638     ePhysicalDeviceProperties2KHR            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR,
639     eFormatProperties2KHR                    = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR,
640     eImageFormatProperties2KHR               = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR,
641     ePhysicalDeviceImageFormatInfo2KHR       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR,
642     eQueueFamilyProperties2KHR               = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR,
643     ePhysicalDeviceMemoryProperties2KHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR,
644     eSparseImageFormatProperties2KHR         = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR,
645     ePhysicalDeviceSparseImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR,
646     eMemoryAllocateFlagsInfoKHR              = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR,
647     eDeviceGroupRenderPassBeginInfoKHR       = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR,
648     eDeviceGroupCommandBufferBeginInfoKHR    = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR,
649     eDeviceGroupSubmitInfoKHR                = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR,
650     eDeviceGroupBindSparseInfoKHR            = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR,
651     eBindBufferMemoryDeviceGroupInfoKHR      = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR,
652     eBindImageMemoryDeviceGroupInfoKHR       = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR,
653     eValidationFlagsEXT                      = VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT,
654 #if defined( VK_USE_PLATFORM_VI_NN )
655     eViSurfaceCreateInfoNN = VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN,
656 #endif /*VK_USE_PLATFORM_VI_NN*/
657     ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT,
658     eImageViewAstcDecodeModeEXT                         = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT,
659     ePhysicalDeviceAstcDecodeFeaturesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT,
660     ePipelineRobustnessCreateInfoEXT                    = VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT,
661     ePhysicalDevicePipelineRobustnessFeaturesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT,
662     ePhysicalDevicePipelineRobustnessPropertiesEXT      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT,
663     ePhysicalDeviceGroupPropertiesKHR                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR,
664     eDeviceGroupDeviceCreateInfoKHR                     = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR,
665     ePhysicalDeviceExternalImageFormatInfoKHR           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR,
666     eExternalImageFormatPropertiesKHR                   = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR,
667     ePhysicalDeviceExternalBufferInfoKHR                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR,
668     eExternalBufferPropertiesKHR                        = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR,
669     ePhysicalDeviceIdPropertiesKHR                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR,
670     eExternalMemoryBufferCreateInfoKHR                  = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR,
671     eExternalMemoryImageCreateInfoKHR                   = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR,
672     eExportMemoryAllocateInfoKHR                        = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR,
673 #if defined( VK_USE_PLATFORM_WIN32_KHR )
674     eImportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
675     eExportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
676     eMemoryWin32HandlePropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR,
677     eMemoryGetWin32HandleInfoKHR    = VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR,
678 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
679     eImportMemoryFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR,
680     eMemoryFdPropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR,
681     eMemoryGetFdInfoKHR    = VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR,
682 #if defined( VK_USE_PLATFORM_WIN32_KHR )
683     eWin32KeyedMutexAcquireReleaseInfoKHR = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR,
684 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
685     ePhysicalDeviceExternalSemaphoreInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR,
686     eExternalSemaphorePropertiesKHR         = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR,
687     eExportSemaphoreCreateInfoKHR           = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR,
688 #if defined( VK_USE_PLATFORM_WIN32_KHR )
689     eImportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
690     eExportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
691     eD3D12FenceSubmitInfoKHR           = VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR,
692     eSemaphoreGetWin32HandleInfoKHR    = VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR,
693 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
694     eImportSemaphoreFdInfoKHR                              = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR,
695     eSemaphoreGetFdInfoKHR                                 = VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR,
696     ePhysicalDevicePushDescriptorPropertiesKHR             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR,
697     eCommandBufferInheritanceConditionalRenderingInfoEXT   = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT,
698     ePhysicalDeviceConditionalRenderingFeaturesEXT         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT,
699     eConditionalRenderingBeginInfoEXT                      = VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT,
700     ePhysicalDeviceShaderFloat16Int8FeaturesKHR            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR,
701     ePhysicalDeviceFloat16Int8FeaturesKHR                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR,
702     ePhysicalDevice16BitStorageFeaturesKHR                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR,
703     ePresentRegionsKHR                                     = VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR,
704     eDescriptorUpdateTemplateCreateInfoKHR                 = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR,
705     ePipelineViewportWScalingStateCreateInfoNV             = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV,
706     eSurfaceCapabilities2EXT                               = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
707     eDisplayPowerInfoEXT                                   = VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT,
708     eDeviceEventInfoEXT                                    = VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT,
709     eDisplayEventInfoEXT                                   = VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT,
710     eSwapchainCounterCreateInfoEXT                         = VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT,
711     ePresentTimesInfoGOOGLE                                = VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE,
712     ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX,
713     ePipelineViewportSwizzleStateCreateInfoNV              = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV,
714     ePhysicalDeviceDiscardRectanglePropertiesEXT           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT,
715     ePipelineDiscardRectangleStateCreateInfoEXT            = VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT,
716     ePhysicalDeviceConservativeRasterizationPropertiesEXT  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT,
717     ePipelineRasterizationConservativeStateCreateInfoEXT   = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT,
718     ePhysicalDeviceDepthClipEnableFeaturesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT,
719     ePipelineRasterizationDepthClipStateCreateInfoEXT      = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT,
720     eHdrMetadataEXT                                        = VK_STRUCTURE_TYPE_HDR_METADATA_EXT,
721     ePhysicalDeviceImagelessFramebufferFeaturesKHR         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR,
722     eFramebufferAttachmentsCreateInfoKHR                   = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR,
723     eFramebufferAttachmentImageInfoKHR                     = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR,
724     eRenderPassAttachmentBeginInfoKHR                      = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR,
725     eAttachmentDescription2KHR                             = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR,
726     eAttachmentReference2KHR                               = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR,
727     eSubpassDescription2KHR                                = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR,
728     eSubpassDependency2KHR                                 = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR,
729     eRenderPassCreateInfo2KHR                              = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR,
730     eSubpassBeginInfoKHR                                   = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR,
731     eSubpassEndInfoKHR                                     = VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR,
732     eSharedPresentSurfaceCapabilitiesKHR                   = VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR,
733     ePhysicalDeviceExternalFenceInfoKHR                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR,
734     eExternalFencePropertiesKHR                            = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR,
735     eExportFenceCreateInfoKHR                              = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR,
736 #if defined( VK_USE_PLATFORM_WIN32_KHR )
737     eImportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR,
738     eExportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR,
739     eFenceGetWin32HandleInfoKHR    = VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR,
740 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
741     eImportFenceFdInfoKHR                               = VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR,
742     eFenceGetFdInfoKHR                                  = VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR,
743     ePhysicalDevicePerformanceQueryFeaturesKHR          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR,
744     ePhysicalDevicePerformanceQueryPropertiesKHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR,
745     eQueryPoolPerformanceCreateInfoKHR                  = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR,
746     ePerformanceQuerySubmitInfoKHR                      = VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR,
747     eAcquireProfilingLockInfoKHR                        = VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR,
748     ePerformanceCounterKHR                              = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR,
749     ePerformanceCounterDescriptionKHR                   = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR,
750     ePhysicalDevicePointClippingPropertiesKHR           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR,
751     eRenderPassInputAttachmentAspectCreateInfoKHR       = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR,
752     eImageViewUsageCreateInfoKHR                        = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR,
753     ePipelineTessellationDomainOriginStateCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR,
754     ePhysicalDeviceSurfaceInfo2KHR                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR,
755     eSurfaceCapabilities2KHR                            = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR,
756     eSurfaceFormat2KHR                                  = VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR,
757     ePhysicalDeviceVariablePointersFeaturesKHR          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
758     ePhysicalDeviceVariablePointerFeaturesKHR           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR,
759     eDisplayProperties2KHR                              = VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR,
760     eDisplayPlaneProperties2KHR                         = VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR,
761     eDisplayModeProperties2KHR                          = VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR,
762     eDisplayPlaneInfo2KHR                               = VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR,
763     eDisplayPlaneCapabilities2KHR                       = VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR,
764 #if defined( VK_USE_PLATFORM_IOS_MVK )
765     eIosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK,
766 #endif /*VK_USE_PLATFORM_IOS_MVK*/
767 #if defined( VK_USE_PLATFORM_MACOS_MVK )
768     eMacosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK,
769 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
770     eMemoryDedicatedRequirementsKHR     = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR,
771     eMemoryDedicatedAllocateInfoKHR     = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR,
772     eDebugUtilsObjectNameInfoEXT        = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT,
773     eDebugUtilsObjectTagInfoEXT         = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT,
774     eDebugUtilsLabelEXT                 = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
775     eDebugUtilsMessengerCallbackDataEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT,
776     eDebugUtilsMessengerCreateInfoEXT   = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
777 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
778     eAndroidHardwareBufferUsageANDROID             = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID,
779     eAndroidHardwareBufferPropertiesANDROID        = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID,
780     eAndroidHardwareBufferFormatPropertiesANDROID  = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID,
781     eImportAndroidHardwareBufferInfoANDROID        = VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
782     eMemoryGetAndroidHardwareBufferInfoANDROID     = VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
783     eExternalFormatANDROID                         = VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID,
784     eAndroidHardwareBufferFormatProperties2ANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID,
785 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
786     ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT,
787     eSamplerReductionModeCreateInfoEXT              = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT,
788 #if defined( VK_ENABLE_BETA_EXTENSIONS )
789     ePhysicalDeviceShaderEnqueueFeaturesAMDX   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX,
790     ePhysicalDeviceShaderEnqueuePropertiesAMDX = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX,
791     eExecutionGraphPipelineScratchSizeAMDX     = VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX,
792     eExecutionGraphPipelineCreateInfoAMDX      = VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX,
793     ePipelineShaderStageNodeCreateInfoAMDX     = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX,
794 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
795     ePhysicalDeviceInlineUniformBlockFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT,
796     ePhysicalDeviceInlineUniformBlockPropertiesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT,
797     eWriteDescriptorSetInlineUniformBlockEXT              = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT,
798     eDescriptorPoolInlineUniformBlockCreateInfoEXT        = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT,
799     eSampleLocationsInfoEXT                               = VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT,
800     eRenderPassSampleLocationsBeginInfoEXT                = VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT,
801     ePipelineSampleLocationsStateCreateInfoEXT            = VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT,
802     ePhysicalDeviceSampleLocationsPropertiesEXT           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT,
803     eMultisamplePropertiesEXT                             = VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT,
804     eBufferMemoryRequirementsInfo2KHR                     = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR,
805     eImageMemoryRequirementsInfo2KHR                      = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR,
806     eImageSparseMemoryRequirementsInfo2KHR                = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR,
807     eMemoryRequirements2KHR                               = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR,
808     eSparseImageMemoryRequirements2KHR                    = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR,
809     eImageFormatListCreateInfoKHR                         = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR,
810     ePhysicalDeviceBlendOperationAdvancedFeaturesEXT      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT,
811     ePhysicalDeviceBlendOperationAdvancedPropertiesEXT    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT,
812     ePipelineColorBlendAdvancedStateCreateInfoEXT         = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT,
813     ePipelineCoverageToColorStateCreateInfoNV             = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV,
814     eWriteDescriptorSetAccelerationStructureKHR           = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR,
815     eAccelerationStructureBuildGeometryInfoKHR            = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,
816     eAccelerationStructureDeviceAddressInfoKHR            = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR,
817     eAccelerationStructureGeometryAabbsDataKHR            = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR,
818     eAccelerationStructureGeometryInstancesDataKHR        = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR,
819     eAccelerationStructureGeometryTrianglesDataKHR        = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR,
820     eAccelerationStructureGeometryKHR                     = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR,
821     eAccelerationStructureVersionInfoKHR                  = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR,
822     eCopyAccelerationStructureInfoKHR                     = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR,
823     eCopyAccelerationStructureToMemoryInfoKHR             = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR,
824     eCopyMemoryToAccelerationStructureInfoKHR             = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR,
825     ePhysicalDeviceAccelerationStructureFeaturesKHR       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR,
826     ePhysicalDeviceAccelerationStructurePropertiesKHR     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR,
827     eAccelerationStructureCreateInfoKHR                   = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR,
828     eAccelerationStructureBuildSizesInfoKHR               = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR,
829     ePhysicalDeviceRayTracingPipelineFeaturesKHR          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR,
830     ePhysicalDeviceRayTracingPipelinePropertiesKHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR,
831     eRayTracingPipelineCreateInfoKHR                      = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR,
832     eRayTracingShaderGroupCreateInfoKHR                   = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR,
833     eRayTracingPipelineInterfaceCreateInfoKHR             = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR,
834     ePhysicalDeviceRayQueryFeaturesKHR                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR,
835     ePipelineCoverageModulationStateCreateInfoNV          = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV,
836     ePhysicalDeviceShaderSmBuiltinsFeaturesNV             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV,
837     ePhysicalDeviceShaderSmBuiltinsPropertiesNV           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV,
838     eSamplerYcbcrConversionCreateInfoKHR                  = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR,
839     eSamplerYcbcrConversionInfoKHR                        = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR,
840     eBindImagePlaneMemoryInfoKHR                          = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR,
841     eImagePlaneMemoryRequirementsInfoKHR                  = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR,
842     ePhysicalDeviceSamplerYcbcrConversionFeaturesKHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR,
843     eSamplerYcbcrConversionImageFormatPropertiesKHR       = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR,
844     eBindBufferMemoryInfoKHR                              = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR,
845     eBindImageMemoryInfoKHR                               = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR,
846     eDrmFormatModifierPropertiesListEXT                   = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT,
847     ePhysicalDeviceImageDrmFormatModifierInfoEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT,
848     eImageDrmFormatModifierListCreateInfoEXT              = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT,
849     eImageDrmFormatModifierExplicitCreateInfoEXT          = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,
850     eImageDrmFormatModifierPropertiesEXT                  = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,
851     eDrmFormatModifierPropertiesList2EXT                  = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT,
852     eValidationCacheCreateInfoEXT                         = VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT,
853     eShaderModuleValidationCacheCreateInfoEXT             = VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT,
854     eDescriptorSetLayoutBindingFlagsCreateInfoEXT         = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT,
855     ePhysicalDeviceDescriptorIndexingFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT,
856     ePhysicalDeviceDescriptorIndexingPropertiesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT,
857     eDescriptorSetVariableDescriptorCountAllocateInfoEXT  = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT,
858     eDescriptorSetVariableDescriptorCountLayoutSupportEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT,
859 #if defined( VK_ENABLE_BETA_EXTENSIONS )
860     ePhysicalDevicePortabilitySubsetFeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR,
861     ePhysicalDevicePortabilitySubsetPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR,
862 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
863     ePipelineViewportShadingRateImageStateCreateInfoNV    = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV,
864     ePhysicalDeviceShadingRateImageFeaturesNV             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV,
865     ePhysicalDeviceShadingRateImagePropertiesNV           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV,
866     ePipelineViewportCoarseSampleOrderStateCreateInfoNV   = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV,
867     eRayTracingPipelineCreateInfoNV                       = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV,
868     eAccelerationStructureCreateInfoNV                    = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV,
869     eGeometryNV                                           = VK_STRUCTURE_TYPE_GEOMETRY_NV,
870     eGeometryTrianglesNV                                  = VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV,
871     eGeometryAabbNV                                       = VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV,
872     eBindAccelerationStructureMemoryInfoNV                = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV,
873     eWriteDescriptorSetAccelerationStructureNV            = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV,
874     eAccelerationStructureMemoryRequirementsInfoNV        = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV,
875     ePhysicalDeviceRayTracingPropertiesNV                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV,
876     eRayTracingShaderGroupCreateInfoNV                    = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV,
877     eAccelerationStructureInfoNV                          = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV,
878     ePhysicalDeviceRepresentativeFragmentTestFeaturesNV   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV,
879     ePipelineRepresentativeFragmentTestStateCreateInfoNV  = VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV,
880     ePhysicalDeviceMaintenance3PropertiesKHR              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR,
881     eDescriptorSetLayoutSupportKHR                        = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR,
882     ePhysicalDeviceImageViewImageFormatInfoEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT,
883     eFilterCubicImageViewImageFormatPropertiesEXT         = VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT,
884     eDeviceQueueGlobalPriorityCreateInfoEXT               = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT,
885     ePhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR,
886     ePhysicalDevice8BitStorageFeaturesKHR                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR,
887     eImportMemoryHostPointerInfoEXT                       = VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT,
888     eMemoryHostPointerPropertiesEXT                       = VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT,
889     ePhysicalDeviceExternalMemoryHostPropertiesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT,
890     ePhysicalDeviceShaderAtomicInt64FeaturesKHR           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR,
891     ePhysicalDeviceShaderClockFeaturesKHR                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR,
892     ePipelineCompilerControlCreateInfoAMD                 = VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD,
893     eCalibratedTimestampInfoEXT                           = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT,
894     ePhysicalDeviceShaderCorePropertiesAMD                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD,
895     eVideoDecodeH265CapabilitiesKHR                       = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR,
896     eVideoDecodeH265SessionParametersCreateInfoKHR        = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR,
897     eVideoDecodeH265SessionParametersAddInfoKHR           = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR,
898     eVideoDecodeH265ProfileInfoKHR                        = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR,
899     eVideoDecodeH265PictureInfoKHR                        = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR,
900     eVideoDecodeH265DpbSlotInfoKHR                        = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR,
901     eDeviceQueueGlobalPriorityCreateInfoKHR               = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR,
902     ePhysicalDeviceGlobalPriorityQueryFeaturesKHR         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR,
903     eQueueFamilyGlobalPriorityPropertiesKHR               = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR,
904     eDeviceMemoryOverallocationCreateInfoAMD              = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD,
905     ePhysicalDeviceVertexAttributeDivisorPropertiesEXT    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT,
906     ePipelineVertexInputDivisorStateCreateInfoEXT         = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT,
907     ePhysicalDeviceVertexAttributeDivisorFeaturesEXT      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT,
908 #if defined( VK_USE_PLATFORM_GGP )
909     ePresentFrameTokenGGP = VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP,
910 #endif /*VK_USE_PLATFORM_GGP*/
911     ePipelineCreationFeedbackCreateInfoEXT              = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT,
912     ePhysicalDeviceDriverPropertiesKHR                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR,
913     ePhysicalDeviceFloatControlsPropertiesKHR           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR,
914     ePhysicalDeviceDepthStencilResolvePropertiesKHR     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR,
915     eSubpassDescriptionDepthStencilResolveKHR           = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR,
916     ePhysicalDeviceComputeShaderDerivativesFeaturesNV   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV,
917     ePhysicalDeviceMeshShaderFeaturesNV                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV,
918     ePhysicalDeviceMeshShaderPropertiesNV               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV,
919     ePhysicalDeviceFragmentShaderBarycentricFeaturesNV  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV,
920     ePhysicalDeviceShaderImageFootprintFeaturesNV       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV,
921     ePipelineViewportExclusiveScissorStateCreateInfoNV  = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV,
922     ePhysicalDeviceExclusiveScissorFeaturesNV           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV,
923     eCheckpointDataNV                                   = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV,
924     eQueueFamilyCheckpointPropertiesNV                  = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV,
925     ePhysicalDeviceTimelineSemaphoreFeaturesKHR         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR,
926     ePhysicalDeviceTimelineSemaphorePropertiesKHR       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR,
927     eSemaphoreTypeCreateInfoKHR                         = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR,
928     eTimelineSemaphoreSubmitInfoKHR                     = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR,
929     eSemaphoreWaitInfoKHR                               = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR,
930     eSemaphoreSignalInfoKHR                             = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR,
931     ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL,
932     eQueryPoolPerformanceQueryCreateInfoINTEL           = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
933     eQueryPoolCreateInfoINTEL                           = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL,
934     eInitializePerformanceApiInfoINTEL                  = VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL,
935     ePerformanceMarkerInfoINTEL                         = VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL,
936     ePerformanceStreamMarkerInfoINTEL                   = VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL,
937     ePerformanceOverrideInfoINTEL                       = VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL,
938     ePerformanceConfigurationAcquireInfoINTEL           = VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL,
939     ePhysicalDeviceVulkanMemoryModelFeaturesKHR         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR,
940     ePhysicalDevicePciBusInfoPropertiesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT,
941     eDisplayNativeHdrSurfaceCapabilitiesAMD             = VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD,
942     eSwapchainDisplayNativeHdrCreateInfoAMD             = VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD,
943 #if defined( VK_USE_PLATFORM_FUCHSIA )
944     eImagepipeSurfaceCreateInfoFUCHSIA = VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA,
945 #endif /*VK_USE_PLATFORM_FUCHSIA*/
946     ePhysicalDeviceShaderTerminateInvocationFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR,
947 #if defined( VK_USE_PLATFORM_METAL_EXT )
948     eMetalSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT,
949 #endif /*VK_USE_PLATFORM_METAL_EXT*/
950     ePhysicalDeviceFragmentDensityMapFeaturesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT,
951     ePhysicalDeviceFragmentDensityMapPropertiesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT,
952     eRenderPassFragmentDensityMapCreateInfoEXT                = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT,
953     ePhysicalDeviceScalarBlockLayoutFeaturesEXT               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT,
954     ePhysicalDeviceSubgroupSizeControlPropertiesEXT           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT,
955     ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT     = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
956     ePhysicalDeviceSubgroupSizeControlFeaturesEXT             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT,
957     eFragmentShadingRateAttachmentInfoKHR                     = VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,
958     ePipelineFragmentShadingRateStateCreateInfoKHR            = VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR,
959     ePhysicalDeviceFragmentShadingRatePropertiesKHR           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR,
960     ePhysicalDeviceFragmentShadingRateFeaturesKHR             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR,
961     ePhysicalDeviceFragmentShadingRateKHR                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR,
962     ePhysicalDeviceShaderCoreProperties2AMD                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD,
963     ePhysicalDeviceCoherentMemoryFeaturesAMD                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD,
964     ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT,
965     ePhysicalDeviceMemoryBudgetPropertiesEXT                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT,
966     ePhysicalDeviceMemoryPriorityFeaturesEXT                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT,
967     eMemoryPriorityAllocateInfoEXT                            = VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT,
968     eSurfaceProtectedCapabilitiesKHR                          = VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR,
969     ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV,
970     ePhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR,
971     eAttachmentReferenceStencilLayoutKHR                      = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR,
972     eAttachmentDescriptionStencilLayoutKHR                    = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR,
973     ePhysicalDeviceBufferDeviceAddressFeaturesEXT             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
974     ePhysicalDeviceBufferAddressFeaturesEXT                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT,
975     eBufferDeviceAddressInfoEXT                               = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT,
976     eBufferDeviceAddressCreateInfoEXT                         = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT,
977     ePhysicalDeviceToolPropertiesEXT                          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT,
978     eImageStencilUsageCreateInfoEXT                           = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT,
979     eValidationFeaturesEXT                                    = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT,
980     ePhysicalDevicePresentWaitFeaturesKHR                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR,
981     ePhysicalDeviceCooperativeMatrixFeaturesNV                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV,
982     eCooperativeMatrixPropertiesNV                            = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV,
983     ePhysicalDeviceCooperativeMatrixPropertiesNV              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV,
984     ePhysicalDeviceCoverageReductionModeFeaturesNV            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV,
985     ePipelineCoverageReductionStateCreateInfoNV               = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV,
986     eFramebufferMixedSamplesCombinationNV                     = VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV,
987     ePhysicalDeviceFragmentShaderInterlockFeaturesEXT         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT,
988     ePhysicalDeviceYcbcrImageArraysFeaturesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT,
989     ePhysicalDeviceUniformBufferStandardLayoutFeaturesKHR     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR,
990     ePhysicalDeviceProvokingVertexFeaturesEXT                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT,
991     ePipelineRasterizationProvokingVertexStateCreateInfoEXT   = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT,
992     ePhysicalDeviceProvokingVertexPropertiesEXT               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT,
993 #if defined( VK_USE_PLATFORM_WIN32_KHR )
994     eSurfaceFullScreenExclusiveInfoEXT         = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT,
995     eSurfaceCapabilitiesFullScreenExclusiveEXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT,
996     eSurfaceFullScreenExclusiveWin32InfoEXT    = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT,
997 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
998     eHeadlessSurfaceCreateInfoEXT                            = VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT,
999     ePhysicalDeviceBufferDeviceAddressFeaturesKHR            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR,
1000     eBufferDeviceAddressInfoKHR                              = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR,
1001     eBufferOpaqueCaptureAddressCreateInfoKHR                 = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR,
1002     eMemoryOpaqueCaptureAddressAllocateInfoKHR               = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR,
1003     eDeviceMemoryOpaqueCaptureAddressInfoKHR                 = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR,
1004     ePhysicalDeviceLineRasterizationFeaturesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT,
1005     ePipelineRasterizationLineStateCreateInfoEXT             = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT,
1006     ePhysicalDeviceLineRasterizationPropertiesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT,
1007     ePhysicalDeviceShaderAtomicFloatFeaturesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT,
1008     ePhysicalDeviceHostQueryResetFeaturesEXT                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT,
1009     ePhysicalDeviceIndexTypeUint8FeaturesEXT                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT,
1010     ePhysicalDeviceExtendedDynamicStateFeaturesEXT           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT,
1011     ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR,
1012     ePipelineInfoKHR                                         = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
1013     ePipelineExecutablePropertiesKHR                         = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR,
1014     ePipelineExecutableInfoKHR                               = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR,
1015     ePipelineExecutableStatisticKHR                          = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR,
1016     ePipelineExecutableInternalRepresentationKHR             = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR,
1017     ePhysicalDeviceHostImageCopyFeaturesEXT                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT,
1018     ePhysicalDeviceHostImageCopyPropertiesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT,
1019     eMemoryToImageCopyEXT                                    = VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT,
1020     eImageToMemoryCopyEXT                                    = VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT,
1021     eCopyImageToMemoryInfoEXT                                = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT,
1022     eCopyMemoryToImageInfoEXT                                = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT,
1023     eHostImageLayoutTransitionInfoEXT                        = VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT,
1024     eCopyImageToImageInfoEXT                                 = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT,
1025     eSubresourceHostMemcpySizeEXT                            = VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT,
1026     eHostImageCopyDevicePerformanceQueryEXT                  = VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT,
1027     eMemoryMapInfoKHR                                        = VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR,
1028     eMemoryUnmapInfoKHR                                      = VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR,
1029     ePhysicalDeviceShaderAtomicFloat2FeaturesEXT             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT,
1030     eSurfacePresentModeEXT                                   = VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT,
1031     eSurfacePresentScalingCapabilitiesEXT                    = VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT,
1032     eSurfacePresentModeCompatibilityEXT                      = VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT,
1033     ePhysicalDeviceSwapchainMaintenance1FeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT,
1034     eSwapchainPresentFenceInfoEXT                            = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT,
1035     eSwapchainPresentModesCreateInfoEXT                      = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT,
1036     eSwapchainPresentModeInfoEXT                             = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT,
1037     eSwapchainPresentScalingCreateInfoEXT                    = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT,
1038     eReleaseSwapchainImagesInfoEXT                           = VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT,
1039     ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT,
1040     ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV,
1041     eGraphicsShaderGroupCreateInfoNV                         = VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV,
1042     eGraphicsPipelineShaderGroupsCreateInfoNV                = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV,
1043     eIndirectCommandsLayoutTokenNV                           = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV,
1044     eIndirectCommandsLayoutCreateInfoNV                      = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV,
1045     eGeneratedCommandsInfoNV                                 = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV,
1046     eGeneratedCommandsMemoryRequirementsInfoNV               = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV,
1047     ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV,
1048     ePhysicalDeviceInheritedViewportScissorFeaturesNV        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV,
1049     eCommandBufferInheritanceViewportScissorInfoNV           = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV,
1050     ePhysicalDeviceShaderIntegerDotProductFeaturesKHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR,
1051     ePhysicalDeviceShaderIntegerDotProductPropertiesKHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR,
1052     ePhysicalDeviceTexelBufferAlignmentFeaturesEXT           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT,
1053     ePhysicalDeviceTexelBufferAlignmentPropertiesEXT         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT,
1054     eCommandBufferInheritanceRenderPassTransformInfoQCOM     = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM,
1055     eRenderPassTransformBeginInfoQCOM                        = VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM,
1056     ePhysicalDeviceDepthBiasControlFeaturesEXT               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT,
1057     eDepthBiasInfoEXT                                        = VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT,
1058     eDepthBiasRepresentationInfoEXT                          = VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT,
1059     ePhysicalDeviceDeviceMemoryReportFeaturesEXT             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT,
1060     eDeviceDeviceMemoryReportCreateInfoEXT                   = VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT,
1061     eDeviceMemoryReportCallbackDataEXT                       = VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT,
1062     ePhysicalDeviceRobustness2FeaturesEXT                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT,
1063     ePhysicalDeviceRobustness2PropertiesEXT                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT,
1064     eSamplerCustomBorderColorCreateInfoEXT                   = VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT,
1065     ePhysicalDeviceCustomBorderColorPropertiesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT,
1066     ePhysicalDeviceCustomBorderColorFeaturesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT,
1067     ePipelineLibraryCreateInfoKHR                            = VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR,
1068     ePhysicalDevicePresentBarrierFeaturesNV                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV,
1069     eSurfaceCapabilitiesPresentBarrierNV                     = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV,
1070     eSwapchainPresentBarrierCreateInfoNV                     = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV,
1071     ePresentIdKHR                                            = VK_STRUCTURE_TYPE_PRESENT_ID_KHR,
1072     ePhysicalDevicePresentIdFeaturesKHR                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR,
1073     ePhysicalDevicePrivateDataFeaturesEXT                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT,
1074     eDevicePrivateDataCreateInfoEXT                          = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT,
1075     ePrivateDataSlotCreateInfoEXT                            = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT,
1076     ePhysicalDevicePipelineCreationCacheControlFeaturesEXT   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT,
1077 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1078     eVideoEncodeInfoKHR                           = VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR,
1079     eVideoEncodeRateControlInfoKHR                = VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR,
1080     eVideoEncodeRateControlLayerInfoKHR           = VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR,
1081     eVideoEncodeCapabilitiesKHR                   = VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR,
1082     eVideoEncodeUsageInfoKHR                      = VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR,
1083     eQueryPoolVideoEncodeFeedbackCreateInfoKHR    = VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR,
1084     ePhysicalDeviceVideoEncodeQualityLevelInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR,
1085     eVideoEncodeQualityLevelPropertiesKHR         = VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR,
1086     eVideoEncodeQualityLevelInfoKHR               = VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR,
1087     eVideoEncodeSessionParametersGetInfoKHR       = VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR,
1088     eVideoEncodeSessionParametersFeedbackInfoKHR  = VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR,
1089 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1090     ePhysicalDeviceDiagnosticsConfigFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV,
1091     eDeviceDiagnosticsConfigCreateInfoNV       = VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV,
1092     eQueryLowLatencySupportNV                  = VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV,
1093 #if defined( VK_USE_PLATFORM_METAL_EXT )
1094     eExportMetalObjectCreateInfoEXT = VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT,
1095     eExportMetalObjectsInfoEXT      = VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT,
1096     eExportMetalDeviceInfoEXT       = VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT,
1097     eExportMetalCommandQueueInfoEXT = VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT,
1098     eExportMetalBufferInfoEXT       = VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT,
1099     eImportMetalBufferInfoEXT       = VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT,
1100     eExportMetalTextureInfoEXT      = VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT,
1101     eImportMetalTextureInfoEXT      = VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT,
1102     eExportMetalIoSurfaceInfoEXT    = VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT,
1103     eImportMetalIoSurfaceInfoEXT    = VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT,
1104     eExportMetalSharedEventInfoEXT  = VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT,
1105     eImportMetalSharedEventInfoEXT  = VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT,
1106 #endif /*VK_USE_PLATFORM_METAL_EXT*/
1107     eMemoryBarrier2KHR                                           = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR,
1108     eBufferMemoryBarrier2KHR                                     = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR,
1109     eImageMemoryBarrier2KHR                                      = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR,
1110     eDependencyInfoKHR                                           = VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR,
1111     eSubmitInfo2KHR                                              = VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR,
1112     eSemaphoreSubmitInfoKHR                                      = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR,
1113     eCommandBufferSubmitInfoKHR                                  = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR,
1114     ePhysicalDeviceSynchronization2FeaturesKHR                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR,
1115     eQueueFamilyCheckpointProperties2NV                          = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV,
1116     eCheckpointData2NV                                           = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV,
1117     ePhysicalDeviceDescriptorBufferPropertiesEXT                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT,
1118     ePhysicalDeviceDescriptorBufferDensityMapPropertiesEXT       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT,
1119     ePhysicalDeviceDescriptorBufferFeaturesEXT                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT,
1120     eDescriptorAddressInfoEXT                                    = VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT,
1121     eDescriptorGetInfoEXT                                        = VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT,
1122     eBufferCaptureDescriptorDataInfoEXT                          = VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
1123     eImageCaptureDescriptorDataInfoEXT                           = VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
1124     eImageViewCaptureDescriptorDataInfoEXT                       = VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
1125     eSamplerCaptureDescriptorDataInfoEXT                         = VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
1126     eOpaqueCaptureDescriptorDataCreateInfoEXT                    = VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT,
1127     eDescriptorBufferBindingInfoEXT                              = VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT,
1128     eDescriptorBufferBindingPushDescriptorBufferHandleEXT        = VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT,
1129     eAccelerationStructureCaptureDescriptorDataInfoEXT           = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
1130     ePhysicalDeviceGraphicsPipelineLibraryFeaturesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT,
1131     ePhysicalDeviceGraphicsPipelineLibraryPropertiesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT,
1132     eGraphicsPipelineLibraryCreateInfoEXT                        = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT,
1133     ePhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD,
1134     ePhysicalDeviceFragmentShaderBarycentricFeaturesKHR          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
1135     ePhysicalDeviceFragmentShaderBarycentricPropertiesKHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR,
1136     ePhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR,
1137     ePhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR,
1138     ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV,
1139     ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV,
1140     ePipelineFragmentShadingRateEnumStateCreateInfoNV            = VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV,
1141     eAccelerationStructureGeometryMotionTrianglesDataNV          = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV,
1142     ePhysicalDeviceRayTracingMotionBlurFeaturesNV                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV,
1143     eAccelerationStructureMotionInfoNV                           = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV,
1144     ePhysicalDeviceMeshShaderFeaturesEXT                         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT,
1145     ePhysicalDeviceMeshShaderPropertiesEXT                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT,
1146     ePhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT,
1147     ePhysicalDeviceFragmentDensityMap2FeaturesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT,
1148     ePhysicalDeviceFragmentDensityMap2PropertiesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT,
1149     eCopyCommandTransformInfoQCOM                                = VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM,
1150     ePhysicalDeviceImageRobustnessFeaturesEXT                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT,
1151     ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR,
1152     eCopyBufferInfo2KHR                                          = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR,
1153     eCopyImageInfo2KHR                                           = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR,
1154     eCopyBufferToImageInfo2KHR                                   = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR,
1155     eCopyImageToBufferInfo2KHR                                   = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR,
1156     eBlitImageInfo2KHR                                           = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR,
1157     eResolveImageInfo2KHR                                        = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR,
1158     eBufferCopy2KHR                                              = VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR,
1159     eImageCopy2KHR                                               = VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR,
1160     eImageBlit2KHR                                               = VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR,
1161     eBufferImageCopy2KHR                                         = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR,
1162     eImageResolve2KHR                                            = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR,
1163     ePhysicalDeviceImageCompressionControlFeaturesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT,
1164     eImageCompressionControlEXT                                  = VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT,
1165     eSubresourceLayout2EXT                                       = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT,
1166     eImageSubresource2EXT                                        = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT,
1167     eImageCompressionPropertiesEXT                               = VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT,
1168     ePhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT,
1169     ePhysicalDevice4444FormatsFeaturesEXT                        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT,
1170     ePhysicalDeviceFaultFeaturesEXT                              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT,
1171     eDeviceFaultCountsEXT                                        = VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT,
1172     eDeviceFaultInfoEXT                                          = VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT,
1173     ePhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM,
1174     ePhysicalDeviceRgba10X6FormatsFeaturesEXT                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT,
1175 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
1176     eDirectfbSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT,
1177 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
1178     ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE,
1179     eMutableDescriptorTypeCreateInfoVALVE                  = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE,
1180     ePhysicalDeviceVertexInputDynamicStateFeaturesEXT      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT,
1181     eVertexInputBindingDescription2EXT                     = VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT,
1182     eVertexInputAttributeDescription2EXT                   = VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT,
1183     ePhysicalDeviceDrmPropertiesEXT                        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT,
1184     ePhysicalDeviceAddressBindingReportFeaturesEXT         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT,
1185     eDeviceAddressBindingCallbackDataEXT                   = VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT,
1186     ePhysicalDeviceDepthClipControlFeaturesEXT             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT,
1187     ePipelineViewportDepthClipControlCreateInfoEXT         = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT,
1188     ePhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT,
1189     eFormatProperties3KHR                                  = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR,
1190 #if defined( VK_USE_PLATFORM_FUCHSIA )
1191     eImportMemoryZirconHandleInfoFUCHSIA     = VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA,
1192     eMemoryZirconHandlePropertiesFUCHSIA     = VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA,
1193     eMemoryGetZirconHandleInfoFUCHSIA        = VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA,
1194     eImportSemaphoreZirconHandleInfoFUCHSIA  = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA,
1195     eSemaphoreGetZirconHandleInfoFUCHSIA     = VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA,
1196     eBufferCollectionCreateInfoFUCHSIA       = VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA,
1197     eImportMemoryBufferCollectionFUCHSIA     = VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA,
1198     eBufferCollectionImageCreateInfoFUCHSIA  = VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA,
1199     eBufferCollectionPropertiesFUCHSIA       = VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA,
1200     eBufferConstraintsInfoFUCHSIA            = VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA,
1201     eBufferCollectionBufferCreateInfoFUCHSIA = VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA,
1202     eImageConstraintsInfoFUCHSIA             = VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA,
1203     eImageFormatConstraintsInfoFUCHSIA       = VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA,
1204     eSysmemColorSpaceFUCHSIA                 = VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA,
1205     eBufferCollectionConstraintsInfoFUCHSIA  = VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA,
1206 #endif /*VK_USE_PLATFORM_FUCHSIA*/
1207     eSubpassShadingPipelineCreateInfoHUAWEI                     = VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI,
1208     ePhysicalDeviceSubpassShadingFeaturesHUAWEI                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI,
1209     ePhysicalDeviceSubpassShadingPropertiesHUAWEI               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI,
1210     ePhysicalDeviceInvocationMaskFeaturesHUAWEI                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI,
1211     eMemoryGetRemoteAddressInfoNV                               = VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV,
1212     ePhysicalDeviceExternalMemoryRdmaFeaturesNV                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV,
1213     ePipelinePropertiesIdentifierEXT                            = VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT,
1214     ePhysicalDevicePipelinePropertiesFeaturesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT,
1215     ePipelineInfoEXT                                            = VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT,
1216     ePhysicalDeviceFrameBoundaryFeaturesEXT                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT,
1217     eFrameBoundaryEXT                                           = VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT,
1218     ePhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT,
1219     eSubpassResolvePerformanceQueryEXT                          = VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT,
1220     eMultisampledRenderToSingleSampledInfoEXT                   = VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT,
1221     ePhysicalDeviceExtendedDynamicState2FeaturesEXT             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT,
1222 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
1223     eScreenSurfaceCreateInfoQNX = VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX,
1224 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
1225     ePhysicalDeviceColorWriteEnableFeaturesEXT         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT,
1226     ePipelineColorWriteCreateInfoEXT                   = VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT,
1227     ePhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT,
1228     ePhysicalDeviceRayTracingMaintenance1FeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR,
1229     ePhysicalDeviceGlobalPriorityQueryFeaturesEXT      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT,
1230     eQueueFamilyGlobalPriorityPropertiesEXT            = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT,
1231     ePhysicalDeviceImageViewMinLodFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT,
1232     eImageViewMinLodCreateInfoEXT                      = VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT,
1233     ePhysicalDeviceMultiDrawFeaturesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT,
1234     ePhysicalDeviceMultiDrawPropertiesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT,
1235     ePhysicalDeviceImage2DViewOf3DFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT,
1236     ePhysicalDeviceShaderTileImageFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT,
1237     ePhysicalDeviceShaderTileImagePropertiesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT,
1238     eMicromapBuildInfoEXT                              = VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT,
1239     eMicromapVersionInfoEXT                            = VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT,
1240     eCopyMicromapInfoEXT                               = VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT,
1241     eCopyMicromapToMemoryInfoEXT                       = VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT,
1242     eCopyMemoryToMicromapInfoEXT                       = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT,
1243     ePhysicalDeviceOpacityMicromapFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT,
1244     ePhysicalDeviceOpacityMicromapPropertiesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT,
1245     eMicromapCreateInfoEXT                             = VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT,
1246     eMicromapBuildSizesInfoEXT                         = VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT,
1247     eAccelerationStructureTrianglesOpacityMicromapEXT  = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT,
1248 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1249     ePhysicalDeviceDisplacementMicromapFeaturesNV         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV,
1250     ePhysicalDeviceDisplacementMicromapPropertiesNV       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV,
1251     eAccelerationStructureTrianglesDisplacementMicromapNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV,
1252 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1253     ePhysicalDeviceClusterCullingShaderFeaturesHUAWEI            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI,
1254     ePhysicalDeviceClusterCullingShaderPropertiesHUAWEI          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI,
1255     ePhysicalDeviceBorderColorSwizzleFeaturesEXT                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT,
1256     eSamplerBorderColorComponentMappingCreateInfoEXT             = VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT,
1257     ePhysicalDevicePageableDeviceLocalMemoryFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT,
1258     ePhysicalDeviceMaintenance4FeaturesKHR                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR,
1259     ePhysicalDeviceMaintenance4PropertiesKHR                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR,
1260     eDeviceBufferMemoryRequirementsKHR                           = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR,
1261     eDeviceImageMemoryRequirementsKHR                            = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR,
1262     ePhysicalDeviceShaderCorePropertiesARM                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM,
1263     ePhysicalDeviceImageSlicedViewOf3DFeaturesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT,
1264     eImageViewSlicedCreateInfoEXT                                = VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT,
1265     ePhysicalDeviceDescriptorSetHostMappingFeaturesVALVE         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE,
1266     eDescriptorSetBindingReferenceVALVE                          = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE,
1267     eDescriptorSetLayoutHostMappingInfoVALVE                     = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE,
1268     ePhysicalDeviceDepthClampZeroOneFeaturesEXT                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT,
1269     ePhysicalDeviceNonSeamlessCubeMapFeaturesEXT                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT,
1270     ePhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM,
1271     ePhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM,
1272     eSubpassFragmentDensityMapOffsetEndInfoQCOM                  = VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM,
1273     ePhysicalDeviceCopyMemoryIndirectFeaturesNV                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV,
1274     ePhysicalDeviceCopyMemoryIndirectPropertiesNV                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV,
1275     ePhysicalDeviceMemoryDecompressionFeaturesNV                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV,
1276     ePhysicalDeviceMemoryDecompressionPropertiesNV               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV,
1277     ePhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV,
1278     eComputePipelineIndirectBufferInfoNV                         = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV,
1279     ePipelineIndirectDeviceAddressInfoNV                         = VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV,
1280     ePhysicalDeviceLinearColorAttachmentFeaturesNV               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV,
1281     ePhysicalDeviceImageCompressionControlSwapchainFeaturesEXT   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT,
1282     ePhysicalDeviceImageProcessingFeaturesQCOM                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM,
1283     ePhysicalDeviceImageProcessingPropertiesQCOM                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM,
1284     eImageViewSampleWeightCreateInfoQCOM                         = VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM,
1285     eExternalMemoryAcquireUnmodifiedEXT                          = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT,
1286     ePhysicalDeviceExtendedDynamicState3FeaturesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT,
1287     ePhysicalDeviceExtendedDynamicState3PropertiesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT,
1288     ePhysicalDeviceSubpassMergeFeedbackFeaturesEXT               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT,
1289     eRenderPassCreationControlEXT                                = VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT,
1290     eRenderPassCreationFeedbackCreateInfoEXT                     = VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT,
1291     eRenderPassSubpassFeedbackCreateInfoEXT                      = VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT,
1292     eDirectDriverLoadingInfoLUNARG                               = VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG,
1293     eDirectDriverLoadingListLUNARG                               = VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG,
1294     ePhysicalDeviceShaderModuleIdentifierFeaturesEXT             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT,
1295     ePhysicalDeviceShaderModuleIdentifierPropertiesEXT           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT,
1296     ePipelineShaderStageModuleIdentifierCreateInfoEXT            = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT,
1297     eShaderModuleIdentifierEXT                                   = VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT,
1298     ePhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT,
1299     ePhysicalDeviceOpticalFlowFeaturesNV                         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV,
1300     ePhysicalDeviceOpticalFlowPropertiesNV                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV,
1301     eOpticalFlowImageFormatInfoNV                                = VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV,
1302     eOpticalFlowImageFormatPropertiesNV                          = VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV,
1303     eOpticalFlowSessionCreateInfoNV                              = VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV,
1304     eOpticalFlowExecuteInfoNV                                    = VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV,
1305     eOpticalFlowSessionCreatePrivateDataInfoNV                   = VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV,
1306     ePhysicalDeviceLegacyDitheringFeaturesEXT                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT,
1307     ePhysicalDevicePipelineProtectedAccessFeaturesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT,
1308 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
1309     ePhysicalDeviceExternalFormatResolveFeaturesANDROID   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID,
1310     ePhysicalDeviceExternalFormatResolvePropertiesANDROID = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID,
1311     eAndroidHardwareBufferFormatResolvePropertiesANDROID  = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID,
1312 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
1313     ePhysicalDeviceMaintenance5FeaturesKHR                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR,
1314     ePhysicalDeviceMaintenance5PropertiesKHR                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR,
1315     eRenderingAreaInfoKHR                                        = VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR,
1316     eDeviceImageSubresourceInfoKHR                               = VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR,
1317     eSubresourceLayout2KHR                                       = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR,
1318     eImageSubresource2KHR                                        = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR,
1319     ePipelineCreateFlags2CreateInfoKHR                           = VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR,
1320     eBufferUsageFlags2CreateInfoKHR                              = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR,
1321     ePhysicalDeviceRayTracingPositionFetchFeaturesKHR            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR,
1322     ePhysicalDeviceShaderObjectFeaturesEXT                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT,
1323     ePhysicalDeviceShaderObjectPropertiesEXT                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT,
1324     eShaderCreateInfoEXT                                         = VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT,
1325     eShaderRequiredSubgroupSizeCreateInfoEXT                     = VK_STRUCTURE_TYPE_SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
1326     ePhysicalDeviceTilePropertiesFeaturesQCOM                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM,
1327     eTilePropertiesQCOM                                          = VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM,
1328     ePhysicalDeviceAmigoProfilingFeaturesSEC                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC,
1329     eAmigoProfilingSubmitInfoSEC                                 = VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC,
1330     ePhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM,
1331     ePhysicalDeviceRayTracingInvocationReorderFeaturesNV         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV,
1332     ePhysicalDeviceRayTracingInvocationReorderPropertiesNV       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV,
1333     ePhysicalDeviceMutableDescriptorTypeFeaturesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT,
1334     eMutableDescriptorTypeCreateInfoEXT                          = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT,
1335     ePhysicalDeviceShaderCoreBuiltinsFeaturesARM                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM,
1336     ePhysicalDeviceShaderCoreBuiltinsPropertiesARM               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM,
1337     ePhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT,
1338     ePhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT,
1339     eLatencySleepModeInfoNV                                      = VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV,
1340     eLatencySleepInfoNV                                          = VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV,
1341     eSetLatencyMarkerInfoNV                                      = VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV,
1342     eGetLatencyMarkerInfoNV                                      = VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV,
1343     eLatencyTimingsFrameReportNV                                 = VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV,
1344     eLatencySubmissionPresentIdNV                                = VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV,
1345     eOutOfBandQueueTypeInfoNV                                    = VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV,
1346     eSwapchainLatencyCreateInfoNV                                = VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV,
1347     eLatencySurfaceCapabilitiesNV                                = VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV,
1348     ePhysicalDeviceCooperativeMatrixFeaturesKHR                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR,
1349     eCooperativeMatrixPropertiesKHR                              = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR,
1350     ePhysicalDeviceCooperativeMatrixPropertiesKHR                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR,
1351     ePhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM,
1352     eMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM          = VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM,
1353     ePhysicalDeviceImageProcessing2FeaturesQCOM                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM,
1354     ePhysicalDeviceImageProcessing2PropertiesQCOM                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM,
1355     eSamplerBlockMatchWindowCreateInfoQCOM                       = VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM,
1356     eSamplerCubicWeightsCreateInfoQCOM                           = VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM,
1357     ePhysicalDeviceCubicWeightsFeaturesQCOM                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM,
1358     eBlitImageCubicWeightsInfoQCOM                               = VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM,
1359     ePhysicalDeviceYcbcrDegammaFeaturesQCOM                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM,
1360     eSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM            = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM,
1361     ePhysicalDeviceCubicClampFeaturesQCOM                        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM,
1362     ePhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT,
1363 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
1364     eScreenBufferPropertiesQNX                           = VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX,
1365     eScreenBufferFormatPropertiesQNX                     = VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX,
1366     eImportScreenBufferInfoQNX                           = VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX,
1367     eExternalFormatQNX                                   = VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX,
1368     ePhysicalDeviceExternalMemoryScreenBufferFeaturesQNX = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX,
1369 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
1370     ePhysicalDeviceLayeredDriverPropertiesMSFT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT,
1371     ePhysicalDeviceDescriptorPoolOverallocationFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV
1372   };
1373 
1374   enum class PipelineCacheHeaderVersion
1375   {
1376     eOne = VK_PIPELINE_CACHE_HEADER_VERSION_ONE
1377   };
1378 
1379   enum class ObjectType
1380   {
1381     eUnknown                       = VK_OBJECT_TYPE_UNKNOWN,
1382     eInstance                      = VK_OBJECT_TYPE_INSTANCE,
1383     ePhysicalDevice                = VK_OBJECT_TYPE_PHYSICAL_DEVICE,
1384     eDevice                        = VK_OBJECT_TYPE_DEVICE,
1385     eQueue                         = VK_OBJECT_TYPE_QUEUE,
1386     eSemaphore                     = VK_OBJECT_TYPE_SEMAPHORE,
1387     eCommandBuffer                 = VK_OBJECT_TYPE_COMMAND_BUFFER,
1388     eFence                         = VK_OBJECT_TYPE_FENCE,
1389     eDeviceMemory                  = VK_OBJECT_TYPE_DEVICE_MEMORY,
1390     eBuffer                        = VK_OBJECT_TYPE_BUFFER,
1391     eImage                         = VK_OBJECT_TYPE_IMAGE,
1392     eEvent                         = VK_OBJECT_TYPE_EVENT,
1393     eQueryPool                     = VK_OBJECT_TYPE_QUERY_POOL,
1394     eBufferView                    = VK_OBJECT_TYPE_BUFFER_VIEW,
1395     eImageView                     = VK_OBJECT_TYPE_IMAGE_VIEW,
1396     eShaderModule                  = VK_OBJECT_TYPE_SHADER_MODULE,
1397     ePipelineCache                 = VK_OBJECT_TYPE_PIPELINE_CACHE,
1398     ePipelineLayout                = VK_OBJECT_TYPE_PIPELINE_LAYOUT,
1399     eRenderPass                    = VK_OBJECT_TYPE_RENDER_PASS,
1400     ePipeline                      = VK_OBJECT_TYPE_PIPELINE,
1401     eDescriptorSetLayout           = VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT,
1402     eSampler                       = VK_OBJECT_TYPE_SAMPLER,
1403     eDescriptorPool                = VK_OBJECT_TYPE_DESCRIPTOR_POOL,
1404     eDescriptorSet                 = VK_OBJECT_TYPE_DESCRIPTOR_SET,
1405     eFramebuffer                   = VK_OBJECT_TYPE_FRAMEBUFFER,
1406     eCommandPool                   = VK_OBJECT_TYPE_COMMAND_POOL,
1407     eSamplerYcbcrConversion        = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
1408     eDescriptorUpdateTemplate      = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
1409     ePrivateDataSlot               = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
1410     eSurfaceKHR                    = VK_OBJECT_TYPE_SURFACE_KHR,
1411     eSwapchainKHR                  = VK_OBJECT_TYPE_SWAPCHAIN_KHR,
1412     eDisplayKHR                    = VK_OBJECT_TYPE_DISPLAY_KHR,
1413     eDisplayModeKHR                = VK_OBJECT_TYPE_DISPLAY_MODE_KHR,
1414     eDebugReportCallbackEXT        = VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT,
1415     eVideoSessionKHR               = VK_OBJECT_TYPE_VIDEO_SESSION_KHR,
1416     eVideoSessionParametersKHR     = VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR,
1417     eCuModuleNVX                   = VK_OBJECT_TYPE_CU_MODULE_NVX,
1418     eCuFunctionNVX                 = VK_OBJECT_TYPE_CU_FUNCTION_NVX,
1419     eDescriptorUpdateTemplateKHR   = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR,
1420     eDebugUtilsMessengerEXT        = VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT,
1421     eAccelerationStructureKHR      = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR,
1422     eSamplerYcbcrConversionKHR     = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR,
1423     eValidationCacheEXT            = VK_OBJECT_TYPE_VALIDATION_CACHE_EXT,
1424     eAccelerationStructureNV       = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV,
1425     ePerformanceConfigurationINTEL = VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL,
1426     eDeferredOperationKHR          = VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR,
1427     eIndirectCommandsLayoutNV      = VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV,
1428     ePrivateDataSlotEXT            = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT,
1429 #if defined( VK_USE_PLATFORM_FUCHSIA )
1430     eBufferCollectionFUCHSIA = VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA,
1431 #endif /*VK_USE_PLATFORM_FUCHSIA*/
1432     eMicromapEXT          = VK_OBJECT_TYPE_MICROMAP_EXT,
1433     eOpticalFlowSessionNV = VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV,
1434     eShaderEXT            = VK_OBJECT_TYPE_SHADER_EXT
1435   };
1436 
1437   enum class VendorId
1438   {
1439     eVIV      = VK_VENDOR_ID_VIV,
1440     eVSI      = VK_VENDOR_ID_VSI,
1441     eKazan    = VK_VENDOR_ID_KAZAN,
1442     eCodeplay = VK_VENDOR_ID_CODEPLAY,
1443     eMESA     = VK_VENDOR_ID_MESA,
1444     ePocl     = VK_VENDOR_ID_POCL,
1445     eMobileye = VK_VENDOR_ID_MOBILEYE
1446   };
1447 
1448   enum class Format
1449   {
1450     eUndefined                               = VK_FORMAT_UNDEFINED,
1451     eR4G4UnormPack8                          = VK_FORMAT_R4G4_UNORM_PACK8,
1452     eR4G4B4A4UnormPack16                     = VK_FORMAT_R4G4B4A4_UNORM_PACK16,
1453     eB4G4R4A4UnormPack16                     = VK_FORMAT_B4G4R4A4_UNORM_PACK16,
1454     eR5G6B5UnormPack16                       = VK_FORMAT_R5G6B5_UNORM_PACK16,
1455     eB5G6R5UnormPack16                       = VK_FORMAT_B5G6R5_UNORM_PACK16,
1456     eR5G5B5A1UnormPack16                     = VK_FORMAT_R5G5B5A1_UNORM_PACK16,
1457     eB5G5R5A1UnormPack16                     = VK_FORMAT_B5G5R5A1_UNORM_PACK16,
1458     eA1R5G5B5UnormPack16                     = VK_FORMAT_A1R5G5B5_UNORM_PACK16,
1459     eR8Unorm                                 = VK_FORMAT_R8_UNORM,
1460     eR8Snorm                                 = VK_FORMAT_R8_SNORM,
1461     eR8Uscaled                               = VK_FORMAT_R8_USCALED,
1462     eR8Sscaled                               = VK_FORMAT_R8_SSCALED,
1463     eR8Uint                                  = VK_FORMAT_R8_UINT,
1464     eR8Sint                                  = VK_FORMAT_R8_SINT,
1465     eR8Srgb                                  = VK_FORMAT_R8_SRGB,
1466     eR8G8Unorm                               = VK_FORMAT_R8G8_UNORM,
1467     eR8G8Snorm                               = VK_FORMAT_R8G8_SNORM,
1468     eR8G8Uscaled                             = VK_FORMAT_R8G8_USCALED,
1469     eR8G8Sscaled                             = VK_FORMAT_R8G8_SSCALED,
1470     eR8G8Uint                                = VK_FORMAT_R8G8_UINT,
1471     eR8G8Sint                                = VK_FORMAT_R8G8_SINT,
1472     eR8G8Srgb                                = VK_FORMAT_R8G8_SRGB,
1473     eR8G8B8Unorm                             = VK_FORMAT_R8G8B8_UNORM,
1474     eR8G8B8Snorm                             = VK_FORMAT_R8G8B8_SNORM,
1475     eR8G8B8Uscaled                           = VK_FORMAT_R8G8B8_USCALED,
1476     eR8G8B8Sscaled                           = VK_FORMAT_R8G8B8_SSCALED,
1477     eR8G8B8Uint                              = VK_FORMAT_R8G8B8_UINT,
1478     eR8G8B8Sint                              = VK_FORMAT_R8G8B8_SINT,
1479     eR8G8B8Srgb                              = VK_FORMAT_R8G8B8_SRGB,
1480     eB8G8R8Unorm                             = VK_FORMAT_B8G8R8_UNORM,
1481     eB8G8R8Snorm                             = VK_FORMAT_B8G8R8_SNORM,
1482     eB8G8R8Uscaled                           = VK_FORMAT_B8G8R8_USCALED,
1483     eB8G8R8Sscaled                           = VK_FORMAT_B8G8R8_SSCALED,
1484     eB8G8R8Uint                              = VK_FORMAT_B8G8R8_UINT,
1485     eB8G8R8Sint                              = VK_FORMAT_B8G8R8_SINT,
1486     eB8G8R8Srgb                              = VK_FORMAT_B8G8R8_SRGB,
1487     eR8G8B8A8Unorm                           = VK_FORMAT_R8G8B8A8_UNORM,
1488     eR8G8B8A8Snorm                           = VK_FORMAT_R8G8B8A8_SNORM,
1489     eR8G8B8A8Uscaled                         = VK_FORMAT_R8G8B8A8_USCALED,
1490     eR8G8B8A8Sscaled                         = VK_FORMAT_R8G8B8A8_SSCALED,
1491     eR8G8B8A8Uint                            = VK_FORMAT_R8G8B8A8_UINT,
1492     eR8G8B8A8Sint                            = VK_FORMAT_R8G8B8A8_SINT,
1493     eR8G8B8A8Srgb                            = VK_FORMAT_R8G8B8A8_SRGB,
1494     eB8G8R8A8Unorm                           = VK_FORMAT_B8G8R8A8_UNORM,
1495     eB8G8R8A8Snorm                           = VK_FORMAT_B8G8R8A8_SNORM,
1496     eB8G8R8A8Uscaled                         = VK_FORMAT_B8G8R8A8_USCALED,
1497     eB8G8R8A8Sscaled                         = VK_FORMAT_B8G8R8A8_SSCALED,
1498     eB8G8R8A8Uint                            = VK_FORMAT_B8G8R8A8_UINT,
1499     eB8G8R8A8Sint                            = VK_FORMAT_B8G8R8A8_SINT,
1500     eB8G8R8A8Srgb                            = VK_FORMAT_B8G8R8A8_SRGB,
1501     eA8B8G8R8UnormPack32                     = VK_FORMAT_A8B8G8R8_UNORM_PACK32,
1502     eA8B8G8R8SnormPack32                     = VK_FORMAT_A8B8G8R8_SNORM_PACK32,
1503     eA8B8G8R8UscaledPack32                   = VK_FORMAT_A8B8G8R8_USCALED_PACK32,
1504     eA8B8G8R8SscaledPack32                   = VK_FORMAT_A8B8G8R8_SSCALED_PACK32,
1505     eA8B8G8R8UintPack32                      = VK_FORMAT_A8B8G8R8_UINT_PACK32,
1506     eA8B8G8R8SintPack32                      = VK_FORMAT_A8B8G8R8_SINT_PACK32,
1507     eA8B8G8R8SrgbPack32                      = VK_FORMAT_A8B8G8R8_SRGB_PACK32,
1508     eA2R10G10B10UnormPack32                  = VK_FORMAT_A2R10G10B10_UNORM_PACK32,
1509     eA2R10G10B10SnormPack32                  = VK_FORMAT_A2R10G10B10_SNORM_PACK32,
1510     eA2R10G10B10UscaledPack32                = VK_FORMAT_A2R10G10B10_USCALED_PACK32,
1511     eA2R10G10B10SscaledPack32                = VK_FORMAT_A2R10G10B10_SSCALED_PACK32,
1512     eA2R10G10B10UintPack32                   = VK_FORMAT_A2R10G10B10_UINT_PACK32,
1513     eA2R10G10B10SintPack32                   = VK_FORMAT_A2R10G10B10_SINT_PACK32,
1514     eA2B10G10R10UnormPack32                  = VK_FORMAT_A2B10G10R10_UNORM_PACK32,
1515     eA2B10G10R10SnormPack32                  = VK_FORMAT_A2B10G10R10_SNORM_PACK32,
1516     eA2B10G10R10UscaledPack32                = VK_FORMAT_A2B10G10R10_USCALED_PACK32,
1517     eA2B10G10R10SscaledPack32                = VK_FORMAT_A2B10G10R10_SSCALED_PACK32,
1518     eA2B10G10R10UintPack32                   = VK_FORMAT_A2B10G10R10_UINT_PACK32,
1519     eA2B10G10R10SintPack32                   = VK_FORMAT_A2B10G10R10_SINT_PACK32,
1520     eR16Unorm                                = VK_FORMAT_R16_UNORM,
1521     eR16Snorm                                = VK_FORMAT_R16_SNORM,
1522     eR16Uscaled                              = VK_FORMAT_R16_USCALED,
1523     eR16Sscaled                              = VK_FORMAT_R16_SSCALED,
1524     eR16Uint                                 = VK_FORMAT_R16_UINT,
1525     eR16Sint                                 = VK_FORMAT_R16_SINT,
1526     eR16Sfloat                               = VK_FORMAT_R16_SFLOAT,
1527     eR16G16Unorm                             = VK_FORMAT_R16G16_UNORM,
1528     eR16G16Snorm                             = VK_FORMAT_R16G16_SNORM,
1529     eR16G16Uscaled                           = VK_FORMAT_R16G16_USCALED,
1530     eR16G16Sscaled                           = VK_FORMAT_R16G16_SSCALED,
1531     eR16G16Uint                              = VK_FORMAT_R16G16_UINT,
1532     eR16G16Sint                              = VK_FORMAT_R16G16_SINT,
1533     eR16G16Sfloat                            = VK_FORMAT_R16G16_SFLOAT,
1534     eR16G16B16Unorm                          = VK_FORMAT_R16G16B16_UNORM,
1535     eR16G16B16Snorm                          = VK_FORMAT_R16G16B16_SNORM,
1536     eR16G16B16Uscaled                        = VK_FORMAT_R16G16B16_USCALED,
1537     eR16G16B16Sscaled                        = VK_FORMAT_R16G16B16_SSCALED,
1538     eR16G16B16Uint                           = VK_FORMAT_R16G16B16_UINT,
1539     eR16G16B16Sint                           = VK_FORMAT_R16G16B16_SINT,
1540     eR16G16B16Sfloat                         = VK_FORMAT_R16G16B16_SFLOAT,
1541     eR16G16B16A16Unorm                       = VK_FORMAT_R16G16B16A16_UNORM,
1542     eR16G16B16A16Snorm                       = VK_FORMAT_R16G16B16A16_SNORM,
1543     eR16G16B16A16Uscaled                     = VK_FORMAT_R16G16B16A16_USCALED,
1544     eR16G16B16A16Sscaled                     = VK_FORMAT_R16G16B16A16_SSCALED,
1545     eR16G16B16A16Uint                        = VK_FORMAT_R16G16B16A16_UINT,
1546     eR16G16B16A16Sint                        = VK_FORMAT_R16G16B16A16_SINT,
1547     eR16G16B16A16Sfloat                      = VK_FORMAT_R16G16B16A16_SFLOAT,
1548     eR32Uint                                 = VK_FORMAT_R32_UINT,
1549     eR32Sint                                 = VK_FORMAT_R32_SINT,
1550     eR32Sfloat                               = VK_FORMAT_R32_SFLOAT,
1551     eR32G32Uint                              = VK_FORMAT_R32G32_UINT,
1552     eR32G32Sint                              = VK_FORMAT_R32G32_SINT,
1553     eR32G32Sfloat                            = VK_FORMAT_R32G32_SFLOAT,
1554     eR32G32B32Uint                           = VK_FORMAT_R32G32B32_UINT,
1555     eR32G32B32Sint                           = VK_FORMAT_R32G32B32_SINT,
1556     eR32G32B32Sfloat                         = VK_FORMAT_R32G32B32_SFLOAT,
1557     eR32G32B32A32Uint                        = VK_FORMAT_R32G32B32A32_UINT,
1558     eR32G32B32A32Sint                        = VK_FORMAT_R32G32B32A32_SINT,
1559     eR32G32B32A32Sfloat                      = VK_FORMAT_R32G32B32A32_SFLOAT,
1560     eR64Uint                                 = VK_FORMAT_R64_UINT,
1561     eR64Sint                                 = VK_FORMAT_R64_SINT,
1562     eR64Sfloat                               = VK_FORMAT_R64_SFLOAT,
1563     eR64G64Uint                              = VK_FORMAT_R64G64_UINT,
1564     eR64G64Sint                              = VK_FORMAT_R64G64_SINT,
1565     eR64G64Sfloat                            = VK_FORMAT_R64G64_SFLOAT,
1566     eR64G64B64Uint                           = VK_FORMAT_R64G64B64_UINT,
1567     eR64G64B64Sint                           = VK_FORMAT_R64G64B64_SINT,
1568     eR64G64B64Sfloat                         = VK_FORMAT_R64G64B64_SFLOAT,
1569     eR64G64B64A64Uint                        = VK_FORMAT_R64G64B64A64_UINT,
1570     eR64G64B64A64Sint                        = VK_FORMAT_R64G64B64A64_SINT,
1571     eR64G64B64A64Sfloat                      = VK_FORMAT_R64G64B64A64_SFLOAT,
1572     eB10G11R11UfloatPack32                   = VK_FORMAT_B10G11R11_UFLOAT_PACK32,
1573     eE5B9G9R9UfloatPack32                    = VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,
1574     eD16Unorm                                = VK_FORMAT_D16_UNORM,
1575     eX8D24UnormPack32                        = VK_FORMAT_X8_D24_UNORM_PACK32,
1576     eD32Sfloat                               = VK_FORMAT_D32_SFLOAT,
1577     eS8Uint                                  = VK_FORMAT_S8_UINT,
1578     eD16UnormS8Uint                          = VK_FORMAT_D16_UNORM_S8_UINT,
1579     eD24UnormS8Uint                          = VK_FORMAT_D24_UNORM_S8_UINT,
1580     eD32SfloatS8Uint                         = VK_FORMAT_D32_SFLOAT_S8_UINT,
1581     eBc1RgbUnormBlock                        = VK_FORMAT_BC1_RGB_UNORM_BLOCK,
1582     eBc1RgbSrgbBlock                         = VK_FORMAT_BC1_RGB_SRGB_BLOCK,
1583     eBc1RgbaUnormBlock                       = VK_FORMAT_BC1_RGBA_UNORM_BLOCK,
1584     eBc1RgbaSrgbBlock                        = VK_FORMAT_BC1_RGBA_SRGB_BLOCK,
1585     eBc2UnormBlock                           = VK_FORMAT_BC2_UNORM_BLOCK,
1586     eBc2SrgbBlock                            = VK_FORMAT_BC2_SRGB_BLOCK,
1587     eBc3UnormBlock                           = VK_FORMAT_BC3_UNORM_BLOCK,
1588     eBc3SrgbBlock                            = VK_FORMAT_BC3_SRGB_BLOCK,
1589     eBc4UnormBlock                           = VK_FORMAT_BC4_UNORM_BLOCK,
1590     eBc4SnormBlock                           = VK_FORMAT_BC4_SNORM_BLOCK,
1591     eBc5UnormBlock                           = VK_FORMAT_BC5_UNORM_BLOCK,
1592     eBc5SnormBlock                           = VK_FORMAT_BC5_SNORM_BLOCK,
1593     eBc6HUfloatBlock                         = VK_FORMAT_BC6H_UFLOAT_BLOCK,
1594     eBc6HSfloatBlock                         = VK_FORMAT_BC6H_SFLOAT_BLOCK,
1595     eBc7UnormBlock                           = VK_FORMAT_BC7_UNORM_BLOCK,
1596     eBc7SrgbBlock                            = VK_FORMAT_BC7_SRGB_BLOCK,
1597     eEtc2R8G8B8UnormBlock                    = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK,
1598     eEtc2R8G8B8SrgbBlock                     = VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK,
1599     eEtc2R8G8B8A1UnormBlock                  = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK,
1600     eEtc2R8G8B8A1SrgbBlock                   = VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK,
1601     eEtc2R8G8B8A8UnormBlock                  = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK,
1602     eEtc2R8G8B8A8SrgbBlock                   = VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK,
1603     eEacR11UnormBlock                        = VK_FORMAT_EAC_R11_UNORM_BLOCK,
1604     eEacR11SnormBlock                        = VK_FORMAT_EAC_R11_SNORM_BLOCK,
1605     eEacR11G11UnormBlock                     = VK_FORMAT_EAC_R11G11_UNORM_BLOCK,
1606     eEacR11G11SnormBlock                     = VK_FORMAT_EAC_R11G11_SNORM_BLOCK,
1607     eAstc4x4UnormBlock                       = VK_FORMAT_ASTC_4x4_UNORM_BLOCK,
1608     eAstc4x4SrgbBlock                        = VK_FORMAT_ASTC_4x4_SRGB_BLOCK,
1609     eAstc5x4UnormBlock                       = VK_FORMAT_ASTC_5x4_UNORM_BLOCK,
1610     eAstc5x4SrgbBlock                        = VK_FORMAT_ASTC_5x4_SRGB_BLOCK,
1611     eAstc5x5UnormBlock                       = VK_FORMAT_ASTC_5x5_UNORM_BLOCK,
1612     eAstc5x5SrgbBlock                        = VK_FORMAT_ASTC_5x5_SRGB_BLOCK,
1613     eAstc6x5UnormBlock                       = VK_FORMAT_ASTC_6x5_UNORM_BLOCK,
1614     eAstc6x5SrgbBlock                        = VK_FORMAT_ASTC_6x5_SRGB_BLOCK,
1615     eAstc6x6UnormBlock                       = VK_FORMAT_ASTC_6x6_UNORM_BLOCK,
1616     eAstc6x6SrgbBlock                        = VK_FORMAT_ASTC_6x6_SRGB_BLOCK,
1617     eAstc8x5UnormBlock                       = VK_FORMAT_ASTC_8x5_UNORM_BLOCK,
1618     eAstc8x5SrgbBlock                        = VK_FORMAT_ASTC_8x5_SRGB_BLOCK,
1619     eAstc8x6UnormBlock                       = VK_FORMAT_ASTC_8x6_UNORM_BLOCK,
1620     eAstc8x6SrgbBlock                        = VK_FORMAT_ASTC_8x6_SRGB_BLOCK,
1621     eAstc8x8UnormBlock                       = VK_FORMAT_ASTC_8x8_UNORM_BLOCK,
1622     eAstc8x8SrgbBlock                        = VK_FORMAT_ASTC_8x8_SRGB_BLOCK,
1623     eAstc10x5UnormBlock                      = VK_FORMAT_ASTC_10x5_UNORM_BLOCK,
1624     eAstc10x5SrgbBlock                       = VK_FORMAT_ASTC_10x5_SRGB_BLOCK,
1625     eAstc10x6UnormBlock                      = VK_FORMAT_ASTC_10x6_UNORM_BLOCK,
1626     eAstc10x6SrgbBlock                       = VK_FORMAT_ASTC_10x6_SRGB_BLOCK,
1627     eAstc10x8UnormBlock                      = VK_FORMAT_ASTC_10x8_UNORM_BLOCK,
1628     eAstc10x8SrgbBlock                       = VK_FORMAT_ASTC_10x8_SRGB_BLOCK,
1629     eAstc10x10UnormBlock                     = VK_FORMAT_ASTC_10x10_UNORM_BLOCK,
1630     eAstc10x10SrgbBlock                      = VK_FORMAT_ASTC_10x10_SRGB_BLOCK,
1631     eAstc12x10UnormBlock                     = VK_FORMAT_ASTC_12x10_UNORM_BLOCK,
1632     eAstc12x10SrgbBlock                      = VK_FORMAT_ASTC_12x10_SRGB_BLOCK,
1633     eAstc12x12UnormBlock                     = VK_FORMAT_ASTC_12x12_UNORM_BLOCK,
1634     eAstc12x12SrgbBlock                      = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
1635     eG8B8G8R8422Unorm                        = VK_FORMAT_G8B8G8R8_422_UNORM,
1636     eB8G8R8G8422Unorm                        = VK_FORMAT_B8G8R8G8_422_UNORM,
1637     eG8B8R83Plane420Unorm                    = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
1638     eG8B8R82Plane420Unorm                    = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
1639     eG8B8R83Plane422Unorm                    = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
1640     eG8B8R82Plane422Unorm                    = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
1641     eG8B8R83Plane444Unorm                    = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
1642     eR10X6UnormPack16                        = VK_FORMAT_R10X6_UNORM_PACK16,
1643     eR10X6G10X6Unorm2Pack16                  = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
1644     eR10X6G10X6B10X6A10X6Unorm4Pack16        = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
1645     eG10X6B10X6G10X6R10X6422Unorm4Pack16     = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
1646     eB10X6G10X6R10X6G10X6422Unorm4Pack16     = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
1647     eG10X6B10X6R10X63Plane420Unorm3Pack16    = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
1648     eG10X6B10X6R10X62Plane420Unorm3Pack16    = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
1649     eG10X6B10X6R10X63Plane422Unorm3Pack16    = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
1650     eG10X6B10X6R10X62Plane422Unorm3Pack16    = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
1651     eG10X6B10X6R10X63Plane444Unorm3Pack16    = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
1652     eR12X4UnormPack16                        = VK_FORMAT_R12X4_UNORM_PACK16,
1653     eR12X4G12X4Unorm2Pack16                  = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
1654     eR12X4G12X4B12X4A12X4Unorm4Pack16        = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
1655     eG12X4B12X4G12X4R12X4422Unorm4Pack16     = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
1656     eB12X4G12X4R12X4G12X4422Unorm4Pack16     = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
1657     eG12X4B12X4R12X43Plane420Unorm3Pack16    = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
1658     eG12X4B12X4R12X42Plane420Unorm3Pack16    = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
1659     eG12X4B12X4R12X43Plane422Unorm3Pack16    = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
1660     eG12X4B12X4R12X42Plane422Unorm3Pack16    = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
1661     eG12X4B12X4R12X43Plane444Unorm3Pack16    = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
1662     eG16B16G16R16422Unorm                    = VK_FORMAT_G16B16G16R16_422_UNORM,
1663     eB16G16R16G16422Unorm                    = VK_FORMAT_B16G16R16G16_422_UNORM,
1664     eG16B16R163Plane420Unorm                 = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
1665     eG16B16R162Plane420Unorm                 = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
1666     eG16B16R163Plane422Unorm                 = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
1667     eG16B16R162Plane422Unorm                 = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
1668     eG16B16R163Plane444Unorm                 = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
1669     eG8B8R82Plane444Unorm                    = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM,
1670     eG10X6B10X6R10X62Plane444Unorm3Pack16    = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,
1671     eG12X4B12X4R12X42Plane444Unorm3Pack16    = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16,
1672     eG16B16R162Plane444Unorm                 = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM,
1673     eA4R4G4B4UnormPack16                     = VK_FORMAT_A4R4G4B4_UNORM_PACK16,
1674     eA4B4G4R4UnormPack16                     = VK_FORMAT_A4B4G4R4_UNORM_PACK16,
1675     eAstc4x4SfloatBlock                      = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK,
1676     eAstc5x4SfloatBlock                      = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK,
1677     eAstc5x5SfloatBlock                      = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK,
1678     eAstc6x5SfloatBlock                      = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK,
1679     eAstc6x6SfloatBlock                      = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK,
1680     eAstc8x5SfloatBlock                      = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK,
1681     eAstc8x6SfloatBlock                      = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK,
1682     eAstc8x8SfloatBlock                      = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK,
1683     eAstc10x5SfloatBlock                     = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK,
1684     eAstc10x6SfloatBlock                     = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK,
1685     eAstc10x8SfloatBlock                     = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK,
1686     eAstc10x10SfloatBlock                    = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK,
1687     eAstc12x10SfloatBlock                    = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK,
1688     eAstc12x12SfloatBlock                    = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK,
1689     ePvrtc12BppUnormBlockIMG                 = VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG,
1690     ePvrtc14BppUnormBlockIMG                 = VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG,
1691     ePvrtc22BppUnormBlockIMG                 = VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG,
1692     ePvrtc24BppUnormBlockIMG                 = VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG,
1693     ePvrtc12BppSrgbBlockIMG                  = VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG,
1694     ePvrtc14BppSrgbBlockIMG                  = VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG,
1695     ePvrtc22BppSrgbBlockIMG                  = VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG,
1696     ePvrtc24BppSrgbBlockIMG                  = VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG,
1697     eAstc4x4SfloatBlockEXT                   = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT,
1698     eAstc5x4SfloatBlockEXT                   = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT,
1699     eAstc5x5SfloatBlockEXT                   = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT,
1700     eAstc6x5SfloatBlockEXT                   = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT,
1701     eAstc6x6SfloatBlockEXT                   = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT,
1702     eAstc8x5SfloatBlockEXT                   = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT,
1703     eAstc8x6SfloatBlockEXT                   = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT,
1704     eAstc8x8SfloatBlockEXT                   = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT,
1705     eAstc10x5SfloatBlockEXT                  = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT,
1706     eAstc10x6SfloatBlockEXT                  = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT,
1707     eAstc10x8SfloatBlockEXT                  = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT,
1708     eAstc10x10SfloatBlockEXT                 = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT,
1709     eAstc12x10SfloatBlockEXT                 = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT,
1710     eAstc12x12SfloatBlockEXT                 = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT,
1711     eG8B8G8R8422UnormKHR                     = VK_FORMAT_G8B8G8R8_422_UNORM_KHR,
1712     eB8G8R8G8422UnormKHR                     = VK_FORMAT_B8G8R8G8_422_UNORM_KHR,
1713     eG8B8R83Plane420UnormKHR                 = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR,
1714     eG8B8R82Plane420UnormKHR                 = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR,
1715     eG8B8R83Plane422UnormKHR                 = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR,
1716     eG8B8R82Plane422UnormKHR                 = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR,
1717     eG8B8R83Plane444UnormKHR                 = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR,
1718     eR10X6UnormPack16KHR                     = VK_FORMAT_R10X6_UNORM_PACK16_KHR,
1719     eR10X6G10X6Unorm2Pack16KHR               = VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR,
1720     eR10X6G10X6B10X6A10X6Unorm4Pack16KHR     = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR,
1721     eG10X6B10X6G10X6R10X6422Unorm4Pack16KHR  = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR,
1722     eB10X6G10X6R10X6G10X6422Unorm4Pack16KHR  = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR,
1723     eG10X6B10X6R10X63Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR,
1724     eG10X6B10X6R10X62Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR,
1725     eG10X6B10X6R10X63Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR,
1726     eG10X6B10X6R10X62Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR,
1727     eG10X6B10X6R10X63Plane444Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR,
1728     eR12X4UnormPack16KHR                     = VK_FORMAT_R12X4_UNORM_PACK16_KHR,
1729     eR12X4G12X4Unorm2Pack16KHR               = VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR,
1730     eR12X4G12X4B12X4A12X4Unorm4Pack16KHR     = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR,
1731     eG12X4B12X4G12X4R12X4422Unorm4Pack16KHR  = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR,
1732     eB12X4G12X4R12X4G12X4422Unorm4Pack16KHR  = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR,
1733     eG12X4B12X4R12X43Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR,
1734     eG12X4B12X4R12X42Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR,
1735     eG12X4B12X4R12X43Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR,
1736     eG12X4B12X4R12X42Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR,
1737     eG12X4B12X4R12X43Plane444Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR,
1738     eG16B16G16R16422UnormKHR                 = VK_FORMAT_G16B16G16R16_422_UNORM_KHR,
1739     eB16G16R16G16422UnormKHR                 = VK_FORMAT_B16G16R16G16_422_UNORM_KHR,
1740     eG16B16R163Plane420UnormKHR              = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR,
1741     eG16B16R162Plane420UnormKHR              = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR,
1742     eG16B16R163Plane422UnormKHR              = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR,
1743     eG16B16R162Plane422UnormKHR              = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR,
1744     eG16B16R163Plane444UnormKHR              = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR,
1745     eG8B8R82Plane444UnormEXT                 = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT,
1746     eG10X6B10X6R10X62Plane444Unorm3Pack16EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT,
1747     eG12X4B12X4R12X42Plane444Unorm3Pack16EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT,
1748     eG16B16R162Plane444UnormEXT              = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT,
1749     eA4R4G4B4UnormPack16EXT                  = VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT,
1750     eA4B4G4R4UnormPack16EXT                  = VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT,
1751     eR16G16S105NV                            = VK_FORMAT_R16G16_S10_5_NV,
1752     eA1B5G5R5UnormPack16KHR                  = VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR,
1753     eA8UnormKHR                              = VK_FORMAT_A8_UNORM_KHR
1754   };
1755 
1756   enum class FormatFeatureFlagBits : VkFormatFeatureFlags
1757   {
1758     eSampledImage                                            = VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
1759     eStorageImage                                            = VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,
1760     eStorageImageAtomic                                      = VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,
1761     eUniformTexelBuffer                                      = VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,
1762     eStorageTexelBuffer                                      = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,
1763     eStorageTexelBufferAtomic                                = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,
1764     eVertexBuffer                                            = VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,
1765     eColorAttachment                                         = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,
1766     eColorAttachmentBlend                                    = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,
1767     eDepthStencilAttachment                                  = VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,
1768     eBlitSrc                                                 = VK_FORMAT_FEATURE_BLIT_SRC_BIT,
1769     eBlitDst                                                 = VK_FORMAT_FEATURE_BLIT_DST_BIT,
1770     eSampledImageFilterLinear                                = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT,
1771     eTransferSrc                                             = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
1772     eTransferDst                                             = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
1773     eMidpointChromaSamples                                   = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
1774     eSampledImageYcbcrConversionLinearFilter                 = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
1775     eSampledImageYcbcrConversionSeparateReconstructionFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
1776     eSampledImageYcbcrConversionChromaReconstructionExplicit = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
1777     eSampledImageYcbcrConversionChromaReconstructionExplicitForceable =
1778       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
1779     eDisjoint                                                   = VK_FORMAT_FEATURE_DISJOINT_BIT,
1780     eCositedChromaSamples                                       = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
1781     eSampledImageFilterMinmax                                   = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
1782     eSampledImageFilterCubicIMG                                 = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,
1783     eVideoDecodeOutputKHR                                       = VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR,
1784     eVideoDecodeDpbKHR                                          = VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR,
1785     eTransferSrcKHR                                             = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR,
1786     eTransferDstKHR                                             = VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR,
1787     eSampledImageFilterMinmaxEXT                                = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT,
1788     eAccelerationStructureVertexBufferKHR                       = VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,
1789     eMidpointChromaSamplesKHR                                   = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR,
1790     eSampledImageYcbcrConversionLinearFilterKHR                 = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR,
1791     eSampledImageYcbcrConversionSeparateReconstructionFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR,
1792     eSampledImageYcbcrConversionChromaReconstructionExplicitKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR,
1793     eSampledImageYcbcrConversionChromaReconstructionExplicitForceableKHR =
1794       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR,
1795     eDisjointKHR                      = VK_FORMAT_FEATURE_DISJOINT_BIT_KHR,
1796     eCositedChromaSamplesKHR          = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR,
1797     eSampledImageFilterCubicEXT       = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
1798     eFragmentDensityMapEXT            = VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,
1799     eFragmentShadingRateAttachmentKHR = VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
1800 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1801     eVideoEncodeInputKHR = VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR,
1802     eVideoEncodeDpbKHR   = VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR
1803 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1804   };
1805 
1806   using FormatFeatureFlags = Flags<FormatFeatureFlagBits>;
1807 
1808   template <>
1809   struct FlagTraits<FormatFeatureFlagBits>
1810   {
1811     static VULKAN_HPP_CONST_OR_CONSTEXPR bool               isBitmask = true;
1812     static VULKAN_HPP_CONST_OR_CONSTEXPR FormatFeatureFlags allFlags =
1813       FormatFeatureFlagBits::eSampledImage | FormatFeatureFlagBits::eStorageImage | FormatFeatureFlagBits::eStorageImageAtomic |
1814       FormatFeatureFlagBits::eUniformTexelBuffer | FormatFeatureFlagBits::eStorageTexelBuffer | FormatFeatureFlagBits::eStorageTexelBufferAtomic |
1815       FormatFeatureFlagBits::eVertexBuffer | FormatFeatureFlagBits::eColorAttachment | FormatFeatureFlagBits::eColorAttachmentBlend |
1816       FormatFeatureFlagBits::eDepthStencilAttachment | FormatFeatureFlagBits::eBlitSrc | FormatFeatureFlagBits::eBlitDst |
1817       FormatFeatureFlagBits::eSampledImageFilterLinear | FormatFeatureFlagBits::eTransferSrc | FormatFeatureFlagBits::eTransferDst |
1818       FormatFeatureFlagBits::eMidpointChromaSamples | FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter |
1819       FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter |
1820       FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit |
1821       FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable | FormatFeatureFlagBits::eDisjoint |
1822       FormatFeatureFlagBits::eCositedChromaSamples | FormatFeatureFlagBits::eSampledImageFilterMinmax | FormatFeatureFlagBits::eVideoDecodeOutputKHR |
1823       FormatFeatureFlagBits::eVideoDecodeDpbKHR | FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR |
1824       FormatFeatureFlagBits::eSampledImageFilterCubicEXT | FormatFeatureFlagBits::eFragmentDensityMapEXT |
1825       FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR
1826 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1827       | FormatFeatureFlagBits::eVideoEncodeInputKHR | FormatFeatureFlagBits::eVideoEncodeDpbKHR
1828 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1829       ;
1830   };
1831 
1832   enum class ImageCreateFlagBits : VkImageCreateFlags
1833   {
1834     eSparseBinding                        = VK_IMAGE_CREATE_SPARSE_BINDING_BIT,
1835     eSparseResidency                      = VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,
1836     eSparseAliased                        = VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,
1837     eMutableFormat                        = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,
1838     eCubeCompatible                       = VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,
1839     eAlias                                = VK_IMAGE_CREATE_ALIAS_BIT,
1840     eSplitInstanceBindRegions             = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
1841     e2DArrayCompatible                    = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
1842     eBlockTexelViewCompatible             = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
1843     eExtendedUsage                        = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
1844     eProtected                            = VK_IMAGE_CREATE_PROTECTED_BIT,
1845     eDisjoint                             = VK_IMAGE_CREATE_DISJOINT_BIT,
1846     eCornerSampledNV                      = VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,
1847     eSplitInstanceBindRegionsKHR          = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
1848     e2DArrayCompatibleKHR                 = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR,
1849     eBlockTexelViewCompatibleKHR          = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR,
1850     eExtendedUsageKHR                     = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR,
1851     eSampleLocationsCompatibleDepthEXT    = VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT,
1852     eDisjointKHR                          = VK_IMAGE_CREATE_DISJOINT_BIT_KHR,
1853     eAliasKHR                             = VK_IMAGE_CREATE_ALIAS_BIT_KHR,
1854     eSubsampledEXT                        = VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,
1855     eDescriptorBufferCaptureReplayEXT     = VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,
1856     eMultisampledRenderToSingleSampledEXT = VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT,
1857     e2DViewCompatibleEXT                  = VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT,
1858     eFragmentDensityMapOffsetQCOM         = VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM
1859   };
1860 
1861   using ImageCreateFlags = Flags<ImageCreateFlagBits>;
1862 
1863   template <>
1864   struct FlagTraits<ImageCreateFlagBits>
1865   {
1866     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
1867     static VULKAN_HPP_CONST_OR_CONSTEXPR ImageCreateFlags allFlags =
1868       ImageCreateFlagBits::eSparseBinding | ImageCreateFlagBits::eSparseResidency | ImageCreateFlagBits::eSparseAliased | ImageCreateFlagBits::eMutableFormat |
1869       ImageCreateFlagBits::eCubeCompatible | ImageCreateFlagBits::eAlias | ImageCreateFlagBits::eSplitInstanceBindRegions |
1870       ImageCreateFlagBits::e2DArrayCompatible | ImageCreateFlagBits::eBlockTexelViewCompatible | ImageCreateFlagBits::eExtendedUsage |
1871       ImageCreateFlagBits::eProtected | ImageCreateFlagBits::eDisjoint | ImageCreateFlagBits::eCornerSampledNV |
1872       ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT | ImageCreateFlagBits::eSubsampledEXT | ImageCreateFlagBits::eDescriptorBufferCaptureReplayEXT |
1873       ImageCreateFlagBits::eMultisampledRenderToSingleSampledEXT | ImageCreateFlagBits::e2DViewCompatibleEXT |
1874       ImageCreateFlagBits::eFragmentDensityMapOffsetQCOM;
1875   };
1876 
1877   enum class ImageTiling
1878   {
1879     eOptimal              = VK_IMAGE_TILING_OPTIMAL,
1880     eLinear               = VK_IMAGE_TILING_LINEAR,
1881     eDrmFormatModifierEXT = VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
1882   };
1883 
1884   enum class ImageType
1885   {
1886     e1D = VK_IMAGE_TYPE_1D,
1887     e2D = VK_IMAGE_TYPE_2D,
1888     e3D = VK_IMAGE_TYPE_3D
1889   };
1890 
1891   enum class ImageUsageFlagBits : VkImageUsageFlags
1892   {
1893     eTransferSrc                      = VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
1894     eTransferDst                      = VK_IMAGE_USAGE_TRANSFER_DST_BIT,
1895     eSampled                          = VK_IMAGE_USAGE_SAMPLED_BIT,
1896     eStorage                          = VK_IMAGE_USAGE_STORAGE_BIT,
1897     eColorAttachment                  = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,
1898     eDepthStencilAttachment           = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
1899     eTransientAttachment              = VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,
1900     eInputAttachment                  = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,
1901     eVideoDecodeDstKHR                = VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR,
1902     eVideoDecodeSrcKHR                = VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR,
1903     eVideoDecodeDpbKHR                = VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR,
1904     eShadingRateImageNV               = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV,
1905     eFragmentDensityMapEXT            = VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,
1906     eFragmentShadingRateAttachmentKHR = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
1907     eHostTransferEXT                  = VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT,
1908 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1909     eVideoEncodeDstKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR,
1910     eVideoEncodeSrcKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,
1911     eVideoEncodeDpbKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR,
1912 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1913     eAttachmentFeedbackLoopEXT = VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,
1914     eInvocationMaskHUAWEI      = VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI,
1915     eSampleWeightQCOM          = VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM,
1916     eSampleBlockMatchQCOM      = VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM
1917   };
1918 
1919   using ImageUsageFlags = Flags<ImageUsageFlagBits>;
1920 
1921   template <>
1922   struct FlagTraits<ImageUsageFlagBits>
1923   {
1924     static VULKAN_HPP_CONST_OR_CONSTEXPR bool            isBitmask = true;
1925     static VULKAN_HPP_CONST_OR_CONSTEXPR ImageUsageFlags allFlags =
1926       ImageUsageFlagBits::eTransferSrc | ImageUsageFlagBits::eTransferDst | ImageUsageFlagBits::eSampled | ImageUsageFlagBits::eStorage |
1927       ImageUsageFlagBits::eColorAttachment | ImageUsageFlagBits::eDepthStencilAttachment | ImageUsageFlagBits::eTransientAttachment |
1928       ImageUsageFlagBits::eInputAttachment | ImageUsageFlagBits::eVideoDecodeDstKHR | ImageUsageFlagBits::eVideoDecodeSrcKHR |
1929       ImageUsageFlagBits::eVideoDecodeDpbKHR | ImageUsageFlagBits::eFragmentDensityMapEXT | ImageUsageFlagBits::eFragmentShadingRateAttachmentKHR |
1930       ImageUsageFlagBits::eHostTransferEXT
1931 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1932       | ImageUsageFlagBits::eVideoEncodeDstKHR | ImageUsageFlagBits::eVideoEncodeSrcKHR | ImageUsageFlagBits::eVideoEncodeDpbKHR
1933 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1934       | ImageUsageFlagBits::eAttachmentFeedbackLoopEXT | ImageUsageFlagBits::eInvocationMaskHUAWEI | ImageUsageFlagBits::eSampleWeightQCOM |
1935       ImageUsageFlagBits::eSampleBlockMatchQCOM;
1936   };
1937 
1938   enum class InstanceCreateFlagBits : VkInstanceCreateFlags
1939   {
1940     eEnumeratePortabilityKHR = VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR
1941   };
1942 
1943   using InstanceCreateFlags = Flags<InstanceCreateFlagBits>;
1944 
1945   template <>
1946   struct FlagTraits<InstanceCreateFlagBits>
1947   {
1948     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                isBitmask = true;
1949     static VULKAN_HPP_CONST_OR_CONSTEXPR InstanceCreateFlags allFlags  = InstanceCreateFlagBits::eEnumeratePortabilityKHR;
1950   };
1951 
1952   enum class InternalAllocationType
1953   {
1954     eExecutable = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE
1955   };
1956 
1957   enum class MemoryHeapFlagBits : VkMemoryHeapFlags
1958   {
1959     eDeviceLocal      = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,
1960     eMultiInstance    = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
1961     eMultiInstanceKHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR
1962   };
1963 
1964   using MemoryHeapFlags = Flags<MemoryHeapFlagBits>;
1965 
1966   template <>
1967   struct FlagTraits<MemoryHeapFlagBits>
1968   {
1969     static VULKAN_HPP_CONST_OR_CONSTEXPR bool            isBitmask = true;
1970     static VULKAN_HPP_CONST_OR_CONSTEXPR MemoryHeapFlags allFlags  = MemoryHeapFlagBits::eDeviceLocal | MemoryHeapFlagBits::eMultiInstance;
1971   };
1972 
1973   enum class MemoryPropertyFlagBits : VkMemoryPropertyFlags
1974   {
1975     eDeviceLocal       = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
1976     eHostVisible       = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
1977     eHostCoherent      = VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
1978     eHostCached        = VK_MEMORY_PROPERTY_HOST_CACHED_BIT,
1979     eLazilyAllocated   = VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,
1980     eProtected         = VK_MEMORY_PROPERTY_PROTECTED_BIT,
1981     eDeviceCoherentAMD = VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,
1982     eDeviceUncachedAMD = VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD,
1983     eRdmaCapableNV     = VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV
1984   };
1985 
1986   using MemoryPropertyFlags = Flags<MemoryPropertyFlagBits>;
1987 
1988   template <>
1989   struct FlagTraits<MemoryPropertyFlagBits>
1990   {
1991     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                isBitmask = true;
1992     static VULKAN_HPP_CONST_OR_CONSTEXPR MemoryPropertyFlags allFlags =
1993       MemoryPropertyFlagBits::eDeviceLocal | MemoryPropertyFlagBits::eHostVisible | MemoryPropertyFlagBits::eHostCoherent |
1994       MemoryPropertyFlagBits::eHostCached | MemoryPropertyFlagBits::eLazilyAllocated | MemoryPropertyFlagBits::eProtected |
1995       MemoryPropertyFlagBits::eDeviceCoherentAMD | MemoryPropertyFlagBits::eDeviceUncachedAMD | MemoryPropertyFlagBits::eRdmaCapableNV;
1996   };
1997 
1998   enum class PhysicalDeviceType
1999   {
2000     eOther         = VK_PHYSICAL_DEVICE_TYPE_OTHER,
2001     eIntegratedGpu = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU,
2002     eDiscreteGpu   = VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
2003     eVirtualGpu    = VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU,
2004     eCpu           = VK_PHYSICAL_DEVICE_TYPE_CPU
2005   };
2006 
2007   enum class QueueFlagBits : VkQueueFlags
2008   {
2009     eGraphics       = VK_QUEUE_GRAPHICS_BIT,
2010     eCompute        = VK_QUEUE_COMPUTE_BIT,
2011     eTransfer       = VK_QUEUE_TRANSFER_BIT,
2012     eSparseBinding  = VK_QUEUE_SPARSE_BINDING_BIT,
2013     eProtected      = VK_QUEUE_PROTECTED_BIT,
2014     eVideoDecodeKHR = VK_QUEUE_VIDEO_DECODE_BIT_KHR,
2015 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2016     eVideoEncodeKHR = VK_QUEUE_VIDEO_ENCODE_BIT_KHR,
2017 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2018     eOpticalFlowNV = VK_QUEUE_OPTICAL_FLOW_BIT_NV
2019   };
2020 
2021   using QueueFlags = Flags<QueueFlagBits>;
2022 
2023   template <>
2024   struct FlagTraits<QueueFlagBits>
2025   {
2026     static VULKAN_HPP_CONST_OR_CONSTEXPR bool       isBitmask = true;
2027     static VULKAN_HPP_CONST_OR_CONSTEXPR QueueFlags allFlags  = QueueFlagBits::eGraphics | QueueFlagBits::eCompute | QueueFlagBits::eTransfer |
2028                                                                QueueFlagBits::eSparseBinding | QueueFlagBits::eProtected | QueueFlagBits::eVideoDecodeKHR
2029 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2030                                                                | QueueFlagBits::eVideoEncodeKHR
2031 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2032                                                                | QueueFlagBits::eOpticalFlowNV;
2033   };
2034 
2035   enum class SampleCountFlagBits : VkSampleCountFlags
2036   {
2037     e1  = VK_SAMPLE_COUNT_1_BIT,
2038     e2  = VK_SAMPLE_COUNT_2_BIT,
2039     e4  = VK_SAMPLE_COUNT_4_BIT,
2040     e8  = VK_SAMPLE_COUNT_8_BIT,
2041     e16 = VK_SAMPLE_COUNT_16_BIT,
2042     e32 = VK_SAMPLE_COUNT_32_BIT,
2043     e64 = VK_SAMPLE_COUNT_64_BIT
2044   };
2045 
2046   using SampleCountFlags = Flags<SampleCountFlagBits>;
2047 
2048   template <>
2049   struct FlagTraits<SampleCountFlagBits>
2050   {
2051     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
2052     static VULKAN_HPP_CONST_OR_CONSTEXPR SampleCountFlags allFlags  = SampleCountFlagBits::e1 | SampleCountFlagBits::e2 | SampleCountFlagBits::e4 |
2053                                                                      SampleCountFlagBits::e8 | SampleCountFlagBits::e16 | SampleCountFlagBits::e32 |
2054                                                                      SampleCountFlagBits::e64;
2055   };
2056 
2057   enum class SystemAllocationScope
2058   {
2059     eCommand  = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
2060     eObject   = VK_SYSTEM_ALLOCATION_SCOPE_OBJECT,
2061     eCache    = VK_SYSTEM_ALLOCATION_SCOPE_CACHE,
2062     eDevice   = VK_SYSTEM_ALLOCATION_SCOPE_DEVICE,
2063     eInstance = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE
2064   };
2065 
2066   enum class DeviceCreateFlagBits : VkDeviceCreateFlags
2067   {
2068   };
2069 
2070   using DeviceCreateFlags = Flags<DeviceCreateFlagBits>;
2071 
2072   template <>
2073   struct FlagTraits<DeviceCreateFlagBits>
2074   {
2075     static VULKAN_HPP_CONST_OR_CONSTEXPR bool              isBitmask = true;
2076     static VULKAN_HPP_CONST_OR_CONSTEXPR DeviceCreateFlags allFlags  = {};
2077   };
2078 
2079   enum class PipelineStageFlagBits : VkPipelineStageFlags
2080   {
2081     eTopOfPipe                        = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
2082     eDrawIndirect                     = VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,
2083     eVertexInput                      = VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,
2084     eVertexShader                     = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,
2085     eTessellationControlShader        = VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,
2086     eTessellationEvaluationShader     = VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,
2087     eGeometryShader                   = VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,
2088     eFragmentShader                   = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
2089     eEarlyFragmentTests               = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,
2090     eLateFragmentTests                = VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
2091     eColorAttachmentOutput            = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
2092     eComputeShader                    = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
2093     eTransfer                         = VK_PIPELINE_STAGE_TRANSFER_BIT,
2094     eBottomOfPipe                     = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
2095     eHost                             = VK_PIPELINE_STAGE_HOST_BIT,
2096     eAllGraphics                      = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,
2097     eAllCommands                      = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,
2098     eNone                             = VK_PIPELINE_STAGE_NONE,
2099     eTransformFeedbackEXT             = VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,
2100     eConditionalRenderingEXT          = VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,
2101     eAccelerationStructureBuildKHR    = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
2102     eRayTracingShaderKHR              = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
2103     eShadingRateImageNV               = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV,
2104     eRayTracingShaderNV               = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV,
2105     eAccelerationStructureBuildNV     = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
2106     eTaskShaderNV                     = VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV,
2107     eMeshShaderNV                     = VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV,
2108     eFragmentDensityProcessEXT        = VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,
2109     eFragmentShadingRateAttachmentKHR = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2110     eCommandPreprocessNV              = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,
2111     eNoneKHR                          = VK_PIPELINE_STAGE_NONE_KHR,
2112     eTaskShaderEXT                    = VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,
2113     eMeshShaderEXT                    = VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
2114   };
2115 
2116   using PipelineStageFlags = Flags<PipelineStageFlagBits>;
2117 
2118   template <>
2119   struct FlagTraits<PipelineStageFlagBits>
2120   {
2121     static VULKAN_HPP_CONST_OR_CONSTEXPR bool               isBitmask = true;
2122     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineStageFlags allFlags =
2123       PipelineStageFlagBits::eTopOfPipe | PipelineStageFlagBits::eDrawIndirect | PipelineStageFlagBits::eVertexInput | PipelineStageFlagBits::eVertexShader |
2124       PipelineStageFlagBits::eTessellationControlShader | PipelineStageFlagBits::eTessellationEvaluationShader | PipelineStageFlagBits::eGeometryShader |
2125       PipelineStageFlagBits::eFragmentShader | PipelineStageFlagBits::eEarlyFragmentTests | PipelineStageFlagBits::eLateFragmentTests |
2126       PipelineStageFlagBits::eColorAttachmentOutput | PipelineStageFlagBits::eComputeShader | PipelineStageFlagBits::eTransfer |
2127       PipelineStageFlagBits::eBottomOfPipe | PipelineStageFlagBits::eHost | PipelineStageFlagBits::eAllGraphics | PipelineStageFlagBits::eAllCommands |
2128       PipelineStageFlagBits::eNone | PipelineStageFlagBits::eTransformFeedbackEXT | PipelineStageFlagBits::eConditionalRenderingEXT |
2129       PipelineStageFlagBits::eAccelerationStructureBuildKHR | PipelineStageFlagBits::eRayTracingShaderKHR | PipelineStageFlagBits::eFragmentDensityProcessEXT |
2130       PipelineStageFlagBits::eFragmentShadingRateAttachmentKHR | PipelineStageFlagBits::eCommandPreprocessNV | PipelineStageFlagBits::eTaskShaderEXT |
2131       PipelineStageFlagBits::eMeshShaderEXT;
2132   };
2133 
2134   enum class MemoryMapFlagBits : VkMemoryMapFlags
2135   {
2136   };
2137 
2138   using MemoryMapFlags = Flags<MemoryMapFlagBits>;
2139 
2140   template <>
2141   struct FlagTraits<MemoryMapFlagBits>
2142   {
2143     static VULKAN_HPP_CONST_OR_CONSTEXPR bool           isBitmask = true;
2144     static VULKAN_HPP_CONST_OR_CONSTEXPR MemoryMapFlags allFlags  = {};
2145   };
2146 
2147   enum class ImageAspectFlagBits : VkImageAspectFlags
2148   {
2149     eColor           = VK_IMAGE_ASPECT_COLOR_BIT,
2150     eDepth           = VK_IMAGE_ASPECT_DEPTH_BIT,
2151     eStencil         = VK_IMAGE_ASPECT_STENCIL_BIT,
2152     eMetadata        = VK_IMAGE_ASPECT_METADATA_BIT,
2153     ePlane0          = VK_IMAGE_ASPECT_PLANE_0_BIT,
2154     ePlane1          = VK_IMAGE_ASPECT_PLANE_1_BIT,
2155     ePlane2          = VK_IMAGE_ASPECT_PLANE_2_BIT,
2156     eNone            = VK_IMAGE_ASPECT_NONE,
2157     ePlane0KHR       = VK_IMAGE_ASPECT_PLANE_0_BIT_KHR,
2158     ePlane1KHR       = VK_IMAGE_ASPECT_PLANE_1_BIT_KHR,
2159     ePlane2KHR       = VK_IMAGE_ASPECT_PLANE_2_BIT_KHR,
2160     eMemoryPlane0EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,
2161     eMemoryPlane1EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,
2162     eMemoryPlane2EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,
2163     eMemoryPlane3EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,
2164     eNoneKHR         = VK_IMAGE_ASPECT_NONE_KHR
2165   };
2166 
2167   using ImageAspectFlags = Flags<ImageAspectFlagBits>;
2168 
2169   template <>
2170   struct FlagTraits<ImageAspectFlagBits>
2171   {
2172     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
2173     static VULKAN_HPP_CONST_OR_CONSTEXPR ImageAspectFlags allFlags = ImageAspectFlagBits::eColor | ImageAspectFlagBits::eDepth | ImageAspectFlagBits::eStencil |
2174                                                                      ImageAspectFlagBits::eMetadata | ImageAspectFlagBits::ePlane0 |
2175                                                                      ImageAspectFlagBits::ePlane1 | ImageAspectFlagBits::ePlane2 | ImageAspectFlagBits::eNone |
2176                                                                      ImageAspectFlagBits::eMemoryPlane0EXT | ImageAspectFlagBits::eMemoryPlane1EXT |
2177                                                                      ImageAspectFlagBits::eMemoryPlane2EXT | ImageAspectFlagBits::eMemoryPlane3EXT;
2178   };
2179 
2180   enum class SparseImageFormatFlagBits : VkSparseImageFormatFlags
2181   {
2182     eSingleMiptail        = VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,
2183     eAlignedMipSize       = VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,
2184     eNonstandardBlockSize = VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT
2185   };
2186 
2187   using SparseImageFormatFlags = Flags<SparseImageFormatFlagBits>;
2188 
2189   template <>
2190   struct FlagTraits<SparseImageFormatFlagBits>
2191   {
2192     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
2193     static VULKAN_HPP_CONST_OR_CONSTEXPR SparseImageFormatFlags allFlags =
2194       SparseImageFormatFlagBits::eSingleMiptail | SparseImageFormatFlagBits::eAlignedMipSize | SparseImageFormatFlagBits::eNonstandardBlockSize;
2195   };
2196 
2197   enum class SparseMemoryBindFlagBits : VkSparseMemoryBindFlags
2198   {
2199     eMetadata = VK_SPARSE_MEMORY_BIND_METADATA_BIT
2200   };
2201 
2202   using SparseMemoryBindFlags = Flags<SparseMemoryBindFlagBits>;
2203 
2204   template <>
2205   struct FlagTraits<SparseMemoryBindFlagBits>
2206   {
2207     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                  isBitmask = true;
2208     static VULKAN_HPP_CONST_OR_CONSTEXPR SparseMemoryBindFlags allFlags  = SparseMemoryBindFlagBits::eMetadata;
2209   };
2210 
2211   enum class FenceCreateFlagBits : VkFenceCreateFlags
2212   {
2213     eSignaled = VK_FENCE_CREATE_SIGNALED_BIT
2214   };
2215 
2216   using FenceCreateFlags = Flags<FenceCreateFlagBits>;
2217 
2218   template <>
2219   struct FlagTraits<FenceCreateFlagBits>
2220   {
2221     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
2222     static VULKAN_HPP_CONST_OR_CONSTEXPR FenceCreateFlags allFlags  = FenceCreateFlagBits::eSignaled;
2223   };
2224 
2225   enum class SemaphoreCreateFlagBits : VkSemaphoreCreateFlags
2226   {
2227   };
2228 
2229   using SemaphoreCreateFlags = Flags<SemaphoreCreateFlagBits>;
2230 
2231   template <>
2232   struct FlagTraits<SemaphoreCreateFlagBits>
2233   {
2234     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                 isBitmask = true;
2235     static VULKAN_HPP_CONST_OR_CONSTEXPR SemaphoreCreateFlags allFlags  = {};
2236   };
2237 
2238   enum class EventCreateFlagBits : VkEventCreateFlags
2239   {
2240     eDeviceOnly    = VK_EVENT_CREATE_DEVICE_ONLY_BIT,
2241     eDeviceOnlyKHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR
2242   };
2243 
2244   using EventCreateFlags = Flags<EventCreateFlagBits>;
2245 
2246   template <>
2247   struct FlagTraits<EventCreateFlagBits>
2248   {
2249     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
2250     static VULKAN_HPP_CONST_OR_CONSTEXPR EventCreateFlags allFlags  = EventCreateFlagBits::eDeviceOnly;
2251   };
2252 
2253   enum class QueryPipelineStatisticFlagBits : VkQueryPipelineStatisticFlags
2254   {
2255     eInputAssemblyVertices                   = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,
2256     eInputAssemblyPrimitives                 = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,
2257     eVertexShaderInvocations                 = VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,
2258     eGeometryShaderInvocations               = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,
2259     eGeometryShaderPrimitives                = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,
2260     eClippingInvocations                     = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,
2261     eClippingPrimitives                      = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,
2262     eFragmentShaderInvocations               = VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,
2263     eTessellationControlShaderPatches        = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,
2264     eTessellationEvaluationShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,
2265     eComputeShaderInvocations                = VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT,
2266     eTaskShaderInvocationsEXT                = VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT,
2267     eMeshShaderInvocationsEXT                = VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT,
2268     eClusterCullingShaderInvocationsHUAWEI   = VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI
2269   };
2270 
2271   using QueryPipelineStatisticFlags = Flags<QueryPipelineStatisticFlagBits>;
2272 
2273   template <>
2274   struct FlagTraits<QueryPipelineStatisticFlagBits>
2275   {
2276     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                        isBitmask = true;
2277     static VULKAN_HPP_CONST_OR_CONSTEXPR QueryPipelineStatisticFlags allFlags =
2278       QueryPipelineStatisticFlagBits::eInputAssemblyVertices | QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives |
2279       QueryPipelineStatisticFlagBits::eVertexShaderInvocations | QueryPipelineStatisticFlagBits::eGeometryShaderInvocations |
2280       QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives | QueryPipelineStatisticFlagBits::eClippingInvocations |
2281       QueryPipelineStatisticFlagBits::eClippingPrimitives | QueryPipelineStatisticFlagBits::eFragmentShaderInvocations |
2282       QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches | QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations |
2283       QueryPipelineStatisticFlagBits::eComputeShaderInvocations | QueryPipelineStatisticFlagBits::eTaskShaderInvocationsEXT |
2284       QueryPipelineStatisticFlagBits::eMeshShaderInvocationsEXT | QueryPipelineStatisticFlagBits::eClusterCullingShaderInvocationsHUAWEI;
2285   };
2286 
2287   enum class QueryResultFlagBits : VkQueryResultFlags
2288   {
2289     e64               = VK_QUERY_RESULT_64_BIT,
2290     eWait             = VK_QUERY_RESULT_WAIT_BIT,
2291     eWithAvailability = VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,
2292     ePartial          = VK_QUERY_RESULT_PARTIAL_BIT,
2293     eWithStatusKHR    = VK_QUERY_RESULT_WITH_STATUS_BIT_KHR
2294   };
2295 
2296   using QueryResultFlags = Flags<QueryResultFlagBits>;
2297 
2298   template <>
2299   struct FlagTraits<QueryResultFlagBits>
2300   {
2301     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
2302     static VULKAN_HPP_CONST_OR_CONSTEXPR QueryResultFlags allFlags  = QueryResultFlagBits::e64 | QueryResultFlagBits::eWait |
2303                                                                      QueryResultFlagBits::eWithAvailability | QueryResultFlagBits::ePartial |
2304                                                                      QueryResultFlagBits::eWithStatusKHR;
2305   };
2306 
2307   enum class QueryType
2308   {
2309     eOcclusion                                 = VK_QUERY_TYPE_OCCLUSION,
2310     ePipelineStatistics                        = VK_QUERY_TYPE_PIPELINE_STATISTICS,
2311     eTimestamp                                 = VK_QUERY_TYPE_TIMESTAMP,
2312     eResultStatusOnlyKHR                       = VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR,
2313     eTransformFeedbackStreamEXT                = VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT,
2314     ePerformanceQueryKHR                       = VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR,
2315     eAccelerationStructureCompactedSizeKHR     = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR,
2316     eAccelerationStructureSerializationSizeKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR,
2317     eAccelerationStructureCompactedSizeNV      = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV,
2318     ePerformanceQueryINTEL                     = VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL,
2319 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2320     eVideoEncodeFeedbackKHR = VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR,
2321 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2322     eMeshPrimitivesGeneratedEXT                               = VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT,
2323     ePrimitivesGeneratedEXT                                   = VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT,
2324     eAccelerationStructureSerializationBottomLevelPointersKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR,
2325     eAccelerationStructureSizeKHR                             = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR,
2326     eMicromapSerializationSizeEXT                             = VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT,
2327     eMicromapCompactedSizeEXT                                 = VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT
2328   };
2329 
2330   enum class QueryPoolCreateFlagBits : VkQueryPoolCreateFlags
2331   {
2332   };
2333 
2334   using QueryPoolCreateFlags = Flags<QueryPoolCreateFlagBits>;
2335 
2336   template <>
2337   struct FlagTraits<QueryPoolCreateFlagBits>
2338   {
2339     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                 isBitmask = true;
2340     static VULKAN_HPP_CONST_OR_CONSTEXPR QueryPoolCreateFlags allFlags  = {};
2341   };
2342 
2343   enum class BufferCreateFlagBits : VkBufferCreateFlags
2344   {
2345     eSparseBinding                    = VK_BUFFER_CREATE_SPARSE_BINDING_BIT,
2346     eSparseResidency                  = VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,
2347     eSparseAliased                    = VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,
2348     eProtected                        = VK_BUFFER_CREATE_PROTECTED_BIT,
2349     eDeviceAddressCaptureReplay       = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
2350     eDeviceAddressCaptureReplayEXT    = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT,
2351     eDeviceAddressCaptureReplayKHR    = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,
2352     eDescriptorBufferCaptureReplayEXT = VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
2353   };
2354 
2355   using BufferCreateFlags = Flags<BufferCreateFlagBits>;
2356 
2357   template <>
2358   struct FlagTraits<BufferCreateFlagBits>
2359   {
2360     static VULKAN_HPP_CONST_OR_CONSTEXPR bool              isBitmask = true;
2361     static VULKAN_HPP_CONST_OR_CONSTEXPR BufferCreateFlags allFlags =
2362       BufferCreateFlagBits::eSparseBinding | BufferCreateFlagBits::eSparseResidency | BufferCreateFlagBits::eSparseAliased | BufferCreateFlagBits::eProtected |
2363       BufferCreateFlagBits::eDeviceAddressCaptureReplay | BufferCreateFlagBits::eDescriptorBufferCaptureReplayEXT;
2364   };
2365 
2366   enum class BufferUsageFlagBits : VkBufferUsageFlags
2367   {
2368     eTransferSrc                       = VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
2369     eTransferDst                       = VK_BUFFER_USAGE_TRANSFER_DST_BIT,
2370     eUniformTexelBuffer                = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,
2371     eStorageTexelBuffer                = VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,
2372     eUniformBuffer                     = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
2373     eStorageBuffer                     = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
2374     eIndexBuffer                       = VK_BUFFER_USAGE_INDEX_BUFFER_BIT,
2375     eVertexBuffer                      = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
2376     eIndirectBuffer                    = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,
2377     eShaderDeviceAddress               = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
2378     eVideoDecodeSrcKHR                 = VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR,
2379     eVideoDecodeDstKHR                 = VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR,
2380     eTransformFeedbackBufferEXT        = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,
2381     eTransformFeedbackCounterBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,
2382     eConditionalRenderingEXT           = VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,
2383 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2384     eExecutionGraphScratchAMDX = VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX,
2385 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2386     eAccelerationStructureBuildInputReadOnlyKHR = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR,
2387     eAccelerationStructureStorageKHR            = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,
2388     eShaderBindingTableKHR                      = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
2389     eRayTracingNV                               = VK_BUFFER_USAGE_RAY_TRACING_BIT_NV,
2390     eShaderDeviceAddressEXT                     = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT,
2391     eShaderDeviceAddressKHR                     = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR,
2392 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2393     eVideoEncodeDstKHR = VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR,
2394     eVideoEncodeSrcKHR = VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,
2395 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2396     eSamplerDescriptorBufferEXT         = VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT,
2397     eResourceDescriptorBufferEXT        = VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT,
2398     ePushDescriptorsDescriptorBufferEXT = VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT,
2399     eMicromapBuildInputReadOnlyEXT      = VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT,
2400     eMicromapStorageEXT                 = VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT
2401   };
2402 
2403   using BufferUsageFlags = Flags<BufferUsageFlagBits>;
2404 
2405   template <>
2406   struct FlagTraits<BufferUsageFlagBits>
2407   {
2408     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
2409     static VULKAN_HPP_CONST_OR_CONSTEXPR BufferUsageFlags allFlags =
2410       BufferUsageFlagBits::eTransferSrc | BufferUsageFlagBits::eTransferDst | BufferUsageFlagBits::eUniformTexelBuffer |
2411       BufferUsageFlagBits::eStorageTexelBuffer | BufferUsageFlagBits::eUniformBuffer | BufferUsageFlagBits::eStorageBuffer | BufferUsageFlagBits::eIndexBuffer |
2412       BufferUsageFlagBits::eVertexBuffer | BufferUsageFlagBits::eIndirectBuffer | BufferUsageFlagBits::eShaderDeviceAddress |
2413       BufferUsageFlagBits::eVideoDecodeSrcKHR | BufferUsageFlagBits::eVideoDecodeDstKHR | BufferUsageFlagBits::eTransformFeedbackBufferEXT |
2414       BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT | BufferUsageFlagBits::eConditionalRenderingEXT
2415 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2416       | BufferUsageFlagBits::eExecutionGraphScratchAMDX
2417 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2418       | BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR | BufferUsageFlagBits::eAccelerationStructureStorageKHR |
2419       BufferUsageFlagBits::eShaderBindingTableKHR
2420 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2421       | BufferUsageFlagBits::eVideoEncodeDstKHR | BufferUsageFlagBits::eVideoEncodeSrcKHR
2422 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2423       | BufferUsageFlagBits::eSamplerDescriptorBufferEXT | BufferUsageFlagBits::eResourceDescriptorBufferEXT |
2424       BufferUsageFlagBits::ePushDescriptorsDescriptorBufferEXT | BufferUsageFlagBits::eMicromapBuildInputReadOnlyEXT | BufferUsageFlagBits::eMicromapStorageEXT;
2425   };
2426 
2427   enum class SharingMode
2428   {
2429     eExclusive  = VK_SHARING_MODE_EXCLUSIVE,
2430     eConcurrent = VK_SHARING_MODE_CONCURRENT
2431   };
2432 
2433   enum class BufferViewCreateFlagBits : VkBufferViewCreateFlags
2434   {
2435   };
2436 
2437   using BufferViewCreateFlags = Flags<BufferViewCreateFlagBits>;
2438 
2439   template <>
2440   struct FlagTraits<BufferViewCreateFlagBits>
2441   {
2442     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                  isBitmask = true;
2443     static VULKAN_HPP_CONST_OR_CONSTEXPR BufferViewCreateFlags allFlags  = {};
2444   };
2445 
2446   enum class ImageLayout
2447   {
2448     eUndefined                                = VK_IMAGE_LAYOUT_UNDEFINED,
2449     eGeneral                                  = VK_IMAGE_LAYOUT_GENERAL,
2450     eColorAttachmentOptimal                   = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
2451     eDepthStencilAttachmentOptimal            = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
2452     eDepthStencilReadOnlyOptimal              = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,
2453     eShaderReadOnlyOptimal                    = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
2454     eTransferSrcOptimal                       = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
2455     eTransferDstOptimal                       = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
2456     ePreinitialized                           = VK_IMAGE_LAYOUT_PREINITIALIZED,
2457     eDepthReadOnlyStencilAttachmentOptimal    = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
2458     eDepthAttachmentStencilReadOnlyOptimal    = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
2459     eDepthAttachmentOptimal                   = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
2460     eDepthReadOnlyOptimal                     = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
2461     eStencilAttachmentOptimal                 = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
2462     eStencilReadOnlyOptimal                   = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
2463     eReadOnlyOptimal                          = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL,
2464     eAttachmentOptimal                        = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,
2465     ePresentSrcKHR                            = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR,
2466     eVideoDecodeDstKHR                        = VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR,
2467     eVideoDecodeSrcKHR                        = VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR,
2468     eVideoDecodeDpbKHR                        = VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR,
2469     eSharedPresentKHR                         = VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
2470     eDepthReadOnlyStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR,
2471     eDepthAttachmentStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR,
2472     eShadingRateOptimalNV                     = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV,
2473     eFragmentDensityMapOptimalEXT             = VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT,
2474     eFragmentShadingRateAttachmentOptimalKHR  = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
2475     eDepthAttachmentOptimalKHR                = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR,
2476     eDepthReadOnlyOptimalKHR                  = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR,
2477     eStencilAttachmentOptimalKHR              = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR,
2478     eStencilReadOnlyOptimalKHR                = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR,
2479 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2480     eVideoEncodeDstKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR,
2481     eVideoEncodeSrcKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR,
2482     eVideoEncodeDpbKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR,
2483 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2484     eReadOnlyOptimalKHR               = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR,
2485     eAttachmentOptimalKHR             = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR,
2486     eAttachmentFeedbackLoopOptimalEXT = VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
2487   };
2488 
2489   enum class ComponentSwizzle
2490   {
2491     eIdentity = VK_COMPONENT_SWIZZLE_IDENTITY,
2492     eZero     = VK_COMPONENT_SWIZZLE_ZERO,
2493     eOne      = VK_COMPONENT_SWIZZLE_ONE,
2494     eR        = VK_COMPONENT_SWIZZLE_R,
2495     eG        = VK_COMPONENT_SWIZZLE_G,
2496     eB        = VK_COMPONENT_SWIZZLE_B,
2497     eA        = VK_COMPONENT_SWIZZLE_A
2498   };
2499 
2500   enum class ImageViewCreateFlagBits : VkImageViewCreateFlags
2501   {
2502     eFragmentDensityMapDynamicEXT     = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT,
2503     eDescriptorBufferCaptureReplayEXT = VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,
2504     eFragmentDensityMapDeferredEXT    = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT
2505   };
2506 
2507   using ImageViewCreateFlags = Flags<ImageViewCreateFlagBits>;
2508 
2509   template <>
2510   struct FlagTraits<ImageViewCreateFlagBits>
2511   {
2512     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                 isBitmask = true;
2513     static VULKAN_HPP_CONST_OR_CONSTEXPR ImageViewCreateFlags allFlags  = ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT |
2514                                                                          ImageViewCreateFlagBits::eDescriptorBufferCaptureReplayEXT |
2515                                                                          ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT;
2516   };
2517 
2518   enum class ImageViewType
2519   {
2520     e1D        = VK_IMAGE_VIEW_TYPE_1D,
2521     e2D        = VK_IMAGE_VIEW_TYPE_2D,
2522     e3D        = VK_IMAGE_VIEW_TYPE_3D,
2523     eCube      = VK_IMAGE_VIEW_TYPE_CUBE,
2524     e1DArray   = VK_IMAGE_VIEW_TYPE_1D_ARRAY,
2525     e2DArray   = VK_IMAGE_VIEW_TYPE_2D_ARRAY,
2526     eCubeArray = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
2527   };
2528 
2529   enum class ShaderModuleCreateFlagBits : VkShaderModuleCreateFlags
2530   {
2531   };
2532 
2533   using ShaderModuleCreateFlags = Flags<ShaderModuleCreateFlagBits>;
2534 
2535   template <>
2536   struct FlagTraits<ShaderModuleCreateFlagBits>
2537   {
2538     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                    isBitmask = true;
2539     static VULKAN_HPP_CONST_OR_CONSTEXPR ShaderModuleCreateFlags allFlags  = {};
2540   };
2541 
2542   enum class BlendFactor
2543   {
2544     eZero                  = VK_BLEND_FACTOR_ZERO,
2545     eOne                   = VK_BLEND_FACTOR_ONE,
2546     eSrcColor              = VK_BLEND_FACTOR_SRC_COLOR,
2547     eOneMinusSrcColor      = VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR,
2548     eDstColor              = VK_BLEND_FACTOR_DST_COLOR,
2549     eOneMinusDstColor      = VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR,
2550     eSrcAlpha              = VK_BLEND_FACTOR_SRC_ALPHA,
2551     eOneMinusSrcAlpha      = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA,
2552     eDstAlpha              = VK_BLEND_FACTOR_DST_ALPHA,
2553     eOneMinusDstAlpha      = VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA,
2554     eConstantColor         = VK_BLEND_FACTOR_CONSTANT_COLOR,
2555     eOneMinusConstantColor = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,
2556     eConstantAlpha         = VK_BLEND_FACTOR_CONSTANT_ALPHA,
2557     eOneMinusConstantAlpha = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,
2558     eSrcAlphaSaturate      = VK_BLEND_FACTOR_SRC_ALPHA_SATURATE,
2559     eSrc1Color             = VK_BLEND_FACTOR_SRC1_COLOR,
2560     eOneMinusSrc1Color     = VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,
2561     eSrc1Alpha             = VK_BLEND_FACTOR_SRC1_ALPHA,
2562     eOneMinusSrc1Alpha     = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
2563   };
2564 
2565   enum class BlendOp
2566   {
2567     eAdd                 = VK_BLEND_OP_ADD,
2568     eSubtract            = VK_BLEND_OP_SUBTRACT,
2569     eReverseSubtract     = VK_BLEND_OP_REVERSE_SUBTRACT,
2570     eMin                 = VK_BLEND_OP_MIN,
2571     eMax                 = VK_BLEND_OP_MAX,
2572     eZeroEXT             = VK_BLEND_OP_ZERO_EXT,
2573     eSrcEXT              = VK_BLEND_OP_SRC_EXT,
2574     eDstEXT              = VK_BLEND_OP_DST_EXT,
2575     eSrcOverEXT          = VK_BLEND_OP_SRC_OVER_EXT,
2576     eDstOverEXT          = VK_BLEND_OP_DST_OVER_EXT,
2577     eSrcInEXT            = VK_BLEND_OP_SRC_IN_EXT,
2578     eDstInEXT            = VK_BLEND_OP_DST_IN_EXT,
2579     eSrcOutEXT           = VK_BLEND_OP_SRC_OUT_EXT,
2580     eDstOutEXT           = VK_BLEND_OP_DST_OUT_EXT,
2581     eSrcAtopEXT          = VK_BLEND_OP_SRC_ATOP_EXT,
2582     eDstAtopEXT          = VK_BLEND_OP_DST_ATOP_EXT,
2583     eXorEXT              = VK_BLEND_OP_XOR_EXT,
2584     eMultiplyEXT         = VK_BLEND_OP_MULTIPLY_EXT,
2585     eScreenEXT           = VK_BLEND_OP_SCREEN_EXT,
2586     eOverlayEXT          = VK_BLEND_OP_OVERLAY_EXT,
2587     eDarkenEXT           = VK_BLEND_OP_DARKEN_EXT,
2588     eLightenEXT          = VK_BLEND_OP_LIGHTEN_EXT,
2589     eColordodgeEXT       = VK_BLEND_OP_COLORDODGE_EXT,
2590     eColorburnEXT        = VK_BLEND_OP_COLORBURN_EXT,
2591     eHardlightEXT        = VK_BLEND_OP_HARDLIGHT_EXT,
2592     eSoftlightEXT        = VK_BLEND_OP_SOFTLIGHT_EXT,
2593     eDifferenceEXT       = VK_BLEND_OP_DIFFERENCE_EXT,
2594     eExclusionEXT        = VK_BLEND_OP_EXCLUSION_EXT,
2595     eInvertEXT           = VK_BLEND_OP_INVERT_EXT,
2596     eInvertRgbEXT        = VK_BLEND_OP_INVERT_RGB_EXT,
2597     eLineardodgeEXT      = VK_BLEND_OP_LINEARDODGE_EXT,
2598     eLinearburnEXT       = VK_BLEND_OP_LINEARBURN_EXT,
2599     eVividlightEXT       = VK_BLEND_OP_VIVIDLIGHT_EXT,
2600     eLinearlightEXT      = VK_BLEND_OP_LINEARLIGHT_EXT,
2601     ePinlightEXT         = VK_BLEND_OP_PINLIGHT_EXT,
2602     eHardmixEXT          = VK_BLEND_OP_HARDMIX_EXT,
2603     eHslHueEXT           = VK_BLEND_OP_HSL_HUE_EXT,
2604     eHslSaturationEXT    = VK_BLEND_OP_HSL_SATURATION_EXT,
2605     eHslColorEXT         = VK_BLEND_OP_HSL_COLOR_EXT,
2606     eHslLuminosityEXT    = VK_BLEND_OP_HSL_LUMINOSITY_EXT,
2607     ePlusEXT             = VK_BLEND_OP_PLUS_EXT,
2608     ePlusClampedEXT      = VK_BLEND_OP_PLUS_CLAMPED_EXT,
2609     ePlusClampedAlphaEXT = VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT,
2610     ePlusDarkerEXT       = VK_BLEND_OP_PLUS_DARKER_EXT,
2611     eMinusEXT            = VK_BLEND_OP_MINUS_EXT,
2612     eMinusClampedEXT     = VK_BLEND_OP_MINUS_CLAMPED_EXT,
2613     eContrastEXT         = VK_BLEND_OP_CONTRAST_EXT,
2614     eInvertOvgEXT        = VK_BLEND_OP_INVERT_OVG_EXT,
2615     eRedEXT              = VK_BLEND_OP_RED_EXT,
2616     eGreenEXT            = VK_BLEND_OP_GREEN_EXT,
2617     eBlueEXT             = VK_BLEND_OP_BLUE_EXT
2618   };
2619 
2620   enum class ColorComponentFlagBits : VkColorComponentFlags
2621   {
2622     eR = VK_COLOR_COMPONENT_R_BIT,
2623     eG = VK_COLOR_COMPONENT_G_BIT,
2624     eB = VK_COLOR_COMPONENT_B_BIT,
2625     eA = VK_COLOR_COMPONENT_A_BIT
2626   };
2627 
2628   using ColorComponentFlags = Flags<ColorComponentFlagBits>;
2629 
2630   template <>
2631   struct FlagTraits<ColorComponentFlagBits>
2632   {
2633     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                isBitmask = true;
2634     static VULKAN_HPP_CONST_OR_CONSTEXPR ColorComponentFlags allFlags =
2635       ColorComponentFlagBits::eR | ColorComponentFlagBits::eG | ColorComponentFlagBits::eB | ColorComponentFlagBits::eA;
2636   };
2637 
2638   enum class CompareOp
2639   {
2640     eNever          = VK_COMPARE_OP_NEVER,
2641     eLess           = VK_COMPARE_OP_LESS,
2642     eEqual          = VK_COMPARE_OP_EQUAL,
2643     eLessOrEqual    = VK_COMPARE_OP_LESS_OR_EQUAL,
2644     eGreater        = VK_COMPARE_OP_GREATER,
2645     eNotEqual       = VK_COMPARE_OP_NOT_EQUAL,
2646     eGreaterOrEqual = VK_COMPARE_OP_GREATER_OR_EQUAL,
2647     eAlways         = VK_COMPARE_OP_ALWAYS
2648   };
2649 
2650   enum class CullModeFlagBits : VkCullModeFlags
2651   {
2652     eNone         = VK_CULL_MODE_NONE,
2653     eFront        = VK_CULL_MODE_FRONT_BIT,
2654     eBack         = VK_CULL_MODE_BACK_BIT,
2655     eFrontAndBack = VK_CULL_MODE_FRONT_AND_BACK
2656   };
2657 
2658   using CullModeFlags = Flags<CullModeFlagBits>;
2659 
2660   template <>
2661   struct FlagTraits<CullModeFlagBits>
2662   {
2663     static VULKAN_HPP_CONST_OR_CONSTEXPR bool          isBitmask = true;
2664     static VULKAN_HPP_CONST_OR_CONSTEXPR CullModeFlags allFlags =
2665       CullModeFlagBits::eNone | CullModeFlagBits::eFront | CullModeFlagBits::eBack | CullModeFlagBits::eFrontAndBack;
2666   };
2667 
2668   enum class DynamicState
2669   {
2670     eViewport                            = VK_DYNAMIC_STATE_VIEWPORT,
2671     eScissor                             = VK_DYNAMIC_STATE_SCISSOR,
2672     eLineWidth                           = VK_DYNAMIC_STATE_LINE_WIDTH,
2673     eDepthBias                           = VK_DYNAMIC_STATE_DEPTH_BIAS,
2674     eBlendConstants                      = VK_DYNAMIC_STATE_BLEND_CONSTANTS,
2675     eDepthBounds                         = VK_DYNAMIC_STATE_DEPTH_BOUNDS,
2676     eStencilCompareMask                  = VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK,
2677     eStencilWriteMask                    = VK_DYNAMIC_STATE_STENCIL_WRITE_MASK,
2678     eStencilReference                    = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
2679     eCullMode                            = VK_DYNAMIC_STATE_CULL_MODE,
2680     eFrontFace                           = VK_DYNAMIC_STATE_FRONT_FACE,
2681     ePrimitiveTopology                   = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,
2682     eViewportWithCount                   = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
2683     eScissorWithCount                    = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
2684     eVertexInputBindingStride            = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE,
2685     eDepthTestEnable                     = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
2686     eDepthWriteEnable                    = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE,
2687     eDepthCompareOp                      = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP,
2688     eDepthBoundsTestEnable               = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,
2689     eStencilTestEnable                   = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE,
2690     eStencilOp                           = VK_DYNAMIC_STATE_STENCIL_OP,
2691     eRasterizerDiscardEnable             = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE,
2692     eDepthBiasEnable                     = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE,
2693     ePrimitiveRestartEnable              = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE,
2694     eViewportWScalingNV                  = VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV,
2695     eDiscardRectangleEXT                 = VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT,
2696     eDiscardRectangleEnableEXT           = VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT,
2697     eDiscardRectangleModeEXT             = VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT,
2698     eSampleLocationsEXT                  = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT,
2699     eRayTracingPipelineStackSizeKHR      = VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR,
2700     eViewportShadingRatePaletteNV        = VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV,
2701     eViewportCoarseSampleOrderNV         = VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV,
2702     eExclusiveScissorEnableNV            = VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV,
2703     eExclusiveScissorNV                  = VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV,
2704     eFragmentShadingRateKHR              = VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR,
2705     eLineStippleEXT                      = VK_DYNAMIC_STATE_LINE_STIPPLE_EXT,
2706     eCullModeEXT                         = VK_DYNAMIC_STATE_CULL_MODE_EXT,
2707     eFrontFaceEXT                        = VK_DYNAMIC_STATE_FRONT_FACE_EXT,
2708     ePrimitiveTopologyEXT                = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT,
2709     eViewportWithCountEXT                = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT,
2710     eScissorWithCountEXT                 = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT,
2711     eVertexInputBindingStrideEXT         = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT,
2712     eDepthTestEnableEXT                  = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT,
2713     eDepthWriteEnableEXT                 = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT,
2714     eDepthCompareOpEXT                   = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT,
2715     eDepthBoundsTestEnableEXT            = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT,
2716     eStencilTestEnableEXT                = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT,
2717     eStencilOpEXT                        = VK_DYNAMIC_STATE_STENCIL_OP_EXT,
2718     eVertexInputEXT                      = VK_DYNAMIC_STATE_VERTEX_INPUT_EXT,
2719     ePatchControlPointsEXT               = VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT,
2720     eRasterizerDiscardEnableEXT          = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT,
2721     eDepthBiasEnableEXT                  = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT,
2722     eLogicOpEXT                          = VK_DYNAMIC_STATE_LOGIC_OP_EXT,
2723     ePrimitiveRestartEnableEXT           = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT,
2724     eColorWriteEnableEXT                 = VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT,
2725     eTessellationDomainOriginEXT         = VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT,
2726     eDepthClampEnableEXT                 = VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT,
2727     ePolygonModeEXT                      = VK_DYNAMIC_STATE_POLYGON_MODE_EXT,
2728     eRasterizationSamplesEXT             = VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT,
2729     eSampleMaskEXT                       = VK_DYNAMIC_STATE_SAMPLE_MASK_EXT,
2730     eAlphaToCoverageEnableEXT            = VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT,
2731     eAlphaToOneEnableEXT                 = VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT,
2732     eLogicOpEnableEXT                    = VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT,
2733     eColorBlendEnableEXT                 = VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT,
2734     eColorBlendEquationEXT               = VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT,
2735     eColorWriteMaskEXT                   = VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT,
2736     eRasterizationStreamEXT              = VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT,
2737     eConservativeRasterizationModeEXT    = VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT,
2738     eExtraPrimitiveOverestimationSizeEXT = VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT,
2739     eDepthClipEnableEXT                  = VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT,
2740     eSampleLocationsEnableEXT            = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT,
2741     eColorBlendAdvancedEXT               = VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT,
2742     eProvokingVertexModeEXT              = VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT,
2743     eLineRasterizationModeEXT            = VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT,
2744     eLineStippleEnableEXT                = VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT,
2745     eDepthClipNegativeOneToOneEXT        = VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT,
2746     eViewportWScalingEnableNV            = VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV,
2747     eViewportSwizzleNV                   = VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV,
2748     eCoverageToColorEnableNV             = VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV,
2749     eCoverageToColorLocationNV           = VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV,
2750     eCoverageModulationModeNV            = VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV,
2751     eCoverageModulationTableEnableNV     = VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV,
2752     eCoverageModulationTableNV           = VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV,
2753     eShadingRateImageEnableNV            = VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV,
2754     eRepresentativeFragmentTestEnableNV  = VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV,
2755     eCoverageReductionModeNV             = VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV,
2756     eAttachmentFeedbackLoopEnableEXT     = VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT
2757   };
2758 
2759   enum class FrontFace
2760   {
2761     eCounterClockwise = VK_FRONT_FACE_COUNTER_CLOCKWISE,
2762     eClockwise        = VK_FRONT_FACE_CLOCKWISE
2763   };
2764 
2765   enum class LogicOp
2766   {
2767     eClear        = VK_LOGIC_OP_CLEAR,
2768     eAnd          = VK_LOGIC_OP_AND,
2769     eAndReverse   = VK_LOGIC_OP_AND_REVERSE,
2770     eCopy         = VK_LOGIC_OP_COPY,
2771     eAndInverted  = VK_LOGIC_OP_AND_INVERTED,
2772     eNoOp         = VK_LOGIC_OP_NO_OP,
2773     eXor          = VK_LOGIC_OP_XOR,
2774     eOr           = VK_LOGIC_OP_OR,
2775     eNor          = VK_LOGIC_OP_NOR,
2776     eEquivalent   = VK_LOGIC_OP_EQUIVALENT,
2777     eInvert       = VK_LOGIC_OP_INVERT,
2778     eOrReverse    = VK_LOGIC_OP_OR_REVERSE,
2779     eCopyInverted = VK_LOGIC_OP_COPY_INVERTED,
2780     eOrInverted   = VK_LOGIC_OP_OR_INVERTED,
2781     eNand         = VK_LOGIC_OP_NAND,
2782     eSet          = VK_LOGIC_OP_SET
2783   };
2784 
2785   enum class PipelineCreateFlagBits : VkPipelineCreateFlags
2786   {
2787     eDisableOptimization                                                = VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,
2788     eAllowDerivatives                                                   = VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,
2789     eDerivative                                                         = VK_PIPELINE_CREATE_DERIVATIVE_BIT,
2790     eViewIndexFromDeviceIndex                                           = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
2791     eDispatchBase                                                       = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
2792     eFailOnPipelineCompileRequired                                      = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,
2793     eEarlyReturnOnFailure                                               = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,
2794     eRenderingFragmentShadingRateAttachmentKHR                          = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2795     eVkPipelineRasterizationStateCreateFragmentShadingRateAttachmentKHR = VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2796     eRenderingFragmentDensityMapAttachmentEXT                           = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
2797     eVkPipelineRasterizationStateCreateFragmentDensityMapAttachmentEXT  = VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
2798     eViewIndexFromDeviceIndexKHR                                        = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR,
2799     eDispatchBaseKHR                                                    = VK_PIPELINE_CREATE_DISPATCH_BASE_KHR,
2800     eRayTracingNoNullAnyHitShadersKHR                                   = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR,
2801     eRayTracingNoNullClosestHitShadersKHR                               = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR,
2802     eRayTracingNoNullMissShadersKHR                                     = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR,
2803     eRayTracingNoNullIntersectionShadersKHR                             = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR,
2804     eRayTracingSkipTrianglesKHR                                         = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,
2805     eRayTracingSkipAabbsKHR                                             = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR,
2806     eRayTracingShaderGroupHandleCaptureReplayKHR                        = VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR,
2807     eDeferCompileNV                                                     = VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,
2808     eCaptureStatisticsKHR                                               = VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,
2809     eCaptureInternalRepresentationsKHR                                  = VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,
2810     eIndirectBindableNV                                                 = VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV,
2811     eLibraryKHR                                                         = VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,
2812     eFailOnPipelineCompileRequiredEXT                                   = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT,
2813     eEarlyReturnOnFailureEXT                                            = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT,
2814     eDescriptorBufferEXT                                                = VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT,
2815     eRetainLinkTimeOptimizationInfoEXT                                  = VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT,
2816     eLinkTimeOptimizationEXT                                            = VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT,
2817     eRayTracingAllowMotionNV                                            = VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV,
2818     eColorAttachmentFeedbackLoopEXT                                     = VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,
2819     eDepthStencilAttachmentFeedbackLoopEXT                              = VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,
2820     eRayTracingOpacityMicromapEXT                                       = VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT,
2821 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2822     eRayTracingDisplacementMicromapNV = VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV,
2823 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2824     eNoProtectedAccessEXT   = VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT,
2825     eProtectedAccessOnlyEXT = VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT
2826   };
2827 
2828   using PipelineCreateFlags = Flags<PipelineCreateFlagBits>;
2829 
2830   template <>
2831   struct FlagTraits<PipelineCreateFlagBits>
2832   {
2833     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                isBitmask = true;
2834     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineCreateFlags allFlags =
2835       PipelineCreateFlagBits::eDisableOptimization | PipelineCreateFlagBits::eAllowDerivatives | PipelineCreateFlagBits::eDerivative |
2836       PipelineCreateFlagBits::eViewIndexFromDeviceIndex | PipelineCreateFlagBits::eDispatchBase | PipelineCreateFlagBits::eFailOnPipelineCompileRequired |
2837       PipelineCreateFlagBits::eEarlyReturnOnFailure | PipelineCreateFlagBits::eRenderingFragmentShadingRateAttachmentKHR |
2838       PipelineCreateFlagBits::eRenderingFragmentDensityMapAttachmentEXT | PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR |
2839       PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR | PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR |
2840       PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR | PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR |
2841       PipelineCreateFlagBits::eRayTracingSkipAabbsKHR | PipelineCreateFlagBits::eRayTracingShaderGroupHandleCaptureReplayKHR |
2842       PipelineCreateFlagBits::eDeferCompileNV | PipelineCreateFlagBits::eCaptureStatisticsKHR | PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR |
2843       PipelineCreateFlagBits::eIndirectBindableNV | PipelineCreateFlagBits::eLibraryKHR | PipelineCreateFlagBits::eDescriptorBufferEXT |
2844       PipelineCreateFlagBits::eRetainLinkTimeOptimizationInfoEXT | PipelineCreateFlagBits::eLinkTimeOptimizationEXT |
2845       PipelineCreateFlagBits::eRayTracingAllowMotionNV | PipelineCreateFlagBits::eColorAttachmentFeedbackLoopEXT |
2846       PipelineCreateFlagBits::eDepthStencilAttachmentFeedbackLoopEXT | PipelineCreateFlagBits::eRayTracingOpacityMicromapEXT
2847 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2848       | PipelineCreateFlagBits::eRayTracingDisplacementMicromapNV
2849 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2850       | PipelineCreateFlagBits::eNoProtectedAccessEXT | PipelineCreateFlagBits::eProtectedAccessOnlyEXT;
2851   };
2852 
2853   enum class PipelineShaderStageCreateFlagBits : VkPipelineShaderStageCreateFlags
2854   {
2855     eAllowVaryingSubgroupSize    = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,
2856     eRequireFullSubgroups        = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,
2857     eAllowVaryingSubgroupSizeEXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT,
2858     eRequireFullSubgroupsEXT     = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
2859   };
2860 
2861   using PipelineShaderStageCreateFlags = Flags<PipelineShaderStageCreateFlagBits>;
2862 
2863   template <>
2864   struct FlagTraits<PipelineShaderStageCreateFlagBits>
2865   {
2866     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                           isBitmask = true;
2867     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineShaderStageCreateFlags allFlags =
2868       PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSize | PipelineShaderStageCreateFlagBits::eRequireFullSubgroups;
2869   };
2870 
2871   enum class PolygonMode
2872   {
2873     eFill            = VK_POLYGON_MODE_FILL,
2874     eLine            = VK_POLYGON_MODE_LINE,
2875     ePoint           = VK_POLYGON_MODE_POINT,
2876     eFillRectangleNV = VK_POLYGON_MODE_FILL_RECTANGLE_NV
2877   };
2878 
2879   enum class PrimitiveTopology
2880   {
2881     ePointList                  = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
2882     eLineList                   = VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
2883     eLineStrip                  = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,
2884     eTriangleList               = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
2885     eTriangleStrip              = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
2886     eTriangleFan                = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN,
2887     eLineListWithAdjacency      = VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY,
2888     eLineStripWithAdjacency     = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY,
2889     eTriangleListWithAdjacency  = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,
2890     eTriangleStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY,
2891     ePatchList                  = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
2892   };
2893 
2894   enum class ShaderStageFlagBits : VkShaderStageFlags
2895   {
2896     eVertex                 = VK_SHADER_STAGE_VERTEX_BIT,
2897     eTessellationControl    = VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
2898     eTessellationEvaluation = VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
2899     eGeometry               = VK_SHADER_STAGE_GEOMETRY_BIT,
2900     eFragment               = VK_SHADER_STAGE_FRAGMENT_BIT,
2901     eCompute                = VK_SHADER_STAGE_COMPUTE_BIT,
2902     eAllGraphics            = VK_SHADER_STAGE_ALL_GRAPHICS,
2903     eAll                    = VK_SHADER_STAGE_ALL,
2904     eRaygenKHR              = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
2905     eAnyHitKHR              = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
2906     eClosestHitKHR          = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
2907     eMissKHR                = VK_SHADER_STAGE_MISS_BIT_KHR,
2908     eIntersectionKHR        = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
2909     eCallableKHR            = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
2910     eRaygenNV               = VK_SHADER_STAGE_RAYGEN_BIT_NV,
2911     eAnyHitNV               = VK_SHADER_STAGE_ANY_HIT_BIT_NV,
2912     eClosestHitNV           = VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV,
2913     eMissNV                 = VK_SHADER_STAGE_MISS_BIT_NV,
2914     eIntersectionNV         = VK_SHADER_STAGE_INTERSECTION_BIT_NV,
2915     eCallableNV             = VK_SHADER_STAGE_CALLABLE_BIT_NV,
2916     eTaskNV                 = VK_SHADER_STAGE_TASK_BIT_NV,
2917     eMeshNV                 = VK_SHADER_STAGE_MESH_BIT_NV,
2918     eTaskEXT                = VK_SHADER_STAGE_TASK_BIT_EXT,
2919     eMeshEXT                = VK_SHADER_STAGE_MESH_BIT_EXT,
2920     eSubpassShadingHUAWEI   = VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI,
2921     eClusterCullingHUAWEI   = VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI
2922   };
2923 
2924   using ShaderStageFlags = Flags<ShaderStageFlagBits>;
2925 
2926   template <>
2927   struct FlagTraits<ShaderStageFlagBits>
2928   {
2929     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
2930     static VULKAN_HPP_CONST_OR_CONSTEXPR ShaderStageFlags allFlags =
2931       ShaderStageFlagBits::eVertex | ShaderStageFlagBits::eTessellationControl | ShaderStageFlagBits::eTessellationEvaluation | ShaderStageFlagBits::eGeometry |
2932       ShaderStageFlagBits::eFragment | ShaderStageFlagBits::eCompute | ShaderStageFlagBits::eAllGraphics | ShaderStageFlagBits::eAll |
2933       ShaderStageFlagBits::eRaygenKHR | ShaderStageFlagBits::eAnyHitKHR | ShaderStageFlagBits::eClosestHitKHR | ShaderStageFlagBits::eMissKHR |
2934       ShaderStageFlagBits::eIntersectionKHR | ShaderStageFlagBits::eCallableKHR | ShaderStageFlagBits::eTaskEXT | ShaderStageFlagBits::eMeshEXT |
2935       ShaderStageFlagBits::eSubpassShadingHUAWEI | ShaderStageFlagBits::eClusterCullingHUAWEI;
2936   };
2937 
2938   enum class StencilOp
2939   {
2940     eKeep              = VK_STENCIL_OP_KEEP,
2941     eZero              = VK_STENCIL_OP_ZERO,
2942     eReplace           = VK_STENCIL_OP_REPLACE,
2943     eIncrementAndClamp = VK_STENCIL_OP_INCREMENT_AND_CLAMP,
2944     eDecrementAndClamp = VK_STENCIL_OP_DECREMENT_AND_CLAMP,
2945     eInvert            = VK_STENCIL_OP_INVERT,
2946     eIncrementAndWrap  = VK_STENCIL_OP_INCREMENT_AND_WRAP,
2947     eDecrementAndWrap  = VK_STENCIL_OP_DECREMENT_AND_WRAP
2948   };
2949 
2950   enum class VertexInputRate
2951   {
2952     eVertex   = VK_VERTEX_INPUT_RATE_VERTEX,
2953     eInstance = VK_VERTEX_INPUT_RATE_INSTANCE
2954   };
2955 
2956   enum class PipelineDynamicStateCreateFlagBits : VkPipelineDynamicStateCreateFlags
2957   {
2958   };
2959 
2960   using PipelineDynamicStateCreateFlags = Flags<PipelineDynamicStateCreateFlagBits>;
2961 
2962   template <>
2963   struct FlagTraits<PipelineDynamicStateCreateFlagBits>
2964   {
2965     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                            isBitmask = true;
2966     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineDynamicStateCreateFlags allFlags  = {};
2967   };
2968 
2969   enum class PipelineInputAssemblyStateCreateFlagBits : VkPipelineInputAssemblyStateCreateFlags
2970   {
2971   };
2972 
2973   using PipelineInputAssemblyStateCreateFlags = Flags<PipelineInputAssemblyStateCreateFlagBits>;
2974 
2975   template <>
2976   struct FlagTraits<PipelineInputAssemblyStateCreateFlagBits>
2977   {
2978     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                  isBitmask = true;
2979     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineInputAssemblyStateCreateFlags allFlags  = {};
2980   };
2981 
2982   enum class PipelineMultisampleStateCreateFlagBits : VkPipelineMultisampleStateCreateFlags
2983   {
2984   };
2985 
2986   using PipelineMultisampleStateCreateFlags = Flags<PipelineMultisampleStateCreateFlagBits>;
2987 
2988   template <>
2989   struct FlagTraits<PipelineMultisampleStateCreateFlagBits>
2990   {
2991     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                isBitmask = true;
2992     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineMultisampleStateCreateFlags allFlags  = {};
2993   };
2994 
2995   enum class PipelineRasterizationStateCreateFlagBits : VkPipelineRasterizationStateCreateFlags
2996   {
2997   };
2998 
2999   using PipelineRasterizationStateCreateFlags = Flags<PipelineRasterizationStateCreateFlagBits>;
3000 
3001   template <>
3002   struct FlagTraits<PipelineRasterizationStateCreateFlagBits>
3003   {
3004     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                  isBitmask = true;
3005     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineRasterizationStateCreateFlags allFlags  = {};
3006   };
3007 
3008   enum class PipelineTessellationStateCreateFlagBits : VkPipelineTessellationStateCreateFlags
3009   {
3010   };
3011 
3012   using PipelineTessellationStateCreateFlags = Flags<PipelineTessellationStateCreateFlagBits>;
3013 
3014   template <>
3015   struct FlagTraits<PipelineTessellationStateCreateFlagBits>
3016   {
3017     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                 isBitmask = true;
3018     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineTessellationStateCreateFlags allFlags  = {};
3019   };
3020 
3021   enum class PipelineVertexInputStateCreateFlagBits : VkPipelineVertexInputStateCreateFlags
3022   {
3023   };
3024 
3025   using PipelineVertexInputStateCreateFlags = Flags<PipelineVertexInputStateCreateFlagBits>;
3026 
3027   template <>
3028   struct FlagTraits<PipelineVertexInputStateCreateFlagBits>
3029   {
3030     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                isBitmask = true;
3031     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineVertexInputStateCreateFlags allFlags  = {};
3032   };
3033 
3034   enum class PipelineViewportStateCreateFlagBits : VkPipelineViewportStateCreateFlags
3035   {
3036   };
3037 
3038   using PipelineViewportStateCreateFlags = Flags<PipelineViewportStateCreateFlagBits>;
3039 
3040   template <>
3041   struct FlagTraits<PipelineViewportStateCreateFlagBits>
3042   {
3043     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                             isBitmask = true;
3044     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineViewportStateCreateFlags allFlags  = {};
3045   };
3046 
3047   enum class BorderColor
3048   {
3049     eFloatTransparentBlack = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
3050     eIntTransparentBlack   = VK_BORDER_COLOR_INT_TRANSPARENT_BLACK,
3051     eFloatOpaqueBlack      = VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK,
3052     eIntOpaqueBlack        = VK_BORDER_COLOR_INT_OPAQUE_BLACK,
3053     eFloatOpaqueWhite      = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE,
3054     eIntOpaqueWhite        = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
3055     eFloatCustomEXT        = VK_BORDER_COLOR_FLOAT_CUSTOM_EXT,
3056     eIntCustomEXT          = VK_BORDER_COLOR_INT_CUSTOM_EXT
3057   };
3058 
3059   enum class Filter
3060   {
3061     eNearest  = VK_FILTER_NEAREST,
3062     eLinear   = VK_FILTER_LINEAR,
3063     eCubicIMG = VK_FILTER_CUBIC_IMG,
3064     eCubicEXT = VK_FILTER_CUBIC_EXT
3065   };
3066 
3067   enum class SamplerAddressMode
3068   {
3069     eRepeat               = VK_SAMPLER_ADDRESS_MODE_REPEAT,
3070     eMirroredRepeat       = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT,
3071     eClampToEdge          = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
3072     eClampToBorder        = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
3073     eMirrorClampToEdge    = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
3074     eMirrorClampToEdgeKHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR
3075   };
3076 
3077   enum class SamplerCreateFlagBits : VkSamplerCreateFlags
3078   {
3079     eSubsampledEXT                     = VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT,
3080     eSubsampledCoarseReconstructionEXT = VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT,
3081     eDescriptorBufferCaptureReplayEXT  = VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,
3082     eNonSeamlessCubeMapEXT             = VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT,
3083     eImageProcessingQCOM               = VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
3084   };
3085 
3086   using SamplerCreateFlags = Flags<SamplerCreateFlagBits>;
3087 
3088   template <>
3089   struct FlagTraits<SamplerCreateFlagBits>
3090   {
3091     static VULKAN_HPP_CONST_OR_CONSTEXPR bool               isBitmask = true;
3092     static VULKAN_HPP_CONST_OR_CONSTEXPR SamplerCreateFlags allFlags =
3093       SamplerCreateFlagBits::eSubsampledEXT | SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT |
3094       SamplerCreateFlagBits::eDescriptorBufferCaptureReplayEXT | SamplerCreateFlagBits::eNonSeamlessCubeMapEXT | SamplerCreateFlagBits::eImageProcessingQCOM;
3095   };
3096 
3097   enum class SamplerMipmapMode
3098   {
3099     eNearest = VK_SAMPLER_MIPMAP_MODE_NEAREST,
3100     eLinear  = VK_SAMPLER_MIPMAP_MODE_LINEAR
3101   };
3102 
3103   enum class DescriptorPoolCreateFlagBits : VkDescriptorPoolCreateFlags
3104   {
3105     eFreeDescriptorSet          = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,
3106     eUpdateAfterBind            = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
3107     eUpdateAfterBindEXT         = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT,
3108     eHostOnlyVALVE              = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE,
3109     eHostOnlyEXT                = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,
3110     eAllowOverallocationSetsNV  = VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV,
3111     eAllowOverallocationPoolsNV = VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV
3112   };
3113 
3114   using DescriptorPoolCreateFlags = Flags<DescriptorPoolCreateFlagBits>;
3115 
3116   template <>
3117   struct FlagTraits<DescriptorPoolCreateFlagBits>
3118   {
3119     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                      isBitmask = true;
3120     static VULKAN_HPP_CONST_OR_CONSTEXPR DescriptorPoolCreateFlags allFlags =
3121       DescriptorPoolCreateFlagBits::eFreeDescriptorSet | DescriptorPoolCreateFlagBits::eUpdateAfterBind | DescriptorPoolCreateFlagBits::eHostOnlyEXT |
3122       DescriptorPoolCreateFlagBits::eAllowOverallocationSetsNV | DescriptorPoolCreateFlagBits::eAllowOverallocationPoolsNV;
3123   };
3124 
3125   enum class DescriptorSetLayoutCreateFlagBits : VkDescriptorSetLayoutCreateFlags
3126   {
3127     eUpdateAfterBindPool          = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
3128     ePushDescriptorKHR            = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,
3129     eUpdateAfterBindPoolEXT       = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT,
3130     eDescriptorBufferEXT          = VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT,
3131     eEmbeddedImmutableSamplersEXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT,
3132     eHostOnlyPoolVALVE            = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE,
3133     eIndirectBindableNV           = VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV,
3134     eHostOnlyPoolEXT              = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT
3135   };
3136 
3137   using DescriptorSetLayoutCreateFlags = Flags<DescriptorSetLayoutCreateFlagBits>;
3138 
3139   template <>
3140   struct FlagTraits<DescriptorSetLayoutCreateFlagBits>
3141   {
3142     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                           isBitmask = true;
3143     static VULKAN_HPP_CONST_OR_CONSTEXPR DescriptorSetLayoutCreateFlags allFlags =
3144       DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool | DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR |
3145       DescriptorSetLayoutCreateFlagBits::eDescriptorBufferEXT | DescriptorSetLayoutCreateFlagBits::eEmbeddedImmutableSamplersEXT |
3146       DescriptorSetLayoutCreateFlagBits::eIndirectBindableNV | DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolEXT;
3147   };
3148 
3149   enum class DescriptorType
3150   {
3151     eSampler                  = VK_DESCRIPTOR_TYPE_SAMPLER,
3152     eCombinedImageSampler     = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
3153     eSampledImage             = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
3154     eStorageImage             = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
3155     eUniformTexelBuffer       = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,
3156     eStorageTexelBuffer       = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,
3157     eUniformBuffer            = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
3158     eStorageBuffer            = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
3159     eUniformBufferDynamic     = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
3160     eStorageBufferDynamic     = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC,
3161     eInputAttachment          = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
3162     eInlineUniformBlock       = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK,
3163     eInlineUniformBlockEXT    = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT,
3164     eAccelerationStructureKHR = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,
3165     eAccelerationStructureNV  = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV,
3166     eMutableVALVE             = VK_DESCRIPTOR_TYPE_MUTABLE_VALVE,
3167     eSampleWeightImageQCOM    = VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM,
3168     eBlockMatchImageQCOM      = VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM,
3169     eMutableEXT               = VK_DESCRIPTOR_TYPE_MUTABLE_EXT
3170   };
3171 
3172   enum class DescriptorPoolResetFlagBits : VkDescriptorPoolResetFlags
3173   {
3174   };
3175 
3176   using DescriptorPoolResetFlags = Flags<DescriptorPoolResetFlagBits>;
3177 
3178   template <>
3179   struct FlagTraits<DescriptorPoolResetFlagBits>
3180   {
3181     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                     isBitmask = true;
3182     static VULKAN_HPP_CONST_OR_CONSTEXPR DescriptorPoolResetFlags allFlags  = {};
3183   };
3184 
3185   enum class AccessFlagBits : VkAccessFlags
3186   {
3187     eIndirectCommandRead                  = VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
3188     eIndexRead                            = VK_ACCESS_INDEX_READ_BIT,
3189     eVertexAttributeRead                  = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,
3190     eUniformRead                          = VK_ACCESS_UNIFORM_READ_BIT,
3191     eInputAttachmentRead                  = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
3192     eShaderRead                           = VK_ACCESS_SHADER_READ_BIT,
3193     eShaderWrite                          = VK_ACCESS_SHADER_WRITE_BIT,
3194     eColorAttachmentRead                  = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,
3195     eColorAttachmentWrite                 = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
3196     eDepthStencilAttachmentRead           = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
3197     eDepthStencilAttachmentWrite          = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
3198     eTransferRead                         = VK_ACCESS_TRANSFER_READ_BIT,
3199     eTransferWrite                        = VK_ACCESS_TRANSFER_WRITE_BIT,
3200     eHostRead                             = VK_ACCESS_HOST_READ_BIT,
3201     eHostWrite                            = VK_ACCESS_HOST_WRITE_BIT,
3202     eMemoryRead                           = VK_ACCESS_MEMORY_READ_BIT,
3203     eMemoryWrite                          = VK_ACCESS_MEMORY_WRITE_BIT,
3204     eNone                                 = VK_ACCESS_NONE,
3205     eTransformFeedbackWriteEXT            = VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
3206     eTransformFeedbackCounterReadEXT      = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,
3207     eTransformFeedbackCounterWriteEXT     = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
3208     eConditionalRenderingReadEXT          = VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,
3209     eColorAttachmentReadNoncoherentEXT    = VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
3210     eAccelerationStructureReadKHR         = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
3211     eAccelerationStructureWriteKHR        = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
3212     eShadingRateImageReadNV               = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV,
3213     eAccelerationStructureReadNV          = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV,
3214     eAccelerationStructureWriteNV         = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
3215     eFragmentDensityMapReadEXT            = VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,
3216     eFragmentShadingRateAttachmentReadKHR = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
3217     eCommandPreprocessReadNV              = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,
3218     eCommandPreprocessWriteNV             = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,
3219     eNoneKHR                              = VK_ACCESS_NONE_KHR
3220   };
3221 
3222   using AccessFlags = Flags<AccessFlagBits>;
3223 
3224   template <>
3225   struct FlagTraits<AccessFlagBits>
3226   {
3227     static VULKAN_HPP_CONST_OR_CONSTEXPR bool        isBitmask = true;
3228     static VULKAN_HPP_CONST_OR_CONSTEXPR AccessFlags allFlags =
3229       AccessFlagBits::eIndirectCommandRead | AccessFlagBits::eIndexRead | AccessFlagBits::eVertexAttributeRead | AccessFlagBits::eUniformRead |
3230       AccessFlagBits::eInputAttachmentRead | AccessFlagBits::eShaderRead | AccessFlagBits::eShaderWrite | AccessFlagBits::eColorAttachmentRead |
3231       AccessFlagBits::eColorAttachmentWrite | AccessFlagBits::eDepthStencilAttachmentRead | AccessFlagBits::eDepthStencilAttachmentWrite |
3232       AccessFlagBits::eTransferRead | AccessFlagBits::eTransferWrite | AccessFlagBits::eHostRead | AccessFlagBits::eHostWrite | AccessFlagBits::eMemoryRead |
3233       AccessFlagBits::eMemoryWrite | AccessFlagBits::eNone | AccessFlagBits::eTransformFeedbackWriteEXT | AccessFlagBits::eTransformFeedbackCounterReadEXT |
3234       AccessFlagBits::eTransformFeedbackCounterWriteEXT | AccessFlagBits::eConditionalRenderingReadEXT | AccessFlagBits::eColorAttachmentReadNoncoherentEXT |
3235       AccessFlagBits::eAccelerationStructureReadKHR | AccessFlagBits::eAccelerationStructureWriteKHR | AccessFlagBits::eFragmentDensityMapReadEXT |
3236       AccessFlagBits::eFragmentShadingRateAttachmentReadKHR | AccessFlagBits::eCommandPreprocessReadNV | AccessFlagBits::eCommandPreprocessWriteNV;
3237   };
3238 
3239   enum class AttachmentDescriptionFlagBits : VkAttachmentDescriptionFlags
3240   {
3241     eMayAlias = VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT
3242   };
3243 
3244   using AttachmentDescriptionFlags = Flags<AttachmentDescriptionFlagBits>;
3245 
3246   template <>
3247   struct FlagTraits<AttachmentDescriptionFlagBits>
3248   {
3249     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
3250     static VULKAN_HPP_CONST_OR_CONSTEXPR AttachmentDescriptionFlags allFlags  = AttachmentDescriptionFlagBits::eMayAlias;
3251   };
3252 
3253   enum class AttachmentLoadOp
3254   {
3255     eLoad     = VK_ATTACHMENT_LOAD_OP_LOAD,
3256     eClear    = VK_ATTACHMENT_LOAD_OP_CLEAR,
3257     eDontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
3258     eNoneEXT  = VK_ATTACHMENT_LOAD_OP_NONE_EXT
3259   };
3260 
3261   enum class AttachmentStoreOp
3262   {
3263     eStore    = VK_ATTACHMENT_STORE_OP_STORE,
3264     eDontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE,
3265     eNone     = VK_ATTACHMENT_STORE_OP_NONE,
3266     eNoneKHR  = VK_ATTACHMENT_STORE_OP_NONE_KHR,
3267     eNoneQCOM = VK_ATTACHMENT_STORE_OP_NONE_QCOM,
3268     eNoneEXT  = VK_ATTACHMENT_STORE_OP_NONE_EXT
3269   };
3270 
3271   enum class DependencyFlagBits : VkDependencyFlags
3272   {
3273     eByRegion        = VK_DEPENDENCY_BY_REGION_BIT,
3274     eDeviceGroup     = VK_DEPENDENCY_DEVICE_GROUP_BIT,
3275     eViewLocal       = VK_DEPENDENCY_VIEW_LOCAL_BIT,
3276     eViewLocalKHR    = VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR,
3277     eDeviceGroupKHR  = VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR,
3278     eFeedbackLoopEXT = VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT
3279   };
3280 
3281   using DependencyFlags = Flags<DependencyFlagBits>;
3282 
3283   template <>
3284   struct FlagTraits<DependencyFlagBits>
3285   {
3286     static VULKAN_HPP_CONST_OR_CONSTEXPR bool            isBitmask = true;
3287     static VULKAN_HPP_CONST_OR_CONSTEXPR DependencyFlags allFlags =
3288       DependencyFlagBits::eByRegion | DependencyFlagBits::eDeviceGroup | DependencyFlagBits::eViewLocal | DependencyFlagBits::eFeedbackLoopEXT;
3289   };
3290 
3291   enum class FramebufferCreateFlagBits : VkFramebufferCreateFlags
3292   {
3293     eImageless    = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
3294     eImagelessKHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR
3295   };
3296 
3297   using FramebufferCreateFlags = Flags<FramebufferCreateFlagBits>;
3298 
3299   template <>
3300   struct FlagTraits<FramebufferCreateFlagBits>
3301   {
3302     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
3303     static VULKAN_HPP_CONST_OR_CONSTEXPR FramebufferCreateFlags allFlags  = FramebufferCreateFlagBits::eImageless;
3304   };
3305 
3306   enum class PipelineBindPoint
3307   {
3308     eGraphics = VK_PIPELINE_BIND_POINT_GRAPHICS,
3309     eCompute  = VK_PIPELINE_BIND_POINT_COMPUTE,
3310 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3311     eExecutionGraphAMDX = VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX,
3312 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3313     eRayTracingKHR        = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
3314     eRayTracingNV         = VK_PIPELINE_BIND_POINT_RAY_TRACING_NV,
3315     eSubpassShadingHUAWEI = VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI
3316   };
3317 
3318   enum class RenderPassCreateFlagBits : VkRenderPassCreateFlags
3319   {
3320     eTransformQCOM = VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM
3321   };
3322 
3323   using RenderPassCreateFlags = Flags<RenderPassCreateFlagBits>;
3324 
3325   template <>
3326   struct FlagTraits<RenderPassCreateFlagBits>
3327   {
3328     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                  isBitmask = true;
3329     static VULKAN_HPP_CONST_OR_CONSTEXPR RenderPassCreateFlags allFlags  = RenderPassCreateFlagBits::eTransformQCOM;
3330   };
3331 
3332   enum class SubpassDescriptionFlagBits : VkSubpassDescriptionFlags
3333   {
3334     ePerViewAttributesNVX                         = VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,
3335     ePerViewPositionXOnlyNVX                      = VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX,
3336     eFragmentRegionQCOM                           = VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM,
3337     eShaderResolveQCOM                            = VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM,
3338     eRasterizationOrderAttachmentColorAccessARM   = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM,
3339     eRasterizationOrderAttachmentDepthAccessARM   = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM,
3340     eRasterizationOrderAttachmentStencilAccessARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM,
3341     eRasterizationOrderAttachmentColorAccessEXT   = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT,
3342     eRasterizationOrderAttachmentDepthAccessEXT   = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
3343     eRasterizationOrderAttachmentStencilAccessEXT = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
3344     eEnableLegacyDitheringEXT                     = VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT
3345   };
3346 
3347   using SubpassDescriptionFlags = Flags<SubpassDescriptionFlagBits>;
3348 
3349   template <>
3350   struct FlagTraits<SubpassDescriptionFlagBits>
3351   {
3352     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                    isBitmask = true;
3353     static VULKAN_HPP_CONST_OR_CONSTEXPR SubpassDescriptionFlags allFlags =
3354       SubpassDescriptionFlagBits::ePerViewAttributesNVX | SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX |
3355       SubpassDescriptionFlagBits::eFragmentRegionQCOM | SubpassDescriptionFlagBits::eShaderResolveQCOM |
3356       SubpassDescriptionFlagBits::eRasterizationOrderAttachmentColorAccessEXT | SubpassDescriptionFlagBits::eRasterizationOrderAttachmentDepthAccessEXT |
3357       SubpassDescriptionFlagBits::eRasterizationOrderAttachmentStencilAccessEXT | SubpassDescriptionFlagBits::eEnableLegacyDitheringEXT;
3358   };
3359 
3360   enum class CommandPoolCreateFlagBits : VkCommandPoolCreateFlags
3361   {
3362     eTransient          = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,
3363     eResetCommandBuffer = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,
3364     eProtected          = VK_COMMAND_POOL_CREATE_PROTECTED_BIT
3365   };
3366 
3367   using CommandPoolCreateFlags = Flags<CommandPoolCreateFlagBits>;
3368 
3369   template <>
3370   struct FlagTraits<CommandPoolCreateFlagBits>
3371   {
3372     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
3373     static VULKAN_HPP_CONST_OR_CONSTEXPR CommandPoolCreateFlags allFlags =
3374       CommandPoolCreateFlagBits::eTransient | CommandPoolCreateFlagBits::eResetCommandBuffer | CommandPoolCreateFlagBits::eProtected;
3375   };
3376 
3377   enum class CommandPoolResetFlagBits : VkCommandPoolResetFlags
3378   {
3379     eReleaseResources = VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT
3380   };
3381 
3382   using CommandPoolResetFlags = Flags<CommandPoolResetFlagBits>;
3383 
3384   template <>
3385   struct FlagTraits<CommandPoolResetFlagBits>
3386   {
3387     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                  isBitmask = true;
3388     static VULKAN_HPP_CONST_OR_CONSTEXPR CommandPoolResetFlags allFlags  = CommandPoolResetFlagBits::eReleaseResources;
3389   };
3390 
3391   enum class CommandBufferLevel
3392   {
3393     ePrimary   = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
3394     eSecondary = VK_COMMAND_BUFFER_LEVEL_SECONDARY
3395   };
3396 
3397   enum class CommandBufferResetFlagBits : VkCommandBufferResetFlags
3398   {
3399     eReleaseResources = VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT
3400   };
3401 
3402   using CommandBufferResetFlags = Flags<CommandBufferResetFlagBits>;
3403 
3404   template <>
3405   struct FlagTraits<CommandBufferResetFlagBits>
3406   {
3407     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                    isBitmask = true;
3408     static VULKAN_HPP_CONST_OR_CONSTEXPR CommandBufferResetFlags allFlags  = CommandBufferResetFlagBits::eReleaseResources;
3409   };
3410 
3411   enum class CommandBufferUsageFlagBits : VkCommandBufferUsageFlags
3412   {
3413     eOneTimeSubmit      = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
3414     eRenderPassContinue = VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,
3415     eSimultaneousUse    = VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
3416   };
3417 
3418   using CommandBufferUsageFlags = Flags<CommandBufferUsageFlagBits>;
3419 
3420   template <>
3421   struct FlagTraits<CommandBufferUsageFlagBits>
3422   {
3423     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                    isBitmask = true;
3424     static VULKAN_HPP_CONST_OR_CONSTEXPR CommandBufferUsageFlags allFlags =
3425       CommandBufferUsageFlagBits::eOneTimeSubmit | CommandBufferUsageFlagBits::eRenderPassContinue | CommandBufferUsageFlagBits::eSimultaneousUse;
3426   };
3427 
3428   enum class QueryControlFlagBits : VkQueryControlFlags
3429   {
3430     ePrecise = VK_QUERY_CONTROL_PRECISE_BIT
3431   };
3432 
3433   using QueryControlFlags = Flags<QueryControlFlagBits>;
3434 
3435   template <>
3436   struct FlagTraits<QueryControlFlagBits>
3437   {
3438     static VULKAN_HPP_CONST_OR_CONSTEXPR bool              isBitmask = true;
3439     static VULKAN_HPP_CONST_OR_CONSTEXPR QueryControlFlags allFlags  = QueryControlFlagBits::ePrecise;
3440   };
3441 
3442   enum class IndexType
3443   {
3444     eUint16   = VK_INDEX_TYPE_UINT16,
3445     eUint32   = VK_INDEX_TYPE_UINT32,
3446     eNoneKHR  = VK_INDEX_TYPE_NONE_KHR,
3447     eNoneNV   = VK_INDEX_TYPE_NONE_NV,
3448     eUint8EXT = VK_INDEX_TYPE_UINT8_EXT
3449   };
3450 
3451   enum class StencilFaceFlagBits : VkStencilFaceFlags
3452   {
3453     eFront                 = VK_STENCIL_FACE_FRONT_BIT,
3454     eBack                  = VK_STENCIL_FACE_BACK_BIT,
3455     eFrontAndBack          = VK_STENCIL_FACE_FRONT_AND_BACK,
3456     eVkStencilFrontAndBack = VK_STENCIL_FRONT_AND_BACK
3457   };
3458 
3459   using StencilFaceFlags = Flags<StencilFaceFlagBits>;
3460 
3461   template <>
3462   struct FlagTraits<StencilFaceFlagBits>
3463   {
3464     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
3465     static VULKAN_HPP_CONST_OR_CONSTEXPR StencilFaceFlags allFlags =
3466       StencilFaceFlagBits::eFront | StencilFaceFlagBits::eBack | StencilFaceFlagBits::eFrontAndBack;
3467   };
3468 
3469   enum class SubpassContents
3470   {
3471     eInline                  = VK_SUBPASS_CONTENTS_INLINE,
3472     eSecondaryCommandBuffers = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
3473   };
3474 
3475   //=== VK_VERSION_1_1 ===
3476 
3477   enum class SubgroupFeatureFlagBits : VkSubgroupFeatureFlags
3478   {
3479     eBasic           = VK_SUBGROUP_FEATURE_BASIC_BIT,
3480     eVote            = VK_SUBGROUP_FEATURE_VOTE_BIT,
3481     eArithmetic      = VK_SUBGROUP_FEATURE_ARITHMETIC_BIT,
3482     eBallot          = VK_SUBGROUP_FEATURE_BALLOT_BIT,
3483     eShuffle         = VK_SUBGROUP_FEATURE_SHUFFLE_BIT,
3484     eShuffleRelative = VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,
3485     eClustered       = VK_SUBGROUP_FEATURE_CLUSTERED_BIT,
3486     eQuad            = VK_SUBGROUP_FEATURE_QUAD_BIT,
3487     ePartitionedNV   = VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV
3488   };
3489 
3490   using SubgroupFeatureFlags = Flags<SubgroupFeatureFlagBits>;
3491 
3492   template <>
3493   struct FlagTraits<SubgroupFeatureFlagBits>
3494   {
3495     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                 isBitmask = true;
3496     static VULKAN_HPP_CONST_OR_CONSTEXPR SubgroupFeatureFlags allFlags =
3497       SubgroupFeatureFlagBits::eBasic | SubgroupFeatureFlagBits::eVote | SubgroupFeatureFlagBits::eArithmetic | SubgroupFeatureFlagBits::eBallot |
3498       SubgroupFeatureFlagBits::eShuffle | SubgroupFeatureFlagBits::eShuffleRelative | SubgroupFeatureFlagBits::eClustered | SubgroupFeatureFlagBits::eQuad |
3499       SubgroupFeatureFlagBits::ePartitionedNV;
3500   };
3501 
3502   enum class PeerMemoryFeatureFlagBits : VkPeerMemoryFeatureFlags
3503   {
3504     eCopySrc    = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
3505     eCopyDst    = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
3506     eGenericSrc = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
3507     eGenericDst = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT
3508   };
3509   using PeerMemoryFeatureFlagBitsKHR = PeerMemoryFeatureFlagBits;
3510 
3511   using PeerMemoryFeatureFlags    = Flags<PeerMemoryFeatureFlagBits>;
3512   using PeerMemoryFeatureFlagsKHR = PeerMemoryFeatureFlags;
3513 
3514   template <>
3515   struct FlagTraits<PeerMemoryFeatureFlagBits>
3516   {
3517     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
3518     static VULKAN_HPP_CONST_OR_CONSTEXPR PeerMemoryFeatureFlags allFlags  = PeerMemoryFeatureFlagBits::eCopySrc | PeerMemoryFeatureFlagBits::eCopyDst |
3519                                                                            PeerMemoryFeatureFlagBits::eGenericSrc | PeerMemoryFeatureFlagBits::eGenericDst;
3520   };
3521 
3522   enum class MemoryAllocateFlagBits : VkMemoryAllocateFlags
3523   {
3524     eDeviceMask                 = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
3525     eDeviceAddress              = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
3526     eDeviceAddressCaptureReplay = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
3527   };
3528   using MemoryAllocateFlagBitsKHR = MemoryAllocateFlagBits;
3529 
3530   using MemoryAllocateFlags    = Flags<MemoryAllocateFlagBits>;
3531   using MemoryAllocateFlagsKHR = MemoryAllocateFlags;
3532 
3533   template <>
3534   struct FlagTraits<MemoryAllocateFlagBits>
3535   {
3536     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                isBitmask = true;
3537     static VULKAN_HPP_CONST_OR_CONSTEXPR MemoryAllocateFlags allFlags =
3538       MemoryAllocateFlagBits::eDeviceMask | MemoryAllocateFlagBits::eDeviceAddress | MemoryAllocateFlagBits::eDeviceAddressCaptureReplay;
3539   };
3540 
3541   enum class CommandPoolTrimFlagBits : VkCommandPoolTrimFlags
3542   {
3543   };
3544 
3545   using CommandPoolTrimFlags    = Flags<CommandPoolTrimFlagBits>;
3546   using CommandPoolTrimFlagsKHR = CommandPoolTrimFlags;
3547 
3548   template <>
3549   struct FlagTraits<CommandPoolTrimFlagBits>
3550   {
3551     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                 isBitmask = true;
3552     static VULKAN_HPP_CONST_OR_CONSTEXPR CommandPoolTrimFlags allFlags  = {};
3553   };
3554 
3555   enum class PointClippingBehavior
3556   {
3557     eAllClipPlanes      = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
3558     eUserClipPlanesOnly = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
3559   };
3560   using PointClippingBehaviorKHR = PointClippingBehavior;
3561 
3562   enum class TessellationDomainOrigin
3563   {
3564     eUpperLeft = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
3565     eLowerLeft = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT
3566   };
3567   using TessellationDomainOriginKHR = TessellationDomainOrigin;
3568 
3569   enum class DeviceQueueCreateFlagBits : VkDeviceQueueCreateFlags
3570   {
3571     eProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT
3572   };
3573 
3574   using DeviceQueueCreateFlags = Flags<DeviceQueueCreateFlagBits>;
3575 
3576   template <>
3577   struct FlagTraits<DeviceQueueCreateFlagBits>
3578   {
3579     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
3580     static VULKAN_HPP_CONST_OR_CONSTEXPR DeviceQueueCreateFlags allFlags  = DeviceQueueCreateFlagBits::eProtected;
3581   };
3582 
3583   enum class SamplerYcbcrModelConversion
3584   {
3585     eRgbIdentity   = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
3586     eYcbcrIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
3587     eYcbcr709      = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
3588     eYcbcr601      = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
3589     eYcbcr2020     = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020
3590   };
3591   using SamplerYcbcrModelConversionKHR = SamplerYcbcrModelConversion;
3592 
3593   enum class SamplerYcbcrRange
3594   {
3595     eItuFull   = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
3596     eItuNarrow = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW
3597   };
3598   using SamplerYcbcrRangeKHR = SamplerYcbcrRange;
3599 
3600   enum class ChromaLocation
3601   {
3602     eCositedEven = VK_CHROMA_LOCATION_COSITED_EVEN,
3603     eMidpoint    = VK_CHROMA_LOCATION_MIDPOINT
3604   };
3605   using ChromaLocationKHR = ChromaLocation;
3606 
3607   enum class DescriptorUpdateTemplateType
3608   {
3609     eDescriptorSet      = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
3610     ePushDescriptorsKHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
3611   };
3612   using DescriptorUpdateTemplateTypeKHR = DescriptorUpdateTemplateType;
3613 
3614   enum class DescriptorUpdateTemplateCreateFlagBits : VkDescriptorUpdateTemplateCreateFlags
3615   {
3616   };
3617 
3618   using DescriptorUpdateTemplateCreateFlags    = Flags<DescriptorUpdateTemplateCreateFlagBits>;
3619   using DescriptorUpdateTemplateCreateFlagsKHR = DescriptorUpdateTemplateCreateFlags;
3620 
3621   template <>
3622   struct FlagTraits<DescriptorUpdateTemplateCreateFlagBits>
3623   {
3624     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                isBitmask = true;
3625     static VULKAN_HPP_CONST_OR_CONSTEXPR DescriptorUpdateTemplateCreateFlags allFlags  = {};
3626   };
3627 
3628   enum class ExternalMemoryHandleTypeFlagBits : VkExternalMemoryHandleTypeFlags
3629   {
3630     eOpaqueFd        = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
3631     eOpaqueWin32     = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
3632     eOpaqueWin32Kmt  = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
3633     eD3D11Texture    = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
3634     eD3D11TextureKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
3635     eD3D12Heap       = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
3636     eD3D12Resource   = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
3637     eDmaBufEXT       = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,
3638 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
3639     eAndroidHardwareBufferANDROID = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,
3640 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
3641     eHostAllocationEXT          = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,
3642     eHostMappedForeignMemoryEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT,
3643 #if defined( VK_USE_PLATFORM_FUCHSIA )
3644     eZirconVmoFUCHSIA = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA,
3645 #endif /*VK_USE_PLATFORM_FUCHSIA*/
3646     eRdmaAddressNV = VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV,
3647 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
3648     eScreenBufferQNX = VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX
3649 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
3650   };
3651   using ExternalMemoryHandleTypeFlagBitsKHR = ExternalMemoryHandleTypeFlagBits;
3652 
3653   using ExternalMemoryHandleTypeFlags    = Flags<ExternalMemoryHandleTypeFlagBits>;
3654   using ExternalMemoryHandleTypeFlagsKHR = ExternalMemoryHandleTypeFlags;
3655 
3656   template <>
3657   struct FlagTraits<ExternalMemoryHandleTypeFlagBits>
3658   {
3659     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                          isBitmask = true;
3660     static VULKAN_HPP_CONST_OR_CONSTEXPR ExternalMemoryHandleTypeFlags allFlags =
3661       ExternalMemoryHandleTypeFlagBits::eOpaqueFd | ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 | ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt |
3662       ExternalMemoryHandleTypeFlagBits::eD3D11Texture | ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt | ExternalMemoryHandleTypeFlagBits::eD3D12Heap |
3663       ExternalMemoryHandleTypeFlagBits::eD3D12Resource | ExternalMemoryHandleTypeFlagBits::eDmaBufEXT
3664 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
3665       | ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID
3666 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
3667       | ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT | ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT
3668 #if defined( VK_USE_PLATFORM_FUCHSIA )
3669       | ExternalMemoryHandleTypeFlagBits::eZirconVmoFUCHSIA
3670 #endif /*VK_USE_PLATFORM_FUCHSIA*/
3671       | ExternalMemoryHandleTypeFlagBits::eRdmaAddressNV
3672 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
3673       | ExternalMemoryHandleTypeFlagBits::eScreenBufferQNX
3674 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
3675       ;
3676   };
3677 
3678   enum class ExternalMemoryFeatureFlagBits : VkExternalMemoryFeatureFlags
3679   {
3680     eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
3681     eExportable    = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
3682     eImportable    = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT
3683   };
3684   using ExternalMemoryFeatureFlagBitsKHR = ExternalMemoryFeatureFlagBits;
3685 
3686   using ExternalMemoryFeatureFlags    = Flags<ExternalMemoryFeatureFlagBits>;
3687   using ExternalMemoryFeatureFlagsKHR = ExternalMemoryFeatureFlags;
3688 
3689   template <>
3690   struct FlagTraits<ExternalMemoryFeatureFlagBits>
3691   {
3692     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
3693     static VULKAN_HPP_CONST_OR_CONSTEXPR ExternalMemoryFeatureFlags allFlags =
3694       ExternalMemoryFeatureFlagBits::eDedicatedOnly | ExternalMemoryFeatureFlagBits::eExportable | ExternalMemoryFeatureFlagBits::eImportable;
3695   };
3696 
3697   enum class ExternalFenceHandleTypeFlagBits : VkExternalFenceHandleTypeFlags
3698   {
3699     eOpaqueFd       = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
3700     eOpaqueWin32    = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
3701     eOpaqueWin32Kmt = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
3702     eSyncFd         = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT
3703   };
3704   using ExternalFenceHandleTypeFlagBitsKHR = ExternalFenceHandleTypeFlagBits;
3705 
3706   using ExternalFenceHandleTypeFlags    = Flags<ExternalFenceHandleTypeFlagBits>;
3707   using ExternalFenceHandleTypeFlagsKHR = ExternalFenceHandleTypeFlags;
3708 
3709   template <>
3710   struct FlagTraits<ExternalFenceHandleTypeFlagBits>
3711   {
3712     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                         isBitmask = true;
3713     static VULKAN_HPP_CONST_OR_CONSTEXPR ExternalFenceHandleTypeFlags allFlags =
3714       ExternalFenceHandleTypeFlagBits::eOpaqueFd | ExternalFenceHandleTypeFlagBits::eOpaqueWin32 | ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt |
3715       ExternalFenceHandleTypeFlagBits::eSyncFd;
3716   };
3717 
3718   enum class ExternalFenceFeatureFlagBits : VkExternalFenceFeatureFlags
3719   {
3720     eExportable = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
3721     eImportable = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT
3722   };
3723   using ExternalFenceFeatureFlagBitsKHR = ExternalFenceFeatureFlagBits;
3724 
3725   using ExternalFenceFeatureFlags    = Flags<ExternalFenceFeatureFlagBits>;
3726   using ExternalFenceFeatureFlagsKHR = ExternalFenceFeatureFlags;
3727 
3728   template <>
3729   struct FlagTraits<ExternalFenceFeatureFlagBits>
3730   {
3731     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                      isBitmask = true;
3732     static VULKAN_HPP_CONST_OR_CONSTEXPR ExternalFenceFeatureFlags allFlags =
3733       ExternalFenceFeatureFlagBits::eExportable | ExternalFenceFeatureFlagBits::eImportable;
3734   };
3735 
3736   enum class FenceImportFlagBits : VkFenceImportFlags
3737   {
3738     eTemporary = VK_FENCE_IMPORT_TEMPORARY_BIT
3739   };
3740   using FenceImportFlagBitsKHR = FenceImportFlagBits;
3741 
3742   using FenceImportFlags    = Flags<FenceImportFlagBits>;
3743   using FenceImportFlagsKHR = FenceImportFlags;
3744 
3745   template <>
3746   struct FlagTraits<FenceImportFlagBits>
3747   {
3748     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
3749     static VULKAN_HPP_CONST_OR_CONSTEXPR FenceImportFlags allFlags  = FenceImportFlagBits::eTemporary;
3750   };
3751 
3752   enum class SemaphoreImportFlagBits : VkSemaphoreImportFlags
3753   {
3754     eTemporary = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT
3755   };
3756   using SemaphoreImportFlagBitsKHR = SemaphoreImportFlagBits;
3757 
3758   using SemaphoreImportFlags    = Flags<SemaphoreImportFlagBits>;
3759   using SemaphoreImportFlagsKHR = SemaphoreImportFlags;
3760 
3761   template <>
3762   struct FlagTraits<SemaphoreImportFlagBits>
3763   {
3764     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                 isBitmask = true;
3765     static VULKAN_HPP_CONST_OR_CONSTEXPR SemaphoreImportFlags allFlags  = SemaphoreImportFlagBits::eTemporary;
3766   };
3767 
3768   enum class ExternalSemaphoreHandleTypeFlagBits : VkExternalSemaphoreHandleTypeFlags
3769   {
3770     eOpaqueFd       = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
3771     eOpaqueWin32    = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
3772     eOpaqueWin32Kmt = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
3773     eD3D12Fence     = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
3774     eD3D11Fence     = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT,
3775     eSyncFd         = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
3776 #if defined( VK_USE_PLATFORM_FUCHSIA )
3777     eZirconEventFUCHSIA = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA
3778 #endif /*VK_USE_PLATFORM_FUCHSIA*/
3779   };
3780   using ExternalSemaphoreHandleTypeFlagBitsKHR = ExternalSemaphoreHandleTypeFlagBits;
3781 
3782   using ExternalSemaphoreHandleTypeFlags    = Flags<ExternalSemaphoreHandleTypeFlagBits>;
3783   using ExternalSemaphoreHandleTypeFlagsKHR = ExternalSemaphoreHandleTypeFlags;
3784 
3785   template <>
3786   struct FlagTraits<ExternalSemaphoreHandleTypeFlagBits>
3787   {
3788     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                             isBitmask = true;
3789     static VULKAN_HPP_CONST_OR_CONSTEXPR ExternalSemaphoreHandleTypeFlags allFlags =
3790       ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd | ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 |
3791       ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt | ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence | ExternalSemaphoreHandleTypeFlagBits::eSyncFd
3792 #if defined( VK_USE_PLATFORM_FUCHSIA )
3793       | ExternalSemaphoreHandleTypeFlagBits::eZirconEventFUCHSIA
3794 #endif /*VK_USE_PLATFORM_FUCHSIA*/
3795       ;
3796   };
3797 
3798   enum class ExternalSemaphoreFeatureFlagBits : VkExternalSemaphoreFeatureFlags
3799   {
3800     eExportable = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
3801     eImportable = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT
3802   };
3803   using ExternalSemaphoreFeatureFlagBitsKHR = ExternalSemaphoreFeatureFlagBits;
3804 
3805   using ExternalSemaphoreFeatureFlags    = Flags<ExternalSemaphoreFeatureFlagBits>;
3806   using ExternalSemaphoreFeatureFlagsKHR = ExternalSemaphoreFeatureFlags;
3807 
3808   template <>
3809   struct FlagTraits<ExternalSemaphoreFeatureFlagBits>
3810   {
3811     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                          isBitmask = true;
3812     static VULKAN_HPP_CONST_OR_CONSTEXPR ExternalSemaphoreFeatureFlags allFlags =
3813       ExternalSemaphoreFeatureFlagBits::eExportable | ExternalSemaphoreFeatureFlagBits::eImportable;
3814   };
3815 
3816   //=== VK_VERSION_1_2 ===
3817 
3818   enum class DriverId
3819   {
3820     eAmdProprietary            = VK_DRIVER_ID_AMD_PROPRIETARY,
3821     eAmdOpenSource             = VK_DRIVER_ID_AMD_OPEN_SOURCE,
3822     eMesaRadv                  = VK_DRIVER_ID_MESA_RADV,
3823     eNvidiaProprietary         = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
3824     eIntelProprietaryWindows   = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
3825     eIntelOpenSourceMESA       = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
3826     eImaginationProprietary    = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
3827     eQualcommProprietary       = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
3828     eArmProprietary            = VK_DRIVER_ID_ARM_PROPRIETARY,
3829     eGoogleSwiftshader         = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
3830     eGgpProprietary            = VK_DRIVER_ID_GGP_PROPRIETARY,
3831     eBroadcomProprietary       = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
3832     eMesaLlvmpipe              = VK_DRIVER_ID_MESA_LLVMPIPE,
3833     eMoltenvk                  = VK_DRIVER_ID_MOLTENVK,
3834     eCoreaviProprietary        = VK_DRIVER_ID_COREAVI_PROPRIETARY,
3835     eJuiceProprietary          = VK_DRIVER_ID_JUICE_PROPRIETARY,
3836     eVerisiliconProprietary    = VK_DRIVER_ID_VERISILICON_PROPRIETARY,
3837     eMesaTurnip                = VK_DRIVER_ID_MESA_TURNIP,
3838     eMesaV3Dv                  = VK_DRIVER_ID_MESA_V3DV,
3839     eMesaPanvk                 = VK_DRIVER_ID_MESA_PANVK,
3840     eSamsungProprietary        = VK_DRIVER_ID_SAMSUNG_PROPRIETARY,
3841     eMesaVenus                 = VK_DRIVER_ID_MESA_VENUS,
3842     eMesaDozen                 = VK_DRIVER_ID_MESA_DOZEN,
3843     eMesaNvk                   = VK_DRIVER_ID_MESA_NVK,
3844     eImaginationOpenSourceMESA = VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA,
3845     eMesaAgxv                  = VK_DRIVER_ID_MESA_AGXV
3846   };
3847   using DriverIdKHR = DriverId;
3848 
3849   enum class ShaderFloatControlsIndependence
3850   {
3851     e32BitOnly = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
3852     eAll       = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
3853     eNone      = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
3854   };
3855   using ShaderFloatControlsIndependenceKHR = ShaderFloatControlsIndependence;
3856 
3857   enum class DescriptorBindingFlagBits : VkDescriptorBindingFlags
3858   {
3859     eUpdateAfterBind          = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
3860     eUpdateUnusedWhilePending = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
3861     ePartiallyBound           = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
3862     eVariableDescriptorCount  = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
3863   };
3864   using DescriptorBindingFlagBitsEXT = DescriptorBindingFlagBits;
3865 
3866   using DescriptorBindingFlags    = Flags<DescriptorBindingFlagBits>;
3867   using DescriptorBindingFlagsEXT = DescriptorBindingFlags;
3868 
3869   template <>
3870   struct FlagTraits<DescriptorBindingFlagBits>
3871   {
3872     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
3873     static VULKAN_HPP_CONST_OR_CONSTEXPR DescriptorBindingFlags allFlags =
3874       DescriptorBindingFlagBits::eUpdateAfterBind | DescriptorBindingFlagBits::eUpdateUnusedWhilePending | DescriptorBindingFlagBits::ePartiallyBound |
3875       DescriptorBindingFlagBits::eVariableDescriptorCount;
3876   };
3877 
3878   enum class ResolveModeFlagBits : VkResolveModeFlags
3879   {
3880     eNone       = VK_RESOLVE_MODE_NONE,
3881     eSampleZero = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
3882     eAverage    = VK_RESOLVE_MODE_AVERAGE_BIT,
3883     eMin        = VK_RESOLVE_MODE_MIN_BIT,
3884     eMax        = VK_RESOLVE_MODE_MAX_BIT,
3885 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
3886     eExternalFormatDownsampleANDROID = VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID
3887 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
3888   };
3889   using ResolveModeFlagBitsKHR = ResolveModeFlagBits;
3890 
3891   using ResolveModeFlags    = Flags<ResolveModeFlagBits>;
3892   using ResolveModeFlagsKHR = ResolveModeFlags;
3893 
3894   template <>
3895   struct FlagTraits<ResolveModeFlagBits>
3896   {
3897     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
3898     static VULKAN_HPP_CONST_OR_CONSTEXPR ResolveModeFlags allFlags  = ResolveModeFlagBits::eNone | ResolveModeFlagBits::eSampleZero |
3899                                                                      ResolveModeFlagBits::eAverage | ResolveModeFlagBits::eMin | ResolveModeFlagBits::eMax
3900 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
3901                                                                      | ResolveModeFlagBits::eExternalFormatDownsampleANDROID
3902 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
3903       ;
3904   };
3905 
3906   enum class SamplerReductionMode
3907   {
3908     eWeightedAverage               = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
3909     eMin                           = VK_SAMPLER_REDUCTION_MODE_MIN,
3910     eMax                           = VK_SAMPLER_REDUCTION_MODE_MAX,
3911     eWeightedAverageRangeclampQCOM = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
3912   };
3913   using SamplerReductionModeEXT = SamplerReductionMode;
3914 
3915   enum class SemaphoreType
3916   {
3917     eBinary   = VK_SEMAPHORE_TYPE_BINARY,
3918     eTimeline = VK_SEMAPHORE_TYPE_TIMELINE
3919   };
3920   using SemaphoreTypeKHR = SemaphoreType;
3921 
3922   enum class SemaphoreWaitFlagBits : VkSemaphoreWaitFlags
3923   {
3924     eAny = VK_SEMAPHORE_WAIT_ANY_BIT
3925   };
3926   using SemaphoreWaitFlagBitsKHR = SemaphoreWaitFlagBits;
3927 
3928   using SemaphoreWaitFlags    = Flags<SemaphoreWaitFlagBits>;
3929   using SemaphoreWaitFlagsKHR = SemaphoreWaitFlags;
3930 
3931   template <>
3932   struct FlagTraits<SemaphoreWaitFlagBits>
3933   {
3934     static VULKAN_HPP_CONST_OR_CONSTEXPR bool               isBitmask = true;
3935     static VULKAN_HPP_CONST_OR_CONSTEXPR SemaphoreWaitFlags allFlags  = SemaphoreWaitFlagBits::eAny;
3936   };
3937 
3938   //=== VK_VERSION_1_3 ===
3939 
3940   enum class PipelineCreationFeedbackFlagBits : VkPipelineCreationFeedbackFlags
3941   {
3942     eValid                       = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
3943     eApplicationPipelineCacheHit = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
3944     eBasePipelineAcceleration    = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT
3945   };
3946   using PipelineCreationFeedbackFlagBitsEXT = PipelineCreationFeedbackFlagBits;
3947 
3948   using PipelineCreationFeedbackFlags    = Flags<PipelineCreationFeedbackFlagBits>;
3949   using PipelineCreationFeedbackFlagsEXT = PipelineCreationFeedbackFlags;
3950 
3951   template <>
3952   struct FlagTraits<PipelineCreationFeedbackFlagBits>
3953   {
3954     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                          isBitmask = true;
3955     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineCreationFeedbackFlags allFlags  = PipelineCreationFeedbackFlagBits::eValid |
3956                                                                                   PipelineCreationFeedbackFlagBits::eApplicationPipelineCacheHit |
3957                                                                                   PipelineCreationFeedbackFlagBits::eBasePipelineAcceleration;
3958   };
3959 
3960   enum class ToolPurposeFlagBits : VkToolPurposeFlags
3961   {
3962     eValidation         = VK_TOOL_PURPOSE_VALIDATION_BIT,
3963     eProfiling          = VK_TOOL_PURPOSE_PROFILING_BIT,
3964     eTracing            = VK_TOOL_PURPOSE_TRACING_BIT,
3965     eAdditionalFeatures = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
3966     eModifyingFeatures  = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
3967     eDebugReportingEXT  = VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT,
3968     eDebugMarkersEXT    = VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT
3969   };
3970   using ToolPurposeFlagBitsEXT = ToolPurposeFlagBits;
3971 
3972   using ToolPurposeFlags    = Flags<ToolPurposeFlagBits>;
3973   using ToolPurposeFlagsEXT = ToolPurposeFlags;
3974 
3975   template <>
3976   struct FlagTraits<ToolPurposeFlagBits>
3977   {
3978     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
3979     static VULKAN_HPP_CONST_OR_CONSTEXPR ToolPurposeFlags allFlags =
3980       ToolPurposeFlagBits::eValidation | ToolPurposeFlagBits::eProfiling | ToolPurposeFlagBits::eTracing | ToolPurposeFlagBits::eAdditionalFeatures |
3981       ToolPurposeFlagBits::eModifyingFeatures | ToolPurposeFlagBits::eDebugReportingEXT | ToolPurposeFlagBits::eDebugMarkersEXT;
3982   };
3983 
3984   enum class PrivateDataSlotCreateFlagBits : VkPrivateDataSlotCreateFlags
3985   {
3986   };
3987   using PrivateDataSlotCreateFlagBitsEXT = PrivateDataSlotCreateFlagBits;
3988 
3989   using PrivateDataSlotCreateFlags    = Flags<PrivateDataSlotCreateFlagBits>;
3990   using PrivateDataSlotCreateFlagsEXT = PrivateDataSlotCreateFlags;
3991 
3992   template <>
3993   struct FlagTraits<PrivateDataSlotCreateFlagBits>
3994   {
3995     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
3996     static VULKAN_HPP_CONST_OR_CONSTEXPR PrivateDataSlotCreateFlags allFlags  = {};
3997   };
3998 
3999   enum class PipelineStageFlagBits2 : VkPipelineStageFlags2
4000   {
4001     eNone                         = VK_PIPELINE_STAGE_2_NONE,
4002     eTopOfPipe                    = VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT,
4003     eDrawIndirect                 = VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT,
4004     eVertexInput                  = VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT,
4005     eVertexShader                 = VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,
4006     eTessellationControlShader    = VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT,
4007     eTessellationEvaluationShader = VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT,
4008     eGeometryShader               = VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT,
4009     eFragmentShader               = VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,
4010     eEarlyFragmentTests           = VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT,
4011     eLateFragmentTests            = VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT,
4012     eColorAttachmentOutput        = VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT,
4013     eComputeShader                = VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT,
4014     eAllTransfer                  = VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT,
4015     eTransfer                     = VK_PIPELINE_STAGE_2_TRANSFER_BIT,
4016     eBottomOfPipe                 = VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT,
4017     eHost                         = VK_PIPELINE_STAGE_2_HOST_BIT,
4018     eAllGraphics                  = VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,
4019     eAllCommands                  = VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT,
4020     eCopy                         = VK_PIPELINE_STAGE_2_COPY_BIT,
4021     eResolve                      = VK_PIPELINE_STAGE_2_RESOLVE_BIT,
4022     eBlit                         = VK_PIPELINE_STAGE_2_BLIT_BIT,
4023     eClear                        = VK_PIPELINE_STAGE_2_CLEAR_BIT,
4024     eIndexInput                   = VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT,
4025     eVertexAttributeInput         = VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT,
4026     ePreRasterizationShaders      = VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT,
4027     eVideoDecodeKHR               = VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR,
4028 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4029     eVideoEncodeKHR = VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR,
4030 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4031     eTransformFeedbackEXT             = VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,
4032     eConditionalRenderingEXT          = VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT,
4033     eCommandPreprocessNV              = VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV,
4034     eFragmentShadingRateAttachmentKHR = VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
4035     eShadingRateImageNV               = VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV,
4036     eAccelerationStructureBuildKHR    = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
4037     eRayTracingShaderKHR              = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR,
4038     eRayTracingShaderNV               = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV,
4039     eAccelerationStructureBuildNV     = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
4040     eFragmentDensityProcessEXT        = VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT,
4041     eTaskShaderNV                     = VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV,
4042     eMeshShaderNV                     = VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV,
4043     eTaskShaderEXT                    = VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT,
4044     eMeshShaderEXT                    = VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT,
4045     eSubpassShaderHUAWEI              = VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI,
4046     eSubpassShadingHUAWEI             = VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI,
4047     eInvocationMaskHUAWEI             = VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI,
4048     eAccelerationStructureCopyKHR     = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR,
4049     eMicromapBuildEXT                 = VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT,
4050     eClusterCullingShaderHUAWEI       = VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI,
4051     eOpticalFlowNV                    = VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
4052   };
4053   using PipelineStageFlagBits2KHR = PipelineStageFlagBits2;
4054 
4055   using PipelineStageFlags2    = Flags<PipelineStageFlagBits2>;
4056   using PipelineStageFlags2KHR = PipelineStageFlags2;
4057 
4058   template <>
4059   struct FlagTraits<PipelineStageFlagBits2>
4060   {
4061     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                isBitmask = true;
4062     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineStageFlags2 allFlags =
4063       PipelineStageFlagBits2::eNone | PipelineStageFlagBits2::eTopOfPipe | PipelineStageFlagBits2::eDrawIndirect | PipelineStageFlagBits2::eVertexInput |
4064       PipelineStageFlagBits2::eVertexShader | PipelineStageFlagBits2::eTessellationControlShader | PipelineStageFlagBits2::eTessellationEvaluationShader |
4065       PipelineStageFlagBits2::eGeometryShader | PipelineStageFlagBits2::eFragmentShader | PipelineStageFlagBits2::eEarlyFragmentTests |
4066       PipelineStageFlagBits2::eLateFragmentTests | PipelineStageFlagBits2::eColorAttachmentOutput | PipelineStageFlagBits2::eComputeShader |
4067       PipelineStageFlagBits2::eAllTransfer | PipelineStageFlagBits2::eBottomOfPipe | PipelineStageFlagBits2::eHost | PipelineStageFlagBits2::eAllGraphics |
4068       PipelineStageFlagBits2::eAllCommands | PipelineStageFlagBits2::eCopy | PipelineStageFlagBits2::eResolve | PipelineStageFlagBits2::eBlit |
4069       PipelineStageFlagBits2::eClear | PipelineStageFlagBits2::eIndexInput | PipelineStageFlagBits2::eVertexAttributeInput |
4070       PipelineStageFlagBits2::ePreRasterizationShaders | PipelineStageFlagBits2::eVideoDecodeKHR
4071 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4072       | PipelineStageFlagBits2::eVideoEncodeKHR
4073 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4074       | PipelineStageFlagBits2::eTransformFeedbackEXT | PipelineStageFlagBits2::eConditionalRenderingEXT | PipelineStageFlagBits2::eCommandPreprocessNV |
4075       PipelineStageFlagBits2::eFragmentShadingRateAttachmentKHR | PipelineStageFlagBits2::eAccelerationStructureBuildKHR |
4076       PipelineStageFlagBits2::eRayTracingShaderKHR | PipelineStageFlagBits2::eFragmentDensityProcessEXT | PipelineStageFlagBits2::eTaskShaderEXT |
4077       PipelineStageFlagBits2::eMeshShaderEXT | PipelineStageFlagBits2::eSubpassShaderHUAWEI | PipelineStageFlagBits2::eInvocationMaskHUAWEI |
4078       PipelineStageFlagBits2::eAccelerationStructureCopyKHR | PipelineStageFlagBits2::eMicromapBuildEXT | PipelineStageFlagBits2::eClusterCullingShaderHUAWEI |
4079       PipelineStageFlagBits2::eOpticalFlowNV;
4080   };
4081 
4082   enum class AccessFlagBits2 : VkAccessFlags2
4083   {
4084     eNone                        = VK_ACCESS_2_NONE,
4085     eIndirectCommandRead         = VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT,
4086     eIndexRead                   = VK_ACCESS_2_INDEX_READ_BIT,
4087     eVertexAttributeRead         = VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT,
4088     eUniformRead                 = VK_ACCESS_2_UNIFORM_READ_BIT,
4089     eInputAttachmentRead         = VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT,
4090     eShaderRead                  = VK_ACCESS_2_SHADER_READ_BIT,
4091     eShaderWrite                 = VK_ACCESS_2_SHADER_WRITE_BIT,
4092     eColorAttachmentRead         = VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT,
4093     eColorAttachmentWrite        = VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT,
4094     eDepthStencilAttachmentRead  = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
4095     eDepthStencilAttachmentWrite = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
4096     eTransferRead                = VK_ACCESS_2_TRANSFER_READ_BIT,
4097     eTransferWrite               = VK_ACCESS_2_TRANSFER_WRITE_BIT,
4098     eHostRead                    = VK_ACCESS_2_HOST_READ_BIT,
4099     eHostWrite                   = VK_ACCESS_2_HOST_WRITE_BIT,
4100     eMemoryRead                  = VK_ACCESS_2_MEMORY_READ_BIT,
4101     eMemoryWrite                 = VK_ACCESS_2_MEMORY_WRITE_BIT,
4102     eShaderSampledRead           = VK_ACCESS_2_SHADER_SAMPLED_READ_BIT,
4103     eShaderStorageRead           = VK_ACCESS_2_SHADER_STORAGE_READ_BIT,
4104     eShaderStorageWrite          = VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT,
4105     eVideoDecodeReadKHR          = VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR,
4106     eVideoDecodeWriteKHR         = VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,
4107 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4108     eVideoEncodeReadKHR  = VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,
4109     eVideoEncodeWriteKHR = VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,
4110 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4111     eTransformFeedbackWriteEXT            = VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
4112     eTransformFeedbackCounterReadEXT      = VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,
4113     eTransformFeedbackCounterWriteEXT     = VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
4114     eConditionalRenderingReadEXT          = VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT,
4115     eCommandPreprocessReadNV              = VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV,
4116     eCommandPreprocessWriteNV             = VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV,
4117     eFragmentShadingRateAttachmentReadKHR = VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
4118     eShadingRateImageReadNV               = VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV,
4119     eAccelerationStructureReadKHR         = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,
4120     eAccelerationStructureWriteKHR        = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
4121     eAccelerationStructureReadNV          = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV,
4122     eAccelerationStructureWriteNV         = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
4123     eFragmentDensityMapReadEXT            = VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,
4124     eColorAttachmentReadNoncoherentEXT    = VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
4125     eDescriptorBufferReadEXT              = VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT,
4126     eInvocationMaskReadHUAWEI             = VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI,
4127     eShaderBindingTableReadKHR            = VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR,
4128     eMicromapReadEXT                      = VK_ACCESS_2_MICROMAP_READ_BIT_EXT,
4129     eMicromapWriteEXT                     = VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT,
4130     eOpticalFlowReadNV                    = VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV,
4131     eOpticalFlowWriteNV                   = VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV
4132   };
4133   using AccessFlagBits2KHR = AccessFlagBits2;
4134 
4135   using AccessFlags2    = Flags<AccessFlagBits2>;
4136   using AccessFlags2KHR = AccessFlags2;
4137 
4138   template <>
4139   struct FlagTraits<AccessFlagBits2>
4140   {
4141     static VULKAN_HPP_CONST_OR_CONSTEXPR bool         isBitmask = true;
4142     static VULKAN_HPP_CONST_OR_CONSTEXPR AccessFlags2 allFlags =
4143       AccessFlagBits2::eNone | AccessFlagBits2::eIndirectCommandRead | AccessFlagBits2::eIndexRead | AccessFlagBits2::eVertexAttributeRead |
4144       AccessFlagBits2::eUniformRead | AccessFlagBits2::eInputAttachmentRead | AccessFlagBits2::eShaderRead | AccessFlagBits2::eShaderWrite |
4145       AccessFlagBits2::eColorAttachmentRead | AccessFlagBits2::eColorAttachmentWrite | AccessFlagBits2::eDepthStencilAttachmentRead |
4146       AccessFlagBits2::eDepthStencilAttachmentWrite | AccessFlagBits2::eTransferRead | AccessFlagBits2::eTransferWrite | AccessFlagBits2::eHostRead |
4147       AccessFlagBits2::eHostWrite | AccessFlagBits2::eMemoryRead | AccessFlagBits2::eMemoryWrite | AccessFlagBits2::eShaderSampledRead |
4148       AccessFlagBits2::eShaderStorageRead | AccessFlagBits2::eShaderStorageWrite | AccessFlagBits2::eVideoDecodeReadKHR | AccessFlagBits2::eVideoDecodeWriteKHR
4149 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4150       | AccessFlagBits2::eVideoEncodeReadKHR | AccessFlagBits2::eVideoEncodeWriteKHR
4151 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4152       | AccessFlagBits2::eTransformFeedbackWriteEXT | AccessFlagBits2::eTransformFeedbackCounterReadEXT | AccessFlagBits2::eTransformFeedbackCounterWriteEXT |
4153       AccessFlagBits2::eConditionalRenderingReadEXT | AccessFlagBits2::eCommandPreprocessReadNV | AccessFlagBits2::eCommandPreprocessWriteNV |
4154       AccessFlagBits2::eFragmentShadingRateAttachmentReadKHR | AccessFlagBits2::eAccelerationStructureReadKHR |
4155       AccessFlagBits2::eAccelerationStructureWriteKHR | AccessFlagBits2::eFragmentDensityMapReadEXT | AccessFlagBits2::eColorAttachmentReadNoncoherentEXT |
4156       AccessFlagBits2::eDescriptorBufferReadEXT | AccessFlagBits2::eInvocationMaskReadHUAWEI | AccessFlagBits2::eShaderBindingTableReadKHR |
4157       AccessFlagBits2::eMicromapReadEXT | AccessFlagBits2::eMicromapWriteEXT | AccessFlagBits2::eOpticalFlowReadNV | AccessFlagBits2::eOpticalFlowWriteNV;
4158   };
4159 
4160   enum class SubmitFlagBits : VkSubmitFlags
4161   {
4162     eProtected = VK_SUBMIT_PROTECTED_BIT
4163   };
4164   using SubmitFlagBitsKHR = SubmitFlagBits;
4165 
4166   using SubmitFlags    = Flags<SubmitFlagBits>;
4167   using SubmitFlagsKHR = SubmitFlags;
4168 
4169   template <>
4170   struct FlagTraits<SubmitFlagBits>
4171   {
4172     static VULKAN_HPP_CONST_OR_CONSTEXPR bool        isBitmask = true;
4173     static VULKAN_HPP_CONST_OR_CONSTEXPR SubmitFlags allFlags  = SubmitFlagBits::eProtected;
4174   };
4175 
4176   enum class RenderingFlagBits : VkRenderingFlags
4177   {
4178     eContentsSecondaryCommandBuffers = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
4179     eSuspending                      = VK_RENDERING_SUSPENDING_BIT,
4180     eResuming                        = VK_RENDERING_RESUMING_BIT,
4181     eEnableLegacyDitheringEXT        = VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT
4182   };
4183   using RenderingFlagBitsKHR = RenderingFlagBits;
4184 
4185   using RenderingFlags    = Flags<RenderingFlagBits>;
4186   using RenderingFlagsKHR = RenderingFlags;
4187 
4188   template <>
4189   struct FlagTraits<RenderingFlagBits>
4190   {
4191     static VULKAN_HPP_CONST_OR_CONSTEXPR bool           isBitmask = true;
4192     static VULKAN_HPP_CONST_OR_CONSTEXPR RenderingFlags allFlags  = RenderingFlagBits::eContentsSecondaryCommandBuffers | RenderingFlagBits::eSuspending |
4193                                                                    RenderingFlagBits::eResuming | RenderingFlagBits::eEnableLegacyDitheringEXT;
4194   };
4195 
4196   enum class FormatFeatureFlagBits2 : VkFormatFeatureFlags2
4197   {
4198     eSampledImage                                            = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT,
4199     eStorageImage                                            = VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT,
4200     eStorageImageAtomic                                      = VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT,
4201     eUniformTexelBuffer                                      = VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT,
4202     eStorageTexelBuffer                                      = VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT,
4203     eStorageTexelBufferAtomic                                = VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,
4204     eVertexBuffer                                            = VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT,
4205     eColorAttachment                                         = VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT,
4206     eColorAttachmentBlend                                    = VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT,
4207     eDepthStencilAttachment                                  = VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT,
4208     eBlitSrc                                                 = VK_FORMAT_FEATURE_2_BLIT_SRC_BIT,
4209     eBlitDst                                                 = VK_FORMAT_FEATURE_2_BLIT_DST_BIT,
4210     eSampledImageFilterLinear                                = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT,
4211     eSampledImageFilterCubic                                 = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT,
4212     eSampledImageFilterCubicEXT                              = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
4213     eTransferSrc                                             = VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT,
4214     eTransferDst                                             = VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT,
4215     eSampledImageFilterMinmax                                = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
4216     eMidpointChromaSamples                                   = VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT,
4217     eSampledImageYcbcrConversionLinearFilter                 = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
4218     eSampledImageYcbcrConversionSeparateReconstructionFilter = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
4219     eSampledImageYcbcrConversionChromaReconstructionExplicit = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
4220     eSampledImageYcbcrConversionChromaReconstructionExplicitForceable =
4221       VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
4222     eDisjoint                             = VK_FORMAT_FEATURE_2_DISJOINT_BIT,
4223     eCositedChromaSamples                 = VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT,
4224     eStorageReadWithoutFormat             = VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT,
4225     eStorageWriteWithoutFormat            = VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT,
4226     eSampledImageDepthComparison          = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT,
4227     eVideoDecodeOutputKHR                 = VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR,
4228     eVideoDecodeDpbKHR                    = VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR,
4229     eAccelerationStructureVertexBufferKHR = VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,
4230     eFragmentDensityMapEXT                = VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT,
4231     eFragmentShadingRateAttachmentKHR     = VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
4232     eHostImageTransferEXT                 = VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT,
4233 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4234     eVideoEncodeInputKHR = VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR,
4235     eVideoEncodeDpbKHR   = VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR,
4236 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4237     eLinearColorAttachmentNV = VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV,
4238     eWeightImageQCOM         = VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM,
4239     eWeightSampledImageQCOM  = VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM,
4240     eBlockMatchingQCOM       = VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM,
4241     eBoxFilterSampledQCOM    = VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM,
4242     eOpticalFlowImageNV      = VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV,
4243     eOpticalFlowVectorNV     = VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV,
4244     eOpticalFlowCostNV       = VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV
4245   };
4246   using FormatFeatureFlagBits2KHR = FormatFeatureFlagBits2;
4247 
4248   using FormatFeatureFlags2    = Flags<FormatFeatureFlagBits2>;
4249   using FormatFeatureFlags2KHR = FormatFeatureFlags2;
4250 
4251   template <>
4252   struct FlagTraits<FormatFeatureFlagBits2>
4253   {
4254     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                isBitmask = true;
4255     static VULKAN_HPP_CONST_OR_CONSTEXPR FormatFeatureFlags2 allFlags =
4256       FormatFeatureFlagBits2::eSampledImage | FormatFeatureFlagBits2::eStorageImage | FormatFeatureFlagBits2::eStorageImageAtomic |
4257       FormatFeatureFlagBits2::eUniformTexelBuffer | FormatFeatureFlagBits2::eStorageTexelBuffer | FormatFeatureFlagBits2::eStorageTexelBufferAtomic |
4258       FormatFeatureFlagBits2::eVertexBuffer | FormatFeatureFlagBits2::eColorAttachment | FormatFeatureFlagBits2::eColorAttachmentBlend |
4259       FormatFeatureFlagBits2::eDepthStencilAttachment | FormatFeatureFlagBits2::eBlitSrc | FormatFeatureFlagBits2::eBlitDst |
4260       FormatFeatureFlagBits2::eSampledImageFilterLinear | FormatFeatureFlagBits2::eSampledImageFilterCubic | FormatFeatureFlagBits2::eTransferSrc |
4261       FormatFeatureFlagBits2::eTransferDst | FormatFeatureFlagBits2::eSampledImageFilterMinmax | FormatFeatureFlagBits2::eMidpointChromaSamples |
4262       FormatFeatureFlagBits2::eSampledImageYcbcrConversionLinearFilter | FormatFeatureFlagBits2::eSampledImageYcbcrConversionSeparateReconstructionFilter |
4263       FormatFeatureFlagBits2::eSampledImageYcbcrConversionChromaReconstructionExplicit |
4264       FormatFeatureFlagBits2::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable | FormatFeatureFlagBits2::eDisjoint |
4265       FormatFeatureFlagBits2::eCositedChromaSamples | FormatFeatureFlagBits2::eStorageReadWithoutFormat | FormatFeatureFlagBits2::eStorageWriteWithoutFormat |
4266       FormatFeatureFlagBits2::eSampledImageDepthComparison | FormatFeatureFlagBits2::eVideoDecodeOutputKHR | FormatFeatureFlagBits2::eVideoDecodeDpbKHR |
4267       FormatFeatureFlagBits2::eAccelerationStructureVertexBufferKHR | FormatFeatureFlagBits2::eFragmentDensityMapEXT |
4268       FormatFeatureFlagBits2::eFragmentShadingRateAttachmentKHR | FormatFeatureFlagBits2::eHostImageTransferEXT
4269 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4270       | FormatFeatureFlagBits2::eVideoEncodeInputKHR | FormatFeatureFlagBits2::eVideoEncodeDpbKHR
4271 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4272       | FormatFeatureFlagBits2::eLinearColorAttachmentNV | FormatFeatureFlagBits2::eWeightImageQCOM | FormatFeatureFlagBits2::eWeightSampledImageQCOM |
4273       FormatFeatureFlagBits2::eBlockMatchingQCOM | FormatFeatureFlagBits2::eBoxFilterSampledQCOM | FormatFeatureFlagBits2::eOpticalFlowImageNV |
4274       FormatFeatureFlagBits2::eOpticalFlowVectorNV | FormatFeatureFlagBits2::eOpticalFlowCostNV;
4275   };
4276 
4277   //=== VK_KHR_surface ===
4278 
4279   enum class SurfaceTransformFlagBitsKHR : VkSurfaceTransformFlagsKHR
4280   {
4281     eIdentity                  = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,
4282     eRotate90                  = VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,
4283     eRotate180                 = VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,
4284     eRotate270                 = VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,
4285     eHorizontalMirror          = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,
4286     eHorizontalMirrorRotate90  = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,
4287     eHorizontalMirrorRotate180 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR,
4288     eHorizontalMirrorRotate270 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR,
4289     eInherit                   = VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR
4290   };
4291 
4292   using SurfaceTransformFlagsKHR = Flags<SurfaceTransformFlagBitsKHR>;
4293 
4294   template <>
4295   struct FlagTraits<SurfaceTransformFlagBitsKHR>
4296   {
4297     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                     isBitmask = true;
4298     static VULKAN_HPP_CONST_OR_CONSTEXPR SurfaceTransformFlagsKHR allFlags =
4299       SurfaceTransformFlagBitsKHR::eIdentity | SurfaceTransformFlagBitsKHR::eRotate90 | SurfaceTransformFlagBitsKHR::eRotate180 |
4300       SurfaceTransformFlagBitsKHR::eRotate270 | SurfaceTransformFlagBitsKHR::eHorizontalMirror | SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 |
4301       SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 | SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 | SurfaceTransformFlagBitsKHR::eInherit;
4302   };
4303 
4304   enum class PresentModeKHR
4305   {
4306     eImmediate               = VK_PRESENT_MODE_IMMEDIATE_KHR,
4307     eMailbox                 = VK_PRESENT_MODE_MAILBOX_KHR,
4308     eFifo                    = VK_PRESENT_MODE_FIFO_KHR,
4309     eFifoRelaxed             = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
4310     eSharedDemandRefresh     = VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR,
4311     eSharedContinuousRefresh = VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR
4312   };
4313 
4314   enum class ColorSpaceKHR
4315   {
4316     eSrgbNonlinear             = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
4317     eVkColorspaceSrgbNonlinear = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
4318     eDisplayP3NonlinearEXT     = VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT,
4319     eExtendedSrgbLinearEXT     = VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT,
4320     eDisplayP3LinearEXT        = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
4321     eDciP3NonlinearEXT         = VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT,
4322     eBt709LinearEXT            = VK_COLOR_SPACE_BT709_LINEAR_EXT,
4323     eBt709NonlinearEXT         = VK_COLOR_SPACE_BT709_NONLINEAR_EXT,
4324     eBt2020LinearEXT           = VK_COLOR_SPACE_BT2020_LINEAR_EXT,
4325     eHdr10St2084EXT            = VK_COLOR_SPACE_HDR10_ST2084_EXT,
4326     eDolbyvisionEXT            = VK_COLOR_SPACE_DOLBYVISION_EXT,
4327     eHdr10HlgEXT               = VK_COLOR_SPACE_HDR10_HLG_EXT,
4328     eAdobergbLinearEXT         = VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT,
4329     eAdobergbNonlinearEXT      = VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT,
4330     ePassThroughEXT            = VK_COLOR_SPACE_PASS_THROUGH_EXT,
4331     eExtendedSrgbNonlinearEXT  = VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT,
4332     eDciP3LinearEXT            = VK_COLOR_SPACE_DCI_P3_LINEAR_EXT,
4333     eDisplayNativeAMD          = VK_COLOR_SPACE_DISPLAY_NATIVE_AMD
4334   };
4335 
4336   enum class CompositeAlphaFlagBitsKHR : VkCompositeAlphaFlagsKHR
4337   {
4338     eOpaque         = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,
4339     ePreMultiplied  = VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,
4340     ePostMultiplied = VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,
4341     eInherit        = VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR
4342   };
4343 
4344   using CompositeAlphaFlagsKHR = Flags<CompositeAlphaFlagBitsKHR>;
4345 
4346   template <>
4347   struct FlagTraits<CompositeAlphaFlagBitsKHR>
4348   {
4349     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
4350     static VULKAN_HPP_CONST_OR_CONSTEXPR CompositeAlphaFlagsKHR allFlags  = CompositeAlphaFlagBitsKHR::eOpaque | CompositeAlphaFlagBitsKHR::ePreMultiplied |
4351                                                                            CompositeAlphaFlagBitsKHR::ePostMultiplied | CompositeAlphaFlagBitsKHR::eInherit;
4352   };
4353 
4354   //=== VK_KHR_swapchain ===
4355 
4356   enum class SwapchainCreateFlagBitsKHR : VkSwapchainCreateFlagsKHR
4357   {
4358     eSplitInstanceBindRegions    = VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
4359     eProtected                   = VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,
4360     eMutableFormat               = VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR,
4361     eDeferredMemoryAllocationEXT = VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT
4362   };
4363 
4364   using SwapchainCreateFlagsKHR = Flags<SwapchainCreateFlagBitsKHR>;
4365 
4366   template <>
4367   struct FlagTraits<SwapchainCreateFlagBitsKHR>
4368   {
4369     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                    isBitmask = true;
4370     static VULKAN_HPP_CONST_OR_CONSTEXPR SwapchainCreateFlagsKHR allFlags =
4371       SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions | SwapchainCreateFlagBitsKHR::eProtected | SwapchainCreateFlagBitsKHR::eMutableFormat |
4372       SwapchainCreateFlagBitsKHR::eDeferredMemoryAllocationEXT;
4373   };
4374 
4375   enum class DeviceGroupPresentModeFlagBitsKHR : VkDeviceGroupPresentModeFlagsKHR
4376   {
4377     eLocal            = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,
4378     eRemote           = VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,
4379     eSum              = VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,
4380     eLocalMultiDevice = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR
4381   };
4382 
4383   using DeviceGroupPresentModeFlagsKHR = Flags<DeviceGroupPresentModeFlagBitsKHR>;
4384 
4385   template <>
4386   struct FlagTraits<DeviceGroupPresentModeFlagBitsKHR>
4387   {
4388     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                           isBitmask = true;
4389     static VULKAN_HPP_CONST_OR_CONSTEXPR DeviceGroupPresentModeFlagsKHR allFlags =
4390       DeviceGroupPresentModeFlagBitsKHR::eLocal | DeviceGroupPresentModeFlagBitsKHR::eRemote | DeviceGroupPresentModeFlagBitsKHR::eSum |
4391       DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice;
4392   };
4393 
4394   //=== VK_KHR_display ===
4395 
4396   enum class DisplayPlaneAlphaFlagBitsKHR : VkDisplayPlaneAlphaFlagsKHR
4397   {
4398     eOpaque                = VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,
4399     eGlobal                = VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,
4400     ePerPixel              = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,
4401     ePerPixelPremultiplied = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR
4402   };
4403 
4404   using DisplayPlaneAlphaFlagsKHR = Flags<DisplayPlaneAlphaFlagBitsKHR>;
4405 
4406   template <>
4407   struct FlagTraits<DisplayPlaneAlphaFlagBitsKHR>
4408   {
4409     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                      isBitmask = true;
4410     static VULKAN_HPP_CONST_OR_CONSTEXPR DisplayPlaneAlphaFlagsKHR allFlags  = DisplayPlaneAlphaFlagBitsKHR::eOpaque | DisplayPlaneAlphaFlagBitsKHR::eGlobal |
4411                                                                               DisplayPlaneAlphaFlagBitsKHR::ePerPixel |
4412                                                                               DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied;
4413   };
4414 
4415   enum class DisplayModeCreateFlagBitsKHR : VkDisplayModeCreateFlagsKHR
4416   {
4417   };
4418 
4419   using DisplayModeCreateFlagsKHR = Flags<DisplayModeCreateFlagBitsKHR>;
4420 
4421   template <>
4422   struct FlagTraits<DisplayModeCreateFlagBitsKHR>
4423   {
4424     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                      isBitmask = true;
4425     static VULKAN_HPP_CONST_OR_CONSTEXPR DisplayModeCreateFlagsKHR allFlags  = {};
4426   };
4427 
4428   enum class DisplaySurfaceCreateFlagBitsKHR : VkDisplaySurfaceCreateFlagsKHR
4429   {
4430   };
4431 
4432   using DisplaySurfaceCreateFlagsKHR = Flags<DisplaySurfaceCreateFlagBitsKHR>;
4433 
4434   template <>
4435   struct FlagTraits<DisplaySurfaceCreateFlagBitsKHR>
4436   {
4437     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                         isBitmask = true;
4438     static VULKAN_HPP_CONST_OR_CONSTEXPR DisplaySurfaceCreateFlagsKHR allFlags  = {};
4439   };
4440 
4441 #if defined( VK_USE_PLATFORM_XLIB_KHR )
4442   //=== VK_KHR_xlib_surface ===
4443 
4444   enum class XlibSurfaceCreateFlagBitsKHR : VkXlibSurfaceCreateFlagsKHR
4445   {
4446   };
4447 
4448   using XlibSurfaceCreateFlagsKHR = Flags<XlibSurfaceCreateFlagBitsKHR>;
4449 
4450   template <>
4451   struct FlagTraits<XlibSurfaceCreateFlagBitsKHR>
4452   {
4453     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                      isBitmask = true;
4454     static VULKAN_HPP_CONST_OR_CONSTEXPR XlibSurfaceCreateFlagsKHR allFlags  = {};
4455   };
4456 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
4457 
4458 #if defined( VK_USE_PLATFORM_XCB_KHR )
4459   //=== VK_KHR_xcb_surface ===
4460 
4461   enum class XcbSurfaceCreateFlagBitsKHR : VkXcbSurfaceCreateFlagsKHR
4462   {
4463   };
4464 
4465   using XcbSurfaceCreateFlagsKHR = Flags<XcbSurfaceCreateFlagBitsKHR>;
4466 
4467   template <>
4468   struct FlagTraits<XcbSurfaceCreateFlagBitsKHR>
4469   {
4470     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                     isBitmask = true;
4471     static VULKAN_HPP_CONST_OR_CONSTEXPR XcbSurfaceCreateFlagsKHR allFlags  = {};
4472   };
4473 #endif /*VK_USE_PLATFORM_XCB_KHR*/
4474 
4475 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
4476   //=== VK_KHR_wayland_surface ===
4477 
4478   enum class WaylandSurfaceCreateFlagBitsKHR : VkWaylandSurfaceCreateFlagsKHR
4479   {
4480   };
4481 
4482   using WaylandSurfaceCreateFlagsKHR = Flags<WaylandSurfaceCreateFlagBitsKHR>;
4483 
4484   template <>
4485   struct FlagTraits<WaylandSurfaceCreateFlagBitsKHR>
4486   {
4487     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                         isBitmask = true;
4488     static VULKAN_HPP_CONST_OR_CONSTEXPR WaylandSurfaceCreateFlagsKHR allFlags  = {};
4489   };
4490 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
4491 
4492 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
4493   //=== VK_KHR_android_surface ===
4494 
4495   enum class AndroidSurfaceCreateFlagBitsKHR : VkAndroidSurfaceCreateFlagsKHR
4496   {
4497   };
4498 
4499   using AndroidSurfaceCreateFlagsKHR = Flags<AndroidSurfaceCreateFlagBitsKHR>;
4500 
4501   template <>
4502   struct FlagTraits<AndroidSurfaceCreateFlagBitsKHR>
4503   {
4504     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                         isBitmask = true;
4505     static VULKAN_HPP_CONST_OR_CONSTEXPR AndroidSurfaceCreateFlagsKHR allFlags  = {};
4506   };
4507 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
4508 
4509 #if defined( VK_USE_PLATFORM_WIN32_KHR )
4510   //=== VK_KHR_win32_surface ===
4511 
4512   enum class Win32SurfaceCreateFlagBitsKHR : VkWin32SurfaceCreateFlagsKHR
4513   {
4514   };
4515 
4516   using Win32SurfaceCreateFlagsKHR = Flags<Win32SurfaceCreateFlagBitsKHR>;
4517 
4518   template <>
4519   struct FlagTraits<Win32SurfaceCreateFlagBitsKHR>
4520   {
4521     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
4522     static VULKAN_HPP_CONST_OR_CONSTEXPR Win32SurfaceCreateFlagsKHR allFlags  = {};
4523   };
4524 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
4525 
4526   //=== VK_EXT_debug_report ===
4527 
4528   enum class DebugReportFlagBitsEXT : VkDebugReportFlagsEXT
4529   {
4530     eInformation        = VK_DEBUG_REPORT_INFORMATION_BIT_EXT,
4531     eWarning            = VK_DEBUG_REPORT_WARNING_BIT_EXT,
4532     ePerformanceWarning = VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,
4533     eError              = VK_DEBUG_REPORT_ERROR_BIT_EXT,
4534     eDebug              = VK_DEBUG_REPORT_DEBUG_BIT_EXT
4535   };
4536 
4537   using DebugReportFlagsEXT = Flags<DebugReportFlagBitsEXT>;
4538 
4539   template <>
4540   struct FlagTraits<DebugReportFlagBitsEXT>
4541   {
4542     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                isBitmask = true;
4543     static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportFlagsEXT allFlags  = DebugReportFlagBitsEXT::eInformation | DebugReportFlagBitsEXT::eWarning |
4544                                                                         DebugReportFlagBitsEXT::ePerformanceWarning | DebugReportFlagBitsEXT::eError |
4545                                                                         DebugReportFlagBitsEXT::eDebug;
4546   };
4547 
4548   enum class DebugReportObjectTypeEXT
4549   {
4550     eUnknown                     = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
4551     eInstance                    = VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
4552     ePhysicalDevice              = VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
4553     eDevice                      = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
4554     eQueue                       = VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT,
4555     eSemaphore                   = VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT,
4556     eCommandBuffer               = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
4557     eFence                       = VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT,
4558     eDeviceMemory                = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT,
4559     eBuffer                      = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT,
4560     eImage                       = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,
4561     eEvent                       = VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT,
4562     eQueryPool                   = VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT,
4563     eBufferView                  = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT,
4564     eImageView                   = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT,
4565     eShaderModule                = VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT,
4566     ePipelineCache               = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT,
4567     ePipelineLayout              = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT,
4568     eRenderPass                  = VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT,
4569     ePipeline                    = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT,
4570     eDescriptorSetLayout         = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT,
4571     eSampler                     = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT,
4572     eDescriptorPool              = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT,
4573     eDescriptorSet               = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT,
4574     eFramebuffer                 = VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT,
4575     eCommandPool                 = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT,
4576     eSurfaceKHR                  = VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT,
4577     eSwapchainKHR                = VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT,
4578     eDebugReportCallbackEXT      = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
4579     eDebugReport                 = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT,
4580     eDisplayKHR                  = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT,
4581     eDisplayModeKHR              = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT,
4582     eValidationCacheEXT          = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
4583     eValidationCache             = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT,
4584     eSamplerYcbcrConversion      = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
4585     eDescriptorUpdateTemplate    = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
4586     eCuModuleNVX                 = VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT,
4587     eCuFunctionNVX               = VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT,
4588     eDescriptorUpdateTemplateKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT,
4589     eAccelerationStructureKHR    = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT,
4590     eSamplerYcbcrConversionKHR   = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT,
4591     eAccelerationStructureNV     = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT,
4592 #if defined( VK_USE_PLATFORM_FUCHSIA )
4593     eBufferCollectionFUCHSIA = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT
4594 #endif /*VK_USE_PLATFORM_FUCHSIA*/
4595   };
4596 
4597   //=== VK_AMD_rasterization_order ===
4598 
4599   enum class RasterizationOrderAMD
4600   {
4601     eStrict  = VK_RASTERIZATION_ORDER_STRICT_AMD,
4602     eRelaxed = VK_RASTERIZATION_ORDER_RELAXED_AMD
4603   };
4604 
4605   //=== VK_KHR_video_queue ===
4606 
4607   enum class VideoCodecOperationFlagBitsKHR : VkVideoCodecOperationFlagsKHR
4608   {
4609     eNone = VK_VIDEO_CODEC_OPERATION_NONE_KHR,
4610 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4611     eEncodeH264EXT = VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT,
4612     eEncodeH265EXT = VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT,
4613 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4614     eDecodeH264 = VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR,
4615     eDecodeH265 = VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR
4616   };
4617 
4618   using VideoCodecOperationFlagsKHR = Flags<VideoCodecOperationFlagBitsKHR>;
4619 
4620   template <>
4621   struct FlagTraits<VideoCodecOperationFlagBitsKHR>
4622   {
4623     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                        isBitmask = true;
4624     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoCodecOperationFlagsKHR allFlags =
4625       VideoCodecOperationFlagBitsKHR::eNone
4626 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4627       | VideoCodecOperationFlagBitsKHR::eEncodeH264EXT | VideoCodecOperationFlagBitsKHR::eEncodeH265EXT
4628 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4629       | VideoCodecOperationFlagBitsKHR::eDecodeH264 | VideoCodecOperationFlagBitsKHR::eDecodeH265;
4630   };
4631 
4632   enum class VideoChromaSubsamplingFlagBitsKHR : VkVideoChromaSubsamplingFlagsKHR
4633   {
4634     eInvalid    = VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR,
4635     eMonochrome = VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR,
4636     e420        = VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,
4637     e422        = VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR,
4638     e444        = VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR
4639   };
4640 
4641   using VideoChromaSubsamplingFlagsKHR = Flags<VideoChromaSubsamplingFlagBitsKHR>;
4642 
4643   template <>
4644   struct FlagTraits<VideoChromaSubsamplingFlagBitsKHR>
4645   {
4646     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                           isBitmask = true;
4647     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoChromaSubsamplingFlagsKHR allFlags =
4648       VideoChromaSubsamplingFlagBitsKHR::eInvalid | VideoChromaSubsamplingFlagBitsKHR::eMonochrome | VideoChromaSubsamplingFlagBitsKHR::e420 |
4649       VideoChromaSubsamplingFlagBitsKHR::e422 | VideoChromaSubsamplingFlagBitsKHR::e444;
4650   };
4651 
4652   enum class VideoComponentBitDepthFlagBitsKHR : VkVideoComponentBitDepthFlagsKHR
4653   {
4654     eInvalid = VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR,
4655     e8       = VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR,
4656     e10      = VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR,
4657     e12      = VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR
4658   };
4659 
4660   using VideoComponentBitDepthFlagsKHR = Flags<VideoComponentBitDepthFlagBitsKHR>;
4661 
4662   template <>
4663   struct FlagTraits<VideoComponentBitDepthFlagBitsKHR>
4664   {
4665     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                           isBitmask = true;
4666     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoComponentBitDepthFlagsKHR allFlags =
4667       VideoComponentBitDepthFlagBitsKHR::eInvalid | VideoComponentBitDepthFlagBitsKHR::e8 | VideoComponentBitDepthFlagBitsKHR::e10 |
4668       VideoComponentBitDepthFlagBitsKHR::e12;
4669   };
4670 
4671   enum class VideoCapabilityFlagBitsKHR : VkVideoCapabilityFlagsKHR
4672   {
4673     eProtectedContent        = VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR,
4674     eSeparateReferenceImages = VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR
4675   };
4676 
4677   using VideoCapabilityFlagsKHR = Flags<VideoCapabilityFlagBitsKHR>;
4678 
4679   template <>
4680   struct FlagTraits<VideoCapabilityFlagBitsKHR>
4681   {
4682     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                    isBitmask = true;
4683     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoCapabilityFlagsKHR allFlags =
4684       VideoCapabilityFlagBitsKHR::eProtectedContent | VideoCapabilityFlagBitsKHR::eSeparateReferenceImages;
4685   };
4686 
4687   enum class VideoSessionCreateFlagBitsKHR : VkVideoSessionCreateFlagsKHR
4688   {
4689     eProtectedContent = VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR,
4690 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4691     eAllowEncodeParameterOptimizations = VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR
4692 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4693   };
4694 
4695   using VideoSessionCreateFlagsKHR = Flags<VideoSessionCreateFlagBitsKHR>;
4696 
4697   template <>
4698   struct FlagTraits<VideoSessionCreateFlagBitsKHR>
4699   {
4700     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
4701     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoSessionCreateFlagsKHR allFlags  = VideoSessionCreateFlagBitsKHR::eProtectedContent
4702 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4703                                                                                | VideoSessionCreateFlagBitsKHR::eAllowEncodeParameterOptimizations
4704 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4705       ;
4706   };
4707 
4708   enum class VideoCodingControlFlagBitsKHR : VkVideoCodingControlFlagsKHR
4709   {
4710     eReset = VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR,
4711 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4712     eEncodeRateControl  = VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR,
4713     eEncodeQualityLevel = VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR
4714 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4715   };
4716 
4717   using VideoCodingControlFlagsKHR = Flags<VideoCodingControlFlagBitsKHR>;
4718 
4719   template <>
4720   struct FlagTraits<VideoCodingControlFlagBitsKHR>
4721   {
4722     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
4723     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoCodingControlFlagsKHR allFlags  = VideoCodingControlFlagBitsKHR::eReset
4724 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4725                                                                                | VideoCodingControlFlagBitsKHR::eEncodeRateControl |
4726                                                                                VideoCodingControlFlagBitsKHR::eEncodeQualityLevel
4727 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4728       ;
4729   };
4730 
4731   enum class QueryResultStatusKHR
4732   {
4733     eError    = VK_QUERY_RESULT_STATUS_ERROR_KHR,
4734     eNotReady = VK_QUERY_RESULT_STATUS_NOT_READY_KHR,
4735     eComplete = VK_QUERY_RESULT_STATUS_COMPLETE_KHR,
4736 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4737     eInsufficientBitstreamBufferRange = VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR
4738 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4739   };
4740 
4741   enum class VideoSessionParametersCreateFlagBitsKHR : VkVideoSessionParametersCreateFlagsKHR
4742   {
4743   };
4744 
4745   using VideoSessionParametersCreateFlagsKHR = Flags<VideoSessionParametersCreateFlagBitsKHR>;
4746 
4747   template <>
4748   struct FlagTraits<VideoSessionParametersCreateFlagBitsKHR>
4749   {
4750     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                 isBitmask = true;
4751     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoSessionParametersCreateFlagsKHR allFlags  = {};
4752   };
4753 
4754   enum class VideoBeginCodingFlagBitsKHR : VkVideoBeginCodingFlagsKHR
4755   {
4756   };
4757 
4758   using VideoBeginCodingFlagsKHR = Flags<VideoBeginCodingFlagBitsKHR>;
4759 
4760   template <>
4761   struct FlagTraits<VideoBeginCodingFlagBitsKHR>
4762   {
4763     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                     isBitmask = true;
4764     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoBeginCodingFlagsKHR allFlags  = {};
4765   };
4766 
4767   enum class VideoEndCodingFlagBitsKHR : VkVideoEndCodingFlagsKHR
4768   {
4769   };
4770 
4771   using VideoEndCodingFlagsKHR = Flags<VideoEndCodingFlagBitsKHR>;
4772 
4773   template <>
4774   struct FlagTraits<VideoEndCodingFlagBitsKHR>
4775   {
4776     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
4777     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEndCodingFlagsKHR allFlags  = {};
4778   };
4779 
4780   //=== VK_KHR_video_decode_queue ===
4781 
4782   enum class VideoDecodeCapabilityFlagBitsKHR : VkVideoDecodeCapabilityFlagsKHR
4783   {
4784     eDpbAndOutputCoincide = VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR,
4785     eDpbAndOutputDistinct = VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR
4786   };
4787 
4788   using VideoDecodeCapabilityFlagsKHR = Flags<VideoDecodeCapabilityFlagBitsKHR>;
4789 
4790   template <>
4791   struct FlagTraits<VideoDecodeCapabilityFlagBitsKHR>
4792   {
4793     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                          isBitmask = true;
4794     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoDecodeCapabilityFlagsKHR allFlags =
4795       VideoDecodeCapabilityFlagBitsKHR::eDpbAndOutputCoincide | VideoDecodeCapabilityFlagBitsKHR::eDpbAndOutputDistinct;
4796   };
4797 
4798   enum class VideoDecodeUsageFlagBitsKHR : VkVideoDecodeUsageFlagsKHR
4799   {
4800     eDefault     = VK_VIDEO_DECODE_USAGE_DEFAULT_KHR,
4801     eTranscoding = VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR,
4802     eOffline     = VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR,
4803     eStreaming   = VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR
4804   };
4805 
4806   using VideoDecodeUsageFlagsKHR = Flags<VideoDecodeUsageFlagBitsKHR>;
4807 
4808   template <>
4809   struct FlagTraits<VideoDecodeUsageFlagBitsKHR>
4810   {
4811     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                     isBitmask = true;
4812     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoDecodeUsageFlagsKHR allFlags = VideoDecodeUsageFlagBitsKHR::eDefault | VideoDecodeUsageFlagBitsKHR::eTranscoding |
4813                                                                              VideoDecodeUsageFlagBitsKHR::eOffline | VideoDecodeUsageFlagBitsKHR::eStreaming;
4814   };
4815 
4816   enum class VideoDecodeFlagBitsKHR : VkVideoDecodeFlagsKHR
4817   {
4818   };
4819 
4820   using VideoDecodeFlagsKHR = Flags<VideoDecodeFlagBitsKHR>;
4821 
4822   template <>
4823   struct FlagTraits<VideoDecodeFlagBitsKHR>
4824   {
4825     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                isBitmask = true;
4826     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoDecodeFlagsKHR allFlags  = {};
4827   };
4828 
4829   //=== VK_EXT_transform_feedback ===
4830 
4831   enum class PipelineRasterizationStateStreamCreateFlagBitsEXT : VkPipelineRasterizationStateStreamCreateFlagsEXT
4832   {
4833   };
4834 
4835   using PipelineRasterizationStateStreamCreateFlagsEXT = Flags<PipelineRasterizationStateStreamCreateFlagBitsEXT>;
4836 
4837   template <>
4838   struct FlagTraits<PipelineRasterizationStateStreamCreateFlagBitsEXT>
4839   {
4840     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                           isBitmask = true;
4841     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineRasterizationStateStreamCreateFlagsEXT allFlags  = {};
4842   };
4843 
4844 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4845   //=== VK_EXT_video_encode_h264 ===
4846 
4847   enum class VideoEncodeH264CapabilityFlagBitsEXT : VkVideoEncodeH264CapabilityFlagsEXT
4848   {
4849     eHrdCompliance                  = VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT,
4850     ePredictionWeightTableGenerated = VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_EXT,
4851     eRowUnalignedSlice              = VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT,
4852     eDifferentSliceType             = VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT,
4853     eBFrameInL0List                 = VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_EXT,
4854     eBFrameInL1List                 = VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT,
4855     ePerPictureTypeMinMaxQp         = VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_EXT,
4856     ePerSliceConstantQp             = VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_EXT,
4857     eGeneratePrefixNalu             = VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_EXT
4858   };
4859 
4860   using VideoEncodeH264CapabilityFlagsEXT = Flags<VideoEncodeH264CapabilityFlagBitsEXT>;
4861 
4862   template <>
4863   struct FlagTraits<VideoEncodeH264CapabilityFlagBitsEXT>
4864   {
4865     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                              isBitmask = true;
4866     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH264CapabilityFlagsEXT allFlags =
4867       VideoEncodeH264CapabilityFlagBitsEXT::eHrdCompliance | VideoEncodeH264CapabilityFlagBitsEXT::ePredictionWeightTableGenerated |
4868       VideoEncodeH264CapabilityFlagBitsEXT::eRowUnalignedSlice | VideoEncodeH264CapabilityFlagBitsEXT::eDifferentSliceType |
4869       VideoEncodeH264CapabilityFlagBitsEXT::eBFrameInL0List | VideoEncodeH264CapabilityFlagBitsEXT::eBFrameInL1List |
4870       VideoEncodeH264CapabilityFlagBitsEXT::ePerPictureTypeMinMaxQp | VideoEncodeH264CapabilityFlagBitsEXT::ePerSliceConstantQp |
4871       VideoEncodeH264CapabilityFlagBitsEXT::eGeneratePrefixNalu;
4872   };
4873 
4874   enum class VideoEncodeH264StdFlagBitsEXT : VkVideoEncodeH264StdFlagsEXT
4875   {
4876     eSeparateColorPlaneFlagSet          = VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_EXT,
4877     eQpprimeYZeroTransformBypassFlagSet = VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_EXT,
4878     eScalingMatrixPresentFlagSet        = VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_EXT,
4879     eChromaQpIndexOffset                = VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_EXT,
4880     eSecondChromaQpIndexOffset          = VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_EXT,
4881     ePicInitQpMinus26                   = VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_EXT,
4882     eWeightedPredFlagSet                = VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_EXT,
4883     eWeightedBipredIdcExplicit          = VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_EXT,
4884     eWeightedBipredIdcImplicit          = VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_EXT,
4885     eTransform8X8ModeFlagSet            = VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_EXT,
4886     eDirectSpatialMvPredFlagUnset       = VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_EXT,
4887     eEntropyCodingModeFlagUnset         = VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_EXT,
4888     eEntropyCodingModeFlagSet           = VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_EXT,
4889     eDirect8X8InferenceFlagUnset        = VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_EXT,
4890     eConstrainedIntraPredFlagSet        = VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_EXT,
4891     eDeblockingFilterDisabled           = VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_EXT,
4892     eDeblockingFilterEnabled            = VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_EXT,
4893     eDeblockingFilterPartial            = VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_EXT,
4894     eSliceQpDelta                       = VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_EXT,
4895     eDifferentSliceQpDelta              = VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_EXT
4896   };
4897 
4898   using VideoEncodeH264StdFlagsEXT = Flags<VideoEncodeH264StdFlagBitsEXT>;
4899 
4900   template <>
4901   struct FlagTraits<VideoEncodeH264StdFlagBitsEXT>
4902   {
4903     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
4904     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH264StdFlagsEXT allFlags =
4905       VideoEncodeH264StdFlagBitsEXT::eSeparateColorPlaneFlagSet | VideoEncodeH264StdFlagBitsEXT::eQpprimeYZeroTransformBypassFlagSet |
4906       VideoEncodeH264StdFlagBitsEXT::eScalingMatrixPresentFlagSet | VideoEncodeH264StdFlagBitsEXT::eChromaQpIndexOffset |
4907       VideoEncodeH264StdFlagBitsEXT::eSecondChromaQpIndexOffset | VideoEncodeH264StdFlagBitsEXT::ePicInitQpMinus26 |
4908       VideoEncodeH264StdFlagBitsEXT::eWeightedPredFlagSet | VideoEncodeH264StdFlagBitsEXT::eWeightedBipredIdcExplicit |
4909       VideoEncodeH264StdFlagBitsEXT::eWeightedBipredIdcImplicit | VideoEncodeH264StdFlagBitsEXT::eTransform8X8ModeFlagSet |
4910       VideoEncodeH264StdFlagBitsEXT::eDirectSpatialMvPredFlagUnset | VideoEncodeH264StdFlagBitsEXT::eEntropyCodingModeFlagUnset |
4911       VideoEncodeH264StdFlagBitsEXT::eEntropyCodingModeFlagSet | VideoEncodeH264StdFlagBitsEXT::eDirect8X8InferenceFlagUnset |
4912       VideoEncodeH264StdFlagBitsEXT::eConstrainedIntraPredFlagSet | VideoEncodeH264StdFlagBitsEXT::eDeblockingFilterDisabled |
4913       VideoEncodeH264StdFlagBitsEXT::eDeblockingFilterEnabled | VideoEncodeH264StdFlagBitsEXT::eDeblockingFilterPartial |
4914       VideoEncodeH264StdFlagBitsEXT::eSliceQpDelta | VideoEncodeH264StdFlagBitsEXT::eDifferentSliceQpDelta;
4915   };
4916 
4917   enum class VideoEncodeH264RateControlFlagBitsEXT : VkVideoEncodeH264RateControlFlagsEXT
4918   {
4919     eAttemptHrdCompliance       = VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_EXT,
4920     eRegularGop                 = VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_EXT,
4921     eReferencePatternFlat       = VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_EXT,
4922     eReferencePatternDyadic     = VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_EXT,
4923     eTemporalLayerPatternDyadic = VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_EXT
4924   };
4925 
4926   using VideoEncodeH264RateControlFlagsEXT = Flags<VideoEncodeH264RateControlFlagBitsEXT>;
4927 
4928   template <>
4929   struct FlagTraits<VideoEncodeH264RateControlFlagBitsEXT>
4930   {
4931     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                               isBitmask = true;
4932     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH264RateControlFlagsEXT allFlags =
4933       VideoEncodeH264RateControlFlagBitsEXT::eAttemptHrdCompliance | VideoEncodeH264RateControlFlagBitsEXT::eRegularGop |
4934       VideoEncodeH264RateControlFlagBitsEXT::eReferencePatternFlat | VideoEncodeH264RateControlFlagBitsEXT::eReferencePatternDyadic |
4935       VideoEncodeH264RateControlFlagBitsEXT::eTemporalLayerPatternDyadic;
4936   };
4937 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4938 
4939 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4940   //=== VK_EXT_video_encode_h265 ===
4941 
4942   enum class VideoEncodeH265CapabilityFlagBitsEXT : VkVideoEncodeH265CapabilityFlagsEXT
4943   {
4944     eHrdCompliance                  = VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT,
4945     ePredictionWeightTableGenerated = VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_EXT,
4946     eRowUnalignedSliceSegment       = VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT,
4947     eDifferentSliceSegmentType      = VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_EXT,
4948     eBFrameInL0List                 = VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_EXT,
4949     eBFrameInL1List                 = VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT,
4950     ePerPictureTypeMinMaxQp         = VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_EXT,
4951     ePerSliceSegmentConstantQp      = VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_EXT,
4952     eMultipleTilesPerSliceSegment   = VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_EXT,
4953     eMultipleSliceSegmentsPerTile   = VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_EXT
4954   };
4955 
4956   using VideoEncodeH265CapabilityFlagsEXT = Flags<VideoEncodeH265CapabilityFlagBitsEXT>;
4957 
4958   template <>
4959   struct FlagTraits<VideoEncodeH265CapabilityFlagBitsEXT>
4960   {
4961     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                              isBitmask = true;
4962     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH265CapabilityFlagsEXT allFlags =
4963       VideoEncodeH265CapabilityFlagBitsEXT::eHrdCompliance | VideoEncodeH265CapabilityFlagBitsEXT::ePredictionWeightTableGenerated |
4964       VideoEncodeH265CapabilityFlagBitsEXT::eRowUnalignedSliceSegment | VideoEncodeH265CapabilityFlagBitsEXT::eDifferentSliceSegmentType |
4965       VideoEncodeH265CapabilityFlagBitsEXT::eBFrameInL0List | VideoEncodeH265CapabilityFlagBitsEXT::eBFrameInL1List |
4966       VideoEncodeH265CapabilityFlagBitsEXT::ePerPictureTypeMinMaxQp | VideoEncodeH265CapabilityFlagBitsEXT::ePerSliceSegmentConstantQp |
4967       VideoEncodeH265CapabilityFlagBitsEXT::eMultipleTilesPerSliceSegment | VideoEncodeH265CapabilityFlagBitsEXT::eMultipleSliceSegmentsPerTile;
4968   };
4969 
4970   enum class VideoEncodeH265StdFlagBitsEXT : VkVideoEncodeH265StdFlagsEXT
4971   {
4972     eSeparateColorPlaneFlagSet              = VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_EXT,
4973     eSampleAdaptiveOffsetEnabledFlagSet     = VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_EXT,
4974     eScalingListDataPresentFlagSet          = VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_EXT,
4975     ePcmEnabledFlagSet                      = VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_EXT,
4976     eSpsTemporalMvpEnabledFlagSet           = VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_EXT,
4977     eInitQpMinus26                          = VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_EXT,
4978     eWeightedPredFlagSet                    = VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_EXT,
4979     eWeightedBipredFlagSet                  = VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_EXT,
4980     eLog2ParallelMergeLevelMinus2           = VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT,
4981     eSignDataHidingEnabledFlagSet           = VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_EXT,
4982     eTransformSkipEnabledFlagSet            = VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_EXT,
4983     eTransformSkipEnabledFlagUnset          = VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_EXT,
4984     ePpsSliceChromaQpOffsetsPresentFlagSet  = VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_EXT,
4985     eTransquantBypassEnabledFlagSet         = VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_EXT,
4986     eConstrainedIntraPredFlagSet            = VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_EXT,
4987     eEntropyCodingSyncEnabledFlagSet        = VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_EXT,
4988     eDeblockingFilterOverrideEnabledFlagSet = VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_EXT,
4989     eDependentSliceSegmentsEnabledFlagSet   = VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_EXT,
4990     eDependentSliceSegmentFlagSet           = VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_EXT,
4991     eSliceQpDelta                           = VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_EXT,
4992     eDifferentSliceQpDelta                  = VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_EXT
4993   };
4994 
4995   using VideoEncodeH265StdFlagsEXT = Flags<VideoEncodeH265StdFlagBitsEXT>;
4996 
4997   template <>
4998   struct FlagTraits<VideoEncodeH265StdFlagBitsEXT>
4999   {
5000     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
5001     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH265StdFlagsEXT allFlags =
5002       VideoEncodeH265StdFlagBitsEXT::eSeparateColorPlaneFlagSet | VideoEncodeH265StdFlagBitsEXT::eSampleAdaptiveOffsetEnabledFlagSet |
5003       VideoEncodeH265StdFlagBitsEXT::eScalingListDataPresentFlagSet | VideoEncodeH265StdFlagBitsEXT::ePcmEnabledFlagSet |
5004       VideoEncodeH265StdFlagBitsEXT::eSpsTemporalMvpEnabledFlagSet | VideoEncodeH265StdFlagBitsEXT::eInitQpMinus26 |
5005       VideoEncodeH265StdFlagBitsEXT::eWeightedPredFlagSet | VideoEncodeH265StdFlagBitsEXT::eWeightedBipredFlagSet |
5006       VideoEncodeH265StdFlagBitsEXT::eLog2ParallelMergeLevelMinus2 | VideoEncodeH265StdFlagBitsEXT::eSignDataHidingEnabledFlagSet |
5007       VideoEncodeH265StdFlagBitsEXT::eTransformSkipEnabledFlagSet | VideoEncodeH265StdFlagBitsEXT::eTransformSkipEnabledFlagUnset |
5008       VideoEncodeH265StdFlagBitsEXT::ePpsSliceChromaQpOffsetsPresentFlagSet | VideoEncodeH265StdFlagBitsEXT::eTransquantBypassEnabledFlagSet |
5009       VideoEncodeH265StdFlagBitsEXT::eConstrainedIntraPredFlagSet | VideoEncodeH265StdFlagBitsEXT::eEntropyCodingSyncEnabledFlagSet |
5010       VideoEncodeH265StdFlagBitsEXT::eDeblockingFilterOverrideEnabledFlagSet | VideoEncodeH265StdFlagBitsEXT::eDependentSliceSegmentsEnabledFlagSet |
5011       VideoEncodeH265StdFlagBitsEXT::eDependentSliceSegmentFlagSet | VideoEncodeH265StdFlagBitsEXT::eSliceQpDelta |
5012       VideoEncodeH265StdFlagBitsEXT::eDifferentSliceQpDelta;
5013   };
5014 
5015   enum class VideoEncodeH265CtbSizeFlagBitsEXT : VkVideoEncodeH265CtbSizeFlagsEXT
5016   {
5017     e16 = VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT,
5018     e32 = VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT,
5019     e64 = VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT
5020   };
5021 
5022   using VideoEncodeH265CtbSizeFlagsEXT = Flags<VideoEncodeH265CtbSizeFlagBitsEXT>;
5023 
5024   template <>
5025   struct FlagTraits<VideoEncodeH265CtbSizeFlagBitsEXT>
5026   {
5027     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                           isBitmask = true;
5028     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH265CtbSizeFlagsEXT allFlags =
5029       VideoEncodeH265CtbSizeFlagBitsEXT::e16 | VideoEncodeH265CtbSizeFlagBitsEXT::e32 | VideoEncodeH265CtbSizeFlagBitsEXT::e64;
5030   };
5031 
5032   enum class VideoEncodeH265TransformBlockSizeFlagBitsEXT : VkVideoEncodeH265TransformBlockSizeFlagsEXT
5033   {
5034     e4  = VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT,
5035     e8  = VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT,
5036     e16 = VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT,
5037     e32 = VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT
5038   };
5039 
5040   using VideoEncodeH265TransformBlockSizeFlagsEXT = Flags<VideoEncodeH265TransformBlockSizeFlagBitsEXT>;
5041 
5042   template <>
5043   struct FlagTraits<VideoEncodeH265TransformBlockSizeFlagBitsEXT>
5044   {
5045     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                      isBitmask = true;
5046     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH265TransformBlockSizeFlagsEXT allFlags =
5047       VideoEncodeH265TransformBlockSizeFlagBitsEXT::e4 | VideoEncodeH265TransformBlockSizeFlagBitsEXT::e8 | VideoEncodeH265TransformBlockSizeFlagBitsEXT::e16 |
5048       VideoEncodeH265TransformBlockSizeFlagBitsEXT::e32;
5049   };
5050 
5051   enum class VideoEncodeH265RateControlFlagBitsEXT : VkVideoEncodeH265RateControlFlagsEXT
5052   {
5053     eAttemptHrdCompliance          = VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_EXT,
5054     eRegularGop                    = VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_EXT,
5055     eReferencePatternFlat          = VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_EXT,
5056     eReferencePatternDyadic        = VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_EXT,
5057     eTemporalSubLayerPatternDyadic = VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_EXT
5058   };
5059 
5060   using VideoEncodeH265RateControlFlagsEXT = Flags<VideoEncodeH265RateControlFlagBitsEXT>;
5061 
5062   template <>
5063   struct FlagTraits<VideoEncodeH265RateControlFlagBitsEXT>
5064   {
5065     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                               isBitmask = true;
5066     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH265RateControlFlagsEXT allFlags =
5067       VideoEncodeH265RateControlFlagBitsEXT::eAttemptHrdCompliance | VideoEncodeH265RateControlFlagBitsEXT::eRegularGop |
5068       VideoEncodeH265RateControlFlagBitsEXT::eReferencePatternFlat | VideoEncodeH265RateControlFlagBitsEXT::eReferencePatternDyadic |
5069       VideoEncodeH265RateControlFlagBitsEXT::eTemporalSubLayerPatternDyadic;
5070   };
5071 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
5072 
5073   //=== VK_KHR_video_decode_h264 ===
5074 
5075   enum class VideoDecodeH264PictureLayoutFlagBitsKHR : VkVideoDecodeH264PictureLayoutFlagsKHR
5076   {
5077     eProgressive                = VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR,
5078     eInterlacedInterleavedLines = VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR,
5079     eInterlacedSeparatePlanes   = VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR
5080   };
5081 
5082   using VideoDecodeH264PictureLayoutFlagsKHR = Flags<VideoDecodeH264PictureLayoutFlagBitsKHR>;
5083 
5084   template <>
5085   struct FlagTraits<VideoDecodeH264PictureLayoutFlagBitsKHR>
5086   {
5087     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                 isBitmask = true;
5088     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoDecodeH264PictureLayoutFlagsKHR allFlags  = VideoDecodeH264PictureLayoutFlagBitsKHR::eProgressive |
5089                                                                                          VideoDecodeH264PictureLayoutFlagBitsKHR::eInterlacedInterleavedLines |
5090                                                                                          VideoDecodeH264PictureLayoutFlagBitsKHR::eInterlacedSeparatePlanes;
5091   };
5092 
5093   //=== VK_AMD_shader_info ===
5094 
5095   enum class ShaderInfoTypeAMD
5096   {
5097     eStatistics  = VK_SHADER_INFO_TYPE_STATISTICS_AMD,
5098     eBinary      = VK_SHADER_INFO_TYPE_BINARY_AMD,
5099     eDisassembly = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD
5100   };
5101 
5102 #if defined( VK_USE_PLATFORM_GGP )
5103   //=== VK_GGP_stream_descriptor_surface ===
5104 
5105   enum class StreamDescriptorSurfaceCreateFlagBitsGGP : VkStreamDescriptorSurfaceCreateFlagsGGP
5106   {
5107   };
5108 
5109   using StreamDescriptorSurfaceCreateFlagsGGP = Flags<StreamDescriptorSurfaceCreateFlagBitsGGP>;
5110 
5111   template <>
5112   struct FlagTraits<StreamDescriptorSurfaceCreateFlagBitsGGP>
5113   {
5114     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                  isBitmask = true;
5115     static VULKAN_HPP_CONST_OR_CONSTEXPR StreamDescriptorSurfaceCreateFlagsGGP allFlags  = {};
5116   };
5117 #endif /*VK_USE_PLATFORM_GGP*/
5118 
5119   //=== VK_NV_external_memory_capabilities ===
5120 
5121   enum class ExternalMemoryHandleTypeFlagBitsNV : VkExternalMemoryHandleTypeFlagsNV
5122   {
5123     eOpaqueWin32    = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,
5124     eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,
5125     eD3D11Image     = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,
5126     eD3D11ImageKmt  = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV
5127   };
5128 
5129   using ExternalMemoryHandleTypeFlagsNV = Flags<ExternalMemoryHandleTypeFlagBitsNV>;
5130 
5131   template <>
5132   struct FlagTraits<ExternalMemoryHandleTypeFlagBitsNV>
5133   {
5134     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                            isBitmask = true;
5135     static VULKAN_HPP_CONST_OR_CONSTEXPR ExternalMemoryHandleTypeFlagsNV allFlags =
5136       ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 | ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt | ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image |
5137       ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt;
5138   };
5139 
5140   enum class ExternalMemoryFeatureFlagBitsNV : VkExternalMemoryFeatureFlagsNV
5141   {
5142     eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,
5143     eExportable    = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,
5144     eImportable    = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV
5145   };
5146 
5147   using ExternalMemoryFeatureFlagsNV = Flags<ExternalMemoryFeatureFlagBitsNV>;
5148 
5149   template <>
5150   struct FlagTraits<ExternalMemoryFeatureFlagBitsNV>
5151   {
5152     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                         isBitmask = true;
5153     static VULKAN_HPP_CONST_OR_CONSTEXPR ExternalMemoryFeatureFlagsNV allFlags =
5154       ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly | ExternalMemoryFeatureFlagBitsNV::eExportable | ExternalMemoryFeatureFlagBitsNV::eImportable;
5155   };
5156 
5157   //=== VK_EXT_validation_flags ===
5158 
5159   enum class ValidationCheckEXT
5160   {
5161     eAll     = VK_VALIDATION_CHECK_ALL_EXT,
5162     eShaders = VK_VALIDATION_CHECK_SHADERS_EXT
5163   };
5164 
5165 #if defined( VK_USE_PLATFORM_VI_NN )
5166   //=== VK_NN_vi_surface ===
5167 
5168   enum class ViSurfaceCreateFlagBitsNN : VkViSurfaceCreateFlagsNN
5169   {
5170   };
5171 
5172   using ViSurfaceCreateFlagsNN = Flags<ViSurfaceCreateFlagBitsNN>;
5173 
5174   template <>
5175   struct FlagTraits<ViSurfaceCreateFlagBitsNN>
5176   {
5177     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
5178     static VULKAN_HPP_CONST_OR_CONSTEXPR ViSurfaceCreateFlagsNN allFlags  = {};
5179   };
5180 #endif /*VK_USE_PLATFORM_VI_NN*/
5181 
5182   //=== VK_EXT_pipeline_robustness ===
5183 
5184   enum class PipelineRobustnessBufferBehaviorEXT
5185   {
5186     eDeviceDefault       = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT,
5187     eDisabled            = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT,
5188     eRobustBufferAccess  = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT,
5189     eRobustBufferAccess2 = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
5190   };
5191 
5192   enum class PipelineRobustnessImageBehaviorEXT
5193   {
5194     eDeviceDefault      = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT,
5195     eDisabled           = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT,
5196     eRobustImageAccess  = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT,
5197     eRobustImageAccess2 = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT
5198   };
5199 
5200   //=== VK_EXT_conditional_rendering ===
5201 
5202   enum class ConditionalRenderingFlagBitsEXT : VkConditionalRenderingFlagsEXT
5203   {
5204     eInverted = VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT
5205   };
5206 
5207   using ConditionalRenderingFlagsEXT = Flags<ConditionalRenderingFlagBitsEXT>;
5208 
5209   template <>
5210   struct FlagTraits<ConditionalRenderingFlagBitsEXT>
5211   {
5212     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                         isBitmask = true;
5213     static VULKAN_HPP_CONST_OR_CONSTEXPR ConditionalRenderingFlagsEXT allFlags  = ConditionalRenderingFlagBitsEXT::eInverted;
5214   };
5215 
5216   //=== VK_EXT_display_surface_counter ===
5217 
5218   enum class SurfaceCounterFlagBitsEXT : VkSurfaceCounterFlagsEXT
5219   {
5220     eVblank = VK_SURFACE_COUNTER_VBLANK_BIT_EXT
5221   };
5222 
5223   using SurfaceCounterFlagsEXT = Flags<SurfaceCounterFlagBitsEXT>;
5224 
5225   template <>
5226   struct FlagTraits<SurfaceCounterFlagBitsEXT>
5227   {
5228     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
5229     static VULKAN_HPP_CONST_OR_CONSTEXPR SurfaceCounterFlagsEXT allFlags  = SurfaceCounterFlagBitsEXT::eVblank;
5230   };
5231 
5232   //=== VK_EXT_display_control ===
5233 
5234   enum class DisplayPowerStateEXT
5235   {
5236     eOff     = VK_DISPLAY_POWER_STATE_OFF_EXT,
5237     eSuspend = VK_DISPLAY_POWER_STATE_SUSPEND_EXT,
5238     eOn      = VK_DISPLAY_POWER_STATE_ON_EXT
5239   };
5240 
5241   enum class DeviceEventTypeEXT
5242   {
5243     eDisplayHotplug = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT
5244   };
5245 
5246   enum class DisplayEventTypeEXT
5247   {
5248     eFirstPixelOut = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT
5249   };
5250 
5251   //=== VK_NV_viewport_swizzle ===
5252 
5253   enum class ViewportCoordinateSwizzleNV
5254   {
5255     ePositiveX = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
5256     eNegativeX = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV,
5257     ePositiveY = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV,
5258     eNegativeY = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV,
5259     ePositiveZ = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV,
5260     eNegativeZ = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV,
5261     ePositiveW = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV,
5262     eNegativeW = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV
5263   };
5264 
5265   enum class PipelineViewportSwizzleStateCreateFlagBitsNV : VkPipelineViewportSwizzleStateCreateFlagsNV
5266   {
5267   };
5268 
5269   using PipelineViewportSwizzleStateCreateFlagsNV = Flags<PipelineViewportSwizzleStateCreateFlagBitsNV>;
5270 
5271   template <>
5272   struct FlagTraits<PipelineViewportSwizzleStateCreateFlagBitsNV>
5273   {
5274     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                      isBitmask = true;
5275     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineViewportSwizzleStateCreateFlagsNV allFlags  = {};
5276   };
5277 
5278   //=== VK_EXT_discard_rectangles ===
5279 
5280   enum class DiscardRectangleModeEXT
5281   {
5282     eInclusive = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
5283     eExclusive = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT
5284   };
5285 
5286   enum class PipelineDiscardRectangleStateCreateFlagBitsEXT : VkPipelineDiscardRectangleStateCreateFlagsEXT
5287   {
5288   };
5289 
5290   using PipelineDiscardRectangleStateCreateFlagsEXT = Flags<PipelineDiscardRectangleStateCreateFlagBitsEXT>;
5291 
5292   template <>
5293   struct FlagTraits<PipelineDiscardRectangleStateCreateFlagBitsEXT>
5294   {
5295     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                        isBitmask = true;
5296     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineDiscardRectangleStateCreateFlagsEXT allFlags  = {};
5297   };
5298 
5299   //=== VK_EXT_conservative_rasterization ===
5300 
5301   enum class ConservativeRasterizationModeEXT
5302   {
5303     eDisabled      = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT,
5304     eOverestimate  = VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,
5305     eUnderestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT
5306   };
5307 
5308   enum class PipelineRasterizationConservativeStateCreateFlagBitsEXT : VkPipelineRasterizationConservativeStateCreateFlagsEXT
5309   {
5310   };
5311 
5312   using PipelineRasterizationConservativeStateCreateFlagsEXT = Flags<PipelineRasterizationConservativeStateCreateFlagBitsEXT>;
5313 
5314   template <>
5315   struct FlagTraits<PipelineRasterizationConservativeStateCreateFlagBitsEXT>
5316   {
5317     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                                 isBitmask = true;
5318     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineRasterizationConservativeStateCreateFlagsEXT allFlags  = {};
5319   };
5320 
5321   //=== VK_EXT_depth_clip_enable ===
5322 
5323   enum class PipelineRasterizationDepthClipStateCreateFlagBitsEXT : VkPipelineRasterizationDepthClipStateCreateFlagsEXT
5324   {
5325   };
5326 
5327   using PipelineRasterizationDepthClipStateCreateFlagsEXT = Flags<PipelineRasterizationDepthClipStateCreateFlagBitsEXT>;
5328 
5329   template <>
5330   struct FlagTraits<PipelineRasterizationDepthClipStateCreateFlagBitsEXT>
5331   {
5332     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                              isBitmask = true;
5333     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineRasterizationDepthClipStateCreateFlagsEXT allFlags  = {};
5334   };
5335 
5336   //=== VK_KHR_performance_query ===
5337 
5338   enum class PerformanceCounterDescriptionFlagBitsKHR : VkPerformanceCounterDescriptionFlagsKHR
5339   {
5340     ePerformanceImpacting = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
5341     eConcurrentlyImpacted = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR
5342   };
5343 
5344   using PerformanceCounterDescriptionFlagsKHR = Flags<PerformanceCounterDescriptionFlagBitsKHR>;
5345 
5346   template <>
5347   struct FlagTraits<PerformanceCounterDescriptionFlagBitsKHR>
5348   {
5349     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                  isBitmask = true;
5350     static VULKAN_HPP_CONST_OR_CONSTEXPR PerformanceCounterDescriptionFlagsKHR allFlags =
5351       PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting | PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted;
5352   };
5353 
5354   enum class PerformanceCounterScopeKHR
5355   {
5356     eCommandBuffer             = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
5357     eRenderPass                = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
5358     eCommand                   = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
5359     eVkQueryScopeCommandBuffer = VK_QUERY_SCOPE_COMMAND_BUFFER_KHR,
5360     eVkQueryScopeRenderPass    = VK_QUERY_SCOPE_RENDER_PASS_KHR,
5361     eVkQueryScopeCommand       = VK_QUERY_SCOPE_COMMAND_KHR
5362   };
5363 
5364   enum class PerformanceCounterStorageKHR
5365   {
5366     eInt32   = VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR,
5367     eInt64   = VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR,
5368     eUint32  = VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR,
5369     eUint64  = VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR,
5370     eFloat32 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR,
5371     eFloat64 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR
5372   };
5373 
5374   enum class PerformanceCounterUnitKHR
5375   {
5376     eGeneric        = VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR,
5377     ePercentage     = VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR,
5378     eNanoseconds    = VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR,
5379     eBytes          = VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR,
5380     eBytesPerSecond = VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR,
5381     eKelvin         = VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR,
5382     eWatts          = VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR,
5383     eVolts          = VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR,
5384     eAmps           = VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR,
5385     eHertz          = VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR,
5386     eCycles         = VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR
5387   };
5388 
5389   enum class AcquireProfilingLockFlagBitsKHR : VkAcquireProfilingLockFlagsKHR
5390   {
5391   };
5392 
5393   using AcquireProfilingLockFlagsKHR = Flags<AcquireProfilingLockFlagBitsKHR>;
5394 
5395   template <>
5396   struct FlagTraits<AcquireProfilingLockFlagBitsKHR>
5397   {
5398     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                         isBitmask = true;
5399     static VULKAN_HPP_CONST_OR_CONSTEXPR AcquireProfilingLockFlagsKHR allFlags  = {};
5400   };
5401 
5402 #if defined( VK_USE_PLATFORM_IOS_MVK )
5403   //=== VK_MVK_ios_surface ===
5404 
5405   enum class IOSSurfaceCreateFlagBitsMVK : VkIOSSurfaceCreateFlagsMVK
5406   {
5407   };
5408 
5409   using IOSSurfaceCreateFlagsMVK = Flags<IOSSurfaceCreateFlagBitsMVK>;
5410 
5411   template <>
5412   struct FlagTraits<IOSSurfaceCreateFlagBitsMVK>
5413   {
5414     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                     isBitmask = true;
5415     static VULKAN_HPP_CONST_OR_CONSTEXPR IOSSurfaceCreateFlagsMVK allFlags  = {};
5416   };
5417 #endif /*VK_USE_PLATFORM_IOS_MVK*/
5418 
5419 #if defined( VK_USE_PLATFORM_MACOS_MVK )
5420   //=== VK_MVK_macos_surface ===
5421 
5422   enum class MacOSSurfaceCreateFlagBitsMVK : VkMacOSSurfaceCreateFlagsMVK
5423   {
5424   };
5425 
5426   using MacOSSurfaceCreateFlagsMVK = Flags<MacOSSurfaceCreateFlagBitsMVK>;
5427 
5428   template <>
5429   struct FlagTraits<MacOSSurfaceCreateFlagBitsMVK>
5430   {
5431     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
5432     static VULKAN_HPP_CONST_OR_CONSTEXPR MacOSSurfaceCreateFlagsMVK allFlags  = {};
5433   };
5434 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
5435 
5436   //=== VK_EXT_debug_utils ===
5437 
5438   enum class DebugUtilsMessageSeverityFlagBitsEXT : VkDebugUtilsMessageSeverityFlagsEXT
5439   {
5440     eVerbose = VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,
5441     eInfo    = VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,
5442     eWarning = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,
5443     eError   = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT
5444   };
5445 
5446   using DebugUtilsMessageSeverityFlagsEXT = Flags<DebugUtilsMessageSeverityFlagBitsEXT>;
5447 
5448   template <>
5449   struct FlagTraits<DebugUtilsMessageSeverityFlagBitsEXT>
5450   {
5451     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                              isBitmask = true;
5452     static VULKAN_HPP_CONST_OR_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT allFlags =
5453       DebugUtilsMessageSeverityFlagBitsEXT::eVerbose | DebugUtilsMessageSeverityFlagBitsEXT::eInfo | DebugUtilsMessageSeverityFlagBitsEXT::eWarning |
5454       DebugUtilsMessageSeverityFlagBitsEXT::eError;
5455   };
5456 
5457   enum class DebugUtilsMessageTypeFlagBitsEXT : VkDebugUtilsMessageTypeFlagsEXT
5458   {
5459     eGeneral              = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,
5460     eValidation           = VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,
5461     ePerformance          = VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT,
5462     eDeviceAddressBinding = VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT
5463   };
5464 
5465   using DebugUtilsMessageTypeFlagsEXT = Flags<DebugUtilsMessageTypeFlagBitsEXT>;
5466 
5467   template <>
5468   struct FlagTraits<DebugUtilsMessageTypeFlagBitsEXT>
5469   {
5470     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                          isBitmask = true;
5471     static VULKAN_HPP_CONST_OR_CONSTEXPR DebugUtilsMessageTypeFlagsEXT allFlags =
5472       DebugUtilsMessageTypeFlagBitsEXT::eGeneral | DebugUtilsMessageTypeFlagBitsEXT::eValidation | DebugUtilsMessageTypeFlagBitsEXT::ePerformance |
5473       DebugUtilsMessageTypeFlagBitsEXT::eDeviceAddressBinding;
5474   };
5475 
5476   enum class DebugUtilsMessengerCallbackDataFlagBitsEXT : VkDebugUtilsMessengerCallbackDataFlagsEXT
5477   {
5478   };
5479 
5480   using DebugUtilsMessengerCallbackDataFlagsEXT = Flags<DebugUtilsMessengerCallbackDataFlagBitsEXT>;
5481 
5482   template <>
5483   struct FlagTraits<DebugUtilsMessengerCallbackDataFlagBitsEXT>
5484   {
5485     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                    isBitmask = true;
5486     static VULKAN_HPP_CONST_OR_CONSTEXPR DebugUtilsMessengerCallbackDataFlagsEXT allFlags  = {};
5487   };
5488 
5489   enum class DebugUtilsMessengerCreateFlagBitsEXT : VkDebugUtilsMessengerCreateFlagsEXT
5490   {
5491   };
5492 
5493   using DebugUtilsMessengerCreateFlagsEXT = Flags<DebugUtilsMessengerCreateFlagBitsEXT>;
5494 
5495   template <>
5496   struct FlagTraits<DebugUtilsMessengerCreateFlagBitsEXT>
5497   {
5498     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                              isBitmask = true;
5499     static VULKAN_HPP_CONST_OR_CONSTEXPR DebugUtilsMessengerCreateFlagsEXT allFlags  = {};
5500   };
5501 
5502   //=== VK_EXT_blend_operation_advanced ===
5503 
5504   enum class BlendOverlapEXT
5505   {
5506     eUncorrelated = VK_BLEND_OVERLAP_UNCORRELATED_EXT,
5507     eDisjoint     = VK_BLEND_OVERLAP_DISJOINT_EXT,
5508     eConjoint     = VK_BLEND_OVERLAP_CONJOINT_EXT
5509   };
5510 
5511   //=== VK_NV_fragment_coverage_to_color ===
5512 
5513   enum class PipelineCoverageToColorStateCreateFlagBitsNV : VkPipelineCoverageToColorStateCreateFlagsNV
5514   {
5515   };
5516 
5517   using PipelineCoverageToColorStateCreateFlagsNV = Flags<PipelineCoverageToColorStateCreateFlagBitsNV>;
5518 
5519   template <>
5520   struct FlagTraits<PipelineCoverageToColorStateCreateFlagBitsNV>
5521   {
5522     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                      isBitmask = true;
5523     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineCoverageToColorStateCreateFlagsNV allFlags  = {};
5524   };
5525 
5526   //=== VK_KHR_acceleration_structure ===
5527 
5528   enum class AccelerationStructureTypeKHR
5529   {
5530     eTopLevel    = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
5531     eBottomLevel = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
5532     eGeneric     = VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
5533   };
5534   using AccelerationStructureTypeNV = AccelerationStructureTypeKHR;
5535 
5536   enum class AccelerationStructureBuildTypeKHR
5537   {
5538     eHost         = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR,
5539     eDevice       = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR,
5540     eHostOrDevice = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR
5541   };
5542 
5543   enum class GeometryFlagBitsKHR : VkGeometryFlagsKHR
5544   {
5545     eOpaque                      = VK_GEOMETRY_OPAQUE_BIT_KHR,
5546     eNoDuplicateAnyHitInvocation = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR
5547   };
5548   using GeometryFlagBitsNV = GeometryFlagBitsKHR;
5549 
5550   using GeometryFlagsKHR = Flags<GeometryFlagBitsKHR>;
5551   using GeometryFlagsNV  = GeometryFlagsKHR;
5552 
5553   template <>
5554   struct FlagTraits<GeometryFlagBitsKHR>
5555   {
5556     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
5557     static VULKAN_HPP_CONST_OR_CONSTEXPR GeometryFlagsKHR allFlags  = GeometryFlagBitsKHR::eOpaque | GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation;
5558   };
5559 
5560   enum class GeometryInstanceFlagBitsKHR : VkGeometryInstanceFlagsKHR
5561   {
5562     eTriangleFacingCullDisable        = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
5563     eTriangleFlipFacing               = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
5564     eForceOpaque                      = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
5565     eForceNoOpaque                    = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
5566     eTriangleFrontCounterclockwiseKHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
5567     eTriangleCullDisable              = VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV,
5568     eTriangleFrontCounterclockwise    = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV,
5569     eForceOpacityMicromap2StateEXT    = VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT,
5570     eDisableOpacityMicromapsEXT       = VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT
5571   };
5572   using GeometryInstanceFlagBitsNV = GeometryInstanceFlagBitsKHR;
5573 
5574   using GeometryInstanceFlagsKHR = Flags<GeometryInstanceFlagBitsKHR>;
5575   using GeometryInstanceFlagsNV  = GeometryInstanceFlagsKHR;
5576 
5577   template <>
5578   struct FlagTraits<GeometryInstanceFlagBitsKHR>
5579   {
5580     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                     isBitmask = true;
5581     static VULKAN_HPP_CONST_OR_CONSTEXPR GeometryInstanceFlagsKHR allFlags =
5582       GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable | GeometryInstanceFlagBitsKHR::eTriangleFlipFacing | GeometryInstanceFlagBitsKHR::eForceOpaque |
5583       GeometryInstanceFlagBitsKHR::eForceNoOpaque | GeometryInstanceFlagBitsKHR::eForceOpacityMicromap2StateEXT |
5584       GeometryInstanceFlagBitsKHR::eDisableOpacityMicromapsEXT;
5585   };
5586 
5587   enum class BuildAccelerationStructureFlagBitsKHR : VkBuildAccelerationStructureFlagsKHR
5588   {
5589     eAllowUpdate                       = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
5590     eAllowCompaction                   = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
5591     ePreferFastTrace                   = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
5592     ePreferFastBuild                   = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
5593     eLowMemory                         = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
5594     eMotionNV                          = VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV,
5595     eAllowOpacityMicromapUpdateEXT     = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT,
5596     eAllowDisableOpacityMicromapsEXT   = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT,
5597     eAllowOpacityMicromapDataUpdateEXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT,
5598 #if defined( VK_ENABLE_BETA_EXTENSIONS )
5599     eAllowDisplacementMicromapUpdateNV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV,
5600 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
5601     eAllowDataAccess = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR
5602   };
5603   using BuildAccelerationStructureFlagBitsNV = BuildAccelerationStructureFlagBitsKHR;
5604 
5605   using BuildAccelerationStructureFlagsKHR = Flags<BuildAccelerationStructureFlagBitsKHR>;
5606   using BuildAccelerationStructureFlagsNV  = BuildAccelerationStructureFlagsKHR;
5607 
5608   template <>
5609   struct FlagTraits<BuildAccelerationStructureFlagBitsKHR>
5610   {
5611     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                               isBitmask = true;
5612     static VULKAN_HPP_CONST_OR_CONSTEXPR BuildAccelerationStructureFlagsKHR allFlags =
5613       BuildAccelerationStructureFlagBitsKHR::eAllowUpdate | BuildAccelerationStructureFlagBitsKHR::eAllowCompaction |
5614       BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace | BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild |
5615       BuildAccelerationStructureFlagBitsKHR::eLowMemory | BuildAccelerationStructureFlagBitsKHR::eMotionNV |
5616       BuildAccelerationStructureFlagBitsKHR::eAllowOpacityMicromapUpdateEXT | BuildAccelerationStructureFlagBitsKHR::eAllowDisableOpacityMicromapsEXT |
5617       BuildAccelerationStructureFlagBitsKHR::eAllowOpacityMicromapDataUpdateEXT
5618 #if defined( VK_ENABLE_BETA_EXTENSIONS )
5619       | BuildAccelerationStructureFlagBitsKHR::eAllowDisplacementMicromapUpdateNV
5620 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
5621       | BuildAccelerationStructureFlagBitsKHR::eAllowDataAccess;
5622   };
5623 
5624   enum class CopyAccelerationStructureModeKHR
5625   {
5626     eClone       = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
5627     eCompact     = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
5628     eSerialize   = VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR,
5629     eDeserialize = VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR
5630   };
5631   using CopyAccelerationStructureModeNV = CopyAccelerationStructureModeKHR;
5632 
5633   enum class GeometryTypeKHR
5634   {
5635     eTriangles = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
5636     eAabbs     = VK_GEOMETRY_TYPE_AABBS_KHR,
5637     eInstances = VK_GEOMETRY_TYPE_INSTANCES_KHR
5638   };
5639   using GeometryTypeNV = GeometryTypeKHR;
5640 
5641   enum class AccelerationStructureCompatibilityKHR
5642   {
5643     eCompatible   = VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR,
5644     eIncompatible = VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR
5645   };
5646 
5647   enum class AccelerationStructureCreateFlagBitsKHR : VkAccelerationStructureCreateFlagsKHR
5648   {
5649     eDeviceAddressCaptureReplay       = VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,
5650     eDescriptorBufferCaptureReplayEXT = VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,
5651     eMotionNV                         = VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV
5652   };
5653 
5654   using AccelerationStructureCreateFlagsKHR = Flags<AccelerationStructureCreateFlagBitsKHR>;
5655 
5656   template <>
5657   struct FlagTraits<AccelerationStructureCreateFlagBitsKHR>
5658   {
5659     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                isBitmask = true;
5660     static VULKAN_HPP_CONST_OR_CONSTEXPR AccelerationStructureCreateFlagsKHR allFlags =
5661       AccelerationStructureCreateFlagBitsKHR::eDeviceAddressCaptureReplay | AccelerationStructureCreateFlagBitsKHR::eDescriptorBufferCaptureReplayEXT |
5662       AccelerationStructureCreateFlagBitsKHR::eMotionNV;
5663   };
5664 
5665   enum class BuildAccelerationStructureModeKHR
5666   {
5667     eBuild  = VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR,
5668     eUpdate = VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR
5669   };
5670 
5671   //=== VK_KHR_ray_tracing_pipeline ===
5672 
5673   enum class RayTracingShaderGroupTypeKHR
5674   {
5675     eGeneral            = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
5676     eTrianglesHitGroup  = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
5677     eProceduralHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR
5678   };
5679   using RayTracingShaderGroupTypeNV = RayTracingShaderGroupTypeKHR;
5680 
5681   enum class ShaderGroupShaderKHR
5682   {
5683     eGeneral      = VK_SHADER_GROUP_SHADER_GENERAL_KHR,
5684     eClosestHit   = VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR,
5685     eAnyHit       = VK_SHADER_GROUP_SHADER_ANY_HIT_KHR,
5686     eIntersection = VK_SHADER_GROUP_SHADER_INTERSECTION_KHR
5687   };
5688 
5689   //=== VK_NV_framebuffer_mixed_samples ===
5690 
5691   enum class CoverageModulationModeNV
5692   {
5693     eNone  = VK_COVERAGE_MODULATION_MODE_NONE_NV,
5694     eRgb   = VK_COVERAGE_MODULATION_MODE_RGB_NV,
5695     eAlpha = VK_COVERAGE_MODULATION_MODE_ALPHA_NV,
5696     eRgba  = VK_COVERAGE_MODULATION_MODE_RGBA_NV
5697   };
5698 
5699   enum class PipelineCoverageModulationStateCreateFlagBitsNV : VkPipelineCoverageModulationStateCreateFlagsNV
5700   {
5701   };
5702 
5703   using PipelineCoverageModulationStateCreateFlagsNV = Flags<PipelineCoverageModulationStateCreateFlagBitsNV>;
5704 
5705   template <>
5706   struct FlagTraits<PipelineCoverageModulationStateCreateFlagBitsNV>
5707   {
5708     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                         isBitmask = true;
5709     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineCoverageModulationStateCreateFlagsNV allFlags  = {};
5710   };
5711 
5712   //=== VK_EXT_validation_cache ===
5713 
5714   enum class ValidationCacheHeaderVersionEXT
5715   {
5716     eOne = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT
5717   };
5718 
5719   enum class ValidationCacheCreateFlagBitsEXT : VkValidationCacheCreateFlagsEXT
5720   {
5721   };
5722 
5723   using ValidationCacheCreateFlagsEXT = Flags<ValidationCacheCreateFlagBitsEXT>;
5724 
5725   template <>
5726   struct FlagTraits<ValidationCacheCreateFlagBitsEXT>
5727   {
5728     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                          isBitmask = true;
5729     static VULKAN_HPP_CONST_OR_CONSTEXPR ValidationCacheCreateFlagsEXT allFlags  = {};
5730   };
5731 
5732   //=== VK_NV_shading_rate_image ===
5733 
5734   enum class ShadingRatePaletteEntryNV
5735   {
5736     eNoInvocations           = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV,
5737     e16InvocationsPerPixel   = VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV,
5738     e8InvocationsPerPixel    = VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV,
5739     e4InvocationsPerPixel    = VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV,
5740     e2InvocationsPerPixel    = VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV,
5741     e1InvocationPerPixel     = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV,
5742     e1InvocationPer2X1Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV,
5743     e1InvocationPer1X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV,
5744     e1InvocationPer2X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV,
5745     e1InvocationPer4X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV,
5746     e1InvocationPer2X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV,
5747     e1InvocationPer4X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV
5748   };
5749 
5750   enum class CoarseSampleOrderTypeNV
5751   {
5752     eDefault     = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV,
5753     eCustom      = VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV,
5754     ePixelMajor  = VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV,
5755     eSampleMajor = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV
5756   };
5757 
5758   //=== VK_NV_ray_tracing ===
5759 
5760   enum class AccelerationStructureMemoryRequirementsTypeNV
5761   {
5762     eObject        = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV,
5763     eBuildScratch  = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV,
5764     eUpdateScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV
5765   };
5766 
5767   //=== VK_AMD_pipeline_compiler_control ===
5768 
5769   enum class PipelineCompilerControlFlagBitsAMD : VkPipelineCompilerControlFlagsAMD
5770   {
5771   };
5772 
5773   using PipelineCompilerControlFlagsAMD = Flags<PipelineCompilerControlFlagBitsAMD>;
5774 
5775   template <>
5776   struct FlagTraits<PipelineCompilerControlFlagBitsAMD>
5777   {
5778     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                            isBitmask = true;
5779     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineCompilerControlFlagsAMD allFlags  = {};
5780   };
5781 
5782   //=== VK_EXT_calibrated_timestamps ===
5783 
5784   enum class TimeDomainEXT
5785   {
5786     eDevice                  = VK_TIME_DOMAIN_DEVICE_EXT,
5787     eClockMonotonic          = VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT,
5788     eClockMonotonicRaw       = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT,
5789     eQueryPerformanceCounter = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT
5790   };
5791 
5792   //=== VK_KHR_global_priority ===
5793 
5794   enum class QueueGlobalPriorityKHR
5795   {
5796     eLow      = VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR,
5797     eMedium   = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR,
5798     eHigh     = VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR,
5799     eRealtime = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR
5800   };
5801   using QueueGlobalPriorityEXT = QueueGlobalPriorityKHR;
5802 
5803   //=== VK_AMD_memory_overallocation_behavior ===
5804 
5805   enum class MemoryOverallocationBehaviorAMD
5806   {
5807     eDefault    = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD,
5808     eAllowed    = VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD,
5809     eDisallowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD
5810   };
5811 
5812   //=== VK_INTEL_performance_query ===
5813 
5814   enum class PerformanceConfigurationTypeINTEL
5815   {
5816     eCommandQueueMetricsDiscoveryActivated = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL
5817   };
5818 
5819   enum class QueryPoolSamplingModeINTEL
5820   {
5821     eManual = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL
5822   };
5823 
5824   enum class PerformanceOverrideTypeINTEL
5825   {
5826     eNullHardware   = VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL,
5827     eFlushGpuCaches = VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL
5828   };
5829 
5830   enum class PerformanceParameterTypeINTEL
5831   {
5832     eHwCountersSupported   = VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL,
5833     eStreamMarkerValidBits = VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL
5834   };
5835 
5836   enum class PerformanceValueTypeINTEL
5837   {
5838     eUint32 = VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL,
5839     eUint64 = VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL,
5840     eFloat  = VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL,
5841     eBool   = VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL,
5842     eString = VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL
5843   };
5844 
5845 #if defined( VK_USE_PLATFORM_FUCHSIA )
5846   //=== VK_FUCHSIA_imagepipe_surface ===
5847 
5848   enum class ImagePipeSurfaceCreateFlagBitsFUCHSIA : VkImagePipeSurfaceCreateFlagsFUCHSIA
5849   {
5850   };
5851 
5852   using ImagePipeSurfaceCreateFlagsFUCHSIA = Flags<ImagePipeSurfaceCreateFlagBitsFUCHSIA>;
5853 
5854   template <>
5855   struct FlagTraits<ImagePipeSurfaceCreateFlagBitsFUCHSIA>
5856   {
5857     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                               isBitmask = true;
5858     static VULKAN_HPP_CONST_OR_CONSTEXPR ImagePipeSurfaceCreateFlagsFUCHSIA allFlags  = {};
5859   };
5860 #endif /*VK_USE_PLATFORM_FUCHSIA*/
5861 
5862 #if defined( VK_USE_PLATFORM_METAL_EXT )
5863   //=== VK_EXT_metal_surface ===
5864 
5865   enum class MetalSurfaceCreateFlagBitsEXT : VkMetalSurfaceCreateFlagsEXT
5866   {
5867   };
5868 
5869   using MetalSurfaceCreateFlagsEXT = Flags<MetalSurfaceCreateFlagBitsEXT>;
5870 
5871   template <>
5872   struct FlagTraits<MetalSurfaceCreateFlagBitsEXT>
5873   {
5874     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
5875     static VULKAN_HPP_CONST_OR_CONSTEXPR MetalSurfaceCreateFlagsEXT allFlags  = {};
5876   };
5877 #endif /*VK_USE_PLATFORM_METAL_EXT*/
5878 
5879   //=== VK_KHR_fragment_shading_rate ===
5880 
5881   enum class FragmentShadingRateCombinerOpKHR
5882   {
5883     eKeep    = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR,
5884     eReplace = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR,
5885     eMin     = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR,
5886     eMax     = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR,
5887     eMul     = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR
5888   };
5889 
5890   //=== VK_AMD_shader_core_properties2 ===
5891 
5892   enum class ShaderCorePropertiesFlagBitsAMD : VkShaderCorePropertiesFlagsAMD
5893   {
5894   };
5895 
5896   using ShaderCorePropertiesFlagsAMD = Flags<ShaderCorePropertiesFlagBitsAMD>;
5897 
5898   template <>
5899   struct FlagTraits<ShaderCorePropertiesFlagBitsAMD>
5900   {
5901     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                         isBitmask = true;
5902     static VULKAN_HPP_CONST_OR_CONSTEXPR ShaderCorePropertiesFlagsAMD allFlags  = {};
5903   };
5904 
5905   //=== VK_EXT_validation_features ===
5906 
5907   enum class ValidationFeatureEnableEXT
5908   {
5909     eGpuAssisted                   = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,
5910     eGpuAssistedReserveBindingSlot = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT,
5911     eBestPractices                 = VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,
5912     eDebugPrintf                   = VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT,
5913     eSynchronizationValidation     = VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT
5914   };
5915 
5916   enum class ValidationFeatureDisableEXT
5917   {
5918     eAll                   = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT,
5919     eShaders               = VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT,
5920     eThreadSafety          = VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT,
5921     eApiParameters         = VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT,
5922     eObjectLifetimes       = VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT,
5923     eCoreChecks            = VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT,
5924     eUniqueHandles         = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT,
5925     eShaderValidationCache = VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT
5926   };
5927 
5928   //=== VK_NV_coverage_reduction_mode ===
5929 
5930   enum class CoverageReductionModeNV
5931   {
5932     eMerge    = VK_COVERAGE_REDUCTION_MODE_MERGE_NV,
5933     eTruncate = VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV
5934   };
5935 
5936   enum class PipelineCoverageReductionStateCreateFlagBitsNV : VkPipelineCoverageReductionStateCreateFlagsNV
5937   {
5938   };
5939 
5940   using PipelineCoverageReductionStateCreateFlagsNV = Flags<PipelineCoverageReductionStateCreateFlagBitsNV>;
5941 
5942   template <>
5943   struct FlagTraits<PipelineCoverageReductionStateCreateFlagBitsNV>
5944   {
5945     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                        isBitmask = true;
5946     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineCoverageReductionStateCreateFlagsNV allFlags  = {};
5947   };
5948 
5949   //=== VK_EXT_provoking_vertex ===
5950 
5951   enum class ProvokingVertexModeEXT
5952   {
5953     eFirstVertex = VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT,
5954     eLastVertex  = VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT
5955   };
5956 
5957 #if defined( VK_USE_PLATFORM_WIN32_KHR )
5958   //=== VK_EXT_full_screen_exclusive ===
5959 
5960   enum class FullScreenExclusiveEXT
5961   {
5962     eDefault               = VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT,
5963     eAllowed               = VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT,
5964     eDisallowed            = VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT,
5965     eApplicationControlled = VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
5966   };
5967 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
5968 
5969   //=== VK_EXT_headless_surface ===
5970 
5971   enum class HeadlessSurfaceCreateFlagBitsEXT : VkHeadlessSurfaceCreateFlagsEXT
5972   {
5973   };
5974 
5975   using HeadlessSurfaceCreateFlagsEXT = Flags<HeadlessSurfaceCreateFlagBitsEXT>;
5976 
5977   template <>
5978   struct FlagTraits<HeadlessSurfaceCreateFlagBitsEXT>
5979   {
5980     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                          isBitmask = true;
5981     static VULKAN_HPP_CONST_OR_CONSTEXPR HeadlessSurfaceCreateFlagsEXT allFlags  = {};
5982   };
5983 
5984   //=== VK_EXT_line_rasterization ===
5985 
5986   enum class LineRasterizationModeEXT
5987   {
5988     eDefault           = VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT,
5989     eRectangular       = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT,
5990     eBresenham         = VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT,
5991     eRectangularSmooth = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT
5992   };
5993 
5994   //=== VK_KHR_pipeline_executable_properties ===
5995 
5996   enum class PipelineExecutableStatisticFormatKHR
5997   {
5998     eBool32  = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR,
5999     eInt64   = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR,
6000     eUint64  = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR,
6001     eFloat64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR
6002   };
6003 
6004   //=== VK_EXT_host_image_copy ===
6005 
6006   enum class HostImageCopyFlagBitsEXT : VkHostImageCopyFlagsEXT
6007   {
6008     eMemcpy = VK_HOST_IMAGE_COPY_MEMCPY_EXT
6009   };
6010 
6011   using HostImageCopyFlagsEXT = Flags<HostImageCopyFlagBitsEXT>;
6012 
6013   template <>
6014   struct FlagTraits<HostImageCopyFlagBitsEXT>
6015   {
6016     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                  isBitmask = true;
6017     static VULKAN_HPP_CONST_OR_CONSTEXPR HostImageCopyFlagsEXT allFlags  = HostImageCopyFlagBitsEXT::eMemcpy;
6018   };
6019 
6020   //=== VK_KHR_map_memory2 ===
6021 
6022   enum class MemoryUnmapFlagBitsKHR : VkMemoryUnmapFlagsKHR
6023   {
6024   };
6025 
6026   using MemoryUnmapFlagsKHR = Flags<MemoryUnmapFlagBitsKHR>;
6027 
6028   template <>
6029   struct FlagTraits<MemoryUnmapFlagBitsKHR>
6030   {
6031     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                isBitmask = true;
6032     static VULKAN_HPP_CONST_OR_CONSTEXPR MemoryUnmapFlagsKHR allFlags  = {};
6033   };
6034 
6035   //=== VK_EXT_surface_maintenance1 ===
6036 
6037   enum class PresentScalingFlagBitsEXT : VkPresentScalingFlagsEXT
6038   {
6039     eOneToOne           = VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT,
6040     eAspectRatioStretch = VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT,
6041     eStretch            = VK_PRESENT_SCALING_STRETCH_BIT_EXT
6042   };
6043 
6044   using PresentScalingFlagsEXT = Flags<PresentScalingFlagBitsEXT>;
6045 
6046   template <>
6047   struct FlagTraits<PresentScalingFlagBitsEXT>
6048   {
6049     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
6050     static VULKAN_HPP_CONST_OR_CONSTEXPR PresentScalingFlagsEXT allFlags =
6051       PresentScalingFlagBitsEXT::eOneToOne | PresentScalingFlagBitsEXT::eAspectRatioStretch | PresentScalingFlagBitsEXT::eStretch;
6052   };
6053 
6054   enum class PresentGravityFlagBitsEXT : VkPresentGravityFlagsEXT
6055   {
6056     eMin      = VK_PRESENT_GRAVITY_MIN_BIT_EXT,
6057     eMax      = VK_PRESENT_GRAVITY_MAX_BIT_EXT,
6058     eCentered = VK_PRESENT_GRAVITY_CENTERED_BIT_EXT
6059   };
6060 
6061   using PresentGravityFlagsEXT = Flags<PresentGravityFlagBitsEXT>;
6062 
6063   template <>
6064   struct FlagTraits<PresentGravityFlagBitsEXT>
6065   {
6066     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
6067     static VULKAN_HPP_CONST_OR_CONSTEXPR PresentGravityFlagsEXT allFlags =
6068       PresentGravityFlagBitsEXT::eMin | PresentGravityFlagBitsEXT::eMax | PresentGravityFlagBitsEXT::eCentered;
6069   };
6070 
6071   //=== VK_NV_device_generated_commands ===
6072 
6073   enum class IndirectStateFlagBitsNV : VkIndirectStateFlagsNV
6074   {
6075     eFlagFrontface = VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV
6076   };
6077 
6078   using IndirectStateFlagsNV = Flags<IndirectStateFlagBitsNV>;
6079 
6080   template <>
6081   struct FlagTraits<IndirectStateFlagBitsNV>
6082   {
6083     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                 isBitmask = true;
6084     static VULKAN_HPP_CONST_OR_CONSTEXPR IndirectStateFlagsNV allFlags  = IndirectStateFlagBitsNV::eFlagFrontface;
6085   };
6086 
6087   enum class IndirectCommandsTokenTypeNV
6088   {
6089     eShaderGroup   = VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV,
6090     eStateFlags    = VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV,
6091     eIndexBuffer   = VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV,
6092     eVertexBuffer  = VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV,
6093     ePushConstant  = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV,
6094     eDrawIndexed   = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV,
6095     eDraw          = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV,
6096     eDrawTasks     = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV,
6097     eDrawMeshTasks = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV,
6098     ePipeline      = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV,
6099     eDispatch      = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV
6100   };
6101 
6102   enum class IndirectCommandsLayoutUsageFlagBitsNV : VkIndirectCommandsLayoutUsageFlagsNV
6103   {
6104     eExplicitPreprocess = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV,
6105     eIndexedSequences   = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV,
6106     eUnorderedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV
6107   };
6108 
6109   using IndirectCommandsLayoutUsageFlagsNV = Flags<IndirectCommandsLayoutUsageFlagBitsNV>;
6110 
6111   template <>
6112   struct FlagTraits<IndirectCommandsLayoutUsageFlagBitsNV>
6113   {
6114     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                               isBitmask = true;
6115     static VULKAN_HPP_CONST_OR_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV allFlags  = IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess |
6116                                                                                        IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences |
6117                                                                                        IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences;
6118   };
6119 
6120   //=== VK_EXT_depth_bias_control ===
6121 
6122   enum class DepthBiasRepresentationEXT
6123   {
6124     eLeastRepresentableValueFormat     = VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT,
6125     eLeastRepresentableValueForceUnorm = VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT,
6126     eFloat                             = VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT
6127   };
6128 
6129   //=== VK_EXT_device_memory_report ===
6130 
6131   enum class DeviceMemoryReportEventTypeEXT
6132   {
6133     eAllocate         = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT,
6134     eFree             = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT,
6135     eImport           = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT,
6136     eUnimport         = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT,
6137     eAllocationFailed = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT
6138   };
6139 
6140   enum class DeviceMemoryReportFlagBitsEXT : VkDeviceMemoryReportFlagsEXT
6141   {
6142   };
6143 
6144   using DeviceMemoryReportFlagsEXT = Flags<DeviceMemoryReportFlagBitsEXT>;
6145 
6146   template <>
6147   struct FlagTraits<DeviceMemoryReportFlagBitsEXT>
6148   {
6149     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
6150     static VULKAN_HPP_CONST_OR_CONSTEXPR DeviceMemoryReportFlagsEXT allFlags  = {};
6151   };
6152 
6153   //=== VK_EXT_pipeline_creation_cache_control ===
6154 
6155   enum class PipelineCacheCreateFlagBits : VkPipelineCacheCreateFlags
6156   {
6157     eExternallySynchronized    = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
6158     eExternallySynchronizedEXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT
6159   };
6160 
6161   using PipelineCacheCreateFlags = Flags<PipelineCacheCreateFlagBits>;
6162 
6163   template <>
6164   struct FlagTraits<PipelineCacheCreateFlagBits>
6165   {
6166     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                     isBitmask = true;
6167     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineCacheCreateFlags allFlags  = PipelineCacheCreateFlagBits::eExternallySynchronized;
6168   };
6169 
6170 #if defined( VK_ENABLE_BETA_EXTENSIONS )
6171   //=== VK_KHR_video_encode_queue ===
6172 
6173   enum class VideoEncodeCapabilityFlagBitsKHR : VkVideoEncodeCapabilityFlagsKHR
6174   {
6175     ePrecedingExternallyEncodedBytes           = VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR,
6176     eInsufficientstreamBufferRangeDetectionBit = VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR
6177   };
6178 
6179   using VideoEncodeCapabilityFlagsKHR = Flags<VideoEncodeCapabilityFlagBitsKHR>;
6180 
6181   template <>
6182   struct FlagTraits<VideoEncodeCapabilityFlagBitsKHR>
6183   {
6184     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                          isBitmask = true;
6185     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeCapabilityFlagsKHR allFlags =
6186       VideoEncodeCapabilityFlagBitsKHR::ePrecedingExternallyEncodedBytes | VideoEncodeCapabilityFlagBitsKHR::eInsufficientstreamBufferRangeDetectionBit;
6187   };
6188 
6189   enum class VideoEncodeFeedbackFlagBitsKHR : VkVideoEncodeFeedbackFlagsKHR
6190   {
6191     estreamBufferOffsetBit = VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR,
6192     estreamBytesWrittenBit = VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR,
6193     estreamHasOverridesBit = VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR
6194   };
6195 
6196   using VideoEncodeFeedbackFlagsKHR = Flags<VideoEncodeFeedbackFlagBitsKHR>;
6197 
6198   template <>
6199   struct FlagTraits<VideoEncodeFeedbackFlagBitsKHR>
6200   {
6201     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                        isBitmask = true;
6202     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeFeedbackFlagsKHR allFlags  = VideoEncodeFeedbackFlagBitsKHR::estreamBufferOffsetBit |
6203                                                                                 VideoEncodeFeedbackFlagBitsKHR::estreamBytesWrittenBit |
6204                                                                                 VideoEncodeFeedbackFlagBitsKHR::estreamHasOverridesBit;
6205   };
6206 
6207   enum class VideoEncodeUsageFlagBitsKHR : VkVideoEncodeUsageFlagsKHR
6208   {
6209     eDefault      = VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR,
6210     eTranscoding  = VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR,
6211     eStreaming    = VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR,
6212     eRecording    = VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR,
6213     eConferencing = VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR
6214   };
6215 
6216   using VideoEncodeUsageFlagsKHR = Flags<VideoEncodeUsageFlagBitsKHR>;
6217 
6218   template <>
6219   struct FlagTraits<VideoEncodeUsageFlagBitsKHR>
6220   {
6221     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                     isBitmask = true;
6222     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeUsageFlagsKHR allFlags = VideoEncodeUsageFlagBitsKHR::eDefault | VideoEncodeUsageFlagBitsKHR::eTranscoding |
6223                                                                              VideoEncodeUsageFlagBitsKHR::eStreaming | VideoEncodeUsageFlagBitsKHR::eRecording |
6224                                                                              VideoEncodeUsageFlagBitsKHR::eConferencing;
6225   };
6226 
6227   enum class VideoEncodeContentFlagBitsKHR : VkVideoEncodeContentFlagsKHR
6228   {
6229     eDefault  = VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR,
6230     eCamera   = VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR,
6231     eDesktop  = VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR,
6232     eRendered = VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR
6233   };
6234 
6235   using VideoEncodeContentFlagsKHR = Flags<VideoEncodeContentFlagBitsKHR>;
6236 
6237   template <>
6238   struct FlagTraits<VideoEncodeContentFlagBitsKHR>
6239   {
6240     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
6241     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeContentFlagsKHR allFlags =
6242       VideoEncodeContentFlagBitsKHR::eDefault | VideoEncodeContentFlagBitsKHR::eCamera | VideoEncodeContentFlagBitsKHR::eDesktop |
6243       VideoEncodeContentFlagBitsKHR::eRendered;
6244   };
6245 
6246   enum class VideoEncodeTuningModeKHR
6247   {
6248     eDefault         = VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR,
6249     eHighQuality     = VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR,
6250     eLowLatency      = VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR,
6251     eUltraLowLatency = VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR,
6252     eLossless        = VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR
6253   };
6254 
6255   enum class VideoEncodeRateControlModeFlagBitsKHR : VkVideoEncodeRateControlModeFlagsKHR
6256   {
6257     eDefault  = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR,
6258     eDisabled = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR,
6259     eCbr      = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR,
6260     eVbr      = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR
6261   };
6262 
6263   using VideoEncodeRateControlModeFlagsKHR = Flags<VideoEncodeRateControlModeFlagBitsKHR>;
6264 
6265   template <>
6266   struct FlagTraits<VideoEncodeRateControlModeFlagBitsKHR>
6267   {
6268     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                               isBitmask = true;
6269     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeRateControlModeFlagsKHR allFlags =
6270       VideoEncodeRateControlModeFlagBitsKHR::eDefault | VideoEncodeRateControlModeFlagBitsKHR::eDisabled | VideoEncodeRateControlModeFlagBitsKHR::eCbr |
6271       VideoEncodeRateControlModeFlagBitsKHR::eVbr;
6272   };
6273 
6274   enum class VideoEncodeFlagBitsKHR : VkVideoEncodeFlagsKHR
6275   {
6276   };
6277 
6278   using VideoEncodeFlagsKHR = Flags<VideoEncodeFlagBitsKHR>;
6279 
6280   template <>
6281   struct FlagTraits<VideoEncodeFlagBitsKHR>
6282   {
6283     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                isBitmask = true;
6284     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeFlagsKHR allFlags  = {};
6285   };
6286 
6287   enum class VideoEncodeRateControlFlagBitsKHR : VkVideoEncodeRateControlFlagsKHR
6288   {
6289   };
6290 
6291   using VideoEncodeRateControlFlagsKHR = Flags<VideoEncodeRateControlFlagBitsKHR>;
6292 
6293   template <>
6294   struct FlagTraits<VideoEncodeRateControlFlagBitsKHR>
6295   {
6296     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                           isBitmask = true;
6297     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeRateControlFlagsKHR allFlags  = {};
6298   };
6299 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
6300 
6301   //=== VK_NV_device_diagnostics_config ===
6302 
6303   enum class DeviceDiagnosticsConfigFlagBitsNV : VkDeviceDiagnosticsConfigFlagsNV
6304   {
6305     eEnableShaderDebugInfo      = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV,
6306     eEnableResourceTracking     = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV,
6307     eEnableAutomaticCheckpoints = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV,
6308     eEnableShaderErrorReporting = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV
6309   };
6310 
6311   using DeviceDiagnosticsConfigFlagsNV = Flags<DeviceDiagnosticsConfigFlagBitsNV>;
6312 
6313   template <>
6314   struct FlagTraits<DeviceDiagnosticsConfigFlagBitsNV>
6315   {
6316     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                           isBitmask = true;
6317     static VULKAN_HPP_CONST_OR_CONSTEXPR DeviceDiagnosticsConfigFlagsNV allFlags =
6318       DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo | DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking |
6319       DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints | DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderErrorReporting;
6320   };
6321 
6322 #if defined( VK_USE_PLATFORM_METAL_EXT )
6323   //=== VK_EXT_metal_objects ===
6324 
6325   enum class ExportMetalObjectTypeFlagBitsEXT : VkExportMetalObjectTypeFlagsEXT
6326   {
6327     eMetalDevice       = VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT,
6328     eMetalCommandQueue = VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT,
6329     eMetalBuffer       = VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT,
6330     eMetalTexture      = VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT,
6331     eMetalIosurface    = VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT,
6332     eMetalSharedEvent  = VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT
6333   };
6334 
6335   using ExportMetalObjectTypeFlagsEXT = Flags<ExportMetalObjectTypeFlagBitsEXT>;
6336 
6337   template <>
6338   struct FlagTraits<ExportMetalObjectTypeFlagBitsEXT>
6339   {
6340     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                          isBitmask = true;
6341     static VULKAN_HPP_CONST_OR_CONSTEXPR ExportMetalObjectTypeFlagsEXT allFlags =
6342       ExportMetalObjectTypeFlagBitsEXT::eMetalDevice | ExportMetalObjectTypeFlagBitsEXT::eMetalCommandQueue | ExportMetalObjectTypeFlagBitsEXT::eMetalBuffer |
6343       ExportMetalObjectTypeFlagBitsEXT::eMetalTexture | ExportMetalObjectTypeFlagBitsEXT::eMetalIosurface | ExportMetalObjectTypeFlagBitsEXT::eMetalSharedEvent;
6344   };
6345 #endif /*VK_USE_PLATFORM_METAL_EXT*/
6346 
6347   //=== VK_EXT_graphics_pipeline_library ===
6348 
6349   enum class GraphicsPipelineLibraryFlagBitsEXT : VkGraphicsPipelineLibraryFlagsEXT
6350   {
6351     eVertexInputInterface    = VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT,
6352     ePreRasterizationShaders = VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,
6353     eFragmentShader          = VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT,
6354     eFragmentOutputInterface = VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
6355   };
6356 
6357   using GraphicsPipelineLibraryFlagsEXT = Flags<GraphicsPipelineLibraryFlagBitsEXT>;
6358 
6359   template <>
6360   struct FlagTraits<GraphicsPipelineLibraryFlagBitsEXT>
6361   {
6362     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                            isBitmask = true;
6363     static VULKAN_HPP_CONST_OR_CONSTEXPR GraphicsPipelineLibraryFlagsEXT allFlags =
6364       GraphicsPipelineLibraryFlagBitsEXT::eVertexInputInterface | GraphicsPipelineLibraryFlagBitsEXT::ePreRasterizationShaders |
6365       GraphicsPipelineLibraryFlagBitsEXT::eFragmentShader | GraphicsPipelineLibraryFlagBitsEXT::eFragmentOutputInterface;
6366   };
6367 
6368   enum class PipelineLayoutCreateFlagBits : VkPipelineLayoutCreateFlags
6369   {
6370     eIndependentSetsEXT = VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
6371   };
6372 
6373   using PipelineLayoutCreateFlags = Flags<PipelineLayoutCreateFlagBits>;
6374 
6375   template <>
6376   struct FlagTraits<PipelineLayoutCreateFlagBits>
6377   {
6378     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                      isBitmask = true;
6379     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineLayoutCreateFlags allFlags  = PipelineLayoutCreateFlagBits::eIndependentSetsEXT;
6380   };
6381 
6382   //=== VK_NV_fragment_shading_rate_enums ===
6383 
6384   enum class FragmentShadingRateNV
6385   {
6386     e1InvocationPerPixel     = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV,
6387     e1InvocationPer1X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV,
6388     e1InvocationPer2X1Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV,
6389     e1InvocationPer2X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV,
6390     e1InvocationPer2X4Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV,
6391     e1InvocationPer4X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV,
6392     e1InvocationPer4X4Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV,
6393     e2InvocationsPerPixel    = VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV,
6394     e4InvocationsPerPixel    = VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV,
6395     e8InvocationsPerPixel    = VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV,
6396     e16InvocationsPerPixel   = VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV,
6397     eNoInvocations           = VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV
6398   };
6399 
6400   enum class FragmentShadingRateTypeNV
6401   {
6402     eFragmentSize = VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV,
6403     eEnums        = VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV
6404   };
6405 
6406   //=== VK_NV_ray_tracing_motion_blur ===
6407 
6408   enum class AccelerationStructureMotionInstanceTypeNV
6409   {
6410     eStatic       = VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV,
6411     eMatrixMotion = VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV,
6412     eSrtMotion    = VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV
6413   };
6414 
6415   enum class AccelerationStructureMotionInfoFlagBitsNV : VkAccelerationStructureMotionInfoFlagsNV
6416   {
6417   };
6418 
6419   using AccelerationStructureMotionInfoFlagsNV = Flags<AccelerationStructureMotionInfoFlagBitsNV>;
6420 
6421   template <>
6422   struct FlagTraits<AccelerationStructureMotionInfoFlagBitsNV>
6423   {
6424     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                   isBitmask = true;
6425     static VULKAN_HPP_CONST_OR_CONSTEXPR AccelerationStructureMotionInfoFlagsNV allFlags  = {};
6426   };
6427 
6428   enum class AccelerationStructureMotionInstanceFlagBitsNV : VkAccelerationStructureMotionInstanceFlagsNV
6429   {
6430   };
6431 
6432   using AccelerationStructureMotionInstanceFlagsNV = Flags<AccelerationStructureMotionInstanceFlagBitsNV>;
6433 
6434   template <>
6435   struct FlagTraits<AccelerationStructureMotionInstanceFlagBitsNV>
6436   {
6437     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                       isBitmask = true;
6438     static VULKAN_HPP_CONST_OR_CONSTEXPR AccelerationStructureMotionInstanceFlagsNV allFlags  = {};
6439   };
6440 
6441   //=== VK_EXT_image_compression_control ===
6442 
6443   enum class ImageCompressionFlagBitsEXT : VkImageCompressionFlagsEXT
6444   {
6445     eDefault           = VK_IMAGE_COMPRESSION_DEFAULT_EXT,
6446     eFixedRateDefault  = VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT,
6447     eFixedRateExplicit = VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT,
6448     eDisabled          = VK_IMAGE_COMPRESSION_DISABLED_EXT
6449   };
6450 
6451   using ImageCompressionFlagsEXT = Flags<ImageCompressionFlagBitsEXT>;
6452 
6453   template <>
6454   struct FlagTraits<ImageCompressionFlagBitsEXT>
6455   {
6456     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                     isBitmask = true;
6457     static VULKAN_HPP_CONST_OR_CONSTEXPR ImageCompressionFlagsEXT allFlags =
6458       ImageCompressionFlagBitsEXT::eDefault | ImageCompressionFlagBitsEXT::eFixedRateDefault | ImageCompressionFlagBitsEXT::eFixedRateExplicit |
6459       ImageCompressionFlagBitsEXT::eDisabled;
6460   };
6461 
6462   enum class ImageCompressionFixedRateFlagBitsEXT : VkImageCompressionFixedRateFlagsEXT
6463   {
6464     eNone  = VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT,
6465     e1Bpc  = VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT,
6466     e2Bpc  = VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT,
6467     e3Bpc  = VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT,
6468     e4Bpc  = VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT,
6469     e5Bpc  = VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT,
6470     e6Bpc  = VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT,
6471     e7Bpc  = VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT,
6472     e8Bpc  = VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT,
6473     e9Bpc  = VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT,
6474     e10Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT,
6475     e11Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT,
6476     e12Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT,
6477     e13Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT,
6478     e14Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT,
6479     e15Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT,
6480     e16Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT,
6481     e17Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT,
6482     e18Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT,
6483     e19Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT,
6484     e20Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT,
6485     e21Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT,
6486     e22Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT,
6487     e23Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT,
6488     e24Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT
6489   };
6490 
6491   using ImageCompressionFixedRateFlagsEXT = Flags<ImageCompressionFixedRateFlagBitsEXT>;
6492 
6493   template <>
6494   struct FlagTraits<ImageCompressionFixedRateFlagBitsEXT>
6495   {
6496     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                              isBitmask = true;
6497     static VULKAN_HPP_CONST_OR_CONSTEXPR ImageCompressionFixedRateFlagsEXT allFlags =
6498       ImageCompressionFixedRateFlagBitsEXT::eNone | ImageCompressionFixedRateFlagBitsEXT::e1Bpc | ImageCompressionFixedRateFlagBitsEXT::e2Bpc |
6499       ImageCompressionFixedRateFlagBitsEXT::e3Bpc | ImageCompressionFixedRateFlagBitsEXT::e4Bpc | ImageCompressionFixedRateFlagBitsEXT::e5Bpc |
6500       ImageCompressionFixedRateFlagBitsEXT::e6Bpc | ImageCompressionFixedRateFlagBitsEXT::e7Bpc | ImageCompressionFixedRateFlagBitsEXT::e8Bpc |
6501       ImageCompressionFixedRateFlagBitsEXT::e9Bpc | ImageCompressionFixedRateFlagBitsEXT::e10Bpc | ImageCompressionFixedRateFlagBitsEXT::e11Bpc |
6502       ImageCompressionFixedRateFlagBitsEXT::e12Bpc | ImageCompressionFixedRateFlagBitsEXT::e13Bpc | ImageCompressionFixedRateFlagBitsEXT::e14Bpc |
6503       ImageCompressionFixedRateFlagBitsEXT::e15Bpc | ImageCompressionFixedRateFlagBitsEXT::e16Bpc | ImageCompressionFixedRateFlagBitsEXT::e17Bpc |
6504       ImageCompressionFixedRateFlagBitsEXT::e18Bpc | ImageCompressionFixedRateFlagBitsEXT::e19Bpc | ImageCompressionFixedRateFlagBitsEXT::e20Bpc |
6505       ImageCompressionFixedRateFlagBitsEXT::e21Bpc | ImageCompressionFixedRateFlagBitsEXT::e22Bpc | ImageCompressionFixedRateFlagBitsEXT::e23Bpc |
6506       ImageCompressionFixedRateFlagBitsEXT::e24Bpc;
6507   };
6508 
6509   //=== VK_EXT_device_fault ===
6510 
6511   enum class DeviceFaultAddressTypeEXT
6512   {
6513     eNone                      = VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT,
6514     eReadInvalid               = VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT,
6515     eWriteInvalid              = VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT,
6516     eExecuteInvalid            = VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT,
6517     eInstructionPointerUnknown = VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT,
6518     eInstructionPointerInvalid = VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT,
6519     eInstructionPointerFault   = VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT
6520   };
6521 
6522   enum class DeviceFaultVendorBinaryHeaderVersionEXT
6523   {
6524     eOne = VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT
6525   };
6526 
6527 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
6528   //=== VK_EXT_directfb_surface ===
6529 
6530   enum class DirectFBSurfaceCreateFlagBitsEXT : VkDirectFBSurfaceCreateFlagsEXT
6531   {
6532   };
6533 
6534   using DirectFBSurfaceCreateFlagsEXT = Flags<DirectFBSurfaceCreateFlagBitsEXT>;
6535 
6536   template <>
6537   struct FlagTraits<DirectFBSurfaceCreateFlagBitsEXT>
6538   {
6539     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                          isBitmask = true;
6540     static VULKAN_HPP_CONST_OR_CONSTEXPR DirectFBSurfaceCreateFlagsEXT allFlags  = {};
6541   };
6542 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
6543 
6544   //=== VK_EXT_device_address_binding_report ===
6545 
6546   enum class DeviceAddressBindingFlagBitsEXT : VkDeviceAddressBindingFlagsEXT
6547   {
6548     eInternalObject = VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT
6549   };
6550 
6551   using DeviceAddressBindingFlagsEXT = Flags<DeviceAddressBindingFlagBitsEXT>;
6552 
6553   template <>
6554   struct FlagTraits<DeviceAddressBindingFlagBitsEXT>
6555   {
6556     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                         isBitmask = true;
6557     static VULKAN_HPP_CONST_OR_CONSTEXPR DeviceAddressBindingFlagsEXT allFlags  = DeviceAddressBindingFlagBitsEXT::eInternalObject;
6558   };
6559 
6560   enum class DeviceAddressBindingTypeEXT
6561   {
6562     eBind   = VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT,
6563     eUnbind = VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT
6564   };
6565 
6566 #if defined( VK_USE_PLATFORM_FUCHSIA )
6567   //=== VK_FUCHSIA_buffer_collection ===
6568 
6569   enum class ImageConstraintsInfoFlagBitsFUCHSIA : VkImageConstraintsInfoFlagsFUCHSIA
6570   {
6571     eCpuReadRarely     = VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA,
6572     eCpuReadOften      = VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA,
6573     eCpuWriteRarely    = VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA,
6574     eCpuWriteOften     = VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA,
6575     eProtectedOptional = VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA
6576   };
6577 
6578   using ImageConstraintsInfoFlagsFUCHSIA = Flags<ImageConstraintsInfoFlagBitsFUCHSIA>;
6579 
6580   template <>
6581   struct FlagTraits<ImageConstraintsInfoFlagBitsFUCHSIA>
6582   {
6583     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                             isBitmask = true;
6584     static VULKAN_HPP_CONST_OR_CONSTEXPR ImageConstraintsInfoFlagsFUCHSIA allFlags =
6585       ImageConstraintsInfoFlagBitsFUCHSIA::eCpuReadRarely | ImageConstraintsInfoFlagBitsFUCHSIA::eCpuReadOften |
6586       ImageConstraintsInfoFlagBitsFUCHSIA::eCpuWriteRarely | ImageConstraintsInfoFlagBitsFUCHSIA::eCpuWriteOften |
6587       ImageConstraintsInfoFlagBitsFUCHSIA::eProtectedOptional;
6588   };
6589 
6590   enum class ImageFormatConstraintsFlagBitsFUCHSIA : VkImageFormatConstraintsFlagsFUCHSIA
6591   {
6592   };
6593 
6594   using ImageFormatConstraintsFlagsFUCHSIA = Flags<ImageFormatConstraintsFlagBitsFUCHSIA>;
6595 
6596   template <>
6597   struct FlagTraits<ImageFormatConstraintsFlagBitsFUCHSIA>
6598   {
6599     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                               isBitmask = true;
6600     static VULKAN_HPP_CONST_OR_CONSTEXPR ImageFormatConstraintsFlagsFUCHSIA allFlags  = {};
6601   };
6602 #endif /*VK_USE_PLATFORM_FUCHSIA*/
6603 
6604   //=== VK_EXT_frame_boundary ===
6605 
6606   enum class FrameBoundaryFlagBitsEXT : VkFrameBoundaryFlagsEXT
6607   {
6608     eFrameEnd = VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT
6609   };
6610 
6611   using FrameBoundaryFlagsEXT = Flags<FrameBoundaryFlagBitsEXT>;
6612 
6613   template <>
6614   struct FlagTraits<FrameBoundaryFlagBitsEXT>
6615   {
6616     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                  isBitmask = true;
6617     static VULKAN_HPP_CONST_OR_CONSTEXPR FrameBoundaryFlagsEXT allFlags  = FrameBoundaryFlagBitsEXT::eFrameEnd;
6618   };
6619 
6620 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
6621   //=== VK_QNX_screen_surface ===
6622 
6623   enum class ScreenSurfaceCreateFlagBitsQNX : VkScreenSurfaceCreateFlagsQNX
6624   {
6625   };
6626 
6627   using ScreenSurfaceCreateFlagsQNX = Flags<ScreenSurfaceCreateFlagBitsQNX>;
6628 
6629   template <>
6630   struct FlagTraits<ScreenSurfaceCreateFlagBitsQNX>
6631   {
6632     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                        isBitmask = true;
6633     static VULKAN_HPP_CONST_OR_CONSTEXPR ScreenSurfaceCreateFlagsQNX allFlags  = {};
6634   };
6635 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
6636 
6637   //=== VK_EXT_opacity_micromap ===
6638 
6639   enum class MicromapTypeEXT
6640   {
6641     eOpacityMicromap = VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT,
6642 #if defined( VK_ENABLE_BETA_EXTENSIONS )
6643     eDisplacementMicromapNV = VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV
6644 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
6645   };
6646 
6647   enum class BuildMicromapFlagBitsEXT : VkBuildMicromapFlagsEXT
6648   {
6649     ePreferFastTrace = VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT,
6650     ePreferFastBuild = VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT,
6651     eAllowCompaction = VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT
6652   };
6653 
6654   using BuildMicromapFlagsEXT = Flags<BuildMicromapFlagBitsEXT>;
6655 
6656   template <>
6657   struct FlagTraits<BuildMicromapFlagBitsEXT>
6658   {
6659     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                  isBitmask = true;
6660     static VULKAN_HPP_CONST_OR_CONSTEXPR BuildMicromapFlagsEXT allFlags =
6661       BuildMicromapFlagBitsEXT::ePreferFastTrace | BuildMicromapFlagBitsEXT::ePreferFastBuild | BuildMicromapFlagBitsEXT::eAllowCompaction;
6662   };
6663 
6664   enum class CopyMicromapModeEXT
6665   {
6666     eClone       = VK_COPY_MICROMAP_MODE_CLONE_EXT,
6667     eSerialize   = VK_COPY_MICROMAP_MODE_SERIALIZE_EXT,
6668     eDeserialize = VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT,
6669     eCompact     = VK_COPY_MICROMAP_MODE_COMPACT_EXT
6670   };
6671 
6672   enum class MicromapCreateFlagBitsEXT : VkMicromapCreateFlagsEXT
6673   {
6674     eDeviceAddressCaptureReplay = VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT
6675   };
6676 
6677   using MicromapCreateFlagsEXT = Flags<MicromapCreateFlagBitsEXT>;
6678 
6679   template <>
6680   struct FlagTraits<MicromapCreateFlagBitsEXT>
6681   {
6682     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
6683     static VULKAN_HPP_CONST_OR_CONSTEXPR MicromapCreateFlagsEXT allFlags  = MicromapCreateFlagBitsEXT::eDeviceAddressCaptureReplay;
6684   };
6685 
6686   enum class BuildMicromapModeEXT
6687   {
6688     eBuild = VK_BUILD_MICROMAP_MODE_BUILD_EXT
6689   };
6690 
6691   enum class OpacityMicromapFormatEXT
6692   {
6693     e2State = VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT,
6694     e4State = VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT
6695   };
6696 
6697   enum class OpacityMicromapSpecialIndexEXT
6698   {
6699     eFullyTransparent        = VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT,
6700     eFullyOpaque             = VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT,
6701     eFullyUnknownTransparent = VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT,
6702     eFullyUnknownOpaque      = VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT
6703   };
6704 
6705 #if defined( VK_ENABLE_BETA_EXTENSIONS )
6706   //=== VK_NV_displacement_micromap ===
6707 
6708   enum class DisplacementMicromapFormatNV
6709   {
6710     e64Triangles64Bytes    = VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV,
6711     e256Triangles128Bytes  = VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV,
6712     e1024Triangles128Bytes = VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV
6713   };
6714 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
6715 
6716   //=== VK_NV_memory_decompression ===
6717 
6718   enum class MemoryDecompressionMethodFlagBitsNV : VkMemoryDecompressionMethodFlagsNV
6719   {
6720     eGdeflate10 = VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV
6721   };
6722 
6723   using MemoryDecompressionMethodFlagsNV = Flags<MemoryDecompressionMethodFlagBitsNV>;
6724 
6725   template <>
6726   struct FlagTraits<MemoryDecompressionMethodFlagBitsNV>
6727   {
6728     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                             isBitmask = true;
6729     static VULKAN_HPP_CONST_OR_CONSTEXPR MemoryDecompressionMethodFlagsNV allFlags  = MemoryDecompressionMethodFlagBitsNV::eGdeflate10;
6730   };
6731 
6732   //=== VK_EXT_subpass_merge_feedback ===
6733 
6734   enum class SubpassMergeStatusEXT
6735   {
6736     eMerged                               = VK_SUBPASS_MERGE_STATUS_MERGED_EXT,
6737     eDisallowed                           = VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT,
6738     eNotMergedSideEffects                 = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT,
6739     eNotMergedSamplesMismatch             = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT,
6740     eNotMergedViewsMismatch               = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT,
6741     eNotMergedAliasing                    = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT,
6742     eNotMergedDependencies                = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT,
6743     eNotMergedIncompatibleInputAttachment = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT,
6744     eNotMergedTooManyAttachments          = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT,
6745     eNotMergedInsufficientStorage         = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT,
6746     eNotMergedDepthStencilCount           = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT,
6747     eNotMergedResolveAttachmentReuse      = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT,
6748     eNotMergedSingleSubpass               = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT,
6749     eNotMergedUnspecified                 = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT
6750   };
6751 
6752   //=== VK_LUNARG_direct_driver_loading ===
6753 
6754   enum class DirectDriverLoadingModeLUNARG
6755   {
6756     eExclusive = VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG,
6757     eInclusive = VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG
6758   };
6759 
6760   enum class DirectDriverLoadingFlagBitsLUNARG : VkDirectDriverLoadingFlagsLUNARG
6761   {
6762   };
6763 
6764   using DirectDriverLoadingFlagsLUNARG = Flags<DirectDriverLoadingFlagBitsLUNARG>;
6765 
6766   template <>
6767   struct FlagTraits<DirectDriverLoadingFlagBitsLUNARG>
6768   {
6769     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                           isBitmask = true;
6770     static VULKAN_HPP_CONST_OR_CONSTEXPR DirectDriverLoadingFlagsLUNARG allFlags  = {};
6771   };
6772 
6773   //=== VK_EXT_rasterization_order_attachment_access ===
6774 
6775   enum class PipelineColorBlendStateCreateFlagBits : VkPipelineColorBlendStateCreateFlags
6776   {
6777     eRasterizationOrderAttachmentAccessARM = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM,
6778     eRasterizationOrderAttachmentAccessEXT = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT
6779   };
6780 
6781   using PipelineColorBlendStateCreateFlags = Flags<PipelineColorBlendStateCreateFlagBits>;
6782 
6783   template <>
6784   struct FlagTraits<PipelineColorBlendStateCreateFlagBits>
6785   {
6786     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                               isBitmask = true;
6787     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineColorBlendStateCreateFlags allFlags =
6788       PipelineColorBlendStateCreateFlagBits::eRasterizationOrderAttachmentAccessEXT;
6789   };
6790 
6791   enum class PipelineDepthStencilStateCreateFlagBits : VkPipelineDepthStencilStateCreateFlags
6792   {
6793     eRasterizationOrderAttachmentDepthAccessARM   = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM,
6794     eRasterizationOrderAttachmentStencilAccessARM = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM,
6795     eRasterizationOrderAttachmentDepthAccessEXT   = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
6796     eRasterizationOrderAttachmentStencilAccessEXT = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
6797   };
6798 
6799   using PipelineDepthStencilStateCreateFlags = Flags<PipelineDepthStencilStateCreateFlagBits>;
6800 
6801   template <>
6802   struct FlagTraits<PipelineDepthStencilStateCreateFlagBits>
6803   {
6804     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                 isBitmask = true;
6805     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineDepthStencilStateCreateFlags allFlags =
6806       PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentDepthAccessEXT |
6807       PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentStencilAccessEXT;
6808   };
6809 
6810   //=== VK_NV_optical_flow ===
6811 
6812   enum class OpticalFlowUsageFlagBitsNV : VkOpticalFlowUsageFlagsNV
6813   {
6814     eUnknown    = VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV,
6815     eInput      = VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV,
6816     eOutput     = VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV,
6817     eHint       = VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV,
6818     eCost       = VK_OPTICAL_FLOW_USAGE_COST_BIT_NV,
6819     eGlobalFlow = VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV
6820   };
6821 
6822   using OpticalFlowUsageFlagsNV = Flags<OpticalFlowUsageFlagBitsNV>;
6823 
6824   template <>
6825   struct FlagTraits<OpticalFlowUsageFlagBitsNV>
6826   {
6827     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                    isBitmask = true;
6828     static VULKAN_HPP_CONST_OR_CONSTEXPR OpticalFlowUsageFlagsNV allFlags  = OpticalFlowUsageFlagBitsNV::eUnknown | OpticalFlowUsageFlagBitsNV::eInput |
6829                                                                             OpticalFlowUsageFlagBitsNV::eOutput | OpticalFlowUsageFlagBitsNV::eHint |
6830                                                                             OpticalFlowUsageFlagBitsNV::eCost | OpticalFlowUsageFlagBitsNV::eGlobalFlow;
6831   };
6832 
6833   enum class OpticalFlowGridSizeFlagBitsNV : VkOpticalFlowGridSizeFlagsNV
6834   {
6835     eUnknown = VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV,
6836     e1X1     = VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV,
6837     e2X2     = VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV,
6838     e4X4     = VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV,
6839     e8X8     = VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV
6840   };
6841 
6842   using OpticalFlowGridSizeFlagsNV = Flags<OpticalFlowGridSizeFlagBitsNV>;
6843 
6844   template <>
6845   struct FlagTraits<OpticalFlowGridSizeFlagBitsNV>
6846   {
6847     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
6848     static VULKAN_HPP_CONST_OR_CONSTEXPR OpticalFlowGridSizeFlagsNV allFlags  = OpticalFlowGridSizeFlagBitsNV::eUnknown | OpticalFlowGridSizeFlagBitsNV::e1X1 |
6849                                                                                OpticalFlowGridSizeFlagBitsNV::e2X2 | OpticalFlowGridSizeFlagBitsNV::e4X4 |
6850                                                                                OpticalFlowGridSizeFlagBitsNV::e8X8;
6851   };
6852 
6853   enum class OpticalFlowPerformanceLevelNV
6854   {
6855     eUnknown = VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV,
6856     eSlow    = VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV,
6857     eMedium  = VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV,
6858     eFast    = VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV
6859   };
6860 
6861   enum class OpticalFlowSessionBindingPointNV
6862   {
6863     eUnknown            = VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV,
6864     eInput              = VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV,
6865     eReference          = VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV,
6866     eHint               = VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV,
6867     eFlowVector         = VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV,
6868     eBackwardFlowVector = VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV,
6869     eCost               = VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV,
6870     eBackwardCost       = VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV,
6871     eGlobalFlow         = VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV
6872   };
6873 
6874   enum class OpticalFlowSessionCreateFlagBitsNV : VkOpticalFlowSessionCreateFlagsNV
6875   {
6876     eEnableHint       = VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV,
6877     eEnableCost       = VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV,
6878     eEnableGlobalFlow = VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV,
6879     eAllowRegions     = VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV,
6880     eBothDirections   = VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV
6881   };
6882 
6883   using OpticalFlowSessionCreateFlagsNV = Flags<OpticalFlowSessionCreateFlagBitsNV>;
6884 
6885   template <>
6886   struct FlagTraits<OpticalFlowSessionCreateFlagBitsNV>
6887   {
6888     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                            isBitmask = true;
6889     static VULKAN_HPP_CONST_OR_CONSTEXPR OpticalFlowSessionCreateFlagsNV allFlags =
6890       OpticalFlowSessionCreateFlagBitsNV::eEnableHint | OpticalFlowSessionCreateFlagBitsNV::eEnableCost |
6891       OpticalFlowSessionCreateFlagBitsNV::eEnableGlobalFlow | OpticalFlowSessionCreateFlagBitsNV::eAllowRegions |
6892       OpticalFlowSessionCreateFlagBitsNV::eBothDirections;
6893   };
6894 
6895   enum class OpticalFlowExecuteFlagBitsNV : VkOpticalFlowExecuteFlagsNV
6896   {
6897     eDisableTemporalHints = VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV
6898   };
6899 
6900   using OpticalFlowExecuteFlagsNV = Flags<OpticalFlowExecuteFlagBitsNV>;
6901 
6902   template <>
6903   struct FlagTraits<OpticalFlowExecuteFlagBitsNV>
6904   {
6905     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                      isBitmask = true;
6906     static VULKAN_HPP_CONST_OR_CONSTEXPR OpticalFlowExecuteFlagsNV allFlags  = OpticalFlowExecuteFlagBitsNV::eDisableTemporalHints;
6907   };
6908 
6909   //=== VK_KHR_maintenance5 ===
6910 
6911   enum class PipelineCreateFlagBits2KHR : VkPipelineCreateFlags2KHR
6912   {
6913     eDisableOptimization                      = VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR,
6914     eAllowDerivatives                         = VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR,
6915     eDerivative                               = VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR,
6916     eViewIndexFromDeviceIndex                 = VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR,
6917     eDispatchBase                             = VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR,
6918     eDeferCompileNV                           = VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV,
6919     eCaptureStatistics                        = VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR,
6920     eCaptureInternalRepresentations           = VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,
6921     eFailOnPipelineCompileRequired            = VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR,
6922     eEarlyReturnOnFailure                     = VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR,
6923     eLinkTimeOptimizationEXT                  = VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT,
6924     eRetainLinkTimeOptimizationInfoEXT        = VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT,
6925     eLibrary                                  = VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR,
6926     eRayTracingSkipTriangles                  = VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,
6927     eRayTracingSkipAabbs                      = VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR,
6928     eRayTracingNoNullAnyHitShaders            = VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR,
6929     eRayTracingNoNullClosestHitShaders        = VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR,
6930     eRayTracingNoNullMissShaders              = VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR,
6931     eRayTracingNoNullIntersectionShaders      = VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR,
6932     eRayTracingShaderGroupHandleCaptureReplay = VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR,
6933     eIndirectBindableNV                       = VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV,
6934     eRayTracingAllowMotionNV                  = VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV,
6935     eRenderingFragmentShadingRateAttachment   = VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
6936     eRenderingFragmentDensityMapAttachmentEXT = VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
6937     eRayTracingOpacityMicromapEXT             = VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT,
6938     eColorAttachmentFeedbackLoopEXT           = VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,
6939     eDepthStencilAttachmentFeedbackLoopEXT    = VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,
6940     eNoProtectedAccessEXT                     = VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT,
6941     eProtectedAccessOnlyEXT                   = VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT,
6942     eRayTracingDisplacementMicromapNV         = VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV,
6943     eDescriptorBufferEXT                      = VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT
6944   };
6945 
6946   using PipelineCreateFlags2KHR = Flags<PipelineCreateFlagBits2KHR>;
6947 
6948   template <>
6949   struct FlagTraits<PipelineCreateFlagBits2KHR>
6950   {
6951     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                    isBitmask = true;
6952     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineCreateFlags2KHR allFlags =
6953       PipelineCreateFlagBits2KHR::eDisableOptimization | PipelineCreateFlagBits2KHR::eAllowDerivatives | PipelineCreateFlagBits2KHR::eDerivative |
6954       PipelineCreateFlagBits2KHR::eViewIndexFromDeviceIndex | PipelineCreateFlagBits2KHR::eDispatchBase | PipelineCreateFlagBits2KHR::eDeferCompileNV |
6955       PipelineCreateFlagBits2KHR::eCaptureStatistics | PipelineCreateFlagBits2KHR::eCaptureInternalRepresentations |
6956       PipelineCreateFlagBits2KHR::eFailOnPipelineCompileRequired | PipelineCreateFlagBits2KHR::eEarlyReturnOnFailure |
6957       PipelineCreateFlagBits2KHR::eLinkTimeOptimizationEXT | PipelineCreateFlagBits2KHR::eRetainLinkTimeOptimizationInfoEXT |
6958       PipelineCreateFlagBits2KHR::eLibrary | PipelineCreateFlagBits2KHR::eRayTracingSkipTriangles | PipelineCreateFlagBits2KHR::eRayTracingSkipAabbs |
6959       PipelineCreateFlagBits2KHR::eRayTracingNoNullAnyHitShaders | PipelineCreateFlagBits2KHR::eRayTracingNoNullClosestHitShaders |
6960       PipelineCreateFlagBits2KHR::eRayTracingNoNullMissShaders | PipelineCreateFlagBits2KHR::eRayTracingNoNullIntersectionShaders |
6961       PipelineCreateFlagBits2KHR::eRayTracingShaderGroupHandleCaptureReplay | PipelineCreateFlagBits2KHR::eIndirectBindableNV |
6962       PipelineCreateFlagBits2KHR::eRayTracingAllowMotionNV | PipelineCreateFlagBits2KHR::eRenderingFragmentShadingRateAttachment |
6963       PipelineCreateFlagBits2KHR::eRenderingFragmentDensityMapAttachmentEXT | PipelineCreateFlagBits2KHR::eRayTracingOpacityMicromapEXT |
6964       PipelineCreateFlagBits2KHR::eColorAttachmentFeedbackLoopEXT | PipelineCreateFlagBits2KHR::eDepthStencilAttachmentFeedbackLoopEXT |
6965       PipelineCreateFlagBits2KHR::eNoProtectedAccessEXT | PipelineCreateFlagBits2KHR::eProtectedAccessOnlyEXT |
6966       PipelineCreateFlagBits2KHR::eRayTracingDisplacementMicromapNV | PipelineCreateFlagBits2KHR::eDescriptorBufferEXT;
6967   };
6968 
6969   enum class BufferUsageFlagBits2KHR : VkBufferUsageFlags2KHR
6970   {
6971     eTransferSrc        = VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR,
6972     eTransferDst        = VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR,
6973     eUniformTexelBuffer = VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR,
6974     eStorageTexelBuffer = VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR,
6975     eUniformBuffer      = VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR,
6976     eStorageBuffer      = VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR,
6977     eIndexBuffer        = VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR,
6978     eVertexBuffer       = VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR,
6979     eIndirectBuffer     = VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR,
6980 #if defined( VK_ENABLE_BETA_EXTENSIONS )
6981     eExecutionGraphScratchAMDX = VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX,
6982 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
6983     eConditionalRenderingEXT           = VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT,
6984     eShaderBindingTable                = VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR,
6985     eRayTracingNV                      = VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV,
6986     eTransformFeedbackBufferEXT        = VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,
6987     eTransformFeedbackCounterBufferEXT = VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,
6988     eVideoDecodeSrc                    = VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR,
6989     eVideoDecodeDst                    = VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR,
6990 #if defined( VK_ENABLE_BETA_EXTENSIONS )
6991     eVideoEncodeDst = VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR,
6992     eVideoEncodeSrc = VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR,
6993 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
6994     eShaderDeviceAddress                     = VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR,
6995     eAccelerationStructureBuildInputReadOnly = VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR,
6996     eAccelerationStructureStorage            = VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,
6997     eSamplerDescriptorBufferEXT              = VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT,
6998     eResourceDescriptorBufferEXT             = VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT,
6999     ePushDescriptorsDescriptorBufferEXT      = VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT,
7000     eMicromapBuildInputReadOnlyEXT           = VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT,
7001     eMicromapStorageEXT                      = VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT
7002   };
7003 
7004   using BufferUsageFlags2KHR = Flags<BufferUsageFlagBits2KHR>;
7005 
7006   template <>
7007   struct FlagTraits<BufferUsageFlagBits2KHR>
7008   {
7009     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                 isBitmask = true;
7010     static VULKAN_HPP_CONST_OR_CONSTEXPR BufferUsageFlags2KHR allFlags =
7011       BufferUsageFlagBits2KHR::eTransferSrc | BufferUsageFlagBits2KHR::eTransferDst | BufferUsageFlagBits2KHR::eUniformTexelBuffer |
7012       BufferUsageFlagBits2KHR::eStorageTexelBuffer | BufferUsageFlagBits2KHR::eUniformBuffer | BufferUsageFlagBits2KHR::eStorageBuffer |
7013       BufferUsageFlagBits2KHR::eIndexBuffer | BufferUsageFlagBits2KHR::eVertexBuffer | BufferUsageFlagBits2KHR::eIndirectBuffer
7014 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7015       | BufferUsageFlagBits2KHR::eExecutionGraphScratchAMDX
7016 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7017       | BufferUsageFlagBits2KHR::eConditionalRenderingEXT | BufferUsageFlagBits2KHR::eShaderBindingTable |
7018       BufferUsageFlagBits2KHR::eTransformFeedbackBufferEXT | BufferUsageFlagBits2KHR::eTransformFeedbackCounterBufferEXT |
7019       BufferUsageFlagBits2KHR::eVideoDecodeSrc | BufferUsageFlagBits2KHR::eVideoDecodeDst
7020 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7021       | BufferUsageFlagBits2KHR::eVideoEncodeDst | BufferUsageFlagBits2KHR::eVideoEncodeSrc
7022 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7023       | BufferUsageFlagBits2KHR::eShaderDeviceAddress | BufferUsageFlagBits2KHR::eAccelerationStructureBuildInputReadOnly |
7024       BufferUsageFlagBits2KHR::eAccelerationStructureStorage | BufferUsageFlagBits2KHR::eSamplerDescriptorBufferEXT |
7025       BufferUsageFlagBits2KHR::eResourceDescriptorBufferEXT | BufferUsageFlagBits2KHR::ePushDescriptorsDescriptorBufferEXT |
7026       BufferUsageFlagBits2KHR::eMicromapBuildInputReadOnlyEXT | BufferUsageFlagBits2KHR::eMicromapStorageEXT;
7027   };
7028 
7029   //=== VK_EXT_shader_object ===
7030 
7031   enum class ShaderCreateFlagBitsEXT : VkShaderCreateFlagsEXT
7032   {
7033     eLinkStage                     = VK_SHADER_CREATE_LINK_STAGE_BIT_EXT,
7034     eAllowVaryingSubgroupSize      = VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT,
7035     eRequireFullSubgroups          = VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT,
7036     eNoTaskShader                  = VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT,
7037     eDispatchBase                  = VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT,
7038     eFragmentShadingRateAttachment = VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT,
7039     eFragmentDensityMapAttachment  = VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
7040   };
7041 
7042   using ShaderCreateFlagsEXT = Flags<ShaderCreateFlagBitsEXT>;
7043 
7044   template <>
7045   struct FlagTraits<ShaderCreateFlagBitsEXT>
7046   {
7047     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                 isBitmask = true;
7048     static VULKAN_HPP_CONST_OR_CONSTEXPR ShaderCreateFlagsEXT allFlags =
7049       ShaderCreateFlagBitsEXT::eLinkStage | ShaderCreateFlagBitsEXT::eAllowVaryingSubgroupSize | ShaderCreateFlagBitsEXT::eRequireFullSubgroups |
7050       ShaderCreateFlagBitsEXT::eNoTaskShader | ShaderCreateFlagBitsEXT::eDispatchBase | ShaderCreateFlagBitsEXT::eFragmentShadingRateAttachment |
7051       ShaderCreateFlagBitsEXT::eFragmentDensityMapAttachment;
7052   };
7053 
7054   enum class ShaderCodeTypeEXT
7055   {
7056     eBinary = VK_SHADER_CODE_TYPE_BINARY_EXT,
7057     eSpirv  = VK_SHADER_CODE_TYPE_SPIRV_EXT
7058   };
7059 
7060   //=== VK_NV_ray_tracing_invocation_reorder ===
7061 
7062   enum class RayTracingInvocationReorderModeNV
7063   {
7064     eNone    = VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV,
7065     eReorder = VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV
7066   };
7067 
7068   //=== VK_NV_low_latency2 ===
7069 
7070   enum class LatencyMarkerNV
7071   {
7072     eSimulationStart            = VK_LATENCY_MARKER_SIMULATION_START_NV,
7073     eSimulationEnd              = VK_LATENCY_MARKER_SIMULATION_END_NV,
7074     eRendersubmitStart          = VK_LATENCY_MARKER_RENDERSUBMIT_START_NV,
7075     eRendersubmitEnd            = VK_LATENCY_MARKER_RENDERSUBMIT_END_NV,
7076     ePresentStart               = VK_LATENCY_MARKER_PRESENT_START_NV,
7077     ePresentEnd                 = VK_LATENCY_MARKER_PRESENT_END_NV,
7078     eInputSample                = VK_LATENCY_MARKER_INPUT_SAMPLE_NV,
7079     eTriggerFlash               = VK_LATENCY_MARKER_TRIGGER_FLASH_NV,
7080     eOutOfBandRendersubmitStart = VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV,
7081     eOutOfBandRendersubmitEnd   = VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV,
7082     eOutOfBandPresentStart      = VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV,
7083     eOutOfBandPresentEnd        = VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV
7084   };
7085 
7086   enum class OutOfBandQueueTypeNV
7087   {
7088     eRender  = VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV,
7089     ePresent = VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV
7090   };
7091 
7092   //=== VK_KHR_cooperative_matrix ===
7093 
7094   enum class ScopeKHR
7095   {
7096     eDevice      = VK_SCOPE_DEVICE_KHR,
7097     eWorkgroup   = VK_SCOPE_WORKGROUP_KHR,
7098     eSubgroup    = VK_SCOPE_SUBGROUP_KHR,
7099     eQueueFamily = VK_SCOPE_QUEUE_FAMILY_KHR
7100   };
7101   using ScopeNV = ScopeKHR;
7102 
7103   enum class ComponentTypeKHR
7104   {
7105     eFloat16 = VK_COMPONENT_TYPE_FLOAT16_KHR,
7106     eFloat32 = VK_COMPONENT_TYPE_FLOAT32_KHR,
7107     eFloat64 = VK_COMPONENT_TYPE_FLOAT64_KHR,
7108     eSint8   = VK_COMPONENT_TYPE_SINT8_KHR,
7109     eSint16  = VK_COMPONENT_TYPE_SINT16_KHR,
7110     eSint32  = VK_COMPONENT_TYPE_SINT32_KHR,
7111     eSint64  = VK_COMPONENT_TYPE_SINT64_KHR,
7112     eUint8   = VK_COMPONENT_TYPE_UINT8_KHR,
7113     eUint16  = VK_COMPONENT_TYPE_UINT16_KHR,
7114     eUint32  = VK_COMPONENT_TYPE_UINT32_KHR,
7115     eUint64  = VK_COMPONENT_TYPE_UINT64_KHR
7116   };
7117   using ComponentTypeNV = ComponentTypeKHR;
7118 
7119   //=== VK_QCOM_image_processing2 ===
7120 
7121   enum class BlockMatchWindowCompareModeQCOM
7122   {
7123     eMin = VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM,
7124     eMax = VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM
7125   };
7126 
7127   //=== VK_QCOM_filter_cubic_weights ===
7128 
7129   enum class CubicFilterWeightsQCOM
7130   {
7131     eCatmullRom          = VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM,
7132     eZeroTangentCardinal = VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM,
7133     eBSpline             = VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM,
7134     eMitchellNetravali   = VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM
7135   };
7136 
7137   //=== VK_MSFT_layered_driver ===
7138 
7139   enum class LayeredDriverUnderlyingApiMSFT
7140   {
7141     eNone  = VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT,
7142     eD3D12 = VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT
7143   };
7144 
7145   //=========================
7146   //=== Index Type Traits ===
7147   //=========================
7148 
7149   template <typename T>
7150   struct IndexTypeValue
7151   {
7152   };
7153 
7154   template <>
7155   struct IndexTypeValue<uint16_t>
7156   {
7157     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint16;
7158   };
7159 
7160   template <>
7161   struct CppType<IndexType, IndexType::eUint16>
7162   {
7163     using Type = uint16_t;
7164   };
7165 
7166   template <>
7167   struct IndexTypeValue<uint32_t>
7168   {
7169     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint32;
7170   };
7171 
7172   template <>
7173   struct CppType<IndexType, IndexType::eUint32>
7174   {
7175     using Type = uint32_t;
7176   };
7177 
7178   template <>
7179   struct IndexTypeValue<uint8_t>
7180   {
7181     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint8EXT;
7182   };
7183 
7184   template <>
7185   struct CppType<IndexType, IndexType::eUint8EXT>
7186   {
7187     using Type = uint8_t;
7188   };
7189 
7190   //===========================================================
7191   //=== Mapping from ObjectType to DebugReportObjectTypeEXT ===
7192   //===========================================================
7193 
debugReportObjectType(VULKAN_HPP_NAMESPACE::ObjectType objectType)7194   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType )
7195   {
7196     switch ( objectType )
7197     {
7198         //=== VK_VERSION_1_0 ===
7199       case VULKAN_HPP_NAMESPACE::ObjectType::eInstance: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eInstance;
7200       case VULKAN_HPP_NAMESPACE::ObjectType::ePhysicalDevice: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePhysicalDevice;
7201       case VULKAN_HPP_NAMESPACE::ObjectType::eDevice: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDevice;
7202       case VULKAN_HPP_NAMESPACE::ObjectType::eQueue: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueue;
7203       case VULKAN_HPP_NAMESPACE::ObjectType::eDeviceMemory: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDeviceMemory;
7204       case VULKAN_HPP_NAMESPACE::ObjectType::eFence: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFence;
7205       case VULKAN_HPP_NAMESPACE::ObjectType::eSemaphore: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSemaphore;
7206       case VULKAN_HPP_NAMESPACE::ObjectType::eEvent: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eEvent;
7207       case VULKAN_HPP_NAMESPACE::ObjectType::eQueryPool: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueryPool;
7208       case VULKAN_HPP_NAMESPACE::ObjectType::eBuffer: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBuffer;
7209       case VULKAN_HPP_NAMESPACE::ObjectType::eBufferView: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferView;
7210       case VULKAN_HPP_NAMESPACE::ObjectType::eImage: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImage;
7211       case VULKAN_HPP_NAMESPACE::ObjectType::eImageView: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView;
7212       case VULKAN_HPP_NAMESPACE::ObjectType::eShaderModule: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eShaderModule;
7213       case VULKAN_HPP_NAMESPACE::ObjectType::ePipelineCache: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineCache;
7214       case VULKAN_HPP_NAMESPACE::ObjectType::ePipeline: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline;
7215       case VULKAN_HPP_NAMESPACE::ObjectType::ePipelineLayout: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineLayout;
7216       case VULKAN_HPP_NAMESPACE::ObjectType::eSampler: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSampler;
7217       case VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorPool: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorPool;
7218       case VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSet: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSet;
7219       case VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSetLayout: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSetLayout;
7220       case VULKAN_HPP_NAMESPACE::ObjectType::eFramebuffer: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFramebuffer;
7221       case VULKAN_HPP_NAMESPACE::ObjectType::eRenderPass: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eRenderPass;
7222       case VULKAN_HPP_NAMESPACE::ObjectType::eCommandPool: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandPool;
7223       case VULKAN_HPP_NAMESPACE::ObjectType::eCommandBuffer:
7224         return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandBuffer;
7225 
7226         //=== VK_VERSION_1_1 ===
7227       case VULKAN_HPP_NAMESPACE::ObjectType::eSamplerYcbcrConversion: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSamplerYcbcrConversion;
7228       case VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorUpdateTemplate:
7229         return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorUpdateTemplate;
7230 
7231         //=== VK_VERSION_1_3 ===
7232       case VULKAN_HPP_NAMESPACE::ObjectType::ePrivateDataSlot:
7233         return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
7234 
7235         //=== VK_KHR_surface ===
7236       case VULKAN_HPP_NAMESPACE::ObjectType::eSurfaceKHR:
7237         return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSurfaceKHR;
7238 
7239         //=== VK_KHR_swapchain ===
7240       case VULKAN_HPP_NAMESPACE::ObjectType::eSwapchainKHR:
7241         return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSwapchainKHR;
7242 
7243         //=== VK_KHR_display ===
7244       case VULKAN_HPP_NAMESPACE::ObjectType::eDisplayKHR: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayKHR;
7245       case VULKAN_HPP_NAMESPACE::ObjectType::eDisplayModeKHR:
7246         return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayModeKHR;
7247 
7248         //=== VK_EXT_debug_report ===
7249       case VULKAN_HPP_NAMESPACE::ObjectType::eDebugReportCallbackEXT:
7250         return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDebugReportCallbackEXT;
7251 
7252         //=== VK_KHR_video_queue ===
7253       case VULKAN_HPP_NAMESPACE::ObjectType::eVideoSessionKHR: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
7254       case VULKAN_HPP_NAMESPACE::ObjectType::eVideoSessionParametersKHR:
7255         return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
7256 
7257         //=== VK_NVX_binary_import ===
7258       case VULKAN_HPP_NAMESPACE::ObjectType::eCuModuleNVX: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCuModuleNVX;
7259       case VULKAN_HPP_NAMESPACE::ObjectType::eCuFunctionNVX:
7260         return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCuFunctionNVX;
7261 
7262         //=== VK_EXT_debug_utils ===
7263       case VULKAN_HPP_NAMESPACE::ObjectType::eDebugUtilsMessengerEXT:
7264         return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
7265 
7266         //=== VK_KHR_acceleration_structure ===
7267       case VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureKHR:
7268         return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureKHR;
7269 
7270         //=== VK_EXT_validation_cache ===
7271       case VULKAN_HPP_NAMESPACE::ObjectType::eValidationCacheEXT:
7272         return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eValidationCacheEXT;
7273 
7274         //=== VK_NV_ray_tracing ===
7275       case VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureNV:
7276         return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureNV;
7277 
7278         //=== VK_INTEL_performance_query ===
7279       case VULKAN_HPP_NAMESPACE::ObjectType::ePerformanceConfigurationINTEL:
7280         return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
7281 
7282         //=== VK_KHR_deferred_host_operations ===
7283       case VULKAN_HPP_NAMESPACE::ObjectType::eDeferredOperationKHR:
7284         return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
7285 
7286         //=== VK_NV_device_generated_commands ===
7287       case VULKAN_HPP_NAMESPACE::ObjectType::eIndirectCommandsLayoutNV: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
7288 
7289 #if defined( VK_USE_PLATFORM_FUCHSIA )
7290         //=== VK_FUCHSIA_buffer_collection ===
7291       case VULKAN_HPP_NAMESPACE::ObjectType::eBufferCollectionFUCHSIA: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferCollectionFUCHSIA;
7292 #endif /*VK_USE_PLATFORM_FUCHSIA*/
7293 
7294         //=== VK_EXT_opacity_micromap ===
7295       case VULKAN_HPP_NAMESPACE::ObjectType::eMicromapEXT:
7296         return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
7297 
7298         //=== VK_NV_optical_flow ===
7299       case VULKAN_HPP_NAMESPACE::ObjectType::eOpticalFlowSessionNV:
7300         return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
7301 
7302         //=== VK_EXT_shader_object ===
7303       case VULKAN_HPP_NAMESPACE::ObjectType::eShaderEXT: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
7304 
7305       default: VULKAN_HPP_ASSERT( false && "unknown ObjectType" ); return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
7306     }
7307   }
7308 
7309 }  // namespace VULKAN_HPP_NAMESPACE
7310 #endif
7311