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