• 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 
14   template <typename EnumType, EnumType value>
15   struct CppType
16   {
17   };
18 
19   //=============
20   //=== ENUMs ===
21   //=============
22 
23   //=== VK_VERSION_1_0 ===
24 
25   enum class Result
26   {
27     eSuccess                          = VK_SUCCESS,
28     eNotReady                         = VK_NOT_READY,
29     eTimeout                          = VK_TIMEOUT,
30     eEventSet                         = VK_EVENT_SET,
31     eEventReset                       = VK_EVENT_RESET,
32     eIncomplete                       = VK_INCOMPLETE,
33     eErrorOutOfHostMemory             = VK_ERROR_OUT_OF_HOST_MEMORY,
34     eErrorOutOfDeviceMemory           = VK_ERROR_OUT_OF_DEVICE_MEMORY,
35     eErrorInitializationFailed        = VK_ERROR_INITIALIZATION_FAILED,
36     eErrorDeviceLost                  = VK_ERROR_DEVICE_LOST,
37     eErrorMemoryMapFailed             = VK_ERROR_MEMORY_MAP_FAILED,
38     eErrorLayerNotPresent             = VK_ERROR_LAYER_NOT_PRESENT,
39     eErrorExtensionNotPresent         = VK_ERROR_EXTENSION_NOT_PRESENT,
40     eErrorFeatureNotPresent           = VK_ERROR_FEATURE_NOT_PRESENT,
41     eErrorIncompatibleDriver          = VK_ERROR_INCOMPATIBLE_DRIVER,
42     eErrorTooManyObjects              = VK_ERROR_TOO_MANY_OBJECTS,
43     eErrorFormatNotSupported          = VK_ERROR_FORMAT_NOT_SUPPORTED,
44     eErrorFragmentedPool              = VK_ERROR_FRAGMENTED_POOL,
45     eErrorUnknown                     = VK_ERROR_UNKNOWN,
46     eErrorOutOfPoolMemory             = VK_ERROR_OUT_OF_POOL_MEMORY,
47     eErrorInvalidExternalHandle       = VK_ERROR_INVALID_EXTERNAL_HANDLE,
48     eErrorFragmentation               = VK_ERROR_FRAGMENTATION,
49     eErrorInvalidOpaqueCaptureAddress = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
50     ePipelineCompileRequired          = VK_PIPELINE_COMPILE_REQUIRED,
51     eErrorSurfaceLostKHR              = VK_ERROR_SURFACE_LOST_KHR,
52     eErrorNativeWindowInUseKHR        = VK_ERROR_NATIVE_WINDOW_IN_USE_KHR,
53     eSuboptimalKHR                    = VK_SUBOPTIMAL_KHR,
54     eErrorOutOfDateKHR                = VK_ERROR_OUT_OF_DATE_KHR,
55     eErrorIncompatibleDisplayKHR      = VK_ERROR_INCOMPATIBLE_DISPLAY_KHR,
56     eErrorValidationFailedEXT         = VK_ERROR_VALIDATION_FAILED_EXT,
57     eErrorInvalidShaderNV             = VK_ERROR_INVALID_SHADER_NV,
58 #if defined( VK_ENABLE_BETA_EXTENSIONS )
59     eErrorImageUsageNotSupportedKHR            = VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR,
60     eErrorVideoPictureLayoutNotSupportedKHR    = VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR,
61     eErrorVideoProfileOperationNotSupportedKHR = VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR,
62     eErrorVideoProfileFormatNotSupportedKHR    = VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR,
63     eErrorVideoProfileCodecNotSupportedKHR     = VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR,
64     eErrorVideoStdVersionNotSupportedKHR       = VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR,
65 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
66     eErrorInvalidDrmFormatModifierPlaneLayoutEXT = VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT,
67     eErrorNotPermittedKHR                        = VK_ERROR_NOT_PERMITTED_KHR,
68 #if defined( VK_USE_PLATFORM_WIN32_KHR )
69     eErrorFullScreenExclusiveModeLostEXT = VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT,
70 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
71     eThreadIdleKHR                       = VK_THREAD_IDLE_KHR,
72     eThreadDoneKHR                       = VK_THREAD_DONE_KHR,
73     eOperationDeferredKHR                = VK_OPERATION_DEFERRED_KHR,
74     eOperationNotDeferredKHR             = VK_OPERATION_NOT_DEFERRED_KHR,
75     eErrorCompressionExhaustedEXT        = VK_ERROR_COMPRESSION_EXHAUSTED_EXT,
76     eErrorFragmentationEXT               = VK_ERROR_FRAGMENTATION_EXT,
77     eErrorInvalidDeviceAddressEXT        = VK_ERROR_INVALID_DEVICE_ADDRESS_EXT,
78     eErrorInvalidExternalHandleKHR       = VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR,
79     eErrorInvalidOpaqueCaptureAddressKHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR,
80     eErrorNotPermittedEXT                = VK_ERROR_NOT_PERMITTED_EXT,
81     eErrorOutOfPoolMemoryKHR             = VK_ERROR_OUT_OF_POOL_MEMORY_KHR,
82     eErrorPipelineCompileRequiredEXT     = VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT,
83     ePipelineCompileRequiredEXT          = VK_PIPELINE_COMPILE_REQUIRED_EXT
84   };
85 
86   enum class StructureType
87   {
88     eApplicationInfo                                      = VK_STRUCTURE_TYPE_APPLICATION_INFO,
89     eInstanceCreateInfo                                   = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
90     eDeviceQueueCreateInfo                                = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO,
91     eDeviceCreateInfo                                     = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
92     eSubmitInfo                                           = VK_STRUCTURE_TYPE_SUBMIT_INFO,
93     eMemoryAllocateInfo                                   = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
94     eMappedMemoryRange                                    = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,
95     eBindSparseInfo                                       = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO,
96     eFenceCreateInfo                                      = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO,
97     eSemaphoreCreateInfo                                  = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO,
98     eEventCreateInfo                                      = VK_STRUCTURE_TYPE_EVENT_CREATE_INFO,
99     eQueryPoolCreateInfo                                  = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,
100     eBufferCreateInfo                                     = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
101     eBufferViewCreateInfo                                 = VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO,
102     eImageCreateInfo                                      = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
103     eImageViewCreateInfo                                  = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
104     eShaderModuleCreateInfo                               = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO,
105     ePipelineCacheCreateInfo                              = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO,
106     ePipelineShaderStageCreateInfo                        = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,
107     ePipelineVertexInputStateCreateInfo                   = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,
108     ePipelineInputAssemblyStateCreateInfo                 = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,
109     ePipelineTessellationStateCreateInfo                  = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO,
110     ePipelineViewportStateCreateInfo                      = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,
111     ePipelineRasterizationStateCreateInfo                 = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,
112     ePipelineMultisampleStateCreateInfo                   = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,
113     ePipelineDepthStencilStateCreateInfo                  = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,
114     ePipelineColorBlendStateCreateInfo                    = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,
115     ePipelineDynamicStateCreateInfo                       = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO,
116     eGraphicsPipelineCreateInfo                           = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,
117     eComputePipelineCreateInfo                            = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO,
118     ePipelineLayoutCreateInfo                             = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,
119     eSamplerCreateInfo                                    = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,
120     eDescriptorSetLayoutCreateInfo                        = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
121     eDescriptorPoolCreateInfo                             = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,
122     eDescriptorSetAllocateInfo                            = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,
123     eWriteDescriptorSet                                   = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
124     eCopyDescriptorSet                                    = VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET,
125     eFramebufferCreateInfo                                = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,
126     eRenderPassCreateInfo                                 = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
127     eCommandPoolCreateInfo                                = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO,
128     eCommandBufferAllocateInfo                            = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,
129     eCommandBufferInheritanceInfo                         = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO,
130     eCommandBufferBeginInfo                               = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
131     eRenderPassBeginInfo                                  = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,
132     eBufferMemoryBarrier                                  = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
133     eImageMemoryBarrier                                   = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
134     eMemoryBarrier                                        = VK_STRUCTURE_TYPE_MEMORY_BARRIER,
135     eLoaderInstanceCreateInfo                             = VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO,
136     eLoaderDeviceCreateInfo                               = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
137     ePhysicalDeviceSubgroupProperties                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES,
138     eBindBufferMemoryInfo                                 = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
139     eBindImageMemoryInfo                                  = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
140     ePhysicalDevice16BitStorageFeatures                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
141     eMemoryDedicatedRequirements                          = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
142     eMemoryDedicatedAllocateInfo                          = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
143     eMemoryAllocateFlagsInfo                              = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
144     eDeviceGroupRenderPassBeginInfo                       = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
145     eDeviceGroupCommandBufferBeginInfo                    = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
146     eDeviceGroupSubmitInfo                                = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
147     eDeviceGroupBindSparseInfo                            = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
148     eBindBufferMemoryDeviceGroupInfo                      = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
149     eBindImageMemoryDeviceGroupInfo                       = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
150     ePhysicalDeviceGroupProperties                        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
151     eDeviceGroupDeviceCreateInfo                          = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
152     eBufferMemoryRequirementsInfo2                        = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
153     eImageMemoryRequirementsInfo2                         = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
154     eImageSparseMemoryRequirementsInfo2                   = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
155     eMemoryRequirements2                                  = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
156     eSparseImageMemoryRequirements2                       = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
157     ePhysicalDeviceFeatures2                              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
158     ePhysicalDeviceProperties2                            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
159     eFormatProperties2                                    = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
160     eImageFormatProperties2                               = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
161     ePhysicalDeviceImageFormatInfo2                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
162     eQueueFamilyProperties2                               = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
163     ePhysicalDeviceMemoryProperties2                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
164     eSparseImageFormatProperties2                         = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
165     ePhysicalDeviceSparseImageFormatInfo2                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
166     ePhysicalDevicePointClippingProperties                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
167     eRenderPassInputAttachmentAspectCreateInfo            = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
168     eImageViewUsageCreateInfo                             = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
169     ePipelineTessellationDomainOriginStateCreateInfo      = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
170     eRenderPassMultiviewCreateInfo                        = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
171     ePhysicalDeviceMultiviewFeatures                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
172     ePhysicalDeviceMultiviewProperties                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
173     ePhysicalDeviceVariablePointersFeatures               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
174     eProtectedSubmitInfo                                  = VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO,
175     ePhysicalDeviceProtectedMemoryFeatures                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES,
176     ePhysicalDeviceProtectedMemoryProperties              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES,
177     eDeviceQueueInfo2                                     = VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2,
178     eSamplerYcbcrConversionCreateInfo                     = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
179     eSamplerYcbcrConversionInfo                           = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
180     eBindImagePlaneMemoryInfo                             = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
181     eImagePlaneMemoryRequirementsInfo                     = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
182     ePhysicalDeviceSamplerYcbcrConversionFeatures         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
183     eSamplerYcbcrConversionImageFormatProperties          = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
184     eDescriptorUpdateTemplateCreateInfo                   = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
185     ePhysicalDeviceExternalImageFormatInfo                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
186     eExternalImageFormatProperties                        = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
187     ePhysicalDeviceExternalBufferInfo                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
188     eExternalBufferProperties                             = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
189     ePhysicalDeviceIdProperties                           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
190     eExternalMemoryBufferCreateInfo                       = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
191     eExternalMemoryImageCreateInfo                        = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
192     eExportMemoryAllocateInfo                             = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
193     ePhysicalDeviceExternalFenceInfo                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
194     eExternalFenceProperties                              = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
195     eExportFenceCreateInfo                                = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
196     eExportSemaphoreCreateInfo                            = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
197     ePhysicalDeviceExternalSemaphoreInfo                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
198     eExternalSemaphoreProperties                          = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
199     ePhysicalDeviceMaintenance3Properties                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
200     eDescriptorSetLayoutSupport                           = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
201     ePhysicalDeviceShaderDrawParametersFeatures           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
202     ePhysicalDeviceVulkan11Features                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES,
203     ePhysicalDeviceVulkan11Properties                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES,
204     ePhysicalDeviceVulkan12Features                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES,
205     ePhysicalDeviceVulkan12Properties                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES,
206     eImageFormatListCreateInfo                            = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
207     eAttachmentDescription2                               = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
208     eAttachmentReference2                                 = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
209     eSubpassDescription2                                  = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
210     eSubpassDependency2                                   = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
211     eRenderPassCreateInfo2                                = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
212     eSubpassBeginInfo                                     = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
213     eSubpassEndInfo                                       = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
214     ePhysicalDevice8BitStorageFeatures                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
215     ePhysicalDeviceDriverProperties                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
216     ePhysicalDeviceShaderAtomicInt64Features              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
217     ePhysicalDeviceShaderFloat16Int8Features              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
218     ePhysicalDeviceFloatControlsProperties                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
219     eDescriptorSetLayoutBindingFlagsCreateInfo            = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
220     ePhysicalDeviceDescriptorIndexingFeatures             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
221     ePhysicalDeviceDescriptorIndexingProperties           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
222     eDescriptorSetVariableDescriptorCountAllocateInfo     = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
223     eDescriptorSetVariableDescriptorCountLayoutSupport    = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
224     ePhysicalDeviceDepthStencilResolveProperties          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
225     eSubpassDescriptionDepthStencilResolve                = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
226     ePhysicalDeviceScalarBlockLayoutFeatures              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
227     eImageStencilUsageCreateInfo                          = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
228     ePhysicalDeviceSamplerFilterMinmaxProperties          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
229     eSamplerReductionModeCreateInfo                       = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
230     ePhysicalDeviceVulkanMemoryModelFeatures              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
231     ePhysicalDeviceImagelessFramebufferFeatures           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
232     eFramebufferAttachmentsCreateInfo                     = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
233     eFramebufferAttachmentImageInfo                       = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
234     eRenderPassAttachmentBeginInfo                        = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
235     ePhysicalDeviceUniformBufferStandardLayoutFeatures    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
236     ePhysicalDeviceShaderSubgroupExtendedTypesFeatures    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
237     ePhysicalDeviceSeparateDepthStencilLayoutsFeatures    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
238     eAttachmentReferenceStencilLayout                     = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
239     eAttachmentDescriptionStencilLayout                   = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
240     ePhysicalDeviceHostQueryResetFeatures                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
241     ePhysicalDeviceTimelineSemaphoreFeatures              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
242     ePhysicalDeviceTimelineSemaphoreProperties            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
243     eSemaphoreTypeCreateInfo                              = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
244     eTimelineSemaphoreSubmitInfo                          = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
245     eSemaphoreWaitInfo                                    = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
246     eSemaphoreSignalInfo                                  = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
247     ePhysicalDeviceBufferDeviceAddressFeatures            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
248     eBufferDeviceAddressInfo                              = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
249     eBufferOpaqueCaptureAddressCreateInfo                 = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
250     eMemoryOpaqueCaptureAddressAllocateInfo               = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
251     eDeviceMemoryOpaqueCaptureAddressInfo                 = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
252     ePhysicalDeviceVulkan13Features                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES,
253     ePhysicalDeviceVulkan13Properties                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES,
254     ePipelineCreationFeedbackCreateInfo                   = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO,
255     ePhysicalDeviceShaderTerminateInvocationFeatures      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,
256     ePhysicalDeviceToolProperties                         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES,
257     ePhysicalDeviceShaderDemoteToHelperInvocationFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,
258     ePhysicalDevicePrivateDataFeatures                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,
259     eDevicePrivateDataCreateInfo                          = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO,
260     ePrivateDataSlotCreateInfo                            = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO,
261     ePhysicalDevicePipelineCreationCacheControlFeatures   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,
262     eMemoryBarrier2                                       = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2,
263     eBufferMemoryBarrier2                                 = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2,
264     eImageMemoryBarrier2                                  = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,
265     eDependencyInfo                                       = VK_STRUCTURE_TYPE_DEPENDENCY_INFO,
266     eSubmitInfo2                                          = VK_STRUCTURE_TYPE_SUBMIT_INFO_2,
267     eSemaphoreSubmitInfo                                  = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO,
268     eCommandBufferSubmitInfo                              = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,
269     ePhysicalDeviceSynchronization2Features               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,
270     ePhysicalDeviceZeroInitializeWorkgroupMemoryFeatures  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,
271     ePhysicalDeviceImageRobustnessFeatures                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,
272     eCopyBufferInfo2                                      = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2,
273     eCopyImageInfo2                                       = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2,
274     eCopyBufferToImageInfo2                               = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2,
275     eCopyImageToBufferInfo2                               = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2,
276     eBlitImageInfo2                                       = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2,
277     eResolveImageInfo2                                    = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2,
278     eBufferCopy2                                          = VK_STRUCTURE_TYPE_BUFFER_COPY_2,
279     eImageCopy2                                           = VK_STRUCTURE_TYPE_IMAGE_COPY_2,
280     eImageBlit2                                           = VK_STRUCTURE_TYPE_IMAGE_BLIT_2,
281     eBufferImageCopy2                                     = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2,
282     eImageResolve2                                        = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2,
283     ePhysicalDeviceSubgroupSizeControlProperties          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,
284     ePipelineShaderStageRequiredSubgroupSizeCreateInfo    = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
285     ePhysicalDeviceSubgroupSizeControlFeatures            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,
286     ePhysicalDeviceInlineUniformBlockFeatures             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,
287     ePhysicalDeviceInlineUniformBlockProperties           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,
288     eWriteDescriptorSetInlineUniformBlock                 = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,
289     eDescriptorPoolInlineUniformBlockCreateInfo           = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,
290     ePhysicalDeviceTextureCompressionAstcHdrFeatures      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,
291     eRenderingInfo                                        = VK_STRUCTURE_TYPE_RENDERING_INFO,
292     eRenderingAttachmentInfo                              = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
293     ePipelineRenderingCreateInfo                          = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO,
294     ePhysicalDeviceDynamicRenderingFeatures               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,
295     eCommandBufferInheritanceRenderingInfo                = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,
296     ePhysicalDeviceShaderIntegerDotProductFeatures        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,
297     ePhysicalDeviceShaderIntegerDotProductProperties      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES,
298     ePhysicalDeviceTexelBufferAlignmentProperties         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,
299     eFormatProperties3                                    = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3,
300     ePhysicalDeviceMaintenance4Features                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,
301     ePhysicalDeviceMaintenance4Properties                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,
302     eDeviceBufferMemoryRequirements                       = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
303     eDeviceImageMemoryRequirements                        = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,
304     eSwapchainCreateInfoKHR                               = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR,
305     ePresentInfoKHR                                       = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR,
306     eDeviceGroupPresentCapabilitiesKHR                    = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,
307     eImageSwapchainCreateInfoKHR                          = VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR,
308     eBindImageMemorySwapchainInfoKHR                      = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,
309     eAcquireNextImageInfoKHR                              = VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR,
310     eDeviceGroupPresentInfoKHR                            = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR,
311     eDeviceGroupSwapchainCreateInfoKHR                    = VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,
312     eDisplayModeCreateInfoKHR                             = VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR,
313     eDisplaySurfaceCreateInfoKHR                          = VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR,
314     eDisplayPresentInfoKHR                                = VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR,
315 #if defined( VK_USE_PLATFORM_XLIB_KHR )
316     eXlibSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR,
317 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
318 #if defined( VK_USE_PLATFORM_XCB_KHR )
319     eXcbSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR,
320 #endif /*VK_USE_PLATFORM_XCB_KHR*/
321 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
322     eWaylandSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR,
323 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
324 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
325     eAndroidSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR,
326 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
327 #if defined( VK_USE_PLATFORM_WIN32_KHR )
328     eWin32SurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR,
329 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
330     eDebugReportCallbackCreateInfoEXT                = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
331     ePipelineRasterizationStateRasterizationOrderAMD = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD,
332     eDebugMarkerObjectNameInfoEXT                    = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT,
333     eDebugMarkerObjectTagInfoEXT                     = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT,
334     eDebugMarkerMarkerInfoEXT                        = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT,
335 #if defined( VK_ENABLE_BETA_EXTENSIONS )
336     eVideoProfileInfoKHR                       = VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR,
337     eVideoCapabilitiesKHR                      = VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR,
338     eVideoPictureResourceInfoKHR               = VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR,
339     eVideoSessionMemoryRequirementsKHR         = VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR,
340     eBindVideoSessionMemoryInfoKHR             = VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR,
341     eVideoSessionCreateInfoKHR                 = VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR,
342     eVideoSessionParametersCreateInfoKHR       = VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR,
343     eVideoSessionParametersUpdateInfoKHR       = VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR,
344     eVideoBeginCodingInfoKHR                   = VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR,
345     eVideoEndCodingInfoKHR                     = VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR,
346     eVideoCodingControlInfoKHR                 = VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR,
347     eVideoReferenceSlotInfoKHR                 = VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR,
348     eQueueFamilyVideoPropertiesKHR             = VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR,
349     eVideoProfileListInfoKHR                   = VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR,
350     ePhysicalDeviceVideoFormatInfoKHR          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR,
351     eVideoFormatPropertiesKHR                  = VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR,
352     eQueueFamilyQueryResultStatusPropertiesKHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR,
353     eVideoDecodeInfoKHR                        = VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR,
354     eVideoDecodeCapabilitiesKHR                = VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR,
355     eVideoDecodeUsageInfoKHR                   = VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR,
356 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
357     eDedicatedAllocationImageCreateInfoNV          = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV,
358     eDedicatedAllocationBufferCreateInfoNV         = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV,
359     eDedicatedAllocationMemoryAllocateInfoNV       = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV,
360     ePhysicalDeviceTransformFeedbackFeaturesEXT    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT,
361     ePhysicalDeviceTransformFeedbackPropertiesEXT  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT,
362     ePipelineRasterizationStateStreamCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT,
363     eCuModuleCreateInfoNVX                         = VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX,
364     eCuFunctionCreateInfoNVX                       = VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX,
365     eCuLaunchInfoNVX                               = VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX,
366     eImageViewHandleInfoNVX                        = VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX,
367     eImageViewAddressPropertiesNVX                 = VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX,
368 #if defined( VK_ENABLE_BETA_EXTENSIONS )
369     eVideoEncodeH264CapabilitiesEXT                = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT,
370     eVideoEncodeH264SessionParametersCreateInfoEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT,
371     eVideoEncodeH264SessionParametersAddInfoEXT    = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT,
372     eVideoEncodeH264VclFrameInfoEXT                = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT,
373     eVideoEncodeH264DpbSlotInfoEXT                 = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT,
374     eVideoEncodeH264NaluSliceInfoEXT               = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT,
375     eVideoEncodeH264EmitPictureParametersInfoEXT   = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT,
376     eVideoEncodeH264ProfileInfoEXT                 = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT,
377     eVideoEncodeH264RateControlInfoEXT             = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT,
378     eVideoEncodeH264RateControlLayerInfoEXT        = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT,
379     eVideoEncodeH264ReferenceListsInfoEXT          = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT,
380     eVideoEncodeH265CapabilitiesEXT                = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT,
381     eVideoEncodeH265SessionParametersCreateInfoEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT,
382     eVideoEncodeH265SessionParametersAddInfoEXT    = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT,
383     eVideoEncodeH265VclFrameInfoEXT                = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT,
384     eVideoEncodeH265DpbSlotInfoEXT                 = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT,
385     eVideoEncodeH265NaluSliceSegmentInfoEXT        = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT,
386     eVideoEncodeH265EmitPictureParametersInfoEXT   = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT,
387     eVideoEncodeH265ProfileInfoEXT                 = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT,
388     eVideoEncodeH265ReferenceListsInfoEXT          = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT,
389     eVideoEncodeH265RateControlInfoEXT             = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT,
390     eVideoEncodeH265RateControlLayerInfoEXT        = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT,
391     eVideoDecodeH264CapabilitiesEXT                = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT,
392     eVideoDecodeH264PictureInfoEXT                 = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT,
393     eVideoDecodeH264ProfileInfoEXT                 = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_EXT,
394     eVideoDecodeH264SessionParametersCreateInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT,
395     eVideoDecodeH264SessionParametersAddInfoEXT    = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT,
396     eVideoDecodeH264DpbSlotInfoEXT                 = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT,
397 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
398     eTextureLodGatherFormatPropertiesAMD           = VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD,
399     eRenderingFragmentShadingRateAttachmentInfoKHR = VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,
400     eRenderingFragmentDensityMapAttachmentInfoEXT  = VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT,
401     eAttachmentSampleCountInfoAMD                  = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
402     eMultiviewPerViewAttributesInfoNVX             = VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX,
403 #if defined( VK_USE_PLATFORM_GGP )
404     eStreamDescriptorSurfaceCreateInfoGGP = VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP,
405 #endif /*VK_USE_PLATFORM_GGP*/
406     ePhysicalDeviceCornerSampledImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV,
407     eExternalMemoryImageCreateInfoNV            = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV,
408     eExportMemoryAllocateInfoNV                 = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV,
409 #if defined( VK_USE_PLATFORM_WIN32_KHR )
410     eImportMemoryWin32HandleInfoNV       = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV,
411     eExportMemoryWin32HandleInfoNV       = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV,
412     eWin32KeyedMutexAcquireReleaseInfoNV = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV,
413 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
414     eValidationFlagsEXT = VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT,
415 #if defined( VK_USE_PLATFORM_VI_NN )
416     eViSurfaceCreateInfoNN = VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN,
417 #endif /*VK_USE_PLATFORM_VI_NN*/
418     eImageViewAstcDecodeModeEXT                    = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT,
419     ePhysicalDeviceAstcDecodeFeaturesEXT           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT,
420     ePipelineRobustnessCreateInfoEXT               = VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT,
421     ePhysicalDevicePipelineRobustnessFeaturesEXT   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT,
422     ePhysicalDevicePipelineRobustnessPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT,
423 #if defined( VK_USE_PLATFORM_WIN32_KHR )
424     eImportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
425     eExportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
426     eMemoryWin32HandlePropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR,
427     eMemoryGetWin32HandleInfoKHR    = VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR,
428 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
429     eImportMemoryFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR,
430     eMemoryFdPropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR,
431     eMemoryGetFdInfoKHR    = VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR,
432 #if defined( VK_USE_PLATFORM_WIN32_KHR )
433     eWin32KeyedMutexAcquireReleaseInfoKHR = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR,
434     eImportSemaphoreWin32HandleInfoKHR    = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
435     eExportSemaphoreWin32HandleInfoKHR    = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
436     eD3D12FenceSubmitInfoKHR              = VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR,
437     eSemaphoreGetWin32HandleInfoKHR       = VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR,
438 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
439     eImportSemaphoreFdInfoKHR                              = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR,
440     eSemaphoreGetFdInfoKHR                                 = VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR,
441     ePhysicalDevicePushDescriptorPropertiesKHR             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR,
442     eCommandBufferInheritanceConditionalRenderingInfoEXT   = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT,
443     ePhysicalDeviceConditionalRenderingFeaturesEXT         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT,
444     eConditionalRenderingBeginInfoEXT                      = VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT,
445     ePresentRegionsKHR                                     = VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR,
446     ePipelineViewportWScalingStateCreateInfoNV             = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV,
447     eSurfaceCapabilities2EXT                               = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
448     eDisplayPowerInfoEXT                                   = VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT,
449     eDeviceEventInfoEXT                                    = VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT,
450     eDisplayEventInfoEXT                                   = VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT,
451     eSwapchainCounterCreateInfoEXT                         = VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT,
452     ePresentTimesInfoGOOGLE                                = VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE,
453     ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX,
454     ePipelineViewportSwizzleStateCreateInfoNV              = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV,
455     ePhysicalDeviceDiscardRectanglePropertiesEXT           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT,
456     ePipelineDiscardRectangleStateCreateInfoEXT            = VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT,
457     ePhysicalDeviceConservativeRasterizationPropertiesEXT  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT,
458     ePipelineRasterizationConservativeStateCreateInfoEXT   = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT,
459     ePhysicalDeviceDepthClipEnableFeaturesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT,
460     ePipelineRasterizationDepthClipStateCreateInfoEXT      = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT,
461     eHdrMetadataEXT                                        = VK_STRUCTURE_TYPE_HDR_METADATA_EXT,
462     eSharedPresentSurfaceCapabilitiesKHR                   = VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR,
463 #if defined( VK_USE_PLATFORM_WIN32_KHR )
464     eImportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR,
465     eExportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR,
466     eFenceGetWin32HandleInfoKHR    = VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR,
467 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
468     eImportFenceFdInfoKHR                        = VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR,
469     eFenceGetFdInfoKHR                           = VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR,
470     ePhysicalDevicePerformanceQueryFeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR,
471     ePhysicalDevicePerformanceQueryPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR,
472     eQueryPoolPerformanceCreateInfoKHR           = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR,
473     ePerformanceQuerySubmitInfoKHR               = VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR,
474     eAcquireProfilingLockInfoKHR                 = VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR,
475     ePerformanceCounterKHR                       = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR,
476     ePerformanceCounterDescriptionKHR            = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR,
477     ePhysicalDeviceSurfaceInfo2KHR               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR,
478     eSurfaceCapabilities2KHR                     = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR,
479     eSurfaceFormat2KHR                           = VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR,
480     eDisplayProperties2KHR                       = VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR,
481     eDisplayPlaneProperties2KHR                  = VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR,
482     eDisplayModeProperties2KHR                   = VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR,
483     eDisplayPlaneInfo2KHR                        = VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR,
484     eDisplayPlaneCapabilities2KHR                = VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR,
485 #if defined( VK_USE_PLATFORM_IOS_MVK )
486     eIosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK,
487 #endif /*VK_USE_PLATFORM_IOS_MVK*/
488 #if defined( VK_USE_PLATFORM_MACOS_MVK )
489     eMacosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK,
490 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
491     eDebugUtilsObjectNameInfoEXT        = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT,
492     eDebugUtilsObjectTagInfoEXT         = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT,
493     eDebugUtilsLabelEXT                 = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
494     eDebugUtilsMessengerCallbackDataEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT,
495     eDebugUtilsMessengerCreateInfoEXT   = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
496 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
497     eAndroidHardwareBufferUsageANDROID             = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID,
498     eAndroidHardwareBufferPropertiesANDROID        = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID,
499     eAndroidHardwareBufferFormatPropertiesANDROID  = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID,
500     eImportAndroidHardwareBufferInfoANDROID        = VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
501     eMemoryGetAndroidHardwareBufferInfoANDROID     = VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
502     eExternalFormatANDROID                         = VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID,
503     eAndroidHardwareBufferFormatProperties2ANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID,
504 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
505     eSampleLocationsInfoEXT                            = VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT,
506     eRenderPassSampleLocationsBeginInfoEXT             = VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT,
507     ePipelineSampleLocationsStateCreateInfoEXT         = VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT,
508     ePhysicalDeviceSampleLocationsPropertiesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT,
509     eMultisamplePropertiesEXT                          = VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT,
510     ePhysicalDeviceBlendOperationAdvancedFeaturesEXT   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT,
511     ePhysicalDeviceBlendOperationAdvancedPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT,
512     ePipelineColorBlendAdvancedStateCreateInfoEXT      = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT,
513     ePipelineCoverageToColorStateCreateInfoNV          = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV,
514     eWriteDescriptorSetAccelerationStructureKHR        = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR,
515     eAccelerationStructureBuildGeometryInfoKHR         = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,
516     eAccelerationStructureDeviceAddressInfoKHR         = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR,
517     eAccelerationStructureGeometryAabbsDataKHR         = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR,
518     eAccelerationStructureGeometryInstancesDataKHR     = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR,
519     eAccelerationStructureGeometryTrianglesDataKHR     = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR,
520     eAccelerationStructureGeometryKHR                  = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR,
521     eAccelerationStructureVersionInfoKHR               = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR,
522     eCopyAccelerationStructureInfoKHR                  = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR,
523     eCopyAccelerationStructureToMemoryInfoKHR          = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR,
524     eCopyMemoryToAccelerationStructureInfoKHR          = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR,
525     ePhysicalDeviceAccelerationStructureFeaturesKHR    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR,
526     ePhysicalDeviceAccelerationStructurePropertiesKHR  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR,
527     eAccelerationStructureCreateInfoKHR                = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR,
528     eAccelerationStructureBuildSizesInfoKHR            = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR,
529     ePhysicalDeviceRayTracingPipelineFeaturesKHR       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR,
530     ePhysicalDeviceRayTracingPipelinePropertiesKHR     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR,
531     eRayTracingPipelineCreateInfoKHR                   = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR,
532     eRayTracingShaderGroupCreateInfoKHR                = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR,
533     eRayTracingPipelineInterfaceCreateInfoKHR          = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR,
534     ePhysicalDeviceRayQueryFeaturesKHR                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR,
535     ePipelineCoverageModulationStateCreateInfoNV       = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV,
536     ePhysicalDeviceShaderSmBuiltinsFeaturesNV          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV,
537     ePhysicalDeviceShaderSmBuiltinsPropertiesNV        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV,
538     eDrmFormatModifierPropertiesListEXT                = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT,
539     ePhysicalDeviceImageDrmFormatModifierInfoEXT       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT,
540     eImageDrmFormatModifierListCreateInfoEXT           = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT,
541     eImageDrmFormatModifierExplicitCreateInfoEXT       = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,
542     eImageDrmFormatModifierPropertiesEXT               = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,
543     eDrmFormatModifierPropertiesList2EXT               = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT,
544     eValidationCacheCreateInfoEXT                      = VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT,
545     eShaderModuleValidationCacheCreateInfoEXT          = VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT,
546 #if defined( VK_ENABLE_BETA_EXTENSIONS )
547     ePhysicalDevicePortabilitySubsetFeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR,
548     ePhysicalDevicePortabilitySubsetPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR,
549 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
550     ePipelineViewportShadingRateImageStateCreateInfoNV   = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV,
551     ePhysicalDeviceShadingRateImageFeaturesNV            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV,
552     ePhysicalDeviceShadingRateImagePropertiesNV          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV,
553     ePipelineViewportCoarseSampleOrderStateCreateInfoNV  = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV,
554     eRayTracingPipelineCreateInfoNV                      = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV,
555     eAccelerationStructureCreateInfoNV                   = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV,
556     eGeometryNV                                          = VK_STRUCTURE_TYPE_GEOMETRY_NV,
557     eGeometryTrianglesNV                                 = VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV,
558     eGeometryAabbNV                                      = VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV,
559     eBindAccelerationStructureMemoryInfoNV               = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV,
560     eWriteDescriptorSetAccelerationStructureNV           = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV,
561     eAccelerationStructureMemoryRequirementsInfoNV       = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV,
562     ePhysicalDeviceRayTracingPropertiesNV                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV,
563     eRayTracingShaderGroupCreateInfoNV                   = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV,
564     eAccelerationStructureInfoNV                         = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV,
565     ePhysicalDeviceRepresentativeFragmentTestFeaturesNV  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV,
566     ePipelineRepresentativeFragmentTestStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV,
567     ePhysicalDeviceImageViewImageFormatInfoEXT           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT,
568     eFilterCubicImageViewImageFormatPropertiesEXT        = VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT,
569     eImportMemoryHostPointerInfoEXT                      = VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT,
570     eMemoryHostPointerPropertiesEXT                      = VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT,
571     ePhysicalDeviceExternalMemoryHostPropertiesEXT       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT,
572     ePhysicalDeviceShaderClockFeaturesKHR                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR,
573     ePipelineCompilerControlCreateInfoAMD                = VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD,
574     eCalibratedTimestampInfoEXT                          = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT,
575     ePhysicalDeviceShaderCorePropertiesAMD               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD,
576 #if defined( VK_ENABLE_BETA_EXTENSIONS )
577     eVideoDecodeH265CapabilitiesEXT                = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT,
578     eVideoDecodeH265SessionParametersCreateInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT,
579     eVideoDecodeH265SessionParametersAddInfoEXT    = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT,
580     eVideoDecodeH265ProfileInfoEXT                 = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_EXT,
581     eVideoDecodeH265PictureInfoEXT                 = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT,
582     eVideoDecodeH265DpbSlotInfoEXT                 = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT,
583 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
584     eDeviceQueueGlobalPriorityCreateInfoKHR            = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR,
585     ePhysicalDeviceGlobalPriorityQueryFeaturesKHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR,
586     eQueueFamilyGlobalPriorityPropertiesKHR            = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR,
587     eDeviceMemoryOverallocationCreateInfoAMD           = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD,
588     ePhysicalDeviceVertexAttributeDivisorPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT,
589     ePipelineVertexInputDivisorStateCreateInfoEXT      = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT,
590     ePhysicalDeviceVertexAttributeDivisorFeaturesEXT   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT,
591 #if defined( VK_USE_PLATFORM_GGP )
592     ePresentFrameTokenGGP = VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP,
593 #endif /*VK_USE_PLATFORM_GGP*/
594     ePhysicalDeviceComputeShaderDerivativesFeaturesNV   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV,
595     ePhysicalDeviceMeshShaderFeaturesNV                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV,
596     ePhysicalDeviceMeshShaderPropertiesNV               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV,
597     ePhysicalDeviceShaderImageFootprintFeaturesNV       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV,
598     ePipelineViewportExclusiveScissorStateCreateInfoNV  = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV,
599     ePhysicalDeviceExclusiveScissorFeaturesNV           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV,
600     eCheckpointDataNV                                   = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV,
601     eQueueFamilyCheckpointPropertiesNV                  = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV,
602     ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL,
603     eQueryPoolPerformanceQueryCreateInfoINTEL           = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
604     eInitializePerformanceApiInfoINTEL                  = VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL,
605     ePerformanceMarkerInfoINTEL                         = VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL,
606     ePerformanceStreamMarkerInfoINTEL                   = VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL,
607     ePerformanceOverrideInfoINTEL                       = VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL,
608     ePerformanceConfigurationAcquireInfoINTEL           = VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL,
609     ePhysicalDevicePciBusInfoPropertiesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT,
610     eDisplayNativeHdrSurfaceCapabilitiesAMD             = VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD,
611     eSwapchainDisplayNativeHdrCreateInfoAMD             = VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD,
612 #if defined( VK_USE_PLATFORM_FUCHSIA )
613     eImagepipeSurfaceCreateInfoFUCHSIA = VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA,
614 #endif /*VK_USE_PLATFORM_FUCHSIA*/
615 #if defined( VK_USE_PLATFORM_METAL_EXT )
616     eMetalSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT,
617 #endif /*VK_USE_PLATFORM_METAL_EXT*/
618     ePhysicalDeviceFragmentDensityMapFeaturesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT,
619     ePhysicalDeviceFragmentDensityMapPropertiesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT,
620     eRenderPassFragmentDensityMapCreateInfoEXT                = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT,
621     eFragmentShadingRateAttachmentInfoKHR                     = VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,
622     ePipelineFragmentShadingRateStateCreateInfoKHR            = VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR,
623     ePhysicalDeviceFragmentShadingRatePropertiesKHR           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR,
624     ePhysicalDeviceFragmentShadingRateFeaturesKHR             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR,
625     ePhysicalDeviceFragmentShadingRateKHR                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR,
626     ePhysicalDeviceShaderCoreProperties2AMD                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD,
627     ePhysicalDeviceCoherentMemoryFeaturesAMD                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD,
628     ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT,
629     ePhysicalDeviceMemoryBudgetPropertiesEXT                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT,
630     ePhysicalDeviceMemoryPriorityFeaturesEXT                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT,
631     eMemoryPriorityAllocateInfoEXT                            = VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT,
632     eSurfaceProtectedCapabilitiesKHR                          = VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR,
633     ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV,
634     ePhysicalDeviceBufferDeviceAddressFeaturesEXT             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
635     eBufferDeviceAddressCreateInfoEXT                         = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT,
636     eValidationFeaturesEXT                                    = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT,
637     ePhysicalDevicePresentWaitFeaturesKHR                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR,
638     ePhysicalDeviceCooperativeMatrixFeaturesNV                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV,
639     eCooperativeMatrixPropertiesNV                            = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV,
640     ePhysicalDeviceCooperativeMatrixPropertiesNV              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV,
641     ePhysicalDeviceCoverageReductionModeFeaturesNV            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV,
642     ePipelineCoverageReductionStateCreateInfoNV               = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV,
643     eFramebufferMixedSamplesCombinationNV                     = VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV,
644     ePhysicalDeviceFragmentShaderInterlockFeaturesEXT         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT,
645     ePhysicalDeviceYcbcrImageArraysFeaturesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT,
646     ePhysicalDeviceProvokingVertexFeaturesEXT                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT,
647     ePipelineRasterizationProvokingVertexStateCreateInfoEXT   = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT,
648     ePhysicalDeviceProvokingVertexPropertiesEXT               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT,
649 #if defined( VK_USE_PLATFORM_WIN32_KHR )
650     eSurfaceFullScreenExclusiveInfoEXT         = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT,
651     eSurfaceCapabilitiesFullScreenExclusiveEXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT,
652     eSurfaceFullScreenExclusiveWin32InfoEXT    = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT,
653 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
654     eHeadlessSurfaceCreateInfoEXT                          = VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT,
655     ePhysicalDeviceLineRasterizationFeaturesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT,
656     ePipelineRasterizationLineStateCreateInfoEXT           = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT,
657     ePhysicalDeviceLineRasterizationPropertiesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT,
658     ePhysicalDeviceShaderAtomicFloatFeaturesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT,
659     ePhysicalDeviceIndexTypeUint8FeaturesEXT               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT,
660     ePhysicalDeviceExtendedDynamicStateFeaturesEXT         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT,
661     ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR,
662     ePipelineInfoKHR                                       = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
663     ePipelineExecutablePropertiesKHR                       = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR,
664     ePipelineExecutableInfoKHR                             = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR,
665     ePipelineExecutableStatisticKHR                        = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR,
666     ePipelineExecutableInternalRepresentationKHR           = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR,
667     ePhysicalDeviceShaderAtomicFloat2FeaturesEXT           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT,
668     eSurfacePresentModeEXT                                 = VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT,
669     eSurfacePresentScalingCapabilitiesEXT                  = VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT,
670     eSurfacePresentModeCompatibilityEXT                    = VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT,
671     ePhysicalDeviceSwapchainMaintenance1FeaturesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT,
672     eSwapchainPresentFenceInfoEXT                          = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT,
673     eSwapchainPresentModesCreateInfoEXT                    = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT,
674     eSwapchainPresentModeInfoEXT                           = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT,
675     eSwapchainPresentScalingCreateInfoEXT                  = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT,
676     eReleaseSwapchainImagesInfoEXT                         = VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT,
677     ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV,
678     eGraphicsShaderGroupCreateInfoNV                       = VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV,
679     eGraphicsPipelineShaderGroupsCreateInfoNV              = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV,
680     eIndirectCommandsLayoutTokenNV                         = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV,
681     eIndirectCommandsLayoutCreateInfoNV                    = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV,
682     eGeneratedCommandsInfoNV                               = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV,
683     eGeneratedCommandsMemoryRequirementsInfoNV             = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV,
684     ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV,
685     ePhysicalDeviceInheritedViewportScissorFeaturesNV      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV,
686     eCommandBufferInheritanceViewportScissorInfoNV         = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV,
687     ePhysicalDeviceTexelBufferAlignmentFeaturesEXT         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT,
688     eCommandBufferInheritanceRenderPassTransformInfoQCOM   = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM,
689     eRenderPassTransformBeginInfoQCOM                      = VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM,
690     ePhysicalDeviceDeviceMemoryReportFeaturesEXT           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT,
691     eDeviceDeviceMemoryReportCreateInfoEXT                 = VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT,
692     eDeviceMemoryReportCallbackDataEXT                     = VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT,
693     ePhysicalDeviceRobustness2FeaturesEXT                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT,
694     ePhysicalDeviceRobustness2PropertiesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT,
695     eSamplerCustomBorderColorCreateInfoEXT                 = VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT,
696     ePhysicalDeviceCustomBorderColorPropertiesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT,
697     ePhysicalDeviceCustomBorderColorFeaturesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT,
698     ePipelineLibraryCreateInfoKHR                          = VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR,
699     ePhysicalDevicePresentBarrierFeaturesNV                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV,
700     eSurfaceCapabilitiesPresentBarrierNV                   = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV,
701     eSwapchainPresentBarrierCreateInfoNV                   = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV,
702     ePresentIdKHR                                          = VK_STRUCTURE_TYPE_PRESENT_ID_KHR,
703     ePhysicalDevicePresentIdFeaturesKHR                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR,
704 #if defined( VK_ENABLE_BETA_EXTENSIONS )
705     eVideoEncodeInfoKHR                 = VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR,
706     eVideoEncodeRateControlInfoKHR      = VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR,
707     eVideoEncodeRateControlLayerInfoKHR = VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR,
708     eVideoEncodeCapabilitiesKHR         = VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR,
709     eVideoEncodeUsageInfoKHR            = VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR,
710 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
711     ePhysicalDeviceDiagnosticsConfigFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV,
712     eDeviceDiagnosticsConfigCreateInfoNV       = VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV,
713 #if defined( VK_USE_PLATFORM_METAL_EXT )
714     eExportMetalObjectCreateInfoEXT = VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT,
715     eExportMetalObjectsInfoEXT      = VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT,
716     eExportMetalDeviceInfoEXT       = VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT,
717     eExportMetalCommandQueueInfoEXT = VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT,
718     eExportMetalBufferInfoEXT       = VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT,
719     eImportMetalBufferInfoEXT       = VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT,
720     eExportMetalTextureInfoEXT      = VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT,
721     eImportMetalTextureInfoEXT      = VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT,
722     eExportMetalIoSurfaceInfoEXT    = VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT,
723     eImportMetalIoSurfaceInfoEXT    = VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT,
724     eExportMetalSharedEventInfoEXT  = VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT,
725     eImportMetalSharedEventInfoEXT  = VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT,
726 #endif /*VK_USE_PLATFORM_METAL_EXT*/
727     eQueueFamilyCheckpointProperties2NV                        = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV,
728     eCheckpointData2NV                                         = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV,
729     ePhysicalDeviceDescriptorBufferPropertiesEXT               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT,
730     ePhysicalDeviceDescriptorBufferDensityMapPropertiesEXT     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT,
731     ePhysicalDeviceDescriptorBufferFeaturesEXT                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT,
732     eDescriptorAddressInfoEXT                                  = VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT,
733     eDescriptorGetInfoEXT                                      = VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT,
734     eBufferCaptureDescriptorDataInfoEXT                        = VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
735     eImageCaptureDescriptorDataInfoEXT                         = VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
736     eImageViewCaptureDescriptorDataInfoEXT                     = VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
737     eSamplerCaptureDescriptorDataInfoEXT                       = VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
738     eOpaqueCaptureDescriptorDataCreateInfoEXT                  = VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT,
739     eDescriptorBufferBindingInfoEXT                            = VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT,
740     eDescriptorBufferBindingPushDescriptorBufferHandleEXT      = VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT,
741     eAccelerationStructureCaptureDescriptorDataInfoEXT         = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
742     ePhysicalDeviceGraphicsPipelineLibraryFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT,
743     ePhysicalDeviceGraphicsPipelineLibraryPropertiesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT,
744     eGraphicsPipelineLibraryCreateInfoEXT                      = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT,
745     ePhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD,
746     ePhysicalDeviceFragmentShaderBarycentricFeaturesKHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
747     ePhysicalDeviceFragmentShaderBarycentricPropertiesKHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR,
748     ePhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR,
749     ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV,
750     ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV,
751     ePipelineFragmentShadingRateEnumStateCreateInfoNV          = VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV,
752     eAccelerationStructureGeometryMotionTrianglesDataNV        = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV,
753     ePhysicalDeviceRayTracingMotionBlurFeaturesNV              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV,
754     eAccelerationStructureMotionInfoNV                         = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV,
755     ePhysicalDeviceMeshShaderFeaturesEXT                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT,
756     ePhysicalDeviceMeshShaderPropertiesEXT                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT,
757     ePhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT,
758     ePhysicalDeviceFragmentDensityMap2FeaturesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT,
759     ePhysicalDeviceFragmentDensityMap2PropertiesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT,
760     eCopyCommandTransformInfoQCOM                              = VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM,
761     ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR,
762     ePhysicalDeviceImageCompressionControlFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT,
763     eImageCompressionControlEXT                                = VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT,
764     eSubresourceLayout2EXT                                     = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT,
765     eImageSubresource2EXT                                      = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT,
766     eImageCompressionPropertiesEXT                             = VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT,
767     ePhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT,
768     ePhysicalDevice4444FormatsFeaturesEXT                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT,
769     ePhysicalDeviceFaultFeaturesEXT                            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT,
770     eDeviceFaultCountsEXT                                      = VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT,
771     eDeviceFaultInfoEXT                                        = VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT,
772     ePhysicalDeviceRgba10X6FormatsFeaturesEXT                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT,
773 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
774     eDirectfbSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT,
775 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
776     ePhysicalDeviceVertexInputDynamicStateFeaturesEXT      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT,
777     eVertexInputBindingDescription2EXT                     = VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT,
778     eVertexInputAttributeDescription2EXT                   = VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT,
779     ePhysicalDeviceDrmPropertiesEXT                        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT,
780     ePhysicalDeviceAddressBindingReportFeaturesEXT         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT,
781     eDeviceAddressBindingCallbackDataEXT                   = VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT,
782     ePhysicalDeviceDepthClipControlFeaturesEXT             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT,
783     ePipelineViewportDepthClipControlCreateInfoEXT         = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT,
784     ePhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT,
785 #if defined( VK_USE_PLATFORM_FUCHSIA )
786     eImportMemoryZirconHandleInfoFUCHSIA     = VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA,
787     eMemoryZirconHandlePropertiesFUCHSIA     = VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA,
788     eMemoryGetZirconHandleInfoFUCHSIA        = VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA,
789     eImportSemaphoreZirconHandleInfoFUCHSIA  = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA,
790     eSemaphoreGetZirconHandleInfoFUCHSIA     = VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA,
791     eBufferCollectionCreateInfoFUCHSIA       = VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA,
792     eImportMemoryBufferCollectionFUCHSIA     = VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA,
793     eBufferCollectionImageCreateInfoFUCHSIA  = VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA,
794     eBufferCollectionPropertiesFUCHSIA       = VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA,
795     eBufferConstraintsInfoFUCHSIA            = VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA,
796     eBufferCollectionBufferCreateInfoFUCHSIA = VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA,
797     eImageConstraintsInfoFUCHSIA             = VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA,
798     eImageFormatConstraintsInfoFUCHSIA       = VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA,
799     eSysmemColorSpaceFUCHSIA                 = VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA,
800     eBufferCollectionConstraintsInfoFUCHSIA  = VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA,
801 #endif /*VK_USE_PLATFORM_FUCHSIA*/
802     eSubpassShadingPipelineCreateInfoHUAWEI                     = VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI,
803     ePhysicalDeviceSubpassShadingFeaturesHUAWEI                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI,
804     ePhysicalDeviceSubpassShadingPropertiesHUAWEI               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI,
805     ePhysicalDeviceInvocationMaskFeaturesHUAWEI                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI,
806     eMemoryGetRemoteAddressInfoNV                               = VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV,
807     ePhysicalDeviceExternalMemoryRdmaFeaturesNV                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV,
808     ePipelinePropertiesIdentifierEXT                            = VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT,
809     ePhysicalDevicePipelinePropertiesFeaturesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT,
810     ePhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT,
811     eSubpassResolvePerformanceQueryEXT                          = VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT,
812     eMultisampledRenderToSingleSampledInfoEXT                   = VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT,
813     ePhysicalDeviceExtendedDynamicState2FeaturesEXT             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT,
814 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
815     eScreenSurfaceCreateInfoQNX = VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX,
816 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
817     ePhysicalDeviceColorWriteEnableFeaturesEXT                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT,
818     ePipelineColorWriteCreateInfoEXT                             = VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT,
819     ePhysicalDevicePrimitivesGeneratedQueryFeaturesEXT           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT,
820     ePhysicalDeviceRayTracingMaintenance1FeaturesKHR             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR,
821     ePhysicalDeviceImageViewMinLodFeaturesEXT                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT,
822     eImageViewMinLodCreateInfoEXT                                = VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT,
823     ePhysicalDeviceMultiDrawFeaturesEXT                          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT,
824     ePhysicalDeviceMultiDrawPropertiesEXT                        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT,
825     ePhysicalDeviceImage2DViewOf3DFeaturesEXT                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT,
826     eMicromapBuildInfoEXT                                        = VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT,
827     eMicromapVersionInfoEXT                                      = VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT,
828     eCopyMicromapInfoEXT                                         = VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT,
829     eCopyMicromapToMemoryInfoEXT                                 = VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT,
830     eCopyMemoryToMicromapInfoEXT                                 = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT,
831     ePhysicalDeviceOpacityMicromapFeaturesEXT                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT,
832     ePhysicalDeviceOpacityMicromapPropertiesEXT                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT,
833     eMicromapCreateInfoEXT                                       = VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT,
834     eMicromapBuildSizesInfoEXT                                   = VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT,
835     eAccelerationStructureTrianglesOpacityMicromapEXT            = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT,
836     ePhysicalDeviceBorderColorSwizzleFeaturesEXT                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT,
837     eSamplerBorderColorComponentMappingCreateInfoEXT             = VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT,
838     ePhysicalDevicePageableDeviceLocalMemoryFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT,
839     ePhysicalDeviceDescriptorSetHostMappingFeaturesVALVE         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE,
840     eDescriptorSetBindingReferenceVALVE                          = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE,
841     eDescriptorSetLayoutHostMappingInfoVALVE                     = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE,
842     ePhysicalDeviceDepthClampZeroOneFeaturesEXT                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT,
843     ePhysicalDeviceNonSeamlessCubeMapFeaturesEXT                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT,
844     ePhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM,
845     ePhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM,
846     eSubpassFragmentDensityMapOffsetEndInfoQCOM                  = VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM,
847     ePhysicalDeviceCopyMemoryIndirectFeaturesNV                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV,
848     ePhysicalDeviceCopyMemoryIndirectPropertiesNV                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV,
849     ePhysicalDeviceMemoryDecompressionFeaturesNV                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV,
850     ePhysicalDeviceMemoryDecompressionPropertiesNV               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV,
851     ePhysicalDeviceLinearColorAttachmentFeaturesNV               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV,
852     ePhysicalDeviceImageCompressionControlSwapchainFeaturesEXT   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT,
853     ePhysicalDeviceImageProcessingFeaturesQCOM                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM,
854     ePhysicalDeviceImageProcessingPropertiesQCOM                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM,
855     eImageViewSampleWeightCreateInfoQCOM                         = VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM,
856     ePhysicalDeviceExtendedDynamicState3FeaturesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT,
857     ePhysicalDeviceExtendedDynamicState3PropertiesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT,
858     ePhysicalDeviceSubpassMergeFeedbackFeaturesEXT               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT,
859     eRenderPassCreationControlEXT                                = VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT,
860     eRenderPassCreationFeedbackCreateInfoEXT                     = VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT,
861     eRenderPassSubpassFeedbackCreateInfoEXT                      = VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT,
862     eDirectDriverLoadingInfoLUNARG                               = VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG,
863     eDirectDriverLoadingListLUNARG                               = VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG,
864     ePhysicalDeviceShaderModuleIdentifierFeaturesEXT             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT,
865     ePhysicalDeviceShaderModuleIdentifierPropertiesEXT           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT,
866     ePipelineShaderStageModuleIdentifierCreateInfoEXT            = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT,
867     eShaderModuleIdentifierEXT                                   = VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT,
868     ePhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT,
869     ePhysicalDeviceOpticalFlowFeaturesNV                         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV,
870     ePhysicalDeviceOpticalFlowPropertiesNV                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV,
871     eOpticalFlowImageFormatInfoNV                                = VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV,
872     eOpticalFlowImageFormatPropertiesNV                          = VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV,
873     eOpticalFlowSessionCreateInfoNV                              = VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV,
874     eOpticalFlowExecuteInfoNV                                    = VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV,
875     eOpticalFlowSessionCreatePrivateDataInfoNV                   = VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV,
876     ePhysicalDeviceLegacyDitheringFeaturesEXT                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT,
877     ePhysicalDevicePipelineProtectedAccessFeaturesEXT            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT,
878     ePhysicalDeviceTilePropertiesFeaturesQCOM                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM,
879     eTilePropertiesQCOM                                          = VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM,
880     ePhysicalDeviceAmigoProfilingFeaturesSEC                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC,
881     eAmigoProfilingSubmitInfoSEC                                 = VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC,
882     ePhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM,
883     ePhysicalDeviceRayTracingInvocationReorderFeaturesNV         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV,
884     ePhysicalDeviceRayTracingInvocationReorderPropertiesNV       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV,
885     ePhysicalDeviceMutableDescriptorTypeFeaturesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT,
886     eMutableDescriptorTypeCreateInfoEXT                          = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT,
887     ePhysicalDeviceShaderCoreBuiltinsFeaturesARM                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM,
888     ePhysicalDeviceShaderCoreBuiltinsPropertiesARM               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM,
889     eAttachmentDescription2KHR                                   = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR,
890     eAttachmentDescriptionStencilLayoutKHR                       = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR,
891     eAttachmentReference2KHR                                     = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR,
892     eAttachmentReferenceStencilLayoutKHR                         = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR,
893     eAttachmentSampleCountInfoNV                                 = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV,
894     eBindBufferMemoryDeviceGroupInfoKHR                          = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR,
895     eBindBufferMemoryInfoKHR                                     = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR,
896     eBindImageMemoryDeviceGroupInfoKHR                           = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR,
897     eBindImageMemoryInfoKHR                                      = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR,
898     eBindImagePlaneMemoryInfoKHR                                 = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR,
899     eBlitImageInfo2KHR                                           = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR,
900     eBufferCopy2KHR                                              = VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR,
901     eBufferDeviceAddressInfoEXT                                  = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT,
902     eBufferDeviceAddressInfoKHR                                  = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR,
903     eBufferImageCopy2KHR                                         = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR,
904     eBufferMemoryBarrier2KHR                                     = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR,
905     eBufferMemoryRequirementsInfo2KHR                            = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR,
906     eBufferOpaqueCaptureAddressCreateInfoKHR                     = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR,
907     eCommandBufferInheritanceRenderingInfoKHR                    = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR,
908     eCommandBufferSubmitInfoKHR                                  = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR,
909     eCopyBufferInfo2KHR                                          = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR,
910     eCopyBufferToImageInfo2KHR                                   = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR,
911     eCopyImageInfo2KHR                                           = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR,
912     eCopyImageToBufferInfo2KHR                                   = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR,
913     eDebugReportCreateInfoEXT                                    = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT,
914     eDependencyInfoKHR                                           = VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR,
915     eDescriptorPoolInlineUniformBlockCreateInfoEXT               = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT,
916     eDescriptorSetLayoutBindingFlagsCreateInfoEXT                = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT,
917     eDescriptorSetLayoutSupportKHR                               = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR,
918     eDescriptorSetVariableDescriptorCountAllocateInfoEXT         = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT,
919     eDescriptorSetVariableDescriptorCountLayoutSupportEXT        = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT,
920     eDescriptorUpdateTemplateCreateInfoKHR                       = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR,
921     eDeviceBufferMemoryRequirementsKHR                           = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR,
922     eDeviceGroupBindSparseInfoKHR                                = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR,
923     eDeviceGroupCommandBufferBeginInfoKHR                        = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR,
924     eDeviceGroupDeviceCreateInfoKHR                              = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR,
925     eDeviceGroupRenderPassBeginInfoKHR                           = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR,
926     eDeviceGroupSubmitInfoKHR                                    = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR,
927     eDeviceImageMemoryRequirementsKHR                            = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR,
928     eDeviceMemoryOpaqueCaptureAddressInfoKHR                     = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR,
929     eDevicePrivateDataCreateInfoEXT                              = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT,
930     eDeviceQueueGlobalPriorityCreateInfoEXT                      = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT,
931     eExportFenceCreateInfoKHR                                    = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR,
932     eExportMemoryAllocateInfoKHR                                 = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR,
933     eExportSemaphoreCreateInfoKHR                                = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR,
934     eExternalBufferPropertiesKHR                                 = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR,
935     eExternalFencePropertiesKHR                                  = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR,
936     eExternalImageFormatPropertiesKHR                            = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR,
937     eExternalMemoryBufferCreateInfoKHR                           = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR,
938     eExternalMemoryImageCreateInfoKHR                            = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR,
939     eExternalSemaphorePropertiesKHR                              = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR,
940     eFormatProperties2KHR                                        = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR,
941     eFormatProperties3KHR                                        = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR,
942     eFramebufferAttachmentsCreateInfoKHR                         = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR,
943     eFramebufferAttachmentImageInfoKHR                           = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR,
944     eImageBlit2KHR                                               = VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR,
945     eImageCopy2KHR                                               = VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR,
946     eImageFormatListCreateInfoKHR                                = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR,
947     eImageFormatProperties2KHR                                   = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR,
948     eImageMemoryBarrier2KHR                                      = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR,
949     eImageMemoryRequirementsInfo2KHR                             = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR,
950     eImagePlaneMemoryRequirementsInfoKHR                         = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR,
951     eImageResolve2KHR                                            = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR,
952     eImageSparseMemoryRequirementsInfo2KHR                       = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR,
953     eImageStencilUsageCreateInfoEXT                              = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT,
954     eImageViewUsageCreateInfoKHR                                 = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR,
955     eMemoryAllocateFlagsInfoKHR                                  = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR,
956     eMemoryBarrier2KHR                                           = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR,
957     eMemoryDedicatedAllocateInfoKHR                              = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR,
958     eMemoryDedicatedRequirementsKHR                              = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR,
959     eMemoryOpaqueCaptureAddressAllocateInfoKHR                   = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR,
960     eMemoryRequirements2KHR                                      = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR,
961     eMutableDescriptorTypeCreateInfoVALVE                        = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE,
962     ePhysicalDevice16BitStorageFeaturesKHR                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR,
963     ePhysicalDevice8BitStorageFeaturesKHR                        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR,
964     ePhysicalDeviceBufferAddressFeaturesEXT                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT,
965     ePhysicalDeviceBufferDeviceAddressFeaturesKHR                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR,
966     ePhysicalDeviceDepthStencilResolvePropertiesKHR              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR,
967     ePhysicalDeviceDescriptorIndexingFeaturesEXT                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT,
968     ePhysicalDeviceDescriptorIndexingPropertiesEXT               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT,
969     ePhysicalDeviceDriverPropertiesKHR                           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR,
970     ePhysicalDeviceDynamicRenderingFeaturesKHR                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR,
971     ePhysicalDeviceExternalBufferInfoKHR                         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR,
972     ePhysicalDeviceExternalFenceInfoKHR                          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR,
973     ePhysicalDeviceExternalImageFormatInfoKHR                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR,
974     ePhysicalDeviceExternalSemaphoreInfoKHR                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR,
975     ePhysicalDeviceFeatures2KHR                                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR,
976     ePhysicalDeviceFloat16Int8FeaturesKHR                        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR,
977     ePhysicalDeviceFloatControlsPropertiesKHR                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR,
978     ePhysicalDeviceFragmentShaderBarycentricFeaturesNV           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV,
979     ePhysicalDeviceGlobalPriorityQueryFeaturesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT,
980     ePhysicalDeviceGroupPropertiesKHR                            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR,
981     ePhysicalDeviceHostQueryResetFeaturesEXT                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT,
982     ePhysicalDeviceIdPropertiesKHR                               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR,
983     ePhysicalDeviceImagelessFramebufferFeaturesKHR               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR,
984     ePhysicalDeviceImageFormatInfo2KHR                           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR,
985     ePhysicalDeviceImageRobustnessFeaturesEXT                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT,
986     ePhysicalDeviceInlineUniformBlockFeaturesEXT                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT,
987     ePhysicalDeviceInlineUniformBlockPropertiesEXT               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT,
988     ePhysicalDeviceMaintenance3PropertiesKHR                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR,
989     ePhysicalDeviceMaintenance4FeaturesKHR                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR,
990     ePhysicalDeviceMaintenance4PropertiesKHR                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR,
991     ePhysicalDeviceMemoryProperties2KHR                          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR,
992     ePhysicalDeviceMultiviewFeaturesKHR                          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR,
993     ePhysicalDeviceMultiviewPropertiesKHR                        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR,
994     ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE,
995     ePhysicalDevicePipelineCreationCacheControlFeaturesEXT       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT,
996     ePhysicalDevicePointClippingPropertiesKHR                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR,
997     ePhysicalDevicePrivateDataFeaturesEXT                        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT,
998     ePhysicalDeviceProperties2KHR                                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR,
999     ePhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM,
1000     ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT,
1001     ePhysicalDeviceSamplerYcbcrConversionFeaturesKHR             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR,
1002     ePhysicalDeviceScalarBlockLayoutFeaturesEXT                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT,
1003     ePhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR,
1004     ePhysicalDeviceShaderAtomicInt64FeaturesKHR                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR,
1005     ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT,
1006     ePhysicalDeviceShaderDrawParameterFeatures                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES,
1007     ePhysicalDeviceShaderFloat16Int8FeaturesKHR                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR,
1008     ePhysicalDeviceShaderIntegerDotProductFeaturesKHR            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR,
1009     ePhysicalDeviceShaderIntegerDotProductPropertiesKHR          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR,
1010     ePhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR,
1011     ePhysicalDeviceShaderTerminateInvocationFeaturesKHR          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR,
1012     ePhysicalDeviceSparseImageFormatInfo2KHR                     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR,
1013     ePhysicalDeviceSubgroupSizeControlFeaturesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT,
1014     ePhysicalDeviceSubgroupSizeControlPropertiesEXT              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT,
1015     ePhysicalDeviceSynchronization2FeaturesKHR                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR,
1016     ePhysicalDeviceTexelBufferAlignmentPropertiesEXT             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT,
1017     ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT,
1018     ePhysicalDeviceTimelineSemaphoreFeaturesKHR                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR,
1019     ePhysicalDeviceTimelineSemaphorePropertiesKHR                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR,
1020     ePhysicalDeviceToolPropertiesEXT                             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT,
1021     ePhysicalDeviceUniformBufferStandardLayoutFeaturesKHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR,
1022     ePhysicalDeviceVariablePointersFeaturesKHR                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
1023     ePhysicalDeviceVariablePointerFeatures                       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
1024     ePhysicalDeviceVariablePointerFeaturesKHR                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR,
1025     ePhysicalDeviceVulkanMemoryModelFeaturesKHR                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR,
1026     ePhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR,
1027     ePipelineCreationFeedbackCreateInfoEXT                       = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT,
1028     ePipelineInfoEXT                                             = VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT,
1029     ePipelineRenderingCreateInfoKHR                              = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,
1030     ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT        = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
1031     ePipelineTessellationDomainOriginStateCreateInfoKHR          = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR,
1032     ePrivateDataSlotCreateInfoEXT                                = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT,
1033     eQueryPoolCreateInfoINTEL                                    = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL,
1034     eQueueFamilyGlobalPriorityPropertiesEXT                      = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT,
1035     eQueueFamilyProperties2KHR                                   = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR,
1036     eRenderingAttachmentInfoKHR                                  = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR,
1037     eRenderingInfoKHR                                            = VK_STRUCTURE_TYPE_RENDERING_INFO_KHR,
1038     eRenderPassAttachmentBeginInfoKHR                            = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR,
1039     eRenderPassCreateInfo2KHR                                    = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR,
1040     eRenderPassInputAttachmentAspectCreateInfoKHR                = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR,
1041     eRenderPassMultiviewCreateInfoKHR                            = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR,
1042     eResolveImageInfo2KHR                                        = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR,
1043     eSamplerReductionModeCreateInfoEXT                           = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT,
1044     eSamplerYcbcrConversionCreateInfoKHR                         = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR,
1045     eSamplerYcbcrConversionImageFormatPropertiesKHR              = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR,
1046     eSamplerYcbcrConversionInfoKHR                               = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR,
1047     eSemaphoreSignalInfoKHR                                      = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR,
1048     eSemaphoreSubmitInfoKHR                                      = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR,
1049     eSemaphoreTypeCreateInfoKHR                                  = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR,
1050     eSemaphoreWaitInfoKHR                                        = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR,
1051     eSparseImageFormatProperties2KHR                             = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR,
1052     eSparseImageMemoryRequirements2KHR                           = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR,
1053     eSubmitInfo2KHR                                              = VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR,
1054     eSubpassBeginInfoKHR                                         = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR,
1055     eSubpassDependency2KHR                                       = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR,
1056     eSubpassDescription2KHR                                      = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR,
1057     eSubpassDescriptionDepthStencilResolveKHR                    = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR,
1058     eSubpassEndInfoKHR                                           = VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR,
1059     eTimelineSemaphoreSubmitInfoKHR                              = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR,
1060     eWriteDescriptorSetInlineUniformBlockEXT                     = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT
1061   };
1062 
1063   enum class PipelineCacheHeaderVersion
1064   {
1065     eOne = VK_PIPELINE_CACHE_HEADER_VERSION_ONE
1066   };
1067 
1068   enum class ObjectType
1069   {
1070     eUnknown                  = VK_OBJECT_TYPE_UNKNOWN,
1071     eInstance                 = VK_OBJECT_TYPE_INSTANCE,
1072     ePhysicalDevice           = VK_OBJECT_TYPE_PHYSICAL_DEVICE,
1073     eDevice                   = VK_OBJECT_TYPE_DEVICE,
1074     eQueue                    = VK_OBJECT_TYPE_QUEUE,
1075     eSemaphore                = VK_OBJECT_TYPE_SEMAPHORE,
1076     eCommandBuffer            = VK_OBJECT_TYPE_COMMAND_BUFFER,
1077     eFence                    = VK_OBJECT_TYPE_FENCE,
1078     eDeviceMemory             = VK_OBJECT_TYPE_DEVICE_MEMORY,
1079     eBuffer                   = VK_OBJECT_TYPE_BUFFER,
1080     eImage                    = VK_OBJECT_TYPE_IMAGE,
1081     eEvent                    = VK_OBJECT_TYPE_EVENT,
1082     eQueryPool                = VK_OBJECT_TYPE_QUERY_POOL,
1083     eBufferView               = VK_OBJECT_TYPE_BUFFER_VIEW,
1084     eImageView                = VK_OBJECT_TYPE_IMAGE_VIEW,
1085     eShaderModule             = VK_OBJECT_TYPE_SHADER_MODULE,
1086     ePipelineCache            = VK_OBJECT_TYPE_PIPELINE_CACHE,
1087     ePipelineLayout           = VK_OBJECT_TYPE_PIPELINE_LAYOUT,
1088     eRenderPass               = VK_OBJECT_TYPE_RENDER_PASS,
1089     ePipeline                 = VK_OBJECT_TYPE_PIPELINE,
1090     eDescriptorSetLayout      = VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT,
1091     eSampler                  = VK_OBJECT_TYPE_SAMPLER,
1092     eDescriptorPool           = VK_OBJECT_TYPE_DESCRIPTOR_POOL,
1093     eDescriptorSet            = VK_OBJECT_TYPE_DESCRIPTOR_SET,
1094     eFramebuffer              = VK_OBJECT_TYPE_FRAMEBUFFER,
1095     eCommandPool              = VK_OBJECT_TYPE_COMMAND_POOL,
1096     eSamplerYcbcrConversion   = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
1097     eDescriptorUpdateTemplate = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
1098     ePrivateDataSlot          = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
1099     eSurfaceKHR               = VK_OBJECT_TYPE_SURFACE_KHR,
1100     eSwapchainKHR             = VK_OBJECT_TYPE_SWAPCHAIN_KHR,
1101     eDisplayKHR               = VK_OBJECT_TYPE_DISPLAY_KHR,
1102     eDisplayModeKHR           = VK_OBJECT_TYPE_DISPLAY_MODE_KHR,
1103     eDebugReportCallbackEXT   = VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT,
1104 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1105     eVideoSessionKHR           = VK_OBJECT_TYPE_VIDEO_SESSION_KHR,
1106     eVideoSessionParametersKHR = VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR,
1107 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1108     eCuModuleNVX                   = VK_OBJECT_TYPE_CU_MODULE_NVX,
1109     eCuFunctionNVX                 = VK_OBJECT_TYPE_CU_FUNCTION_NVX,
1110     eDebugUtilsMessengerEXT        = VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT,
1111     eAccelerationStructureKHR      = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR,
1112     eValidationCacheEXT            = VK_OBJECT_TYPE_VALIDATION_CACHE_EXT,
1113     eAccelerationStructureNV       = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV,
1114     ePerformanceConfigurationINTEL = VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL,
1115     eDeferredOperationKHR          = VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR,
1116     eIndirectCommandsLayoutNV      = VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV,
1117 #if defined( VK_USE_PLATFORM_FUCHSIA )
1118     eBufferCollectionFUCHSIA = VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA,
1119 #endif /*VK_USE_PLATFORM_FUCHSIA*/
1120     eMicromapEXT                 = VK_OBJECT_TYPE_MICROMAP_EXT,
1121     eOpticalFlowSessionNV        = VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV,
1122     eDescriptorUpdateTemplateKHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR,
1123     ePrivateDataSlotEXT          = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT,
1124     eSamplerYcbcrConversionKHR   = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR
1125   };
1126 
1127   enum class VendorId
1128   {
1129     eVIV      = VK_VENDOR_ID_VIV,
1130     eVSI      = VK_VENDOR_ID_VSI,
1131     eKazan    = VK_VENDOR_ID_KAZAN,
1132     eCodeplay = VK_VENDOR_ID_CODEPLAY,
1133     eMESA     = VK_VENDOR_ID_MESA,
1134     ePocl     = VK_VENDOR_ID_POCL
1135   };
1136 
1137   enum class Format
1138   {
1139     eUndefined                               = VK_FORMAT_UNDEFINED,
1140     eR4G4UnormPack8                          = VK_FORMAT_R4G4_UNORM_PACK8,
1141     eR4G4B4A4UnormPack16                     = VK_FORMAT_R4G4B4A4_UNORM_PACK16,
1142     eB4G4R4A4UnormPack16                     = VK_FORMAT_B4G4R4A4_UNORM_PACK16,
1143     eR5G6B5UnormPack16                       = VK_FORMAT_R5G6B5_UNORM_PACK16,
1144     eB5G6R5UnormPack16                       = VK_FORMAT_B5G6R5_UNORM_PACK16,
1145     eR5G5B5A1UnormPack16                     = VK_FORMAT_R5G5B5A1_UNORM_PACK16,
1146     eB5G5R5A1UnormPack16                     = VK_FORMAT_B5G5R5A1_UNORM_PACK16,
1147     eA1R5G5B5UnormPack16                     = VK_FORMAT_A1R5G5B5_UNORM_PACK16,
1148     eR8Unorm                                 = VK_FORMAT_R8_UNORM,
1149     eR8Snorm                                 = VK_FORMAT_R8_SNORM,
1150     eR8Uscaled                               = VK_FORMAT_R8_USCALED,
1151     eR8Sscaled                               = VK_FORMAT_R8_SSCALED,
1152     eR8Uint                                  = VK_FORMAT_R8_UINT,
1153     eR8Sint                                  = VK_FORMAT_R8_SINT,
1154     eR8Srgb                                  = VK_FORMAT_R8_SRGB,
1155     eR8G8Unorm                               = VK_FORMAT_R8G8_UNORM,
1156     eR8G8Snorm                               = VK_FORMAT_R8G8_SNORM,
1157     eR8G8Uscaled                             = VK_FORMAT_R8G8_USCALED,
1158     eR8G8Sscaled                             = VK_FORMAT_R8G8_SSCALED,
1159     eR8G8Uint                                = VK_FORMAT_R8G8_UINT,
1160     eR8G8Sint                                = VK_FORMAT_R8G8_SINT,
1161     eR8G8Srgb                                = VK_FORMAT_R8G8_SRGB,
1162     eR8G8B8Unorm                             = VK_FORMAT_R8G8B8_UNORM,
1163     eR8G8B8Snorm                             = VK_FORMAT_R8G8B8_SNORM,
1164     eR8G8B8Uscaled                           = VK_FORMAT_R8G8B8_USCALED,
1165     eR8G8B8Sscaled                           = VK_FORMAT_R8G8B8_SSCALED,
1166     eR8G8B8Uint                              = VK_FORMAT_R8G8B8_UINT,
1167     eR8G8B8Sint                              = VK_FORMAT_R8G8B8_SINT,
1168     eR8G8B8Srgb                              = VK_FORMAT_R8G8B8_SRGB,
1169     eB8G8R8Unorm                             = VK_FORMAT_B8G8R8_UNORM,
1170     eB8G8R8Snorm                             = VK_FORMAT_B8G8R8_SNORM,
1171     eB8G8R8Uscaled                           = VK_FORMAT_B8G8R8_USCALED,
1172     eB8G8R8Sscaled                           = VK_FORMAT_B8G8R8_SSCALED,
1173     eB8G8R8Uint                              = VK_FORMAT_B8G8R8_UINT,
1174     eB8G8R8Sint                              = VK_FORMAT_B8G8R8_SINT,
1175     eB8G8R8Srgb                              = VK_FORMAT_B8G8R8_SRGB,
1176     eR8G8B8A8Unorm                           = VK_FORMAT_R8G8B8A8_UNORM,
1177     eR8G8B8A8Snorm                           = VK_FORMAT_R8G8B8A8_SNORM,
1178     eR8G8B8A8Uscaled                         = VK_FORMAT_R8G8B8A8_USCALED,
1179     eR8G8B8A8Sscaled                         = VK_FORMAT_R8G8B8A8_SSCALED,
1180     eR8G8B8A8Uint                            = VK_FORMAT_R8G8B8A8_UINT,
1181     eR8G8B8A8Sint                            = VK_FORMAT_R8G8B8A8_SINT,
1182     eR8G8B8A8Srgb                            = VK_FORMAT_R8G8B8A8_SRGB,
1183     eB8G8R8A8Unorm                           = VK_FORMAT_B8G8R8A8_UNORM,
1184     eB8G8R8A8Snorm                           = VK_FORMAT_B8G8R8A8_SNORM,
1185     eB8G8R8A8Uscaled                         = VK_FORMAT_B8G8R8A8_USCALED,
1186     eB8G8R8A8Sscaled                         = VK_FORMAT_B8G8R8A8_SSCALED,
1187     eB8G8R8A8Uint                            = VK_FORMAT_B8G8R8A8_UINT,
1188     eB8G8R8A8Sint                            = VK_FORMAT_B8G8R8A8_SINT,
1189     eB8G8R8A8Srgb                            = VK_FORMAT_B8G8R8A8_SRGB,
1190     eA8B8G8R8UnormPack32                     = VK_FORMAT_A8B8G8R8_UNORM_PACK32,
1191     eA8B8G8R8SnormPack32                     = VK_FORMAT_A8B8G8R8_SNORM_PACK32,
1192     eA8B8G8R8UscaledPack32                   = VK_FORMAT_A8B8G8R8_USCALED_PACK32,
1193     eA8B8G8R8SscaledPack32                   = VK_FORMAT_A8B8G8R8_SSCALED_PACK32,
1194     eA8B8G8R8UintPack32                      = VK_FORMAT_A8B8G8R8_UINT_PACK32,
1195     eA8B8G8R8SintPack32                      = VK_FORMAT_A8B8G8R8_SINT_PACK32,
1196     eA8B8G8R8SrgbPack32                      = VK_FORMAT_A8B8G8R8_SRGB_PACK32,
1197     eA2R10G10B10UnormPack32                  = VK_FORMAT_A2R10G10B10_UNORM_PACK32,
1198     eA2R10G10B10SnormPack32                  = VK_FORMAT_A2R10G10B10_SNORM_PACK32,
1199     eA2R10G10B10UscaledPack32                = VK_FORMAT_A2R10G10B10_USCALED_PACK32,
1200     eA2R10G10B10SscaledPack32                = VK_FORMAT_A2R10G10B10_SSCALED_PACK32,
1201     eA2R10G10B10UintPack32                   = VK_FORMAT_A2R10G10B10_UINT_PACK32,
1202     eA2R10G10B10SintPack32                   = VK_FORMAT_A2R10G10B10_SINT_PACK32,
1203     eA2B10G10R10UnormPack32                  = VK_FORMAT_A2B10G10R10_UNORM_PACK32,
1204     eA2B10G10R10SnormPack32                  = VK_FORMAT_A2B10G10R10_SNORM_PACK32,
1205     eA2B10G10R10UscaledPack32                = VK_FORMAT_A2B10G10R10_USCALED_PACK32,
1206     eA2B10G10R10SscaledPack32                = VK_FORMAT_A2B10G10R10_SSCALED_PACK32,
1207     eA2B10G10R10UintPack32                   = VK_FORMAT_A2B10G10R10_UINT_PACK32,
1208     eA2B10G10R10SintPack32                   = VK_FORMAT_A2B10G10R10_SINT_PACK32,
1209     eR16Unorm                                = VK_FORMAT_R16_UNORM,
1210     eR16Snorm                                = VK_FORMAT_R16_SNORM,
1211     eR16Uscaled                              = VK_FORMAT_R16_USCALED,
1212     eR16Sscaled                              = VK_FORMAT_R16_SSCALED,
1213     eR16Uint                                 = VK_FORMAT_R16_UINT,
1214     eR16Sint                                 = VK_FORMAT_R16_SINT,
1215     eR16Sfloat                               = VK_FORMAT_R16_SFLOAT,
1216     eR16G16Unorm                             = VK_FORMAT_R16G16_UNORM,
1217     eR16G16Snorm                             = VK_FORMAT_R16G16_SNORM,
1218     eR16G16Uscaled                           = VK_FORMAT_R16G16_USCALED,
1219     eR16G16Sscaled                           = VK_FORMAT_R16G16_SSCALED,
1220     eR16G16Uint                              = VK_FORMAT_R16G16_UINT,
1221     eR16G16Sint                              = VK_FORMAT_R16G16_SINT,
1222     eR16G16Sfloat                            = VK_FORMAT_R16G16_SFLOAT,
1223     eR16G16B16Unorm                          = VK_FORMAT_R16G16B16_UNORM,
1224     eR16G16B16Snorm                          = VK_FORMAT_R16G16B16_SNORM,
1225     eR16G16B16Uscaled                        = VK_FORMAT_R16G16B16_USCALED,
1226     eR16G16B16Sscaled                        = VK_FORMAT_R16G16B16_SSCALED,
1227     eR16G16B16Uint                           = VK_FORMAT_R16G16B16_UINT,
1228     eR16G16B16Sint                           = VK_FORMAT_R16G16B16_SINT,
1229     eR16G16B16Sfloat                         = VK_FORMAT_R16G16B16_SFLOAT,
1230     eR16G16B16A16Unorm                       = VK_FORMAT_R16G16B16A16_UNORM,
1231     eR16G16B16A16Snorm                       = VK_FORMAT_R16G16B16A16_SNORM,
1232     eR16G16B16A16Uscaled                     = VK_FORMAT_R16G16B16A16_USCALED,
1233     eR16G16B16A16Sscaled                     = VK_FORMAT_R16G16B16A16_SSCALED,
1234     eR16G16B16A16Uint                        = VK_FORMAT_R16G16B16A16_UINT,
1235     eR16G16B16A16Sint                        = VK_FORMAT_R16G16B16A16_SINT,
1236     eR16G16B16A16Sfloat                      = VK_FORMAT_R16G16B16A16_SFLOAT,
1237     eR32Uint                                 = VK_FORMAT_R32_UINT,
1238     eR32Sint                                 = VK_FORMAT_R32_SINT,
1239     eR32Sfloat                               = VK_FORMAT_R32_SFLOAT,
1240     eR32G32Uint                              = VK_FORMAT_R32G32_UINT,
1241     eR32G32Sint                              = VK_FORMAT_R32G32_SINT,
1242     eR32G32Sfloat                            = VK_FORMAT_R32G32_SFLOAT,
1243     eR32G32B32Uint                           = VK_FORMAT_R32G32B32_UINT,
1244     eR32G32B32Sint                           = VK_FORMAT_R32G32B32_SINT,
1245     eR32G32B32Sfloat                         = VK_FORMAT_R32G32B32_SFLOAT,
1246     eR32G32B32A32Uint                        = VK_FORMAT_R32G32B32A32_UINT,
1247     eR32G32B32A32Sint                        = VK_FORMAT_R32G32B32A32_SINT,
1248     eR32G32B32A32Sfloat                      = VK_FORMAT_R32G32B32A32_SFLOAT,
1249     eR64Uint                                 = VK_FORMAT_R64_UINT,
1250     eR64Sint                                 = VK_FORMAT_R64_SINT,
1251     eR64Sfloat                               = VK_FORMAT_R64_SFLOAT,
1252     eR64G64Uint                              = VK_FORMAT_R64G64_UINT,
1253     eR64G64Sint                              = VK_FORMAT_R64G64_SINT,
1254     eR64G64Sfloat                            = VK_FORMAT_R64G64_SFLOAT,
1255     eR64G64B64Uint                           = VK_FORMAT_R64G64B64_UINT,
1256     eR64G64B64Sint                           = VK_FORMAT_R64G64B64_SINT,
1257     eR64G64B64Sfloat                         = VK_FORMAT_R64G64B64_SFLOAT,
1258     eR64G64B64A64Uint                        = VK_FORMAT_R64G64B64A64_UINT,
1259     eR64G64B64A64Sint                        = VK_FORMAT_R64G64B64A64_SINT,
1260     eR64G64B64A64Sfloat                      = VK_FORMAT_R64G64B64A64_SFLOAT,
1261     eB10G11R11UfloatPack32                   = VK_FORMAT_B10G11R11_UFLOAT_PACK32,
1262     eE5B9G9R9UfloatPack32                    = VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,
1263     eD16Unorm                                = VK_FORMAT_D16_UNORM,
1264     eX8D24UnormPack32                        = VK_FORMAT_X8_D24_UNORM_PACK32,
1265     eD32Sfloat                               = VK_FORMAT_D32_SFLOAT,
1266     eS8Uint                                  = VK_FORMAT_S8_UINT,
1267     eD16UnormS8Uint                          = VK_FORMAT_D16_UNORM_S8_UINT,
1268     eD24UnormS8Uint                          = VK_FORMAT_D24_UNORM_S8_UINT,
1269     eD32SfloatS8Uint                         = VK_FORMAT_D32_SFLOAT_S8_UINT,
1270     eBc1RgbUnormBlock                        = VK_FORMAT_BC1_RGB_UNORM_BLOCK,
1271     eBc1RgbSrgbBlock                         = VK_FORMAT_BC1_RGB_SRGB_BLOCK,
1272     eBc1RgbaUnormBlock                       = VK_FORMAT_BC1_RGBA_UNORM_BLOCK,
1273     eBc1RgbaSrgbBlock                        = VK_FORMAT_BC1_RGBA_SRGB_BLOCK,
1274     eBc2UnormBlock                           = VK_FORMAT_BC2_UNORM_BLOCK,
1275     eBc2SrgbBlock                            = VK_FORMAT_BC2_SRGB_BLOCK,
1276     eBc3UnormBlock                           = VK_FORMAT_BC3_UNORM_BLOCK,
1277     eBc3SrgbBlock                            = VK_FORMAT_BC3_SRGB_BLOCK,
1278     eBc4UnormBlock                           = VK_FORMAT_BC4_UNORM_BLOCK,
1279     eBc4SnormBlock                           = VK_FORMAT_BC4_SNORM_BLOCK,
1280     eBc5UnormBlock                           = VK_FORMAT_BC5_UNORM_BLOCK,
1281     eBc5SnormBlock                           = VK_FORMAT_BC5_SNORM_BLOCK,
1282     eBc6HUfloatBlock                         = VK_FORMAT_BC6H_UFLOAT_BLOCK,
1283     eBc6HSfloatBlock                         = VK_FORMAT_BC6H_SFLOAT_BLOCK,
1284     eBc7UnormBlock                           = VK_FORMAT_BC7_UNORM_BLOCK,
1285     eBc7SrgbBlock                            = VK_FORMAT_BC7_SRGB_BLOCK,
1286     eEtc2R8G8B8UnormBlock                    = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK,
1287     eEtc2R8G8B8SrgbBlock                     = VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK,
1288     eEtc2R8G8B8A1UnormBlock                  = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK,
1289     eEtc2R8G8B8A1SrgbBlock                   = VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK,
1290     eEtc2R8G8B8A8UnormBlock                  = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK,
1291     eEtc2R8G8B8A8SrgbBlock                   = VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK,
1292     eEacR11UnormBlock                        = VK_FORMAT_EAC_R11_UNORM_BLOCK,
1293     eEacR11SnormBlock                        = VK_FORMAT_EAC_R11_SNORM_BLOCK,
1294     eEacR11G11UnormBlock                     = VK_FORMAT_EAC_R11G11_UNORM_BLOCK,
1295     eEacR11G11SnormBlock                     = VK_FORMAT_EAC_R11G11_SNORM_BLOCK,
1296     eAstc4x4UnormBlock                       = VK_FORMAT_ASTC_4x4_UNORM_BLOCK,
1297     eAstc4x4SrgbBlock                        = VK_FORMAT_ASTC_4x4_SRGB_BLOCK,
1298     eAstc5x4UnormBlock                       = VK_FORMAT_ASTC_5x4_UNORM_BLOCK,
1299     eAstc5x4SrgbBlock                        = VK_FORMAT_ASTC_5x4_SRGB_BLOCK,
1300     eAstc5x5UnormBlock                       = VK_FORMAT_ASTC_5x5_UNORM_BLOCK,
1301     eAstc5x5SrgbBlock                        = VK_FORMAT_ASTC_5x5_SRGB_BLOCK,
1302     eAstc6x5UnormBlock                       = VK_FORMAT_ASTC_6x5_UNORM_BLOCK,
1303     eAstc6x5SrgbBlock                        = VK_FORMAT_ASTC_6x5_SRGB_BLOCK,
1304     eAstc6x6UnormBlock                       = VK_FORMAT_ASTC_6x6_UNORM_BLOCK,
1305     eAstc6x6SrgbBlock                        = VK_FORMAT_ASTC_6x6_SRGB_BLOCK,
1306     eAstc8x5UnormBlock                       = VK_FORMAT_ASTC_8x5_UNORM_BLOCK,
1307     eAstc8x5SrgbBlock                        = VK_FORMAT_ASTC_8x5_SRGB_BLOCK,
1308     eAstc8x6UnormBlock                       = VK_FORMAT_ASTC_8x6_UNORM_BLOCK,
1309     eAstc8x6SrgbBlock                        = VK_FORMAT_ASTC_8x6_SRGB_BLOCK,
1310     eAstc8x8UnormBlock                       = VK_FORMAT_ASTC_8x8_UNORM_BLOCK,
1311     eAstc8x8SrgbBlock                        = VK_FORMAT_ASTC_8x8_SRGB_BLOCK,
1312     eAstc10x5UnormBlock                      = VK_FORMAT_ASTC_10x5_UNORM_BLOCK,
1313     eAstc10x5SrgbBlock                       = VK_FORMAT_ASTC_10x5_SRGB_BLOCK,
1314     eAstc10x6UnormBlock                      = VK_FORMAT_ASTC_10x6_UNORM_BLOCK,
1315     eAstc10x6SrgbBlock                       = VK_FORMAT_ASTC_10x6_SRGB_BLOCK,
1316     eAstc10x8UnormBlock                      = VK_FORMAT_ASTC_10x8_UNORM_BLOCK,
1317     eAstc10x8SrgbBlock                       = VK_FORMAT_ASTC_10x8_SRGB_BLOCK,
1318     eAstc10x10UnormBlock                     = VK_FORMAT_ASTC_10x10_UNORM_BLOCK,
1319     eAstc10x10SrgbBlock                      = VK_FORMAT_ASTC_10x10_SRGB_BLOCK,
1320     eAstc12x10UnormBlock                     = VK_FORMAT_ASTC_12x10_UNORM_BLOCK,
1321     eAstc12x10SrgbBlock                      = VK_FORMAT_ASTC_12x10_SRGB_BLOCK,
1322     eAstc12x12UnormBlock                     = VK_FORMAT_ASTC_12x12_UNORM_BLOCK,
1323     eAstc12x12SrgbBlock                      = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
1324     eG8B8G8R8422Unorm                        = VK_FORMAT_G8B8G8R8_422_UNORM,
1325     eB8G8R8G8422Unorm                        = VK_FORMAT_B8G8R8G8_422_UNORM,
1326     eG8B8R83Plane420Unorm                    = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
1327     eG8B8R82Plane420Unorm                    = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
1328     eG8B8R83Plane422Unorm                    = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
1329     eG8B8R82Plane422Unorm                    = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
1330     eG8B8R83Plane444Unorm                    = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
1331     eR10X6UnormPack16                        = VK_FORMAT_R10X6_UNORM_PACK16,
1332     eR10X6G10X6Unorm2Pack16                  = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
1333     eR10X6G10X6B10X6A10X6Unorm4Pack16        = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
1334     eG10X6B10X6G10X6R10X6422Unorm4Pack16     = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
1335     eB10X6G10X6R10X6G10X6422Unorm4Pack16     = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
1336     eG10X6B10X6R10X63Plane420Unorm3Pack16    = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
1337     eG10X6B10X6R10X62Plane420Unorm3Pack16    = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
1338     eG10X6B10X6R10X63Plane422Unorm3Pack16    = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
1339     eG10X6B10X6R10X62Plane422Unorm3Pack16    = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
1340     eG10X6B10X6R10X63Plane444Unorm3Pack16    = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
1341     eR12X4UnormPack16                        = VK_FORMAT_R12X4_UNORM_PACK16,
1342     eR12X4G12X4Unorm2Pack16                  = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
1343     eR12X4G12X4B12X4A12X4Unorm4Pack16        = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
1344     eG12X4B12X4G12X4R12X4422Unorm4Pack16     = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
1345     eB12X4G12X4R12X4G12X4422Unorm4Pack16     = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
1346     eG12X4B12X4R12X43Plane420Unorm3Pack16    = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
1347     eG12X4B12X4R12X42Plane420Unorm3Pack16    = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
1348     eG12X4B12X4R12X43Plane422Unorm3Pack16    = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
1349     eG12X4B12X4R12X42Plane422Unorm3Pack16    = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
1350     eG12X4B12X4R12X43Plane444Unorm3Pack16    = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
1351     eG16B16G16R16422Unorm                    = VK_FORMAT_G16B16G16R16_422_UNORM,
1352     eB16G16R16G16422Unorm                    = VK_FORMAT_B16G16R16G16_422_UNORM,
1353     eG16B16R163Plane420Unorm                 = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
1354     eG16B16R162Plane420Unorm                 = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
1355     eG16B16R163Plane422Unorm                 = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
1356     eG16B16R162Plane422Unorm                 = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
1357     eG16B16R163Plane444Unorm                 = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
1358     eG8B8R82Plane444Unorm                    = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM,
1359     eG10X6B10X6R10X62Plane444Unorm3Pack16    = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,
1360     eG12X4B12X4R12X42Plane444Unorm3Pack16    = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16,
1361     eG16B16R162Plane444Unorm                 = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM,
1362     eA4R4G4B4UnormPack16                     = VK_FORMAT_A4R4G4B4_UNORM_PACK16,
1363     eA4B4G4R4UnormPack16                     = VK_FORMAT_A4B4G4R4_UNORM_PACK16,
1364     eAstc4x4SfloatBlock                      = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK,
1365     eAstc5x4SfloatBlock                      = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK,
1366     eAstc5x5SfloatBlock                      = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK,
1367     eAstc6x5SfloatBlock                      = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK,
1368     eAstc6x6SfloatBlock                      = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK,
1369     eAstc8x5SfloatBlock                      = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK,
1370     eAstc8x6SfloatBlock                      = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK,
1371     eAstc8x8SfloatBlock                      = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK,
1372     eAstc10x5SfloatBlock                     = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK,
1373     eAstc10x6SfloatBlock                     = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK,
1374     eAstc10x8SfloatBlock                     = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK,
1375     eAstc10x10SfloatBlock                    = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK,
1376     eAstc12x10SfloatBlock                    = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK,
1377     eAstc12x12SfloatBlock                    = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK,
1378     ePvrtc12BppUnormBlockIMG                 = VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG,
1379     ePvrtc14BppUnormBlockIMG                 = VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG,
1380     ePvrtc22BppUnormBlockIMG                 = VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG,
1381     ePvrtc24BppUnormBlockIMG                 = VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG,
1382     ePvrtc12BppSrgbBlockIMG                  = VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG,
1383     ePvrtc14BppSrgbBlockIMG                  = VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG,
1384     ePvrtc22BppSrgbBlockIMG                  = VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG,
1385     ePvrtc24BppSrgbBlockIMG                  = VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG,
1386     eR16G16S105NV                            = VK_FORMAT_R16G16_S10_5_NV,
1387     eA4B4G4R4UnormPack16EXT                  = VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT,
1388     eA4R4G4B4UnormPack16EXT                  = VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT,
1389     eAstc10x10SfloatBlockEXT                 = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT,
1390     eAstc10x5SfloatBlockEXT                  = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT,
1391     eAstc10x6SfloatBlockEXT                  = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT,
1392     eAstc10x8SfloatBlockEXT                  = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT,
1393     eAstc12x10SfloatBlockEXT                 = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT,
1394     eAstc12x12SfloatBlockEXT                 = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT,
1395     eAstc4x4SfloatBlockEXT                   = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT,
1396     eAstc5x4SfloatBlockEXT                   = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT,
1397     eAstc5x5SfloatBlockEXT                   = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT,
1398     eAstc6x5SfloatBlockEXT                   = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT,
1399     eAstc6x6SfloatBlockEXT                   = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT,
1400     eAstc8x5SfloatBlockEXT                   = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT,
1401     eAstc8x6SfloatBlockEXT                   = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT,
1402     eAstc8x8SfloatBlockEXT                   = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT,
1403     eB10X6G10X6R10X6G10X6422Unorm4Pack16KHR  = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR,
1404     eB12X4G12X4R12X4G12X4422Unorm4Pack16KHR  = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR,
1405     eB16G16R16G16422UnormKHR                 = VK_FORMAT_B16G16R16G16_422_UNORM_KHR,
1406     eB8G8R8G8422UnormKHR                     = VK_FORMAT_B8G8R8G8_422_UNORM_KHR,
1407     eG10X6B10X6G10X6R10X6422Unorm4Pack16KHR  = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR,
1408     eG10X6B10X6R10X62Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR,
1409     eG10X6B10X6R10X62Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR,
1410     eG10X6B10X6R10X62Plane444Unorm3Pack16EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT,
1411     eG10X6B10X6R10X63Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR,
1412     eG10X6B10X6R10X63Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR,
1413     eG10X6B10X6R10X63Plane444Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR,
1414     eG12X4B12X4G12X4R12X4422Unorm4Pack16KHR  = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR,
1415     eG12X4B12X4R12X42Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR,
1416     eG12X4B12X4R12X42Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR,
1417     eG12X4B12X4R12X42Plane444Unorm3Pack16EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT,
1418     eG12X4B12X4R12X43Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR,
1419     eG12X4B12X4R12X43Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR,
1420     eG12X4B12X4R12X43Plane444Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR,
1421     eG16B16G16R16422UnormKHR                 = VK_FORMAT_G16B16G16R16_422_UNORM_KHR,
1422     eG16B16R162Plane420UnormKHR              = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR,
1423     eG16B16R162Plane422UnormKHR              = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR,
1424     eG16B16R162Plane444UnormEXT              = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT,
1425     eG16B16R163Plane420UnormKHR              = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR,
1426     eG16B16R163Plane422UnormKHR              = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR,
1427     eG16B16R163Plane444UnormKHR              = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR,
1428     eG8B8G8R8422UnormKHR                     = VK_FORMAT_G8B8G8R8_422_UNORM_KHR,
1429     eG8B8R82Plane420UnormKHR                 = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR,
1430     eG8B8R82Plane422UnormKHR                 = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR,
1431     eG8B8R82Plane444UnormEXT                 = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT,
1432     eG8B8R83Plane420UnormKHR                 = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR,
1433     eG8B8R83Plane422UnormKHR                 = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR,
1434     eG8B8R83Plane444UnormKHR                 = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR,
1435     eR10X6G10X6B10X6A10X6Unorm4Pack16KHR     = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR,
1436     eR10X6G10X6Unorm2Pack16KHR               = VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR,
1437     eR10X6UnormPack16KHR                     = VK_FORMAT_R10X6_UNORM_PACK16_KHR,
1438     eR12X4G12X4B12X4A12X4Unorm4Pack16KHR     = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR,
1439     eR12X4G12X4Unorm2Pack16KHR               = VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR,
1440     eR12X4UnormPack16KHR                     = VK_FORMAT_R12X4_UNORM_PACK16_KHR
1441   };
1442 
1443   enum class FormatFeatureFlagBits : VkFormatFeatureFlags
1444   {
1445     eSampledImage                                            = VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
1446     eStorageImage                                            = VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,
1447     eStorageImageAtomic                                      = VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,
1448     eUniformTexelBuffer                                      = VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,
1449     eStorageTexelBuffer                                      = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,
1450     eStorageTexelBufferAtomic                                = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,
1451     eVertexBuffer                                            = VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,
1452     eColorAttachment                                         = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,
1453     eColorAttachmentBlend                                    = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,
1454     eDepthStencilAttachment                                  = VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,
1455     eBlitSrc                                                 = VK_FORMAT_FEATURE_BLIT_SRC_BIT,
1456     eBlitDst                                                 = VK_FORMAT_FEATURE_BLIT_DST_BIT,
1457     eSampledImageFilterLinear                                = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT,
1458     eTransferSrc                                             = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
1459     eTransferDst                                             = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
1460     eMidpointChromaSamples                                   = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
1461     eSampledImageYcbcrConversionLinearFilter                 = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
1462     eSampledImageYcbcrConversionSeparateReconstructionFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
1463     eSampledImageYcbcrConversionChromaReconstructionExplicit = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
1464     eSampledImageYcbcrConversionChromaReconstructionExplicitForceable =
1465       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
1466     eDisjoint                 = VK_FORMAT_FEATURE_DISJOINT_BIT,
1467     eCositedChromaSamples     = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
1468     eSampledImageFilterMinmax = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
1469 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1470     eVideoDecodeOutputKHR = VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR,
1471     eVideoDecodeDpbKHR    = VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR,
1472 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1473     eAccelerationStructureVertexBufferKHR = VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,
1474     eSampledImageFilterCubicEXT           = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
1475     eFragmentDensityMapEXT                = VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,
1476     eFragmentShadingRateAttachmentKHR     = VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
1477 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1478     eVideoEncodeInputKHR = VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR,
1479     eVideoEncodeDpbKHR   = VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR,
1480 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1481     eCositedChromaSamplesKHR                                    = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR,
1482     eDisjointKHR                                                = VK_FORMAT_FEATURE_DISJOINT_BIT_KHR,
1483     eMidpointChromaSamplesKHR                                   = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR,
1484     eSampledImageFilterCubicIMG                                 = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,
1485     eSampledImageFilterMinmaxEXT                                = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT,
1486     eSampledImageYcbcrConversionChromaReconstructionExplicitKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR,
1487     eSampledImageYcbcrConversionChromaReconstructionExplicitForceableKHR =
1488       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR,
1489     eSampledImageYcbcrConversionLinearFilterKHR                 = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR,
1490     eSampledImageYcbcrConversionSeparateReconstructionFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR,
1491     eTransferDstKHR                                             = VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR,
1492     eTransferSrcKHR                                             = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
1493   };
1494 
1495   using FormatFeatureFlags = Flags<FormatFeatureFlagBits>;
1496 
1497   template <>
1498   struct FlagTraits<FormatFeatureFlagBits>
1499   {
1500     static VULKAN_HPP_CONST_OR_CONSTEXPR bool               isBitmask = true;
1501     static VULKAN_HPP_CONST_OR_CONSTEXPR FormatFeatureFlags allFlags =
1502       FormatFeatureFlagBits::eSampledImage | FormatFeatureFlagBits::eStorageImage | FormatFeatureFlagBits::eStorageImageAtomic |
1503       FormatFeatureFlagBits::eUniformTexelBuffer | FormatFeatureFlagBits::eStorageTexelBuffer | FormatFeatureFlagBits::eStorageTexelBufferAtomic |
1504       FormatFeatureFlagBits::eVertexBuffer | FormatFeatureFlagBits::eColorAttachment | FormatFeatureFlagBits::eColorAttachmentBlend |
1505       FormatFeatureFlagBits::eDepthStencilAttachment | FormatFeatureFlagBits::eBlitSrc | FormatFeatureFlagBits::eBlitDst |
1506       FormatFeatureFlagBits::eSampledImageFilterLinear | FormatFeatureFlagBits::eTransferSrc | FormatFeatureFlagBits::eTransferDst |
1507       FormatFeatureFlagBits::eMidpointChromaSamples | FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter |
1508       FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter |
1509       FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit |
1510       FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable | FormatFeatureFlagBits::eDisjoint |
1511       FormatFeatureFlagBits::eCositedChromaSamples | FormatFeatureFlagBits::eSampledImageFilterMinmax
1512 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1513       | FormatFeatureFlagBits::eVideoDecodeOutputKHR | FormatFeatureFlagBits::eVideoDecodeDpbKHR
1514 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1515       | FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR | FormatFeatureFlagBits::eSampledImageFilterCubicEXT |
1516       FormatFeatureFlagBits::eFragmentDensityMapEXT | FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR
1517 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1518       | FormatFeatureFlagBits::eVideoEncodeInputKHR | FormatFeatureFlagBits::eVideoEncodeDpbKHR
1519 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1520       ;
1521   };
1522 
1523   enum class ImageCreateFlagBits : VkImageCreateFlags
1524   {
1525     eSparseBinding                        = VK_IMAGE_CREATE_SPARSE_BINDING_BIT,
1526     eSparseResidency                      = VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,
1527     eSparseAliased                        = VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,
1528     eMutableFormat                        = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,
1529     eCubeCompatible                       = VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,
1530     eAlias                                = VK_IMAGE_CREATE_ALIAS_BIT,
1531     eSplitInstanceBindRegions             = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
1532     e2DArrayCompatible                    = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
1533     eBlockTexelViewCompatible             = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
1534     eExtendedUsage                        = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
1535     eProtected                            = VK_IMAGE_CREATE_PROTECTED_BIT,
1536     eDisjoint                             = VK_IMAGE_CREATE_DISJOINT_BIT,
1537     eCornerSampledNV                      = VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,
1538     eSampleLocationsCompatibleDepthEXT    = VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT,
1539     eSubsampledEXT                        = VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,
1540     eDescriptorBufferCaptureReplayEXT     = VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,
1541     eMultisampledRenderToSingleSampledEXT = VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT,
1542     e2DViewCompatibleEXT                  = VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT,
1543     eFragmentDensityMapOffsetQCOM         = VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM,
1544     e2DArrayCompatibleKHR                 = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR,
1545     eAliasKHR                             = VK_IMAGE_CREATE_ALIAS_BIT_KHR,
1546     eBlockTexelViewCompatibleKHR          = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR,
1547     eDisjointKHR                          = VK_IMAGE_CREATE_DISJOINT_BIT_KHR,
1548     eExtendedUsageKHR                     = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR,
1549     eSplitInstanceBindRegionsKHR          = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
1550   };
1551 
1552   using ImageCreateFlags = Flags<ImageCreateFlagBits>;
1553 
1554   template <>
1555   struct FlagTraits<ImageCreateFlagBits>
1556   {
1557     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
1558     static VULKAN_HPP_CONST_OR_CONSTEXPR ImageCreateFlags allFlags =
1559       ImageCreateFlagBits::eSparseBinding | ImageCreateFlagBits::eSparseResidency | ImageCreateFlagBits::eSparseAliased | ImageCreateFlagBits::eMutableFormat |
1560       ImageCreateFlagBits::eCubeCompatible | ImageCreateFlagBits::eAlias | ImageCreateFlagBits::eSplitInstanceBindRegions |
1561       ImageCreateFlagBits::e2DArrayCompatible | ImageCreateFlagBits::eBlockTexelViewCompatible | ImageCreateFlagBits::eExtendedUsage |
1562       ImageCreateFlagBits::eProtected | ImageCreateFlagBits::eDisjoint | ImageCreateFlagBits::eCornerSampledNV |
1563       ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT | ImageCreateFlagBits::eSubsampledEXT | ImageCreateFlagBits::eDescriptorBufferCaptureReplayEXT |
1564       ImageCreateFlagBits::eMultisampledRenderToSingleSampledEXT | ImageCreateFlagBits::e2DViewCompatibleEXT |
1565       ImageCreateFlagBits::eFragmentDensityMapOffsetQCOM;
1566   };
1567 
1568   enum class ImageTiling
1569   {
1570     eOptimal              = VK_IMAGE_TILING_OPTIMAL,
1571     eLinear               = VK_IMAGE_TILING_LINEAR,
1572     eDrmFormatModifierEXT = VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
1573   };
1574 
1575   enum class ImageType
1576   {
1577     e1D = VK_IMAGE_TYPE_1D,
1578     e2D = VK_IMAGE_TYPE_2D,
1579     e3D = VK_IMAGE_TYPE_3D
1580   };
1581 
1582   enum class ImageUsageFlagBits : VkImageUsageFlags
1583   {
1584     eTransferSrc            = VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
1585     eTransferDst            = VK_IMAGE_USAGE_TRANSFER_DST_BIT,
1586     eSampled                = VK_IMAGE_USAGE_SAMPLED_BIT,
1587     eStorage                = VK_IMAGE_USAGE_STORAGE_BIT,
1588     eColorAttachment        = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,
1589     eDepthStencilAttachment = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
1590     eTransientAttachment    = VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,
1591     eInputAttachment        = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,
1592 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1593     eVideoDecodeDstKHR = VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR,
1594     eVideoDecodeSrcKHR = VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR,
1595     eVideoDecodeDpbKHR = VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR,
1596 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1597     eFragmentDensityMapEXT            = VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,
1598     eFragmentShadingRateAttachmentKHR = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
1599 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1600     eVideoEncodeDstKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR,
1601     eVideoEncodeSrcKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,
1602     eVideoEncodeDpbKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR,
1603 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1604     eAttachmentFeedbackLoopEXT = VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,
1605     eInvocationMaskHUAWEI      = VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI,
1606     eSampleWeightQCOM          = VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM,
1607     eSampleBlockMatchQCOM      = VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM,
1608     eShadingRateImageNV        = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV
1609   };
1610 
1611   using ImageUsageFlags = Flags<ImageUsageFlagBits>;
1612 
1613   template <>
1614   struct FlagTraits<ImageUsageFlagBits>
1615   {
1616     static VULKAN_HPP_CONST_OR_CONSTEXPR bool            isBitmask = true;
1617     static VULKAN_HPP_CONST_OR_CONSTEXPR ImageUsageFlags allFlags =
1618       ImageUsageFlagBits::eTransferSrc | ImageUsageFlagBits::eTransferDst | ImageUsageFlagBits::eSampled | ImageUsageFlagBits::eStorage |
1619       ImageUsageFlagBits::eColorAttachment | ImageUsageFlagBits::eDepthStencilAttachment | ImageUsageFlagBits::eTransientAttachment |
1620       ImageUsageFlagBits::eInputAttachment
1621 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1622       | ImageUsageFlagBits::eVideoDecodeDstKHR | ImageUsageFlagBits::eVideoDecodeSrcKHR | ImageUsageFlagBits::eVideoDecodeDpbKHR
1623 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1624       | ImageUsageFlagBits::eFragmentDensityMapEXT | ImageUsageFlagBits::eFragmentShadingRateAttachmentKHR
1625 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1626       | ImageUsageFlagBits::eVideoEncodeDstKHR | ImageUsageFlagBits::eVideoEncodeSrcKHR | ImageUsageFlagBits::eVideoEncodeDpbKHR
1627 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1628       | ImageUsageFlagBits::eAttachmentFeedbackLoopEXT | ImageUsageFlagBits::eInvocationMaskHUAWEI | ImageUsageFlagBits::eSampleWeightQCOM |
1629       ImageUsageFlagBits::eSampleBlockMatchQCOM;
1630   };
1631 
1632   enum class InstanceCreateFlagBits : VkInstanceCreateFlags
1633   {
1634     eEnumeratePortabilityKHR = VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR
1635   };
1636 
1637   using InstanceCreateFlags = Flags<InstanceCreateFlagBits>;
1638 
1639   template <>
1640   struct FlagTraits<InstanceCreateFlagBits>
1641   {
1642     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                isBitmask = true;
1643     static VULKAN_HPP_CONST_OR_CONSTEXPR InstanceCreateFlags allFlags  = InstanceCreateFlagBits::eEnumeratePortabilityKHR;
1644   };
1645 
1646   enum class InternalAllocationType
1647   {
1648     eExecutable = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE
1649   };
1650 
1651   enum class MemoryHeapFlagBits : VkMemoryHeapFlags
1652   {
1653     eDeviceLocal      = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,
1654     eMultiInstance    = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
1655     eMultiInstanceKHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR
1656   };
1657 
1658   using MemoryHeapFlags = Flags<MemoryHeapFlagBits>;
1659 
1660   template <>
1661   struct FlagTraits<MemoryHeapFlagBits>
1662   {
1663     static VULKAN_HPP_CONST_OR_CONSTEXPR bool            isBitmask = true;
1664     static VULKAN_HPP_CONST_OR_CONSTEXPR MemoryHeapFlags allFlags  = MemoryHeapFlagBits::eDeviceLocal | MemoryHeapFlagBits::eMultiInstance;
1665   };
1666 
1667   enum class MemoryPropertyFlagBits : VkMemoryPropertyFlags
1668   {
1669     eDeviceLocal       = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
1670     eHostVisible       = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
1671     eHostCoherent      = VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
1672     eHostCached        = VK_MEMORY_PROPERTY_HOST_CACHED_BIT,
1673     eLazilyAllocated   = VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,
1674     eProtected         = VK_MEMORY_PROPERTY_PROTECTED_BIT,
1675     eDeviceCoherentAMD = VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,
1676     eDeviceUncachedAMD = VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD,
1677     eRdmaCapableNV     = VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV
1678   };
1679 
1680   using MemoryPropertyFlags = Flags<MemoryPropertyFlagBits>;
1681 
1682   template <>
1683   struct FlagTraits<MemoryPropertyFlagBits>
1684   {
1685     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                isBitmask = true;
1686     static VULKAN_HPP_CONST_OR_CONSTEXPR MemoryPropertyFlags allFlags =
1687       MemoryPropertyFlagBits::eDeviceLocal | MemoryPropertyFlagBits::eHostVisible | MemoryPropertyFlagBits::eHostCoherent |
1688       MemoryPropertyFlagBits::eHostCached | MemoryPropertyFlagBits::eLazilyAllocated | MemoryPropertyFlagBits::eProtected |
1689       MemoryPropertyFlagBits::eDeviceCoherentAMD | MemoryPropertyFlagBits::eDeviceUncachedAMD | MemoryPropertyFlagBits::eRdmaCapableNV;
1690   };
1691 
1692   enum class PhysicalDeviceType
1693   {
1694     eOther         = VK_PHYSICAL_DEVICE_TYPE_OTHER,
1695     eIntegratedGpu = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU,
1696     eDiscreteGpu   = VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
1697     eVirtualGpu    = VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU,
1698     eCpu           = VK_PHYSICAL_DEVICE_TYPE_CPU
1699   };
1700 
1701   enum class QueueFlagBits : VkQueueFlags
1702   {
1703     eGraphics      = VK_QUEUE_GRAPHICS_BIT,
1704     eCompute       = VK_QUEUE_COMPUTE_BIT,
1705     eTransfer      = VK_QUEUE_TRANSFER_BIT,
1706     eSparseBinding = VK_QUEUE_SPARSE_BINDING_BIT,
1707     eProtected     = VK_QUEUE_PROTECTED_BIT,
1708 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1709     eVideoDecodeKHR = VK_QUEUE_VIDEO_DECODE_BIT_KHR,
1710     eVideoEncodeKHR = VK_QUEUE_VIDEO_ENCODE_BIT_KHR,
1711 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1712     eOpticalFlowNV = VK_QUEUE_OPTICAL_FLOW_BIT_NV
1713   };
1714 
1715   using QueueFlags = Flags<QueueFlagBits>;
1716 
1717   template <>
1718   struct FlagTraits<QueueFlagBits>
1719   {
1720     static VULKAN_HPP_CONST_OR_CONSTEXPR bool       isBitmask = true;
1721     static VULKAN_HPP_CONST_OR_CONSTEXPR QueueFlags allFlags  = QueueFlagBits::eGraphics | QueueFlagBits::eCompute | QueueFlagBits::eTransfer |
1722                                                                QueueFlagBits::eSparseBinding | QueueFlagBits::eProtected
1723 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1724                                                                | QueueFlagBits::eVideoDecodeKHR | QueueFlagBits::eVideoEncodeKHR
1725 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1726                                                                | QueueFlagBits::eOpticalFlowNV;
1727   };
1728 
1729   enum class SampleCountFlagBits : VkSampleCountFlags
1730   {
1731     e1  = VK_SAMPLE_COUNT_1_BIT,
1732     e2  = VK_SAMPLE_COUNT_2_BIT,
1733     e4  = VK_SAMPLE_COUNT_4_BIT,
1734     e8  = VK_SAMPLE_COUNT_8_BIT,
1735     e16 = VK_SAMPLE_COUNT_16_BIT,
1736     e32 = VK_SAMPLE_COUNT_32_BIT,
1737     e64 = VK_SAMPLE_COUNT_64_BIT
1738   };
1739 
1740   using SampleCountFlags = Flags<SampleCountFlagBits>;
1741 
1742   template <>
1743   struct FlagTraits<SampleCountFlagBits>
1744   {
1745     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
1746     static VULKAN_HPP_CONST_OR_CONSTEXPR SampleCountFlags allFlags  = SampleCountFlagBits::e1 | SampleCountFlagBits::e2 | SampleCountFlagBits::e4 |
1747                                                                      SampleCountFlagBits::e8 | SampleCountFlagBits::e16 | SampleCountFlagBits::e32 |
1748                                                                      SampleCountFlagBits::e64;
1749   };
1750 
1751   enum class SystemAllocationScope
1752   {
1753     eCommand  = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
1754     eObject   = VK_SYSTEM_ALLOCATION_SCOPE_OBJECT,
1755     eCache    = VK_SYSTEM_ALLOCATION_SCOPE_CACHE,
1756     eDevice   = VK_SYSTEM_ALLOCATION_SCOPE_DEVICE,
1757     eInstance = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE
1758   };
1759 
1760   enum class DeviceCreateFlagBits : VkDeviceCreateFlags
1761   {
1762   };
1763 
1764   using DeviceCreateFlags = Flags<DeviceCreateFlagBits>;
1765 
1766   template <>
1767   struct FlagTraits<DeviceCreateFlagBits>
1768   {
1769     static VULKAN_HPP_CONST_OR_CONSTEXPR bool              isBitmask = true;
1770     static VULKAN_HPP_CONST_OR_CONSTEXPR DeviceCreateFlags allFlags  = {};
1771   };
1772 
1773   enum class PipelineStageFlagBits : VkPipelineStageFlags
1774   {
1775     eTopOfPipe                        = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
1776     eDrawIndirect                     = VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,
1777     eVertexInput                      = VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,
1778     eVertexShader                     = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,
1779     eTessellationControlShader        = VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,
1780     eTessellationEvaluationShader     = VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,
1781     eGeometryShader                   = VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,
1782     eFragmentShader                   = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
1783     eEarlyFragmentTests               = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,
1784     eLateFragmentTests                = VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
1785     eColorAttachmentOutput            = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
1786     eComputeShader                    = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
1787     eTransfer                         = VK_PIPELINE_STAGE_TRANSFER_BIT,
1788     eBottomOfPipe                     = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
1789     eHost                             = VK_PIPELINE_STAGE_HOST_BIT,
1790     eAllGraphics                      = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,
1791     eAllCommands                      = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,
1792     eNone                             = VK_PIPELINE_STAGE_NONE,
1793     eTransformFeedbackEXT             = VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,
1794     eConditionalRenderingEXT          = VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,
1795     eAccelerationStructureBuildKHR    = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
1796     eRayTracingShaderKHR              = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
1797     eFragmentDensityProcessEXT        = VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,
1798     eFragmentShadingRateAttachmentKHR = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
1799     eCommandPreprocessNV              = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,
1800     eTaskShaderEXT                    = VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,
1801     eMeshShaderEXT                    = VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,
1802     eAccelerationStructureBuildNV     = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
1803     eMeshShaderNV                     = VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV,
1804     eNoneKHR                          = VK_PIPELINE_STAGE_NONE_KHR,
1805     eRayTracingShaderNV               = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV,
1806     eShadingRateImageNV               = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV,
1807     eTaskShaderNV                     = VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV
1808   };
1809 
1810   using PipelineStageFlags = Flags<PipelineStageFlagBits>;
1811 
1812   template <>
1813   struct FlagTraits<PipelineStageFlagBits>
1814   {
1815     static VULKAN_HPP_CONST_OR_CONSTEXPR bool               isBitmask = true;
1816     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineStageFlags allFlags =
1817       PipelineStageFlagBits::eTopOfPipe | PipelineStageFlagBits::eDrawIndirect | PipelineStageFlagBits::eVertexInput | PipelineStageFlagBits::eVertexShader |
1818       PipelineStageFlagBits::eTessellationControlShader | PipelineStageFlagBits::eTessellationEvaluationShader | PipelineStageFlagBits::eGeometryShader |
1819       PipelineStageFlagBits::eFragmentShader | PipelineStageFlagBits::eEarlyFragmentTests | PipelineStageFlagBits::eLateFragmentTests |
1820       PipelineStageFlagBits::eColorAttachmentOutput | PipelineStageFlagBits::eComputeShader | PipelineStageFlagBits::eTransfer |
1821       PipelineStageFlagBits::eBottomOfPipe | PipelineStageFlagBits::eHost | PipelineStageFlagBits::eAllGraphics | PipelineStageFlagBits::eAllCommands |
1822       PipelineStageFlagBits::eNone | PipelineStageFlagBits::eTransformFeedbackEXT | PipelineStageFlagBits::eConditionalRenderingEXT |
1823       PipelineStageFlagBits::eAccelerationStructureBuildKHR | PipelineStageFlagBits::eRayTracingShaderKHR | PipelineStageFlagBits::eFragmentDensityProcessEXT |
1824       PipelineStageFlagBits::eFragmentShadingRateAttachmentKHR | PipelineStageFlagBits::eCommandPreprocessNV | PipelineStageFlagBits::eTaskShaderEXT |
1825       PipelineStageFlagBits::eMeshShaderEXT;
1826   };
1827 
1828   enum class MemoryMapFlagBits : VkMemoryMapFlags
1829   {
1830   };
1831 
1832   using MemoryMapFlags = Flags<MemoryMapFlagBits>;
1833 
1834   template <>
1835   struct FlagTraits<MemoryMapFlagBits>
1836   {
1837     static VULKAN_HPP_CONST_OR_CONSTEXPR bool           isBitmask = true;
1838     static VULKAN_HPP_CONST_OR_CONSTEXPR MemoryMapFlags allFlags  = {};
1839   };
1840 
1841   enum class MemoryMapFlagBits : VkMemoryMapFlags
1842   {
1843   };
1844 
to_string(MemoryMapFlagBits)1845   VULKAN_HPP_INLINE std::string to_string( MemoryMapFlagBits )
1846   {
1847     return "(void)";
1848   }
1849 
1850   enum class ImageAspectFlagBits : VkImageAspectFlags
1851   {
1852     eColor           = VK_IMAGE_ASPECT_COLOR_BIT,
1853     eDepth           = VK_IMAGE_ASPECT_DEPTH_BIT,
1854     eStencil         = VK_IMAGE_ASPECT_STENCIL_BIT,
1855     eMetadata        = VK_IMAGE_ASPECT_METADATA_BIT,
1856     ePlane0          = VK_IMAGE_ASPECT_PLANE_0_BIT,
1857     ePlane1          = VK_IMAGE_ASPECT_PLANE_1_BIT,
1858     ePlane2          = VK_IMAGE_ASPECT_PLANE_2_BIT,
1859     eNone            = VK_IMAGE_ASPECT_NONE,
1860     eMemoryPlane0EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,
1861     eMemoryPlane1EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,
1862     eMemoryPlane2EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,
1863     eMemoryPlane3EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,
1864     eNoneKHR         = VK_IMAGE_ASPECT_NONE_KHR,
1865     ePlane0KHR       = VK_IMAGE_ASPECT_PLANE_0_BIT_KHR,
1866     ePlane1KHR       = VK_IMAGE_ASPECT_PLANE_1_BIT_KHR,
1867     ePlane2KHR       = VK_IMAGE_ASPECT_PLANE_2_BIT_KHR
1868   };
1869 
1870   using ImageAspectFlags = Flags<ImageAspectFlagBits>;
1871 
1872   template <>
1873   struct FlagTraits<ImageAspectFlagBits>
1874   {
1875     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
1876     static VULKAN_HPP_CONST_OR_CONSTEXPR ImageAspectFlags allFlags = ImageAspectFlagBits::eColor | ImageAspectFlagBits::eDepth | ImageAspectFlagBits::eStencil |
1877                                                                      ImageAspectFlagBits::eMetadata | ImageAspectFlagBits::ePlane0 |
1878                                                                      ImageAspectFlagBits::ePlane1 | ImageAspectFlagBits::ePlane2 | ImageAspectFlagBits::eNone |
1879                                                                      ImageAspectFlagBits::eMemoryPlane0EXT | ImageAspectFlagBits::eMemoryPlane1EXT |
1880                                                                      ImageAspectFlagBits::eMemoryPlane2EXT | ImageAspectFlagBits::eMemoryPlane3EXT;
1881   };
1882 
1883   enum class SparseImageFormatFlagBits : VkSparseImageFormatFlags
1884   {
1885     eSingleMiptail        = VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,
1886     eAlignedMipSize       = VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,
1887     eNonstandardBlockSize = VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT
1888   };
1889 
1890   using SparseImageFormatFlags = Flags<SparseImageFormatFlagBits>;
1891 
1892   template <>
1893   struct FlagTraits<SparseImageFormatFlagBits>
1894   {
1895     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
1896     static VULKAN_HPP_CONST_OR_CONSTEXPR SparseImageFormatFlags allFlags =
1897       SparseImageFormatFlagBits::eSingleMiptail | SparseImageFormatFlagBits::eAlignedMipSize | SparseImageFormatFlagBits::eNonstandardBlockSize;
1898   };
1899 
1900   enum class SparseMemoryBindFlagBits : VkSparseMemoryBindFlags
1901   {
1902     eMetadata = VK_SPARSE_MEMORY_BIND_METADATA_BIT
1903   };
1904 
1905   using SparseMemoryBindFlags = Flags<SparseMemoryBindFlagBits>;
1906 
1907   template <>
1908   struct FlagTraits<SparseMemoryBindFlagBits>
1909   {
1910     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                  isBitmask = true;
1911     static VULKAN_HPP_CONST_OR_CONSTEXPR SparseMemoryBindFlags allFlags  = SparseMemoryBindFlagBits::eMetadata;
1912   };
1913 
1914   enum class FenceCreateFlagBits : VkFenceCreateFlags
1915   {
1916     eSignaled = VK_FENCE_CREATE_SIGNALED_BIT
1917   };
1918 
1919   using FenceCreateFlags = Flags<FenceCreateFlagBits>;
1920 
1921   template <>
1922   struct FlagTraits<FenceCreateFlagBits>
1923   {
1924     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
1925     static VULKAN_HPP_CONST_OR_CONSTEXPR FenceCreateFlags allFlags  = FenceCreateFlagBits::eSignaled;
1926   };
1927 
1928   enum class SemaphoreCreateFlagBits : VkSemaphoreCreateFlags
1929   {
1930   };
1931 
1932   using SemaphoreCreateFlags = Flags<SemaphoreCreateFlagBits>;
1933 
1934   template <>
1935   struct FlagTraits<SemaphoreCreateFlagBits>
1936   {
1937     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                 isBitmask = true;
1938     static VULKAN_HPP_CONST_OR_CONSTEXPR SemaphoreCreateFlags allFlags  = {};
1939   };
1940 
1941   enum class SemaphoreCreateFlagBits : VkSemaphoreCreateFlags
1942   {
1943   };
1944 
to_string(SemaphoreCreateFlagBits)1945   VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlagBits )
1946   {
1947     return "(void)";
1948   }
1949 
1950   enum class EventCreateFlagBits : VkEventCreateFlags
1951   {
1952     eDeviceOnly    = VK_EVENT_CREATE_DEVICE_ONLY_BIT,
1953     eDeviceOnlyKHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR
1954   };
1955 
1956   using EventCreateFlags = Flags<EventCreateFlagBits>;
1957 
1958   template <>
1959   struct FlagTraits<EventCreateFlagBits>
1960   {
1961     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
1962     static VULKAN_HPP_CONST_OR_CONSTEXPR EventCreateFlags allFlags  = EventCreateFlagBits::eDeviceOnly;
1963   };
1964 
1965   enum class QueryPipelineStatisticFlagBits : VkQueryPipelineStatisticFlags
1966   {
1967     eInputAssemblyVertices                   = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,
1968     eInputAssemblyPrimitives                 = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,
1969     eVertexShaderInvocations                 = VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,
1970     eGeometryShaderInvocations               = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,
1971     eGeometryShaderPrimitives                = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,
1972     eClippingInvocations                     = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,
1973     eClippingPrimitives                      = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,
1974     eFragmentShaderInvocations               = VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,
1975     eTessellationControlShaderPatches        = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,
1976     eTessellationEvaluationShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,
1977     eComputeShaderInvocations                = VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT,
1978     eTaskShaderInvocationsEXT                = VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT,
1979     eMeshShaderInvocationsEXT                = VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT
1980   };
1981 
1982   using QueryPipelineStatisticFlags = Flags<QueryPipelineStatisticFlagBits>;
1983 
1984   template <>
1985   struct FlagTraits<QueryPipelineStatisticFlagBits>
1986   {
1987     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                        isBitmask = true;
1988     static VULKAN_HPP_CONST_OR_CONSTEXPR QueryPipelineStatisticFlags allFlags =
1989       QueryPipelineStatisticFlagBits::eInputAssemblyVertices | QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives |
1990       QueryPipelineStatisticFlagBits::eVertexShaderInvocations | QueryPipelineStatisticFlagBits::eGeometryShaderInvocations |
1991       QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives | QueryPipelineStatisticFlagBits::eClippingInvocations |
1992       QueryPipelineStatisticFlagBits::eClippingPrimitives | QueryPipelineStatisticFlagBits::eFragmentShaderInvocations |
1993       QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches | QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations |
1994       QueryPipelineStatisticFlagBits::eComputeShaderInvocations | QueryPipelineStatisticFlagBits::eTaskShaderInvocationsEXT |
1995       QueryPipelineStatisticFlagBits::eMeshShaderInvocationsEXT;
1996   };
1997 
1998   enum class QueryResultFlagBits : VkQueryResultFlags
1999   {
2000     e64               = VK_QUERY_RESULT_64_BIT,
2001     eWait             = VK_QUERY_RESULT_WAIT_BIT,
2002     eWithAvailability = VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,
2003     ePartial          = VK_QUERY_RESULT_PARTIAL_BIT,
2004 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2005     eWithStatusKHR = VK_QUERY_RESULT_WITH_STATUS_BIT_KHR
2006 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2007   };
2008 
2009   using QueryResultFlags = Flags<QueryResultFlagBits>;
2010 
2011   template <>
2012   struct FlagTraits<QueryResultFlagBits>
2013   {
2014     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
2015     static VULKAN_HPP_CONST_OR_CONSTEXPR QueryResultFlags allFlags  = QueryResultFlagBits::e64 | QueryResultFlagBits::eWait |
2016                                                                      QueryResultFlagBits::eWithAvailability | QueryResultFlagBits::ePartial
2017 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2018                                                                      | QueryResultFlagBits::eWithStatusKHR
2019 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2020       ;
2021   };
2022 
2023   enum class QueryType
2024   {
2025     eOcclusion          = VK_QUERY_TYPE_OCCLUSION,
2026     ePipelineStatistics = VK_QUERY_TYPE_PIPELINE_STATISTICS,
2027     eTimestamp          = VK_QUERY_TYPE_TIMESTAMP,
2028 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2029     eResultStatusOnlyKHR = VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR,
2030 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2031     eTransformFeedbackStreamEXT                = VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT,
2032     ePerformanceQueryKHR                       = VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR,
2033     eAccelerationStructureCompactedSizeKHR     = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR,
2034     eAccelerationStructureSerializationSizeKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR,
2035     eAccelerationStructureCompactedSizeNV      = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV,
2036     ePerformanceQueryINTEL                     = VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL,
2037 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2038     eVideoEncodeBitstreamBufferRangeKHR = VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR,
2039 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2040     eMeshPrimitivesGeneratedEXT                               = VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT,
2041     ePrimitivesGeneratedEXT                                   = VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT,
2042     eAccelerationStructureSerializationBottomLevelPointersKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR,
2043     eAccelerationStructureSizeKHR                             = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR,
2044     eMicromapSerializationSizeEXT                             = VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT,
2045     eMicromapCompactedSizeEXT                                 = VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT
2046   };
2047 
2048   enum class QueryPoolCreateFlagBits : VkQueryPoolCreateFlags
2049   {
2050   };
2051 
2052   using QueryPoolCreateFlags = Flags<QueryPoolCreateFlagBits>;
2053 
2054   template <>
2055   struct FlagTraits<QueryPoolCreateFlagBits>
2056   {
2057     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                 isBitmask = true;
2058     static VULKAN_HPP_CONST_OR_CONSTEXPR QueryPoolCreateFlags allFlags  = {};
2059   };
2060 
2061   enum class QueryPoolCreateFlagBits
2062   {
2063   };
2064 
to_string(QueryPoolCreateFlagBits)2065   VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlagBits )
2066   {
2067     return "(void)";
2068   }
2069 
2070   enum class BufferCreateFlagBits : VkBufferCreateFlags
2071   {
2072     eSparseBinding                    = VK_BUFFER_CREATE_SPARSE_BINDING_BIT,
2073     eSparseResidency                  = VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,
2074     eSparseAliased                    = VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,
2075     eProtected                        = VK_BUFFER_CREATE_PROTECTED_BIT,
2076     eDeviceAddressCaptureReplay       = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
2077     eDescriptorBufferCaptureReplayEXT = VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,
2078     eDeviceAddressCaptureReplayEXT    = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT,
2079     eDeviceAddressCaptureReplayKHR    = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR
2080   };
2081 
2082   using BufferCreateFlags = Flags<BufferCreateFlagBits>;
2083 
2084   template <>
2085   struct FlagTraits<BufferCreateFlagBits>
2086   {
2087     static VULKAN_HPP_CONST_OR_CONSTEXPR bool              isBitmask = true;
2088     static VULKAN_HPP_CONST_OR_CONSTEXPR BufferCreateFlags allFlags =
2089       BufferCreateFlagBits::eSparseBinding | BufferCreateFlagBits::eSparseResidency | BufferCreateFlagBits::eSparseAliased | BufferCreateFlagBits::eProtected |
2090       BufferCreateFlagBits::eDeviceAddressCaptureReplay | BufferCreateFlagBits::eDescriptorBufferCaptureReplayEXT;
2091   };
2092 
2093   enum class BufferUsageFlagBits : VkBufferUsageFlags
2094   {
2095     eTransferSrc         = VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
2096     eTransferDst         = VK_BUFFER_USAGE_TRANSFER_DST_BIT,
2097     eUniformTexelBuffer  = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,
2098     eStorageTexelBuffer  = VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,
2099     eUniformBuffer       = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
2100     eStorageBuffer       = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
2101     eIndexBuffer         = VK_BUFFER_USAGE_INDEX_BUFFER_BIT,
2102     eVertexBuffer        = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
2103     eIndirectBuffer      = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,
2104     eShaderDeviceAddress = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
2105 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2106     eVideoDecodeSrcKHR = VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR,
2107     eVideoDecodeDstKHR = VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR,
2108 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2109     eTransformFeedbackBufferEXT                 = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,
2110     eTransformFeedbackCounterBufferEXT          = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,
2111     eConditionalRenderingEXT                    = VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,
2112     eAccelerationStructureBuildInputReadOnlyKHR = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR,
2113     eAccelerationStructureStorageKHR            = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,
2114     eShaderBindingTableKHR                      = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
2115 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2116     eVideoEncodeDstKHR = VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR,
2117     eVideoEncodeSrcKHR = VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,
2118 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2119     eSamplerDescriptorBufferEXT         = VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT,
2120     eResourceDescriptorBufferEXT        = VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT,
2121     ePushDescriptorsDescriptorBufferEXT = VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT,
2122     eMicromapBuildInputReadOnlyEXT      = VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT,
2123     eMicromapStorageEXT                 = VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT,
2124     eRayTracingNV                       = VK_BUFFER_USAGE_RAY_TRACING_BIT_NV,
2125     eShaderDeviceAddressEXT             = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT,
2126     eShaderDeviceAddressKHR             = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR
2127   };
2128 
2129   using BufferUsageFlags = Flags<BufferUsageFlagBits>;
2130 
2131   template <>
2132   struct FlagTraits<BufferUsageFlagBits>
2133   {
2134     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
2135     static VULKAN_HPP_CONST_OR_CONSTEXPR BufferUsageFlags allFlags =
2136       BufferUsageFlagBits::eTransferSrc | BufferUsageFlagBits::eTransferDst | BufferUsageFlagBits::eUniformTexelBuffer |
2137       BufferUsageFlagBits::eStorageTexelBuffer | BufferUsageFlagBits::eUniformBuffer | BufferUsageFlagBits::eStorageBuffer | BufferUsageFlagBits::eIndexBuffer |
2138       BufferUsageFlagBits::eVertexBuffer | BufferUsageFlagBits::eIndirectBuffer | BufferUsageFlagBits::eShaderDeviceAddress
2139 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2140       | BufferUsageFlagBits::eVideoDecodeSrcKHR | BufferUsageFlagBits::eVideoDecodeDstKHR
2141 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2142       | BufferUsageFlagBits::eTransformFeedbackBufferEXT | BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT |
2143       BufferUsageFlagBits::eConditionalRenderingEXT | BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR |
2144       BufferUsageFlagBits::eAccelerationStructureStorageKHR | BufferUsageFlagBits::eShaderBindingTableKHR
2145 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2146       | BufferUsageFlagBits::eVideoEncodeDstKHR | BufferUsageFlagBits::eVideoEncodeSrcKHR
2147 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2148       | BufferUsageFlagBits::eSamplerDescriptorBufferEXT | BufferUsageFlagBits::eResourceDescriptorBufferEXT |
2149       BufferUsageFlagBits::ePushDescriptorsDescriptorBufferEXT | BufferUsageFlagBits::eMicromapBuildInputReadOnlyEXT | BufferUsageFlagBits::eMicromapStorageEXT;
2150   };
2151 
2152   enum class SharingMode
2153   {
2154     eExclusive  = VK_SHARING_MODE_EXCLUSIVE,
2155     eConcurrent = VK_SHARING_MODE_CONCURRENT
2156   };
2157 
2158   enum class BufferViewCreateFlagBits : VkBufferViewCreateFlags
2159   {
2160   };
2161 
2162   using BufferViewCreateFlags = Flags<BufferViewCreateFlagBits>;
2163 
2164   template <>
2165   struct FlagTraits<BufferViewCreateFlagBits>
2166   {
2167     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                  isBitmask = true;
2168     static VULKAN_HPP_CONST_OR_CONSTEXPR BufferViewCreateFlags allFlags  = {};
2169   };
2170 
2171   enum class BufferViewCreateFlagBits : VkBufferViewCreateFlags
2172   {
2173   };
2174 
to_string(BufferViewCreateFlagBits)2175   VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlagBits )
2176   {
2177     return "(void)";
2178   }
2179 
2180   enum class ImageLayout
2181   {
2182     eUndefined                             = VK_IMAGE_LAYOUT_UNDEFINED,
2183     eGeneral                               = VK_IMAGE_LAYOUT_GENERAL,
2184     eColorAttachmentOptimal                = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
2185     eDepthStencilAttachmentOptimal         = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
2186     eDepthStencilReadOnlyOptimal           = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,
2187     eShaderReadOnlyOptimal                 = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
2188     eTransferSrcOptimal                    = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
2189     eTransferDstOptimal                    = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
2190     ePreinitialized                        = VK_IMAGE_LAYOUT_PREINITIALIZED,
2191     eDepthReadOnlyStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
2192     eDepthAttachmentStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
2193     eDepthAttachmentOptimal                = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
2194     eDepthReadOnlyOptimal                  = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
2195     eStencilAttachmentOptimal              = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
2196     eStencilReadOnlyOptimal                = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
2197     eReadOnlyOptimal                       = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL,
2198     eAttachmentOptimal                     = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,
2199     ePresentSrcKHR                         = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR,
2200 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2201     eVideoDecodeDstKHR = VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR,
2202     eVideoDecodeSrcKHR = VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR,
2203     eVideoDecodeDpbKHR = VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR,
2204 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2205     eSharedPresentKHR                        = VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
2206     eFragmentDensityMapOptimalEXT            = VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT,
2207     eFragmentShadingRateAttachmentOptimalKHR = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
2208 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2209     eVideoEncodeDstKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR,
2210     eVideoEncodeSrcKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR,
2211     eVideoEncodeDpbKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR,
2212 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2213     eAttachmentFeedbackLoopOptimalEXT         = VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT,
2214     eAttachmentOptimalKHR                     = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR,
2215     eDepthAttachmentOptimalKHR                = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR,
2216     eDepthAttachmentStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR,
2217     eDepthReadOnlyOptimalKHR                  = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR,
2218     eDepthReadOnlyStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR,
2219     eReadOnlyOptimalKHR                       = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR,
2220     eShadingRateOptimalNV                     = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV,
2221     eStencilAttachmentOptimalKHR              = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR,
2222     eStencilReadOnlyOptimalKHR                = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR
2223   };
2224 
2225   enum class ComponentSwizzle
2226   {
2227     eIdentity = VK_COMPONENT_SWIZZLE_IDENTITY,
2228     eZero     = VK_COMPONENT_SWIZZLE_ZERO,
2229     eOne      = VK_COMPONENT_SWIZZLE_ONE,
2230     eR        = VK_COMPONENT_SWIZZLE_R,
2231     eG        = VK_COMPONENT_SWIZZLE_G,
2232     eB        = VK_COMPONENT_SWIZZLE_B,
2233     eA        = VK_COMPONENT_SWIZZLE_A
2234   };
2235 
2236   enum class ImageViewCreateFlagBits : VkImageViewCreateFlags
2237   {
2238     eFragmentDensityMapDynamicEXT     = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT,
2239     eDescriptorBufferCaptureReplayEXT = VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,
2240     eFragmentDensityMapDeferredEXT    = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT
2241   };
2242 
2243   using ImageViewCreateFlags = Flags<ImageViewCreateFlagBits>;
2244 
2245   template <>
2246   struct FlagTraits<ImageViewCreateFlagBits>
2247   {
2248     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                 isBitmask = true;
2249     static VULKAN_HPP_CONST_OR_CONSTEXPR ImageViewCreateFlags allFlags  = ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT |
2250                                                                          ImageViewCreateFlagBits::eDescriptorBufferCaptureReplayEXT |
2251                                                                          ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT;
2252   };
2253 
2254   enum class ImageViewType
2255   {
2256     e1D        = VK_IMAGE_VIEW_TYPE_1D,
2257     e2D        = VK_IMAGE_VIEW_TYPE_2D,
2258     e3D        = VK_IMAGE_VIEW_TYPE_3D,
2259     eCube      = VK_IMAGE_VIEW_TYPE_CUBE,
2260     e1DArray   = VK_IMAGE_VIEW_TYPE_1D_ARRAY,
2261     e2DArray   = VK_IMAGE_VIEW_TYPE_2D_ARRAY,
2262     eCubeArray = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
2263   };
2264 
2265   enum class ShaderModuleCreateFlagBits : VkShaderModuleCreateFlags
2266   {
2267   };
2268 
2269   using ShaderModuleCreateFlags = Flags<ShaderModuleCreateFlagBits>;
2270 
2271   template <>
2272   struct FlagTraits<ShaderModuleCreateFlagBits>
2273   {
2274     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                    isBitmask = true;
2275     static VULKAN_HPP_CONST_OR_CONSTEXPR ShaderModuleCreateFlags allFlags  = {};
2276   };
2277 
2278   enum class BlendFactor
2279   {
2280     eZero                  = VK_BLEND_FACTOR_ZERO,
2281     eOne                   = VK_BLEND_FACTOR_ONE,
2282     eSrcColor              = VK_BLEND_FACTOR_SRC_COLOR,
2283     eOneMinusSrcColor      = VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR,
2284     eDstColor              = VK_BLEND_FACTOR_DST_COLOR,
2285     eOneMinusDstColor      = VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR,
2286     eSrcAlpha              = VK_BLEND_FACTOR_SRC_ALPHA,
2287     eOneMinusSrcAlpha      = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA,
2288     eDstAlpha              = VK_BLEND_FACTOR_DST_ALPHA,
2289     eOneMinusDstAlpha      = VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA,
2290     eConstantColor         = VK_BLEND_FACTOR_CONSTANT_COLOR,
2291     eOneMinusConstantColor = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,
2292     eConstantAlpha         = VK_BLEND_FACTOR_CONSTANT_ALPHA,
2293     eOneMinusConstantAlpha = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,
2294     eSrcAlphaSaturate      = VK_BLEND_FACTOR_SRC_ALPHA_SATURATE,
2295     eSrc1Color             = VK_BLEND_FACTOR_SRC1_COLOR,
2296     eOneMinusSrc1Color     = VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,
2297     eSrc1Alpha             = VK_BLEND_FACTOR_SRC1_ALPHA,
2298     eOneMinusSrc1Alpha     = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
2299   };
2300 
2301   enum class BlendOp
2302   {
2303     eAdd                 = VK_BLEND_OP_ADD,
2304     eSubtract            = VK_BLEND_OP_SUBTRACT,
2305     eReverseSubtract     = VK_BLEND_OP_REVERSE_SUBTRACT,
2306     eMin                 = VK_BLEND_OP_MIN,
2307     eMax                 = VK_BLEND_OP_MAX,
2308     eZeroEXT             = VK_BLEND_OP_ZERO_EXT,
2309     eSrcEXT              = VK_BLEND_OP_SRC_EXT,
2310     eDstEXT              = VK_BLEND_OP_DST_EXT,
2311     eSrcOverEXT          = VK_BLEND_OP_SRC_OVER_EXT,
2312     eDstOverEXT          = VK_BLEND_OP_DST_OVER_EXT,
2313     eSrcInEXT            = VK_BLEND_OP_SRC_IN_EXT,
2314     eDstInEXT            = VK_BLEND_OP_DST_IN_EXT,
2315     eSrcOutEXT           = VK_BLEND_OP_SRC_OUT_EXT,
2316     eDstOutEXT           = VK_BLEND_OP_DST_OUT_EXT,
2317     eSrcAtopEXT          = VK_BLEND_OP_SRC_ATOP_EXT,
2318     eDstAtopEXT          = VK_BLEND_OP_DST_ATOP_EXT,
2319     eXorEXT              = VK_BLEND_OP_XOR_EXT,
2320     eMultiplyEXT         = VK_BLEND_OP_MULTIPLY_EXT,
2321     eScreenEXT           = VK_BLEND_OP_SCREEN_EXT,
2322     eOverlayEXT          = VK_BLEND_OP_OVERLAY_EXT,
2323     eDarkenEXT           = VK_BLEND_OP_DARKEN_EXT,
2324     eLightenEXT          = VK_BLEND_OP_LIGHTEN_EXT,
2325     eColordodgeEXT       = VK_BLEND_OP_COLORDODGE_EXT,
2326     eColorburnEXT        = VK_BLEND_OP_COLORBURN_EXT,
2327     eHardlightEXT        = VK_BLEND_OP_HARDLIGHT_EXT,
2328     eSoftlightEXT        = VK_BLEND_OP_SOFTLIGHT_EXT,
2329     eDifferenceEXT       = VK_BLEND_OP_DIFFERENCE_EXT,
2330     eExclusionEXT        = VK_BLEND_OP_EXCLUSION_EXT,
2331     eInvertEXT           = VK_BLEND_OP_INVERT_EXT,
2332     eInvertRgbEXT        = VK_BLEND_OP_INVERT_RGB_EXT,
2333     eLineardodgeEXT      = VK_BLEND_OP_LINEARDODGE_EXT,
2334     eLinearburnEXT       = VK_BLEND_OP_LINEARBURN_EXT,
2335     eVividlightEXT       = VK_BLEND_OP_VIVIDLIGHT_EXT,
2336     eLinearlightEXT      = VK_BLEND_OP_LINEARLIGHT_EXT,
2337     ePinlightEXT         = VK_BLEND_OP_PINLIGHT_EXT,
2338     eHardmixEXT          = VK_BLEND_OP_HARDMIX_EXT,
2339     eHslHueEXT           = VK_BLEND_OP_HSL_HUE_EXT,
2340     eHslSaturationEXT    = VK_BLEND_OP_HSL_SATURATION_EXT,
2341     eHslColorEXT         = VK_BLEND_OP_HSL_COLOR_EXT,
2342     eHslLuminosityEXT    = VK_BLEND_OP_HSL_LUMINOSITY_EXT,
2343     ePlusEXT             = VK_BLEND_OP_PLUS_EXT,
2344     ePlusClampedEXT      = VK_BLEND_OP_PLUS_CLAMPED_EXT,
2345     ePlusClampedAlphaEXT = VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT,
2346     ePlusDarkerEXT       = VK_BLEND_OP_PLUS_DARKER_EXT,
2347     eMinusEXT            = VK_BLEND_OP_MINUS_EXT,
2348     eMinusClampedEXT     = VK_BLEND_OP_MINUS_CLAMPED_EXT,
2349     eContrastEXT         = VK_BLEND_OP_CONTRAST_EXT,
2350     eInvertOvgEXT        = VK_BLEND_OP_INVERT_OVG_EXT,
2351     eRedEXT              = VK_BLEND_OP_RED_EXT,
2352     eGreenEXT            = VK_BLEND_OP_GREEN_EXT,
2353     eBlueEXT             = VK_BLEND_OP_BLUE_EXT
2354   };
2355 
2356   enum class ColorComponentFlagBits : VkColorComponentFlags
2357   {
2358     eR = VK_COLOR_COMPONENT_R_BIT,
2359     eG = VK_COLOR_COMPONENT_G_BIT,
2360     eB = VK_COLOR_COMPONENT_B_BIT,
2361     eA = VK_COLOR_COMPONENT_A_BIT
2362   };
2363 
2364   using ColorComponentFlags = Flags<ColorComponentFlagBits>;
2365 
2366   template <>
2367   struct FlagTraits<ColorComponentFlagBits>
2368   {
2369     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                isBitmask = true;
2370     static VULKAN_HPP_CONST_OR_CONSTEXPR ColorComponentFlags allFlags =
2371       ColorComponentFlagBits::eR | ColorComponentFlagBits::eG | ColorComponentFlagBits::eB | ColorComponentFlagBits::eA;
2372   };
2373 
2374   enum class CompareOp
2375   {
2376     eNever          = VK_COMPARE_OP_NEVER,
2377     eLess           = VK_COMPARE_OP_LESS,
2378     eEqual          = VK_COMPARE_OP_EQUAL,
2379     eLessOrEqual    = VK_COMPARE_OP_LESS_OR_EQUAL,
2380     eGreater        = VK_COMPARE_OP_GREATER,
2381     eNotEqual       = VK_COMPARE_OP_NOT_EQUAL,
2382     eGreaterOrEqual = VK_COMPARE_OP_GREATER_OR_EQUAL,
2383     eAlways         = VK_COMPARE_OP_ALWAYS
2384   };
2385 
2386   enum class CullModeFlagBits : VkCullModeFlags
2387   {
2388     eNone         = VK_CULL_MODE_NONE,
2389     eFront        = VK_CULL_MODE_FRONT_BIT,
2390     eBack         = VK_CULL_MODE_BACK_BIT,
2391     eFrontAndBack = VK_CULL_MODE_FRONT_AND_BACK
2392   };
2393 
2394   using CullModeFlags = Flags<CullModeFlagBits>;
2395 
2396   template <>
2397   struct FlagTraits<CullModeFlagBits>
2398   {
2399     static VULKAN_HPP_CONST_OR_CONSTEXPR bool          isBitmask = true;
2400     static VULKAN_HPP_CONST_OR_CONSTEXPR CullModeFlags allFlags =
2401       CullModeFlagBits::eNone | CullModeFlagBits::eFront | CullModeFlagBits::eBack | CullModeFlagBits::eFrontAndBack;
2402   };
2403 
2404   enum class DynamicState
2405   {
2406     eViewport                            = VK_DYNAMIC_STATE_VIEWPORT,
2407     eScissor                             = VK_DYNAMIC_STATE_SCISSOR,
2408     eLineWidth                           = VK_DYNAMIC_STATE_LINE_WIDTH,
2409     eDepthBias                           = VK_DYNAMIC_STATE_DEPTH_BIAS,
2410     eBlendConstants                      = VK_DYNAMIC_STATE_BLEND_CONSTANTS,
2411     eDepthBounds                         = VK_DYNAMIC_STATE_DEPTH_BOUNDS,
2412     eStencilCompareMask                  = VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK,
2413     eStencilWriteMask                    = VK_DYNAMIC_STATE_STENCIL_WRITE_MASK,
2414     eStencilReference                    = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
2415     eCullMode                            = VK_DYNAMIC_STATE_CULL_MODE,
2416     eFrontFace                           = VK_DYNAMIC_STATE_FRONT_FACE,
2417     ePrimitiveTopology                   = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,
2418     eViewportWithCount                   = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
2419     eScissorWithCount                    = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
2420     eVertexInputBindingStride            = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE,
2421     eDepthTestEnable                     = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
2422     eDepthWriteEnable                    = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE,
2423     eDepthCompareOp                      = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP,
2424     eDepthBoundsTestEnable               = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,
2425     eStencilTestEnable                   = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE,
2426     eStencilOp                           = VK_DYNAMIC_STATE_STENCIL_OP,
2427     eRasterizerDiscardEnable             = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE,
2428     eDepthBiasEnable                     = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE,
2429     ePrimitiveRestartEnable              = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE,
2430     eViewportWScalingNV                  = VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV,
2431     eDiscardRectangleEXT                 = VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT,
2432     eSampleLocationsEXT                  = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT,
2433     eRayTracingPipelineStackSizeKHR      = VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR,
2434     eViewportShadingRatePaletteNV        = VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV,
2435     eViewportCoarseSampleOrderNV         = VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV,
2436     eExclusiveScissorNV                  = VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV,
2437     eFragmentShadingRateKHR              = VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR,
2438     eLineStippleEXT                      = VK_DYNAMIC_STATE_LINE_STIPPLE_EXT,
2439     eVertexInputEXT                      = VK_DYNAMIC_STATE_VERTEX_INPUT_EXT,
2440     ePatchControlPointsEXT               = VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT,
2441     eLogicOpEXT                          = VK_DYNAMIC_STATE_LOGIC_OP_EXT,
2442     eColorWriteEnableEXT                 = VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT,
2443     eTessellationDomainOriginEXT         = VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT,
2444     eDepthClampEnableEXT                 = VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT,
2445     ePolygonModeEXT                      = VK_DYNAMIC_STATE_POLYGON_MODE_EXT,
2446     eRasterizationSamplesEXT             = VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT,
2447     eSampleMaskEXT                       = VK_DYNAMIC_STATE_SAMPLE_MASK_EXT,
2448     eAlphaToCoverageEnableEXT            = VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT,
2449     eAlphaToOneEnableEXT                 = VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT,
2450     eLogicOpEnableEXT                    = VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT,
2451     eColorBlendEnableEXT                 = VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT,
2452     eColorBlendEquationEXT               = VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT,
2453     eColorWriteMaskEXT                   = VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT,
2454     eRasterizationStreamEXT              = VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT,
2455     eConservativeRasterizationModeEXT    = VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT,
2456     eExtraPrimitiveOverestimationSizeEXT = VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT,
2457     eDepthClipEnableEXT                  = VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT,
2458     eSampleLocationsEnableEXT            = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT,
2459     eColorBlendAdvancedEXT               = VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT,
2460     eProvokingVertexModeEXT              = VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT,
2461     eLineRasterizationModeEXT            = VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT,
2462     eLineStippleEnableEXT                = VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT,
2463     eDepthClipNegativeOneToOneEXT        = VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT,
2464     eViewportWScalingEnableNV            = VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV,
2465     eViewportSwizzleNV                   = VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV,
2466     eCoverageToColorEnableNV             = VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV,
2467     eCoverageToColorLocationNV           = VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV,
2468     eCoverageModulationModeNV            = VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV,
2469     eCoverageModulationTableEnableNV     = VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV,
2470     eCoverageModulationTableNV           = VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV,
2471     eShadingRateImageEnableNV            = VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV,
2472     eRepresentativeFragmentTestEnableNV  = VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV,
2473     eCoverageReductionModeNV             = VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV,
2474     eCullModeEXT                         = VK_DYNAMIC_STATE_CULL_MODE_EXT,
2475     eDepthBiasEnableEXT                  = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT,
2476     eDepthBoundsTestEnableEXT            = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT,
2477     eDepthCompareOpEXT                   = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT,
2478     eDepthTestEnableEXT                  = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT,
2479     eDepthWriteEnableEXT                 = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT,
2480     eFrontFaceEXT                        = VK_DYNAMIC_STATE_FRONT_FACE_EXT,
2481     ePrimitiveRestartEnableEXT           = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT,
2482     ePrimitiveTopologyEXT                = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT,
2483     eRasterizerDiscardEnableEXT          = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT,
2484     eScissorWithCountEXT                 = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT,
2485     eStencilOpEXT                        = VK_DYNAMIC_STATE_STENCIL_OP_EXT,
2486     eStencilTestEnableEXT                = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT,
2487     eVertexInputBindingStrideEXT         = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT,
2488     eViewportWithCountEXT                = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT
2489   };
2490 
2491   enum class FrontFace
2492   {
2493     eCounterClockwise = VK_FRONT_FACE_COUNTER_CLOCKWISE,
2494     eClockwise        = VK_FRONT_FACE_CLOCKWISE
2495   };
2496 
2497   enum class LogicOp
2498   {
2499     eClear        = VK_LOGIC_OP_CLEAR,
2500     eAnd          = VK_LOGIC_OP_AND,
2501     eAndReverse   = VK_LOGIC_OP_AND_REVERSE,
2502     eCopy         = VK_LOGIC_OP_COPY,
2503     eAndInverted  = VK_LOGIC_OP_AND_INVERTED,
2504     eNoOp         = VK_LOGIC_OP_NO_OP,
2505     eXor          = VK_LOGIC_OP_XOR,
2506     eOr           = VK_LOGIC_OP_OR,
2507     eNor          = VK_LOGIC_OP_NOR,
2508     eEquivalent   = VK_LOGIC_OP_EQUIVALENT,
2509     eInvert       = VK_LOGIC_OP_INVERT,
2510     eOrReverse    = VK_LOGIC_OP_OR_REVERSE,
2511     eCopyInverted = VK_LOGIC_OP_COPY_INVERTED,
2512     eOrInverted   = VK_LOGIC_OP_OR_INVERTED,
2513     eNand         = VK_LOGIC_OP_NAND,
2514     eSet          = VK_LOGIC_OP_SET
2515   };
2516 
2517   enum class PipelineCreateFlagBits : VkPipelineCreateFlags
2518   {
2519     eDisableOptimization                                                = VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,
2520     eAllowDerivatives                                                   = VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,
2521     eDerivative                                                         = VK_PIPELINE_CREATE_DERIVATIVE_BIT,
2522     eViewIndexFromDeviceIndex                                           = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
2523     eDispatchBase                                                       = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
2524     eFailOnPipelineCompileRequired                                      = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,
2525     eEarlyReturnOnFailure                                               = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,
2526     eRenderingFragmentShadingRateAttachmentKHR                          = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2527     eRenderingFragmentDensityMapAttachmentEXT                           = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
2528     eRayTracingNoNullAnyHitShadersKHR                                   = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR,
2529     eRayTracingNoNullClosestHitShadersKHR                               = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR,
2530     eRayTracingNoNullMissShadersKHR                                     = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR,
2531     eRayTracingNoNullIntersectionShadersKHR                             = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR,
2532     eRayTracingSkipTrianglesKHR                                         = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,
2533     eRayTracingSkipAabbsKHR                                             = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR,
2534     eRayTracingShaderGroupHandleCaptureReplayKHR                        = VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR,
2535     eDeferCompileNV                                                     = VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,
2536     eCaptureStatisticsKHR                                               = VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,
2537     eCaptureInternalRepresentationsKHR                                  = VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,
2538     eIndirectBindableNV                                                 = VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV,
2539     eLibraryKHR                                                         = VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,
2540     eDescriptorBufferEXT                                                = VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT,
2541     eRetainLinkTimeOptimizationInfoEXT                                  = VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT,
2542     eLinkTimeOptimizationEXT                                            = VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT,
2543     eRayTracingAllowMotionNV                                            = VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV,
2544     eColorAttachmentFeedbackLoopEXT                                     = VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,
2545     eDepthStencilAttachmentFeedbackLoopEXT                              = VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,
2546     eRayTracingOpacityMicromapEXT                                       = VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT,
2547     eNoProtectedAccessEXT                                               = VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT,
2548     eProtectedAccessOnlyEXT                                             = VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT,
2549     eDispatchBaseKHR                                                    = VK_PIPELINE_CREATE_DISPATCH_BASE_KHR,
2550     eEarlyReturnOnFailureEXT                                            = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT,
2551     eFailOnPipelineCompileRequiredEXT                                   = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT,
2552     eViewIndexFromDeviceIndexKHR                                        = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR,
2553     eVkPipelineRasterizationStateCreateFragmentDensityMapAttachmentEXT  = VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
2554     eVkPipelineRasterizationStateCreateFragmentShadingRateAttachmentKHR = VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
2555   };
2556 
2557   using PipelineCreateFlags = Flags<PipelineCreateFlagBits>;
2558 
2559   template <>
2560   struct FlagTraits<PipelineCreateFlagBits>
2561   {
2562     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                isBitmask = true;
2563     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineCreateFlags allFlags =
2564       PipelineCreateFlagBits::eDisableOptimization | PipelineCreateFlagBits::eAllowDerivatives | PipelineCreateFlagBits::eDerivative |
2565       PipelineCreateFlagBits::eViewIndexFromDeviceIndex | PipelineCreateFlagBits::eDispatchBase | PipelineCreateFlagBits::eFailOnPipelineCompileRequired |
2566       PipelineCreateFlagBits::eEarlyReturnOnFailure | PipelineCreateFlagBits::eRenderingFragmentShadingRateAttachmentKHR |
2567       PipelineCreateFlagBits::eRenderingFragmentDensityMapAttachmentEXT | PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR |
2568       PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR | PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR |
2569       PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR | PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR |
2570       PipelineCreateFlagBits::eRayTracingSkipAabbsKHR | PipelineCreateFlagBits::eRayTracingShaderGroupHandleCaptureReplayKHR |
2571       PipelineCreateFlagBits::eDeferCompileNV | PipelineCreateFlagBits::eCaptureStatisticsKHR | PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR |
2572       PipelineCreateFlagBits::eIndirectBindableNV | PipelineCreateFlagBits::eLibraryKHR | PipelineCreateFlagBits::eDescriptorBufferEXT |
2573       PipelineCreateFlagBits::eRetainLinkTimeOptimizationInfoEXT | PipelineCreateFlagBits::eLinkTimeOptimizationEXT |
2574       PipelineCreateFlagBits::eRayTracingAllowMotionNV | PipelineCreateFlagBits::eColorAttachmentFeedbackLoopEXT |
2575       PipelineCreateFlagBits::eDepthStencilAttachmentFeedbackLoopEXT | PipelineCreateFlagBits::eRayTracingOpacityMicromapEXT |
2576       PipelineCreateFlagBits::eNoProtectedAccessEXT | PipelineCreateFlagBits::eProtectedAccessOnlyEXT;
2577   };
2578 
2579   enum class PipelineShaderStageCreateFlagBits : VkPipelineShaderStageCreateFlags
2580   {
2581     eAllowVaryingSubgroupSize    = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,
2582     eRequireFullSubgroups        = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,
2583     eAllowVaryingSubgroupSizeEXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT,
2584     eRequireFullSubgroupsEXT     = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
2585   };
2586 
2587   using PipelineShaderStageCreateFlags = Flags<PipelineShaderStageCreateFlagBits>;
2588 
2589   template <>
2590   struct FlagTraits<PipelineShaderStageCreateFlagBits>
2591   {
2592     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                           isBitmask = true;
2593     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineShaderStageCreateFlags allFlags =
2594       PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSize | PipelineShaderStageCreateFlagBits::eRequireFullSubgroups;
2595   };
2596 
2597   enum class PolygonMode
2598   {
2599     eFill            = VK_POLYGON_MODE_FILL,
2600     eLine            = VK_POLYGON_MODE_LINE,
2601     ePoint           = VK_POLYGON_MODE_POINT,
2602     eFillRectangleNV = VK_POLYGON_MODE_FILL_RECTANGLE_NV
2603   };
2604 
2605   enum class PrimitiveTopology
2606   {
2607     ePointList                  = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
2608     eLineList                   = VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
2609     eLineStrip                  = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,
2610     eTriangleList               = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
2611     eTriangleStrip              = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
2612     eTriangleFan                = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN,
2613     eLineListWithAdjacency      = VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY,
2614     eLineStripWithAdjacency     = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY,
2615     eTriangleListWithAdjacency  = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,
2616     eTriangleStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY,
2617     ePatchList                  = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
2618   };
2619 
2620   enum class ShaderStageFlagBits : VkShaderStageFlags
2621   {
2622     eVertex                 = VK_SHADER_STAGE_VERTEX_BIT,
2623     eTessellationControl    = VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
2624     eTessellationEvaluation = VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
2625     eGeometry               = VK_SHADER_STAGE_GEOMETRY_BIT,
2626     eFragment               = VK_SHADER_STAGE_FRAGMENT_BIT,
2627     eCompute                = VK_SHADER_STAGE_COMPUTE_BIT,
2628     eAllGraphics            = VK_SHADER_STAGE_ALL_GRAPHICS,
2629     eAll                    = VK_SHADER_STAGE_ALL,
2630     eRaygenKHR              = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
2631     eAnyHitKHR              = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
2632     eClosestHitKHR          = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
2633     eMissKHR                = VK_SHADER_STAGE_MISS_BIT_KHR,
2634     eIntersectionKHR        = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
2635     eCallableKHR            = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
2636     eTaskEXT                = VK_SHADER_STAGE_TASK_BIT_EXT,
2637     eMeshEXT                = VK_SHADER_STAGE_MESH_BIT_EXT,
2638     eSubpassShadingHUAWEI   = VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI,
2639     eAnyHitNV               = VK_SHADER_STAGE_ANY_HIT_BIT_NV,
2640     eCallableNV             = VK_SHADER_STAGE_CALLABLE_BIT_NV,
2641     eClosestHitNV           = VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV,
2642     eIntersectionNV         = VK_SHADER_STAGE_INTERSECTION_BIT_NV,
2643     eMeshNV                 = VK_SHADER_STAGE_MESH_BIT_NV,
2644     eMissNV                 = VK_SHADER_STAGE_MISS_BIT_NV,
2645     eRaygenNV               = VK_SHADER_STAGE_RAYGEN_BIT_NV,
2646     eTaskNV                 = VK_SHADER_STAGE_TASK_BIT_NV
2647   };
2648 
2649   using ShaderStageFlags = Flags<ShaderStageFlagBits>;
2650 
2651   template <>
2652   struct FlagTraits<ShaderStageFlagBits>
2653   {
2654     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
2655     static VULKAN_HPP_CONST_OR_CONSTEXPR ShaderStageFlags allFlags =
2656       ShaderStageFlagBits::eVertex | ShaderStageFlagBits::eTessellationControl | ShaderStageFlagBits::eTessellationEvaluation | ShaderStageFlagBits::eGeometry |
2657       ShaderStageFlagBits::eFragment | ShaderStageFlagBits::eCompute | ShaderStageFlagBits::eAllGraphics | ShaderStageFlagBits::eAll |
2658       ShaderStageFlagBits::eRaygenKHR | ShaderStageFlagBits::eAnyHitKHR | ShaderStageFlagBits::eClosestHitKHR | ShaderStageFlagBits::eMissKHR |
2659       ShaderStageFlagBits::eIntersectionKHR | ShaderStageFlagBits::eCallableKHR | ShaderStageFlagBits::eTaskEXT | ShaderStageFlagBits::eMeshEXT |
2660       ShaderStageFlagBits::eSubpassShadingHUAWEI;
2661   };
2662 
2663   enum class StencilOp
2664   {
2665     eKeep              = VK_STENCIL_OP_KEEP,
2666     eZero              = VK_STENCIL_OP_ZERO,
2667     eReplace           = VK_STENCIL_OP_REPLACE,
2668     eIncrementAndClamp = VK_STENCIL_OP_INCREMENT_AND_CLAMP,
2669     eDecrementAndClamp = VK_STENCIL_OP_DECREMENT_AND_CLAMP,
2670     eInvert            = VK_STENCIL_OP_INVERT,
2671     eIncrementAndWrap  = VK_STENCIL_OP_INCREMENT_AND_WRAP,
2672     eDecrementAndWrap  = VK_STENCIL_OP_DECREMENT_AND_WRAP
2673   };
2674 
2675   enum class VertexInputRate
2676   {
2677     eVertex   = VK_VERTEX_INPUT_RATE_VERTEX,
2678     eInstance = VK_VERTEX_INPUT_RATE_INSTANCE
2679   };
2680 
2681   enum class PipelineDynamicStateCreateFlagBits : VkPipelineDynamicStateCreateFlags
2682   {
2683   };
2684 
2685   using PipelineDynamicStateCreateFlags = Flags<PipelineDynamicStateCreateFlagBits>;
2686 
2687   template <>
2688   struct FlagTraits<PipelineDynamicStateCreateFlagBits>
2689   {
2690     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                            isBitmask = true;
2691     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineDynamicStateCreateFlags allFlags  = {};
2692   };
2693 
2694   enum class PipelineInputAssemblyStateCreateFlagBits : VkPipelineInputAssemblyStateCreateFlags
2695   {
2696   };
2697 
2698   using PipelineInputAssemblyStateCreateFlags = Flags<PipelineInputAssemblyStateCreateFlagBits>;
2699 
2700   template <>
2701   struct FlagTraits<PipelineInputAssemblyStateCreateFlagBits>
2702   {
2703     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                  isBitmask = true;
2704     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineInputAssemblyStateCreateFlags allFlags  = {};
2705   };
2706 
2707   enum class PipelineMultisampleStateCreateFlagBits : VkPipelineMultisampleStateCreateFlags
2708   {
2709   };
2710 
2711   using PipelineMultisampleStateCreateFlags = Flags<PipelineMultisampleStateCreateFlagBits>;
2712 
2713   template <>
2714   struct FlagTraits<PipelineMultisampleStateCreateFlagBits>
2715   {
2716     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                isBitmask = true;
2717     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineMultisampleStateCreateFlags allFlags  = {};
2718   };
2719 
2720   enum class PipelineRasterizationStateCreateFlagBits : VkPipelineRasterizationStateCreateFlags
2721   {
2722   };
2723 
2724   using PipelineRasterizationStateCreateFlags = Flags<PipelineRasterizationStateCreateFlagBits>;
2725 
2726   template <>
2727   struct FlagTraits<PipelineRasterizationStateCreateFlagBits>
2728   {
2729     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                  isBitmask = true;
2730     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineRasterizationStateCreateFlags allFlags  = {};
2731   };
2732 
2733   enum class PipelineTessellationStateCreateFlagBits : VkPipelineTessellationStateCreateFlags
2734   {
2735   };
2736 
2737   using PipelineTessellationStateCreateFlags = Flags<PipelineTessellationStateCreateFlagBits>;
2738 
2739   template <>
2740   struct FlagTraits<PipelineTessellationStateCreateFlagBits>
2741   {
2742     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                 isBitmask = true;
2743     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineTessellationStateCreateFlags allFlags  = {};
2744   };
2745 
2746   enum class PipelineVertexInputStateCreateFlagBits : VkPipelineVertexInputStateCreateFlags
2747   {
2748   };
2749 
2750   using PipelineVertexInputStateCreateFlags = Flags<PipelineVertexInputStateCreateFlagBits>;
2751 
2752   template <>
2753   struct FlagTraits<PipelineVertexInputStateCreateFlagBits>
2754   {
2755     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                isBitmask = true;
2756     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineVertexInputStateCreateFlags allFlags  = {};
2757   };
2758 
2759   enum class PipelineViewportStateCreateFlagBits : VkPipelineViewportStateCreateFlags
2760   {
2761   };
2762 
2763   using PipelineViewportStateCreateFlags = Flags<PipelineViewportStateCreateFlagBits>;
2764 
2765   template <>
2766   struct FlagTraits<PipelineViewportStateCreateFlagBits>
2767   {
2768     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                             isBitmask = true;
2769     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineViewportStateCreateFlags allFlags  = {};
2770   };
2771 
2772   enum class PipelineDynamicStateCreateFlagBits : VkPipelineDynamicStateCreateFlags
2773   {
2774   };
2775 
to_string(PipelineDynamicStateCreateFlagBits)2776   VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlagBits )
2777   {
2778     return "(void)";
2779   }
2780 
2781   enum class PipelineInputAssemblyStateCreateFlagBits : VkPipelineInputAssemblyStateCreateFlags
2782   {
2783   };
2784 
to_string(PipelineInputAssemblyStateCreateFlagBits)2785   VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlagBits )
2786   {
2787     return "(void)";
2788   }
2789 
2790   enum class PipelineLayoutCreateFlagBits : VkPipelineLayoutCreateFlags
2791   {
2792   };
2793 
to_string(PipelineLayoutCreateFlagBits)2794   VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlagBits )
2795   {
2796     return "(void)";
2797   }
2798 
2799   enum class PipelineMultisampleStateCreateFlagBits : VkPipelineMultisampleStateCreateFlags
2800   {
2801   };
2802 
to_string(PipelineMultisampleStateCreateFlagBits)2803   VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlagBits )
2804   {
2805     return "(void)";
2806   }
2807 
2808   enum class PipelineRasterizationStateCreateFlagBits : VkPipelineRasterizationStateCreateFlags
2809   {
2810   };
2811 
to_string(PipelineRasterizationStateCreateFlagBits)2812   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlagBits )
2813   {
2814     return "(void)";
2815   }
2816 
2817   enum class PipelineTessellationStateCreateFlagBits : VkPipelineTessellationStateCreateFlags
2818   {
2819   };
2820 
to_string(PipelineTessellationStateCreateFlagBits)2821   VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlagBits )
2822   {
2823     return "(void)";
2824   }
2825 
2826   enum class PipelineVertexInputStateCreateFlagBits : VkPipelineVertexInputStateCreateFlags
2827   {
2828   };
2829 
to_string(PipelineVertexInputStateCreateFlagBits)2830   VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlagBits )
2831   {
2832     return "(void)";
2833   }
2834 
2835   enum class PipelineViewportStateCreateFlagBits : VkPipelineViewportStateCreateFlags
2836   {
2837   };
2838 
to_string(PipelineViewportStateCreateFlagBits)2839   VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlagBits )
2840   {
2841     return "(void)";
2842   }
2843 
2844   enum class BorderColor
2845   {
2846     eFloatTransparentBlack = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
2847     eIntTransparentBlack   = VK_BORDER_COLOR_INT_TRANSPARENT_BLACK,
2848     eFloatOpaqueBlack      = VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK,
2849     eIntOpaqueBlack        = VK_BORDER_COLOR_INT_OPAQUE_BLACK,
2850     eFloatOpaqueWhite      = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE,
2851     eIntOpaqueWhite        = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
2852     eFloatCustomEXT        = VK_BORDER_COLOR_FLOAT_CUSTOM_EXT,
2853     eIntCustomEXT          = VK_BORDER_COLOR_INT_CUSTOM_EXT
2854   };
2855 
2856   enum class Filter
2857   {
2858     eNearest  = VK_FILTER_NEAREST,
2859     eLinear   = VK_FILTER_LINEAR,
2860     eCubicEXT = VK_FILTER_CUBIC_EXT,
2861     eCubicIMG = VK_FILTER_CUBIC_IMG
2862   };
2863 
2864   enum class SamplerAddressMode
2865   {
2866     eRepeat               = VK_SAMPLER_ADDRESS_MODE_REPEAT,
2867     eMirroredRepeat       = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT,
2868     eClampToEdge          = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
2869     eClampToBorder        = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
2870     eMirrorClampToEdge    = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
2871     eMirrorClampToEdgeKHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR
2872   };
2873 
2874   enum class SamplerCreateFlagBits : VkSamplerCreateFlags
2875   {
2876     eSubsampledEXT                     = VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT,
2877     eSubsampledCoarseReconstructionEXT = VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT,
2878     eDescriptorBufferCaptureReplayEXT  = VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,
2879     eNonSeamlessCubeMapEXT             = VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT,
2880     eImageProcessingQCOM               = VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
2881   };
2882 
2883   using SamplerCreateFlags = Flags<SamplerCreateFlagBits>;
2884 
2885   template <>
2886   struct FlagTraits<SamplerCreateFlagBits>
2887   {
2888     static VULKAN_HPP_CONST_OR_CONSTEXPR bool               isBitmask = true;
2889     static VULKAN_HPP_CONST_OR_CONSTEXPR SamplerCreateFlags allFlags =
2890       SamplerCreateFlagBits::eSubsampledEXT | SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT |
2891       SamplerCreateFlagBits::eDescriptorBufferCaptureReplayEXT | SamplerCreateFlagBits::eNonSeamlessCubeMapEXT | SamplerCreateFlagBits::eImageProcessingQCOM;
2892   };
2893 
2894   enum class SamplerMipmapMode
2895   {
2896     eNearest = VK_SAMPLER_MIPMAP_MODE_NEAREST,
2897     eLinear  = VK_SAMPLER_MIPMAP_MODE_LINEAR
2898   };
2899 
2900   enum class DescriptorPoolCreateFlagBits : VkDescriptorPoolCreateFlags
2901   {
2902     eFreeDescriptorSet  = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,
2903     eUpdateAfterBind    = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
2904     eHostOnlyEXT        = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,
2905     eHostOnlyVALVE      = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE,
2906     eUpdateAfterBindEXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT
2907   };
2908 
2909   using DescriptorPoolCreateFlags = Flags<DescriptorPoolCreateFlagBits>;
2910 
2911   template <>
2912   struct FlagTraits<DescriptorPoolCreateFlagBits>
2913   {
2914     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                      isBitmask = true;
2915     static VULKAN_HPP_CONST_OR_CONSTEXPR DescriptorPoolCreateFlags allFlags =
2916       DescriptorPoolCreateFlagBits::eFreeDescriptorSet | DescriptorPoolCreateFlagBits::eUpdateAfterBind | DescriptorPoolCreateFlagBits::eHostOnlyEXT;
2917   };
2918 
2919   enum class DescriptorSetLayoutCreateFlagBits : VkDescriptorSetLayoutCreateFlags
2920   {
2921     eUpdateAfterBindPool          = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
2922     ePushDescriptorKHR            = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,
2923     eDescriptorBufferEXT          = VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT,
2924     eEmbeddedImmutableSamplersEXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT,
2925     eHostOnlyPoolEXT              = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT,
2926     eHostOnlyPoolVALVE            = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE,
2927     eUpdateAfterBindPoolEXT       = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
2928   };
2929 
2930   using DescriptorSetLayoutCreateFlags = Flags<DescriptorSetLayoutCreateFlagBits>;
2931 
2932   template <>
2933   struct FlagTraits<DescriptorSetLayoutCreateFlagBits>
2934   {
2935     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                           isBitmask = true;
2936     static VULKAN_HPP_CONST_OR_CONSTEXPR DescriptorSetLayoutCreateFlags allFlags =
2937       DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool | DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR |
2938       DescriptorSetLayoutCreateFlagBits::eDescriptorBufferEXT | DescriptorSetLayoutCreateFlagBits::eEmbeddedImmutableSamplersEXT |
2939       DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolEXT;
2940   };
2941 
2942   enum class DescriptorType
2943   {
2944     eSampler                  = VK_DESCRIPTOR_TYPE_SAMPLER,
2945     eCombinedImageSampler     = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
2946     eSampledImage             = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
2947     eStorageImage             = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
2948     eUniformTexelBuffer       = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,
2949     eStorageTexelBuffer       = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,
2950     eUniformBuffer            = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
2951     eStorageBuffer            = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
2952     eUniformBufferDynamic     = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
2953     eStorageBufferDynamic     = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC,
2954     eInputAttachment          = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
2955     eInlineUniformBlock       = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK,
2956     eAccelerationStructureKHR = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,
2957     eAccelerationStructureNV  = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV,
2958     eSampleWeightImageQCOM    = VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM,
2959     eBlockMatchImageQCOM      = VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM,
2960     eMutableEXT               = VK_DESCRIPTOR_TYPE_MUTABLE_EXT,
2961     eInlineUniformBlockEXT    = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT,
2962     eMutableVALVE             = VK_DESCRIPTOR_TYPE_MUTABLE_VALVE
2963   };
2964 
2965   enum class DescriptorPoolResetFlagBits : VkDescriptorPoolResetFlags
2966   {
2967   };
2968 
2969   using DescriptorPoolResetFlags = Flags<DescriptorPoolResetFlagBits>;
2970 
2971   template <>
2972   struct FlagTraits<DescriptorPoolResetFlagBits>
2973   {
2974     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                     isBitmask = true;
2975     static VULKAN_HPP_CONST_OR_CONSTEXPR DescriptorPoolResetFlags allFlags  = {};
2976   };
2977 
2978   enum class DescriptorPoolResetFlagBits : VkDescriptorPoolResetFlags
2979   {
2980   };
2981 
to_string(DescriptorPoolResetFlagBits)2982   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlagBits )
2983   {
2984     return "(void)";
2985   }
2986 
2987   enum class AccessFlagBits : VkAccessFlags
2988   {
2989     eIndirectCommandRead                  = VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
2990     eIndexRead                            = VK_ACCESS_INDEX_READ_BIT,
2991     eVertexAttributeRead                  = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,
2992     eUniformRead                          = VK_ACCESS_UNIFORM_READ_BIT,
2993     eInputAttachmentRead                  = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
2994     eShaderRead                           = VK_ACCESS_SHADER_READ_BIT,
2995     eShaderWrite                          = VK_ACCESS_SHADER_WRITE_BIT,
2996     eColorAttachmentRead                  = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,
2997     eColorAttachmentWrite                 = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
2998     eDepthStencilAttachmentRead           = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
2999     eDepthStencilAttachmentWrite          = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
3000     eTransferRead                         = VK_ACCESS_TRANSFER_READ_BIT,
3001     eTransferWrite                        = VK_ACCESS_TRANSFER_WRITE_BIT,
3002     eHostRead                             = VK_ACCESS_HOST_READ_BIT,
3003     eHostWrite                            = VK_ACCESS_HOST_WRITE_BIT,
3004     eMemoryRead                           = VK_ACCESS_MEMORY_READ_BIT,
3005     eMemoryWrite                          = VK_ACCESS_MEMORY_WRITE_BIT,
3006     eNone                                 = VK_ACCESS_NONE,
3007     eTransformFeedbackWriteEXT            = VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
3008     eTransformFeedbackCounterReadEXT      = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,
3009     eTransformFeedbackCounterWriteEXT     = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
3010     eConditionalRenderingReadEXT          = VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,
3011     eColorAttachmentReadNoncoherentEXT    = VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
3012     eAccelerationStructureReadKHR         = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
3013     eAccelerationStructureWriteKHR        = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
3014     eFragmentDensityMapReadEXT            = VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,
3015     eFragmentShadingRateAttachmentReadKHR = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
3016     eCommandPreprocessReadNV              = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,
3017     eCommandPreprocessWriteNV             = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,
3018     eAccelerationStructureReadNV          = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV,
3019     eAccelerationStructureWriteNV         = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
3020     eNoneKHR                              = VK_ACCESS_NONE_KHR,
3021     eShadingRateImageReadNV               = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV
3022   };
3023 
3024   using AccessFlags = Flags<AccessFlagBits>;
3025 
3026   template <>
3027   struct FlagTraits<AccessFlagBits>
3028   {
3029     static VULKAN_HPP_CONST_OR_CONSTEXPR bool        isBitmask = true;
3030     static VULKAN_HPP_CONST_OR_CONSTEXPR AccessFlags allFlags =
3031       AccessFlagBits::eIndirectCommandRead | AccessFlagBits::eIndexRead | AccessFlagBits::eVertexAttributeRead | AccessFlagBits::eUniformRead |
3032       AccessFlagBits::eInputAttachmentRead | AccessFlagBits::eShaderRead | AccessFlagBits::eShaderWrite | AccessFlagBits::eColorAttachmentRead |
3033       AccessFlagBits::eColorAttachmentWrite | AccessFlagBits::eDepthStencilAttachmentRead | AccessFlagBits::eDepthStencilAttachmentWrite |
3034       AccessFlagBits::eTransferRead | AccessFlagBits::eTransferWrite | AccessFlagBits::eHostRead | AccessFlagBits::eHostWrite | AccessFlagBits::eMemoryRead |
3035       AccessFlagBits::eMemoryWrite | AccessFlagBits::eNone | AccessFlagBits::eTransformFeedbackWriteEXT | AccessFlagBits::eTransformFeedbackCounterReadEXT |
3036       AccessFlagBits::eTransformFeedbackCounterWriteEXT | AccessFlagBits::eConditionalRenderingReadEXT | AccessFlagBits::eColorAttachmentReadNoncoherentEXT |
3037       AccessFlagBits::eAccelerationStructureReadKHR | AccessFlagBits::eAccelerationStructureWriteKHR | AccessFlagBits::eFragmentDensityMapReadEXT |
3038       AccessFlagBits::eFragmentShadingRateAttachmentReadKHR | AccessFlagBits::eCommandPreprocessReadNV | AccessFlagBits::eCommandPreprocessWriteNV;
3039   };
3040 
3041   enum class AttachmentDescriptionFlagBits : VkAttachmentDescriptionFlags
3042   {
3043     eMayAlias = VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT
3044   };
3045 
3046   using AttachmentDescriptionFlags = Flags<AttachmentDescriptionFlagBits>;
3047 
3048   template <>
3049   struct FlagTraits<AttachmentDescriptionFlagBits>
3050   {
3051     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
3052     static VULKAN_HPP_CONST_OR_CONSTEXPR AttachmentDescriptionFlags allFlags  = AttachmentDescriptionFlagBits::eMayAlias;
3053   };
3054 
3055   enum class AttachmentLoadOp
3056   {
3057     eLoad     = VK_ATTACHMENT_LOAD_OP_LOAD,
3058     eClear    = VK_ATTACHMENT_LOAD_OP_CLEAR,
3059     eDontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
3060     eNoneEXT  = VK_ATTACHMENT_LOAD_OP_NONE_EXT
3061   };
3062 
3063   enum class AttachmentStoreOp
3064   {
3065     eStore    = VK_ATTACHMENT_STORE_OP_STORE,
3066     eDontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE,
3067     eNone     = VK_ATTACHMENT_STORE_OP_NONE,
3068     eNoneEXT  = VK_ATTACHMENT_STORE_OP_NONE_EXT,
3069     eNoneKHR  = VK_ATTACHMENT_STORE_OP_NONE_KHR,
3070     eNoneQCOM = VK_ATTACHMENT_STORE_OP_NONE_QCOM
3071   };
3072 
3073   enum class DependencyFlagBits : VkDependencyFlags
3074   {
3075     eByRegion        = VK_DEPENDENCY_BY_REGION_BIT,
3076     eDeviceGroup     = VK_DEPENDENCY_DEVICE_GROUP_BIT,
3077     eViewLocal       = VK_DEPENDENCY_VIEW_LOCAL_BIT,
3078     eFeedbackLoopEXT = VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT,
3079     eDeviceGroupKHR  = VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR,
3080     eViewLocalKHR    = VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR
3081   };
3082 
3083   using DependencyFlags = Flags<DependencyFlagBits>;
3084 
3085   template <>
3086   struct FlagTraits<DependencyFlagBits>
3087   {
3088     static VULKAN_HPP_CONST_OR_CONSTEXPR bool            isBitmask = true;
3089     static VULKAN_HPP_CONST_OR_CONSTEXPR DependencyFlags allFlags =
3090       DependencyFlagBits::eByRegion | DependencyFlagBits::eDeviceGroup | DependencyFlagBits::eViewLocal | DependencyFlagBits::eFeedbackLoopEXT;
3091   };
3092 
3093   enum class FramebufferCreateFlagBits : VkFramebufferCreateFlags
3094   {
3095     eImageless    = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
3096     eImagelessKHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR
3097   };
3098 
3099   using FramebufferCreateFlags = Flags<FramebufferCreateFlagBits>;
3100 
3101   template <>
3102   struct FlagTraits<FramebufferCreateFlagBits>
3103   {
3104     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
3105     static VULKAN_HPP_CONST_OR_CONSTEXPR FramebufferCreateFlags allFlags  = FramebufferCreateFlagBits::eImageless;
3106   };
3107 
3108   enum class PipelineBindPoint
3109   {
3110     eGraphics             = VK_PIPELINE_BIND_POINT_GRAPHICS,
3111     eCompute              = VK_PIPELINE_BIND_POINT_COMPUTE,
3112     eRayTracingKHR        = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
3113     eSubpassShadingHUAWEI = VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI,
3114     eRayTracingNV         = VK_PIPELINE_BIND_POINT_RAY_TRACING_NV
3115   };
3116 
3117   enum class RenderPassCreateFlagBits : VkRenderPassCreateFlags
3118   {
3119     eTransformQCOM = VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM
3120   };
3121 
3122   using RenderPassCreateFlags = Flags<RenderPassCreateFlagBits>;
3123 
3124   template <>
3125   struct FlagTraits<RenderPassCreateFlagBits>
3126   {
3127     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                  isBitmask = true;
3128     static VULKAN_HPP_CONST_OR_CONSTEXPR RenderPassCreateFlags allFlags  = RenderPassCreateFlagBits::eTransformQCOM;
3129   };
3130 
3131   enum class SubpassDescriptionFlagBits : VkSubpassDescriptionFlags
3132   {
3133     ePerViewAttributesNVX                         = VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,
3134     ePerViewPositionXOnlyNVX                      = VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX,
3135     eFragmentRegionQCOM                           = VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM,
3136     eShaderResolveQCOM                            = VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM,
3137     eRasterizationOrderAttachmentColorAccessEXT   = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT,
3138     eRasterizationOrderAttachmentDepthAccessEXT   = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
3139     eRasterizationOrderAttachmentStencilAccessEXT = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
3140     eEnableLegacyDitheringEXT                     = VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT,
3141     eRasterizationOrderAttachmentColorAccessARM   = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM,
3142     eRasterizationOrderAttachmentDepthAccessARM   = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM,
3143     eRasterizationOrderAttachmentStencilAccessARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM
3144   };
3145 
3146   using SubpassDescriptionFlags = Flags<SubpassDescriptionFlagBits>;
3147 
3148   template <>
3149   struct FlagTraits<SubpassDescriptionFlagBits>
3150   {
3151     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                    isBitmask = true;
3152     static VULKAN_HPP_CONST_OR_CONSTEXPR SubpassDescriptionFlags allFlags =
3153       SubpassDescriptionFlagBits::ePerViewAttributesNVX | SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX |
3154       SubpassDescriptionFlagBits::eFragmentRegionQCOM | SubpassDescriptionFlagBits::eShaderResolveQCOM |
3155       SubpassDescriptionFlagBits::eRasterizationOrderAttachmentColorAccessEXT | SubpassDescriptionFlagBits::eRasterizationOrderAttachmentDepthAccessEXT |
3156       SubpassDescriptionFlagBits::eRasterizationOrderAttachmentStencilAccessEXT | SubpassDescriptionFlagBits::eEnableLegacyDitheringEXT;
3157   };
3158 
3159   enum class CommandPoolCreateFlagBits : VkCommandPoolCreateFlags
3160   {
3161     eTransient          = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,
3162     eResetCommandBuffer = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,
3163     eProtected          = VK_COMMAND_POOL_CREATE_PROTECTED_BIT
3164   };
3165 
3166   using CommandPoolCreateFlags = Flags<CommandPoolCreateFlagBits>;
3167 
3168   template <>
3169   struct FlagTraits<CommandPoolCreateFlagBits>
3170   {
3171     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
3172     static VULKAN_HPP_CONST_OR_CONSTEXPR CommandPoolCreateFlags allFlags =
3173       CommandPoolCreateFlagBits::eTransient | CommandPoolCreateFlagBits::eResetCommandBuffer | CommandPoolCreateFlagBits::eProtected;
3174   };
3175 
3176   enum class CommandPoolResetFlagBits : VkCommandPoolResetFlags
3177   {
3178     eReleaseResources = VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT
3179   };
3180 
3181   using CommandPoolResetFlags = Flags<CommandPoolResetFlagBits>;
3182 
3183   template <>
3184   struct FlagTraits<CommandPoolResetFlagBits>
3185   {
3186     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                  isBitmask = true;
3187     static VULKAN_HPP_CONST_OR_CONSTEXPR CommandPoolResetFlags allFlags  = CommandPoolResetFlagBits::eReleaseResources;
3188   };
3189 
3190   enum class CommandBufferLevel
3191   {
3192     ePrimary   = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
3193     eSecondary = VK_COMMAND_BUFFER_LEVEL_SECONDARY
3194   };
3195 
3196   enum class CommandBufferResetFlagBits : VkCommandBufferResetFlags
3197   {
3198     eReleaseResources = VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT
3199   };
3200 
3201   using CommandBufferResetFlags = Flags<CommandBufferResetFlagBits>;
3202 
3203   template <>
3204   struct FlagTraits<CommandBufferResetFlagBits>
3205   {
3206     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                    isBitmask = true;
3207     static VULKAN_HPP_CONST_OR_CONSTEXPR CommandBufferResetFlags allFlags  = CommandBufferResetFlagBits::eReleaseResources;
3208   };
3209 
3210   enum class CommandBufferUsageFlagBits : VkCommandBufferUsageFlags
3211   {
3212     eOneTimeSubmit      = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
3213     eRenderPassContinue = VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,
3214     eSimultaneousUse    = VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
3215   };
3216 
3217   using CommandBufferUsageFlags = Flags<CommandBufferUsageFlagBits>;
3218 
3219   template <>
3220   struct FlagTraits<CommandBufferUsageFlagBits>
3221   {
3222     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                    isBitmask = true;
3223     static VULKAN_HPP_CONST_OR_CONSTEXPR CommandBufferUsageFlags allFlags =
3224       CommandBufferUsageFlagBits::eOneTimeSubmit | CommandBufferUsageFlagBits::eRenderPassContinue | CommandBufferUsageFlagBits::eSimultaneousUse;
3225   };
3226 
3227   enum class QueryControlFlagBits : VkQueryControlFlags
3228   {
3229     ePrecise = VK_QUERY_CONTROL_PRECISE_BIT
3230   };
3231 
3232   using QueryControlFlags = Flags<QueryControlFlagBits>;
3233 
3234   template <>
3235   struct FlagTraits<QueryControlFlagBits>
3236   {
3237     static VULKAN_HPP_CONST_OR_CONSTEXPR bool              isBitmask = true;
3238     static VULKAN_HPP_CONST_OR_CONSTEXPR QueryControlFlags allFlags  = QueryControlFlagBits::ePrecise;
3239   };
3240 
3241   enum class IndexType
3242   {
3243     eUint16   = VK_INDEX_TYPE_UINT16,
3244     eUint32   = VK_INDEX_TYPE_UINT32,
3245     eNoneKHR  = VK_INDEX_TYPE_NONE_KHR,
3246     eUint8EXT = VK_INDEX_TYPE_UINT8_EXT,
3247     eNoneNV   = VK_INDEX_TYPE_NONE_NV
3248   };
3249 
3250   enum class StencilFaceFlagBits : VkStencilFaceFlags
3251   {
3252     eFront                 = VK_STENCIL_FACE_FRONT_BIT,
3253     eBack                  = VK_STENCIL_FACE_BACK_BIT,
3254     eFrontAndBack          = VK_STENCIL_FACE_FRONT_AND_BACK,
3255     eVkStencilFrontAndBack = VK_STENCIL_FRONT_AND_BACK
3256   };
3257 
3258   using StencilFaceFlags = Flags<StencilFaceFlagBits>;
3259 
3260   template <>
3261   struct FlagTraits<StencilFaceFlagBits>
3262   {
3263     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
3264     static VULKAN_HPP_CONST_OR_CONSTEXPR StencilFaceFlags allFlags =
3265       StencilFaceFlagBits::eFront | StencilFaceFlagBits::eBack | StencilFaceFlagBits::eFrontAndBack;
3266   };
3267 
3268   enum class SubpassContents
3269   {
3270     eInline                  = VK_SUBPASS_CONTENTS_INLINE,
3271     eSecondaryCommandBuffers = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
3272   };
3273 
3274   //=== VK_VERSION_1_1 ===
3275 
3276   enum class SubgroupFeatureFlagBits : VkSubgroupFeatureFlags
3277   {
3278     eBasic           = VK_SUBGROUP_FEATURE_BASIC_BIT,
3279     eVote            = VK_SUBGROUP_FEATURE_VOTE_BIT,
3280     eArithmetic      = VK_SUBGROUP_FEATURE_ARITHMETIC_BIT,
3281     eBallot          = VK_SUBGROUP_FEATURE_BALLOT_BIT,
3282     eShuffle         = VK_SUBGROUP_FEATURE_SHUFFLE_BIT,
3283     eShuffleRelative = VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,
3284     eClustered       = VK_SUBGROUP_FEATURE_CLUSTERED_BIT,
3285     eQuad            = VK_SUBGROUP_FEATURE_QUAD_BIT,
3286     ePartitionedNV   = VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV
3287   };
3288 
3289   using SubgroupFeatureFlags = Flags<SubgroupFeatureFlagBits>;
3290 
3291   template <>
3292   struct FlagTraits<SubgroupFeatureFlagBits>
3293   {
3294     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                 isBitmask = true;
3295     static VULKAN_HPP_CONST_OR_CONSTEXPR SubgroupFeatureFlags allFlags =
3296       SubgroupFeatureFlagBits::eBasic | SubgroupFeatureFlagBits::eVote | SubgroupFeatureFlagBits::eArithmetic | SubgroupFeatureFlagBits::eBallot |
3297       SubgroupFeatureFlagBits::eShuffle | SubgroupFeatureFlagBits::eShuffleRelative | SubgroupFeatureFlagBits::eClustered | SubgroupFeatureFlagBits::eQuad |
3298       SubgroupFeatureFlagBits::ePartitionedNV;
3299   };
3300 
3301   enum class PeerMemoryFeatureFlagBits : VkPeerMemoryFeatureFlags
3302   {
3303     eCopySrc    = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
3304     eCopyDst    = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
3305     eGenericSrc = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
3306     eGenericDst = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT
3307   };
3308   using PeerMemoryFeatureFlagBitsKHR = PeerMemoryFeatureFlagBits;
3309 
3310   using PeerMemoryFeatureFlags    = Flags<PeerMemoryFeatureFlagBits>;
3311   using PeerMemoryFeatureFlagsKHR = PeerMemoryFeatureFlags;
3312 
3313   template <>
3314   struct FlagTraits<PeerMemoryFeatureFlagBits>
3315   {
3316     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
3317     static VULKAN_HPP_CONST_OR_CONSTEXPR PeerMemoryFeatureFlags allFlags  = PeerMemoryFeatureFlagBits::eCopySrc | PeerMemoryFeatureFlagBits::eCopyDst |
3318                                                                            PeerMemoryFeatureFlagBits::eGenericSrc | PeerMemoryFeatureFlagBits::eGenericDst;
3319   };
3320 
3321   enum class MemoryAllocateFlagBits : VkMemoryAllocateFlags
3322   {
3323     eDeviceMask                 = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
3324     eDeviceAddress              = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
3325     eDeviceAddressCaptureReplay = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
3326   };
3327   using MemoryAllocateFlagBitsKHR = MemoryAllocateFlagBits;
3328 
3329   using MemoryAllocateFlags    = Flags<MemoryAllocateFlagBits>;
3330   using MemoryAllocateFlagsKHR = MemoryAllocateFlags;
3331 
3332   template <>
3333   struct FlagTraits<MemoryAllocateFlagBits>
3334   {
3335     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                isBitmask = true;
3336     static VULKAN_HPP_CONST_OR_CONSTEXPR MemoryAllocateFlags allFlags =
3337       MemoryAllocateFlagBits::eDeviceMask | MemoryAllocateFlagBits::eDeviceAddress | MemoryAllocateFlagBits::eDeviceAddressCaptureReplay;
3338   };
3339 
3340   enum class CommandPoolTrimFlagBits : VkCommandPoolTrimFlags
3341   {
3342   };
3343 
3344   using CommandPoolTrimFlags    = Flags<CommandPoolTrimFlagBits>;
3345   using CommandPoolTrimFlagsKHR = CommandPoolTrimFlags;
3346 
3347   template <>
3348   struct FlagTraits<CommandPoolTrimFlagBits>
3349   {
3350     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                 isBitmask = true;
3351     static VULKAN_HPP_CONST_OR_CONSTEXPR CommandPoolTrimFlags allFlags  = {};
3352   };
3353 
3354   enum class CommandPoolTrimFlagBits : VkCommandPoolTrimFlags
3355   {
3356   };
3357 
to_string(CommandPoolTrimFlagBits)3358   VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlagBits )
3359   {
3360     return "(void)";
3361   }
3362 
3363   enum class PointClippingBehavior
3364   {
3365     eAllClipPlanes      = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
3366     eUserClipPlanesOnly = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
3367   };
3368   using PointClippingBehaviorKHR = PointClippingBehavior;
3369 
3370   enum class TessellationDomainOrigin
3371   {
3372     eUpperLeft = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
3373     eLowerLeft = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT
3374   };
3375   using TessellationDomainOriginKHR = TessellationDomainOrigin;
3376 
3377   enum class DeviceQueueCreateFlagBits : VkDeviceQueueCreateFlags
3378   {
3379     eProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT
3380   };
3381 
3382   using DeviceQueueCreateFlags = Flags<DeviceQueueCreateFlagBits>;
3383 
3384   template <>
3385   struct FlagTraits<DeviceQueueCreateFlagBits>
3386   {
3387     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
3388     static VULKAN_HPP_CONST_OR_CONSTEXPR DeviceQueueCreateFlags allFlags  = DeviceQueueCreateFlagBits::eProtected;
3389   };
3390 
3391   enum class DeviceQueueCreateFlagBits : VkDeviceQueueCreateFlags
3392   {
3393     eProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT
3394   };
3395 
to_string(DeviceQueueCreateFlagBits value)3396   VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlagBits value )
3397   {
3398     switch ( value )
3399     {
3400       case DeviceQueueCreateFlagBits::eProtected: return "Protected";
3401       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3402     }
3403   }
3404 
3405   enum class SamplerYcbcrModelConversion
3406   {
3407     eRgbIdentity   = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
3408     eYcbcrIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
3409     eYcbcr709      = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
3410     eYcbcr601      = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
3411     eYcbcr2020     = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020
3412   };
3413   using SamplerYcbcrModelConversionKHR = SamplerYcbcrModelConversion;
3414 
3415   enum class SamplerYcbcrRange
3416   {
3417     eItuFull   = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
3418     eItuNarrow = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW
3419   };
3420   using SamplerYcbcrRangeKHR = SamplerYcbcrRange;
3421 
3422   enum class ChromaLocation
3423   {
3424     eCositedEven = VK_CHROMA_LOCATION_COSITED_EVEN,
3425     eMidpoint    = VK_CHROMA_LOCATION_MIDPOINT
3426   };
3427   using ChromaLocationKHR = ChromaLocation;
3428 
3429   enum class DescriptorUpdateTemplateType
3430   {
3431     eDescriptorSet      = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
3432     ePushDescriptorsKHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
3433   };
3434   using DescriptorUpdateTemplateTypeKHR = DescriptorUpdateTemplateType;
3435 
3436   enum class DescriptorUpdateTemplateCreateFlagBits : VkDescriptorUpdateTemplateCreateFlags
3437   {
3438   };
3439 
3440   using DescriptorUpdateTemplateCreateFlags    = Flags<DescriptorUpdateTemplateCreateFlagBits>;
3441   using DescriptorUpdateTemplateCreateFlagsKHR = DescriptorUpdateTemplateCreateFlags;
3442 
3443   template <>
3444   struct FlagTraits<DescriptorUpdateTemplateCreateFlagBits>
3445   {
3446     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                isBitmask = true;
3447     static VULKAN_HPP_CONST_OR_CONSTEXPR DescriptorUpdateTemplateCreateFlags allFlags  = {};
3448   };
3449 
3450   enum class DescriptorUpdateTemplateCreateFlagBits : VkDescriptorUpdateTemplateCreateFlags
3451   {
3452   };
3453 
to_string(DescriptorUpdateTemplateCreateFlagBits)3454   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlagBits )
3455   {
3456     return "(void)";
3457   }
3458 
3459   enum class ExternalMemoryHandleTypeFlagBits : VkExternalMemoryHandleTypeFlags
3460   {
3461     eOpaqueFd        = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
3462     eOpaqueWin32     = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
3463     eOpaqueWin32Kmt  = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
3464     eD3D11Texture    = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
3465     eD3D11TextureKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
3466     eD3D12Heap       = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
3467     eD3D12Resource   = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
3468     eDmaBufEXT       = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,
3469 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
3470     eAndroidHardwareBufferANDROID = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,
3471 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
3472     eHostAllocationEXT          = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,
3473     eHostMappedForeignMemoryEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT,
3474 #if defined( VK_USE_PLATFORM_FUCHSIA )
3475     eZirconVmoFUCHSIA = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA,
3476 #endif /*VK_USE_PLATFORM_FUCHSIA*/
3477     eRdmaAddressNV = VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV
3478   };
3479   using ExternalMemoryHandleTypeFlagBitsKHR = ExternalMemoryHandleTypeFlagBits;
3480 
3481   using ExternalMemoryHandleTypeFlags    = Flags<ExternalMemoryHandleTypeFlagBits>;
3482   using ExternalMemoryHandleTypeFlagsKHR = ExternalMemoryHandleTypeFlags;
3483 
3484   template <>
3485   struct FlagTraits<ExternalMemoryHandleTypeFlagBits>
3486   {
3487     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                          isBitmask = true;
3488     static VULKAN_HPP_CONST_OR_CONSTEXPR ExternalMemoryHandleTypeFlags allFlags =
3489       ExternalMemoryHandleTypeFlagBits::eOpaqueFd | ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 | ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt |
3490       ExternalMemoryHandleTypeFlagBits::eD3D11Texture | ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt | ExternalMemoryHandleTypeFlagBits::eD3D12Heap |
3491       ExternalMemoryHandleTypeFlagBits::eD3D12Resource | ExternalMemoryHandleTypeFlagBits::eDmaBufEXT
3492 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
3493       | ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID
3494 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
3495       | ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT | ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT
3496 #if defined( VK_USE_PLATFORM_FUCHSIA )
3497       | ExternalMemoryHandleTypeFlagBits::eZirconVmoFUCHSIA
3498 #endif /*VK_USE_PLATFORM_FUCHSIA*/
3499       | ExternalMemoryHandleTypeFlagBits::eRdmaAddressNV;
3500   };
3501 
3502   enum class ExternalMemoryFeatureFlagBits : VkExternalMemoryFeatureFlags
3503   {
3504     eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
3505     eExportable    = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
3506     eImportable    = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT
3507   };
3508   using ExternalMemoryFeatureFlagBitsKHR = ExternalMemoryFeatureFlagBits;
3509 
3510   using ExternalMemoryFeatureFlags    = Flags<ExternalMemoryFeatureFlagBits>;
3511   using ExternalMemoryFeatureFlagsKHR = ExternalMemoryFeatureFlags;
3512 
3513   template <>
3514   struct FlagTraits<ExternalMemoryFeatureFlagBits>
3515   {
3516     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
3517     static VULKAN_HPP_CONST_OR_CONSTEXPR ExternalMemoryFeatureFlags allFlags =
3518       ExternalMemoryFeatureFlagBits::eDedicatedOnly | ExternalMemoryFeatureFlagBits::eExportable | ExternalMemoryFeatureFlagBits::eImportable;
3519   };
3520 
3521   enum class ExternalFenceHandleTypeFlagBits : VkExternalFenceHandleTypeFlags
3522   {
3523     eOpaqueFd       = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
3524     eOpaqueWin32    = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
3525     eOpaqueWin32Kmt = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
3526     eSyncFd         = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT
3527   };
3528   using ExternalFenceHandleTypeFlagBitsKHR = ExternalFenceHandleTypeFlagBits;
3529 
3530   using ExternalFenceHandleTypeFlags    = Flags<ExternalFenceHandleTypeFlagBits>;
3531   using ExternalFenceHandleTypeFlagsKHR = ExternalFenceHandleTypeFlags;
3532 
3533   template <>
3534   struct FlagTraits<ExternalFenceHandleTypeFlagBits>
3535   {
3536     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                         isBitmask = true;
3537     static VULKAN_HPP_CONST_OR_CONSTEXPR ExternalFenceHandleTypeFlags allFlags =
3538       ExternalFenceHandleTypeFlagBits::eOpaqueFd | ExternalFenceHandleTypeFlagBits::eOpaqueWin32 | ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt |
3539       ExternalFenceHandleTypeFlagBits::eSyncFd;
3540   };
3541 
3542   enum class ExternalFenceFeatureFlagBits : VkExternalFenceFeatureFlags
3543   {
3544     eExportable = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
3545     eImportable = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT
3546   };
3547   using ExternalFenceFeatureFlagBitsKHR = ExternalFenceFeatureFlagBits;
3548 
3549   using ExternalFenceFeatureFlags    = Flags<ExternalFenceFeatureFlagBits>;
3550   using ExternalFenceFeatureFlagsKHR = ExternalFenceFeatureFlags;
3551 
3552   template <>
3553   struct FlagTraits<ExternalFenceFeatureFlagBits>
3554   {
3555     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                      isBitmask = true;
3556     static VULKAN_HPP_CONST_OR_CONSTEXPR ExternalFenceFeatureFlags allFlags =
3557       ExternalFenceFeatureFlagBits::eExportable | ExternalFenceFeatureFlagBits::eImportable;
3558   };
3559 
3560   enum class FenceImportFlagBits : VkFenceImportFlags
3561   {
3562     eTemporary = VK_FENCE_IMPORT_TEMPORARY_BIT
3563   };
3564   using FenceImportFlagBitsKHR = FenceImportFlagBits;
3565 
3566   using FenceImportFlags    = Flags<FenceImportFlagBits>;
3567   using FenceImportFlagsKHR = FenceImportFlags;
3568 
3569   template <>
3570   struct FlagTraits<FenceImportFlagBits>
3571   {
3572     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
3573     static VULKAN_HPP_CONST_OR_CONSTEXPR FenceImportFlags allFlags  = FenceImportFlagBits::eTemporary;
3574   };
3575 
3576   enum class SemaphoreImportFlagBits : VkSemaphoreImportFlags
3577   {
3578     eTemporary = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT
3579   };
3580   using SemaphoreImportFlagBitsKHR = SemaphoreImportFlagBits;
3581 
3582   using SemaphoreImportFlags    = Flags<SemaphoreImportFlagBits>;
3583   using SemaphoreImportFlagsKHR = SemaphoreImportFlags;
3584 
3585   template <>
3586   struct FlagTraits<SemaphoreImportFlagBits>
3587   {
3588     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                 isBitmask = true;
3589     static VULKAN_HPP_CONST_OR_CONSTEXPR SemaphoreImportFlags allFlags  = SemaphoreImportFlagBits::eTemporary;
3590   };
3591 
3592   enum class ExternalSemaphoreHandleTypeFlagBits : VkExternalSemaphoreHandleTypeFlags
3593   {
3594     eOpaqueFd       = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
3595     eOpaqueWin32    = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
3596     eOpaqueWin32Kmt = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
3597     eD3D12Fence     = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
3598     eSyncFd         = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
3599 #if defined( VK_USE_PLATFORM_FUCHSIA )
3600     eZirconEventFUCHSIA = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA,
3601 #endif /*VK_USE_PLATFORM_FUCHSIA*/
3602     eD3D11Fence = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT
3603   };
3604   using ExternalSemaphoreHandleTypeFlagBitsKHR = ExternalSemaphoreHandleTypeFlagBits;
3605 
3606   using ExternalSemaphoreHandleTypeFlags    = Flags<ExternalSemaphoreHandleTypeFlagBits>;
3607   using ExternalSemaphoreHandleTypeFlagsKHR = ExternalSemaphoreHandleTypeFlags;
3608 
3609   template <>
3610   struct FlagTraits<ExternalSemaphoreHandleTypeFlagBits>
3611   {
3612     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                             isBitmask = true;
3613     static VULKAN_HPP_CONST_OR_CONSTEXPR ExternalSemaphoreHandleTypeFlags allFlags =
3614       ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd | ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 |
3615       ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt | ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence | ExternalSemaphoreHandleTypeFlagBits::eSyncFd
3616 #if defined( VK_USE_PLATFORM_FUCHSIA )
3617       | ExternalSemaphoreHandleTypeFlagBits::eZirconEventFUCHSIA
3618 #endif /*VK_USE_PLATFORM_FUCHSIA*/
3619       ;
3620   };
3621 
3622   enum class ExternalSemaphoreFeatureFlagBits : VkExternalSemaphoreFeatureFlags
3623   {
3624     eExportable = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
3625     eImportable = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT
3626   };
3627   using ExternalSemaphoreFeatureFlagBitsKHR = ExternalSemaphoreFeatureFlagBits;
3628 
3629   using ExternalSemaphoreFeatureFlags    = Flags<ExternalSemaphoreFeatureFlagBits>;
3630   using ExternalSemaphoreFeatureFlagsKHR = ExternalSemaphoreFeatureFlags;
3631 
3632   template <>
3633   struct FlagTraits<ExternalSemaphoreFeatureFlagBits>
3634   {
3635     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                          isBitmask = true;
3636     static VULKAN_HPP_CONST_OR_CONSTEXPR ExternalSemaphoreFeatureFlags allFlags =
3637       ExternalSemaphoreFeatureFlagBits::eExportable | ExternalSemaphoreFeatureFlagBits::eImportable;
3638   };
3639 
3640   //=== VK_VERSION_1_2 ===
3641 
3642   enum class DriverId
3643   {
3644     eAmdProprietary          = VK_DRIVER_ID_AMD_PROPRIETARY,
3645     eAmdOpenSource           = VK_DRIVER_ID_AMD_OPEN_SOURCE,
3646     eMesaRadv                = VK_DRIVER_ID_MESA_RADV,
3647     eNvidiaProprietary       = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
3648     eIntelProprietaryWindows = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
3649     eIntelOpenSourceMESA     = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
3650     eImaginationProprietary  = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
3651     eQualcommProprietary     = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
3652     eArmProprietary          = VK_DRIVER_ID_ARM_PROPRIETARY,
3653     eGoogleSwiftshader       = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
3654     eGgpProprietary          = VK_DRIVER_ID_GGP_PROPRIETARY,
3655     eBroadcomProprietary     = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
3656     eMesaLlvmpipe            = VK_DRIVER_ID_MESA_LLVMPIPE,
3657     eMoltenvk                = VK_DRIVER_ID_MOLTENVK,
3658     eCoreaviProprietary      = VK_DRIVER_ID_COREAVI_PROPRIETARY,
3659     eJuiceProprietary        = VK_DRIVER_ID_JUICE_PROPRIETARY,
3660     eVerisiliconProprietary  = VK_DRIVER_ID_VERISILICON_PROPRIETARY,
3661     eMesaTurnip              = VK_DRIVER_ID_MESA_TURNIP,
3662     eMesaV3Dv                = VK_DRIVER_ID_MESA_V3DV,
3663     eMesaPanvk               = VK_DRIVER_ID_MESA_PANVK,
3664     eSamsungProprietary      = VK_DRIVER_ID_SAMSUNG_PROPRIETARY,
3665     eMesaVenus               = VK_DRIVER_ID_MESA_VENUS,
3666     eMesaDozen               = VK_DRIVER_ID_MESA_DOZEN,
3667     eMesaNvk                 = VK_DRIVER_ID_MESA_NVK
3668   };
3669   using DriverIdKHR = DriverId;
3670 
3671   enum class ShaderFloatControlsIndependence
3672   {
3673     e32BitOnly = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
3674     eAll       = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
3675     eNone      = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
3676   };
3677   using ShaderFloatControlsIndependenceKHR = ShaderFloatControlsIndependence;
3678 
3679   enum class DescriptorBindingFlagBits : VkDescriptorBindingFlags
3680   {
3681     eUpdateAfterBind          = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
3682     eUpdateUnusedWhilePending = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
3683     ePartiallyBound           = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
3684     eVariableDescriptorCount  = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
3685   };
3686   using DescriptorBindingFlagBitsEXT = DescriptorBindingFlagBits;
3687 
3688   using DescriptorBindingFlags    = Flags<DescriptorBindingFlagBits>;
3689   using DescriptorBindingFlagsEXT = DescriptorBindingFlags;
3690 
3691   template <>
3692   struct FlagTraits<DescriptorBindingFlagBits>
3693   {
3694     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
3695     static VULKAN_HPP_CONST_OR_CONSTEXPR DescriptorBindingFlags allFlags =
3696       DescriptorBindingFlagBits::eUpdateAfterBind | DescriptorBindingFlagBits::eUpdateUnusedWhilePending | DescriptorBindingFlagBits::ePartiallyBound |
3697       DescriptorBindingFlagBits::eVariableDescriptorCount;
3698   };
3699 
3700   enum class ResolveModeFlagBits : VkResolveModeFlags
3701   {
3702     eNone       = VK_RESOLVE_MODE_NONE,
3703     eSampleZero = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
3704     eAverage    = VK_RESOLVE_MODE_AVERAGE_BIT,
3705     eMin        = VK_RESOLVE_MODE_MIN_BIT,
3706     eMax        = VK_RESOLVE_MODE_MAX_BIT
3707   };
3708   using ResolveModeFlagBitsKHR = ResolveModeFlagBits;
3709 
3710   using ResolveModeFlags    = Flags<ResolveModeFlagBits>;
3711   using ResolveModeFlagsKHR = ResolveModeFlags;
3712 
3713   template <>
3714   struct FlagTraits<ResolveModeFlagBits>
3715   {
3716     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
3717     static VULKAN_HPP_CONST_OR_CONSTEXPR ResolveModeFlags allFlags =
3718       ResolveModeFlagBits::eNone | ResolveModeFlagBits::eSampleZero | ResolveModeFlagBits::eAverage | ResolveModeFlagBits::eMin | ResolveModeFlagBits::eMax;
3719   };
3720 
3721   enum class SamplerReductionMode
3722   {
3723     eWeightedAverage = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
3724     eMin             = VK_SAMPLER_REDUCTION_MODE_MIN,
3725     eMax             = VK_SAMPLER_REDUCTION_MODE_MAX
3726   };
3727   using SamplerReductionModeEXT = SamplerReductionMode;
3728 
3729   enum class SemaphoreType
3730   {
3731     eBinary   = VK_SEMAPHORE_TYPE_BINARY,
3732     eTimeline = VK_SEMAPHORE_TYPE_TIMELINE
3733   };
3734   using SemaphoreTypeKHR = SemaphoreType;
3735 
3736   enum class SemaphoreWaitFlagBits : VkSemaphoreWaitFlags
3737   {
3738     eAny = VK_SEMAPHORE_WAIT_ANY_BIT
3739   };
3740   using SemaphoreWaitFlagBitsKHR = SemaphoreWaitFlagBits;
3741 
3742   using SemaphoreWaitFlags    = Flags<SemaphoreWaitFlagBits>;
3743   using SemaphoreWaitFlagsKHR = SemaphoreWaitFlags;
3744 
3745   template <>
3746   struct FlagTraits<SemaphoreWaitFlagBits>
3747   {
3748     static VULKAN_HPP_CONST_OR_CONSTEXPR bool               isBitmask = true;
3749     static VULKAN_HPP_CONST_OR_CONSTEXPR SemaphoreWaitFlags allFlags  = SemaphoreWaitFlagBits::eAny;
3750   };
3751 
3752   //=== VK_VERSION_1_3 ===
3753 
3754   enum class PipelineCreationFeedbackFlagBits : VkPipelineCreationFeedbackFlags
3755   {
3756     eValid                       = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
3757     eApplicationPipelineCacheHit = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
3758     eBasePipelineAcceleration    = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT
3759   };
3760   using PipelineCreationFeedbackFlagBitsEXT = PipelineCreationFeedbackFlagBits;
3761 
3762   using PipelineCreationFeedbackFlags    = Flags<PipelineCreationFeedbackFlagBits>;
3763   using PipelineCreationFeedbackFlagsEXT = PipelineCreationFeedbackFlags;
3764 
3765   template <>
3766   struct FlagTraits<PipelineCreationFeedbackFlagBits>
3767   {
3768     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                          isBitmask = true;
3769     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineCreationFeedbackFlags allFlags  = PipelineCreationFeedbackFlagBits::eValid |
3770                                                                                   PipelineCreationFeedbackFlagBits::eApplicationPipelineCacheHit |
3771                                                                                   PipelineCreationFeedbackFlagBits::eBasePipelineAcceleration;
3772   };
3773 
3774   enum class ToolPurposeFlagBits : VkToolPurposeFlags
3775   {
3776     eValidation         = VK_TOOL_PURPOSE_VALIDATION_BIT,
3777     eProfiling          = VK_TOOL_PURPOSE_PROFILING_BIT,
3778     eTracing            = VK_TOOL_PURPOSE_TRACING_BIT,
3779     eAdditionalFeatures = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
3780     eModifyingFeatures  = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
3781     eDebugReportingEXT  = VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT,
3782     eDebugMarkersEXT    = VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT
3783   };
3784   using ToolPurposeFlagBitsEXT = ToolPurposeFlagBits;
3785 
3786   using ToolPurposeFlags    = Flags<ToolPurposeFlagBits>;
3787   using ToolPurposeFlagsEXT = ToolPurposeFlags;
3788 
3789   template <>
3790   struct FlagTraits<ToolPurposeFlagBits>
3791   {
3792     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
3793     static VULKAN_HPP_CONST_OR_CONSTEXPR ToolPurposeFlags allFlags =
3794       ToolPurposeFlagBits::eValidation | ToolPurposeFlagBits::eProfiling | ToolPurposeFlagBits::eTracing | ToolPurposeFlagBits::eAdditionalFeatures |
3795       ToolPurposeFlagBits::eModifyingFeatures | ToolPurposeFlagBits::eDebugReportingEXT | ToolPurposeFlagBits::eDebugMarkersEXT;
3796   };
3797 
3798   enum class PrivateDataSlotCreateFlagBits : VkPrivateDataSlotCreateFlags
3799   {
3800   };
3801   using PrivateDataSlotCreateFlagBitsEXT = PrivateDataSlotCreateFlagBits;
3802 
3803   using PrivateDataSlotCreateFlags    = Flags<PrivateDataSlotCreateFlagBits>;
3804   using PrivateDataSlotCreateFlagsEXT = PrivateDataSlotCreateFlags;
3805 
3806   template <>
3807   struct FlagTraits<PrivateDataSlotCreateFlagBits>
3808   {
3809     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
3810     static VULKAN_HPP_CONST_OR_CONSTEXPR PrivateDataSlotCreateFlags allFlags  = {};
3811   };
3812 
3813   enum class PipelineStageFlagBits2 : VkPipelineStageFlags2
3814   {
3815     eNone                         = VK_PIPELINE_STAGE_2_NONE,
3816     eTopOfPipe                    = VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT,
3817     eDrawIndirect                 = VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT,
3818     eVertexInput                  = VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT,
3819     eVertexShader                 = VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,
3820     eTessellationControlShader    = VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT,
3821     eTessellationEvaluationShader = VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT,
3822     eGeometryShader               = VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT,
3823     eFragmentShader               = VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,
3824     eEarlyFragmentTests           = VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT,
3825     eLateFragmentTests            = VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT,
3826     eColorAttachmentOutput        = VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT,
3827     eComputeShader                = VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT,
3828     eAllTransfer                  = VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT,
3829     eBottomOfPipe                 = VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT,
3830     eHost                         = VK_PIPELINE_STAGE_2_HOST_BIT,
3831     eAllGraphics                  = VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,
3832     eAllCommands                  = VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT,
3833     eCopy                         = VK_PIPELINE_STAGE_2_COPY_BIT,
3834     eResolve                      = VK_PIPELINE_STAGE_2_RESOLVE_BIT,
3835     eBlit                         = VK_PIPELINE_STAGE_2_BLIT_BIT,
3836     eClear                        = VK_PIPELINE_STAGE_2_CLEAR_BIT,
3837     eIndexInput                   = VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT,
3838     eVertexAttributeInput         = VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT,
3839     ePreRasterizationShaders      = VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT,
3840 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3841     eVideoDecodeKHR = VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR,
3842     eVideoEncodeKHR = VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR,
3843 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3844     eTransformFeedbackEXT             = VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,
3845     eConditionalRenderingEXT          = VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT,
3846     eCommandPreprocessNV              = VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV,
3847     eFragmentShadingRateAttachmentKHR = VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
3848     eAccelerationStructureBuildKHR    = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
3849     eRayTracingShaderKHR              = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR,
3850     eFragmentDensityProcessEXT        = VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT,
3851     eTaskShaderEXT                    = VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT,
3852     eMeshShaderEXT                    = VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT,
3853     eSubpassShadingHUAWEI             = VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI,
3854     eInvocationMaskHUAWEI             = VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI,
3855     eAccelerationStructureCopyKHR     = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR,
3856     eMicromapBuildEXT                 = VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT,
3857     eOpticalFlowNV                    = VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV,
3858     eAccelerationStructureBuildNV     = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
3859     eMeshShaderNV                     = VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV,
3860     eRayTracingShaderNV               = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV,
3861     eShadingRateImageNV               = VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV,
3862     eTaskShaderNV                     = VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV,
3863     eTransfer                         = VK_PIPELINE_STAGE_2_TRANSFER_BIT
3864   };
3865   using PipelineStageFlagBits2KHR = PipelineStageFlagBits2;
3866 
3867   using PipelineStageFlags2    = Flags<PipelineStageFlagBits2>;
3868   using PipelineStageFlags2KHR = PipelineStageFlags2;
3869 
3870   template <>
3871   struct FlagTraits<PipelineStageFlagBits2>
3872   {
3873     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                isBitmask = true;
3874     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineStageFlags2 allFlags =
3875       PipelineStageFlagBits2::eNone | PipelineStageFlagBits2::eTopOfPipe | PipelineStageFlagBits2::eDrawIndirect | PipelineStageFlagBits2::eVertexInput |
3876       PipelineStageFlagBits2::eVertexShader | PipelineStageFlagBits2::eTessellationControlShader | PipelineStageFlagBits2::eTessellationEvaluationShader |
3877       PipelineStageFlagBits2::eGeometryShader | PipelineStageFlagBits2::eFragmentShader | PipelineStageFlagBits2::eEarlyFragmentTests |
3878       PipelineStageFlagBits2::eLateFragmentTests | PipelineStageFlagBits2::eColorAttachmentOutput | PipelineStageFlagBits2::eComputeShader |
3879       PipelineStageFlagBits2::eAllTransfer | PipelineStageFlagBits2::eBottomOfPipe | PipelineStageFlagBits2::eHost | PipelineStageFlagBits2::eAllGraphics |
3880       PipelineStageFlagBits2::eAllCommands | PipelineStageFlagBits2::eCopy | PipelineStageFlagBits2::eResolve | PipelineStageFlagBits2::eBlit |
3881       PipelineStageFlagBits2::eClear | PipelineStageFlagBits2::eIndexInput | PipelineStageFlagBits2::eVertexAttributeInput |
3882       PipelineStageFlagBits2::ePreRasterizationShaders
3883 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3884       | PipelineStageFlagBits2::eVideoDecodeKHR | PipelineStageFlagBits2::eVideoEncodeKHR
3885 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3886       | PipelineStageFlagBits2::eTransformFeedbackEXT | PipelineStageFlagBits2::eConditionalRenderingEXT | PipelineStageFlagBits2::eCommandPreprocessNV |
3887       PipelineStageFlagBits2::eFragmentShadingRateAttachmentKHR | PipelineStageFlagBits2::eAccelerationStructureBuildKHR |
3888       PipelineStageFlagBits2::eRayTracingShaderKHR | PipelineStageFlagBits2::eFragmentDensityProcessEXT | PipelineStageFlagBits2::eTaskShaderEXT |
3889       PipelineStageFlagBits2::eMeshShaderEXT | PipelineStageFlagBits2::eSubpassShadingHUAWEI | PipelineStageFlagBits2::eInvocationMaskHUAWEI |
3890       PipelineStageFlagBits2::eAccelerationStructureCopyKHR | PipelineStageFlagBits2::eMicromapBuildEXT | PipelineStageFlagBits2::eOpticalFlowNV;
3891   };
3892 
3893   enum class AccessFlagBits2 : VkAccessFlags2
3894   {
3895     eNone                        = VK_ACCESS_2_NONE,
3896     eIndirectCommandRead         = VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT,
3897     eIndexRead                   = VK_ACCESS_2_INDEX_READ_BIT,
3898     eVertexAttributeRead         = VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT,
3899     eUniformRead                 = VK_ACCESS_2_UNIFORM_READ_BIT,
3900     eInputAttachmentRead         = VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT,
3901     eShaderRead                  = VK_ACCESS_2_SHADER_READ_BIT,
3902     eShaderWrite                 = VK_ACCESS_2_SHADER_WRITE_BIT,
3903     eColorAttachmentRead         = VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT,
3904     eColorAttachmentWrite        = VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT,
3905     eDepthStencilAttachmentRead  = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
3906     eDepthStencilAttachmentWrite = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
3907     eTransferRead                = VK_ACCESS_2_TRANSFER_READ_BIT,
3908     eTransferWrite               = VK_ACCESS_2_TRANSFER_WRITE_BIT,
3909     eHostRead                    = VK_ACCESS_2_HOST_READ_BIT,
3910     eHostWrite                   = VK_ACCESS_2_HOST_WRITE_BIT,
3911     eMemoryRead                  = VK_ACCESS_2_MEMORY_READ_BIT,
3912     eMemoryWrite                 = VK_ACCESS_2_MEMORY_WRITE_BIT,
3913     eShaderSampledRead           = VK_ACCESS_2_SHADER_SAMPLED_READ_BIT,
3914     eShaderStorageRead           = VK_ACCESS_2_SHADER_STORAGE_READ_BIT,
3915     eShaderStorageWrite          = VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT,
3916 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3917     eVideoDecodeReadKHR  = VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR,
3918     eVideoDecodeWriteKHR = VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,
3919     eVideoEncodeReadKHR  = VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,
3920     eVideoEncodeWriteKHR = VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,
3921 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3922     eTransformFeedbackWriteEXT            = VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
3923     eTransformFeedbackCounterReadEXT      = VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,
3924     eTransformFeedbackCounterWriteEXT     = VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
3925     eConditionalRenderingReadEXT          = VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT,
3926     eCommandPreprocessReadNV              = VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV,
3927     eCommandPreprocessWriteNV             = VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV,
3928     eFragmentShadingRateAttachmentReadKHR = VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
3929     eAccelerationStructureReadKHR         = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,
3930     eAccelerationStructureWriteKHR        = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
3931     eFragmentDensityMapReadEXT            = VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,
3932     eColorAttachmentReadNoncoherentEXT    = VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
3933     eDescriptorBufferReadEXT              = VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT,
3934     eInvocationMaskReadHUAWEI             = VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI,
3935     eShaderBindingTableReadKHR            = VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR,
3936     eMicromapReadEXT                      = VK_ACCESS_2_MICROMAP_READ_BIT_EXT,
3937     eMicromapWriteEXT                     = VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT,
3938     eOpticalFlowReadNV                    = VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV,
3939     eOpticalFlowWriteNV                   = VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV,
3940     eAccelerationStructureReadNV          = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV,
3941     eAccelerationStructureWriteNV         = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
3942     eShadingRateImageReadNV               = VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV
3943   };
3944   using AccessFlagBits2KHR = AccessFlagBits2;
3945 
3946   using AccessFlags2    = Flags<AccessFlagBits2>;
3947   using AccessFlags2KHR = AccessFlags2;
3948 
3949   template <>
3950   struct FlagTraits<AccessFlagBits2>
3951   {
3952     static VULKAN_HPP_CONST_OR_CONSTEXPR bool         isBitmask = true;
3953     static VULKAN_HPP_CONST_OR_CONSTEXPR AccessFlags2 allFlags =
3954       AccessFlagBits2::eNone | AccessFlagBits2::eIndirectCommandRead | AccessFlagBits2::eIndexRead | AccessFlagBits2::eVertexAttributeRead |
3955       AccessFlagBits2::eUniformRead | AccessFlagBits2::eInputAttachmentRead | AccessFlagBits2::eShaderRead | AccessFlagBits2::eShaderWrite |
3956       AccessFlagBits2::eColorAttachmentRead | AccessFlagBits2::eColorAttachmentWrite | AccessFlagBits2::eDepthStencilAttachmentRead |
3957       AccessFlagBits2::eDepthStencilAttachmentWrite | AccessFlagBits2::eTransferRead | AccessFlagBits2::eTransferWrite | AccessFlagBits2::eHostRead |
3958       AccessFlagBits2::eHostWrite | AccessFlagBits2::eMemoryRead | AccessFlagBits2::eMemoryWrite | AccessFlagBits2::eShaderSampledRead |
3959       AccessFlagBits2::eShaderStorageRead | AccessFlagBits2::eShaderStorageWrite
3960 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3961       | AccessFlagBits2::eVideoDecodeReadKHR | AccessFlagBits2::eVideoDecodeWriteKHR | AccessFlagBits2::eVideoEncodeReadKHR |
3962       AccessFlagBits2::eVideoEncodeWriteKHR
3963 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3964       | AccessFlagBits2::eTransformFeedbackWriteEXT | AccessFlagBits2::eTransformFeedbackCounterReadEXT | AccessFlagBits2::eTransformFeedbackCounterWriteEXT |
3965       AccessFlagBits2::eConditionalRenderingReadEXT | AccessFlagBits2::eCommandPreprocessReadNV | AccessFlagBits2::eCommandPreprocessWriteNV |
3966       AccessFlagBits2::eFragmentShadingRateAttachmentReadKHR | AccessFlagBits2::eAccelerationStructureReadKHR |
3967       AccessFlagBits2::eAccelerationStructureWriteKHR | AccessFlagBits2::eFragmentDensityMapReadEXT | AccessFlagBits2::eColorAttachmentReadNoncoherentEXT |
3968       AccessFlagBits2::eDescriptorBufferReadEXT | AccessFlagBits2::eInvocationMaskReadHUAWEI | AccessFlagBits2::eShaderBindingTableReadKHR |
3969       AccessFlagBits2::eMicromapReadEXT | AccessFlagBits2::eMicromapWriteEXT | AccessFlagBits2::eOpticalFlowReadNV | AccessFlagBits2::eOpticalFlowWriteNV;
3970   };
3971 
3972   enum class SubmitFlagBits : VkSubmitFlags
3973   {
3974     eProtected = VK_SUBMIT_PROTECTED_BIT
3975   };
3976   using SubmitFlagBitsKHR = SubmitFlagBits;
3977 
3978   using SubmitFlags    = Flags<SubmitFlagBits>;
3979   using SubmitFlagsKHR = SubmitFlags;
3980 
3981   template <>
3982   struct FlagTraits<SubmitFlagBits>
3983   {
3984     static VULKAN_HPP_CONST_OR_CONSTEXPR bool        isBitmask = true;
3985     static VULKAN_HPP_CONST_OR_CONSTEXPR SubmitFlags allFlags  = SubmitFlagBits::eProtected;
3986   };
3987 
3988   enum class RenderingFlagBits : VkRenderingFlags
3989   {
3990     eContentsSecondaryCommandBuffers = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
3991     eSuspending                      = VK_RENDERING_SUSPENDING_BIT,
3992     eResuming                        = VK_RENDERING_RESUMING_BIT,
3993     eEnableLegacyDitheringEXT        = VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT
3994   };
3995   using RenderingFlagBitsKHR = RenderingFlagBits;
3996 
3997   using RenderingFlags    = Flags<RenderingFlagBits>;
3998   using RenderingFlagsKHR = RenderingFlags;
3999 
4000   template <>
4001   struct FlagTraits<RenderingFlagBits>
4002   {
4003     static VULKAN_HPP_CONST_OR_CONSTEXPR bool           isBitmask = true;
4004     static VULKAN_HPP_CONST_OR_CONSTEXPR RenderingFlags allFlags  = RenderingFlagBits::eContentsSecondaryCommandBuffers | RenderingFlagBits::eSuspending |
4005                                                                    RenderingFlagBits::eResuming | RenderingFlagBits::eEnableLegacyDitheringEXT;
4006   };
4007 
4008   enum class FormatFeatureFlagBits2 : VkFormatFeatureFlags2
4009   {
4010     eSampledImage                                            = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT,
4011     eStorageImage                                            = VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT,
4012     eStorageImageAtomic                                      = VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT,
4013     eUniformTexelBuffer                                      = VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT,
4014     eStorageTexelBuffer                                      = VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT,
4015     eStorageTexelBufferAtomic                                = VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,
4016     eVertexBuffer                                            = VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT,
4017     eColorAttachment                                         = VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT,
4018     eColorAttachmentBlend                                    = VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT,
4019     eDepthStencilAttachment                                  = VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT,
4020     eBlitSrc                                                 = VK_FORMAT_FEATURE_2_BLIT_SRC_BIT,
4021     eBlitDst                                                 = VK_FORMAT_FEATURE_2_BLIT_DST_BIT,
4022     eSampledImageFilterLinear                                = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT,
4023     eSampledImageFilterCubic                                 = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT,
4024     eTransferSrc                                             = VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT,
4025     eTransferDst                                             = VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT,
4026     eSampledImageFilterMinmax                                = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
4027     eMidpointChromaSamples                                   = VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT,
4028     eSampledImageYcbcrConversionLinearFilter                 = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
4029     eSampledImageYcbcrConversionSeparateReconstructionFilter = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
4030     eSampledImageYcbcrConversionChromaReconstructionExplicit = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
4031     eSampledImageYcbcrConversionChromaReconstructionExplicitForceable =
4032       VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
4033     eDisjoint                    = VK_FORMAT_FEATURE_2_DISJOINT_BIT,
4034     eCositedChromaSamples        = VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT,
4035     eStorageReadWithoutFormat    = VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT,
4036     eStorageWriteWithoutFormat   = VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT,
4037     eSampledImageDepthComparison = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT,
4038 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4039     eVideoDecodeOutputKHR = VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR,
4040     eVideoDecodeDpbKHR    = VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR,
4041 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4042     eAccelerationStructureVertexBufferKHR = VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,
4043     eFragmentDensityMapEXT                = VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT,
4044     eFragmentShadingRateAttachmentKHR     = VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
4045 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4046     eVideoEncodeInputKHR = VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR,
4047     eVideoEncodeDpbKHR   = VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR,
4048 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4049     eLinearColorAttachmentNV    = VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV,
4050     eWeightImageQCOM            = VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM,
4051     eWeightSampledImageQCOM     = VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM,
4052     eBlockMatchingQCOM          = VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM,
4053     eBoxFilterSampledQCOM       = VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM,
4054     eOpticalFlowImageNV         = VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV,
4055     eOpticalFlowVectorNV        = VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV,
4056     eOpticalFlowCostNV          = VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV,
4057     eSampledImageFilterCubicEXT = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
4058   };
4059   using FormatFeatureFlagBits2KHR = FormatFeatureFlagBits2;
4060 
4061   using FormatFeatureFlags2    = Flags<FormatFeatureFlagBits2>;
4062   using FormatFeatureFlags2KHR = FormatFeatureFlags2;
4063 
4064   template <>
4065   struct FlagTraits<FormatFeatureFlagBits2>
4066   {
4067     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                isBitmask = true;
4068     static VULKAN_HPP_CONST_OR_CONSTEXPR FormatFeatureFlags2 allFlags =
4069       FormatFeatureFlagBits2::eSampledImage | FormatFeatureFlagBits2::eStorageImage | FormatFeatureFlagBits2::eStorageImageAtomic |
4070       FormatFeatureFlagBits2::eUniformTexelBuffer | FormatFeatureFlagBits2::eStorageTexelBuffer | FormatFeatureFlagBits2::eStorageTexelBufferAtomic |
4071       FormatFeatureFlagBits2::eVertexBuffer | FormatFeatureFlagBits2::eColorAttachment | FormatFeatureFlagBits2::eColorAttachmentBlend |
4072       FormatFeatureFlagBits2::eDepthStencilAttachment | FormatFeatureFlagBits2::eBlitSrc | FormatFeatureFlagBits2::eBlitDst |
4073       FormatFeatureFlagBits2::eSampledImageFilterLinear | FormatFeatureFlagBits2::eSampledImageFilterCubic | FormatFeatureFlagBits2::eTransferSrc |
4074       FormatFeatureFlagBits2::eTransferDst | FormatFeatureFlagBits2::eSampledImageFilterMinmax | FormatFeatureFlagBits2::eMidpointChromaSamples |
4075       FormatFeatureFlagBits2::eSampledImageYcbcrConversionLinearFilter | FormatFeatureFlagBits2::eSampledImageYcbcrConversionSeparateReconstructionFilter |
4076       FormatFeatureFlagBits2::eSampledImageYcbcrConversionChromaReconstructionExplicit |
4077       FormatFeatureFlagBits2::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable | FormatFeatureFlagBits2::eDisjoint |
4078       FormatFeatureFlagBits2::eCositedChromaSamples | FormatFeatureFlagBits2::eStorageReadWithoutFormat | FormatFeatureFlagBits2::eStorageWriteWithoutFormat |
4079       FormatFeatureFlagBits2::eSampledImageDepthComparison
4080 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4081       | FormatFeatureFlagBits2::eVideoDecodeOutputKHR | FormatFeatureFlagBits2::eVideoDecodeDpbKHR
4082 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4083       | FormatFeatureFlagBits2::eAccelerationStructureVertexBufferKHR | FormatFeatureFlagBits2::eFragmentDensityMapEXT |
4084       FormatFeatureFlagBits2::eFragmentShadingRateAttachmentKHR
4085 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4086       | FormatFeatureFlagBits2::eVideoEncodeInputKHR | FormatFeatureFlagBits2::eVideoEncodeDpbKHR
4087 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4088       | FormatFeatureFlagBits2::eLinearColorAttachmentNV | FormatFeatureFlagBits2::eWeightImageQCOM | FormatFeatureFlagBits2::eWeightSampledImageQCOM |
4089       FormatFeatureFlagBits2::eBlockMatchingQCOM | FormatFeatureFlagBits2::eBoxFilterSampledQCOM | FormatFeatureFlagBits2::eOpticalFlowImageNV |
4090       FormatFeatureFlagBits2::eOpticalFlowVectorNV | FormatFeatureFlagBits2::eOpticalFlowCostNV;
4091   };
4092 
4093   //=== VK_VERSION_1_3 ===
4094 
4095   enum class PipelineCreationFeedbackFlagBits : VkPipelineCreationFeedbackFlags
4096   {
4097     eValid                       = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
4098     eApplicationPipelineCacheHit = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
4099     eBasePipelineAcceleration    = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT
4100   };
4101   using PipelineCreationFeedbackFlagBitsEXT = PipelineCreationFeedbackFlagBits;
4102 
to_string(PipelineCreationFeedbackFlagBits value)4103   VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagBits value )
4104   {
4105     switch ( value )
4106     {
4107       case PipelineCreationFeedbackFlagBits::eValid: return "Valid";
4108       case PipelineCreationFeedbackFlagBits::eApplicationPipelineCacheHit: return "ApplicationPipelineCacheHit";
4109       case PipelineCreationFeedbackFlagBits::eBasePipelineAcceleration: return "BasePipelineAcceleration";
4110       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4111     }
4112   }
4113 
4114   enum class ToolPurposeFlagBits : VkToolPurposeFlags
4115   {
4116     eValidation         = VK_TOOL_PURPOSE_VALIDATION_BIT,
4117     eProfiling          = VK_TOOL_PURPOSE_PROFILING_BIT,
4118     eTracing            = VK_TOOL_PURPOSE_TRACING_BIT,
4119     eAdditionalFeatures = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
4120     eModifyingFeatures  = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
4121     eDebugReportingEXT  = VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT,
4122     eDebugMarkersEXT    = VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT
4123   };
4124   using ToolPurposeFlagBitsEXT = ToolPurposeFlagBits;
4125 
to_string(ToolPurposeFlagBits value)4126   VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagBits value )
4127   {
4128     switch ( value )
4129     {
4130       case ToolPurposeFlagBits::eValidation: return "Validation";
4131       case ToolPurposeFlagBits::eProfiling: return "Profiling";
4132       case ToolPurposeFlagBits::eTracing: return "Tracing";
4133       case ToolPurposeFlagBits::eAdditionalFeatures: return "AdditionalFeatures";
4134       case ToolPurposeFlagBits::eModifyingFeatures: return "ModifyingFeatures";
4135       case ToolPurposeFlagBits::eDebugReportingEXT: return "DebugReportingEXT";
4136       case ToolPurposeFlagBits::eDebugMarkersEXT: return "DebugMarkersEXT";
4137       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4138     }
4139   }
4140 
4141   enum class PrivateDataSlotCreateFlagBits : VkPrivateDataSlotCreateFlags
4142   {
4143   };
4144   using PrivateDataSlotCreateFlagBitsEXT = PrivateDataSlotCreateFlagBits;
4145 
to_string(PrivateDataSlotCreateFlagBits)4146   VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagBits )
4147   {
4148     return "(void)";
4149   }
4150 
4151   enum class PipelineStageFlagBits2 : VkPipelineStageFlags2
4152   {
4153     eNone                         = VK_PIPELINE_STAGE_2_NONE,
4154     eTopOfPipe                    = VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT,
4155     eDrawIndirect                 = VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT,
4156     eVertexInput                  = VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT,
4157     eVertexShader                 = VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,
4158     eTessellationControlShader    = VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT,
4159     eTessellationEvaluationShader = VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT,
4160     eGeometryShader               = VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT,
4161     eFragmentShader               = VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,
4162     eEarlyFragmentTests           = VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT,
4163     eLateFragmentTests            = VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT,
4164     eColorAttachmentOutput        = VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT,
4165     eComputeShader                = VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT,
4166     eAllTransfer                  = VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT,
4167     eBottomOfPipe                 = VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT,
4168     eHost                         = VK_PIPELINE_STAGE_2_HOST_BIT,
4169     eAllGraphics                  = VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,
4170     eAllCommands                  = VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT,
4171     eCopy                         = VK_PIPELINE_STAGE_2_COPY_BIT,
4172     eResolve                      = VK_PIPELINE_STAGE_2_RESOLVE_BIT,
4173     eBlit                         = VK_PIPELINE_STAGE_2_BLIT_BIT,
4174     eClear                        = VK_PIPELINE_STAGE_2_CLEAR_BIT,
4175     eIndexInput                   = VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT,
4176     eVertexAttributeInput         = VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT,
4177     ePreRasterizationShaders      = VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT,
4178 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4179     eVideoDecodeKHR = VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR,
4180     eVideoEncodeKHR = VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR,
4181 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4182     eTransformFeedbackEXT             = VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,
4183     eConditionalRenderingEXT          = VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT,
4184     eCommandPreprocessNV              = VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV,
4185     eFragmentShadingRateAttachmentKHR = VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
4186     eAccelerationStructureBuildKHR    = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
4187     eRayTracingShaderKHR              = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR,
4188     eFragmentDensityProcessEXT        = VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT,
4189     eTaskShaderNV                     = VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV,
4190     eMeshShaderNV                     = VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV,
4191     eSubpassShadingHUAWEI             = VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI,
4192     eInvocationMaskHUAWEI             = VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI,
4193     eAccelerationStructureBuildNV     = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
4194     eRayTracingShaderNV               = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV,
4195     eShadingRateImageNV               = VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV,
4196     eTransfer                         = VK_PIPELINE_STAGE_2_TRANSFER_BIT
4197   };
4198   using PipelineStageFlagBits2KHR = PipelineStageFlagBits2;
4199 
to_string(PipelineStageFlagBits2 value)4200   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlagBits2 value )
4201   {
4202     switch ( value )
4203     {
4204       case PipelineStageFlagBits2::eNone: return "None";
4205       case PipelineStageFlagBits2::eTopOfPipe: return "TopOfPipe";
4206       case PipelineStageFlagBits2::eDrawIndirect: return "DrawIndirect";
4207       case PipelineStageFlagBits2::eVertexInput: return "VertexInput";
4208       case PipelineStageFlagBits2::eVertexShader: return "VertexShader";
4209       case PipelineStageFlagBits2::eTessellationControlShader: return "TessellationControlShader";
4210       case PipelineStageFlagBits2::eTessellationEvaluationShader: return "TessellationEvaluationShader";
4211       case PipelineStageFlagBits2::eGeometryShader: return "GeometryShader";
4212       case PipelineStageFlagBits2::eFragmentShader: return "FragmentShader";
4213       case PipelineStageFlagBits2::eEarlyFragmentTests: return "EarlyFragmentTests";
4214       case PipelineStageFlagBits2::eLateFragmentTests: return "LateFragmentTests";
4215       case PipelineStageFlagBits2::eColorAttachmentOutput: return "ColorAttachmentOutput";
4216       case PipelineStageFlagBits2::eComputeShader: return "ComputeShader";
4217       case PipelineStageFlagBits2::eAllTransfer: return "AllTransfer";
4218       case PipelineStageFlagBits2::eBottomOfPipe: return "BottomOfPipe";
4219       case PipelineStageFlagBits2::eHost: return "Host";
4220       case PipelineStageFlagBits2::eAllGraphics: return "AllGraphics";
4221       case PipelineStageFlagBits2::eAllCommands: return "AllCommands";
4222       case PipelineStageFlagBits2::eCopy: return "Copy";
4223       case PipelineStageFlagBits2::eResolve: return "Resolve";
4224       case PipelineStageFlagBits2::eBlit: return "Blit";
4225       case PipelineStageFlagBits2::eClear: return "Clear";
4226       case PipelineStageFlagBits2::eIndexInput: return "IndexInput";
4227       case PipelineStageFlagBits2::eVertexAttributeInput: return "VertexAttributeInput";
4228       case PipelineStageFlagBits2::ePreRasterizationShaders: return "PreRasterizationShaders";
4229 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4230       case PipelineStageFlagBits2::eVideoDecodeKHR: return "VideoDecodeKHR";
4231       case PipelineStageFlagBits2::eVideoEncodeKHR: return "VideoEncodeKHR";
4232 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4233       case PipelineStageFlagBits2::eTransformFeedbackEXT: return "TransformFeedbackEXT";
4234       case PipelineStageFlagBits2::eConditionalRenderingEXT: return "ConditionalRenderingEXT";
4235       case PipelineStageFlagBits2::eCommandPreprocessNV: return "CommandPreprocessNV";
4236       case PipelineStageFlagBits2::eFragmentShadingRateAttachmentKHR: return "FragmentShadingRateAttachmentKHR";
4237       case PipelineStageFlagBits2::eAccelerationStructureBuildKHR: return "AccelerationStructureBuildKHR";
4238       case PipelineStageFlagBits2::eRayTracingShaderKHR: return "RayTracingShaderKHR";
4239       case PipelineStageFlagBits2::eFragmentDensityProcessEXT: return "FragmentDensityProcessEXT";
4240       case PipelineStageFlagBits2::eTaskShaderNV: return "TaskShaderNV";
4241       case PipelineStageFlagBits2::eMeshShaderNV: return "MeshShaderNV";
4242       case PipelineStageFlagBits2::eSubpassShadingHUAWEI: return "SubpassShadingHUAWEI";
4243       case PipelineStageFlagBits2::eInvocationMaskHUAWEI: return "InvocationMaskHUAWEI";
4244       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4245     }
4246   }
4247 
4248   enum class AccessFlagBits2 : VkAccessFlags2
4249   {
4250     eNone                        = VK_ACCESS_2_NONE,
4251     eIndirectCommandRead         = VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT,
4252     eIndexRead                   = VK_ACCESS_2_INDEX_READ_BIT,
4253     eVertexAttributeRead         = VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT,
4254     eUniformRead                 = VK_ACCESS_2_UNIFORM_READ_BIT,
4255     eInputAttachmentRead         = VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT,
4256     eShaderRead                  = VK_ACCESS_2_SHADER_READ_BIT,
4257     eShaderWrite                 = VK_ACCESS_2_SHADER_WRITE_BIT,
4258     eColorAttachmentRead         = VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT,
4259     eColorAttachmentWrite        = VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT,
4260     eDepthStencilAttachmentRead  = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
4261     eDepthStencilAttachmentWrite = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
4262     eTransferRead                = VK_ACCESS_2_TRANSFER_READ_BIT,
4263     eTransferWrite               = VK_ACCESS_2_TRANSFER_WRITE_BIT,
4264     eHostRead                    = VK_ACCESS_2_HOST_READ_BIT,
4265     eHostWrite                   = VK_ACCESS_2_HOST_WRITE_BIT,
4266     eMemoryRead                  = VK_ACCESS_2_MEMORY_READ_BIT,
4267     eMemoryWrite                 = VK_ACCESS_2_MEMORY_WRITE_BIT,
4268     eShaderSampledRead           = VK_ACCESS_2_SHADER_SAMPLED_READ_BIT,
4269     eShaderStorageRead           = VK_ACCESS_2_SHADER_STORAGE_READ_BIT,
4270     eShaderStorageWrite          = VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT,
4271 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4272     eVideoDecodeReadKHR  = VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR,
4273     eVideoDecodeWriteKHR = VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,
4274     eVideoEncodeReadKHR  = VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,
4275     eVideoEncodeWriteKHR = VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,
4276 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4277     eTransformFeedbackWriteEXT            = VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
4278     eTransformFeedbackCounterReadEXT      = VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,
4279     eTransformFeedbackCounterWriteEXT     = VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
4280     eConditionalRenderingReadEXT          = VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT,
4281     eCommandPreprocessReadNV              = VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV,
4282     eCommandPreprocessWriteNV             = VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV,
4283     eFragmentShadingRateAttachmentReadKHR = VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
4284     eAccelerationStructureReadKHR         = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,
4285     eAccelerationStructureWriteKHR        = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
4286     eFragmentDensityMapReadEXT            = VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,
4287     eColorAttachmentReadNoncoherentEXT    = VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
4288     eInvocationMaskReadHUAWEI             = VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI,
4289     eAccelerationStructureReadNV          = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV,
4290     eAccelerationStructureWriteNV         = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
4291     eShadingRateImageReadNV               = VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV
4292   };
4293   using AccessFlagBits2KHR = AccessFlagBits2;
4294 
to_string(AccessFlagBits2 value)4295   VULKAN_HPP_INLINE std::string to_string( AccessFlagBits2 value )
4296   {
4297     switch ( value )
4298     {
4299       case AccessFlagBits2::eNone: return "None";
4300       case AccessFlagBits2::eIndirectCommandRead: return "IndirectCommandRead";
4301       case AccessFlagBits2::eIndexRead: return "IndexRead";
4302       case AccessFlagBits2::eVertexAttributeRead: return "VertexAttributeRead";
4303       case AccessFlagBits2::eUniformRead: return "UniformRead";
4304       case AccessFlagBits2::eInputAttachmentRead: return "InputAttachmentRead";
4305       case AccessFlagBits2::eShaderRead: return "ShaderRead";
4306       case AccessFlagBits2::eShaderWrite: return "ShaderWrite";
4307       case AccessFlagBits2::eColorAttachmentRead: return "ColorAttachmentRead";
4308       case AccessFlagBits2::eColorAttachmentWrite: return "ColorAttachmentWrite";
4309       case AccessFlagBits2::eDepthStencilAttachmentRead: return "DepthStencilAttachmentRead";
4310       case AccessFlagBits2::eDepthStencilAttachmentWrite: return "DepthStencilAttachmentWrite";
4311       case AccessFlagBits2::eTransferRead: return "TransferRead";
4312       case AccessFlagBits2::eTransferWrite: return "TransferWrite";
4313       case AccessFlagBits2::eHostRead: return "HostRead";
4314       case AccessFlagBits2::eHostWrite: return "HostWrite";
4315       case AccessFlagBits2::eMemoryRead: return "MemoryRead";
4316       case AccessFlagBits2::eMemoryWrite: return "MemoryWrite";
4317       case AccessFlagBits2::eShaderSampledRead: return "ShaderSampledRead";
4318       case AccessFlagBits2::eShaderStorageRead: return "ShaderStorageRead";
4319       case AccessFlagBits2::eShaderStorageWrite: return "ShaderStorageWrite";
4320 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4321       case AccessFlagBits2::eVideoDecodeReadKHR: return "VideoDecodeReadKHR";
4322       case AccessFlagBits2::eVideoDecodeWriteKHR: return "VideoDecodeWriteKHR";
4323       case AccessFlagBits2::eVideoEncodeReadKHR: return "VideoEncodeReadKHR";
4324       case AccessFlagBits2::eVideoEncodeWriteKHR: return "VideoEncodeWriteKHR";
4325 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4326       case AccessFlagBits2::eTransformFeedbackWriteEXT: return "TransformFeedbackWriteEXT";
4327       case AccessFlagBits2::eTransformFeedbackCounterReadEXT: return "TransformFeedbackCounterReadEXT";
4328       case AccessFlagBits2::eTransformFeedbackCounterWriteEXT: return "TransformFeedbackCounterWriteEXT";
4329       case AccessFlagBits2::eConditionalRenderingReadEXT: return "ConditionalRenderingReadEXT";
4330       case AccessFlagBits2::eCommandPreprocessReadNV: return "CommandPreprocessReadNV";
4331       case AccessFlagBits2::eCommandPreprocessWriteNV: return "CommandPreprocessWriteNV";
4332       case AccessFlagBits2::eFragmentShadingRateAttachmentReadKHR: return "FragmentShadingRateAttachmentReadKHR";
4333       case AccessFlagBits2::eAccelerationStructureReadKHR: return "AccelerationStructureReadKHR";
4334       case AccessFlagBits2::eAccelerationStructureWriteKHR: return "AccelerationStructureWriteKHR";
4335       case AccessFlagBits2::eFragmentDensityMapReadEXT: return "FragmentDensityMapReadEXT";
4336       case AccessFlagBits2::eColorAttachmentReadNoncoherentEXT: return "ColorAttachmentReadNoncoherentEXT";
4337       case AccessFlagBits2::eInvocationMaskReadHUAWEI: return "InvocationMaskReadHUAWEI";
4338       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4339     }
4340   }
4341 
4342   enum class SubmitFlagBits : VkSubmitFlags
4343   {
4344     eProtected = VK_SUBMIT_PROTECTED_BIT
4345   };
4346   using SubmitFlagBitsKHR = SubmitFlagBits;
4347 
to_string(SubmitFlagBits value)4348   VULKAN_HPP_INLINE std::string to_string( SubmitFlagBits value )
4349   {
4350     switch ( value )
4351     {
4352       case SubmitFlagBits::eProtected: return "Protected";
4353       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4354     }
4355   }
4356 
4357   enum class RenderingFlagBits : VkRenderingFlags
4358   {
4359     eContentsSecondaryCommandBuffers = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
4360     eSuspending                      = VK_RENDERING_SUSPENDING_BIT,
4361     eResuming                        = VK_RENDERING_RESUMING_BIT
4362   };
4363   using RenderingFlagBitsKHR = RenderingFlagBits;
4364 
to_string(RenderingFlagBits value)4365   VULKAN_HPP_INLINE std::string to_string( RenderingFlagBits value )
4366   {
4367     switch ( value )
4368     {
4369       case RenderingFlagBits::eContentsSecondaryCommandBuffers: return "ContentsSecondaryCommandBuffers";
4370       case RenderingFlagBits::eSuspending: return "Suspending";
4371       case RenderingFlagBits::eResuming: return "Resuming";
4372       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4373     }
4374   }
4375 
4376   enum class FormatFeatureFlagBits2 : VkFormatFeatureFlags2
4377   {
4378     eSampledImage                            = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT,
4379     eStorageImage                            = VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT,
4380     eStorageImageAtomic                      = VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT,
4381     eUniformTexelBuffer                      = VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT,
4382     eStorageTexelBuffer                      = VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT,
4383     eStorageTexelBufferAtomic                = VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,
4384     eVertexBuffer                            = VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT,
4385     eColorAttachment                         = VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT,
4386     eColorAttachmentBlend                    = VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT,
4387     eDepthStencilAttachment                  = VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT,
4388     eBlitSrc                                 = VK_FORMAT_FEATURE_2_BLIT_SRC_BIT,
4389     eBlitDst                                 = VK_FORMAT_FEATURE_2_BLIT_DST_BIT,
4390     eSampledImageFilterLinear                = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT,
4391     eSampledImageFilterCubic                 = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT,
4392     eTransferSrc                             = VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT,
4393     eTransferDst                             = VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT,
4394     eSampledImageFilterMinmax                = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
4395     eMidpointChromaSamples                   = VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT,
4396     eSampledImageYcbcrConversionLinearFilter = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
4397     eSampledImageYcbcrConversionSeparateReconstructionFilter =
4398       VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
4399     eSampledImageYcbcrConversionChromaReconstructionExplicit =
4400       VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
4401     eSampledImageYcbcrConversionChromaReconstructionExplicitForceable =
4402       VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
4403     eDisjoint                    = VK_FORMAT_FEATURE_2_DISJOINT_BIT,
4404     eCositedChromaSamples        = VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT,
4405     eStorageReadWithoutFormat    = VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT,
4406     eStorageWriteWithoutFormat   = VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT,
4407     eSampledImageDepthComparison = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT,
4408 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4409     eVideoDecodeOutputKHR = VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR,
4410     eVideoDecodeDpbKHR    = VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR,
4411 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4412     eAccelerationStructureVertexBufferKHR = VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,
4413     eFragmentDensityMapEXT                = VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT,
4414     eFragmentShadingRateAttachmentKHR     = VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
4415 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4416     eVideoEncodeInputKHR = VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR,
4417     eVideoEncodeDpbKHR   = VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR,
4418 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4419     eLinearColorAttachmentNV    = VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV,
4420     eSampledImageFilterCubicEXT = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
4421   };
4422   using FormatFeatureFlagBits2KHR = FormatFeatureFlagBits2;
4423 
to_string(FormatFeatureFlagBits2 value)4424   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlagBits2 value )
4425   {
4426     switch ( value )
4427     {
4428       case FormatFeatureFlagBits2::eSampledImage: return "SampledImage";
4429       case FormatFeatureFlagBits2::eStorageImage: return "StorageImage";
4430       case FormatFeatureFlagBits2::eStorageImageAtomic: return "StorageImageAtomic";
4431       case FormatFeatureFlagBits2::eUniformTexelBuffer: return "UniformTexelBuffer";
4432       case FormatFeatureFlagBits2::eStorageTexelBuffer: return "StorageTexelBuffer";
4433       case FormatFeatureFlagBits2::eStorageTexelBufferAtomic: return "StorageTexelBufferAtomic";
4434       case FormatFeatureFlagBits2::eVertexBuffer: return "VertexBuffer";
4435       case FormatFeatureFlagBits2::eColorAttachment: return "ColorAttachment";
4436       case FormatFeatureFlagBits2::eColorAttachmentBlend: return "ColorAttachmentBlend";
4437       case FormatFeatureFlagBits2::eDepthStencilAttachment: return "DepthStencilAttachment";
4438       case FormatFeatureFlagBits2::eBlitSrc: return "BlitSrc";
4439       case FormatFeatureFlagBits2::eBlitDst: return "BlitDst";
4440       case FormatFeatureFlagBits2::eSampledImageFilterLinear: return "SampledImageFilterLinear";
4441       case FormatFeatureFlagBits2::eSampledImageFilterCubic: return "SampledImageFilterCubic";
4442       case FormatFeatureFlagBits2::eTransferSrc: return "TransferSrc";
4443       case FormatFeatureFlagBits2::eTransferDst: return "TransferDst";
4444       case FormatFeatureFlagBits2::eSampledImageFilterMinmax: return "SampledImageFilterMinmax";
4445       case FormatFeatureFlagBits2::eMidpointChromaSamples: return "MidpointChromaSamples";
4446       case FormatFeatureFlagBits2::eSampledImageYcbcrConversionLinearFilter:
4447         return "SampledImageYcbcrConversionLinearFilter";
4448       case FormatFeatureFlagBits2::eSampledImageYcbcrConversionSeparateReconstructionFilter:
4449         return "SampledImageYcbcrConversionSeparateReconstructionFilter";
4450       case FormatFeatureFlagBits2::eSampledImageYcbcrConversionChromaReconstructionExplicit:
4451         return "SampledImageYcbcrConversionChromaReconstructionExplicit";
4452       case FormatFeatureFlagBits2::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable:
4453         return "SampledImageYcbcrConversionChromaReconstructionExplicitForceable";
4454       case FormatFeatureFlagBits2::eDisjoint: return "Disjoint";
4455       case FormatFeatureFlagBits2::eCositedChromaSamples: return "CositedChromaSamples";
4456       case FormatFeatureFlagBits2::eStorageReadWithoutFormat: return "StorageReadWithoutFormat";
4457       case FormatFeatureFlagBits2::eStorageWriteWithoutFormat: return "StorageWriteWithoutFormat";
4458       case FormatFeatureFlagBits2::eSampledImageDepthComparison: return "SampledImageDepthComparison";
4459 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4460       case FormatFeatureFlagBits2::eVideoDecodeOutputKHR: return "VideoDecodeOutputKHR";
4461       case FormatFeatureFlagBits2::eVideoDecodeDpbKHR: return "VideoDecodeDpbKHR";
4462 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4463       case FormatFeatureFlagBits2::eAccelerationStructureVertexBufferKHR: return "AccelerationStructureVertexBufferKHR";
4464       case FormatFeatureFlagBits2::eFragmentDensityMapEXT: return "FragmentDensityMapEXT";
4465       case FormatFeatureFlagBits2::eFragmentShadingRateAttachmentKHR: return "FragmentShadingRateAttachmentKHR";
4466 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4467       case FormatFeatureFlagBits2::eVideoEncodeInputKHR: return "VideoEncodeInputKHR";
4468       case FormatFeatureFlagBits2::eVideoEncodeDpbKHR: return "VideoEncodeDpbKHR";
4469 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4470       case FormatFeatureFlagBits2::eLinearColorAttachmentNV: return "LinearColorAttachmentNV";
4471       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4472     }
4473   }
4474 
4475   //=== VK_KHR_surface ===
4476 
4477   enum class SurfaceTransformFlagBitsKHR : VkSurfaceTransformFlagsKHR
4478   {
4479     eIdentity                  = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,
4480     eRotate90                  = VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,
4481     eRotate180                 = VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,
4482     eRotate270                 = VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,
4483     eHorizontalMirror          = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,
4484     eHorizontalMirrorRotate90  = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,
4485     eHorizontalMirrorRotate180 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR,
4486     eHorizontalMirrorRotate270 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR,
4487     eInherit                   = VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR
4488   };
4489 
4490   using SurfaceTransformFlagsKHR = Flags<SurfaceTransformFlagBitsKHR>;
4491 
4492   template <>
4493   struct FlagTraits<SurfaceTransformFlagBitsKHR>
4494   {
4495     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                     isBitmask = true;
4496     static VULKAN_HPP_CONST_OR_CONSTEXPR SurfaceTransformFlagsKHR allFlags =
4497       SurfaceTransformFlagBitsKHR::eIdentity | SurfaceTransformFlagBitsKHR::eRotate90 | SurfaceTransformFlagBitsKHR::eRotate180 |
4498       SurfaceTransformFlagBitsKHR::eRotate270 | SurfaceTransformFlagBitsKHR::eHorizontalMirror | SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 |
4499       SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 | SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 | SurfaceTransformFlagBitsKHR::eInherit;
4500   };
4501 
4502   enum class PresentModeKHR
4503   {
4504     eImmediate               = VK_PRESENT_MODE_IMMEDIATE_KHR,
4505     eMailbox                 = VK_PRESENT_MODE_MAILBOX_KHR,
4506     eFifo                    = VK_PRESENT_MODE_FIFO_KHR,
4507     eFifoRelaxed             = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
4508     eSharedDemandRefresh     = VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR,
4509     eSharedContinuousRefresh = VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR
4510   };
4511 
4512   enum class ColorSpaceKHR
4513   {
4514     eSrgbNonlinear             = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
4515     eDisplayP3NonlinearEXT     = VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT,
4516     eExtendedSrgbLinearEXT     = VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT,
4517     eDisplayP3LinearEXT        = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
4518     eDciP3NonlinearEXT         = VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT,
4519     eBt709LinearEXT            = VK_COLOR_SPACE_BT709_LINEAR_EXT,
4520     eBt709NonlinearEXT         = VK_COLOR_SPACE_BT709_NONLINEAR_EXT,
4521     eBt2020LinearEXT           = VK_COLOR_SPACE_BT2020_LINEAR_EXT,
4522     eHdr10St2084EXT            = VK_COLOR_SPACE_HDR10_ST2084_EXT,
4523     eDolbyvisionEXT            = VK_COLOR_SPACE_DOLBYVISION_EXT,
4524     eHdr10HlgEXT               = VK_COLOR_SPACE_HDR10_HLG_EXT,
4525     eAdobergbLinearEXT         = VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT,
4526     eAdobergbNonlinearEXT      = VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT,
4527     ePassThroughEXT            = VK_COLOR_SPACE_PASS_THROUGH_EXT,
4528     eExtendedSrgbNonlinearEXT  = VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT,
4529     eDisplayNativeAMD          = VK_COLOR_SPACE_DISPLAY_NATIVE_AMD,
4530     eVkColorspaceSrgbNonlinear = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
4531     eDciP3LinearEXT            = VK_COLOR_SPACE_DCI_P3_LINEAR_EXT
4532   };
4533 
4534   enum class CompositeAlphaFlagBitsKHR : VkCompositeAlphaFlagsKHR
4535   {
4536     eOpaque         = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,
4537     ePreMultiplied  = VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,
4538     ePostMultiplied = VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,
4539     eInherit        = VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR
4540   };
4541 
4542   using CompositeAlphaFlagsKHR = Flags<CompositeAlphaFlagBitsKHR>;
4543 
4544   template <>
4545   struct FlagTraits<CompositeAlphaFlagBitsKHR>
4546   {
4547     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
4548     static VULKAN_HPP_CONST_OR_CONSTEXPR CompositeAlphaFlagsKHR allFlags  = CompositeAlphaFlagBitsKHR::eOpaque | CompositeAlphaFlagBitsKHR::ePreMultiplied |
4549                                                                            CompositeAlphaFlagBitsKHR::ePostMultiplied | CompositeAlphaFlagBitsKHR::eInherit;
4550   };
4551 
4552   //=== VK_KHR_swapchain ===
4553 
4554   enum class SwapchainCreateFlagBitsKHR : VkSwapchainCreateFlagsKHR
4555   {
4556     eSplitInstanceBindRegions    = VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
4557     eProtected                   = VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,
4558     eMutableFormat               = VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR,
4559     eDeferredMemoryAllocationEXT = VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT
4560   };
4561 
4562   using SwapchainCreateFlagsKHR = Flags<SwapchainCreateFlagBitsKHR>;
4563 
4564   template <>
4565   struct FlagTraits<SwapchainCreateFlagBitsKHR>
4566   {
4567     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                    isBitmask = true;
4568     static VULKAN_HPP_CONST_OR_CONSTEXPR SwapchainCreateFlagsKHR allFlags =
4569       SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions | SwapchainCreateFlagBitsKHR::eProtected | SwapchainCreateFlagBitsKHR::eMutableFormat |
4570       SwapchainCreateFlagBitsKHR::eDeferredMemoryAllocationEXT;
4571   };
4572 
4573   enum class DeviceGroupPresentModeFlagBitsKHR : VkDeviceGroupPresentModeFlagsKHR
4574   {
4575     eLocal            = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,
4576     eRemote           = VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,
4577     eSum              = VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,
4578     eLocalMultiDevice = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR
4579   };
4580 
4581   using DeviceGroupPresentModeFlagsKHR = Flags<DeviceGroupPresentModeFlagBitsKHR>;
4582 
4583   template <>
4584   struct FlagTraits<DeviceGroupPresentModeFlagBitsKHR>
4585   {
4586     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                           isBitmask = true;
4587     static VULKAN_HPP_CONST_OR_CONSTEXPR DeviceGroupPresentModeFlagsKHR allFlags =
4588       DeviceGroupPresentModeFlagBitsKHR::eLocal | DeviceGroupPresentModeFlagBitsKHR::eRemote | DeviceGroupPresentModeFlagBitsKHR::eSum |
4589       DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice;
4590   };
4591 
4592   //=== VK_KHR_display ===
4593 
4594   enum class DisplayPlaneAlphaFlagBitsKHR : VkDisplayPlaneAlphaFlagsKHR
4595   {
4596     eOpaque                = VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,
4597     eGlobal                = VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,
4598     ePerPixel              = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,
4599     ePerPixelPremultiplied = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR
4600   };
4601 
4602   using DisplayPlaneAlphaFlagsKHR = Flags<DisplayPlaneAlphaFlagBitsKHR>;
4603 
4604   template <>
4605   struct FlagTraits<DisplayPlaneAlphaFlagBitsKHR>
4606   {
4607     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                      isBitmask = true;
4608     static VULKAN_HPP_CONST_OR_CONSTEXPR DisplayPlaneAlphaFlagsKHR allFlags  = DisplayPlaneAlphaFlagBitsKHR::eOpaque | DisplayPlaneAlphaFlagBitsKHR::eGlobal |
4609                                                                               DisplayPlaneAlphaFlagBitsKHR::ePerPixel |
4610                                                                               DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied;
4611   };
4612 
4613   enum class DisplayModeCreateFlagBitsKHR : VkDisplayModeCreateFlagsKHR
4614   {
4615   };
4616 
4617   using DisplayModeCreateFlagsKHR = Flags<DisplayModeCreateFlagBitsKHR>;
4618 
4619   template <>
4620   struct FlagTraits<DisplayModeCreateFlagBitsKHR>
4621   {
4622     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                      isBitmask = true;
4623     static VULKAN_HPP_CONST_OR_CONSTEXPR DisplayModeCreateFlagsKHR allFlags  = {};
4624   };
4625 
4626   enum class DisplaySurfaceCreateFlagBitsKHR : VkDisplaySurfaceCreateFlagsKHR
4627   {
4628   };
4629 
4630   using DisplaySurfaceCreateFlagsKHR = Flags<DisplaySurfaceCreateFlagBitsKHR>;
4631 
4632   template <>
4633   struct FlagTraits<DisplaySurfaceCreateFlagBitsKHR>
4634   {
4635     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                         isBitmask = true;
4636     static VULKAN_HPP_CONST_OR_CONSTEXPR DisplaySurfaceCreateFlagsKHR allFlags  = {};
4637   };
4638 
4639 #if defined( VK_USE_PLATFORM_XLIB_KHR )
4640   //=== VK_KHR_xlib_surface ===
4641 
4642   enum class XlibSurfaceCreateFlagBitsKHR : VkXlibSurfaceCreateFlagsKHR
4643   {
4644   };
4645 
4646   using XlibSurfaceCreateFlagsKHR = Flags<XlibSurfaceCreateFlagBitsKHR>;
4647 
4648   template <>
4649   struct FlagTraits<XlibSurfaceCreateFlagBitsKHR>
4650   {
4651     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                      isBitmask = true;
4652     static VULKAN_HPP_CONST_OR_CONSTEXPR XlibSurfaceCreateFlagsKHR allFlags  = {};
4653   };
4654 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
4655 
4656 #if defined( VK_USE_PLATFORM_XCB_KHR )
4657   //=== VK_KHR_xcb_surface ===
4658 
4659   enum class XcbSurfaceCreateFlagBitsKHR : VkXcbSurfaceCreateFlagsKHR
4660   {
4661   };
4662 
4663   using XcbSurfaceCreateFlagsKHR = Flags<XcbSurfaceCreateFlagBitsKHR>;
4664 
4665   template <>
4666   struct FlagTraits<XcbSurfaceCreateFlagBitsKHR>
4667   {
4668     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                     isBitmask = true;
4669     static VULKAN_HPP_CONST_OR_CONSTEXPR XcbSurfaceCreateFlagsKHR allFlags  = {};
4670   };
4671 #endif /*VK_USE_PLATFORM_XCB_KHR*/
4672 
4673 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
4674   //=== VK_KHR_wayland_surface ===
4675 
4676   enum class WaylandSurfaceCreateFlagBitsKHR : VkWaylandSurfaceCreateFlagsKHR
4677   {
4678   };
4679 
4680   using WaylandSurfaceCreateFlagsKHR = Flags<WaylandSurfaceCreateFlagBitsKHR>;
4681 
4682   template <>
4683   struct FlagTraits<WaylandSurfaceCreateFlagBitsKHR>
4684   {
4685     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                         isBitmask = true;
4686     static VULKAN_HPP_CONST_OR_CONSTEXPR WaylandSurfaceCreateFlagsKHR allFlags  = {};
4687   };
4688 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
4689 
4690 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
4691   //=== VK_KHR_android_surface ===
4692 
4693   enum class AndroidSurfaceCreateFlagBitsKHR : VkAndroidSurfaceCreateFlagsKHR
4694   {
4695   };
4696 
4697   using AndroidSurfaceCreateFlagsKHR = Flags<AndroidSurfaceCreateFlagBitsKHR>;
4698 
4699   template <>
4700   struct FlagTraits<AndroidSurfaceCreateFlagBitsKHR>
4701   {
4702     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                         isBitmask = true;
4703     static VULKAN_HPP_CONST_OR_CONSTEXPR AndroidSurfaceCreateFlagsKHR allFlags  = {};
4704   };
4705 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
4706 
4707 #if defined( VK_USE_PLATFORM_WIN32_KHR )
4708   //=== VK_KHR_win32_surface ===
4709 
4710   enum class Win32SurfaceCreateFlagBitsKHR : VkWin32SurfaceCreateFlagsKHR
4711   {
4712   };
4713 
4714   using Win32SurfaceCreateFlagsKHR = Flags<Win32SurfaceCreateFlagBitsKHR>;
4715 
4716   template <>
4717   struct FlagTraits<Win32SurfaceCreateFlagBitsKHR>
4718   {
4719     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
4720     static VULKAN_HPP_CONST_OR_CONSTEXPR Win32SurfaceCreateFlagsKHR allFlags  = {};
4721   };
4722 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
4723 
4724   //=== VK_EXT_debug_report ===
4725 
4726   enum class DebugReportFlagBitsEXT : VkDebugReportFlagsEXT
4727   {
4728     eInformation        = VK_DEBUG_REPORT_INFORMATION_BIT_EXT,
4729     eWarning            = VK_DEBUG_REPORT_WARNING_BIT_EXT,
4730     ePerformanceWarning = VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,
4731     eError              = VK_DEBUG_REPORT_ERROR_BIT_EXT,
4732     eDebug              = VK_DEBUG_REPORT_DEBUG_BIT_EXT
4733   };
4734 
4735   using DebugReportFlagsEXT = Flags<DebugReportFlagBitsEXT>;
4736 
4737   template <>
4738   struct FlagTraits<DebugReportFlagBitsEXT>
4739   {
4740     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                isBitmask = true;
4741     static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportFlagsEXT allFlags  = DebugReportFlagBitsEXT::eInformation | DebugReportFlagBitsEXT::eWarning |
4742                                                                         DebugReportFlagBitsEXT::ePerformanceWarning | DebugReportFlagBitsEXT::eError |
4743                                                                         DebugReportFlagBitsEXT::eDebug;
4744   };
4745 
4746   enum class DebugReportObjectTypeEXT
4747   {
4748     eUnknown                  = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
4749     eInstance                 = VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
4750     ePhysicalDevice           = VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
4751     eDevice                   = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
4752     eQueue                    = VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT,
4753     eSemaphore                = VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT,
4754     eCommandBuffer            = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
4755     eFence                    = VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT,
4756     eDeviceMemory             = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT,
4757     eBuffer                   = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT,
4758     eImage                    = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,
4759     eEvent                    = VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT,
4760     eQueryPool                = VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT,
4761     eBufferView               = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT,
4762     eImageView                = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT,
4763     eShaderModule             = VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT,
4764     ePipelineCache            = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT,
4765     ePipelineLayout           = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT,
4766     eRenderPass               = VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT,
4767     ePipeline                 = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT,
4768     eDescriptorSetLayout      = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT,
4769     eSampler                  = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT,
4770     eDescriptorPool           = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT,
4771     eDescriptorSet            = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT,
4772     eFramebuffer              = VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT,
4773     eCommandPool              = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT,
4774     eSurfaceKHR               = VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT,
4775     eSwapchainKHR             = VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT,
4776     eDebugReportCallbackEXT   = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
4777     eDisplayKHR               = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT,
4778     eDisplayModeKHR           = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT,
4779     eValidationCacheEXT       = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
4780     eSamplerYcbcrConversion   = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
4781     eDescriptorUpdateTemplate = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
4782     eCuModuleNVX              = VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT,
4783     eCuFunctionNVX            = VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT,
4784     eAccelerationStructureKHR = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT,
4785     eAccelerationStructureNV  = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT,
4786 #if defined( VK_USE_PLATFORM_FUCHSIA )
4787     eBufferCollectionFUCHSIA = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT,
4788 #endif /*VK_USE_PLATFORM_FUCHSIA*/
4789     eDebugReport                 = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT,
4790     eDescriptorUpdateTemplateKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT,
4791     eSamplerYcbcrConversionKHR   = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT,
4792     eValidationCache             = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT
4793   };
4794 
4795   //=== VK_AMD_rasterization_order ===
4796 
4797   enum class RasterizationOrderAMD
4798   {
4799     eStrict  = VK_RASTERIZATION_ORDER_STRICT_AMD,
4800     eRelaxed = VK_RASTERIZATION_ORDER_RELAXED_AMD
4801   };
4802 
4803 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4804   //=== VK_KHR_video_queue ===
4805 
4806   enum class VideoCodecOperationFlagBitsKHR : VkVideoCodecOperationFlagsKHR
4807   {
4808     eNone          = VK_VIDEO_CODEC_OPERATION_NONE_KHR,
4809     eEncodeH264EXT = VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT,
4810     eEncodeH265EXT = VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT,
4811     eDecodeH264EXT = VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT,
4812     eDecodeH265EXT = VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT
4813   };
4814 
4815   using VideoCodecOperationFlagsKHR = Flags<VideoCodecOperationFlagBitsKHR>;
4816 
4817   template <>
4818   struct FlagTraits<VideoCodecOperationFlagBitsKHR>
4819   {
4820     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                        isBitmask = true;
4821     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoCodecOperationFlagsKHR allFlags =
4822       VideoCodecOperationFlagBitsKHR::eNone | VideoCodecOperationFlagBitsKHR::eEncodeH264EXT | VideoCodecOperationFlagBitsKHR::eEncodeH265EXT |
4823       VideoCodecOperationFlagBitsKHR::eDecodeH264EXT | VideoCodecOperationFlagBitsKHR::eDecodeH265EXT;
4824   };
4825 
4826   enum class VideoChromaSubsamplingFlagBitsKHR : VkVideoChromaSubsamplingFlagsKHR
4827   {
4828     eInvalid    = VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR,
4829     eMonochrome = VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR,
4830     e420        = VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,
4831     e422        = VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR,
4832     e444        = VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR
4833   };
4834 
4835   using VideoChromaSubsamplingFlagsKHR = Flags<VideoChromaSubsamplingFlagBitsKHR>;
4836 
4837   template <>
4838   struct FlagTraits<VideoChromaSubsamplingFlagBitsKHR>
4839   {
4840     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                           isBitmask = true;
4841     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoChromaSubsamplingFlagsKHR allFlags =
4842       VideoChromaSubsamplingFlagBitsKHR::eInvalid | VideoChromaSubsamplingFlagBitsKHR::eMonochrome | VideoChromaSubsamplingFlagBitsKHR::e420 |
4843       VideoChromaSubsamplingFlagBitsKHR::e422 | VideoChromaSubsamplingFlagBitsKHR::e444;
4844   };
4845 
4846   enum class VideoComponentBitDepthFlagBitsKHR : VkVideoComponentBitDepthFlagsKHR
4847   {
4848     eInvalid = VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR,
4849     e8       = VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR,
4850     e10      = VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR,
4851     e12      = VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR
4852   };
4853 
4854   using VideoComponentBitDepthFlagsKHR = Flags<VideoComponentBitDepthFlagBitsKHR>;
4855 
4856   template <>
4857   struct FlagTraits<VideoComponentBitDepthFlagBitsKHR>
4858   {
4859     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                           isBitmask = true;
4860     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoComponentBitDepthFlagsKHR allFlags =
4861       VideoComponentBitDepthFlagBitsKHR::eInvalid | VideoComponentBitDepthFlagBitsKHR::e8 | VideoComponentBitDepthFlagBitsKHR::e10 |
4862       VideoComponentBitDepthFlagBitsKHR::e12;
4863   };
4864 
4865   enum class VideoCapabilityFlagBitsKHR : VkVideoCapabilityFlagsKHR
4866   {
4867     eProtectedContent        = VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR,
4868     eSeparateReferenceImages = VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR
4869   };
4870 
4871   using VideoCapabilityFlagsKHR = Flags<VideoCapabilityFlagBitsKHR>;
4872 
4873   template <>
4874   struct FlagTraits<VideoCapabilityFlagBitsKHR>
4875   {
4876     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                    isBitmask = true;
4877     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoCapabilityFlagsKHR allFlags =
4878       VideoCapabilityFlagBitsKHR::eProtectedContent | VideoCapabilityFlagBitsKHR::eSeparateReferenceImages;
4879   };
4880 
4881   enum class VideoSessionCreateFlagBitsKHR : VkVideoSessionCreateFlagsKHR
4882   {
4883     eProtectedContent = VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR
4884   };
4885 
4886   using VideoSessionCreateFlagsKHR = Flags<VideoSessionCreateFlagBitsKHR>;
4887 
4888   template <>
4889   struct FlagTraits<VideoSessionCreateFlagBitsKHR>
4890   {
4891     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
4892     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoSessionCreateFlagsKHR allFlags  = VideoSessionCreateFlagBitsKHR::eProtectedContent;
4893   };
4894 
4895   enum class VideoCodingControlFlagBitsKHR : VkVideoCodingControlFlagsKHR
4896   {
4897     eReset                  = VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR,
4898     eEncodeRateControl      = VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR,
4899     eEncodeRateControlLayer = VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR
4900   };
4901 
4902   using VideoCodingControlFlagsKHR = Flags<VideoCodingControlFlagBitsKHR>;
4903 
4904   template <>
4905   struct FlagTraits<VideoCodingControlFlagBitsKHR>
4906   {
4907     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
4908     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoCodingControlFlagsKHR allFlags =
4909       VideoCodingControlFlagBitsKHR::eReset | VideoCodingControlFlagBitsKHR::eEncodeRateControl | VideoCodingControlFlagBitsKHR::eEncodeRateControlLayer;
4910   };
4911 
4912   enum class QueryResultStatusKHR
4913   {
4914     eError    = VK_QUERY_RESULT_STATUS_ERROR_KHR,
4915     eNotReady = VK_QUERY_RESULT_STATUS_NOT_READY_KHR,
4916     eComplete = VK_QUERY_RESULT_STATUS_COMPLETE_KHR
4917   };
4918 
4919   enum class VideoSessionParametersCreateFlagBitsKHR : VkVideoSessionParametersCreateFlagsKHR
4920   {
4921   };
4922 
4923   using VideoSessionParametersCreateFlagsKHR = Flags<VideoSessionParametersCreateFlagBitsKHR>;
4924 
4925   template <>
4926   struct FlagTraits<VideoSessionParametersCreateFlagBitsKHR>
4927   {
4928     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                 isBitmask = true;
4929     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoSessionParametersCreateFlagsKHR allFlags  = {};
4930   };
4931 
4932   enum class VideoBeginCodingFlagBitsKHR : VkVideoBeginCodingFlagsKHR
4933   {
4934   };
4935 
4936   using VideoBeginCodingFlagsKHR = Flags<VideoBeginCodingFlagBitsKHR>;
4937 
4938   template <>
4939   struct FlagTraits<VideoBeginCodingFlagBitsKHR>
4940   {
4941     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                     isBitmask = true;
4942     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoBeginCodingFlagsKHR allFlags  = {};
4943   };
4944 
4945   enum class VideoEndCodingFlagBitsKHR : VkVideoEndCodingFlagsKHR
4946   {
4947   };
4948 
4949   using VideoEndCodingFlagsKHR = Flags<VideoEndCodingFlagBitsKHR>;
4950 
4951   template <>
4952   struct FlagTraits<VideoEndCodingFlagBitsKHR>
4953   {
4954     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
4955     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEndCodingFlagsKHR allFlags  = {};
4956   };
4957 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
4958 
4959 #if defined( VK_ENABLE_BETA_EXTENSIONS )
4960   //=== VK_KHR_video_decode_queue ===
4961 
4962   enum class VideoDecodeCapabilityFlagBitsKHR : VkVideoDecodeCapabilityFlagsKHR
4963   {
4964     eDpbAndOutputCoincide = VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR,
4965     eDpbAndOutputDistinct = VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR
4966   };
4967 
4968   using VideoDecodeCapabilityFlagsKHR = Flags<VideoDecodeCapabilityFlagBitsKHR>;
4969 
4970   template <>
4971   struct FlagTraits<VideoDecodeCapabilityFlagBitsKHR>
4972   {
4973     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                          isBitmask = true;
4974     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoDecodeCapabilityFlagsKHR allFlags =
4975       VideoDecodeCapabilityFlagBitsKHR::eDpbAndOutputCoincide | VideoDecodeCapabilityFlagBitsKHR::eDpbAndOutputDistinct;
4976   };
4977 
4978   enum class VideoDecodeUsageFlagBitsKHR : VkVideoDecodeUsageFlagsKHR
4979   {
4980     eDefault     = VK_VIDEO_DECODE_USAGE_DEFAULT_KHR,
4981     eTranscoding = VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR,
4982     eOffline     = VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR,
4983     eStreaming   = VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR
4984   };
4985 
4986   using VideoDecodeUsageFlagsKHR = Flags<VideoDecodeUsageFlagBitsKHR>;
4987 
4988   template <>
4989   struct FlagTraits<VideoDecodeUsageFlagBitsKHR>
4990   {
4991     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                     isBitmask = true;
4992     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoDecodeUsageFlagsKHR allFlags = VideoDecodeUsageFlagBitsKHR::eDefault | VideoDecodeUsageFlagBitsKHR::eTranscoding |
4993                                                                              VideoDecodeUsageFlagBitsKHR::eOffline | VideoDecodeUsageFlagBitsKHR::eStreaming;
4994   };
4995 
4996   enum class VideoDecodeFlagBitsKHR : VkVideoDecodeFlagsKHR
4997   {
4998   };
4999 
5000   using VideoDecodeFlagsKHR = Flags<VideoDecodeFlagBitsKHR>;
5001 
5002   template <>
5003   struct FlagTraits<VideoDecodeFlagBitsKHR>
5004   {
5005     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                isBitmask = true;
5006     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoDecodeFlagsKHR allFlags  = {};
5007   };
5008 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
5009 
5010   //=== VK_EXT_transform_feedback ===
5011 
5012   enum class PipelineRasterizationStateStreamCreateFlagBitsEXT : VkPipelineRasterizationStateStreamCreateFlagsEXT
5013   {
5014   };
5015 
5016   using PipelineRasterizationStateStreamCreateFlagsEXT = Flags<PipelineRasterizationStateStreamCreateFlagBitsEXT>;
5017 
5018   template <>
5019   struct FlagTraits<PipelineRasterizationStateStreamCreateFlagBitsEXT>
5020   {
5021     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                           isBitmask = true;
5022     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineRasterizationStateStreamCreateFlagsEXT allFlags  = {};
5023   };
5024 
5025 #if defined( VK_ENABLE_BETA_EXTENSIONS )
5026   //=== VK_EXT_video_encode_h264 ===
5027 
5028   enum class VideoEncodeH264CapabilityFlagBitsEXT : VkVideoEncodeH264CapabilityFlagsEXT
5029   {
5030     eDirect8X8InferenceEnabled   = VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT,
5031     eDirect8X8InferenceDisabled  = VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT,
5032     eSeparateColourPlane         = VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT,
5033     eQpprimeYZeroTransformBypass = VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT,
5034     eScalingLists                = VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT,
5035     eHrdCompliance               = VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT,
5036     eChromaQpOffset              = VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT,
5037     eSecondChromaQpOffset        = VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT,
5038     ePicInitQpMinus26            = VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT,
5039     eWeightedPred                = VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT,
5040     eWeightedBipredExplicit      = VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT,
5041     eWeightedBipredImplicit      = VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT,
5042     eWeightedPredNoTable         = VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT,
5043     eTransform8X8                = VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT,
5044     eCabac                       = VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT,
5045     eCavlc                       = VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT,
5046     eDeblockingFilterDisabled    = VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT,
5047     eDeblockingFilterEnabled     = VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT,
5048     eDeblockingFilterPartial     = VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT,
5049     eDisableDirectSpatialMvPred  = VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT,
5050     eMultipleSlicePerFrame       = VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT,
5051     eSliceMbCount                = VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT,
5052     eRowUnalignedSlice           = VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT,
5053     eDifferentSliceType          = VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT,
5054     eBFrameInL1List              = VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT
5055   };
5056 
5057   using VideoEncodeH264CapabilityFlagsEXT = Flags<VideoEncodeH264CapabilityFlagBitsEXT>;
5058 
5059   template <>
5060   struct FlagTraits<VideoEncodeH264CapabilityFlagBitsEXT>
5061   {
5062     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                              isBitmask = true;
5063     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH264CapabilityFlagsEXT allFlags =
5064       VideoEncodeH264CapabilityFlagBitsEXT::eDirect8X8InferenceEnabled | VideoEncodeH264CapabilityFlagBitsEXT::eDirect8X8InferenceDisabled |
5065       VideoEncodeH264CapabilityFlagBitsEXT::eSeparateColourPlane | VideoEncodeH264CapabilityFlagBitsEXT::eQpprimeYZeroTransformBypass |
5066       VideoEncodeH264CapabilityFlagBitsEXT::eScalingLists | VideoEncodeH264CapabilityFlagBitsEXT::eHrdCompliance |
5067       VideoEncodeH264CapabilityFlagBitsEXT::eChromaQpOffset | VideoEncodeH264CapabilityFlagBitsEXT::eSecondChromaQpOffset |
5068       VideoEncodeH264CapabilityFlagBitsEXT::ePicInitQpMinus26 | VideoEncodeH264CapabilityFlagBitsEXT::eWeightedPred |
5069       VideoEncodeH264CapabilityFlagBitsEXT::eWeightedBipredExplicit | VideoEncodeH264CapabilityFlagBitsEXT::eWeightedBipredImplicit |
5070       VideoEncodeH264CapabilityFlagBitsEXT::eWeightedPredNoTable | VideoEncodeH264CapabilityFlagBitsEXT::eTransform8X8 |
5071       VideoEncodeH264CapabilityFlagBitsEXT::eCabac | VideoEncodeH264CapabilityFlagBitsEXT::eCavlc |
5072       VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterDisabled | VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterEnabled |
5073       VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterPartial | VideoEncodeH264CapabilityFlagBitsEXT::eDisableDirectSpatialMvPred |
5074       VideoEncodeH264CapabilityFlagBitsEXT::eMultipleSlicePerFrame | VideoEncodeH264CapabilityFlagBitsEXT::eSliceMbCount |
5075       VideoEncodeH264CapabilityFlagBitsEXT::eRowUnalignedSlice | VideoEncodeH264CapabilityFlagBitsEXT::eDifferentSliceType |
5076       VideoEncodeH264CapabilityFlagBitsEXT::eBFrameInL1List;
5077   };
5078 
5079   enum class VideoEncodeH264InputModeFlagBitsEXT : VkVideoEncodeH264InputModeFlagsEXT
5080   {
5081     eFrame  = VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT,
5082     eSlice  = VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT,
5083     eNonVcl = VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT
5084   };
5085 
5086   using VideoEncodeH264InputModeFlagsEXT = Flags<VideoEncodeH264InputModeFlagBitsEXT>;
5087 
5088   template <>
5089   struct FlagTraits<VideoEncodeH264InputModeFlagBitsEXT>
5090   {
5091     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                             isBitmask = true;
5092     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH264InputModeFlagsEXT allFlags =
5093       VideoEncodeH264InputModeFlagBitsEXT::eFrame | VideoEncodeH264InputModeFlagBitsEXT::eSlice | VideoEncodeH264InputModeFlagBitsEXT::eNonVcl;
5094   };
5095 
5096   enum class VideoEncodeH264OutputModeFlagBitsEXT : VkVideoEncodeH264OutputModeFlagsEXT
5097   {
5098     eFrame  = VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT,
5099     eSlice  = VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT,
5100     eNonVcl = VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT
5101   };
5102 
5103   using VideoEncodeH264OutputModeFlagsEXT = Flags<VideoEncodeH264OutputModeFlagBitsEXT>;
5104 
5105   template <>
5106   struct FlagTraits<VideoEncodeH264OutputModeFlagBitsEXT>
5107   {
5108     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                              isBitmask = true;
5109     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH264OutputModeFlagsEXT allFlags =
5110       VideoEncodeH264OutputModeFlagBitsEXT::eFrame | VideoEncodeH264OutputModeFlagBitsEXT::eSlice | VideoEncodeH264OutputModeFlagBitsEXT::eNonVcl;
5111   };
5112 
5113   enum class VideoEncodeH264RateControlStructureEXT
5114   {
5115     eUnknown = VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT,
5116     eFlat    = VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_EXT,
5117     eDyadic  = VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_EXT
5118   };
5119 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
5120 
5121 #if defined( VK_ENABLE_BETA_EXTENSIONS )
5122   //=== VK_EXT_video_encode_h265 ===
5123 
5124   enum class VideoEncodeH265CapabilityFlagBitsEXT : VkVideoEncodeH265CapabilityFlagsEXT
5125   {
5126     eSeparateColourPlane             = VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT,
5127     eScalingLists                    = VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT,
5128     eSampleAdaptiveOffsetEnabled     = VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT,
5129     ePcmEnable                       = VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT,
5130     eSpsTemporalMvpEnabled           = VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT,
5131     eHrdCompliance                   = VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT,
5132     eInitQpMinus26                   = VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT,
5133     eLog2ParallelMergeLevelMinus2    = VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT,
5134     eSignDataHidingEnabled           = VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT,
5135     eTransformSkipEnabled            = VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT,
5136     eTransformSkipDisabled           = VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT,
5137     ePpsSliceChromaQpOffsetsPresent  = VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT,
5138     eWeightedPred                    = VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT,
5139     eWeightedBipred                  = VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT,
5140     eWeightedPredNoTable             = VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT,
5141     eTransquantBypassEnabled         = VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT,
5142     eEntropyCodingSyncEnabled        = VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT,
5143     eDeblockingFilterOverrideEnabled = VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT,
5144     eMultipleTilePerFrame            = VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT,
5145     eMultipleSlicePerTile            = VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT,
5146     eMultipleTilePerSlice            = VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT,
5147     eSliceSegmentCtbCount            = VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT,
5148     eRowUnalignedSliceSegment        = VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT,
5149     eDependentSliceSegment           = VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT,
5150     eDifferentSliceType              = VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT,
5151     eBFrameInL1List                  = VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT
5152   };
5153 
5154   using VideoEncodeH265CapabilityFlagsEXT = Flags<VideoEncodeH265CapabilityFlagBitsEXT>;
5155 
5156   template <>
5157   struct FlagTraits<VideoEncodeH265CapabilityFlagBitsEXT>
5158   {
5159     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                              isBitmask = true;
5160     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH265CapabilityFlagsEXT allFlags =
5161       VideoEncodeH265CapabilityFlagBitsEXT::eSeparateColourPlane | VideoEncodeH265CapabilityFlagBitsEXT::eScalingLists |
5162       VideoEncodeH265CapabilityFlagBitsEXT::eSampleAdaptiveOffsetEnabled | VideoEncodeH265CapabilityFlagBitsEXT::ePcmEnable |
5163       VideoEncodeH265CapabilityFlagBitsEXT::eSpsTemporalMvpEnabled | VideoEncodeH265CapabilityFlagBitsEXT::eHrdCompliance |
5164       VideoEncodeH265CapabilityFlagBitsEXT::eInitQpMinus26 | VideoEncodeH265CapabilityFlagBitsEXT::eLog2ParallelMergeLevelMinus2 |
5165       VideoEncodeH265CapabilityFlagBitsEXT::eSignDataHidingEnabled | VideoEncodeH265CapabilityFlagBitsEXT::eTransformSkipEnabled |
5166       VideoEncodeH265CapabilityFlagBitsEXT::eTransformSkipDisabled | VideoEncodeH265CapabilityFlagBitsEXT::ePpsSliceChromaQpOffsetsPresent |
5167       VideoEncodeH265CapabilityFlagBitsEXT::eWeightedPred | VideoEncodeH265CapabilityFlagBitsEXT::eWeightedBipred |
5168       VideoEncodeH265CapabilityFlagBitsEXT::eWeightedPredNoTable | VideoEncodeH265CapabilityFlagBitsEXT::eTransquantBypassEnabled |
5169       VideoEncodeH265CapabilityFlagBitsEXT::eEntropyCodingSyncEnabled | VideoEncodeH265CapabilityFlagBitsEXT::eDeblockingFilterOverrideEnabled |
5170       VideoEncodeH265CapabilityFlagBitsEXT::eMultipleTilePerFrame | VideoEncodeH265CapabilityFlagBitsEXT::eMultipleSlicePerTile |
5171       VideoEncodeH265CapabilityFlagBitsEXT::eMultipleTilePerSlice | VideoEncodeH265CapabilityFlagBitsEXT::eSliceSegmentCtbCount |
5172       VideoEncodeH265CapabilityFlagBitsEXT::eRowUnalignedSliceSegment | VideoEncodeH265CapabilityFlagBitsEXT::eDependentSliceSegment |
5173       VideoEncodeH265CapabilityFlagBitsEXT::eDifferentSliceType | VideoEncodeH265CapabilityFlagBitsEXT::eBFrameInL1List;
5174   };
5175 
5176   enum class VideoEncodeH265InputModeFlagBitsEXT : VkVideoEncodeH265InputModeFlagsEXT
5177   {
5178     eFrame        = VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT,
5179     eSliceSegment = VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT,
5180     eNonVcl       = VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT
5181   };
5182 
5183   using VideoEncodeH265InputModeFlagsEXT = Flags<VideoEncodeH265InputModeFlagBitsEXT>;
5184 
5185   template <>
5186   struct FlagTraits<VideoEncodeH265InputModeFlagBitsEXT>
5187   {
5188     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                             isBitmask = true;
5189     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH265InputModeFlagsEXT allFlags =
5190       VideoEncodeH265InputModeFlagBitsEXT::eFrame | VideoEncodeH265InputModeFlagBitsEXT::eSliceSegment | VideoEncodeH265InputModeFlagBitsEXT::eNonVcl;
5191   };
5192 
5193   enum class VideoEncodeH265OutputModeFlagBitsEXT : VkVideoEncodeH265OutputModeFlagsEXT
5194   {
5195     eFrame        = VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT,
5196     eSliceSegment = VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT,
5197     eNonVcl       = VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT
5198   };
5199 
5200   using VideoEncodeH265OutputModeFlagsEXT = Flags<VideoEncodeH265OutputModeFlagBitsEXT>;
5201 
5202   template <>
5203   struct FlagTraits<VideoEncodeH265OutputModeFlagBitsEXT>
5204   {
5205     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                              isBitmask = true;
5206     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH265OutputModeFlagsEXT allFlags =
5207       VideoEncodeH265OutputModeFlagBitsEXT::eFrame | VideoEncodeH265OutputModeFlagBitsEXT::eSliceSegment | VideoEncodeH265OutputModeFlagBitsEXT::eNonVcl;
5208   };
5209 
5210   enum class VideoEncodeH265CtbSizeFlagBitsEXT : VkVideoEncodeH265CtbSizeFlagsEXT
5211   {
5212     e16 = VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT,
5213     e32 = VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT,
5214     e64 = VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT
5215   };
5216 
5217   using VideoEncodeH265CtbSizeFlagsEXT = Flags<VideoEncodeH265CtbSizeFlagBitsEXT>;
5218 
5219   template <>
5220   struct FlagTraits<VideoEncodeH265CtbSizeFlagBitsEXT>
5221   {
5222     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                           isBitmask = true;
5223     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH265CtbSizeFlagsEXT allFlags =
5224       VideoEncodeH265CtbSizeFlagBitsEXT::e16 | VideoEncodeH265CtbSizeFlagBitsEXT::e32 | VideoEncodeH265CtbSizeFlagBitsEXT::e64;
5225   };
5226 
5227   enum class VideoEncodeH265TransformBlockSizeFlagBitsEXT : VkVideoEncodeH265TransformBlockSizeFlagsEXT
5228   {
5229     e4  = VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT,
5230     e8  = VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT,
5231     e16 = VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT,
5232     e32 = VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT
5233   };
5234 
5235   using VideoEncodeH265TransformBlockSizeFlagsEXT = Flags<VideoEncodeH265TransformBlockSizeFlagBitsEXT>;
5236 
5237   template <>
5238   struct FlagTraits<VideoEncodeH265TransformBlockSizeFlagBitsEXT>
5239   {
5240     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                      isBitmask = true;
5241     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeH265TransformBlockSizeFlagsEXT allFlags =
5242       VideoEncodeH265TransformBlockSizeFlagBitsEXT::e4 | VideoEncodeH265TransformBlockSizeFlagBitsEXT::e8 | VideoEncodeH265TransformBlockSizeFlagBitsEXT::e16 |
5243       VideoEncodeH265TransformBlockSizeFlagBitsEXT::e32;
5244   };
5245 
5246   enum class VideoEncodeH265RateControlStructureEXT
5247   {
5248     eUnknown = VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT,
5249     eFlat    = VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_EXT,
5250     eDyadic  = VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_EXT
5251   };
5252 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
5253 
5254 #if defined( VK_ENABLE_BETA_EXTENSIONS )
5255   //=== VK_EXT_video_decode_h264 ===
5256 
5257   enum class VideoDecodeH264PictureLayoutFlagBitsEXT : VkVideoDecodeH264PictureLayoutFlagsEXT
5258   {
5259     eProgressive                = VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT,
5260     eInterlacedInterleavedLines = VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT,
5261     eInterlacedSeparatePlanes   = VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT
5262   };
5263 
5264   using VideoDecodeH264PictureLayoutFlagsEXT = Flags<VideoDecodeH264PictureLayoutFlagBitsEXT>;
5265 
5266   template <>
5267   struct FlagTraits<VideoDecodeH264PictureLayoutFlagBitsEXT>
5268   {
5269     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                 isBitmask = true;
5270     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoDecodeH264PictureLayoutFlagsEXT allFlags  = VideoDecodeH264PictureLayoutFlagBitsEXT::eProgressive |
5271                                                                                          VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedInterleavedLines |
5272                                                                                          VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedSeparatePlanes;
5273   };
5274 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
5275 
5276   //=== VK_AMD_shader_info ===
5277 
5278   enum class ShaderInfoTypeAMD
5279   {
5280     eStatistics  = VK_SHADER_INFO_TYPE_STATISTICS_AMD,
5281     eBinary      = VK_SHADER_INFO_TYPE_BINARY_AMD,
5282     eDisassembly = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD
5283   };
5284 
5285 #if defined( VK_USE_PLATFORM_GGP )
5286   //=== VK_GGP_stream_descriptor_surface ===
5287 
5288   enum class StreamDescriptorSurfaceCreateFlagBitsGGP : VkStreamDescriptorSurfaceCreateFlagsGGP
5289   {
5290   };
5291 
5292   using StreamDescriptorSurfaceCreateFlagsGGP = Flags<StreamDescriptorSurfaceCreateFlagBitsGGP>;
5293 
5294   template <>
5295   struct FlagTraits<StreamDescriptorSurfaceCreateFlagBitsGGP>
5296   {
5297     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                  isBitmask = true;
5298     static VULKAN_HPP_CONST_OR_CONSTEXPR StreamDescriptorSurfaceCreateFlagsGGP allFlags  = {};
5299   };
5300 #endif /*VK_USE_PLATFORM_GGP*/
5301 
5302   //=== VK_NV_external_memory_capabilities ===
5303 
5304   enum class ExternalMemoryHandleTypeFlagBitsNV : VkExternalMemoryHandleTypeFlagsNV
5305   {
5306     eOpaqueWin32    = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,
5307     eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,
5308     eD3D11Image     = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,
5309     eD3D11ImageKmt  = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV
5310   };
5311 
5312   using ExternalMemoryHandleTypeFlagsNV = Flags<ExternalMemoryHandleTypeFlagBitsNV>;
5313 
5314   template <>
5315   struct FlagTraits<ExternalMemoryHandleTypeFlagBitsNV>
5316   {
5317     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                            isBitmask = true;
5318     static VULKAN_HPP_CONST_OR_CONSTEXPR ExternalMemoryHandleTypeFlagsNV allFlags =
5319       ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 | ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt | ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image |
5320       ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt;
5321   };
5322 
5323   enum class ExternalMemoryFeatureFlagBitsNV : VkExternalMemoryFeatureFlagsNV
5324   {
5325     eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,
5326     eExportable    = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,
5327     eImportable    = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV
5328   };
5329 
5330   using ExternalMemoryFeatureFlagsNV = Flags<ExternalMemoryFeatureFlagBitsNV>;
5331 
5332   template <>
5333   struct FlagTraits<ExternalMemoryFeatureFlagBitsNV>
5334   {
5335     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                         isBitmask = true;
5336     static VULKAN_HPP_CONST_OR_CONSTEXPR ExternalMemoryFeatureFlagsNV allFlags =
5337       ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly | ExternalMemoryFeatureFlagBitsNV::eExportable | ExternalMemoryFeatureFlagBitsNV::eImportable;
5338   };
5339 
5340   //=== VK_EXT_validation_flags ===
5341 
5342   enum class ValidationCheckEXT
5343   {
5344     eAll     = VK_VALIDATION_CHECK_ALL_EXT,
5345     eShaders = VK_VALIDATION_CHECK_SHADERS_EXT
5346   };
5347 
5348 #if defined( VK_USE_PLATFORM_VI_NN )
5349   //=== VK_NN_vi_surface ===
5350 
5351   enum class ViSurfaceCreateFlagBitsNN : VkViSurfaceCreateFlagsNN
5352   {
5353   };
5354 
5355   using ViSurfaceCreateFlagsNN = Flags<ViSurfaceCreateFlagBitsNN>;
5356 
5357   template <>
5358   struct FlagTraits<ViSurfaceCreateFlagBitsNN>
5359   {
5360     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
5361     static VULKAN_HPP_CONST_OR_CONSTEXPR ViSurfaceCreateFlagsNN allFlags  = {};
5362   };
5363 #endif /*VK_USE_PLATFORM_VI_NN*/
5364 
5365   //=== VK_EXT_pipeline_robustness ===
5366 
5367   enum class PipelineRobustnessBufferBehaviorEXT
5368   {
5369     eDeviceDefault       = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT,
5370     eDisabled            = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT,
5371     eRobustBufferAccess  = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT,
5372     eRobustBufferAccess2 = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
5373   };
5374 
5375   enum class PipelineRobustnessImageBehaviorEXT
5376   {
5377     eDeviceDefault      = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT,
5378     eDisabled           = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT,
5379     eRobustImageAccess  = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT,
5380     eRobustImageAccess2 = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT
5381   };
5382 
5383   //=== VK_EXT_conditional_rendering ===
5384 
5385   enum class ConditionalRenderingFlagBitsEXT : VkConditionalRenderingFlagsEXT
5386   {
5387     eInverted = VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT
5388   };
5389 
5390   using ConditionalRenderingFlagsEXT = Flags<ConditionalRenderingFlagBitsEXT>;
5391 
5392   template <>
5393   struct FlagTraits<ConditionalRenderingFlagBitsEXT>
5394   {
5395     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                         isBitmask = true;
5396     static VULKAN_HPP_CONST_OR_CONSTEXPR ConditionalRenderingFlagsEXT allFlags  = ConditionalRenderingFlagBitsEXT::eInverted;
5397   };
5398 
5399   //=== VK_EXT_display_surface_counter ===
5400 
5401   enum class SurfaceCounterFlagBitsEXT : VkSurfaceCounterFlagsEXT
5402   {
5403     eVblank = VK_SURFACE_COUNTER_VBLANK_BIT_EXT
5404   };
5405 
5406   using SurfaceCounterFlagsEXT = Flags<SurfaceCounterFlagBitsEXT>;
5407 
5408   template <>
5409   struct FlagTraits<SurfaceCounterFlagBitsEXT>
5410   {
5411     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
5412     static VULKAN_HPP_CONST_OR_CONSTEXPR SurfaceCounterFlagsEXT allFlags  = SurfaceCounterFlagBitsEXT::eVblank;
5413   };
5414 
5415   //=== VK_EXT_display_control ===
5416 
5417   enum class DisplayPowerStateEXT
5418   {
5419     eOff     = VK_DISPLAY_POWER_STATE_OFF_EXT,
5420     eSuspend = VK_DISPLAY_POWER_STATE_SUSPEND_EXT,
5421     eOn      = VK_DISPLAY_POWER_STATE_ON_EXT
5422   };
5423 
5424   enum class DeviceEventTypeEXT
5425   {
5426     eDisplayHotplug = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT
5427   };
5428 
5429   enum class DisplayEventTypeEXT
5430   {
5431     eFirstPixelOut = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT
5432   };
5433 
5434   //=== VK_NV_viewport_swizzle ===
5435 
5436   enum class ViewportCoordinateSwizzleNV
5437   {
5438     ePositiveX = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
5439     eNegativeX = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV,
5440     ePositiveY = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV,
5441     eNegativeY = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV,
5442     ePositiveZ = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV,
5443     eNegativeZ = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV,
5444     ePositiveW = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV,
5445     eNegativeW = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV
5446   };
5447 
5448   enum class PipelineViewportSwizzleStateCreateFlagBitsNV : VkPipelineViewportSwizzleStateCreateFlagsNV
5449   {
5450   };
5451 
5452   using PipelineViewportSwizzleStateCreateFlagsNV = Flags<PipelineViewportSwizzleStateCreateFlagBitsNV>;
5453 
5454   template <>
5455   struct FlagTraits<PipelineViewportSwizzleStateCreateFlagBitsNV>
5456   {
5457     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                      isBitmask = true;
5458     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineViewportSwizzleStateCreateFlagsNV allFlags  = {};
5459   };
5460 
5461   //=== VK_EXT_discard_rectangles ===
5462 
5463   enum class DiscardRectangleModeEXT
5464   {
5465     eInclusive = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
5466     eExclusive = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT
5467   };
5468 
5469   enum class PipelineDiscardRectangleStateCreateFlagBitsEXT : VkPipelineDiscardRectangleStateCreateFlagsEXT
5470   {
5471   };
5472 
5473   using PipelineDiscardRectangleStateCreateFlagsEXT = Flags<PipelineDiscardRectangleStateCreateFlagBitsEXT>;
5474 
5475   template <>
5476   struct FlagTraits<PipelineDiscardRectangleStateCreateFlagBitsEXT>
5477   {
5478     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                        isBitmask = true;
5479     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineDiscardRectangleStateCreateFlagsEXT allFlags  = {};
5480   };
5481 
5482   //=== VK_EXT_conservative_rasterization ===
5483 
5484   enum class ConservativeRasterizationModeEXT
5485   {
5486     eDisabled      = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT,
5487     eOverestimate  = VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,
5488     eUnderestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT
5489   };
5490 
5491   enum class PipelineRasterizationConservativeStateCreateFlagBitsEXT : VkPipelineRasterizationConservativeStateCreateFlagsEXT
5492   {
5493   };
5494 
5495   using PipelineRasterizationConservativeStateCreateFlagsEXT = Flags<PipelineRasterizationConservativeStateCreateFlagBitsEXT>;
5496 
5497   template <>
5498   struct FlagTraits<PipelineRasterizationConservativeStateCreateFlagBitsEXT>
5499   {
5500     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                                 isBitmask = true;
5501     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineRasterizationConservativeStateCreateFlagsEXT allFlags  = {};
5502   };
5503 
5504   //=== VK_EXT_depth_clip_enable ===
5505 
5506   enum class PipelineRasterizationDepthClipStateCreateFlagBitsEXT : VkPipelineRasterizationDepthClipStateCreateFlagsEXT
5507   {
5508   };
5509 
5510   using PipelineRasterizationDepthClipStateCreateFlagsEXT = Flags<PipelineRasterizationDepthClipStateCreateFlagBitsEXT>;
5511 
5512   template <>
5513   struct FlagTraits<PipelineRasterizationDepthClipStateCreateFlagBitsEXT>
5514   {
5515     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                              isBitmask = true;
5516     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineRasterizationDepthClipStateCreateFlagsEXT allFlags  = {};
5517   };
5518 
5519   //=== VK_KHR_performance_query ===
5520 
5521   enum class PerformanceCounterDescriptionFlagBitsKHR : VkPerformanceCounterDescriptionFlagsKHR
5522   {
5523     ePerformanceImpacting = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
5524     eConcurrentlyImpacted = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR
5525   };
5526 
5527   using PerformanceCounterDescriptionFlagsKHR = Flags<PerformanceCounterDescriptionFlagBitsKHR>;
5528 
5529   template <>
5530   struct FlagTraits<PerformanceCounterDescriptionFlagBitsKHR>
5531   {
5532     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                  isBitmask = true;
5533     static VULKAN_HPP_CONST_OR_CONSTEXPR PerformanceCounterDescriptionFlagsKHR allFlags =
5534       PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting | PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted;
5535   };
5536 
5537   enum class PerformanceCounterScopeKHR
5538   {
5539     eCommandBuffer             = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
5540     eRenderPass                = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
5541     eCommand                   = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
5542     eVkQueryScopeCommandBuffer = VK_QUERY_SCOPE_COMMAND_BUFFER_KHR,
5543     eVkQueryScopeCommand       = VK_QUERY_SCOPE_COMMAND_KHR,
5544     eVkQueryScopeRenderPass    = VK_QUERY_SCOPE_RENDER_PASS_KHR
5545   };
5546 
5547   enum class PerformanceCounterStorageKHR
5548   {
5549     eInt32   = VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR,
5550     eInt64   = VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR,
5551     eUint32  = VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR,
5552     eUint64  = VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR,
5553     eFloat32 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR,
5554     eFloat64 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR
5555   };
5556 
5557   enum class PerformanceCounterUnitKHR
5558   {
5559     eGeneric        = VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR,
5560     ePercentage     = VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR,
5561     eNanoseconds    = VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR,
5562     eBytes          = VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR,
5563     eBytesPerSecond = VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR,
5564     eKelvin         = VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR,
5565     eWatts          = VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR,
5566     eVolts          = VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR,
5567     eAmps           = VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR,
5568     eHertz          = VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR,
5569     eCycles         = VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR
5570   };
5571 
5572   enum class AcquireProfilingLockFlagBitsKHR : VkAcquireProfilingLockFlagsKHR
5573   {
5574   };
5575 
5576   using AcquireProfilingLockFlagsKHR = Flags<AcquireProfilingLockFlagBitsKHR>;
5577 
5578   template <>
5579   struct FlagTraits<AcquireProfilingLockFlagBitsKHR>
5580   {
5581     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                         isBitmask = true;
5582     static VULKAN_HPP_CONST_OR_CONSTEXPR AcquireProfilingLockFlagsKHR allFlags  = {};
5583   };
5584 
5585 #if defined( VK_USE_PLATFORM_IOS_MVK )
5586   //=== VK_MVK_ios_surface ===
5587 
5588   enum class IOSSurfaceCreateFlagBitsMVK : VkIOSSurfaceCreateFlagsMVK
5589   {
5590   };
5591 
5592   using IOSSurfaceCreateFlagsMVK = Flags<IOSSurfaceCreateFlagBitsMVK>;
5593 
5594   template <>
5595   struct FlagTraits<IOSSurfaceCreateFlagBitsMVK>
5596   {
5597     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                     isBitmask = true;
5598     static VULKAN_HPP_CONST_OR_CONSTEXPR IOSSurfaceCreateFlagsMVK allFlags  = {};
5599   };
5600 #endif /*VK_USE_PLATFORM_IOS_MVK*/
5601 
5602 #if defined( VK_USE_PLATFORM_MACOS_MVK )
5603   //=== VK_MVK_macos_surface ===
5604 
5605   enum class MacOSSurfaceCreateFlagBitsMVK : VkMacOSSurfaceCreateFlagsMVK
5606   {
5607   };
5608 
5609   using MacOSSurfaceCreateFlagsMVK = Flags<MacOSSurfaceCreateFlagBitsMVK>;
5610 
5611   template <>
5612   struct FlagTraits<MacOSSurfaceCreateFlagBitsMVK>
5613   {
5614     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
5615     static VULKAN_HPP_CONST_OR_CONSTEXPR MacOSSurfaceCreateFlagsMVK allFlags  = {};
5616   };
5617 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
5618 
5619   //=== VK_EXT_debug_utils ===
5620 
5621   enum class DebugUtilsMessageSeverityFlagBitsEXT : VkDebugUtilsMessageSeverityFlagsEXT
5622   {
5623     eVerbose = VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,
5624     eInfo    = VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,
5625     eWarning = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,
5626     eError   = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT
5627   };
5628 
5629   using DebugUtilsMessageSeverityFlagsEXT = Flags<DebugUtilsMessageSeverityFlagBitsEXT>;
5630 
5631   template <>
5632   struct FlagTraits<DebugUtilsMessageSeverityFlagBitsEXT>
5633   {
5634     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                              isBitmask = true;
5635     static VULKAN_HPP_CONST_OR_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT allFlags =
5636       DebugUtilsMessageSeverityFlagBitsEXT::eVerbose | DebugUtilsMessageSeverityFlagBitsEXT::eInfo | DebugUtilsMessageSeverityFlagBitsEXT::eWarning |
5637       DebugUtilsMessageSeverityFlagBitsEXT::eError;
5638   };
5639 
5640   enum class DebugUtilsMessageTypeFlagBitsEXT : VkDebugUtilsMessageTypeFlagsEXT
5641   {
5642     eGeneral              = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,
5643     eValidation           = VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,
5644     ePerformance          = VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT,
5645     eDeviceAddressBinding = VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT
5646   };
5647 
5648   using DebugUtilsMessageTypeFlagsEXT = Flags<DebugUtilsMessageTypeFlagBitsEXT>;
5649 
5650   template <>
5651   struct FlagTraits<DebugUtilsMessageTypeFlagBitsEXT>
5652   {
5653     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                          isBitmask = true;
5654     static VULKAN_HPP_CONST_OR_CONSTEXPR DebugUtilsMessageTypeFlagsEXT allFlags =
5655       DebugUtilsMessageTypeFlagBitsEXT::eGeneral | DebugUtilsMessageTypeFlagBitsEXT::eValidation | DebugUtilsMessageTypeFlagBitsEXT::ePerformance |
5656       DebugUtilsMessageTypeFlagBitsEXT::eDeviceAddressBinding;
5657   };
5658 
5659   enum class DebugUtilsMessengerCallbackDataFlagBitsEXT : VkDebugUtilsMessengerCallbackDataFlagsEXT
5660   {
5661   };
5662 
5663   using DebugUtilsMessengerCallbackDataFlagsEXT = Flags<DebugUtilsMessengerCallbackDataFlagBitsEXT>;
5664 
5665   template <>
5666   struct FlagTraits<DebugUtilsMessengerCallbackDataFlagBitsEXT>
5667   {
5668     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                    isBitmask = true;
5669     static VULKAN_HPP_CONST_OR_CONSTEXPR DebugUtilsMessengerCallbackDataFlagsEXT allFlags  = {};
5670   };
5671 
5672   enum class DebugUtilsMessengerCreateFlagBitsEXT : VkDebugUtilsMessengerCreateFlagsEXT
5673   {
5674   };
5675 
5676   using DebugUtilsMessengerCreateFlagsEXT = Flags<DebugUtilsMessengerCreateFlagBitsEXT>;
5677 
5678   template <>
5679   struct FlagTraits<DebugUtilsMessengerCreateFlagBitsEXT>
5680   {
5681     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                              isBitmask = true;
5682     static VULKAN_HPP_CONST_OR_CONSTEXPR DebugUtilsMessengerCreateFlagsEXT allFlags  = {};
5683   };
5684 
5685   //=== VK_EXT_blend_operation_advanced ===
5686 
5687   enum class BlendOverlapEXT
5688   {
5689     eUncorrelated = VK_BLEND_OVERLAP_UNCORRELATED_EXT,
5690     eDisjoint     = VK_BLEND_OVERLAP_DISJOINT_EXT,
5691     eConjoint     = VK_BLEND_OVERLAP_CONJOINT_EXT
5692   };
5693 
5694   //=== VK_NV_fragment_coverage_to_color ===
5695 
5696   enum class PipelineCoverageToColorStateCreateFlagBitsNV : VkPipelineCoverageToColorStateCreateFlagsNV
5697   {
5698   };
5699 
5700   using PipelineCoverageToColorStateCreateFlagsNV = Flags<PipelineCoverageToColorStateCreateFlagBitsNV>;
5701 
5702   template <>
5703   struct FlagTraits<PipelineCoverageToColorStateCreateFlagBitsNV>
5704   {
5705     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                      isBitmask = true;
5706     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineCoverageToColorStateCreateFlagsNV allFlags  = {};
5707   };
5708 
5709   //=== VK_KHR_acceleration_structure ===
5710 
5711   enum class AccelerationStructureTypeKHR
5712   {
5713     eTopLevel    = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
5714     eBottomLevel = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
5715     eGeneric     = VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
5716   };
5717   using AccelerationStructureTypeNV = AccelerationStructureTypeKHR;
5718 
5719   enum class AccelerationStructureBuildTypeKHR
5720   {
5721     eHost         = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR,
5722     eDevice       = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR,
5723     eHostOrDevice = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR
5724   };
5725 
5726   enum class GeometryFlagBitsKHR : VkGeometryFlagsKHR
5727   {
5728     eOpaque                      = VK_GEOMETRY_OPAQUE_BIT_KHR,
5729     eNoDuplicateAnyHitInvocation = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR
5730   };
5731   using GeometryFlagBitsNV = GeometryFlagBitsKHR;
5732 
5733   using GeometryFlagsKHR = Flags<GeometryFlagBitsKHR>;
5734   using GeometryFlagsNV  = GeometryFlagsKHR;
5735 
5736   template <>
5737   struct FlagTraits<GeometryFlagBitsKHR>
5738   {
5739     static VULKAN_HPP_CONST_OR_CONSTEXPR bool             isBitmask = true;
5740     static VULKAN_HPP_CONST_OR_CONSTEXPR GeometryFlagsKHR allFlags  = GeometryFlagBitsKHR::eOpaque | GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation;
5741   };
5742 
5743   enum class GeometryInstanceFlagBitsKHR : VkGeometryInstanceFlagsKHR
5744   {
5745     eTriangleFacingCullDisable        = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
5746     eTriangleFlipFacing               = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
5747     eForceOpaque                      = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
5748     eForceNoOpaque                    = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
5749     eForceOpacityMicromap2StateEXT    = VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT,
5750     eDisableOpacityMicromapsEXT       = VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT,
5751     eTriangleCullDisable              = VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV,
5752     eTriangleFrontCounterclockwiseKHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
5753     eTriangleFrontCounterclockwise    = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV
5754   };
5755   using GeometryInstanceFlagBitsNV = GeometryInstanceFlagBitsKHR;
5756 
5757   using GeometryInstanceFlagsKHR = Flags<GeometryInstanceFlagBitsKHR>;
5758   using GeometryInstanceFlagsNV  = GeometryInstanceFlagsKHR;
5759 
5760   template <>
5761   struct FlagTraits<GeometryInstanceFlagBitsKHR>
5762   {
5763     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                     isBitmask = true;
5764     static VULKAN_HPP_CONST_OR_CONSTEXPR GeometryInstanceFlagsKHR allFlags =
5765       GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable | GeometryInstanceFlagBitsKHR::eTriangleFlipFacing | GeometryInstanceFlagBitsKHR::eForceOpaque |
5766       GeometryInstanceFlagBitsKHR::eForceNoOpaque | GeometryInstanceFlagBitsKHR::eForceOpacityMicromap2StateEXT |
5767       GeometryInstanceFlagBitsKHR::eDisableOpacityMicromapsEXT;
5768   };
5769 
5770   enum class BuildAccelerationStructureFlagBitsKHR : VkBuildAccelerationStructureFlagsKHR
5771   {
5772     eAllowUpdate                       = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
5773     eAllowCompaction                   = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
5774     ePreferFastTrace                   = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
5775     ePreferFastBuild                   = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
5776     eLowMemory                         = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
5777     eMotionNV                          = VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV,
5778     eAllowOpacityMicromapUpdateEXT     = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT,
5779     eAllowDisableOpacityMicromapsEXT   = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT,
5780     eAllowOpacityMicromapDataUpdateEXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT
5781   };
5782   using BuildAccelerationStructureFlagBitsNV = BuildAccelerationStructureFlagBitsKHR;
5783 
5784   using BuildAccelerationStructureFlagsKHR = Flags<BuildAccelerationStructureFlagBitsKHR>;
5785   using BuildAccelerationStructureFlagsNV  = BuildAccelerationStructureFlagsKHR;
5786 
5787   template <>
5788   struct FlagTraits<BuildAccelerationStructureFlagBitsKHR>
5789   {
5790     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                               isBitmask = true;
5791     static VULKAN_HPP_CONST_OR_CONSTEXPR BuildAccelerationStructureFlagsKHR allFlags =
5792       BuildAccelerationStructureFlagBitsKHR::eAllowUpdate | BuildAccelerationStructureFlagBitsKHR::eAllowCompaction |
5793       BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace | BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild |
5794       BuildAccelerationStructureFlagBitsKHR::eLowMemory | BuildAccelerationStructureFlagBitsKHR::eMotionNV |
5795       BuildAccelerationStructureFlagBitsKHR::eAllowOpacityMicromapUpdateEXT | BuildAccelerationStructureFlagBitsKHR::eAllowDisableOpacityMicromapsEXT |
5796       BuildAccelerationStructureFlagBitsKHR::eAllowOpacityMicromapDataUpdateEXT;
5797   };
5798 
5799   enum class CopyAccelerationStructureModeKHR
5800   {
5801     eClone       = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
5802     eCompact     = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
5803     eSerialize   = VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR,
5804     eDeserialize = VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR
5805   };
5806   using CopyAccelerationStructureModeNV = CopyAccelerationStructureModeKHR;
5807 
5808   enum class GeometryTypeKHR
5809   {
5810     eTriangles = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
5811     eAabbs     = VK_GEOMETRY_TYPE_AABBS_KHR,
5812     eInstances = VK_GEOMETRY_TYPE_INSTANCES_KHR
5813   };
5814   using GeometryTypeNV = GeometryTypeKHR;
5815 
5816   enum class AccelerationStructureCompatibilityKHR
5817   {
5818     eCompatible   = VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR,
5819     eIncompatible = VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR
5820   };
5821 
5822   enum class AccelerationStructureCreateFlagBitsKHR : VkAccelerationStructureCreateFlagsKHR
5823   {
5824     eDeviceAddressCaptureReplay       = VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,
5825     eDescriptorBufferCaptureReplayEXT = VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,
5826     eMotionNV                         = VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV
5827   };
5828 
5829   using AccelerationStructureCreateFlagsKHR = Flags<AccelerationStructureCreateFlagBitsKHR>;
5830 
5831   template <>
5832   struct FlagTraits<AccelerationStructureCreateFlagBitsKHR>
5833   {
5834     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                isBitmask = true;
5835     static VULKAN_HPP_CONST_OR_CONSTEXPR AccelerationStructureCreateFlagsKHR allFlags =
5836       AccelerationStructureCreateFlagBitsKHR::eDeviceAddressCaptureReplay | AccelerationStructureCreateFlagBitsKHR::eDescriptorBufferCaptureReplayEXT |
5837       AccelerationStructureCreateFlagBitsKHR::eMotionNV;
5838   };
5839 
5840   enum class BuildAccelerationStructureModeKHR
5841   {
5842     eBuild  = VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR,
5843     eUpdate = VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR
5844   };
5845 
5846   //=== VK_NV_framebuffer_mixed_samples ===
5847 
5848   enum class CoverageModulationModeNV
5849   {
5850     eNone  = VK_COVERAGE_MODULATION_MODE_NONE_NV,
5851     eRgb   = VK_COVERAGE_MODULATION_MODE_RGB_NV,
5852     eAlpha = VK_COVERAGE_MODULATION_MODE_ALPHA_NV,
5853     eRgba  = VK_COVERAGE_MODULATION_MODE_RGBA_NV
5854   };
5855 
5856   enum class PipelineCoverageModulationStateCreateFlagBitsNV : VkPipelineCoverageModulationStateCreateFlagsNV
5857   {
5858   };
5859 
5860   using PipelineCoverageModulationStateCreateFlagsNV = Flags<PipelineCoverageModulationStateCreateFlagBitsNV>;
5861 
5862   template <>
5863   struct FlagTraits<PipelineCoverageModulationStateCreateFlagBitsNV>
5864   {
5865     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                         isBitmask = true;
5866     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineCoverageModulationStateCreateFlagsNV allFlags  = {};
5867   };
5868 
5869   //=== VK_EXT_validation_cache ===
5870 
5871   enum class ValidationCacheHeaderVersionEXT
5872   {
5873     eOne = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT
5874   };
5875 
5876   enum class ValidationCacheCreateFlagBitsEXT : VkValidationCacheCreateFlagsEXT
5877   {
5878   };
5879 
5880   using ValidationCacheCreateFlagsEXT = Flags<ValidationCacheCreateFlagBitsEXT>;
5881 
5882   template <>
5883   struct FlagTraits<ValidationCacheCreateFlagBitsEXT>
5884   {
5885     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                          isBitmask = true;
5886     static VULKAN_HPP_CONST_OR_CONSTEXPR ValidationCacheCreateFlagsEXT allFlags  = {};
5887   };
5888 
5889   //=== VK_NV_shading_rate_image ===
5890 
5891   enum class ShadingRatePaletteEntryNV
5892   {
5893     eNoInvocations           = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV,
5894     e16InvocationsPerPixel   = VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV,
5895     e8InvocationsPerPixel    = VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV,
5896     e4InvocationsPerPixel    = VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV,
5897     e2InvocationsPerPixel    = VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV,
5898     e1InvocationPerPixel     = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV,
5899     e1InvocationPer2X1Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV,
5900     e1InvocationPer1X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV,
5901     e1InvocationPer2X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV,
5902     e1InvocationPer4X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV,
5903     e1InvocationPer2X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV,
5904     e1InvocationPer4X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV
5905   };
5906 
5907   enum class CoarseSampleOrderTypeNV
5908   {
5909     eDefault     = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV,
5910     eCustom      = VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV,
5911     ePixelMajor  = VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV,
5912     eSampleMajor = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV
5913   };
5914 
5915   //=== VK_NV_ray_tracing ===
5916 
5917   enum class AccelerationStructureMemoryRequirementsTypeNV
5918   {
5919     eObject        = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV,
5920     eBuildScratch  = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV,
5921     eUpdateScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV
5922   };
5923 
5924   //=== VK_AMD_pipeline_compiler_control ===
5925 
5926   enum class PipelineCompilerControlFlagBitsAMD : VkPipelineCompilerControlFlagsAMD
5927   {
5928   };
5929 
5930   using PipelineCompilerControlFlagsAMD = Flags<PipelineCompilerControlFlagBitsAMD>;
5931 
5932   template <>
5933   struct FlagTraits<PipelineCompilerControlFlagBitsAMD>
5934   {
5935     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                            isBitmask = true;
5936     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineCompilerControlFlagsAMD allFlags  = {};
5937   };
5938 
5939   //=== VK_EXT_calibrated_timestamps ===
5940 
5941   enum class TimeDomainEXT
5942   {
5943     eDevice                  = VK_TIME_DOMAIN_DEVICE_EXT,
5944     eClockMonotonic          = VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT,
5945     eClockMonotonicRaw       = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT,
5946     eQueryPerformanceCounter = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT
5947   };
5948 
5949   //=== VK_KHR_global_priority ===
5950 
5951   enum class QueueGlobalPriorityKHR
5952   {
5953     eLow      = VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR,
5954     eMedium   = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR,
5955     eHigh     = VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR,
5956     eRealtime = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR
5957   };
5958   using QueueGlobalPriorityEXT = QueueGlobalPriorityKHR;
5959 
5960   //=== VK_KHR_global_priority ===
5961 
5962   enum class QueueGlobalPriorityKHR
5963   {
5964     eLow      = VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR,
5965     eMedium   = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR,
5966     eHigh     = VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR,
5967     eRealtime = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR
5968   };
5969   using QueueGlobalPriorityEXT = QueueGlobalPriorityKHR;
5970 
to_string(QueueGlobalPriorityKHR value)5971   VULKAN_HPP_INLINE std::string to_string( QueueGlobalPriorityKHR value )
5972   {
5973     switch ( value )
5974     {
5975       case QueueGlobalPriorityKHR::eLow: return "Low";
5976       case QueueGlobalPriorityKHR::eMedium: return "Medium";
5977       case QueueGlobalPriorityKHR::eHigh: return "High";
5978       case QueueGlobalPriorityKHR::eRealtime: return "Realtime";
5979       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5980     }
5981   }
5982 
5983   //=== VK_AMD_memory_overallocation_behavior ===
5984 
5985   enum class MemoryOverallocationBehaviorAMD
5986   {
5987     eDefault    = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD,
5988     eAllowed    = VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD,
5989     eDisallowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD
5990   };
5991 
5992   //=== VK_INTEL_performance_query ===
5993 
5994   enum class PerformanceConfigurationTypeINTEL
5995   {
5996     eCommandQueueMetricsDiscoveryActivated = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL
5997   };
5998 
5999   enum class QueryPoolSamplingModeINTEL
6000   {
6001     eManual = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL
6002   };
6003 
6004   enum class PerformanceOverrideTypeINTEL
6005   {
6006     eNullHardware   = VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL,
6007     eFlushGpuCaches = VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL
6008   };
6009 
6010   enum class PerformanceParameterTypeINTEL
6011   {
6012     eHwCountersSupported   = VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL,
6013     eStreamMarkerValidBits = VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL
6014   };
6015 
6016   enum class PerformanceValueTypeINTEL
6017   {
6018     eUint32 = VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL,
6019     eUint64 = VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL,
6020     eFloat  = VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL,
6021     eBool   = VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL,
6022     eString = VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL
6023   };
6024 
6025 #if defined( VK_USE_PLATFORM_FUCHSIA )
6026   //=== VK_FUCHSIA_imagepipe_surface ===
6027 
6028   enum class ImagePipeSurfaceCreateFlagBitsFUCHSIA : VkImagePipeSurfaceCreateFlagsFUCHSIA
6029   {
6030   };
6031 
6032   using ImagePipeSurfaceCreateFlagsFUCHSIA = Flags<ImagePipeSurfaceCreateFlagBitsFUCHSIA>;
6033 
6034   template <>
6035   struct FlagTraits<ImagePipeSurfaceCreateFlagBitsFUCHSIA>
6036   {
6037     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                               isBitmask = true;
6038     static VULKAN_HPP_CONST_OR_CONSTEXPR ImagePipeSurfaceCreateFlagsFUCHSIA allFlags  = {};
6039   };
6040 #endif /*VK_USE_PLATFORM_FUCHSIA*/
6041 
6042 #if defined( VK_USE_PLATFORM_METAL_EXT )
6043   //=== VK_EXT_metal_surface ===
6044 
6045   enum class MetalSurfaceCreateFlagBitsEXT : VkMetalSurfaceCreateFlagsEXT
6046   {
6047   };
6048 
6049   using MetalSurfaceCreateFlagsEXT = Flags<MetalSurfaceCreateFlagBitsEXT>;
6050 
6051   template <>
6052   struct FlagTraits<MetalSurfaceCreateFlagBitsEXT>
6053   {
6054     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
6055     static VULKAN_HPP_CONST_OR_CONSTEXPR MetalSurfaceCreateFlagsEXT allFlags  = {};
6056   };
6057 #endif /*VK_USE_PLATFORM_METAL_EXT*/
6058 
6059   //=== VK_KHR_fragment_shading_rate ===
6060 
6061   enum class FragmentShadingRateCombinerOpKHR
6062   {
6063     eKeep    = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR,
6064     eReplace = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR,
6065     eMin     = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR,
6066     eMax     = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR,
6067     eMul     = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR
6068   };
6069 
6070   //=== VK_AMD_shader_core_properties2 ===
6071 
6072   enum class ShaderCorePropertiesFlagBitsAMD : VkShaderCorePropertiesFlagsAMD
6073   {
6074   };
6075 
6076   using ShaderCorePropertiesFlagsAMD = Flags<ShaderCorePropertiesFlagBitsAMD>;
6077 
6078   template <>
6079   struct FlagTraits<ShaderCorePropertiesFlagBitsAMD>
6080   {
6081     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                         isBitmask = true;
6082     static VULKAN_HPP_CONST_OR_CONSTEXPR ShaderCorePropertiesFlagsAMD allFlags  = {};
6083   };
6084 
6085   //=== VK_EXT_validation_features ===
6086 
6087   enum class ValidationFeatureEnableEXT
6088   {
6089     eGpuAssisted                   = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,
6090     eGpuAssistedReserveBindingSlot = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT,
6091     eBestPractices                 = VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,
6092     eDebugPrintf                   = VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT,
6093     eSynchronizationValidation     = VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT
6094   };
6095 
6096   enum class ValidationFeatureDisableEXT
6097   {
6098     eAll                   = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT,
6099     eShaders               = VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT,
6100     eThreadSafety          = VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT,
6101     eApiParameters         = VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT,
6102     eObjectLifetimes       = VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT,
6103     eCoreChecks            = VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT,
6104     eUniqueHandles         = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT,
6105     eShaderValidationCache = VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT
6106   };
6107 
6108   //=== VK_NV_cooperative_matrix ===
6109 
6110   enum class ScopeNV
6111   {
6112     eDevice      = VK_SCOPE_DEVICE_NV,
6113     eWorkgroup   = VK_SCOPE_WORKGROUP_NV,
6114     eSubgroup    = VK_SCOPE_SUBGROUP_NV,
6115     eQueueFamily = VK_SCOPE_QUEUE_FAMILY_NV
6116   };
6117 
6118   enum class ComponentTypeNV
6119   {
6120     eFloat16 = VK_COMPONENT_TYPE_FLOAT16_NV,
6121     eFloat32 = VK_COMPONENT_TYPE_FLOAT32_NV,
6122     eFloat64 = VK_COMPONENT_TYPE_FLOAT64_NV,
6123     eSint8   = VK_COMPONENT_TYPE_SINT8_NV,
6124     eSint16  = VK_COMPONENT_TYPE_SINT16_NV,
6125     eSint32  = VK_COMPONENT_TYPE_SINT32_NV,
6126     eSint64  = VK_COMPONENT_TYPE_SINT64_NV,
6127     eUint8   = VK_COMPONENT_TYPE_UINT8_NV,
6128     eUint16  = VK_COMPONENT_TYPE_UINT16_NV,
6129     eUint32  = VK_COMPONENT_TYPE_UINT32_NV,
6130     eUint64  = VK_COMPONENT_TYPE_UINT64_NV
6131   };
6132 
6133   //=== VK_NV_coverage_reduction_mode ===
6134 
6135   enum class CoverageReductionModeNV
6136   {
6137     eMerge    = VK_COVERAGE_REDUCTION_MODE_MERGE_NV,
6138     eTruncate = VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV
6139   };
6140 
6141   enum class PipelineCoverageReductionStateCreateFlagBitsNV : VkPipelineCoverageReductionStateCreateFlagsNV
6142   {
6143   };
6144 
6145   using PipelineCoverageReductionStateCreateFlagsNV = Flags<PipelineCoverageReductionStateCreateFlagBitsNV>;
6146 
6147   template <>
6148   struct FlagTraits<PipelineCoverageReductionStateCreateFlagBitsNV>
6149   {
6150     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                        isBitmask = true;
6151     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineCoverageReductionStateCreateFlagsNV allFlags  = {};
6152   };
6153 
6154   //=== VK_EXT_provoking_vertex ===
6155 
6156   enum class ProvokingVertexModeEXT
6157   {
6158     eFirstVertex = VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT,
6159     eLastVertex  = VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT
6160   };
6161 
6162 #if defined( VK_USE_PLATFORM_WIN32_KHR )
6163   //=== VK_EXT_full_screen_exclusive ===
6164 
6165   enum class FullScreenExclusiveEXT
6166   {
6167     eDefault               = VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT,
6168     eAllowed               = VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT,
6169     eDisallowed            = VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT,
6170     eApplicationControlled = VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
6171   };
6172 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
6173 
6174   //=== VK_EXT_headless_surface ===
6175 
6176   enum class HeadlessSurfaceCreateFlagBitsEXT : VkHeadlessSurfaceCreateFlagsEXT
6177   {
6178   };
6179 
6180   using HeadlessSurfaceCreateFlagsEXT = Flags<HeadlessSurfaceCreateFlagBitsEXT>;
6181 
6182   template <>
6183   struct FlagTraits<HeadlessSurfaceCreateFlagBitsEXT>
6184   {
6185     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                          isBitmask = true;
6186     static VULKAN_HPP_CONST_OR_CONSTEXPR HeadlessSurfaceCreateFlagsEXT allFlags  = {};
6187   };
6188 
6189   //=== VK_EXT_line_rasterization ===
6190 
6191   enum class LineRasterizationModeEXT
6192   {
6193     eDefault           = VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT,
6194     eRectangular       = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT,
6195     eBresenham         = VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT,
6196     eRectangularSmooth = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT
6197   };
6198 
6199   //=== VK_KHR_pipeline_executable_properties ===
6200 
6201   enum class PipelineExecutableStatisticFormatKHR
6202   {
6203     eBool32  = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR,
6204     eInt64   = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR,
6205     eUint64  = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR,
6206     eFloat64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR
6207   };
6208 
6209   //=== VK_EXT_surface_maintenance1 ===
6210 
6211   enum class PresentScalingFlagBitsEXT : VkPresentScalingFlagsEXT
6212   {
6213     eOneToOne           = VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT,
6214     eAspectRatioStretch = VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT,
6215     eStretch            = VK_PRESENT_SCALING_STRETCH_BIT_EXT
6216   };
6217 
6218   using PresentScalingFlagsEXT = Flags<PresentScalingFlagBitsEXT>;
6219 
6220   template <>
6221   struct FlagTraits<PresentScalingFlagBitsEXT>
6222   {
6223     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
6224     static VULKAN_HPP_CONST_OR_CONSTEXPR PresentScalingFlagsEXT allFlags =
6225       PresentScalingFlagBitsEXT::eOneToOne | PresentScalingFlagBitsEXT::eAspectRatioStretch | PresentScalingFlagBitsEXT::eStretch;
6226   };
6227 
6228   enum class PresentGravityFlagBitsEXT : VkPresentGravityFlagsEXT
6229   {
6230     eMin      = VK_PRESENT_GRAVITY_MIN_BIT_EXT,
6231     eMax      = VK_PRESENT_GRAVITY_MAX_BIT_EXT,
6232     eCentered = VK_PRESENT_GRAVITY_CENTERED_BIT_EXT
6233   };
6234 
6235   using PresentGravityFlagsEXT = Flags<PresentGravityFlagBitsEXT>;
6236 
6237   template <>
6238   struct FlagTraits<PresentGravityFlagBitsEXT>
6239   {
6240     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
6241     static VULKAN_HPP_CONST_OR_CONSTEXPR PresentGravityFlagsEXT allFlags =
6242       PresentGravityFlagBitsEXT::eMin | PresentGravityFlagBitsEXT::eMax | PresentGravityFlagBitsEXT::eCentered;
6243   };
6244 
6245   //=== VK_NV_device_generated_commands ===
6246 
6247   enum class IndirectStateFlagBitsNV : VkIndirectStateFlagsNV
6248   {
6249     eFlagFrontface = VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV
6250   };
6251 
6252   using IndirectStateFlagsNV = Flags<IndirectStateFlagBitsNV>;
6253 
6254   template <>
6255   struct FlagTraits<IndirectStateFlagBitsNV>
6256   {
6257     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                 isBitmask = true;
6258     static VULKAN_HPP_CONST_OR_CONSTEXPR IndirectStateFlagsNV allFlags  = IndirectStateFlagBitsNV::eFlagFrontface;
6259   };
6260 
6261   enum class IndirectCommandsTokenTypeNV
6262   {
6263     eShaderGroup   = VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV,
6264     eStateFlags    = VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV,
6265     eIndexBuffer   = VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV,
6266     eVertexBuffer  = VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV,
6267     ePushConstant  = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV,
6268     eDrawIndexed   = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV,
6269     eDraw          = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV,
6270     eDrawTasks     = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV,
6271     eDrawMeshTasks = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV
6272   };
6273 
6274   enum class IndirectCommandsLayoutUsageFlagBitsNV : VkIndirectCommandsLayoutUsageFlagsNV
6275   {
6276     eExplicitPreprocess = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV,
6277     eIndexedSequences   = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV,
6278     eUnorderedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV
6279   };
6280 
6281   using IndirectCommandsLayoutUsageFlagsNV = Flags<IndirectCommandsLayoutUsageFlagBitsNV>;
6282 
6283   template <>
6284   struct FlagTraits<IndirectCommandsLayoutUsageFlagBitsNV>
6285   {
6286     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                               isBitmask = true;
6287     static VULKAN_HPP_CONST_OR_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV allFlags  = IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess |
6288                                                                                        IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences |
6289                                                                                        IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences;
6290   };
6291 
6292   //=== VK_EXT_device_memory_report ===
6293 
6294   enum class DeviceMemoryReportEventTypeEXT
6295   {
6296     eAllocate         = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT,
6297     eFree             = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT,
6298     eImport           = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT,
6299     eUnimport         = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT,
6300     eAllocationFailed = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT
6301   };
6302 
6303   enum class DeviceMemoryReportFlagBitsEXT : VkDeviceMemoryReportFlagsEXT
6304   {
6305   };
6306 
6307   using DeviceMemoryReportFlagsEXT = Flags<DeviceMemoryReportFlagBitsEXT>;
6308 
6309   template <>
6310   struct FlagTraits<DeviceMemoryReportFlagBitsEXT>
6311   {
6312     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
6313     static VULKAN_HPP_CONST_OR_CONSTEXPR DeviceMemoryReportFlagsEXT allFlags  = {};
6314   };
6315 
6316   //=== VK_EXT_pipeline_creation_cache_control ===
6317 
6318   enum class PipelineCacheCreateFlagBits : VkPipelineCacheCreateFlags
6319   {
6320     eExternallySynchronized    = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
6321     eExternallySynchronizedEXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT
6322   };
6323 
6324   using PipelineCacheCreateFlags = Flags<PipelineCacheCreateFlagBits>;
6325 
6326   template <>
6327   struct FlagTraits<PipelineCacheCreateFlagBits>
6328   {
6329     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                     isBitmask = true;
6330     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineCacheCreateFlags allFlags  = PipelineCacheCreateFlagBits::eExternallySynchronized;
6331   };
6332 
6333 #if defined( VK_ENABLE_BETA_EXTENSIONS )
6334   //=== VK_KHR_video_encode_queue ===
6335 
6336   enum class VideoEncodeCapabilityFlagBitsKHR : VkVideoEncodeCapabilityFlagsKHR
6337   {
6338     ePrecedingExternallyEncodedBytes = VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR
6339   };
6340 
6341   using VideoEncodeCapabilityFlagsKHR = Flags<VideoEncodeCapabilityFlagBitsKHR>;
6342 
6343   template <>
6344   struct FlagTraits<VideoEncodeCapabilityFlagBitsKHR>
6345   {
6346     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                          isBitmask = true;
6347     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeCapabilityFlagsKHR allFlags  = VideoEncodeCapabilityFlagBitsKHR::ePrecedingExternallyEncodedBytes;
6348   };
6349 
6350   enum class VideoEncodeUsageFlagBitsKHR : VkVideoEncodeUsageFlagsKHR
6351   {
6352     eDefault      = VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR,
6353     eTranscoding  = VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR,
6354     eStreaming    = VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR,
6355     eRecording    = VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR,
6356     eConferencing = VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR
6357   };
6358 
6359   using VideoEncodeUsageFlagsKHR = Flags<VideoEncodeUsageFlagBitsKHR>;
6360 
6361   template <>
6362   struct FlagTraits<VideoEncodeUsageFlagBitsKHR>
6363   {
6364     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                     isBitmask = true;
6365     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeUsageFlagsKHR allFlags = VideoEncodeUsageFlagBitsKHR::eDefault | VideoEncodeUsageFlagBitsKHR::eTranscoding |
6366                                                                              VideoEncodeUsageFlagBitsKHR::eStreaming | VideoEncodeUsageFlagBitsKHR::eRecording |
6367                                                                              VideoEncodeUsageFlagBitsKHR::eConferencing;
6368   };
6369 
6370   enum class VideoEncodeContentFlagBitsKHR : VkVideoEncodeContentFlagsKHR
6371   {
6372     eDefault  = VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR,
6373     eCamera   = VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR,
6374     eDesktop  = VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR,
6375     eRendered = VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR
6376   };
6377 
6378   using VideoEncodeContentFlagsKHR = Flags<VideoEncodeContentFlagBitsKHR>;
6379 
6380   template <>
6381   struct FlagTraits<VideoEncodeContentFlagBitsKHR>
6382   {
6383     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
6384     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeContentFlagsKHR allFlags =
6385       VideoEncodeContentFlagBitsKHR::eDefault | VideoEncodeContentFlagBitsKHR::eCamera | VideoEncodeContentFlagBitsKHR::eDesktop |
6386       VideoEncodeContentFlagBitsKHR::eRendered;
6387   };
6388 
6389   enum class VideoEncodeTuningModeKHR
6390   {
6391     eDefault         = VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR,
6392     eHighQuality     = VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR,
6393     eLowLatency      = VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR,
6394     eUltraLowLatency = VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR,
6395     eLossless        = VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR
6396   };
6397 
6398   enum class VideoEncodeRateControlModeFlagBitsKHR : VkVideoEncodeRateControlModeFlagsKHR
6399   {
6400     eNone = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR,
6401     eCbr  = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR,
6402     eVbr  = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR
6403   };
6404 
6405   using VideoEncodeRateControlModeFlagsKHR = Flags<VideoEncodeRateControlModeFlagBitsKHR>;
6406 
6407   template <>
6408   struct FlagTraits<VideoEncodeRateControlModeFlagBitsKHR>
6409   {
6410     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                               isBitmask = true;
6411     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeRateControlModeFlagsKHR allFlags =
6412       VideoEncodeRateControlModeFlagBitsKHR::eNone | VideoEncodeRateControlModeFlagBitsKHR::eCbr | VideoEncodeRateControlModeFlagBitsKHR::eVbr;
6413   };
6414 
6415   enum class VideoEncodeFlagBitsKHR : VkVideoEncodeFlagsKHR
6416   {
6417   };
6418 
6419   using VideoEncodeFlagsKHR = Flags<VideoEncodeFlagBitsKHR>;
6420 
6421   template <>
6422   struct FlagTraits<VideoEncodeFlagBitsKHR>
6423   {
6424     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                isBitmask = true;
6425     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeFlagsKHR allFlags  = {};
6426   };
6427 
6428   enum class VideoEncodeRateControlFlagBitsKHR : VkVideoEncodeRateControlFlagsKHR
6429   {
6430   };
6431 
6432   using VideoEncodeRateControlFlagsKHR = Flags<VideoEncodeRateControlFlagBitsKHR>;
6433 
6434   template <>
6435   struct FlagTraits<VideoEncodeRateControlFlagBitsKHR>
6436   {
6437     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                           isBitmask = true;
6438     static VULKAN_HPP_CONST_OR_CONSTEXPR VideoEncodeRateControlFlagsKHR allFlags  = {};
6439   };
6440 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
6441 
6442   //=== VK_NV_device_diagnostics_config ===
6443 
6444   enum class DeviceDiagnosticsConfigFlagBitsNV : VkDeviceDiagnosticsConfigFlagsNV
6445   {
6446     eEnableShaderDebugInfo      = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV,
6447     eEnableResourceTracking     = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV,
6448     eEnableAutomaticCheckpoints = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV,
6449     eEnableShaderErrorReporting = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV
6450   };
6451 
6452   using DeviceDiagnosticsConfigFlagsNV = Flags<DeviceDiagnosticsConfigFlagBitsNV>;
6453 
6454   template <>
6455   struct FlagTraits<DeviceDiagnosticsConfigFlagBitsNV>
6456   {
6457     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                           isBitmask = true;
6458     static VULKAN_HPP_CONST_OR_CONSTEXPR DeviceDiagnosticsConfigFlagsNV allFlags =
6459       DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo | DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking |
6460       DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints | DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderErrorReporting;
6461   };
6462 
6463 #if defined( VK_USE_PLATFORM_METAL_EXT )
6464   //=== VK_EXT_metal_objects ===
6465 
6466   enum class ExportMetalObjectTypeFlagBitsEXT : VkExportMetalObjectTypeFlagsEXT
6467   {
6468     eMetalDevice       = VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT,
6469     eMetalCommandQueue = VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT,
6470     eMetalBuffer       = VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT,
6471     eMetalTexture      = VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT,
6472     eMetalIosurface    = VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT,
6473     eMetalSharedEvent  = VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT
6474   };
6475 
6476   using ExportMetalObjectTypeFlagsEXT = Flags<ExportMetalObjectTypeFlagBitsEXT>;
6477 
6478   template <>
6479   struct FlagTraits<ExportMetalObjectTypeFlagBitsEXT>
6480   {
6481     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                          isBitmask = true;
6482     static VULKAN_HPP_CONST_OR_CONSTEXPR ExportMetalObjectTypeFlagsEXT allFlags =
6483       ExportMetalObjectTypeFlagBitsEXT::eMetalDevice | ExportMetalObjectTypeFlagBitsEXT::eMetalCommandQueue | ExportMetalObjectTypeFlagBitsEXT::eMetalBuffer |
6484       ExportMetalObjectTypeFlagBitsEXT::eMetalTexture | ExportMetalObjectTypeFlagBitsEXT::eMetalIosurface | ExportMetalObjectTypeFlagBitsEXT::eMetalSharedEvent;
6485   };
6486 #endif /*VK_USE_PLATFORM_METAL_EXT*/
6487 
6488   //=== VK_EXT_graphics_pipeline_library ===
6489 
6490   enum class GraphicsPipelineLibraryFlagBitsEXT : VkGraphicsPipelineLibraryFlagsEXT
6491   {
6492     eVertexInputInterface    = VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT,
6493     ePreRasterizationShaders = VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,
6494     eFragmentShader          = VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT,
6495     eFragmentOutputInterface = VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
6496   };
6497 
6498   using GraphicsPipelineLibraryFlagsEXT = Flags<GraphicsPipelineLibraryFlagBitsEXT>;
6499 
6500   template <>
6501   struct FlagTraits<GraphicsPipelineLibraryFlagBitsEXT>
6502   {
6503     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                            isBitmask = true;
6504     static VULKAN_HPP_CONST_OR_CONSTEXPR GraphicsPipelineLibraryFlagsEXT allFlags =
6505       GraphicsPipelineLibraryFlagBitsEXT::eVertexInputInterface | GraphicsPipelineLibraryFlagBitsEXT::ePreRasterizationShaders |
6506       GraphicsPipelineLibraryFlagBitsEXT::eFragmentShader | GraphicsPipelineLibraryFlagBitsEXT::eFragmentOutputInterface;
6507   };
6508 
6509   enum class PipelineLayoutCreateFlagBits : VkPipelineLayoutCreateFlags
6510   {
6511     eIndependentSetsEXT = VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
6512   };
6513 
6514   using PipelineLayoutCreateFlags = Flags<PipelineLayoutCreateFlagBits>;
6515 
6516   template <>
6517   struct FlagTraits<PipelineLayoutCreateFlagBits>
6518   {
6519     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                      isBitmask = true;
6520     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineLayoutCreateFlags allFlags  = PipelineLayoutCreateFlagBits::eIndependentSetsEXT;
6521   };
6522 
6523   //=== VK_NV_fragment_shading_rate_enums ===
6524 
6525   enum class FragmentShadingRateNV
6526   {
6527     e1InvocationPerPixel     = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV,
6528     e1InvocationPer1X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV,
6529     e1InvocationPer2X1Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV,
6530     e1InvocationPer2X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV,
6531     e1InvocationPer2X4Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV,
6532     e1InvocationPer4X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV,
6533     e1InvocationPer4X4Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV,
6534     e2InvocationsPerPixel    = VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV,
6535     e4InvocationsPerPixel    = VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV,
6536     e8InvocationsPerPixel    = VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV,
6537     e16InvocationsPerPixel   = VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV,
6538     eNoInvocations           = VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV
6539   };
6540 
6541   enum class FragmentShadingRateTypeNV
6542   {
6543     eFragmentSize = VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV,
6544     eEnums        = VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV
6545   };
6546 
6547   //=== VK_NV_ray_tracing_motion_blur ===
6548 
6549   enum class AccelerationStructureMotionInstanceTypeNV
6550   {
6551     eStatic       = VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV,
6552     eMatrixMotion = VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV,
6553     eSrtMotion    = VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV
6554   };
6555 
6556   enum class AccelerationStructureMotionInfoFlagBitsNV : VkAccelerationStructureMotionInfoFlagsNV
6557   {
6558   };
6559 
6560   using AccelerationStructureMotionInfoFlagsNV = Flags<AccelerationStructureMotionInfoFlagBitsNV>;
6561 
6562   template <>
6563   struct FlagTraits<AccelerationStructureMotionInfoFlagBitsNV>
6564   {
6565     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                   isBitmask = true;
6566     static VULKAN_HPP_CONST_OR_CONSTEXPR AccelerationStructureMotionInfoFlagsNV allFlags  = {};
6567   };
6568 
6569   enum class AccelerationStructureMotionInstanceFlagBitsNV : VkAccelerationStructureMotionInstanceFlagsNV
6570   {
6571   };
6572 
6573   using AccelerationStructureMotionInstanceFlagsNV = Flags<AccelerationStructureMotionInstanceFlagBitsNV>;
6574 
6575   template <>
6576   struct FlagTraits<AccelerationStructureMotionInstanceFlagBitsNV>
6577   {
6578     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                       isBitmask = true;
6579     static VULKAN_HPP_CONST_OR_CONSTEXPR AccelerationStructureMotionInstanceFlagsNV allFlags  = {};
6580   };
6581 
6582   //=== VK_EXT_image_compression_control ===
6583 
6584   enum class ImageCompressionFlagBitsEXT : VkImageCompressionFlagsEXT
6585   {
6586     eDefault           = VK_IMAGE_COMPRESSION_DEFAULT_EXT,
6587     eFixedRateDefault  = VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT,
6588     eFixedRateExplicit = VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT,
6589     eDisabled          = VK_IMAGE_COMPRESSION_DISABLED_EXT
6590   };
6591 
6592   using ImageCompressionFlagsEXT = Flags<ImageCompressionFlagBitsEXT>;
6593 
6594   template <>
6595   struct FlagTraits<ImageCompressionFlagBitsEXT>
6596   {
6597     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                     isBitmask = true;
6598     static VULKAN_HPP_CONST_OR_CONSTEXPR ImageCompressionFlagsEXT allFlags =
6599       ImageCompressionFlagBitsEXT::eDefault | ImageCompressionFlagBitsEXT::eFixedRateDefault | ImageCompressionFlagBitsEXT::eFixedRateExplicit |
6600       ImageCompressionFlagBitsEXT::eDisabled;
6601   };
6602 
6603   enum class ImageCompressionFixedRateFlagBitsEXT : VkImageCompressionFixedRateFlagsEXT
6604   {
6605     eNone  = VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT,
6606     e1Bpc  = VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT,
6607     e2Bpc  = VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT,
6608     e3Bpc  = VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT,
6609     e4Bpc  = VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT,
6610     e5Bpc  = VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT,
6611     e6Bpc  = VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT,
6612     e7Bpc  = VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT,
6613     e8Bpc  = VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT,
6614     e9Bpc  = VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT,
6615     e10Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT,
6616     e11Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT,
6617     e12Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT,
6618     e13Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT,
6619     e14Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT,
6620     e15Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT,
6621     e16Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT,
6622     e17Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT,
6623     e18Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT,
6624     e19Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT,
6625     e20Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT,
6626     e21Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT,
6627     e22Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT,
6628     e23Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT,
6629     e24Bpc = VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT
6630   };
6631 
6632   using ImageCompressionFixedRateFlagsEXT = Flags<ImageCompressionFixedRateFlagBitsEXT>;
6633 
6634   template <>
6635   struct FlagTraits<ImageCompressionFixedRateFlagBitsEXT>
6636   {
6637     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                              isBitmask = true;
6638     static VULKAN_HPP_CONST_OR_CONSTEXPR ImageCompressionFixedRateFlagsEXT allFlags =
6639       ImageCompressionFixedRateFlagBitsEXT::eNone | ImageCompressionFixedRateFlagBitsEXT::e1Bpc | ImageCompressionFixedRateFlagBitsEXT::e2Bpc |
6640       ImageCompressionFixedRateFlagBitsEXT::e3Bpc | ImageCompressionFixedRateFlagBitsEXT::e4Bpc | ImageCompressionFixedRateFlagBitsEXT::e5Bpc |
6641       ImageCompressionFixedRateFlagBitsEXT::e6Bpc | ImageCompressionFixedRateFlagBitsEXT::e7Bpc | ImageCompressionFixedRateFlagBitsEXT::e8Bpc |
6642       ImageCompressionFixedRateFlagBitsEXT::e9Bpc | ImageCompressionFixedRateFlagBitsEXT::e10Bpc | ImageCompressionFixedRateFlagBitsEXT::e11Bpc |
6643       ImageCompressionFixedRateFlagBitsEXT::e12Bpc | ImageCompressionFixedRateFlagBitsEXT::e13Bpc | ImageCompressionFixedRateFlagBitsEXT::e14Bpc |
6644       ImageCompressionFixedRateFlagBitsEXT::e15Bpc | ImageCompressionFixedRateFlagBitsEXT::e16Bpc | ImageCompressionFixedRateFlagBitsEXT::e17Bpc |
6645       ImageCompressionFixedRateFlagBitsEXT::e18Bpc | ImageCompressionFixedRateFlagBitsEXT::e19Bpc | ImageCompressionFixedRateFlagBitsEXT::e20Bpc |
6646       ImageCompressionFixedRateFlagBitsEXT::e21Bpc | ImageCompressionFixedRateFlagBitsEXT::e22Bpc | ImageCompressionFixedRateFlagBitsEXT::e23Bpc |
6647       ImageCompressionFixedRateFlagBitsEXT::e24Bpc;
6648   };
6649 
6650   //=== VK_EXT_device_fault ===
6651 
6652   enum class DeviceFaultAddressTypeEXT
6653   {
6654     eNone                      = VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT,
6655     eReadInvalid               = VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT,
6656     eWriteInvalid              = VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT,
6657     eExecuteInvalid            = VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT,
6658     eInstructionPointerUnknown = VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT,
6659     eInstructionPointerInvalid = VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT,
6660     eInstructionPointerFault   = VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT
6661   };
6662 
6663   enum class DeviceFaultVendorBinaryHeaderVersionEXT
6664   {
6665     eOne = VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT
6666   };
6667 
6668   //=== VK_ARM_rasterization_order_attachment_access ===
6669 
6670   enum class PipelineColorBlendStateCreateFlagBits : VkPipelineColorBlendStateCreateFlags
6671   {
6672     eRasterizationOrderAttachmentAccessARM =
6673       VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM
6674   };
6675 
to_string(PipelineColorBlendStateCreateFlagBits value)6676   VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlagBits value )
6677   {
6678     switch ( value )
6679     {
6680       case PipelineColorBlendStateCreateFlagBits::eRasterizationOrderAttachmentAccessARM:
6681         return "RasterizationOrderAttachmentAccessARM";
6682       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6683     }
6684   }
6685 
6686   enum class PipelineDepthStencilStateCreateFlagBits : VkPipelineDepthStencilStateCreateFlags
6687   {
6688     eRasterizationOrderAttachmentDepthAccessARM =
6689       VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM,
6690     eRasterizationOrderAttachmentStencilAccessARM =
6691       VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM
6692   };
6693 
to_string(PipelineDepthStencilStateCreateFlagBits value)6694   VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlagBits value )
6695   {
6696     switch ( value )
6697     {
6698       case PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentDepthAccessARM:
6699         return "RasterizationOrderAttachmentDepthAccessARM";
6700       case PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentStencilAccessARM:
6701         return "RasterizationOrderAttachmentStencilAccessARM";
6702       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6703     }
6704   }
6705 
6706 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
6707   //=== VK_EXT_directfb_surface ===
6708 
6709   enum class DirectFBSurfaceCreateFlagBitsEXT : VkDirectFBSurfaceCreateFlagsEXT
6710   {
6711   };
6712 
6713   using DirectFBSurfaceCreateFlagsEXT = Flags<DirectFBSurfaceCreateFlagBitsEXT>;
6714 
6715   template <>
6716   struct FlagTraits<DirectFBSurfaceCreateFlagBitsEXT>
6717   {
6718     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                          isBitmask = true;
6719     static VULKAN_HPP_CONST_OR_CONSTEXPR DirectFBSurfaceCreateFlagsEXT allFlags  = {};
6720   };
6721 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
6722 
6723   //=== VK_KHR_ray_tracing_pipeline ===
6724 
6725   enum class RayTracingShaderGroupTypeKHR
6726   {
6727     eGeneral            = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
6728     eTrianglesHitGroup  = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
6729     eProceduralHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR
6730   };
6731   using RayTracingShaderGroupTypeNV = RayTracingShaderGroupTypeKHR;
6732 
6733   enum class ShaderGroupShaderKHR
6734   {
6735     eGeneral      = VK_SHADER_GROUP_SHADER_GENERAL_KHR,
6736     eClosestHit   = VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR,
6737     eAnyHit       = VK_SHADER_GROUP_SHADER_ANY_HIT_KHR,
6738     eIntersection = VK_SHADER_GROUP_SHADER_INTERSECTION_KHR
6739   };
6740 
6741   //=== VK_EXT_device_address_binding_report ===
6742 
6743   enum class DeviceAddressBindingFlagBitsEXT : VkDeviceAddressBindingFlagsEXT
6744   {
6745     eInternalObject = VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT
6746   };
6747 
6748   using DeviceAddressBindingFlagsEXT = Flags<DeviceAddressBindingFlagBitsEXT>;
6749 
6750   template <>
6751   struct FlagTraits<DeviceAddressBindingFlagBitsEXT>
6752   {
6753     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                         isBitmask = true;
6754     static VULKAN_HPP_CONST_OR_CONSTEXPR DeviceAddressBindingFlagsEXT allFlags  = DeviceAddressBindingFlagBitsEXT::eInternalObject;
6755   };
6756 
6757   enum class DeviceAddressBindingTypeEXT
6758   {
6759     eBind   = VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT,
6760     eUnbind = VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT
6761   };
6762 
6763 #if defined( VK_USE_PLATFORM_FUCHSIA )
6764   //=== VK_FUCHSIA_buffer_collection ===
6765 
6766   enum class ImageConstraintsInfoFlagBitsFUCHSIA : VkImageConstraintsInfoFlagsFUCHSIA
6767   {
6768     eCpuReadRarely     = VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA,
6769     eCpuReadOften      = VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA,
6770     eCpuWriteRarely    = VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA,
6771     eCpuWriteOften     = VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA,
6772     eProtectedOptional = VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA
6773   };
6774 
6775   using ImageConstraintsInfoFlagsFUCHSIA = Flags<ImageConstraintsInfoFlagBitsFUCHSIA>;
6776 
6777   template <>
6778   struct FlagTraits<ImageConstraintsInfoFlagBitsFUCHSIA>
6779   {
6780     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                             isBitmask = true;
6781     static VULKAN_HPP_CONST_OR_CONSTEXPR ImageConstraintsInfoFlagsFUCHSIA allFlags =
6782       ImageConstraintsInfoFlagBitsFUCHSIA::eCpuReadRarely | ImageConstraintsInfoFlagBitsFUCHSIA::eCpuReadOften |
6783       ImageConstraintsInfoFlagBitsFUCHSIA::eCpuWriteRarely | ImageConstraintsInfoFlagBitsFUCHSIA::eCpuWriteOften |
6784       ImageConstraintsInfoFlagBitsFUCHSIA::eProtectedOptional;
6785   };
6786 
6787   enum class ImageFormatConstraintsFlagBitsFUCHSIA : VkImageFormatConstraintsFlagsFUCHSIA
6788   {
6789   };
6790 
6791   using ImageFormatConstraintsFlagsFUCHSIA = Flags<ImageFormatConstraintsFlagBitsFUCHSIA>;
6792 
6793   template <>
6794   struct FlagTraits<ImageFormatConstraintsFlagBitsFUCHSIA>
6795   {
6796     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                               isBitmask = true;
6797     static VULKAN_HPP_CONST_OR_CONSTEXPR ImageFormatConstraintsFlagsFUCHSIA allFlags  = {};
6798   };
6799 #endif /*VK_USE_PLATFORM_FUCHSIA*/
6800 
6801 #if defined( VK_USE_PLATFORM_FUCHSIA )
6802   //=== VK_FUCHSIA_buffer_collection ===
6803 
6804   enum class ImageConstraintsInfoFlagBitsFUCHSIA : VkImageConstraintsInfoFlagsFUCHSIA
6805   {
6806     eCpuReadRarely     = VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA,
6807     eCpuReadOften      = VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA,
6808     eCpuWriteRarely    = VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA,
6809     eCpuWriteOften     = VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA,
6810     eProtectedOptional = VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA
6811   };
6812 
to_string(ImageConstraintsInfoFlagBitsFUCHSIA value)6813   VULKAN_HPP_INLINE std::string to_string( ImageConstraintsInfoFlagBitsFUCHSIA value )
6814   {
6815     switch ( value )
6816     {
6817       case ImageConstraintsInfoFlagBitsFUCHSIA::eCpuReadRarely: return "CpuReadRarely";
6818       case ImageConstraintsInfoFlagBitsFUCHSIA::eCpuReadOften: return "CpuReadOften";
6819       case ImageConstraintsInfoFlagBitsFUCHSIA::eCpuWriteRarely: return "CpuWriteRarely";
6820       case ImageConstraintsInfoFlagBitsFUCHSIA::eCpuWriteOften: return "CpuWriteOften";
6821       case ImageConstraintsInfoFlagBitsFUCHSIA::eProtectedOptional: return "ProtectedOptional";
6822       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6823     }
6824   }
6825 
6826   enum class ImageFormatConstraintsFlagBitsFUCHSIA : VkImageFormatConstraintsFlagsFUCHSIA
6827   {
6828   };
6829 
to_string(ImageFormatConstraintsFlagBitsFUCHSIA)6830   VULKAN_HPP_INLINE std::string to_string( ImageFormatConstraintsFlagBitsFUCHSIA )
6831   {
6832     return "(void)";
6833   }
6834 #endif /*VK_USE_PLATFORM_FUCHSIA*/
6835 
6836 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
6837   //=== VK_QNX_screen_surface ===
6838 
6839   enum class ScreenSurfaceCreateFlagBitsQNX : VkScreenSurfaceCreateFlagsQNX
6840   {
6841   };
6842 
6843   using ScreenSurfaceCreateFlagsQNX = Flags<ScreenSurfaceCreateFlagBitsQNX>;
6844 
6845   template <>
6846   struct FlagTraits<ScreenSurfaceCreateFlagBitsQNX>
6847   {
6848     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                        isBitmask = true;
6849     static VULKAN_HPP_CONST_OR_CONSTEXPR ScreenSurfaceCreateFlagsQNX allFlags  = {};
6850   };
6851 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
6852 
6853   //=== VK_EXT_opacity_micromap ===
6854 
6855   enum class MicromapTypeEXT
6856   {
6857     eOpacityMicromap = VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT
6858   };
6859 
6860   enum class BuildMicromapFlagBitsEXT : VkBuildMicromapFlagsEXT
6861   {
6862     ePreferFastTrace = VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT,
6863     ePreferFastBuild = VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT,
6864     eAllowCompaction = VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT
6865   };
6866 
6867   using BuildMicromapFlagsEXT = Flags<BuildMicromapFlagBitsEXT>;
6868 
6869   template <>
6870   struct FlagTraits<BuildMicromapFlagBitsEXT>
6871   {
6872     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                  isBitmask = true;
6873     static VULKAN_HPP_CONST_OR_CONSTEXPR BuildMicromapFlagsEXT allFlags =
6874       BuildMicromapFlagBitsEXT::ePreferFastTrace | BuildMicromapFlagBitsEXT::ePreferFastBuild | BuildMicromapFlagBitsEXT::eAllowCompaction;
6875   };
6876 
6877   enum class CopyMicromapModeEXT
6878   {
6879     eClone       = VK_COPY_MICROMAP_MODE_CLONE_EXT,
6880     eSerialize   = VK_COPY_MICROMAP_MODE_SERIALIZE_EXT,
6881     eDeserialize = VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT,
6882     eCompact     = VK_COPY_MICROMAP_MODE_COMPACT_EXT
6883   };
6884 
6885   enum class MicromapCreateFlagBitsEXT : VkMicromapCreateFlagsEXT
6886   {
6887     eDeviceAddressCaptureReplay = VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT
6888   };
6889 
6890   using MicromapCreateFlagsEXT = Flags<MicromapCreateFlagBitsEXT>;
6891 
6892   template <>
6893   struct FlagTraits<MicromapCreateFlagBitsEXT>
6894   {
6895     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                   isBitmask = true;
6896     static VULKAN_HPP_CONST_OR_CONSTEXPR MicromapCreateFlagsEXT allFlags  = MicromapCreateFlagBitsEXT::eDeviceAddressCaptureReplay;
6897   };
6898 
6899   enum class BuildMicromapModeEXT
6900   {
6901     eBuild = VK_BUILD_MICROMAP_MODE_BUILD_EXT
6902   };
6903 
6904   enum class OpacityMicromapFormatEXT
6905   {
6906     e2State = VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT,
6907     e4State = VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT
6908   };
6909 
6910   enum class OpacityMicromapSpecialIndexEXT
6911   {
6912     eFullyTransparent        = VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT,
6913     eFullyOpaque             = VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT,
6914     eFullyUnknownTransparent = VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT,
6915     eFullyUnknownOpaque      = VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT
6916   };
6917 
6918   //=== VK_NV_memory_decompression ===
6919 
6920   enum class MemoryDecompressionMethodFlagBitsNV : VkMemoryDecompressionMethodFlagsNV
6921   {
6922     eGdeflate10 = VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV
6923   };
6924 
6925   using MemoryDecompressionMethodFlagsNV = Flags<MemoryDecompressionMethodFlagBitsNV>;
6926 
6927   template <>
6928   struct FlagTraits<MemoryDecompressionMethodFlagBitsNV>
6929   {
6930     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                             isBitmask = true;
6931     static VULKAN_HPP_CONST_OR_CONSTEXPR MemoryDecompressionMethodFlagsNV allFlags  = MemoryDecompressionMethodFlagBitsNV::eGdeflate10;
6932   };
6933 
6934   //=== VK_EXT_subpass_merge_feedback ===
6935 
6936   enum class SubpassMergeStatusEXT
6937   {
6938     eMerged                               = VK_SUBPASS_MERGE_STATUS_MERGED_EXT,
6939     eDisallowed                           = VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT,
6940     eNotMergedSideEffects                 = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT,
6941     eNotMergedSamplesMismatch             = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT,
6942     eNotMergedViewsMismatch               = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT,
6943     eNotMergedAliasing                    = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT,
6944     eNotMergedDependencies                = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT,
6945     eNotMergedIncompatibleInputAttachment = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT,
6946     eNotMergedTooManyAttachments          = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT,
6947     eNotMergedInsufficientStorage         = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT,
6948     eNotMergedDepthStencilCount           = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT,
6949     eNotMergedResolveAttachmentReuse      = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT,
6950     eNotMergedSingleSubpass               = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT,
6951     eNotMergedUnspecified                 = VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT
6952   };
6953 
6954   //=== VK_LUNARG_direct_driver_loading ===
6955 
6956   enum class DirectDriverLoadingModeLUNARG
6957   {
6958     eExclusive = VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG,
6959     eInclusive = VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG
6960   };
6961 
6962   enum class DirectDriverLoadingFlagBitsLUNARG : VkDirectDriverLoadingFlagsLUNARG
6963   {
6964   };
6965 
6966   using DirectDriverLoadingFlagsLUNARG = Flags<DirectDriverLoadingFlagBitsLUNARG>;
6967 
6968   template <>
6969   struct FlagTraits<DirectDriverLoadingFlagBitsLUNARG>
6970   {
6971     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                           isBitmask = true;
6972     static VULKAN_HPP_CONST_OR_CONSTEXPR DirectDriverLoadingFlagsLUNARG allFlags  = {};
6973   };
6974 
6975   //=== VK_EXT_rasterization_order_attachment_access ===
6976 
6977   enum class PipelineColorBlendStateCreateFlagBits : VkPipelineColorBlendStateCreateFlags
6978   {
6979     eRasterizationOrderAttachmentAccessEXT = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT,
6980     eRasterizationOrderAttachmentAccessARM = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM
6981   };
6982 
6983   using PipelineColorBlendStateCreateFlags = Flags<PipelineColorBlendStateCreateFlagBits>;
6984 
6985   template <>
6986   struct FlagTraits<PipelineColorBlendStateCreateFlagBits>
6987   {
6988     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                               isBitmask = true;
6989     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineColorBlendStateCreateFlags allFlags =
6990       PipelineColorBlendStateCreateFlagBits::eRasterizationOrderAttachmentAccessEXT;
6991   };
6992 
6993   enum class PipelineDepthStencilStateCreateFlagBits : VkPipelineDepthStencilStateCreateFlags
6994   {
6995     eRasterizationOrderAttachmentDepthAccessEXT   = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
6996     eRasterizationOrderAttachmentStencilAccessEXT = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
6997     eRasterizationOrderAttachmentDepthAccessARM   = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM,
6998     eRasterizationOrderAttachmentStencilAccessARM = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM
6999   };
7000 
7001   using PipelineDepthStencilStateCreateFlags = Flags<PipelineDepthStencilStateCreateFlagBits>;
7002 
7003   template <>
7004   struct FlagTraits<PipelineDepthStencilStateCreateFlagBits>
7005   {
7006     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                 isBitmask = true;
7007     static VULKAN_HPP_CONST_OR_CONSTEXPR PipelineDepthStencilStateCreateFlags allFlags =
7008       PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentDepthAccessEXT |
7009       PipelineDepthStencilStateCreateFlagBits::eRasterizationOrderAttachmentStencilAccessEXT;
7010   };
7011 
7012   //=== VK_NV_optical_flow ===
7013 
7014   enum class OpticalFlowUsageFlagBitsNV : VkOpticalFlowUsageFlagsNV
7015   {
7016     eUnknown    = VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV,
7017     eInput      = VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV,
7018     eOutput     = VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV,
7019     eHint       = VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV,
7020     eCost       = VK_OPTICAL_FLOW_USAGE_COST_BIT_NV,
7021     eGlobalFlow = VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV
7022   };
7023 
7024   using OpticalFlowUsageFlagsNV = Flags<OpticalFlowUsageFlagBitsNV>;
7025 
7026   template <>
7027   struct FlagTraits<OpticalFlowUsageFlagBitsNV>
7028   {
7029     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                    isBitmask = true;
7030     static VULKAN_HPP_CONST_OR_CONSTEXPR OpticalFlowUsageFlagsNV allFlags  = OpticalFlowUsageFlagBitsNV::eUnknown | OpticalFlowUsageFlagBitsNV::eInput |
7031                                                                             OpticalFlowUsageFlagBitsNV::eOutput | OpticalFlowUsageFlagBitsNV::eHint |
7032                                                                             OpticalFlowUsageFlagBitsNV::eCost | OpticalFlowUsageFlagBitsNV::eGlobalFlow;
7033   };
7034 
7035   enum class OpticalFlowGridSizeFlagBitsNV : VkOpticalFlowGridSizeFlagsNV
7036   {
7037     eUnknown = VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV,
7038     e1X1     = VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV,
7039     e2X2     = VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV,
7040     e4X4     = VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV,
7041     e8X8     = VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV
7042   };
7043 
7044   using OpticalFlowGridSizeFlagsNV = Flags<OpticalFlowGridSizeFlagBitsNV>;
7045 
7046   template <>
7047   struct FlagTraits<OpticalFlowGridSizeFlagBitsNV>
7048   {
7049     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                       isBitmask = true;
7050     static VULKAN_HPP_CONST_OR_CONSTEXPR OpticalFlowGridSizeFlagsNV allFlags  = OpticalFlowGridSizeFlagBitsNV::eUnknown | OpticalFlowGridSizeFlagBitsNV::e1X1 |
7051                                                                                OpticalFlowGridSizeFlagBitsNV::e2X2 | OpticalFlowGridSizeFlagBitsNV::e4X4 |
7052                                                                                OpticalFlowGridSizeFlagBitsNV::e8X8;
7053   };
7054 
7055   enum class OpticalFlowPerformanceLevelNV
7056   {
7057     eUnknown = VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV,
7058     eSlow    = VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV,
7059     eMedium  = VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV,
7060     eFast    = VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV
7061   };
7062 
7063   enum class OpticalFlowSessionBindingPointNV
7064   {
7065     eUnknown            = VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV,
7066     eInput              = VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV,
7067     eReference          = VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV,
7068     eHint               = VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV,
7069     eFlowVector         = VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV,
7070     eBackwardFlowVector = VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV,
7071     eCost               = VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV,
7072     eBackwardCost       = VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV,
7073     eGlobalFlow         = VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV
7074   };
7075 
7076   enum class OpticalFlowSessionCreateFlagBitsNV : VkOpticalFlowSessionCreateFlagsNV
7077   {
7078     eEnableHint       = VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV,
7079     eEnableCost       = VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV,
7080     eEnableGlobalFlow = VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV,
7081     eAllowRegions     = VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV,
7082     eBothDirections   = VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV
7083   };
7084 
7085   using OpticalFlowSessionCreateFlagsNV = Flags<OpticalFlowSessionCreateFlagBitsNV>;
7086 
7087   template <>
7088   struct FlagTraits<OpticalFlowSessionCreateFlagBitsNV>
7089   {
7090     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                            isBitmask = true;
7091     static VULKAN_HPP_CONST_OR_CONSTEXPR OpticalFlowSessionCreateFlagsNV allFlags =
7092       OpticalFlowSessionCreateFlagBitsNV::eEnableHint | OpticalFlowSessionCreateFlagBitsNV::eEnableCost |
7093       OpticalFlowSessionCreateFlagBitsNV::eEnableGlobalFlow | OpticalFlowSessionCreateFlagBitsNV::eAllowRegions |
7094       OpticalFlowSessionCreateFlagBitsNV::eBothDirections;
7095   };
7096 
7097   enum class OpticalFlowExecuteFlagBitsNV : VkOpticalFlowExecuteFlagsNV
7098   {
7099     eDisableTemporalHints = VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV
7100   };
7101 
7102   using OpticalFlowExecuteFlagsNV = Flags<OpticalFlowExecuteFlagBitsNV>;
7103 
7104   template <>
7105   struct FlagTraits<OpticalFlowExecuteFlagBitsNV>
7106   {
7107     static VULKAN_HPP_CONST_OR_CONSTEXPR bool                      isBitmask = true;
7108     static VULKAN_HPP_CONST_OR_CONSTEXPR OpticalFlowExecuteFlagsNV allFlags  = OpticalFlowExecuteFlagBitsNV::eDisableTemporalHints;
7109   };
7110 
7111   //=== VK_NV_ray_tracing_invocation_reorder ===
7112 
7113   enum class RayTracingInvocationReorderModeNV
7114   {
7115     eNone    = VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV,
7116     eReorder = VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV
7117   };
7118 
7119   //=========================
7120   //=== Index Type Traits ===
7121   //=========================
7122 
7123   //=====================
7124   //=== Format Traits ===
7125   //=====================
7126 
7127   // The texel block size in bytes.
blockSize(VULKAN_HPP_NAMESPACE::Format format)7128   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t blockSize( VULKAN_HPP_NAMESPACE::Format format )
7129   {
7130     switch ( format )
7131     {
7132       case VULKAN_HPP_NAMESPACE::Format::eR4G4UnormPack8: return 1;
7133       case VULKAN_HPP_NAMESPACE::Format::eR4G4B4A4UnormPack16: return 2;
7134       case VULKAN_HPP_NAMESPACE::Format::eB4G4R4A4UnormPack16: return 2;
7135       case VULKAN_HPP_NAMESPACE::Format::eR5G6B5UnormPack16: return 2;
7136       case VULKAN_HPP_NAMESPACE::Format::eB5G6R5UnormPack16: return 2;
7137       case VULKAN_HPP_NAMESPACE::Format::eR5G5B5A1UnormPack16: return 2;
7138       case VULKAN_HPP_NAMESPACE::Format::eB5G5R5A1UnormPack16: return 2;
7139       case VULKAN_HPP_NAMESPACE::Format::eA1R5G5B5UnormPack16: return 2;
7140       case VULKAN_HPP_NAMESPACE::Format::eR8Unorm: return 1;
7141       case VULKAN_HPP_NAMESPACE::Format::eR8Snorm: return 1;
7142       case VULKAN_HPP_NAMESPACE::Format::eR8Uscaled: return 1;
7143       case VULKAN_HPP_NAMESPACE::Format::eR8Sscaled: return 1;
7144       case VULKAN_HPP_NAMESPACE::Format::eR8Uint: return 1;
7145       case VULKAN_HPP_NAMESPACE::Format::eR8Sint: return 1;
7146       case VULKAN_HPP_NAMESPACE::Format::eR8Srgb: return 1;
7147       case VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm: return 2;
7148       case VULKAN_HPP_NAMESPACE::Format::eR8G8Snorm: return 2;
7149       case VULKAN_HPP_NAMESPACE::Format::eR8G8Uscaled: return 2;
7150       case VULKAN_HPP_NAMESPACE::Format::eR8G8Sscaled: return 2;
7151       case VULKAN_HPP_NAMESPACE::Format::eR8G8Uint: return 2;
7152       case VULKAN_HPP_NAMESPACE::Format::eR8G8Sint: return 2;
7153       case VULKAN_HPP_NAMESPACE::Format::eR8G8Srgb: return 2;
7154       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Unorm: return 3;
7155       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Snorm: return 3;
7156       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uscaled: return 3;
7157       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sscaled: return 3;
7158       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uint: return 3;
7159       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sint: return 3;
7160       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Srgb: return 3;
7161       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Unorm: return 3;
7162       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Snorm: return 3;
7163       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uscaled: return 3;
7164       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sscaled: return 3;
7165       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uint: return 3;
7166       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sint: return 3;
7167       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Srgb: return 3;
7168       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Unorm: return 4;
7169       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Snorm: return 4;
7170       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uscaled: return 4;
7171       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sscaled: return 4;
7172       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uint: return 4;
7173       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sint: return 4;
7174       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Srgb: return 4;
7175       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Unorm: return 4;
7176       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Snorm: return 4;
7177       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uscaled: return 4;
7178       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sscaled: return 4;
7179       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uint: return 4;
7180       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sint: return 4;
7181       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Srgb: return 4;
7182       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UnormPack32: return 4;
7183       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SnormPack32: return 4;
7184       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UscaledPack32: return 4;
7185       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SscaledPack32: return 4;
7186       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UintPack32: return 4;
7187       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SintPack32: return 4;
7188       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SrgbPack32: return 4;
7189       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UnormPack32: return 4;
7190       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SnormPack32: return 4;
7191       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UscaledPack32: return 4;
7192       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SscaledPack32: return 4;
7193       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UintPack32: return 4;
7194       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SintPack32: return 4;
7195       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UnormPack32: return 4;
7196       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SnormPack32: return 4;
7197       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UscaledPack32: return 4;
7198       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SscaledPack32: return 4;
7199       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UintPack32: return 4;
7200       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SintPack32: return 4;
7201       case VULKAN_HPP_NAMESPACE::Format::eR16Unorm: return 2;
7202       case VULKAN_HPP_NAMESPACE::Format::eR16Snorm: return 2;
7203       case VULKAN_HPP_NAMESPACE::Format::eR16Uscaled: return 2;
7204       case VULKAN_HPP_NAMESPACE::Format::eR16Sscaled: return 2;
7205       case VULKAN_HPP_NAMESPACE::Format::eR16Uint: return 2;
7206       case VULKAN_HPP_NAMESPACE::Format::eR16Sint: return 2;
7207       case VULKAN_HPP_NAMESPACE::Format::eR16Sfloat: return 2;
7208       case VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm: return 4;
7209       case VULKAN_HPP_NAMESPACE::Format::eR16G16Snorm: return 4;
7210       case VULKAN_HPP_NAMESPACE::Format::eR16G16Uscaled: return 4;
7211       case VULKAN_HPP_NAMESPACE::Format::eR16G16Sscaled: return 4;
7212       case VULKAN_HPP_NAMESPACE::Format::eR16G16Uint: return 4;
7213       case VULKAN_HPP_NAMESPACE::Format::eR16G16Sint: return 4;
7214       case VULKAN_HPP_NAMESPACE::Format::eR16G16Sfloat: return 4;
7215       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Unorm: return 6;
7216       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Snorm: return 6;
7217       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uscaled: return 6;
7218       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sscaled: return 6;
7219       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uint: return 6;
7220       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sint: return 6;
7221       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sfloat: return 6;
7222       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Unorm: return 8;
7223       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Snorm: return 8;
7224       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uscaled: return 8;
7225       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sscaled: return 8;
7226       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uint: return 8;
7227       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sint: return 8;
7228       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sfloat: return 8;
7229       case VULKAN_HPP_NAMESPACE::Format::eR32Uint: return 4;
7230       case VULKAN_HPP_NAMESPACE::Format::eR32Sint: return 4;
7231       case VULKAN_HPP_NAMESPACE::Format::eR32Sfloat: return 4;
7232       case VULKAN_HPP_NAMESPACE::Format::eR32G32Uint: return 8;
7233       case VULKAN_HPP_NAMESPACE::Format::eR32G32Sint: return 8;
7234       case VULKAN_HPP_NAMESPACE::Format::eR32G32Sfloat: return 8;
7235       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Uint: return 12;
7236       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sint: return 12;
7237       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sfloat: return 12;
7238       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Uint: return 16;
7239       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sint: return 16;
7240       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sfloat: return 16;
7241       case VULKAN_HPP_NAMESPACE::Format::eR64Uint: return 8;
7242       case VULKAN_HPP_NAMESPACE::Format::eR64Sint: return 8;
7243       case VULKAN_HPP_NAMESPACE::Format::eR64Sfloat: return 8;
7244       case VULKAN_HPP_NAMESPACE::Format::eR64G64Uint: return 16;
7245       case VULKAN_HPP_NAMESPACE::Format::eR64G64Sint: return 16;
7246       case VULKAN_HPP_NAMESPACE::Format::eR64G64Sfloat: return 16;
7247       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Uint: return 24;
7248       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sint: return 24;
7249       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sfloat: return 24;
7250       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Uint: return 32;
7251       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sint: return 32;
7252       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sfloat: return 32;
7253       case VULKAN_HPP_NAMESPACE::Format::eB10G11R11UfloatPack32: return 4;
7254       case VULKAN_HPP_NAMESPACE::Format::eE5B9G9R9UfloatPack32: return 4;
7255       case VULKAN_HPP_NAMESPACE::Format::eD16Unorm: return 2;
7256       case VULKAN_HPP_NAMESPACE::Format::eX8D24UnormPack32: return 4;
7257       case VULKAN_HPP_NAMESPACE::Format::eD32Sfloat: return 4;
7258       case VULKAN_HPP_NAMESPACE::Format::eS8Uint: return 1;
7259       case VULKAN_HPP_NAMESPACE::Format::eD16UnormS8Uint: return 3;
7260       case VULKAN_HPP_NAMESPACE::Format::eD24UnormS8Uint: return 4;
7261       case VULKAN_HPP_NAMESPACE::Format::eD32SfloatS8Uint: return 5;
7262       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbUnormBlock: return 8;
7263       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbSrgbBlock: return 8;
7264       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaUnormBlock: return 8;
7265       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaSrgbBlock: return 8;
7266       case VULKAN_HPP_NAMESPACE::Format::eBc2UnormBlock: return 16;
7267       case VULKAN_HPP_NAMESPACE::Format::eBc2SrgbBlock: return 16;
7268       case VULKAN_HPP_NAMESPACE::Format::eBc3UnormBlock: return 16;
7269       case VULKAN_HPP_NAMESPACE::Format::eBc3SrgbBlock: return 16;
7270       case VULKAN_HPP_NAMESPACE::Format::eBc4UnormBlock: return 8;
7271       case VULKAN_HPP_NAMESPACE::Format::eBc4SnormBlock: return 8;
7272       case VULKAN_HPP_NAMESPACE::Format::eBc5UnormBlock: return 16;
7273       case VULKAN_HPP_NAMESPACE::Format::eBc5SnormBlock: return 16;
7274       case VULKAN_HPP_NAMESPACE::Format::eBc6HUfloatBlock: return 16;
7275       case VULKAN_HPP_NAMESPACE::Format::eBc6HSfloatBlock: return 16;
7276       case VULKAN_HPP_NAMESPACE::Format::eBc7UnormBlock: return 16;
7277       case VULKAN_HPP_NAMESPACE::Format::eBc7SrgbBlock: return 16;
7278       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8UnormBlock: return 8;
7279       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8SrgbBlock: return 8;
7280       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1UnormBlock: return 8;
7281       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1SrgbBlock: return 8;
7282       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8UnormBlock: return 16;
7283       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8SrgbBlock: return 16;
7284       case VULKAN_HPP_NAMESPACE::Format::eEacR11UnormBlock: return 8;
7285       case VULKAN_HPP_NAMESPACE::Format::eEacR11SnormBlock: return 8;
7286       case VULKAN_HPP_NAMESPACE::Format::eEacR11G11UnormBlock: return 16;
7287       case VULKAN_HPP_NAMESPACE::Format::eEacR11G11SnormBlock: return 16;
7288       case VULKAN_HPP_NAMESPACE::Format::eAstc4x4UnormBlock: return 16;
7289       case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SrgbBlock: return 16;
7290       case VULKAN_HPP_NAMESPACE::Format::eAstc5x4UnormBlock: return 16;
7291       case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SrgbBlock: return 16;
7292       case VULKAN_HPP_NAMESPACE::Format::eAstc5x5UnormBlock: return 16;
7293       case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SrgbBlock: return 16;
7294       case VULKAN_HPP_NAMESPACE::Format::eAstc6x5UnormBlock: return 16;
7295       case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SrgbBlock: return 16;
7296       case VULKAN_HPP_NAMESPACE::Format::eAstc6x6UnormBlock: return 16;
7297       case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SrgbBlock: return 16;
7298       case VULKAN_HPP_NAMESPACE::Format::eAstc8x5UnormBlock: return 16;
7299       case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SrgbBlock: return 16;
7300       case VULKAN_HPP_NAMESPACE::Format::eAstc8x6UnormBlock: return 16;
7301       case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SrgbBlock: return 16;
7302       case VULKAN_HPP_NAMESPACE::Format::eAstc8x8UnormBlock: return 16;
7303       case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SrgbBlock: return 16;
7304       case VULKAN_HPP_NAMESPACE::Format::eAstc10x5UnormBlock: return 16;
7305       case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SrgbBlock: return 16;
7306       case VULKAN_HPP_NAMESPACE::Format::eAstc10x6UnormBlock: return 16;
7307       case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SrgbBlock: return 16;
7308       case VULKAN_HPP_NAMESPACE::Format::eAstc10x8UnormBlock: return 16;
7309       case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SrgbBlock: return 16;
7310       case VULKAN_HPP_NAMESPACE::Format::eAstc10x10UnormBlock: return 16;
7311       case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SrgbBlock: return 16;
7312       case VULKAN_HPP_NAMESPACE::Format::eAstc12x10UnormBlock: return 16;
7313       case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SrgbBlock: return 16;
7314       case VULKAN_HPP_NAMESPACE::Format::eAstc12x12UnormBlock: return 16;
7315       case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SrgbBlock: return 16;
7316       case VULKAN_HPP_NAMESPACE::Format::eG8B8G8R8422Unorm: return 4;
7317       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8G8422Unorm: return 4;
7318       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm: return 3;
7319       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm: return 3;
7320       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm: return 3;
7321       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm: return 3;
7322       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm: return 3;
7323       case VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16: return 2;
7324       case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16: return 4;
7325       case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6B10X6A10X6Unorm4Pack16: return 8;
7326       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16: return 8;
7327       case VULKAN_HPP_NAMESPACE::Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16: return 8;
7328       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16: return 6;
7329       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16: return 6;
7330       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16: return 6;
7331       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16: return 6;
7332       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16: return 6;
7333       case VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16: return 2;
7334       case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16: return 4;
7335       case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4B12X4A12X4Unorm4Pack16: return 8;
7336       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16: return 8;
7337       case VULKAN_HPP_NAMESPACE::Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16: return 8;
7338       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16: return 6;
7339       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16: return 6;
7340       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16: return 6;
7341       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16: return 6;
7342       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16: return 6;
7343       case VULKAN_HPP_NAMESPACE::Format::eG16B16G16R16422Unorm: return 8;
7344       case VULKAN_HPP_NAMESPACE::Format::eB16G16R16G16422Unorm: return 8;
7345       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm: return 6;
7346       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm: return 6;
7347       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm: return 6;
7348       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm: return 6;
7349       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm: return 6;
7350       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444Unorm: return 3;
7351       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16: return 6;
7352       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16: return 6;
7353       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444Unorm: return 6;
7354       case VULKAN_HPP_NAMESPACE::Format::eA4R4G4B4UnormPack16: return 2;
7355       case VULKAN_HPP_NAMESPACE::Format::eA4B4G4R4UnormPack16: return 2;
7356       case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SfloatBlock: return 16;
7357       case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SfloatBlock: return 16;
7358       case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SfloatBlock: return 16;
7359       case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SfloatBlock: return 16;
7360       case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SfloatBlock: return 16;
7361       case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SfloatBlock: return 16;
7362       case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SfloatBlock: return 16;
7363       case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SfloatBlock: return 16;
7364       case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SfloatBlock: return 16;
7365       case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SfloatBlock: return 16;
7366       case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SfloatBlock: return 16;
7367       case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SfloatBlock: return 16;
7368       case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SfloatBlock: return 16;
7369       case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SfloatBlock: return 16;
7370       case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppUnormBlockIMG: return 8;
7371       case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppUnormBlockIMG: return 8;
7372       case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppUnormBlockIMG: return 8;
7373       case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppUnormBlockIMG: return 8;
7374       case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppSrgbBlockIMG: return 8;
7375       case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return 8;
7376       case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return 8;
7377       case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return 8;
7378 
7379       default: VULKAN_HPP_ASSERT( false ); return 0;
7380     }
7381   }
7382 
7383   // The number of texels in a texel block.
texelsPerBlock(VULKAN_HPP_NAMESPACE::Format format)7384   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t texelsPerBlock( VULKAN_HPP_NAMESPACE::Format format )
7385   {
7386     switch ( format )
7387     {
7388       case VULKAN_HPP_NAMESPACE::Format::eR4G4UnormPack8: return 1;
7389       case VULKAN_HPP_NAMESPACE::Format::eR4G4B4A4UnormPack16: return 1;
7390       case VULKAN_HPP_NAMESPACE::Format::eB4G4R4A4UnormPack16: return 1;
7391       case VULKAN_HPP_NAMESPACE::Format::eR5G6B5UnormPack16: return 1;
7392       case VULKAN_HPP_NAMESPACE::Format::eB5G6R5UnormPack16: return 1;
7393       case VULKAN_HPP_NAMESPACE::Format::eR5G5B5A1UnormPack16: return 1;
7394       case VULKAN_HPP_NAMESPACE::Format::eB5G5R5A1UnormPack16: return 1;
7395       case VULKAN_HPP_NAMESPACE::Format::eA1R5G5B5UnormPack16: return 1;
7396       case VULKAN_HPP_NAMESPACE::Format::eR8Unorm: return 1;
7397       case VULKAN_HPP_NAMESPACE::Format::eR8Snorm: return 1;
7398       case VULKAN_HPP_NAMESPACE::Format::eR8Uscaled: return 1;
7399       case VULKAN_HPP_NAMESPACE::Format::eR8Sscaled: return 1;
7400       case VULKAN_HPP_NAMESPACE::Format::eR8Uint: return 1;
7401       case VULKAN_HPP_NAMESPACE::Format::eR8Sint: return 1;
7402       case VULKAN_HPP_NAMESPACE::Format::eR8Srgb: return 1;
7403       case VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm: return 1;
7404       case VULKAN_HPP_NAMESPACE::Format::eR8G8Snorm: return 1;
7405       case VULKAN_HPP_NAMESPACE::Format::eR8G8Uscaled: return 1;
7406       case VULKAN_HPP_NAMESPACE::Format::eR8G8Sscaled: return 1;
7407       case VULKAN_HPP_NAMESPACE::Format::eR8G8Uint: return 1;
7408       case VULKAN_HPP_NAMESPACE::Format::eR8G8Sint: return 1;
7409       case VULKAN_HPP_NAMESPACE::Format::eR8G8Srgb: return 1;
7410       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Unorm: return 1;
7411       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Snorm: return 1;
7412       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uscaled: return 1;
7413       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sscaled: return 1;
7414       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uint: return 1;
7415       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sint: return 1;
7416       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Srgb: return 1;
7417       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Unorm: return 1;
7418       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Snorm: return 1;
7419       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uscaled: return 1;
7420       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sscaled: return 1;
7421       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uint: return 1;
7422       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sint: return 1;
7423       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Srgb: return 1;
7424       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Unorm: return 1;
7425       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Snorm: return 1;
7426       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uscaled: return 1;
7427       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sscaled: return 1;
7428       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uint: return 1;
7429       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sint: return 1;
7430       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Srgb: return 1;
7431       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Unorm: return 1;
7432       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Snorm: return 1;
7433       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uscaled: return 1;
7434       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sscaled: return 1;
7435       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uint: return 1;
7436       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sint: return 1;
7437       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Srgb: return 1;
7438       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UnormPack32: return 1;
7439       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SnormPack32: return 1;
7440       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UscaledPack32: return 1;
7441       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SscaledPack32: return 1;
7442       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UintPack32: return 1;
7443       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SintPack32: return 1;
7444       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SrgbPack32: return 1;
7445       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UnormPack32: return 1;
7446       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SnormPack32: return 1;
7447       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UscaledPack32: return 1;
7448       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SscaledPack32: return 1;
7449       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UintPack32: return 1;
7450       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SintPack32: return 1;
7451       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UnormPack32: return 1;
7452       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SnormPack32: return 1;
7453       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UscaledPack32: return 1;
7454       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SscaledPack32: return 1;
7455       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UintPack32: return 1;
7456       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SintPack32: return 1;
7457       case VULKAN_HPP_NAMESPACE::Format::eR16Unorm: return 1;
7458       case VULKAN_HPP_NAMESPACE::Format::eR16Snorm: return 1;
7459       case VULKAN_HPP_NAMESPACE::Format::eR16Uscaled: return 1;
7460       case VULKAN_HPP_NAMESPACE::Format::eR16Sscaled: return 1;
7461       case VULKAN_HPP_NAMESPACE::Format::eR16Uint: return 1;
7462       case VULKAN_HPP_NAMESPACE::Format::eR16Sint: return 1;
7463       case VULKAN_HPP_NAMESPACE::Format::eR16Sfloat: return 1;
7464       case VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm: return 1;
7465       case VULKAN_HPP_NAMESPACE::Format::eR16G16Snorm: return 1;
7466       case VULKAN_HPP_NAMESPACE::Format::eR16G16Uscaled: return 1;
7467       case VULKAN_HPP_NAMESPACE::Format::eR16G16Sscaled: return 1;
7468       case VULKAN_HPP_NAMESPACE::Format::eR16G16Uint: return 1;
7469       case VULKAN_HPP_NAMESPACE::Format::eR16G16Sint: return 1;
7470       case VULKAN_HPP_NAMESPACE::Format::eR16G16Sfloat: return 1;
7471       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Unorm: return 1;
7472       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Snorm: return 1;
7473       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uscaled: return 1;
7474       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sscaled: return 1;
7475       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uint: return 1;
7476       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sint: return 1;
7477       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sfloat: return 1;
7478       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Unorm: return 1;
7479       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Snorm: return 1;
7480       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uscaled: return 1;
7481       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sscaled: return 1;
7482       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uint: return 1;
7483       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sint: return 1;
7484       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sfloat: return 1;
7485       case VULKAN_HPP_NAMESPACE::Format::eR32Uint: return 1;
7486       case VULKAN_HPP_NAMESPACE::Format::eR32Sint: return 1;
7487       case VULKAN_HPP_NAMESPACE::Format::eR32Sfloat: return 1;
7488       case VULKAN_HPP_NAMESPACE::Format::eR32G32Uint: return 1;
7489       case VULKAN_HPP_NAMESPACE::Format::eR32G32Sint: return 1;
7490       case VULKAN_HPP_NAMESPACE::Format::eR32G32Sfloat: return 1;
7491       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Uint: return 1;
7492       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sint: return 1;
7493       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sfloat: return 1;
7494       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Uint: return 1;
7495       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sint: return 1;
7496       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sfloat: return 1;
7497       case VULKAN_HPP_NAMESPACE::Format::eR64Uint: return 1;
7498       case VULKAN_HPP_NAMESPACE::Format::eR64Sint: return 1;
7499       case VULKAN_HPP_NAMESPACE::Format::eR64Sfloat: return 1;
7500       case VULKAN_HPP_NAMESPACE::Format::eR64G64Uint: return 1;
7501       case VULKAN_HPP_NAMESPACE::Format::eR64G64Sint: return 1;
7502       case VULKAN_HPP_NAMESPACE::Format::eR64G64Sfloat: return 1;
7503       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Uint: return 1;
7504       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sint: return 1;
7505       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sfloat: return 1;
7506       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Uint: return 1;
7507       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sint: return 1;
7508       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sfloat: return 1;
7509       case VULKAN_HPP_NAMESPACE::Format::eB10G11R11UfloatPack32: return 1;
7510       case VULKAN_HPP_NAMESPACE::Format::eE5B9G9R9UfloatPack32: return 1;
7511       case VULKAN_HPP_NAMESPACE::Format::eD16Unorm: return 1;
7512       case VULKAN_HPP_NAMESPACE::Format::eX8D24UnormPack32: return 1;
7513       case VULKAN_HPP_NAMESPACE::Format::eD32Sfloat: return 1;
7514       case VULKAN_HPP_NAMESPACE::Format::eS8Uint: return 1;
7515       case VULKAN_HPP_NAMESPACE::Format::eD16UnormS8Uint: return 1;
7516       case VULKAN_HPP_NAMESPACE::Format::eD24UnormS8Uint: return 1;
7517       case VULKAN_HPP_NAMESPACE::Format::eD32SfloatS8Uint: return 1;
7518       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbUnormBlock: return 16;
7519       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbSrgbBlock: return 16;
7520       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaUnormBlock: return 16;
7521       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaSrgbBlock: return 16;
7522       case VULKAN_HPP_NAMESPACE::Format::eBc2UnormBlock: return 16;
7523       case VULKAN_HPP_NAMESPACE::Format::eBc2SrgbBlock: return 16;
7524       case VULKAN_HPP_NAMESPACE::Format::eBc3UnormBlock: return 16;
7525       case VULKAN_HPP_NAMESPACE::Format::eBc3SrgbBlock: return 16;
7526       case VULKAN_HPP_NAMESPACE::Format::eBc4UnormBlock: return 16;
7527       case VULKAN_HPP_NAMESPACE::Format::eBc4SnormBlock: return 16;
7528       case VULKAN_HPP_NAMESPACE::Format::eBc5UnormBlock: return 16;
7529       case VULKAN_HPP_NAMESPACE::Format::eBc5SnormBlock: return 16;
7530       case VULKAN_HPP_NAMESPACE::Format::eBc6HUfloatBlock: return 16;
7531       case VULKAN_HPP_NAMESPACE::Format::eBc6HSfloatBlock: return 16;
7532       case VULKAN_HPP_NAMESPACE::Format::eBc7UnormBlock: return 16;
7533       case VULKAN_HPP_NAMESPACE::Format::eBc7SrgbBlock: return 16;
7534       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8UnormBlock: return 16;
7535       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8SrgbBlock: return 16;
7536       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1UnormBlock: return 16;
7537       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1SrgbBlock: return 16;
7538       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8UnormBlock: return 16;
7539       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8SrgbBlock: return 16;
7540       case VULKAN_HPP_NAMESPACE::Format::eEacR11UnormBlock: return 16;
7541       case VULKAN_HPP_NAMESPACE::Format::eEacR11SnormBlock: return 16;
7542       case VULKAN_HPP_NAMESPACE::Format::eEacR11G11UnormBlock: return 16;
7543       case VULKAN_HPP_NAMESPACE::Format::eEacR11G11SnormBlock: return 16;
7544       case VULKAN_HPP_NAMESPACE::Format::eAstc4x4UnormBlock: return 16;
7545       case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SrgbBlock: return 16;
7546       case VULKAN_HPP_NAMESPACE::Format::eAstc5x4UnormBlock: return 20;
7547       case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SrgbBlock: return 20;
7548       case VULKAN_HPP_NAMESPACE::Format::eAstc5x5UnormBlock: return 25;
7549       case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SrgbBlock: return 25;
7550       case VULKAN_HPP_NAMESPACE::Format::eAstc6x5UnormBlock: return 30;
7551       case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SrgbBlock: return 30;
7552       case VULKAN_HPP_NAMESPACE::Format::eAstc6x6UnormBlock: return 36;
7553       case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SrgbBlock: return 36;
7554       case VULKAN_HPP_NAMESPACE::Format::eAstc8x5UnormBlock: return 40;
7555       case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SrgbBlock: return 40;
7556       case VULKAN_HPP_NAMESPACE::Format::eAstc8x6UnormBlock: return 48;
7557       case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SrgbBlock: return 48;
7558       case VULKAN_HPP_NAMESPACE::Format::eAstc8x8UnormBlock: return 64;
7559       case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SrgbBlock: return 64;
7560       case VULKAN_HPP_NAMESPACE::Format::eAstc10x5UnormBlock: return 50;
7561       case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SrgbBlock: return 50;
7562       case VULKAN_HPP_NAMESPACE::Format::eAstc10x6UnormBlock: return 60;
7563       case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SrgbBlock: return 60;
7564       case VULKAN_HPP_NAMESPACE::Format::eAstc10x8UnormBlock: return 80;
7565       case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SrgbBlock: return 80;
7566       case VULKAN_HPP_NAMESPACE::Format::eAstc10x10UnormBlock: return 100;
7567       case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SrgbBlock: return 100;
7568       case VULKAN_HPP_NAMESPACE::Format::eAstc12x10UnormBlock: return 120;
7569       case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SrgbBlock: return 120;
7570       case VULKAN_HPP_NAMESPACE::Format::eAstc12x12UnormBlock: return 144;
7571       case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SrgbBlock: return 144;
7572       case VULKAN_HPP_NAMESPACE::Format::eG8B8G8R8422Unorm: return 1;
7573       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8G8422Unorm: return 1;
7574       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm: return 1;
7575       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm: return 1;
7576       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm: return 1;
7577       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm: return 1;
7578       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm: return 1;
7579       case VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16: return 1;
7580       case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16: return 1;
7581       case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6B10X6A10X6Unorm4Pack16: return 1;
7582       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16: return 1;
7583       case VULKAN_HPP_NAMESPACE::Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16: return 1;
7584       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16: return 1;
7585       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16: return 1;
7586       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16: return 1;
7587       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16: return 1;
7588       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16: return 1;
7589       case VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16: return 1;
7590       case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16: return 1;
7591       case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4B12X4A12X4Unorm4Pack16: return 1;
7592       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16: return 1;
7593       case VULKAN_HPP_NAMESPACE::Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16: return 1;
7594       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16: return 1;
7595       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16: return 1;
7596       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16: return 1;
7597       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16: return 1;
7598       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16: return 1;
7599       case VULKAN_HPP_NAMESPACE::Format::eG16B16G16R16422Unorm: return 1;
7600       case VULKAN_HPP_NAMESPACE::Format::eB16G16R16G16422Unorm: return 1;
7601       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm: return 1;
7602       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm: return 1;
7603       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm: return 1;
7604       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm: return 1;
7605       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm: return 1;
7606       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444Unorm: return 1;
7607       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16: return 1;
7608       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16: return 1;
7609       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444Unorm: return 1;
7610       case VULKAN_HPP_NAMESPACE::Format::eA4R4G4B4UnormPack16: return 1;
7611       case VULKAN_HPP_NAMESPACE::Format::eA4B4G4R4UnormPack16: return 1;
7612       case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SfloatBlock: return 16;
7613       case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SfloatBlock: return 20;
7614       case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SfloatBlock: return 25;
7615       case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SfloatBlock: return 30;
7616       case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SfloatBlock: return 36;
7617       case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SfloatBlock: return 40;
7618       case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SfloatBlock: return 48;
7619       case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SfloatBlock: return 64;
7620       case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SfloatBlock: return 50;
7621       case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SfloatBlock: return 60;
7622       case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SfloatBlock: return 80;
7623       case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SfloatBlock: return 100;
7624       case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SfloatBlock: return 120;
7625       case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SfloatBlock: return 144;
7626       case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppUnormBlockIMG: return 1;
7627       case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppUnormBlockIMG: return 1;
7628       case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppUnormBlockIMG: return 1;
7629       case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppUnormBlockIMG: return 1;
7630       case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppSrgbBlockIMG: return 1;
7631       case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return 1;
7632       case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return 1;
7633       case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return 1;
7634 
7635       default: VULKAN_HPP_ASSERT( false ); return 0;
7636     }
7637   }
7638 
7639   // The three-dimensional extent of a texel block.
blockExtent(VULKAN_HPP_NAMESPACE::Format format)7640   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 std::array<uint8_t, 3> blockExtent( VULKAN_HPP_NAMESPACE::Format format )
7641   {
7642     switch ( format )
7643     {
7644       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbUnormBlock: return { 4, 4, 1 };
7645       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbSrgbBlock: return { 4, 4, 1 };
7646       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaUnormBlock: return { 4, 4, 1 };
7647       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaSrgbBlock: return { 4, 4, 1 };
7648       case VULKAN_HPP_NAMESPACE::Format::eBc2UnormBlock: return { 4, 4, 1 };
7649       case VULKAN_HPP_NAMESPACE::Format::eBc2SrgbBlock: return { 4, 4, 1 };
7650       case VULKAN_HPP_NAMESPACE::Format::eBc3UnormBlock: return { 4, 4, 1 };
7651       case VULKAN_HPP_NAMESPACE::Format::eBc3SrgbBlock: return { 4, 4, 1 };
7652       case VULKAN_HPP_NAMESPACE::Format::eBc4UnormBlock: return { 4, 4, 1 };
7653       case VULKAN_HPP_NAMESPACE::Format::eBc4SnormBlock: return { 4, 4, 1 };
7654       case VULKAN_HPP_NAMESPACE::Format::eBc5UnormBlock: return { 4, 4, 1 };
7655       case VULKAN_HPP_NAMESPACE::Format::eBc5SnormBlock: return { 4, 4, 1 };
7656       case VULKAN_HPP_NAMESPACE::Format::eBc6HUfloatBlock: return { 4, 4, 1 };
7657       case VULKAN_HPP_NAMESPACE::Format::eBc6HSfloatBlock: return { 4, 4, 1 };
7658       case VULKAN_HPP_NAMESPACE::Format::eBc7UnormBlock: return { 4, 4, 1 };
7659       case VULKAN_HPP_NAMESPACE::Format::eBc7SrgbBlock: return { 4, 4, 1 };
7660       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8UnormBlock: return { 4, 4, 1 };
7661       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8SrgbBlock: return { 4, 4, 1 };
7662       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1UnormBlock: return { 4, 4, 1 };
7663       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1SrgbBlock: return { 4, 4, 1 };
7664       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8UnormBlock: return { 4, 4, 1 };
7665       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8SrgbBlock: return { 4, 4, 1 };
7666       case VULKAN_HPP_NAMESPACE::Format::eEacR11UnormBlock: return { 4, 4, 1 };
7667       case VULKAN_HPP_NAMESPACE::Format::eEacR11SnormBlock: return { 4, 4, 1 };
7668       case VULKAN_HPP_NAMESPACE::Format::eEacR11G11UnormBlock: return { 4, 4, 1 };
7669       case VULKAN_HPP_NAMESPACE::Format::eEacR11G11SnormBlock: return { 4, 4, 1 };
7670       case VULKAN_HPP_NAMESPACE::Format::eAstc4x4UnormBlock: return { 4, 4, 1 };
7671       case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SrgbBlock: return { 4, 4, 1 };
7672       case VULKAN_HPP_NAMESPACE::Format::eAstc5x4UnormBlock: return { 5, 4, 1 };
7673       case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SrgbBlock: return { 5, 4, 1 };
7674       case VULKAN_HPP_NAMESPACE::Format::eAstc5x5UnormBlock: return { 5, 5, 1 };
7675       case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SrgbBlock: return { 5, 5, 1 };
7676       case VULKAN_HPP_NAMESPACE::Format::eAstc6x5UnormBlock: return { 6, 5, 1 };
7677       case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SrgbBlock: return { 6, 5, 1 };
7678       case VULKAN_HPP_NAMESPACE::Format::eAstc6x6UnormBlock: return { 6, 6, 1 };
7679       case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SrgbBlock: return { 6, 6, 1 };
7680       case VULKAN_HPP_NAMESPACE::Format::eAstc8x5UnormBlock: return { 8, 5, 1 };
7681       case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SrgbBlock: return { 8, 5, 1 };
7682       case VULKAN_HPP_NAMESPACE::Format::eAstc8x6UnormBlock: return { 8, 6, 1 };
7683       case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SrgbBlock: return { 8, 6, 1 };
7684       case VULKAN_HPP_NAMESPACE::Format::eAstc8x8UnormBlock: return { 8, 8, 1 };
7685       case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SrgbBlock: return { 8, 8, 1 };
7686       case VULKAN_HPP_NAMESPACE::Format::eAstc10x5UnormBlock: return { 10, 5, 1 };
7687       case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SrgbBlock: return { 10, 5, 1 };
7688       case VULKAN_HPP_NAMESPACE::Format::eAstc10x6UnormBlock: return { 10, 6, 1 };
7689       case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SrgbBlock: return { 10, 6, 1 };
7690       case VULKAN_HPP_NAMESPACE::Format::eAstc10x8UnormBlock: return { 10, 8, 1 };
7691       case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SrgbBlock: return { 10, 8, 1 };
7692       case VULKAN_HPP_NAMESPACE::Format::eAstc10x10UnormBlock: return { 10, 10, 1 };
7693       case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SrgbBlock: return { 10, 10, 1 };
7694       case VULKAN_HPP_NAMESPACE::Format::eAstc12x10UnormBlock: return { 12, 10, 1 };
7695       case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SrgbBlock: return { 12, 10, 1 };
7696       case VULKAN_HPP_NAMESPACE::Format::eAstc12x12UnormBlock: return { 12, 12, 1 };
7697       case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SrgbBlock: return { 12, 12, 1 };
7698       case VULKAN_HPP_NAMESPACE::Format::eG8B8G8R8422Unorm: return { 2, 1, 1 };
7699       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8G8422Unorm: return { 2, 1, 1 };
7700       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16: return { 2, 1, 1 };
7701       case VULKAN_HPP_NAMESPACE::Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16: return { 2, 1, 1 };
7702       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16: return { 2, 1, 1 };
7703       case VULKAN_HPP_NAMESPACE::Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16: return { 2, 1, 1 };
7704       case VULKAN_HPP_NAMESPACE::Format::eG16B16G16R16422Unorm: return { 2, 1, 1 };
7705       case VULKAN_HPP_NAMESPACE::Format::eB16G16R16G16422Unorm: return { 2, 1, 1 };
7706       case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SfloatBlock: return { 4, 4, 1 };
7707       case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SfloatBlock: return { 5, 4, 1 };
7708       case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SfloatBlock: return { 5, 5, 1 };
7709       case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SfloatBlock: return { 6, 5, 1 };
7710       case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SfloatBlock: return { 6, 6, 1 };
7711       case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SfloatBlock: return { 8, 5, 1 };
7712       case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SfloatBlock: return { 8, 6, 1 };
7713       case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SfloatBlock: return { 8, 8, 1 };
7714       case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SfloatBlock: return { 10, 5, 1 };
7715       case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SfloatBlock: return { 10, 6, 1 };
7716       case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SfloatBlock: return { 10, 8, 1 };
7717       case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SfloatBlock: return { 10, 10, 1 };
7718       case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SfloatBlock: return { 12, 10, 1 };
7719       case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SfloatBlock: return { 12, 12, 1 };
7720       case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppUnormBlockIMG: return { 8, 4, 1 };
7721       case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppUnormBlockIMG: return { 4, 4, 1 };
7722       case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppUnormBlockIMG: return { 8, 4, 1 };
7723       case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppUnormBlockIMG: return { 4, 4, 1 };
7724       case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppSrgbBlockIMG: return { 8, 4, 1 };
7725       case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return { 4, 4, 1 };
7726       case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return { 8, 4, 1 };
7727       case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return { 4, 4, 1 };
7728 
7729       default: return { 1, 1, 1 };
7730     }
7731   }
7732 
7733   // A textual description of the compression scheme, or an empty string if it is not compressed
compressionScheme(VULKAN_HPP_NAMESPACE::Format format)7734   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 char const * compressionScheme( VULKAN_HPP_NAMESPACE::Format format )
7735   {
7736     switch ( format )
7737     {
7738       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbUnormBlock: return "BC";
7739       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbSrgbBlock: return "BC";
7740       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaUnormBlock: return "BC";
7741       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaSrgbBlock: return "BC";
7742       case VULKAN_HPP_NAMESPACE::Format::eBc2UnormBlock: return "BC";
7743       case VULKAN_HPP_NAMESPACE::Format::eBc2SrgbBlock: return "BC";
7744       case VULKAN_HPP_NAMESPACE::Format::eBc3UnormBlock: return "BC";
7745       case VULKAN_HPP_NAMESPACE::Format::eBc3SrgbBlock: return "BC";
7746       case VULKAN_HPP_NAMESPACE::Format::eBc4UnormBlock: return "BC";
7747       case VULKAN_HPP_NAMESPACE::Format::eBc4SnormBlock: return "BC";
7748       case VULKAN_HPP_NAMESPACE::Format::eBc5UnormBlock: return "BC";
7749       case VULKAN_HPP_NAMESPACE::Format::eBc5SnormBlock: return "BC";
7750       case VULKAN_HPP_NAMESPACE::Format::eBc6HUfloatBlock: return "BC";
7751       case VULKAN_HPP_NAMESPACE::Format::eBc6HSfloatBlock: return "BC";
7752       case VULKAN_HPP_NAMESPACE::Format::eBc7UnormBlock: return "BC";
7753       case VULKAN_HPP_NAMESPACE::Format::eBc7SrgbBlock: return "BC";
7754       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8UnormBlock: return "ETC2";
7755       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8SrgbBlock: return "ETC2";
7756       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1UnormBlock: return "ETC2";
7757       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1SrgbBlock: return "ETC2";
7758       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8UnormBlock: return "ETC2";
7759       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8SrgbBlock: return "ETC2";
7760       case VULKAN_HPP_NAMESPACE::Format::eEacR11UnormBlock: return "EAC";
7761       case VULKAN_HPP_NAMESPACE::Format::eEacR11SnormBlock: return "EAC";
7762       case VULKAN_HPP_NAMESPACE::Format::eEacR11G11UnormBlock: return "EAC";
7763       case VULKAN_HPP_NAMESPACE::Format::eEacR11G11SnormBlock: return "EAC";
7764       case VULKAN_HPP_NAMESPACE::Format::eAstc4x4UnormBlock: return "ASTC LDR";
7765       case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SrgbBlock: return "ASTC LDR";
7766       case VULKAN_HPP_NAMESPACE::Format::eAstc5x4UnormBlock: return "ASTC LDR";
7767       case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SrgbBlock: return "ASTC LDR";
7768       case VULKAN_HPP_NAMESPACE::Format::eAstc5x5UnormBlock: return "ASTC LDR";
7769       case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SrgbBlock: return "ASTC LDR";
7770       case VULKAN_HPP_NAMESPACE::Format::eAstc6x5UnormBlock: return "ASTC LDR";
7771       case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SrgbBlock: return "ASTC LDR";
7772       case VULKAN_HPP_NAMESPACE::Format::eAstc6x6UnormBlock: return "ASTC LDR";
7773       case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SrgbBlock: return "ASTC LDR";
7774       case VULKAN_HPP_NAMESPACE::Format::eAstc8x5UnormBlock: return "ASTC LDR";
7775       case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SrgbBlock: return "ASTC LDR";
7776       case VULKAN_HPP_NAMESPACE::Format::eAstc8x6UnormBlock: return "ASTC LDR";
7777       case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SrgbBlock: return "ASTC LDR";
7778       case VULKAN_HPP_NAMESPACE::Format::eAstc8x8UnormBlock: return "ASTC LDR";
7779       case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SrgbBlock: return "ASTC LDR";
7780       case VULKAN_HPP_NAMESPACE::Format::eAstc10x5UnormBlock: return "ASTC LDR";
7781       case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SrgbBlock: return "ASTC LDR";
7782       case VULKAN_HPP_NAMESPACE::Format::eAstc10x6UnormBlock: return "ASTC LDR";
7783       case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SrgbBlock: return "ASTC LDR";
7784       case VULKAN_HPP_NAMESPACE::Format::eAstc10x8UnormBlock: return "ASTC LDR";
7785       case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SrgbBlock: return "ASTC LDR";
7786       case VULKAN_HPP_NAMESPACE::Format::eAstc10x10UnormBlock: return "ASTC LDR";
7787       case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SrgbBlock: return "ASTC LDR";
7788       case VULKAN_HPP_NAMESPACE::Format::eAstc12x10UnormBlock: return "ASTC LDR";
7789       case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SrgbBlock: return "ASTC LDR";
7790       case VULKAN_HPP_NAMESPACE::Format::eAstc12x12UnormBlock: return "ASTC LDR";
7791       case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SrgbBlock: return "ASTC LDR";
7792       case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SfloatBlock: return "ASTC HDR";
7793       case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SfloatBlock: return "ASTC HDR";
7794       case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SfloatBlock: return "ASTC HDR";
7795       case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SfloatBlock: return "ASTC HDR";
7796       case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SfloatBlock: return "ASTC HDR";
7797       case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SfloatBlock: return "ASTC HDR";
7798       case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SfloatBlock: return "ASTC HDR";
7799       case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SfloatBlock: return "ASTC HDR";
7800       case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SfloatBlock: return "ASTC HDR";
7801       case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SfloatBlock: return "ASTC HDR";
7802       case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SfloatBlock: return "ASTC HDR";
7803       case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SfloatBlock: return "ASTC HDR";
7804       case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SfloatBlock: return "ASTC HDR";
7805       case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SfloatBlock: return "ASTC HDR";
7806       case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppUnormBlockIMG: return "PVRTC";
7807       case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppUnormBlockIMG: return "PVRTC";
7808       case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppUnormBlockIMG: return "PVRTC";
7809       case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppUnormBlockIMG: return "PVRTC";
7810       case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppSrgbBlockIMG: return "PVRTC";
7811       case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return "PVRTC";
7812       case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return "PVRTC";
7813       case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return "PVRTC";
7814 
7815       default: return "";
7816     }
7817   }
7818 
7819   // True, if this format is a compressed one.
isCompressed(VULKAN_HPP_NAMESPACE::Format format)7820   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 bool isCompressed( VULKAN_HPP_NAMESPACE::Format format )
7821   {
7822     return ( *VULKAN_HPP_NAMESPACE::compressionScheme( format ) != 0 );
7823   }
7824 
7825   // The number of bits into which the format is packed. A single image element in this format
7826   // can be stored in the same space as a scalar type of this bit width.
packed(VULKAN_HPP_NAMESPACE::Format format)7827   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t packed( VULKAN_HPP_NAMESPACE::Format format )
7828   {
7829     switch ( format )
7830     {
7831       case VULKAN_HPP_NAMESPACE::Format::eR4G4UnormPack8: return 8;
7832       case VULKAN_HPP_NAMESPACE::Format::eR4G4B4A4UnormPack16: return 16;
7833       case VULKAN_HPP_NAMESPACE::Format::eB4G4R4A4UnormPack16: return 16;
7834       case VULKAN_HPP_NAMESPACE::Format::eR5G6B5UnormPack16: return 16;
7835       case VULKAN_HPP_NAMESPACE::Format::eB5G6R5UnormPack16: return 16;
7836       case VULKAN_HPP_NAMESPACE::Format::eR5G5B5A1UnormPack16: return 16;
7837       case VULKAN_HPP_NAMESPACE::Format::eB5G5R5A1UnormPack16: return 16;
7838       case VULKAN_HPP_NAMESPACE::Format::eA1R5G5B5UnormPack16: return 16;
7839       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UnormPack32: return 32;
7840       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SnormPack32: return 32;
7841       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UscaledPack32: return 32;
7842       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SscaledPack32: return 32;
7843       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UintPack32: return 32;
7844       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SintPack32: return 32;
7845       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SrgbPack32: return 32;
7846       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UnormPack32: return 32;
7847       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SnormPack32: return 32;
7848       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UscaledPack32: return 32;
7849       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SscaledPack32: return 32;
7850       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UintPack32: return 32;
7851       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SintPack32: return 32;
7852       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UnormPack32: return 32;
7853       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SnormPack32: return 32;
7854       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UscaledPack32: return 32;
7855       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SscaledPack32: return 32;
7856       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UintPack32: return 32;
7857       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SintPack32: return 32;
7858       case VULKAN_HPP_NAMESPACE::Format::eB10G11R11UfloatPack32: return 32;
7859       case VULKAN_HPP_NAMESPACE::Format::eE5B9G9R9UfloatPack32: return 32;
7860       case VULKAN_HPP_NAMESPACE::Format::eX8D24UnormPack32: return 32;
7861       case VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16: return 16;
7862       case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16: return 16;
7863       case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6B10X6A10X6Unorm4Pack16: return 16;
7864       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16: return 16;
7865       case VULKAN_HPP_NAMESPACE::Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16: return 16;
7866       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16: return 16;
7867       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16: return 16;
7868       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16: return 16;
7869       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16: return 16;
7870       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16: return 16;
7871       case VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16: return 16;
7872       case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16: return 16;
7873       case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4B12X4A12X4Unorm4Pack16: return 16;
7874       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16: return 16;
7875       case VULKAN_HPP_NAMESPACE::Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16: return 16;
7876       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16: return 16;
7877       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16: return 16;
7878       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16: return 16;
7879       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16: return 16;
7880       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16: return 16;
7881       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16: return 16;
7882       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16: return 16;
7883       case VULKAN_HPP_NAMESPACE::Format::eA4R4G4B4UnormPack16: return 16;
7884       case VULKAN_HPP_NAMESPACE::Format::eA4B4G4R4UnormPack16: return 16;
7885 
7886       default: return 0;
7887     }
7888   }
7889 
7890   // The number of components of this format.
componentCount(VULKAN_HPP_NAMESPACE::Format format)7891   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t componentCount( VULKAN_HPP_NAMESPACE::Format format )
7892   {
7893     switch ( format )
7894     {
7895       case VULKAN_HPP_NAMESPACE::Format::eR4G4UnormPack8: return 2;
7896       case VULKAN_HPP_NAMESPACE::Format::eR4G4B4A4UnormPack16: return 4;
7897       case VULKAN_HPP_NAMESPACE::Format::eB4G4R4A4UnormPack16: return 4;
7898       case VULKAN_HPP_NAMESPACE::Format::eR5G6B5UnormPack16: return 3;
7899       case VULKAN_HPP_NAMESPACE::Format::eB5G6R5UnormPack16: return 3;
7900       case VULKAN_HPP_NAMESPACE::Format::eR5G5B5A1UnormPack16: return 4;
7901       case VULKAN_HPP_NAMESPACE::Format::eB5G5R5A1UnormPack16: return 4;
7902       case VULKAN_HPP_NAMESPACE::Format::eA1R5G5B5UnormPack16: return 4;
7903       case VULKAN_HPP_NAMESPACE::Format::eR8Unorm: return 1;
7904       case VULKAN_HPP_NAMESPACE::Format::eR8Snorm: return 1;
7905       case VULKAN_HPP_NAMESPACE::Format::eR8Uscaled: return 1;
7906       case VULKAN_HPP_NAMESPACE::Format::eR8Sscaled: return 1;
7907       case VULKAN_HPP_NAMESPACE::Format::eR8Uint: return 1;
7908       case VULKAN_HPP_NAMESPACE::Format::eR8Sint: return 1;
7909       case VULKAN_HPP_NAMESPACE::Format::eR8Srgb: return 1;
7910       case VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm: return 2;
7911       case VULKAN_HPP_NAMESPACE::Format::eR8G8Snorm: return 2;
7912       case VULKAN_HPP_NAMESPACE::Format::eR8G8Uscaled: return 2;
7913       case VULKAN_HPP_NAMESPACE::Format::eR8G8Sscaled: return 2;
7914       case VULKAN_HPP_NAMESPACE::Format::eR8G8Uint: return 2;
7915       case VULKAN_HPP_NAMESPACE::Format::eR8G8Sint: return 2;
7916       case VULKAN_HPP_NAMESPACE::Format::eR8G8Srgb: return 2;
7917       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Unorm: return 3;
7918       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Snorm: return 3;
7919       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uscaled: return 3;
7920       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sscaled: return 3;
7921       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uint: return 3;
7922       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sint: return 3;
7923       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Srgb: return 3;
7924       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Unorm: return 3;
7925       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Snorm: return 3;
7926       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uscaled: return 3;
7927       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sscaled: return 3;
7928       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uint: return 3;
7929       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sint: return 3;
7930       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Srgb: return 3;
7931       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Unorm: return 4;
7932       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Snorm: return 4;
7933       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uscaled: return 4;
7934       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sscaled: return 4;
7935       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uint: return 4;
7936       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sint: return 4;
7937       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Srgb: return 4;
7938       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Unorm: return 4;
7939       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Snorm: return 4;
7940       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uscaled: return 4;
7941       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sscaled: return 4;
7942       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uint: return 4;
7943       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sint: return 4;
7944       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Srgb: return 4;
7945       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UnormPack32: return 4;
7946       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SnormPack32: return 4;
7947       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UscaledPack32: return 4;
7948       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SscaledPack32: return 4;
7949       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UintPack32: return 4;
7950       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SintPack32: return 4;
7951       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SrgbPack32: return 4;
7952       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UnormPack32: return 4;
7953       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SnormPack32: return 4;
7954       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UscaledPack32: return 4;
7955       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SscaledPack32: return 4;
7956       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UintPack32: return 4;
7957       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SintPack32: return 4;
7958       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UnormPack32: return 4;
7959       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SnormPack32: return 4;
7960       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UscaledPack32: return 4;
7961       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SscaledPack32: return 4;
7962       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UintPack32: return 4;
7963       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SintPack32: return 4;
7964       case VULKAN_HPP_NAMESPACE::Format::eR16Unorm: return 1;
7965       case VULKAN_HPP_NAMESPACE::Format::eR16Snorm: return 1;
7966       case VULKAN_HPP_NAMESPACE::Format::eR16Uscaled: return 1;
7967       case VULKAN_HPP_NAMESPACE::Format::eR16Sscaled: return 1;
7968       case VULKAN_HPP_NAMESPACE::Format::eR16Uint: return 1;
7969       case VULKAN_HPP_NAMESPACE::Format::eR16Sint: return 1;
7970       case VULKAN_HPP_NAMESPACE::Format::eR16Sfloat: return 1;
7971       case VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm: return 2;
7972       case VULKAN_HPP_NAMESPACE::Format::eR16G16Snorm: return 2;
7973       case VULKAN_HPP_NAMESPACE::Format::eR16G16Uscaled: return 2;
7974       case VULKAN_HPP_NAMESPACE::Format::eR16G16Sscaled: return 2;
7975       case VULKAN_HPP_NAMESPACE::Format::eR16G16Uint: return 2;
7976       case VULKAN_HPP_NAMESPACE::Format::eR16G16Sint: return 2;
7977       case VULKAN_HPP_NAMESPACE::Format::eR16G16Sfloat: return 2;
7978       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Unorm: return 3;
7979       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Snorm: return 3;
7980       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uscaled: return 3;
7981       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sscaled: return 3;
7982       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uint: return 3;
7983       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sint: return 3;
7984       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sfloat: return 3;
7985       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Unorm: return 4;
7986       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Snorm: return 4;
7987       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uscaled: return 4;
7988       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sscaled: return 4;
7989       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uint: return 4;
7990       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sint: return 4;
7991       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sfloat: return 4;
7992       case VULKAN_HPP_NAMESPACE::Format::eR32Uint: return 1;
7993       case VULKAN_HPP_NAMESPACE::Format::eR32Sint: return 1;
7994       case VULKAN_HPP_NAMESPACE::Format::eR32Sfloat: return 1;
7995       case VULKAN_HPP_NAMESPACE::Format::eR32G32Uint: return 2;
7996       case VULKAN_HPP_NAMESPACE::Format::eR32G32Sint: return 2;
7997       case VULKAN_HPP_NAMESPACE::Format::eR32G32Sfloat: return 2;
7998       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Uint: return 3;
7999       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sint: return 3;
8000       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sfloat: return 3;
8001       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Uint: return 4;
8002       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sint: return 4;
8003       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sfloat: return 4;
8004       case VULKAN_HPP_NAMESPACE::Format::eR64Uint: return 1;
8005       case VULKAN_HPP_NAMESPACE::Format::eR64Sint: return 1;
8006       case VULKAN_HPP_NAMESPACE::Format::eR64Sfloat: return 1;
8007       case VULKAN_HPP_NAMESPACE::Format::eR64G64Uint: return 2;
8008       case VULKAN_HPP_NAMESPACE::Format::eR64G64Sint: return 2;
8009       case VULKAN_HPP_NAMESPACE::Format::eR64G64Sfloat: return 2;
8010       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Uint: return 3;
8011       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sint: return 3;
8012       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sfloat: return 3;
8013       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Uint: return 4;
8014       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sint: return 4;
8015       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sfloat: return 4;
8016       case VULKAN_HPP_NAMESPACE::Format::eB10G11R11UfloatPack32: return 3;
8017       case VULKAN_HPP_NAMESPACE::Format::eE5B9G9R9UfloatPack32: return 3;
8018       case VULKAN_HPP_NAMESPACE::Format::eD16Unorm: return 1;
8019       case VULKAN_HPP_NAMESPACE::Format::eX8D24UnormPack32: return 1;
8020       case VULKAN_HPP_NAMESPACE::Format::eD32Sfloat: return 1;
8021       case VULKAN_HPP_NAMESPACE::Format::eS8Uint: return 1;
8022       case VULKAN_HPP_NAMESPACE::Format::eD16UnormS8Uint: return 2;
8023       case VULKAN_HPP_NAMESPACE::Format::eD24UnormS8Uint: return 2;
8024       case VULKAN_HPP_NAMESPACE::Format::eD32SfloatS8Uint: return 2;
8025       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbUnormBlock: return 3;
8026       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbSrgbBlock: return 3;
8027       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaUnormBlock: return 4;
8028       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaSrgbBlock: return 4;
8029       case VULKAN_HPP_NAMESPACE::Format::eBc2UnormBlock: return 4;
8030       case VULKAN_HPP_NAMESPACE::Format::eBc2SrgbBlock: return 4;
8031       case VULKAN_HPP_NAMESPACE::Format::eBc3UnormBlock: return 4;
8032       case VULKAN_HPP_NAMESPACE::Format::eBc3SrgbBlock: return 4;
8033       case VULKAN_HPP_NAMESPACE::Format::eBc4UnormBlock: return 1;
8034       case VULKAN_HPP_NAMESPACE::Format::eBc4SnormBlock: return 1;
8035       case VULKAN_HPP_NAMESPACE::Format::eBc5UnormBlock: return 2;
8036       case VULKAN_HPP_NAMESPACE::Format::eBc5SnormBlock: return 2;
8037       case VULKAN_HPP_NAMESPACE::Format::eBc6HUfloatBlock: return 3;
8038       case VULKAN_HPP_NAMESPACE::Format::eBc6HSfloatBlock: return 3;
8039       case VULKAN_HPP_NAMESPACE::Format::eBc7UnormBlock: return 4;
8040       case VULKAN_HPP_NAMESPACE::Format::eBc7SrgbBlock: return 4;
8041       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8UnormBlock: return 3;
8042       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8SrgbBlock: return 3;
8043       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1UnormBlock: return 4;
8044       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1SrgbBlock: return 4;
8045       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8UnormBlock: return 4;
8046       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8SrgbBlock: return 4;
8047       case VULKAN_HPP_NAMESPACE::Format::eEacR11UnormBlock: return 1;
8048       case VULKAN_HPP_NAMESPACE::Format::eEacR11SnormBlock: return 1;
8049       case VULKAN_HPP_NAMESPACE::Format::eEacR11G11UnormBlock: return 2;
8050       case VULKAN_HPP_NAMESPACE::Format::eEacR11G11SnormBlock: return 2;
8051       case VULKAN_HPP_NAMESPACE::Format::eAstc4x4UnormBlock: return 4;
8052       case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SrgbBlock: return 4;
8053       case VULKAN_HPP_NAMESPACE::Format::eAstc5x4UnormBlock: return 4;
8054       case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SrgbBlock: return 4;
8055       case VULKAN_HPP_NAMESPACE::Format::eAstc5x5UnormBlock: return 4;
8056       case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SrgbBlock: return 4;
8057       case VULKAN_HPP_NAMESPACE::Format::eAstc6x5UnormBlock: return 4;
8058       case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SrgbBlock: return 4;
8059       case VULKAN_HPP_NAMESPACE::Format::eAstc6x6UnormBlock: return 4;
8060       case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SrgbBlock: return 4;
8061       case VULKAN_HPP_NAMESPACE::Format::eAstc8x5UnormBlock: return 4;
8062       case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SrgbBlock: return 4;
8063       case VULKAN_HPP_NAMESPACE::Format::eAstc8x6UnormBlock: return 4;
8064       case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SrgbBlock: return 4;
8065       case VULKAN_HPP_NAMESPACE::Format::eAstc8x8UnormBlock: return 4;
8066       case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SrgbBlock: return 4;
8067       case VULKAN_HPP_NAMESPACE::Format::eAstc10x5UnormBlock: return 4;
8068       case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SrgbBlock: return 4;
8069       case VULKAN_HPP_NAMESPACE::Format::eAstc10x6UnormBlock: return 4;
8070       case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SrgbBlock: return 4;
8071       case VULKAN_HPP_NAMESPACE::Format::eAstc10x8UnormBlock: return 4;
8072       case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SrgbBlock: return 4;
8073       case VULKAN_HPP_NAMESPACE::Format::eAstc10x10UnormBlock: return 4;
8074       case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SrgbBlock: return 4;
8075       case VULKAN_HPP_NAMESPACE::Format::eAstc12x10UnormBlock: return 4;
8076       case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SrgbBlock: return 4;
8077       case VULKAN_HPP_NAMESPACE::Format::eAstc12x12UnormBlock: return 4;
8078       case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SrgbBlock: return 4;
8079       case VULKAN_HPP_NAMESPACE::Format::eG8B8G8R8422Unorm: return 4;
8080       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8G8422Unorm: return 4;
8081       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm: return 3;
8082       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm: return 3;
8083       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm: return 3;
8084       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm: return 3;
8085       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm: return 3;
8086       case VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16: return 1;
8087       case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16: return 2;
8088       case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6B10X6A10X6Unorm4Pack16: return 4;
8089       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16: return 4;
8090       case VULKAN_HPP_NAMESPACE::Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16: return 4;
8091       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16: return 3;
8092       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16: return 3;
8093       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16: return 3;
8094       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16: return 3;
8095       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16: return 3;
8096       case VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16: return 1;
8097       case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16: return 2;
8098       case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4B12X4A12X4Unorm4Pack16: return 4;
8099       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16: return 4;
8100       case VULKAN_HPP_NAMESPACE::Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16: return 4;
8101       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16: return 3;
8102       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16: return 3;
8103       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16: return 3;
8104       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16: return 3;
8105       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16: return 3;
8106       case VULKAN_HPP_NAMESPACE::Format::eG16B16G16R16422Unorm: return 4;
8107       case VULKAN_HPP_NAMESPACE::Format::eB16G16R16G16422Unorm: return 4;
8108       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm: return 3;
8109       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm: return 3;
8110       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm: return 3;
8111       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm: return 3;
8112       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm: return 3;
8113       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444Unorm: return 3;
8114       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16: return 3;
8115       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16: return 3;
8116       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444Unorm: return 3;
8117       case VULKAN_HPP_NAMESPACE::Format::eA4R4G4B4UnormPack16: return 4;
8118       case VULKAN_HPP_NAMESPACE::Format::eA4B4G4R4UnormPack16: return 4;
8119       case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SfloatBlock: return 4;
8120       case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SfloatBlock: return 4;
8121       case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SfloatBlock: return 4;
8122       case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SfloatBlock: return 4;
8123       case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SfloatBlock: return 4;
8124       case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SfloatBlock: return 4;
8125       case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SfloatBlock: return 4;
8126       case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SfloatBlock: return 4;
8127       case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SfloatBlock: return 4;
8128       case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SfloatBlock: return 4;
8129       case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SfloatBlock: return 4;
8130       case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SfloatBlock: return 4;
8131       case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SfloatBlock: return 4;
8132       case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SfloatBlock: return 4;
8133       case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppUnormBlockIMG: return 4;
8134       case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppUnormBlockIMG: return 4;
8135       case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppUnormBlockIMG: return 4;
8136       case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppUnormBlockIMG: return 4;
8137       case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppSrgbBlockIMG: return 4;
8138       case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return 4;
8139       case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return 4;
8140       case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return 4;
8141 
8142       default: return 0;
8143     }
8144   }
8145 
8146   // True, if the components of this format are compressed, otherwise false.
componentsAreCompressed(VULKAN_HPP_NAMESPACE::Format format)8147   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 bool componentsAreCompressed( VULKAN_HPP_NAMESPACE::Format format )
8148   {
8149     switch ( format )
8150     {
8151       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbUnormBlock:
8152       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbSrgbBlock:
8153       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaUnormBlock:
8154       case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaSrgbBlock:
8155       case VULKAN_HPP_NAMESPACE::Format::eBc2UnormBlock:
8156       case VULKAN_HPP_NAMESPACE::Format::eBc2SrgbBlock:
8157       case VULKAN_HPP_NAMESPACE::Format::eBc3UnormBlock:
8158       case VULKAN_HPP_NAMESPACE::Format::eBc3SrgbBlock:
8159       case VULKAN_HPP_NAMESPACE::Format::eBc4UnormBlock:
8160       case VULKAN_HPP_NAMESPACE::Format::eBc4SnormBlock:
8161       case VULKAN_HPP_NAMESPACE::Format::eBc5UnormBlock:
8162       case VULKAN_HPP_NAMESPACE::Format::eBc5SnormBlock:
8163       case VULKAN_HPP_NAMESPACE::Format::eBc6HUfloatBlock:
8164       case VULKAN_HPP_NAMESPACE::Format::eBc6HSfloatBlock:
8165       case VULKAN_HPP_NAMESPACE::Format::eBc7UnormBlock:
8166       case VULKAN_HPP_NAMESPACE::Format::eBc7SrgbBlock:
8167       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8UnormBlock:
8168       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8SrgbBlock:
8169       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1UnormBlock:
8170       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1SrgbBlock:
8171       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8UnormBlock:
8172       case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8SrgbBlock:
8173       case VULKAN_HPP_NAMESPACE::Format::eAstc4x4UnormBlock:
8174       case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SrgbBlock:
8175       case VULKAN_HPP_NAMESPACE::Format::eAstc5x4UnormBlock:
8176       case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SrgbBlock:
8177       case VULKAN_HPP_NAMESPACE::Format::eAstc5x5UnormBlock:
8178       case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SrgbBlock:
8179       case VULKAN_HPP_NAMESPACE::Format::eAstc6x5UnormBlock:
8180       case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SrgbBlock:
8181       case VULKAN_HPP_NAMESPACE::Format::eAstc6x6UnormBlock:
8182       case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SrgbBlock:
8183       case VULKAN_HPP_NAMESPACE::Format::eAstc8x5UnormBlock:
8184       case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SrgbBlock:
8185       case VULKAN_HPP_NAMESPACE::Format::eAstc8x6UnormBlock:
8186       case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SrgbBlock:
8187       case VULKAN_HPP_NAMESPACE::Format::eAstc8x8UnormBlock:
8188       case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SrgbBlock:
8189       case VULKAN_HPP_NAMESPACE::Format::eAstc10x5UnormBlock:
8190       case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SrgbBlock:
8191       case VULKAN_HPP_NAMESPACE::Format::eAstc10x6UnormBlock:
8192       case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SrgbBlock:
8193       case VULKAN_HPP_NAMESPACE::Format::eAstc10x8UnormBlock:
8194       case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SrgbBlock:
8195       case VULKAN_HPP_NAMESPACE::Format::eAstc10x10UnormBlock:
8196       case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SrgbBlock:
8197       case VULKAN_HPP_NAMESPACE::Format::eAstc12x10UnormBlock:
8198       case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SrgbBlock:
8199       case VULKAN_HPP_NAMESPACE::Format::eAstc12x12UnormBlock:
8200       case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SrgbBlock:
8201       case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SfloatBlock:
8202       case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SfloatBlock:
8203       case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SfloatBlock:
8204       case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SfloatBlock:
8205       case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SfloatBlock:
8206       case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SfloatBlock:
8207       case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SfloatBlock:
8208       case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SfloatBlock:
8209       case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SfloatBlock:
8210       case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SfloatBlock:
8211       case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SfloatBlock:
8212       case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SfloatBlock:
8213       case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SfloatBlock:
8214       case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SfloatBlock:
8215       case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppUnormBlockIMG:
8216       case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppUnormBlockIMG:
8217       case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppUnormBlockIMG:
8218       case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppUnormBlockIMG:
8219       case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppSrgbBlockIMG:
8220       case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG:
8221       case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG:
8222       case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return true;
8223       default: return false;
8224     }
8225   }
8226 
8227   // The number of bits in this component, if not compressed, otherwise 0.
componentBits(VULKAN_HPP_NAMESPACE::Format format,uint8_t component)8228   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t componentBits( VULKAN_HPP_NAMESPACE::Format format,
8229                                                                    uint8_t                      component )
8230   {
8231     switch ( format )
8232     {
8233       case VULKAN_HPP_NAMESPACE::Format::eR4G4UnormPack8:
8234         switch ( component )
8235         {
8236           case 0: return 4;
8237           case 1: return 4;
8238           default: VULKAN_HPP_ASSERT( false ); return 0;
8239         }
8240       case VULKAN_HPP_NAMESPACE::Format::eR4G4B4A4UnormPack16:
8241         switch ( component )
8242         {
8243           case 0: return 4;
8244           case 1: return 4;
8245           case 2: return 4;
8246           case 3: return 4;
8247           default: VULKAN_HPP_ASSERT( false ); return 0;
8248         }
8249       case VULKAN_HPP_NAMESPACE::Format::eB4G4R4A4UnormPack16:
8250         switch ( component )
8251         {
8252           case 0: return 4;
8253           case 1: return 4;
8254           case 2: return 4;
8255           case 3: return 4;
8256           default: VULKAN_HPP_ASSERT( false ); return 0;
8257         }
8258       case VULKAN_HPP_NAMESPACE::Format::eR5G6B5UnormPack16:
8259         switch ( component )
8260         {
8261           case 0: return 5;
8262           case 1: return 6;
8263           case 2: return 5;
8264           default: VULKAN_HPP_ASSERT( false ); return 0;
8265         }
8266       case VULKAN_HPP_NAMESPACE::Format::eB5G6R5UnormPack16:
8267         switch ( component )
8268         {
8269           case 0: return 5;
8270           case 1: return 6;
8271           case 2: return 5;
8272           default: VULKAN_HPP_ASSERT( false ); return 0;
8273         }
8274       case VULKAN_HPP_NAMESPACE::Format::eR5G5B5A1UnormPack16:
8275         switch ( component )
8276         {
8277           case 0: return 5;
8278           case 1: return 5;
8279           case 2: return 5;
8280           case 3: return 1;
8281           default: VULKAN_HPP_ASSERT( false ); return 0;
8282         }
8283       case VULKAN_HPP_NAMESPACE::Format::eB5G5R5A1UnormPack16:
8284         switch ( component )
8285         {
8286           case 0: return 5;
8287           case 1: return 5;
8288           case 2: return 5;
8289           case 3: return 1;
8290           default: VULKAN_HPP_ASSERT( false ); return 0;
8291         }
8292       case VULKAN_HPP_NAMESPACE::Format::eA1R5G5B5UnormPack16:
8293         switch ( component )
8294         {
8295           case 0: return 1;
8296           case 1: return 5;
8297           case 2: return 5;
8298           case 3: return 5;
8299           default: VULKAN_HPP_ASSERT( false ); return 0;
8300         }
8301       case VULKAN_HPP_NAMESPACE::Format::eR8Unorm:
8302         switch ( component )
8303         {
8304           case 0: return 8;
8305           default: VULKAN_HPP_ASSERT( false ); return 0;
8306         }
8307       case VULKAN_HPP_NAMESPACE::Format::eR8Snorm:
8308         switch ( component )
8309         {
8310           case 0: return 8;
8311           default: VULKAN_HPP_ASSERT( false ); return 0;
8312         }
8313       case VULKAN_HPP_NAMESPACE::Format::eR8Uscaled:
8314         switch ( component )
8315         {
8316           case 0: return 8;
8317           default: VULKAN_HPP_ASSERT( false ); return 0;
8318         }
8319       case VULKAN_HPP_NAMESPACE::Format::eR8Sscaled:
8320         switch ( component )
8321         {
8322           case 0: return 8;
8323           default: VULKAN_HPP_ASSERT( false ); return 0;
8324         }
8325       case VULKAN_HPP_NAMESPACE::Format::eR8Uint:
8326         switch ( component )
8327         {
8328           case 0: return 8;
8329           default: VULKAN_HPP_ASSERT( false ); return 0;
8330         }
8331       case VULKAN_HPP_NAMESPACE::Format::eR8Sint:
8332         switch ( component )
8333         {
8334           case 0: return 8;
8335           default: VULKAN_HPP_ASSERT( false ); return 0;
8336         }
8337       case VULKAN_HPP_NAMESPACE::Format::eR8Srgb:
8338         switch ( component )
8339         {
8340           case 0: return 8;
8341           default: VULKAN_HPP_ASSERT( false ); return 0;
8342         }
8343       case VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm:
8344         switch ( component )
8345         {
8346           case 0: return 8;
8347           case 1: return 8;
8348           default: VULKAN_HPP_ASSERT( false ); return 0;
8349         }
8350       case VULKAN_HPP_NAMESPACE::Format::eR8G8Snorm:
8351         switch ( component )
8352         {
8353           case 0: return 8;
8354           case 1: return 8;
8355           default: VULKAN_HPP_ASSERT( false ); return 0;
8356         }
8357       case VULKAN_HPP_NAMESPACE::Format::eR8G8Uscaled:
8358         switch ( component )
8359         {
8360           case 0: return 8;
8361           case 1: return 8;
8362           default: VULKAN_HPP_ASSERT( false ); return 0;
8363         }
8364       case VULKAN_HPP_NAMESPACE::Format::eR8G8Sscaled:
8365         switch ( component )
8366         {
8367           case 0: return 8;
8368           case 1: return 8;
8369           default: VULKAN_HPP_ASSERT( false ); return 0;
8370         }
8371       case VULKAN_HPP_NAMESPACE::Format::eR8G8Uint:
8372         switch ( component )
8373         {
8374           case 0: return 8;
8375           case 1: return 8;
8376           default: VULKAN_HPP_ASSERT( false ); return 0;
8377         }
8378       case VULKAN_HPP_NAMESPACE::Format::eR8G8Sint:
8379         switch ( component )
8380         {
8381           case 0: return 8;
8382           case 1: return 8;
8383           default: VULKAN_HPP_ASSERT( false ); return 0;
8384         }
8385       case VULKAN_HPP_NAMESPACE::Format::eR8G8Srgb:
8386         switch ( component )
8387         {
8388           case 0: return 8;
8389           case 1: return 8;
8390           default: VULKAN_HPP_ASSERT( false ); return 0;
8391         }
8392       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Unorm:
8393         switch ( component )
8394         {
8395           case 0: return 8;
8396           case 1: return 8;
8397           case 2: return 8;
8398           default: VULKAN_HPP_ASSERT( false ); return 0;
8399         }
8400       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Snorm:
8401         switch ( component )
8402         {
8403           case 0: return 8;
8404           case 1: return 8;
8405           case 2: return 8;
8406           default: VULKAN_HPP_ASSERT( false ); return 0;
8407         }
8408       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uscaled:
8409         switch ( component )
8410         {
8411           case 0: return 8;
8412           case 1: return 8;
8413           case 2: return 8;
8414           default: VULKAN_HPP_ASSERT( false ); return 0;
8415         }
8416       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sscaled:
8417         switch ( component )
8418         {
8419           case 0: return 8;
8420           case 1: return 8;
8421           case 2: return 8;
8422           default: VULKAN_HPP_ASSERT( false ); return 0;
8423         }
8424       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uint:
8425         switch ( component )
8426         {
8427           case 0: return 8;
8428           case 1: return 8;
8429           case 2: return 8;
8430           default: VULKAN_HPP_ASSERT( false ); return 0;
8431         }
8432       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sint:
8433         switch ( component )
8434         {
8435           case 0: return 8;
8436           case 1: return 8;
8437           case 2: return 8;
8438           default: VULKAN_HPP_ASSERT( false ); return 0;
8439         }
8440       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Srgb:
8441         switch ( component )
8442         {
8443           case 0: return 8;
8444           case 1: return 8;
8445           case 2: return 8;
8446           default: VULKAN_HPP_ASSERT( false ); return 0;
8447         }
8448       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Unorm:
8449         switch ( component )
8450         {
8451           case 0: return 8;
8452           case 1: return 8;
8453           case 2: return 8;
8454           default: VULKAN_HPP_ASSERT( false ); return 0;
8455         }
8456       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Snorm:
8457         switch ( component )
8458         {
8459           case 0: return 8;
8460           case 1: return 8;
8461           case 2: return 8;
8462           default: VULKAN_HPP_ASSERT( false ); return 0;
8463         }
8464       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uscaled:
8465         switch ( component )
8466         {
8467           case 0: return 8;
8468           case 1: return 8;
8469           case 2: return 8;
8470           default: VULKAN_HPP_ASSERT( false ); return 0;
8471         }
8472       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sscaled:
8473         switch ( component )
8474         {
8475           case 0: return 8;
8476           case 1: return 8;
8477           case 2: return 8;
8478           default: VULKAN_HPP_ASSERT( false ); return 0;
8479         }
8480       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uint:
8481         switch ( component )
8482         {
8483           case 0: return 8;
8484           case 1: return 8;
8485           case 2: return 8;
8486           default: VULKAN_HPP_ASSERT( false ); return 0;
8487         }
8488       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sint:
8489         switch ( component )
8490         {
8491           case 0: return 8;
8492           case 1: return 8;
8493           case 2: return 8;
8494           default: VULKAN_HPP_ASSERT( false ); return 0;
8495         }
8496       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Srgb:
8497         switch ( component )
8498         {
8499           case 0: return 8;
8500           case 1: return 8;
8501           case 2: return 8;
8502           default: VULKAN_HPP_ASSERT( false ); return 0;
8503         }
8504       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Unorm:
8505         switch ( component )
8506         {
8507           case 0: return 8;
8508           case 1: return 8;
8509           case 2: return 8;
8510           case 3: return 8;
8511           default: VULKAN_HPP_ASSERT( false ); return 0;
8512         }
8513       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Snorm:
8514         switch ( component )
8515         {
8516           case 0: return 8;
8517           case 1: return 8;
8518           case 2: return 8;
8519           case 3: return 8;
8520           default: VULKAN_HPP_ASSERT( false ); return 0;
8521         }
8522       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uscaled:
8523         switch ( component )
8524         {
8525           case 0: return 8;
8526           case 1: return 8;
8527           case 2: return 8;
8528           case 3: return 8;
8529           default: VULKAN_HPP_ASSERT( false ); return 0;
8530         }
8531       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sscaled:
8532         switch ( component )
8533         {
8534           case 0: return 8;
8535           case 1: return 8;
8536           case 2: return 8;
8537           case 3: return 8;
8538           default: VULKAN_HPP_ASSERT( false ); return 0;
8539         }
8540       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uint:
8541         switch ( component )
8542         {
8543           case 0: return 8;
8544           case 1: return 8;
8545           case 2: return 8;
8546           case 3: return 8;
8547           default: VULKAN_HPP_ASSERT( false ); return 0;
8548         }
8549       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sint:
8550         switch ( component )
8551         {
8552           case 0: return 8;
8553           case 1: return 8;
8554           case 2: return 8;
8555           case 3: return 8;
8556           default: VULKAN_HPP_ASSERT( false ); return 0;
8557         }
8558       case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Srgb:
8559         switch ( component )
8560         {
8561           case 0: return 8;
8562           case 1: return 8;
8563           case 2: return 8;
8564           case 3: return 8;
8565           default: VULKAN_HPP_ASSERT( false ); return 0;
8566         }
8567       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Unorm:
8568         switch ( component )
8569         {
8570           case 0: return 8;
8571           case 1: return 8;
8572           case 2: return 8;
8573           case 3: return 8;
8574           default: VULKAN_HPP_ASSERT( false ); return 0;
8575         }
8576       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Snorm:
8577         switch ( component )
8578         {
8579           case 0: return 8;
8580           case 1: return 8;
8581           case 2: return 8;
8582           case 3: return 8;
8583           default: VULKAN_HPP_ASSERT( false ); return 0;
8584         }
8585       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uscaled:
8586         switch ( component )
8587         {
8588           case 0: return 8;
8589           case 1: return 8;
8590           case 2: return 8;
8591           case 3: return 8;
8592           default: VULKAN_HPP_ASSERT( false ); return 0;
8593         }
8594       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sscaled:
8595         switch ( component )
8596         {
8597           case 0: return 8;
8598           case 1: return 8;
8599           case 2: return 8;
8600           case 3: return 8;
8601           default: VULKAN_HPP_ASSERT( false ); return 0;
8602         }
8603       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uint:
8604         switch ( component )
8605         {
8606           case 0: return 8;
8607           case 1: return 8;
8608           case 2: return 8;
8609           case 3: return 8;
8610           default: VULKAN_HPP_ASSERT( false ); return 0;
8611         }
8612       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sint:
8613         switch ( component )
8614         {
8615           case 0: return 8;
8616           case 1: return 8;
8617           case 2: return 8;
8618           case 3: return 8;
8619           default: VULKAN_HPP_ASSERT( false ); return 0;
8620         }
8621       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Srgb:
8622         switch ( component )
8623         {
8624           case 0: return 8;
8625           case 1: return 8;
8626           case 2: return 8;
8627           case 3: return 8;
8628           default: VULKAN_HPP_ASSERT( false ); return 0;
8629         }
8630       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UnormPack32:
8631         switch ( component )
8632         {
8633           case 0: return 8;
8634           case 1: return 8;
8635           case 2: return 8;
8636           case 3: return 8;
8637           default: VULKAN_HPP_ASSERT( false ); return 0;
8638         }
8639       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SnormPack32:
8640         switch ( component )
8641         {
8642           case 0: return 8;
8643           case 1: return 8;
8644           case 2: return 8;
8645           case 3: return 8;
8646           default: VULKAN_HPP_ASSERT( false ); return 0;
8647         }
8648       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UscaledPack32:
8649         switch ( component )
8650         {
8651           case 0: return 8;
8652           case 1: return 8;
8653           case 2: return 8;
8654           case 3: return 8;
8655           default: VULKAN_HPP_ASSERT( false ); return 0;
8656         }
8657       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SscaledPack32:
8658         switch ( component )
8659         {
8660           case 0: return 8;
8661           case 1: return 8;
8662           case 2: return 8;
8663           case 3: return 8;
8664           default: VULKAN_HPP_ASSERT( false ); return 0;
8665         }
8666       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UintPack32:
8667         switch ( component )
8668         {
8669           case 0: return 8;
8670           case 1: return 8;
8671           case 2: return 8;
8672           case 3: return 8;
8673           default: VULKAN_HPP_ASSERT( false ); return 0;
8674         }
8675       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SintPack32:
8676         switch ( component )
8677         {
8678           case 0: return 8;
8679           case 1: return 8;
8680           case 2: return 8;
8681           case 3: return 8;
8682           default: VULKAN_HPP_ASSERT( false ); return 0;
8683         }
8684       case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SrgbPack32:
8685         switch ( component )
8686         {
8687           case 0: return 8;
8688           case 1: return 8;
8689           case 2: return 8;
8690           case 3: return 8;
8691           default: VULKAN_HPP_ASSERT( false ); return 0;
8692         }
8693       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UnormPack32:
8694         switch ( component )
8695         {
8696           case 0: return 2;
8697           case 1: return 10;
8698           case 2: return 10;
8699           case 3: return 10;
8700           default: VULKAN_HPP_ASSERT( false ); return 0;
8701         }
8702       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SnormPack32:
8703         switch ( component )
8704         {
8705           case 0: return 2;
8706           case 1: return 10;
8707           case 2: return 10;
8708           case 3: return 10;
8709           default: VULKAN_HPP_ASSERT( false ); return 0;
8710         }
8711       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UscaledPack32:
8712         switch ( component )
8713         {
8714           case 0: return 2;
8715           case 1: return 10;
8716           case 2: return 10;
8717           case 3: return 10;
8718           default: VULKAN_HPP_ASSERT( false ); return 0;
8719         }
8720       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SscaledPack32:
8721         switch ( component )
8722         {
8723           case 0: return 2;
8724           case 1: return 10;
8725           case 2: return 10;
8726           case 3: return 10;
8727           default: VULKAN_HPP_ASSERT( false ); return 0;
8728         }
8729       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UintPack32:
8730         switch ( component )
8731         {
8732           case 0: return 2;
8733           case 1: return 10;
8734           case 2: return 10;
8735           case 3: return 10;
8736           default: VULKAN_HPP_ASSERT( false ); return 0;
8737         }
8738       case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SintPack32:
8739         switch ( component )
8740         {
8741           case 0: return 2;
8742           case 1: return 10;
8743           case 2: return 10;
8744           case 3: return 10;
8745           default: VULKAN_HPP_ASSERT( false ); return 0;
8746         }
8747       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UnormPack32:
8748         switch ( component )
8749         {
8750           case 0: return 2;
8751           case 1: return 10;
8752           case 2: return 10;
8753           case 3: return 10;
8754           default: VULKAN_HPP_ASSERT( false ); return 0;
8755         }
8756       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SnormPack32:
8757         switch ( component )
8758         {
8759           case 0: return 2;
8760           case 1: return 10;
8761           case 2: return 10;
8762           case 3: return 10;
8763           default: VULKAN_HPP_ASSERT( false ); return 0;
8764         }
8765       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UscaledPack32:
8766         switch ( component )
8767         {
8768           case 0: return 2;
8769           case 1: return 10;
8770           case 2: return 10;
8771           case 3: return 10;
8772           default: VULKAN_HPP_ASSERT( false ); return 0;
8773         }
8774       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SscaledPack32:
8775         switch ( component )
8776         {
8777           case 0: return 2;
8778           case 1: return 10;
8779           case 2: return 10;
8780           case 3: return 10;
8781           default: VULKAN_HPP_ASSERT( false ); return 0;
8782         }
8783       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UintPack32:
8784         switch ( component )
8785         {
8786           case 0: return 2;
8787           case 1: return 10;
8788           case 2: return 10;
8789           case 3: return 10;
8790           default: VULKAN_HPP_ASSERT( false ); return 0;
8791         }
8792       case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SintPack32:
8793         switch ( component )
8794         {
8795           case 0: return 2;
8796           case 1: return 10;
8797           case 2: return 10;
8798           case 3: return 10;
8799           default: VULKAN_HPP_ASSERT( false ); return 0;
8800         }
8801       case VULKAN_HPP_NAMESPACE::Format::eR16Unorm:
8802         switch ( component )
8803         {
8804           case 0: return 16;
8805           default: VULKAN_HPP_ASSERT( false ); return 0;
8806         }
8807       case VULKAN_HPP_NAMESPACE::Format::eR16Snorm:
8808         switch ( component )
8809         {
8810           case 0: return 16;
8811           default: VULKAN_HPP_ASSERT( false ); return 0;
8812         }
8813       case VULKAN_HPP_NAMESPACE::Format::eR16Uscaled:
8814         switch ( component )
8815         {
8816           case 0: return 16;
8817           default: VULKAN_HPP_ASSERT( false ); return 0;
8818         }
8819       case VULKAN_HPP_NAMESPACE::Format::eR16Sscaled:
8820         switch ( component )
8821         {
8822           case 0: return 16;
8823           default: VULKAN_HPP_ASSERT( false ); return 0;
8824         }
8825       case VULKAN_HPP_NAMESPACE::Format::eR16Uint:
8826         switch ( component )
8827         {
8828           case 0: return 16;
8829           default: VULKAN_HPP_ASSERT( false ); return 0;
8830         }
8831       case VULKAN_HPP_NAMESPACE::Format::eR16Sint:
8832         switch ( component )
8833         {
8834           case 0: return 16;
8835           default: VULKAN_HPP_ASSERT( false ); return 0;
8836         }
8837       case VULKAN_HPP_NAMESPACE::Format::eR16Sfloat:
8838         switch ( component )
8839         {
8840           case 0: return 16;
8841           default: VULKAN_HPP_ASSERT( false ); return 0;
8842         }
8843       case VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm:
8844         switch ( component )
8845         {
8846           case 0: return 16;
8847           case 1: return 16;
8848           default: VULKAN_HPP_ASSERT( false ); return 0;
8849         }
8850       case VULKAN_HPP_NAMESPACE::Format::eR16G16Snorm:
8851         switch ( component )
8852         {
8853           case 0: return 16;
8854           case 1: return 16;
8855           default: VULKAN_HPP_ASSERT( false ); return 0;
8856         }
8857       case VULKAN_HPP_NAMESPACE::Format::eR16G16Uscaled:
8858         switch ( component )
8859         {
8860           case 0: return 16;
8861           case 1: return 16;
8862           default: VULKAN_HPP_ASSERT( false ); return 0;
8863         }
8864       case VULKAN_HPP_NAMESPACE::Format::eR16G16Sscaled:
8865         switch ( component )
8866         {
8867           case 0: return 16;
8868           case 1: return 16;
8869           default: VULKAN_HPP_ASSERT( false ); return 0;
8870         }
8871       case VULKAN_HPP_NAMESPACE::Format::eR16G16Uint:
8872         switch ( component )
8873         {
8874           case 0: return 16;
8875           case 1: return 16;
8876           default: VULKAN_HPP_ASSERT( false ); return 0;
8877         }
8878       case VULKAN_HPP_NAMESPACE::Format::eR16G16Sint:
8879         switch ( component )
8880         {
8881           case 0: return 16;
8882           case 1: return 16;
8883           default: VULKAN_HPP_ASSERT( false ); return 0;
8884         }
8885       case VULKAN_HPP_NAMESPACE::Format::eR16G16Sfloat:
8886         switch ( component )
8887         {
8888           case 0: return 16;
8889           case 1: return 16;
8890           default: VULKAN_HPP_ASSERT( false ); return 0;
8891         }
8892       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Unorm:
8893         switch ( component )
8894         {
8895           case 0: return 16;
8896           case 1: return 16;
8897           case 2: return 16;
8898           default: VULKAN_HPP_ASSERT( false ); return 0;
8899         }
8900       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Snorm:
8901         switch ( component )
8902         {
8903           case 0: return 16;
8904           case 1: return 16;
8905           case 2: return 16;
8906           default: VULKAN_HPP_ASSERT( false ); return 0;
8907         }
8908       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uscaled:
8909         switch ( component )
8910         {
8911           case 0: return 16;
8912           case 1: return 16;
8913           case 2: return 16;
8914           default: VULKAN_HPP_ASSERT( false ); return 0;
8915         }
8916       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sscaled:
8917         switch ( component )
8918         {
8919           case 0: return 16;
8920           case 1: return 16;
8921           case 2: return 16;
8922           default: VULKAN_HPP_ASSERT( false ); return 0;
8923         }
8924       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uint:
8925         switch ( component )
8926         {
8927           case 0: return 16;
8928           case 1: return 16;
8929           case 2: return 16;
8930           default: VULKAN_HPP_ASSERT( false ); return 0;
8931         }
8932       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sint:
8933         switch ( component )
8934         {
8935           case 0: return 16;
8936           case 1: return 16;
8937           case 2: return 16;
8938           default: VULKAN_HPP_ASSERT( false ); return 0;
8939         }
8940       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sfloat:
8941         switch ( component )
8942         {
8943           case 0: return 16;
8944           case 1: return 16;
8945           case 2: return 16;
8946           default: VULKAN_HPP_ASSERT( false ); return 0;
8947         }
8948       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Unorm:
8949         switch ( component )
8950         {
8951           case 0: return 16;
8952           case 1: return 16;
8953           case 2: return 16;
8954           case 3: return 16;
8955           default: VULKAN_HPP_ASSERT( false ); return 0;
8956         }
8957       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Snorm:
8958         switch ( component )
8959         {
8960           case 0: return 16;
8961           case 1: return 16;
8962           case 2: return 16;
8963           case 3: return 16;
8964           default: VULKAN_HPP_ASSERT( false ); return 0;
8965         }
8966       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uscaled:
8967         switch ( component )
8968         {
8969           case 0: return 16;
8970           case 1: return 16;
8971           case 2: return 16;
8972           case 3: return 16;
8973           default: VULKAN_HPP_ASSERT( false ); return 0;
8974         }
8975       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sscaled:
8976         switch ( component )
8977         {
8978           case 0: return 16;
8979           case 1: return 16;
8980           case 2: return 16;
8981           case 3: return 16;
8982           default: VULKAN_HPP_ASSERT( false ); return 0;
8983         }
8984       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uint:
8985         switch ( component )
8986         {
8987           case 0: return 16;
8988           case 1: return 16;
8989           case 2: return 16;
8990           case 3: return 16;
8991           default: VULKAN_HPP_ASSERT( false ); return 0;
8992         }
8993       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sint:
8994         switch ( component )
8995         {
8996           case 0: return 16;
8997           case 1: return 16;
8998           case 2: return 16;
8999           case 3: return 16;
9000           default: VULKAN_HPP_ASSERT( false ); return 0;
9001         }
9002       case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sfloat:
9003         switch ( component )
9004         {
9005           case 0: return 16;
9006           case 1: return 16;
9007           case 2: return 16;
9008           case 3: return 16;
9009           default: VULKAN_HPP_ASSERT( false ); return 0;
9010         }
9011       case VULKAN_HPP_NAMESPACE::Format::eR32Uint:
9012         switch ( component )
9013         {
9014           case 0: return 32;
9015           default: VULKAN_HPP_ASSERT( false ); return 0;
9016         }
9017       case VULKAN_HPP_NAMESPACE::Format::eR32Sint:
9018         switch ( component )
9019         {
9020           case 0: return 32;
9021           default: VULKAN_HPP_ASSERT( false ); return 0;
9022         }
9023       case VULKAN_HPP_NAMESPACE::Format::eR32Sfloat:
9024         switch ( component )
9025         {
9026           case 0: return 32;
9027           default: VULKAN_HPP_ASSERT( false ); return 0;
9028         }
9029       case VULKAN_HPP_NAMESPACE::Format::eR32G32Uint:
9030         switch ( component )
9031         {
9032           case 0: return 32;
9033           case 1: return 32;
9034           default: VULKAN_HPP_ASSERT( false ); return 0;
9035         }
9036       case VULKAN_HPP_NAMESPACE::Format::eR32G32Sint:
9037         switch ( component )
9038         {
9039           case 0: return 32;
9040           case 1: return 32;
9041           default: VULKAN_HPP_ASSERT( false ); return 0;
9042         }
9043       case VULKAN_HPP_NAMESPACE::Format::eR32G32Sfloat:
9044         switch ( component )
9045         {
9046           case 0: return 32;
9047           case 1: return 32;
9048           default: VULKAN_HPP_ASSERT( false ); return 0;
9049         }
9050       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Uint:
9051         switch ( component )
9052         {
9053           case 0: return 32;
9054           case 1: return 32;
9055           case 2: return 32;
9056           default: VULKAN_HPP_ASSERT( false ); return 0;
9057         }
9058       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sint:
9059         switch ( component )
9060         {
9061           case 0: return 32;
9062           case 1: return 32;
9063           case 2: return 32;
9064           default: VULKAN_HPP_ASSERT( false ); return 0;
9065         }
9066       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sfloat:
9067         switch ( component )
9068         {
9069           case 0: return 32;
9070           case 1: return 32;
9071           case 2: return 32;
9072           default: VULKAN_HPP_ASSERT( false ); return 0;
9073         }
9074       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Uint:
9075         switch ( component )
9076         {
9077           case 0: return 32;
9078           case 1: return 32;
9079           case 2: return 32;
9080           case 3: return 32;
9081           default: VULKAN_HPP_ASSERT( false ); return 0;
9082         }
9083       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sint:
9084         switch ( component )
9085         {
9086           case 0: return 32;
9087           case 1: return 32;
9088           case 2: return 32;
9089           case 3: return 32;
9090           default: VULKAN_HPP_ASSERT( false ); return 0;
9091         }
9092       case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sfloat:
9093         switch ( component )
9094         {
9095           case 0: return 32;
9096           case 1: return 32;
9097           case 2: return 32;
9098           case 3: return 32;
9099           default: VULKAN_HPP_ASSERT( false ); return 0;
9100         }
9101       case VULKAN_HPP_NAMESPACE::Format::eR64Uint:
9102         switch ( component )
9103         {
9104           case 0: return 64;
9105           default: VULKAN_HPP_ASSERT( false ); return 0;
9106         }
9107       case VULKAN_HPP_NAMESPACE::Format::eR64Sint:
9108         switch ( component )
9109         {
9110           case 0: return 64;
9111           default: VULKAN_HPP_ASSERT( false ); return 0;
9112         }
9113       case VULKAN_HPP_NAMESPACE::Format::eR64Sfloat:
9114         switch ( component )
9115         {
9116           case 0: return 64;
9117           default: VULKAN_HPP_ASSERT( false ); return 0;
9118         }
9119       case VULKAN_HPP_NAMESPACE::Format::eR64G64Uint:
9120         switch ( component )
9121         {
9122           case 0: return 64;
9123           case 1: return 64;
9124           default: VULKAN_HPP_ASSERT( false ); return 0;
9125         }
9126       case VULKAN_HPP_NAMESPACE::Format::eR64G64Sint:
9127         switch ( component )
9128         {
9129           case 0: return 64;
9130           case 1: return 64;
9131           default: VULKAN_HPP_ASSERT( false ); return 0;
9132         }
9133       case VULKAN_HPP_NAMESPACE::Format::eR64G64Sfloat:
9134         switch ( component )
9135         {
9136           case 0: return 64;
9137           case 1: return 64;
9138           default: VULKAN_HPP_ASSERT( false ); return 0;
9139         }
9140       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Uint:
9141         switch ( component )
9142         {
9143           case 0: return 64;
9144           case 1: return 64;
9145           case 2: return 64;
9146           default: VULKAN_HPP_ASSERT( false ); return 0;
9147         }
9148       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sint:
9149         switch ( component )
9150         {
9151           case 0: return 64;
9152           case 1: return 64;
9153           case 2: return 64;
9154           default: VULKAN_HPP_ASSERT( false ); return 0;
9155         }
9156       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sfloat:
9157         switch ( component )
9158         {
9159           case 0: return 64;
9160           case 1: return 64;
9161           case 2: return 64;
9162           default: VULKAN_HPP_ASSERT( false ); return 0;
9163         }
9164       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Uint:
9165         switch ( component )
9166         {
9167           case 0: return 64;
9168           case 1: return 64;
9169           case 2: return 64;
9170           case 3: return 64;
9171           default: VULKAN_HPP_ASSERT( false ); return 0;
9172         }
9173       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sint:
9174         switch ( component )
9175         {
9176           case 0: return 64;
9177           case 1: return 64;
9178           case 2: return 64;
9179           case 3: return 64;
9180           default: VULKAN_HPP_ASSERT( false ); return 0;
9181         }
9182       case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sfloat:
9183         switch ( component )
9184         {
9185           case 0: return 64;
9186           case 1: return 64;
9187           case 2: return 64;
9188           case 3: return 64;
9189           default: VULKAN_HPP_ASSERT( false ); return 0;
9190         }
9191       case VULKAN_HPP_NAMESPACE::Format::eB10G11R11UfloatPack32:
9192         switch ( component )
9193         {
9194           case 0: return 10;
9195           case 1: return 11;
9196           case 2: return 10;
9197           default: VULKAN_HPP_ASSERT( false ); return 0;
9198         }
9199       case VULKAN_HPP_NAMESPACE::Format::eE5B9G9R9UfloatPack32:
9200         switch ( component )
9201         {
9202           case 0: return 9;
9203           case 1: return 9;
9204           case 2: return 9;
9205           default: VULKAN_HPP_ASSERT( false ); return 0;
9206         }
9207       case VULKAN_HPP_NAMESPACE::Format::eD16Unorm:
9208         switch ( component )
9209         {
9210           case 0: return 16;
9211           default: VULKAN_HPP_ASSERT( false ); return 0;
9212         }
9213       case VULKAN_HPP_NAMESPACE::Format::eX8D24UnormPack32:
9214         switch ( component )
9215         {
9216           case 0: return 24;
9217           default: VULKAN_HPP_ASSERT( false ); return 0;
9218         }
9219       case VULKAN_HPP_NAMESPACE::Format::eD32Sfloat:
9220         switch ( component )
9221         {
9222           case 0: return 32;
9223           default: VULKAN_HPP_ASSERT( false ); return 0;
9224         }
9225       case VULKAN_HPP_NAMESPACE::Format::eS8Uint:
9226         switch ( component )
9227         {
9228           case 0: return 8;
9229           default: VULKAN_HPP_ASSERT( false ); return 0;
9230         }
9231       case VULKAN_HPP_NAMESPACE::Format::eD16UnormS8Uint:
9232         switch ( component )
9233         {
9234           case 0: return 16;
9235           case 1: return 8;
9236           default: VULKAN_HPP_ASSERT( false ); return 0;
9237         }
9238       case VULKAN_HPP_NAMESPACE::Format::eD24UnormS8Uint:
9239         switch ( component )
9240         {
9241           case 0: return 24;
9242           case 1: return 8;
9243           default: VULKAN_HPP_ASSERT( false ); return 0;
9244         }
9245       case VULKAN_HPP_NAMESPACE::Format::eD32SfloatS8Uint:
9246         switch ( component )
9247         {
9248           case 0: return 32;
9249           case 1: return 8;
9250           default: VULKAN_HPP_ASSERT( false ); return 0;
9251         }
9252       case VULKAN_HPP_NAMESPACE::Format::eEacR11UnormBlock:
9253         switch ( component )
9254         {
9255           case 0: return 11;
9256           default: VULKAN_HPP_ASSERT( false ); return 0;
9257         }
9258       case VULKAN_HPP_NAMESPACE::Format::eEacR11SnormBlock:
9259         switch ( component )
9260         {
9261           case 0: return 11;
9262           default: VULKAN_HPP_ASSERT( false ); return 0;
9263         }
9264       case VULKAN_HPP_NAMESPACE::Format::eEacR11G11UnormBlock:
9265         switch ( component )
9266         {
9267           case 0: return 11;
9268           case 1: return 11;
9269           default: VULKAN_HPP_ASSERT( false ); return 0;
9270         }
9271       case VULKAN_HPP_NAMESPACE::Format::eEacR11G11SnormBlock:
9272         switch ( component )
9273         {
9274           case 0: return 11;
9275           case 1: return 11;
9276           default: VULKAN_HPP_ASSERT( false ); return 0;
9277         }
9278       case VULKAN_HPP_NAMESPACE::Format::eG8B8G8R8422Unorm:
9279         switch ( component )
9280         {
9281           case 0: return 8;
9282           case 1: return 8;
9283           case 2: return 8;
9284           case 3: return 8;
9285           default: VULKAN_HPP_ASSERT( false ); return 0;
9286         }
9287       case VULKAN_HPP_NAMESPACE::Format::eB8G8R8G8422Unorm:
9288         switch ( component )
9289         {
9290           case 0: return 8;
9291           case 1: return 8;
9292           case 2: return 8;
9293           case 3: return 8;
9294           default: VULKAN_HPP_ASSERT( false ); return 0;
9295         }
9296       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm:
9297         switch ( component )
9298         {
9299           case 0: return 8;
9300           case 1: return 8;
9301           case 2: return 8;
9302           default: VULKAN_HPP_ASSERT( false ); return 0;
9303         }
9304       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm:
9305         switch ( component )
9306         {
9307           case 0: return 8;
9308           case 1: return 8;
9309           case 2: return 8;
9310           default: VULKAN_HPP_ASSERT( false ); return 0;
9311         }
9312       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm:
9313         switch ( component )
9314         {
9315           case 0: return 8;
9316           case 1: return 8;
9317           case 2: return 8;
9318           default: VULKAN_HPP_ASSERT( false ); return 0;
9319         }
9320       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm:
9321         switch ( component )
9322         {
9323           case 0: return 8;
9324           case 1: return 8;
9325           case 2: return 8;
9326           default: VULKAN_HPP_ASSERT( false ); return 0;
9327         }
9328       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm:
9329         switch ( component )
9330         {
9331           case 0: return 8;
9332           case 1: return 8;
9333           case 2: return 8;
9334           default: VULKAN_HPP_ASSERT( false ); return 0;
9335         }
9336       case VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16:
9337         switch ( component )
9338         {
9339           case 0: return 10;
9340           default: VULKAN_HPP_ASSERT( false ); return 0;
9341         }
9342       case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16:
9343         switch ( component )
9344         {
9345           case 0: return 10;
9346           case 1: return 10;
9347           default: VULKAN_HPP_ASSERT( false ); return 0;
9348         }
9349       case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6B10X6A10X6Unorm4Pack16:
9350         switch ( component )
9351         {
9352           case 0: return 10;
9353           case 1: return 10;
9354           case 2: return 10;
9355           case 3: return 10;
9356           default: VULKAN_HPP_ASSERT( false ); return 0;
9357         }
9358       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16:
9359         switch ( component )
9360         {
9361           case 0: return 10;
9362           case 1: return 10;
9363           case 2: return 10;
9364           case 3: return 10;
9365           default: VULKAN_HPP_ASSERT( false ); return 0;
9366         }
9367       case VULKAN_HPP_NAMESPACE::Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16:
9368         switch ( component )
9369         {
9370           case 0: return 10;
9371           case 1: return 10;
9372           case 2: return 10;
9373           case 3: return 10;
9374           default: VULKAN_HPP_ASSERT( false ); return 0;
9375         }
9376       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16:
9377         switch ( component )
9378         {
9379           case 0: return 10;
9380           case 1: return 10;
9381           case 2: return 10;
9382           default: VULKAN_HPP_ASSERT( false ); return 0;
9383         }
9384       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16:
9385         switch ( component )
9386         {
9387           case 0: return 10;
9388           case 1: return 10;
9389           case 2: return 10;
9390           default: VULKAN_HPP_ASSERT( false ); return 0;
9391         }
9392       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16:
9393         switch ( component )
9394         {
9395           case 0: return 10;
9396           case 1: return 10;
9397           case 2: return 10;
9398           default: VULKAN_HPP_ASSERT( false ); return 0;
9399         }
9400       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16:
9401         switch ( component )
9402         {
9403           case 0: return 10;
9404           case 1: return 10;
9405           case 2: return 10;
9406           default: VULKAN_HPP_ASSERT( false ); return 0;
9407         }
9408       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16:
9409         switch ( component )
9410         {
9411           case 0: return 10;
9412           case 1: return 10;
9413           case 2: return 10;
9414           default: VULKAN_HPP_ASSERT( false ); return 0;
9415         }
9416       case VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16:
9417         switch ( component )
9418         {
9419           case 0: return 12;
9420           default: VULKAN_HPP_ASSERT( false ); return 0;
9421         }
9422       case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16:
9423         switch ( component )
9424         {
9425           case 0: return 12;
9426           case 1: return 12;
9427           default: VULKAN_HPP_ASSERT( false ); return 0;
9428         }
9429       case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4B12X4A12X4Unorm4Pack16:
9430         switch ( component )
9431         {
9432           case 0: return 12;
9433           case 1: return 12;
9434           case 2: return 12;
9435           case 3: return 12;
9436           default: VULKAN_HPP_ASSERT( false ); return 0;
9437         }
9438       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16:
9439         switch ( component )
9440         {
9441           case 0: return 12;
9442           case 1: return 12;
9443           case 2: return 12;
9444           case 3: return 12;
9445           default: VULKAN_HPP_ASSERT( false ); return 0;
9446         }
9447       case VULKAN_HPP_NAMESPACE::Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16:
9448         switch ( component )
9449         {
9450           case 0: return 12;
9451           case 1: return 12;
9452           case 2: return 12;
9453           case 3: return 12;
9454           default: VULKAN_HPP_ASSERT( false ); return 0;
9455         }
9456       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16:
9457         switch ( component )
9458         {
9459           case 0: return 12;
9460           case 1: return 12;
9461           case 2: return 12;
9462           default: VULKAN_HPP_ASSERT( false ); return 0;
9463         }
9464       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16:
9465         switch ( component )
9466         {
9467           case 0: return 12;
9468           case 1: return 12;
9469           case 2: return 12;
9470           default: VULKAN_HPP_ASSERT( false ); return 0;
9471         }
9472       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16:
9473         switch ( component )
9474         {
9475           case 0: return 12;
9476           case 1: return 12;
9477           case 2: return 12;
9478           default: VULKAN_HPP_ASSERT( false ); return 0;
9479         }
9480       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16:
9481         switch ( component )
9482         {
9483           case 0: return 12;
9484           case 1: return 12;
9485           case 2: return 12;
9486           default: VULKAN_HPP_ASSERT( false ); return 0;
9487         }
9488       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16:
9489         switch ( component )
9490         {
9491           case 0: return 12;
9492           case 1: return 12;
9493           case 2: return 12;
9494           default: VULKAN_HPP_ASSERT( false ); return 0;
9495         }
9496       case VULKAN_HPP_NAMESPACE::Format::eG16B16G16R16422Unorm:
9497         switch ( component )
9498         {
9499           case 0: return 16;
9500           case 1: return 16;
9501           case 2: return 16;
9502           case 3: return 16;
9503           default: VULKAN_HPP_ASSERT( false ); return 0;
9504         }
9505       case VULKAN_HPP_NAMESPACE::Format::eB16G16R16G16422Unorm:
9506         switch ( component )
9507         {
9508           case 0: return 16;
9509           case 1: return 16;
9510           case 2: return 16;
9511           case 3: return 16;
9512           default: VULKAN_HPP_ASSERT( false ); return 0;
9513         }
9514       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm:
9515         switch ( component )
9516         {
9517           case 0: return 16;
9518           case 1: return 16;
9519           case 2: return 16;
9520           default: VULKAN_HPP_ASSERT( false ); return 0;
9521         }
9522       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm:
9523         switch ( component )
9524         {
9525           case 0: return 16;
9526           case 1: return 16;
9527           case 2: return 16;
9528           default: VULKAN_HPP_ASSERT( false ); return 0;
9529         }
9530       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm:
9531         switch ( component )
9532         {
9533           case 0: return 16;
9534           case 1: return 16;
9535           case 2: return 16;
9536           default: VULKAN_HPP_ASSERT( false ); return 0;
9537         }
9538       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm:
9539         switch ( component )
9540         {
9541           case 0: return 16;
9542           case 1: return 16;
9543           case 2: return 16;
9544           default: VULKAN_HPP_ASSERT( false ); return 0;
9545         }
9546       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm:
9547         switch ( component )
9548         {
9549           case 0: return 16;
9550           case 1: return 16;
9551           case 2: return 16;
9552           default: VULKAN_HPP_ASSERT( false ); return 0;
9553         }
9554       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444Unorm:
9555         switch ( component )
9556         {
9557           case 0: return 8;
9558           case 1: return 8;
9559           case 2: return 8;
9560           default: VULKAN_HPP_ASSERT( false ); return 0;
9561         }
9562       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16:
9563         switch ( component )
9564         {
9565           case 0: return 10;
9566           case 1: return 10;
9567           case 2: return 10;
9568           default: VULKAN_HPP_ASSERT( false ); return 0;
9569         }
9570       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16:
9571         switch ( component )
9572         {
9573           case 0: return 12;
9574           case 1: return 12;
9575           case 2: return 12;
9576           default: VULKAN_HPP_ASSERT( false ); return 0;
9577         }
9578       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444Unorm:
9579         switch ( component )
9580         {
9581           case 0: return 16;
9582           case 1: return 16;
9583           case 2: return 16;
9584           default: VULKAN_HPP_ASSERT( false ); return 0;
9585         }
9586       case VULKAN_HPP_NAMESPACE::Format::eA4R4G4B4UnormPack16:
9587         switch ( component )
9588         {
9589           case 0: return 4;
9590           case 1: return 4;
9591           case 2: return 4;
9592           case 3: return 4;
9593           default: VULKAN_HPP_ASSERT( false ); return 0;
9594         }
9595       case VULKAN_HPP_NAMESPACE::Format::eA4B4G4R4UnormPack16:
9596         switch ( component )
9597         {
9598           case 0: return 4;
9599           case 1: return 4;
9600           case 2: return 4;
9601           case 3: return 4;
9602           default: VULKAN_HPP_ASSERT( false ); return 0;
9603         }
9604 
9605       default: return 0;
9606     }
9607   }
9608 
9609   // The plane this component lies in.
componentPlaneIndex(VULKAN_HPP_NAMESPACE::Format format,uint8_t component)9610   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t componentPlaneIndex( VULKAN_HPP_NAMESPACE::Format format,
9611                                                                          uint8_t                      component )
9612   {
9613     switch ( format )
9614     {
9615       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm:
9616         switch ( component )
9617         {
9618           case 0: return 0;
9619           case 1: return 1;
9620           case 2: return 2;
9621           default: VULKAN_HPP_ASSERT( false ); return 0;
9622         }
9623       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm:
9624         switch ( component )
9625         {
9626           case 0: return 0;
9627           case 1: return 1;
9628           case 2: return 1;
9629           default: VULKAN_HPP_ASSERT( false ); return 0;
9630         }
9631       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm:
9632         switch ( component )
9633         {
9634           case 0: return 0;
9635           case 1: return 1;
9636           case 2: return 2;
9637           default: VULKAN_HPP_ASSERT( false ); return 0;
9638         }
9639       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm:
9640         switch ( component )
9641         {
9642           case 0: return 0;
9643           case 1: return 1;
9644           case 2: return 1;
9645           default: VULKAN_HPP_ASSERT( false ); return 0;
9646         }
9647       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm:
9648         switch ( component )
9649         {
9650           case 0: return 0;
9651           case 1: return 1;
9652           case 2: return 2;
9653           default: VULKAN_HPP_ASSERT( false ); return 0;
9654         }
9655       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16:
9656         switch ( component )
9657         {
9658           case 0: return 0;
9659           case 1: return 1;
9660           case 2: return 2;
9661           default: VULKAN_HPP_ASSERT( false ); return 0;
9662         }
9663       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16:
9664         switch ( component )
9665         {
9666           case 0: return 0;
9667           case 1: return 1;
9668           case 2: return 1;
9669           default: VULKAN_HPP_ASSERT( false ); return 0;
9670         }
9671       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16:
9672         switch ( component )
9673         {
9674           case 0: return 0;
9675           case 1: return 1;
9676           case 2: return 2;
9677           default: VULKAN_HPP_ASSERT( false ); return 0;
9678         }
9679       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16:
9680         switch ( component )
9681         {
9682           case 0: return 0;
9683           case 1: return 1;
9684           case 2: return 1;
9685           default: VULKAN_HPP_ASSERT( false ); return 0;
9686         }
9687       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16:
9688         switch ( component )
9689         {
9690           case 0: return 0;
9691           case 1: return 1;
9692           case 2: return 2;
9693           default: VULKAN_HPP_ASSERT( false ); return 0;
9694         }
9695       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16:
9696         switch ( component )
9697         {
9698           case 0: return 0;
9699           case 1: return 1;
9700           case 2: return 2;
9701           default: VULKAN_HPP_ASSERT( false ); return 0;
9702         }
9703       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16:
9704         switch ( component )
9705         {
9706           case 0: return 0;
9707           case 1: return 1;
9708           case 2: return 1;
9709           default: VULKAN_HPP_ASSERT( false ); return 0;
9710         }
9711       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16:
9712         switch ( component )
9713         {
9714           case 0: return 0;
9715           case 1: return 1;
9716           case 2: return 2;
9717           default: VULKAN_HPP_ASSERT( false ); return 0;
9718         }
9719       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16:
9720         switch ( component )
9721         {
9722           case 0: return 0;
9723           case 1: return 1;
9724           case 2: return 1;
9725           default: VULKAN_HPP_ASSERT( false ); return 0;
9726         }
9727       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16:
9728         switch ( component )
9729         {
9730           case 0: return 0;
9731           case 1: return 1;
9732           case 2: return 2;
9733           default: VULKAN_HPP_ASSERT( false ); return 0;
9734         }
9735       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm:
9736         switch ( component )
9737         {
9738           case 0: return 0;
9739           case 1: return 1;
9740           case 2: return 2;
9741           default: VULKAN_HPP_ASSERT( false ); return 0;
9742         }
9743       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm:
9744         switch ( component )
9745         {
9746           case 0: return 0;
9747           case 1: return 1;
9748           case 2: return 1;
9749           default: VULKAN_HPP_ASSERT( false ); return 0;
9750         }
9751       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm:
9752         switch ( component )
9753         {
9754           case 0: return 0;
9755           case 1: return 1;
9756           case 2: return 2;
9757           default: VULKAN_HPP_ASSERT( false ); return 0;
9758         }
9759       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm:
9760         switch ( component )
9761         {
9762           case 0: return 0;
9763           case 1: return 1;
9764           case 2: return 1;
9765           default: VULKAN_HPP_ASSERT( false ); return 0;
9766         }
9767       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm:
9768         switch ( component )
9769         {
9770           case 0: return 0;
9771           case 1: return 1;
9772           case 2: return 2;
9773           default: VULKAN_HPP_ASSERT( false ); return 0;
9774         }
9775       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444Unorm:
9776         switch ( component )
9777         {
9778           case 0: return 0;
9779           case 1: return 1;
9780           case 2: return 1;
9781           default: VULKAN_HPP_ASSERT( false ); return 0;
9782         }
9783       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16:
9784         switch ( component )
9785         {
9786           case 0: return 0;
9787           case 1: return 1;
9788           case 2: return 1;
9789           default: VULKAN_HPP_ASSERT( false ); return 0;
9790         }
9791       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16:
9792         switch ( component )
9793         {
9794           case 0: return 0;
9795           case 1: return 1;
9796           case 2: return 1;
9797           default: VULKAN_HPP_ASSERT( false ); return 0;
9798         }
9799       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444Unorm:
9800         switch ( component )
9801         {
9802           case 0: return 0;
9803           case 1: return 1;
9804           case 2: return 1;
9805           default: VULKAN_HPP_ASSERT( false ); return 0;
9806         }
9807 
9808       default: return 0;
9809     }
9810   }
9811 
9812   // The number of image planes of this format.
planeCount(VULKAN_HPP_NAMESPACE::Format format)9813   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t planeCount( VULKAN_HPP_NAMESPACE::Format format )
9814   {
9815     switch ( format )
9816     {
9817       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm: return 3;
9818       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm: return 2;
9819       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm: return 3;
9820       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm: return 2;
9821       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm: return 3;
9822       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16: return 3;
9823       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16: return 2;
9824       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16: return 3;
9825       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16: return 2;
9826       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16: return 3;
9827       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16: return 3;
9828       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16: return 2;
9829       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16: return 3;
9830       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16: return 2;
9831       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16: return 3;
9832       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm: return 3;
9833       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm: return 2;
9834       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm: return 3;
9835       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm: return 2;
9836       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm: return 3;
9837       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444Unorm: return 2;
9838       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16: return 2;
9839       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16: return 2;
9840       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444Unorm: return 2;
9841 
9842       default: return 1;
9843     }
9844   }
9845 
9846   // The single-plane format that this plane is compatible with.
9847   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 VULKAN_HPP_NAMESPACE::Format
planeCompatibleFormat(VULKAN_HPP_NAMESPACE::Format format,uint8_t plane)9848                                             planeCompatibleFormat( VULKAN_HPP_NAMESPACE::Format format, uint8_t plane )
9849   {
9850     switch ( format )
9851     {
9852       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm:
9853         switch ( plane )
9854         {
9855           case 0: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
9856           case 1: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
9857           case 2: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
9858           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
9859         }
9860       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm:
9861         switch ( plane )
9862         {
9863           case 0: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
9864           case 1: return VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm;
9865           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
9866         }
9867       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm:
9868         switch ( plane )
9869         {
9870           case 0: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
9871           case 1: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
9872           case 2: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
9873           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
9874         }
9875       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm:
9876         switch ( plane )
9877         {
9878           case 0: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
9879           case 1: return VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm;
9880           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
9881         }
9882       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm:
9883         switch ( plane )
9884         {
9885           case 0: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
9886           case 1: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
9887           case 2: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
9888           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
9889         }
9890       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16:
9891         switch ( plane )
9892         {
9893           case 0: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
9894           case 1: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
9895           case 2: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
9896           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
9897         }
9898       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16:
9899         switch ( plane )
9900         {
9901           case 0: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
9902           case 1: return VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16;
9903           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
9904         }
9905       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16:
9906         switch ( plane )
9907         {
9908           case 0: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
9909           case 1: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
9910           case 2: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
9911           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
9912         }
9913       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16:
9914         switch ( plane )
9915         {
9916           case 0: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
9917           case 1: return VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16;
9918           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
9919         }
9920       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16:
9921         switch ( plane )
9922         {
9923           case 0: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
9924           case 1: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
9925           case 2: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
9926           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
9927         }
9928       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16:
9929         switch ( plane )
9930         {
9931           case 0: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
9932           case 1: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
9933           case 2: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
9934           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
9935         }
9936       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16:
9937         switch ( plane )
9938         {
9939           case 0: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
9940           case 1: return VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16;
9941           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
9942         }
9943       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16:
9944         switch ( plane )
9945         {
9946           case 0: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
9947           case 1: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
9948           case 2: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
9949           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
9950         }
9951       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16:
9952         switch ( plane )
9953         {
9954           case 0: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
9955           case 1: return VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16;
9956           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
9957         }
9958       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16:
9959         switch ( plane )
9960         {
9961           case 0: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
9962           case 1: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
9963           case 2: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
9964           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
9965         }
9966       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm:
9967         switch ( plane )
9968         {
9969           case 0: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
9970           case 1: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
9971           case 2: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
9972           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
9973         }
9974       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm:
9975         switch ( plane )
9976         {
9977           case 0: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
9978           case 1: return VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm;
9979           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
9980         }
9981       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm:
9982         switch ( plane )
9983         {
9984           case 0: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
9985           case 1: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
9986           case 2: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
9987           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
9988         }
9989       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm:
9990         switch ( plane )
9991         {
9992           case 0: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
9993           case 1: return VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm;
9994           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
9995         }
9996       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm:
9997         switch ( plane )
9998         {
9999           case 0: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
10000           case 1: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
10001           case 2: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
10002           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
10003         }
10004       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444Unorm:
10005         switch ( plane )
10006         {
10007           case 0: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
10008           case 1: return VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm;
10009           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
10010         }
10011       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16:
10012         switch ( plane )
10013         {
10014           case 0: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
10015           case 1: return VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16;
10016           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
10017         }
10018       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16:
10019         switch ( plane )
10020         {
10021           case 0: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
10022           case 1: return VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16;
10023           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
10024         }
10025       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444Unorm:
10026         switch ( plane )
10027         {
10028           case 0: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
10029           case 1: return VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm;
10030           default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
10031         }
10032 
10033       default: VULKAN_HPP_ASSERT( plane == 0 ); return format;
10034     }
10035   }
10036 
10037   // The relative height of this plane. A value of k means that this plane is 1/k the height of the overall format.
planeHeightDivisor(VULKAN_HPP_NAMESPACE::Format format,uint8_t plane)10038   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t planeHeightDivisor( VULKAN_HPP_NAMESPACE::Format format,
10039                                                                         uint8_t                      plane )
10040   {
10041     switch ( format )
10042     {
10043       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm:
10044         switch ( plane )
10045         {
10046           case 0: return 1;
10047           case 1: return 2;
10048           case 2: return 2;
10049           default: VULKAN_HPP_ASSERT( false ); return 1;
10050         }
10051       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm:
10052         switch ( plane )
10053         {
10054           case 0: return 1;
10055           case 1: return 2;
10056           default: VULKAN_HPP_ASSERT( false ); return 1;
10057         }
10058       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm:
10059         switch ( plane )
10060         {
10061           case 0: return 1;
10062           case 1: return 1;
10063           case 2: return 1;
10064           default: VULKAN_HPP_ASSERT( false ); return 1;
10065         }
10066       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm:
10067         switch ( plane )
10068         {
10069           case 0: return 1;
10070           case 1: return 1;
10071           default: VULKAN_HPP_ASSERT( false ); return 1;
10072         }
10073       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm:
10074         switch ( plane )
10075         {
10076           case 0: return 1;
10077           case 1: return 1;
10078           case 2: return 1;
10079           default: VULKAN_HPP_ASSERT( false ); return 1;
10080         }
10081       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16:
10082         switch ( plane )
10083         {
10084           case 0: return 1;
10085           case 1: return 2;
10086           case 2: return 2;
10087           default: VULKAN_HPP_ASSERT( false ); return 1;
10088         }
10089       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16:
10090         switch ( plane )
10091         {
10092           case 0: return 1;
10093           case 1: return 2;
10094           default: VULKAN_HPP_ASSERT( false ); return 1;
10095         }
10096       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16:
10097         switch ( plane )
10098         {
10099           case 0: return 1;
10100           case 1: return 1;
10101           case 2: return 1;
10102           default: VULKAN_HPP_ASSERT( false ); return 1;
10103         }
10104       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16:
10105         switch ( plane )
10106         {
10107           case 0: return 1;
10108           case 1: return 1;
10109           default: VULKAN_HPP_ASSERT( false ); return 1;
10110         }
10111       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16:
10112         switch ( plane )
10113         {
10114           case 0: return 1;
10115           case 1: return 1;
10116           case 2: return 1;
10117           default: VULKAN_HPP_ASSERT( false ); return 1;
10118         }
10119       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16:
10120         switch ( plane )
10121         {
10122           case 0: return 1;
10123           case 1: return 2;
10124           case 2: return 2;
10125           default: VULKAN_HPP_ASSERT( false ); return 1;
10126         }
10127       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16:
10128         switch ( plane )
10129         {
10130           case 0: return 1;
10131           case 1: return 2;
10132           default: VULKAN_HPP_ASSERT( false ); return 1;
10133         }
10134       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16:
10135         switch ( plane )
10136         {
10137           case 0: return 1;
10138           case 1: return 1;
10139           case 2: return 1;
10140           default: VULKAN_HPP_ASSERT( false ); return 1;
10141         }
10142       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16:
10143         switch ( plane )
10144         {
10145           case 0: return 1;
10146           case 1: return 1;
10147           default: VULKAN_HPP_ASSERT( false ); return 1;
10148         }
10149       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16:
10150         switch ( plane )
10151         {
10152           case 0: return 1;
10153           case 1: return 1;
10154           case 2: return 1;
10155           default: VULKAN_HPP_ASSERT( false ); return 1;
10156         }
10157       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm:
10158         switch ( plane )
10159         {
10160           case 0: return 1;
10161           case 1: return 2;
10162           case 2: return 2;
10163           default: VULKAN_HPP_ASSERT( false ); return 1;
10164         }
10165       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm:
10166         switch ( plane )
10167         {
10168           case 0: return 1;
10169           case 1: return 2;
10170           default: VULKAN_HPP_ASSERT( false ); return 1;
10171         }
10172       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm:
10173         switch ( plane )
10174         {
10175           case 0: return 1;
10176           case 1: return 1;
10177           case 2: return 1;
10178           default: VULKAN_HPP_ASSERT( false ); return 1;
10179         }
10180       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm:
10181         switch ( plane )
10182         {
10183           case 0: return 1;
10184           case 1: return 1;
10185           default: VULKAN_HPP_ASSERT( false ); return 1;
10186         }
10187       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm:
10188         switch ( plane )
10189         {
10190           case 0: return 1;
10191           case 1: return 1;
10192           case 2: return 1;
10193           default: VULKAN_HPP_ASSERT( false ); return 1;
10194         }
10195       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444Unorm:
10196         switch ( plane )
10197         {
10198           case 0: return 1;
10199           case 1: return 1;
10200           default: VULKAN_HPP_ASSERT( false ); return 1;
10201         }
10202       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16:
10203         switch ( plane )
10204         {
10205           case 0: return 1;
10206           case 1: return 1;
10207           default: VULKAN_HPP_ASSERT( false ); return 1;
10208         }
10209       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16:
10210         switch ( plane )
10211         {
10212           case 0: return 1;
10213           case 1: return 1;
10214           default: VULKAN_HPP_ASSERT( false ); return 1;
10215         }
10216       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444Unorm:
10217         switch ( plane )
10218         {
10219           case 0: return 1;
10220           case 1: return 1;
10221           default: VULKAN_HPP_ASSERT( false ); return 1;
10222         }
10223 
10224       default: VULKAN_HPP_ASSERT( plane == 0 ); return 1;
10225     }
10226   }
10227 
10228   // The relative width of this plane. A value of k means that this plane is 1/k the width of the overall format.
planeWidthDivisor(VULKAN_HPP_NAMESPACE::Format format,uint8_t plane)10229   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t planeWidthDivisor( VULKAN_HPP_NAMESPACE::Format format,
10230                                                                        uint8_t                      plane )
10231   {
10232     switch ( format )
10233     {
10234       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm:
10235         switch ( plane )
10236         {
10237           case 0: return 1;
10238           case 1: return 2;
10239           case 2: return 2;
10240           default: VULKAN_HPP_ASSERT( false ); return 1;
10241         }
10242       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm:
10243         switch ( plane )
10244         {
10245           case 0: return 1;
10246           case 1: return 2;
10247           default: VULKAN_HPP_ASSERT( false ); return 1;
10248         }
10249       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm:
10250         switch ( plane )
10251         {
10252           case 0: return 1;
10253           case 1: return 2;
10254           case 2: return 2;
10255           default: VULKAN_HPP_ASSERT( false ); return 1;
10256         }
10257       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm:
10258         switch ( plane )
10259         {
10260           case 0: return 1;
10261           case 1: return 2;
10262           default: VULKAN_HPP_ASSERT( false ); return 1;
10263         }
10264       case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm:
10265         switch ( plane )
10266         {
10267           case 0: return 1;
10268           case 1: return 1;
10269           case 2: return 1;
10270           default: VULKAN_HPP_ASSERT( false ); return 1;
10271         }
10272       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16:
10273         switch ( plane )
10274         {
10275           case 0: return 1;
10276           case 1: return 2;
10277           case 2: return 2;
10278           default: VULKAN_HPP_ASSERT( false ); return 1;
10279         }
10280       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16:
10281         switch ( plane )
10282         {
10283           case 0: return 1;
10284           case 1: return 2;
10285           default: VULKAN_HPP_ASSERT( false ); return 1;
10286         }
10287       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16:
10288         switch ( plane )
10289         {
10290           case 0: return 1;
10291           case 1: return 2;
10292           case 2: return 2;
10293           default: VULKAN_HPP_ASSERT( false ); return 1;
10294         }
10295       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16:
10296         switch ( plane )
10297         {
10298           case 0: return 1;
10299           case 1: return 2;
10300           default: VULKAN_HPP_ASSERT( false ); return 1;
10301         }
10302       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16:
10303         switch ( plane )
10304         {
10305           case 0: return 1;
10306           case 1: return 1;
10307           case 2: return 1;
10308           default: VULKAN_HPP_ASSERT( false ); return 1;
10309         }
10310       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16:
10311         switch ( plane )
10312         {
10313           case 0: return 1;
10314           case 1: return 2;
10315           case 2: return 2;
10316           default: VULKAN_HPP_ASSERT( false ); return 1;
10317         }
10318       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16:
10319         switch ( plane )
10320         {
10321           case 0: return 1;
10322           case 1: return 2;
10323           default: VULKAN_HPP_ASSERT( false ); return 1;
10324         }
10325       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16:
10326         switch ( plane )
10327         {
10328           case 0: return 1;
10329           case 1: return 2;
10330           case 2: return 2;
10331           default: VULKAN_HPP_ASSERT( false ); return 1;
10332         }
10333       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16:
10334         switch ( plane )
10335         {
10336           case 0: return 1;
10337           case 1: return 2;
10338           default: VULKAN_HPP_ASSERT( false ); return 1;
10339         }
10340       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16:
10341         switch ( plane )
10342         {
10343           case 0: return 1;
10344           case 1: return 1;
10345           case 2: return 1;
10346           default: VULKAN_HPP_ASSERT( false ); return 1;
10347         }
10348       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm:
10349         switch ( plane )
10350         {
10351           case 0: return 1;
10352           case 1: return 2;
10353           case 2: return 2;
10354           default: VULKAN_HPP_ASSERT( false ); return 1;
10355         }
10356       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm:
10357         switch ( plane )
10358         {
10359           case 0: return 1;
10360           case 1: return 2;
10361           default: VULKAN_HPP_ASSERT( false ); return 1;
10362         }
10363       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm:
10364         switch ( plane )
10365         {
10366           case 0: return 1;
10367           case 1: return 2;
10368           case 2: return 2;
10369           default: VULKAN_HPP_ASSERT( false ); return 1;
10370         }
10371       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm:
10372         switch ( plane )
10373         {
10374           case 0: return 1;
10375           case 1: return 2;
10376           default: VULKAN_HPP_ASSERT( false ); return 1;
10377         }
10378       case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm:
10379         switch ( plane )
10380         {
10381           case 0: return 1;
10382           case 1: return 1;
10383           case 2: return 1;
10384           default: VULKAN_HPP_ASSERT( false ); return 1;
10385         }
10386       case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444Unorm:
10387         switch ( plane )
10388         {
10389           case 0: return 1;
10390           case 1: return 1;
10391           default: VULKAN_HPP_ASSERT( false ); return 1;
10392         }
10393       case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16:
10394         switch ( plane )
10395         {
10396           case 0: return 1;
10397           case 1: return 1;
10398           default: VULKAN_HPP_ASSERT( false ); return 1;
10399         }
10400       case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16:
10401         switch ( plane )
10402         {
10403           case 0: return 1;
10404           case 1: return 1;
10405           default: VULKAN_HPP_ASSERT( false ); return 1;
10406         }
10407       case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444Unorm:
10408         switch ( plane )
10409         {
10410           case 0: return 1;
10411           case 1: return 1;
10412           default: VULKAN_HPP_ASSERT( false ); return 1;
10413         }
10414 
10415       default: VULKAN_HPP_ASSERT( plane == 0 ); return 1;
10416     }
10417   }
10418 
10419   template <typename T>
10420   struct IndexTypeValue
10421   {
10422   };
10423 
10424   template <>
10425   struct IndexTypeValue<uint16_t>
10426   {
10427     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint16;
10428   };
10429 
10430   template <>
10431   struct CppType<IndexType, IndexType::eUint16>
10432   {
10433     using Type = uint16_t;
10434   };
10435 
10436   template <>
10437   struct IndexTypeValue<uint32_t>
10438   {
10439     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint32;
10440   };
10441 
10442   template <>
10443   struct CppType<IndexType, IndexType::eUint32>
10444   {
10445     using Type = uint32_t;
10446   };
10447 
10448   template <>
10449   struct IndexTypeValue<uint8_t>
10450   {
10451     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint8EXT;
10452   };
10453 
10454   template <>
10455   struct CppType<IndexType, IndexType::eUint8EXT>
10456   {
10457     using Type = uint8_t;
10458   };
10459 
10460 }  // namespace VULKAN_HPP_NAMESPACE
10461 #endif
10462