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