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