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