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