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