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