• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2015-2021 The Khronos Group Inc.
2 //
3 // SPDX-License-Identifier: Apache-2.0 OR MIT
4 //
5 
6 // This header is generated from the Khronos Vulkan XML API Registry.
7 
8 #ifndef VULKAN_ENUMS_HPP
9 #define VULKAN_ENUMS_HPP
10 
11 namespace VULKAN_HPP_NAMESPACE
12 {
13   template <typename EnumType, EnumType value>
14   struct CppType
15   {};
16 
17   template <typename Type>
18   struct isVulkanHandleType
19   {
20     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = false;
21   };
22 
toHexString(uint32_t value)23   VULKAN_HPP_INLINE std::string toHexString( uint32_t value )
24   {
25     std::stringstream stream;
26     stream << std::hex << value;
27     return stream.str();
28   }
29 
30   //=============
31   //=== ENUMs ===
32   //=============
33 
34   //=== VK_VERSION_1_0 ===
35 
36   enum class Result
37   {
38     eSuccess                                     = VK_SUCCESS,
39     eNotReady                                    = VK_NOT_READY,
40     eTimeout                                     = VK_TIMEOUT,
41     eEventSet                                    = VK_EVENT_SET,
42     eEventReset                                  = VK_EVENT_RESET,
43     eIncomplete                                  = VK_INCOMPLETE,
44     eErrorOutOfHostMemory                        = VK_ERROR_OUT_OF_HOST_MEMORY,
45     eErrorOutOfDeviceMemory                      = VK_ERROR_OUT_OF_DEVICE_MEMORY,
46     eErrorInitializationFailed                   = VK_ERROR_INITIALIZATION_FAILED,
47     eErrorDeviceLost                             = VK_ERROR_DEVICE_LOST,
48     eErrorMemoryMapFailed                        = VK_ERROR_MEMORY_MAP_FAILED,
49     eErrorLayerNotPresent                        = VK_ERROR_LAYER_NOT_PRESENT,
50     eErrorExtensionNotPresent                    = VK_ERROR_EXTENSION_NOT_PRESENT,
51     eErrorFeatureNotPresent                      = VK_ERROR_FEATURE_NOT_PRESENT,
52     eErrorIncompatibleDriver                     = VK_ERROR_INCOMPATIBLE_DRIVER,
53     eErrorTooManyObjects                         = VK_ERROR_TOO_MANY_OBJECTS,
54     eErrorFormatNotSupported                     = VK_ERROR_FORMAT_NOT_SUPPORTED,
55     eErrorFragmentedPool                         = VK_ERROR_FRAGMENTED_POOL,
56     eErrorUnknown                                = VK_ERROR_UNKNOWN,
57     eErrorOutOfPoolMemory                        = VK_ERROR_OUT_OF_POOL_MEMORY,
58     eErrorInvalidExternalHandle                  = VK_ERROR_INVALID_EXTERNAL_HANDLE,
59     eErrorFragmentation                          = VK_ERROR_FRAGMENTATION,
60     eErrorInvalidOpaqueCaptureAddress            = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
61     eErrorSurfaceLostKHR                         = VK_ERROR_SURFACE_LOST_KHR,
62     eErrorNativeWindowInUseKHR                   = VK_ERROR_NATIVE_WINDOW_IN_USE_KHR,
63     eSuboptimalKHR                               = VK_SUBOPTIMAL_KHR,
64     eErrorOutOfDateKHR                           = VK_ERROR_OUT_OF_DATE_KHR,
65     eErrorIncompatibleDisplayKHR                 = VK_ERROR_INCOMPATIBLE_DISPLAY_KHR,
66     eErrorValidationFailedEXT                    = VK_ERROR_VALIDATION_FAILED_EXT,
67     eErrorInvalidShaderNV                        = VK_ERROR_INVALID_SHADER_NV,
68     eErrorInvalidDrmFormatModifierPlaneLayoutEXT = VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT,
69     eErrorNotPermittedEXT                        = VK_ERROR_NOT_PERMITTED_EXT,
70 #if defined( VK_USE_PLATFORM_WIN32_KHR )
71     eErrorFullScreenExclusiveModeLostEXT = VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT,
72 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
73     eThreadIdleKHR                       = VK_THREAD_IDLE_KHR,
74     eThreadDoneKHR                       = VK_THREAD_DONE_KHR,
75     eOperationDeferredKHR                = VK_OPERATION_DEFERRED_KHR,
76     eOperationNotDeferredKHR             = VK_OPERATION_NOT_DEFERRED_KHR,
77     ePipelineCompileRequiredEXT          = VK_PIPELINE_COMPILE_REQUIRED_EXT,
78     eErrorFragmentationEXT               = VK_ERROR_FRAGMENTATION_EXT,
79     eErrorInvalidDeviceAddressEXT        = VK_ERROR_INVALID_DEVICE_ADDRESS_EXT,
80     eErrorInvalidExternalHandleKHR       = VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR,
81     eErrorInvalidOpaqueCaptureAddressKHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR,
82     eErrorOutOfPoolMemoryKHR             = VK_ERROR_OUT_OF_POOL_MEMORY_KHR,
83     eErrorPipelineCompileRequiredEXT     = VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT
84   };
85 
to_string(Result value)86   VULKAN_HPP_INLINE std::string to_string( Result value )
87   {
88     switch ( value )
89     {
90       case Result::eSuccess: return "Success";
91       case Result::eNotReady: return "NotReady";
92       case Result::eTimeout: return "Timeout";
93       case Result::eEventSet: return "EventSet";
94       case Result::eEventReset: return "EventReset";
95       case Result::eIncomplete: return "Incomplete";
96       case Result::eErrorOutOfHostMemory: return "ErrorOutOfHostMemory";
97       case Result::eErrorOutOfDeviceMemory: return "ErrorOutOfDeviceMemory";
98       case Result::eErrorInitializationFailed: return "ErrorInitializationFailed";
99       case Result::eErrorDeviceLost: return "ErrorDeviceLost";
100       case Result::eErrorMemoryMapFailed: return "ErrorMemoryMapFailed";
101       case Result::eErrorLayerNotPresent: return "ErrorLayerNotPresent";
102       case Result::eErrorExtensionNotPresent: return "ErrorExtensionNotPresent";
103       case Result::eErrorFeatureNotPresent: return "ErrorFeatureNotPresent";
104       case Result::eErrorIncompatibleDriver: return "ErrorIncompatibleDriver";
105       case Result::eErrorTooManyObjects: return "ErrorTooManyObjects";
106       case Result::eErrorFormatNotSupported: return "ErrorFormatNotSupported";
107       case Result::eErrorFragmentedPool: return "ErrorFragmentedPool";
108       case Result::eErrorUnknown: return "ErrorUnknown";
109       case Result::eErrorOutOfPoolMemory: return "ErrorOutOfPoolMemory";
110       case Result::eErrorInvalidExternalHandle: return "ErrorInvalidExternalHandle";
111       case Result::eErrorFragmentation: return "ErrorFragmentation";
112       case Result::eErrorInvalidOpaqueCaptureAddress: return "ErrorInvalidOpaqueCaptureAddress";
113       case Result::eErrorSurfaceLostKHR: return "ErrorSurfaceLostKHR";
114       case Result::eErrorNativeWindowInUseKHR: return "ErrorNativeWindowInUseKHR";
115       case Result::eSuboptimalKHR: return "SuboptimalKHR";
116       case Result::eErrorOutOfDateKHR: return "ErrorOutOfDateKHR";
117       case Result::eErrorIncompatibleDisplayKHR: return "ErrorIncompatibleDisplayKHR";
118       case Result::eErrorValidationFailedEXT: return "ErrorValidationFailedEXT";
119       case Result::eErrorInvalidShaderNV: return "ErrorInvalidShaderNV";
120       case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT: return "ErrorInvalidDrmFormatModifierPlaneLayoutEXT";
121       case Result::eErrorNotPermittedEXT: return "ErrorNotPermittedEXT";
122 #if defined( VK_USE_PLATFORM_WIN32_KHR )
123       case Result::eErrorFullScreenExclusiveModeLostEXT: return "ErrorFullScreenExclusiveModeLostEXT";
124 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
125       case Result::eThreadIdleKHR: return "ThreadIdleKHR";
126       case Result::eThreadDoneKHR: return "ThreadDoneKHR";
127       case Result::eOperationDeferredKHR: return "OperationDeferredKHR";
128       case Result::eOperationNotDeferredKHR: return "OperationNotDeferredKHR";
129       case Result::ePipelineCompileRequiredEXT: return "PipelineCompileRequiredEXT";
130       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
131     }
132   }
133 
134   enum class StructureType
135   {
136     eApplicationInfo                           = VK_STRUCTURE_TYPE_APPLICATION_INFO,
137     eInstanceCreateInfo                        = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
138     eDeviceQueueCreateInfo                     = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO,
139     eDeviceCreateInfo                          = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
140     eSubmitInfo                                = VK_STRUCTURE_TYPE_SUBMIT_INFO,
141     eMemoryAllocateInfo                        = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
142     eMappedMemoryRange                         = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,
143     eBindSparseInfo                            = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO,
144     eFenceCreateInfo                           = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO,
145     eSemaphoreCreateInfo                       = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO,
146     eEventCreateInfo                           = VK_STRUCTURE_TYPE_EVENT_CREATE_INFO,
147     eQueryPoolCreateInfo                       = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,
148     eBufferCreateInfo                          = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
149     eBufferViewCreateInfo                      = VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO,
150     eImageCreateInfo                           = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
151     eImageViewCreateInfo                       = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
152     eShaderModuleCreateInfo                    = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO,
153     ePipelineCacheCreateInfo                   = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO,
154     ePipelineShaderStageCreateInfo             = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,
155     ePipelineVertexInputStateCreateInfo        = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,
156     ePipelineInputAssemblyStateCreateInfo      = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,
157     ePipelineTessellationStateCreateInfo       = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO,
158     ePipelineViewportStateCreateInfo           = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,
159     ePipelineRasterizationStateCreateInfo      = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,
160     ePipelineMultisampleStateCreateInfo        = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,
161     ePipelineDepthStencilStateCreateInfo       = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,
162     ePipelineColorBlendStateCreateInfo         = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,
163     ePipelineDynamicStateCreateInfo            = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO,
164     eGraphicsPipelineCreateInfo                = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,
165     eComputePipelineCreateInfo                 = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO,
166     ePipelineLayoutCreateInfo                  = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,
167     eSamplerCreateInfo                         = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,
168     eDescriptorSetLayoutCreateInfo             = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
169     eDescriptorPoolCreateInfo                  = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,
170     eDescriptorSetAllocateInfo                 = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,
171     eWriteDescriptorSet                        = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
172     eCopyDescriptorSet                         = VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET,
173     eFramebufferCreateInfo                     = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,
174     eRenderPassCreateInfo                      = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
175     eCommandPoolCreateInfo                     = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO,
176     eCommandBufferAllocateInfo                 = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,
177     eCommandBufferInheritanceInfo              = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO,
178     eCommandBufferBeginInfo                    = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
179     eRenderPassBeginInfo                       = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,
180     eBufferMemoryBarrier                       = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
181     eImageMemoryBarrier                        = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
182     eMemoryBarrier                             = VK_STRUCTURE_TYPE_MEMORY_BARRIER,
183     eLoaderInstanceCreateInfo                  = VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO,
184     eLoaderDeviceCreateInfo                    = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
185     ePhysicalDeviceSubgroupProperties          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES,
186     eBindBufferMemoryInfo                      = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
187     eBindImageMemoryInfo                       = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
188     ePhysicalDevice16BitStorageFeatures        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
189     eMemoryDedicatedRequirements               = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
190     eMemoryDedicatedAllocateInfo               = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
191     eMemoryAllocateFlagsInfo                   = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
192     eDeviceGroupRenderPassBeginInfo            = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
193     eDeviceGroupCommandBufferBeginInfo         = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
194     eDeviceGroupSubmitInfo                     = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
195     eDeviceGroupBindSparseInfo                 = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
196     eBindBufferMemoryDeviceGroupInfo           = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
197     eBindImageMemoryDeviceGroupInfo            = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
198     ePhysicalDeviceGroupProperties             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
199     eDeviceGroupDeviceCreateInfo               = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
200     eBufferMemoryRequirementsInfo2             = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
201     eImageMemoryRequirementsInfo2              = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
202     eImageSparseMemoryRequirementsInfo2        = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
203     eMemoryRequirements2                       = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
204     eSparseImageMemoryRequirements2            = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
205     ePhysicalDeviceFeatures2                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
206     ePhysicalDeviceProperties2                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
207     eFormatProperties2                         = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
208     eImageFormatProperties2                    = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
209     ePhysicalDeviceImageFormatInfo2            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
210     eQueueFamilyProperties2                    = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
211     ePhysicalDeviceMemoryProperties2           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
212     eSparseImageFormatProperties2              = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
213     ePhysicalDeviceSparseImageFormatInfo2      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
214     ePhysicalDevicePointClippingProperties     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
215     eRenderPassInputAttachmentAspectCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
216     eImageViewUsageCreateInfo                  = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
217     ePipelineTessellationDomainOriginStateCreateInfo =
218       VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
219     eRenderPassMultiviewCreateInfo                = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
220     ePhysicalDeviceMultiviewFeatures              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
221     ePhysicalDeviceMultiviewProperties            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
222     ePhysicalDeviceVariablePointersFeatures       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
223     eProtectedSubmitInfo                          = VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO,
224     ePhysicalDeviceProtectedMemoryFeatures        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES,
225     ePhysicalDeviceProtectedMemoryProperties      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES,
226     eDeviceQueueInfo2                             = VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2,
227     eSamplerYcbcrConversionCreateInfo             = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
228     eSamplerYcbcrConversionInfo                   = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
229     eBindImagePlaneMemoryInfo                     = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
230     eImagePlaneMemoryRequirementsInfo             = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
231     ePhysicalDeviceSamplerYcbcrConversionFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
232     eSamplerYcbcrConversionImageFormatProperties  = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
233     eDescriptorUpdateTemplateCreateInfo           = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
234     ePhysicalDeviceExternalImageFormatInfo        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
235     eExternalImageFormatProperties                = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
236     ePhysicalDeviceExternalBufferInfo             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
237     eExternalBufferProperties                     = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
238     ePhysicalDeviceIdProperties                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
239     eExternalMemoryBufferCreateInfo               = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
240     eExternalMemoryImageCreateInfo                = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
241     eExportMemoryAllocateInfo                     = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
242     ePhysicalDeviceExternalFenceInfo              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
243     eExternalFenceProperties                      = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
244     eExportFenceCreateInfo                        = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
245     eExportSemaphoreCreateInfo                    = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
246     ePhysicalDeviceExternalSemaphoreInfo          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
247     eExternalSemaphoreProperties                  = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
248     ePhysicalDeviceMaintenance3Properties         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
249     eDescriptorSetLayoutSupport                   = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
250     ePhysicalDeviceShaderDrawParametersFeatures   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
251     ePhysicalDeviceVulkan11Features               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES,
252     ePhysicalDeviceVulkan11Properties             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES,
253     ePhysicalDeviceVulkan12Features               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES,
254     ePhysicalDeviceVulkan12Properties             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES,
255     eImageFormatListCreateInfo                    = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
256     eAttachmentDescription2                       = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
257     eAttachmentReference2                         = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
258     eSubpassDescription2                          = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
259     eSubpassDependency2                           = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
260     eRenderPassCreateInfo2                        = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
261     eSubpassBeginInfo                             = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
262     eSubpassEndInfo                               = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
263     ePhysicalDevice8BitStorageFeatures            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
264     ePhysicalDeviceDriverProperties               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
265     ePhysicalDeviceShaderAtomicInt64Features      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
266     ePhysicalDeviceShaderFloat16Int8Features      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
267     ePhysicalDeviceFloatControlsProperties        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
268     eDescriptorSetLayoutBindingFlagsCreateInfo    = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
269     ePhysicalDeviceDescriptorIndexingFeatures     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
270     ePhysicalDeviceDescriptorIndexingProperties   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
271     eDescriptorSetVariableDescriptorCountAllocateInfo =
272       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
273     eDescriptorSetVariableDescriptorCountLayoutSupport =
274       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
275     ePhysicalDeviceDepthStencilResolveProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
276     eSubpassDescriptionDepthStencilResolve       = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
277     ePhysicalDeviceScalarBlockLayoutFeatures     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
278     eImageStencilUsageCreateInfo                 = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
279     ePhysicalDeviceSamplerFilterMinmaxProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
280     eSamplerReductionModeCreateInfo              = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
281     ePhysicalDeviceVulkanMemoryModelFeatures     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
282     ePhysicalDeviceImagelessFramebufferFeatures  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
283     eFramebufferAttachmentsCreateInfo            = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
284     eFramebufferAttachmentImageInfo              = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
285     eRenderPassAttachmentBeginInfo               = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
286     ePhysicalDeviceUniformBufferStandardLayoutFeatures =
287       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
288     ePhysicalDeviceShaderSubgroupExtendedTypesFeatures =
289       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
290     ePhysicalDeviceSeparateDepthStencilLayoutsFeatures =
291       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
292     eAttachmentReferenceStencilLayout          = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
293     eAttachmentDescriptionStencilLayout        = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
294     ePhysicalDeviceHostQueryResetFeatures      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
295     ePhysicalDeviceTimelineSemaphoreFeatures   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
296     ePhysicalDeviceTimelineSemaphoreProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
297     eSemaphoreTypeCreateInfo                   = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
298     eTimelineSemaphoreSubmitInfo               = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
299     eSemaphoreWaitInfo                         = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
300     eSemaphoreSignalInfo                       = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
301     ePhysicalDeviceBufferDeviceAddressFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
302     eBufferDeviceAddressInfo                   = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
303     eBufferOpaqueCaptureAddressCreateInfo      = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
304     eMemoryOpaqueCaptureAddressAllocateInfo    = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
305     eDeviceMemoryOpaqueCaptureAddressInfo      = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
306     eSwapchainCreateInfoKHR                    = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR,
307     ePresentInfoKHR                            = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR,
308     eDeviceGroupPresentCapabilitiesKHR         = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,
309     eImageSwapchainCreateInfoKHR               = VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR,
310     eBindImageMemorySwapchainInfoKHR           = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,
311     eAcquireNextImageInfoKHR                   = VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR,
312     eDeviceGroupPresentInfoKHR                 = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR,
313     eDeviceGroupSwapchainCreateInfoKHR         = VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,
314     eDisplayModeCreateInfoKHR                  = VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR,
315     eDisplaySurfaceCreateInfoKHR               = VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR,
316     eDisplayPresentInfoKHR                     = VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR,
317 #if defined( VK_USE_PLATFORM_XLIB_KHR )
318     eXlibSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR,
319 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
320 #if defined( VK_USE_PLATFORM_XCB_KHR )
321     eXcbSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR,
322 #endif /*VK_USE_PLATFORM_XCB_KHR*/
323 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
324     eWaylandSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR,
325 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
326 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
327     eAndroidSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR,
328 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
329 #if defined( VK_USE_PLATFORM_WIN32_KHR )
330     eWin32SurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR,
331 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
332     eDebugReportCallbackCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
333     ePipelineRasterizationStateRasterizationOrderAMD =
334       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD,
335     eDebugMarkerObjectNameInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT,
336     eDebugMarkerObjectTagInfoEXT  = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT,
337     eDebugMarkerMarkerInfoEXT     = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT,
338 #if defined( VK_ENABLE_BETA_EXTENSIONS )
339     eVideoProfileKHR                     = VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR,
340     eVideoCapabilitiesKHR                = VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR,
341     eVideoPictureResourceKHR             = VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR,
342     eVideoGetMemoryPropertiesKHR         = VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR,
343     eVideoBindMemoryKHR                  = VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR,
344     eVideoSessionCreateInfoKHR           = VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR,
345     eVideoSessionParametersCreateInfoKHR = VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR,
346     eVideoSessionParametersUpdateInfoKHR = VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR,
347     eVideoBeginCodingInfoKHR             = VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR,
348     eVideoEndCodingInfoKHR               = VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR,
349     eVideoCodingControlInfoKHR           = VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR,
350     eVideoReferenceSlotKHR               = VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR,
351     eVideoQueueFamilyProperties2KHR      = VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR,
352     eVideoProfilesKHR                    = VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR,
353     ePhysicalDeviceVideoFormatInfoKHR    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR,
354     eVideoFormatPropertiesKHR            = VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR,
355     eVideoDecodeInfoKHR                  = VK_STRUCTURE_TYPE_VIDEO_DECODE_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 =
363       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT,
364     eCuModuleCreateInfoNVX         = VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX,
365     eCuFunctionCreateInfoNVX       = VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX,
366     eCuLaunchInfoNVX               = VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX,
367     eImageViewHandleInfoNVX        = VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX,
368     eImageViewAddressPropertiesNVX = VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX,
369 #if defined( VK_ENABLE_BETA_EXTENSIONS )
370     eVideoEncodeH264CapabilitiesEXT      = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT,
371     eVideoEncodeH264SessionCreateInfoEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT,
372     eVideoEncodeH264SessionParametersCreateInfoEXT =
373       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT,
374     eVideoEncodeH264SessionParametersAddInfoEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT,
375     eVideoEncodeH264VclFrameInfoEXT             = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT,
376     eVideoEncodeH264DpbSlotInfoEXT              = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT,
377     eVideoEncodeH264NaluSliceEXT                = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT,
378     eVideoEncodeH264EmitPictureParametersEXT    = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT,
379     eVideoEncodeH264ProfileEXT                  = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT,
380     eVideoEncodeH265CapabilitiesEXT             = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT,
381     eVideoEncodeH265SessionCreateInfoEXT        = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT,
382     eVideoEncodeH265SessionParametersCreateInfoEXT =
383       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT,
384     eVideoEncodeH265SessionParametersAddInfoEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT,
385     eVideoEncodeH265VclFrameInfoEXT             = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT,
386     eVideoEncodeH265DpbSlotInfoEXT              = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT,
387     eVideoEncodeH265NaluSliceEXT                = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_EXT,
388     eVideoEncodeH265EmitPictureParametersEXT    = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT,
389     eVideoEncodeH265ProfileEXT                  = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT,
390     eVideoEncodeH265ReferenceListsEXT           = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT,
391     eVideoDecodeH264CapabilitiesEXT             = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT,
392     eVideoDecodeH264SessionCreateInfoEXT        = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT,
393     eVideoDecodeH264PictureInfoEXT              = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT,
394     eVideoDecodeH264MvcEXT                      = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT,
395     eVideoDecodeH264ProfileEXT                  = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT,
396     eVideoDecodeH264SessionParametersCreateInfoEXT =
397       VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT,
398     eVideoDecodeH264SessionParametersAddInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT,
399     eVideoDecodeH264DpbSlotInfoEXT              = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT,
400 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
401     eTextureLodGatherFormatPropertiesAMD = VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD,
402 #if defined( VK_USE_PLATFORM_GGP )
403     eStreamDescriptorSurfaceCreateInfoGGP = VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP,
404 #endif /*VK_USE_PLATFORM_GGP*/
405     ePhysicalDeviceCornerSampledImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV,
406     eExternalMemoryImageCreateInfoNV            = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV,
407     eExportMemoryAllocateInfoNV                 = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV,
408 #if defined( VK_USE_PLATFORM_WIN32_KHR )
409     eImportMemoryWin32HandleInfoNV       = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV,
410     eExportMemoryWin32HandleInfoNV       = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV,
411     eWin32KeyedMutexAcquireReleaseInfoNV = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV,
412 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
413     eValidationFlagsEXT = VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT,
414 #if defined( VK_USE_PLATFORM_VI_NN )
415     eViSurfaceCreateInfoNN = VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN,
416 #endif /*VK_USE_PLATFORM_VI_NN*/
417     ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT =
418       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT,
419     eImageViewAstcDecodeModeEXT          = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT,
420     ePhysicalDeviceAstcDecodeFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT,
421 #if defined( VK_USE_PLATFORM_WIN32_KHR )
422     eImportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
423     eExportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
424     eMemoryWin32HandlePropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR,
425     eMemoryGetWin32HandleInfoKHR    = VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR,
426 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
427     eImportMemoryFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR,
428     eMemoryFdPropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR,
429     eMemoryGetFdInfoKHR    = VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR,
430 #if defined( VK_USE_PLATFORM_WIN32_KHR )
431     eWin32KeyedMutexAcquireReleaseInfoKHR = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR,
432     eImportSemaphoreWin32HandleInfoKHR    = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
433     eExportSemaphoreWin32HandleInfoKHR    = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
434     eD3D12FenceSubmitInfoKHR              = VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR,
435     eSemaphoreGetWin32HandleInfoKHR       = VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR,
436 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
437     eImportSemaphoreFdInfoKHR                  = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR,
438     eSemaphoreGetFdInfoKHR                     = VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR,
439     ePhysicalDevicePushDescriptorPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR,
440     eCommandBufferInheritanceConditionalRenderingInfoEXT =
441       VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT,
442     ePhysicalDeviceConditionalRenderingFeaturesEXT =
443       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 =
454       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX,
455     ePipelineViewportSwizzleStateCreateInfoNV    = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV,
456     ePhysicalDeviceDiscardRectanglePropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT,
457     ePipelineDiscardRectangleStateCreateInfoEXT  = VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT,
458     ePhysicalDeviceConservativeRasterizationPropertiesEXT =
459       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT,
460     ePipelineRasterizationConservativeStateCreateInfoEXT =
461       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT,
462     ePhysicalDeviceDepthClipEnableFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT,
463     ePipelineRasterizationDepthClipStateCreateInfoEXT =
464       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT,
465     eHdrMetadataEXT                      = VK_STRUCTURE_TYPE_HDR_METADATA_EXT,
466     eSharedPresentSurfaceCapabilitiesKHR = VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR,
467 #if defined( VK_USE_PLATFORM_WIN32_KHR )
468     eImportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR,
469     eExportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR,
470     eFenceGetWin32HandleInfoKHR    = VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR,
471 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
472     eImportFenceFdInfoKHR                        = VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR,
473     eFenceGetFdInfoKHR                           = VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR,
474     ePhysicalDevicePerformanceQueryFeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR,
475     ePhysicalDevicePerformanceQueryPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR,
476     eQueryPoolPerformanceCreateInfoKHR           = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR,
477     ePerformanceQuerySubmitInfoKHR               = VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR,
478     eAcquireProfilingLockInfoKHR                 = VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR,
479     ePerformanceCounterKHR                       = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR,
480     ePerformanceCounterDescriptionKHR            = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR,
481     ePhysicalDeviceSurfaceInfo2KHR               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR,
482     eSurfaceCapabilities2KHR                     = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR,
483     eSurfaceFormat2KHR                           = VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR,
484     eDisplayProperties2KHR                       = VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR,
485     eDisplayPlaneProperties2KHR                  = VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR,
486     eDisplayModeProperties2KHR                   = VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR,
487     eDisplayPlaneInfo2KHR                        = VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR,
488     eDisplayPlaneCapabilities2KHR                = VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR,
489 #if defined( VK_USE_PLATFORM_IOS_MVK )
490     eIosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK,
491 #endif /*VK_USE_PLATFORM_IOS_MVK*/
492 #if defined( VK_USE_PLATFORM_MACOS_MVK )
493     eMacosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK,
494 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
495     eDebugUtilsObjectNameInfoEXT        = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT,
496     eDebugUtilsObjectTagInfoEXT         = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT,
497     eDebugUtilsLabelEXT                 = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
498     eDebugUtilsMessengerCallbackDataEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT,
499     eDebugUtilsMessengerCreateInfoEXT   = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
500 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
501     eAndroidHardwareBufferUsageANDROID            = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID,
502     eAndroidHardwareBufferPropertiesANDROID       = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID,
503     eAndroidHardwareBufferFormatPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID,
504     eImportAndroidHardwareBufferInfoANDROID       = VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
505     eMemoryGetAndroidHardwareBufferInfoANDROID    = VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
506     eExternalFormatANDROID                        = VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID,
507     eAndroidHardwareBufferFormatProperties2ANDROID =
508       VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID,
509 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
510     ePhysicalDeviceInlineUniformBlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT,
511     ePhysicalDeviceInlineUniformBlockPropertiesEXT =
512       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT,
513     eWriteDescriptorSetInlineUniformBlockEXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT,
514     eDescriptorPoolInlineUniformBlockCreateInfoEXT =
515       VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT,
516     eSampleLocationsInfoEXT                     = VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT,
517     eRenderPassSampleLocationsBeginInfoEXT      = VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT,
518     ePipelineSampleLocationsStateCreateInfoEXT  = VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT,
519     ePhysicalDeviceSampleLocationsPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT,
520     eMultisamplePropertiesEXT                   = VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT,
521     ePhysicalDeviceBlendOperationAdvancedFeaturesEXT =
522       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT,
523     ePhysicalDeviceBlendOperationAdvancedPropertiesEXT =
524       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT,
525     ePipelineColorBlendAdvancedStateCreateInfoEXT =
526       VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT,
527     ePipelineCoverageToColorStateCreateInfoNV   = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV,
528     eWriteDescriptorSetAccelerationStructureKHR = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR,
529     eAccelerationStructureBuildGeometryInfoKHR  = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,
530     eAccelerationStructureDeviceAddressInfoKHR  = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR,
531     eAccelerationStructureGeometryAabbsDataKHR  = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR,
532     eAccelerationStructureGeometryInstancesDataKHR =
533       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR,
534     eAccelerationStructureGeometryTrianglesDataKHR =
535       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR,
536     eAccelerationStructureGeometryKHR         = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR,
537     eAccelerationStructureVersionInfoKHR      = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR,
538     eCopyAccelerationStructureInfoKHR         = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR,
539     eCopyAccelerationStructureToMemoryInfoKHR = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR,
540     eCopyMemoryToAccelerationStructureInfoKHR = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR,
541     ePhysicalDeviceAccelerationStructureFeaturesKHR =
542       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR,
543     ePhysicalDeviceAccelerationStructurePropertiesKHR =
544       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR,
545     eAccelerationStructureCreateInfoKHR          = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR,
546     eAccelerationStructureBuildSizesInfoKHR      = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR,
547     ePhysicalDeviceRayTracingPipelineFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR,
548     ePhysicalDeviceRayTracingPipelinePropertiesKHR =
549       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR,
550     eRayTracingPipelineCreateInfoKHR             = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR,
551     eRayTracingShaderGroupCreateInfoKHR          = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR,
552     eRayTracingPipelineInterfaceCreateInfoKHR    = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR,
553     ePhysicalDeviceRayQueryFeaturesKHR           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR,
554     ePipelineCoverageModulationStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV,
555     ePhysicalDeviceShaderSmBuiltinsFeaturesNV    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV,
556     ePhysicalDeviceShaderSmBuiltinsPropertiesNV  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV,
557     eDrmFormatModifierPropertiesListEXT          = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT,
558     ePhysicalDeviceImageDrmFormatModifierInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT,
559     eImageDrmFormatModifierListCreateInfoEXT     = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT,
560     eImageDrmFormatModifierExplicitCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,
561     eImageDrmFormatModifierPropertiesEXT         = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,
562     eDrmFormatModifierPropertiesList2EXT         = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT,
563     eValidationCacheCreateInfoEXT                = VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT,
564     eShaderModuleValidationCacheCreateInfoEXT    = VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT,
565 #if defined( VK_ENABLE_BETA_EXTENSIONS )
566     ePhysicalDevicePortabilitySubsetFeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR,
567     ePhysicalDevicePortabilitySubsetPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR,
568 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
569     ePipelineViewportShadingRateImageStateCreateInfoNV =
570       VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV,
571     ePhysicalDeviceShadingRateImageFeaturesNV   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV,
572     ePhysicalDeviceShadingRateImagePropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV,
573     ePipelineViewportCoarseSampleOrderStateCreateInfoNV =
574       VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV,
575     eRayTracingPipelineCreateInfoNV            = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV,
576     eAccelerationStructureCreateInfoNV         = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV,
577     eGeometryNV                                = VK_STRUCTURE_TYPE_GEOMETRY_NV,
578     eGeometryTrianglesNV                       = VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV,
579     eGeometryAabbNV                            = VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV,
580     eBindAccelerationStructureMemoryInfoNV     = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV,
581     eWriteDescriptorSetAccelerationStructureNV = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV,
582     eAccelerationStructureMemoryRequirementsInfoNV =
583       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV,
584     ePhysicalDeviceRayTracingPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV,
585     eRayTracingShaderGroupCreateInfoNV    = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV,
586     eAccelerationStructureInfoNV          = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV,
587     ePhysicalDeviceRepresentativeFragmentTestFeaturesNV =
588       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV,
589     ePipelineRepresentativeFragmentTestStateCreateInfoNV =
590       VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV,
591     ePhysicalDeviceImageViewImageFormatInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT,
592     eFilterCubicImageViewImageFormatPropertiesEXT =
593       VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT,
594     eDeviceQueueGlobalPriorityCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT,
595     eImportMemoryHostPointerInfoEXT         = VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT,
596     eMemoryHostPointerPropertiesEXT         = VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT,
597     ePhysicalDeviceExternalMemoryHostPropertiesEXT =
598       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT,
599     ePhysicalDeviceShaderClockFeaturesKHR  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR,
600     ePipelineCompilerControlCreateInfoAMD  = VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD,
601     eCalibratedTimestampInfoEXT            = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT,
602     ePhysicalDeviceShaderCorePropertiesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD,
603 #if defined( VK_ENABLE_BETA_EXTENSIONS )
604     eVideoDecodeH265CapabilitiesEXT      = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT,
605     eVideoDecodeH265SessionCreateInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT,
606     eVideoDecodeH265SessionParametersCreateInfoEXT =
607       VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT,
608     eVideoDecodeH265SessionParametersAddInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT,
609     eVideoDecodeH265ProfileEXT                  = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT,
610     eVideoDecodeH265PictureInfoEXT              = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT,
611     eVideoDecodeH265DpbSlotInfoEXT              = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT,
612 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
613     eDeviceMemoryOverallocationCreateInfoAMD = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD,
614     ePhysicalDeviceVertexAttributeDivisorPropertiesEXT =
615       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT,
616     ePipelineVertexInputDivisorStateCreateInfoEXT =
617       VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT,
618     ePhysicalDeviceVertexAttributeDivisorFeaturesEXT =
619       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT,
620 #if defined( VK_USE_PLATFORM_GGP )
621     ePresentFrameTokenGGP = VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP,
622 #endif /*VK_USE_PLATFORM_GGP*/
623     ePipelineCreationFeedbackCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT,
624     ePhysicalDeviceComputeShaderDerivativesFeaturesNV =
625       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV,
626     ePhysicalDeviceMeshShaderFeaturesNV   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV,
627     ePhysicalDeviceMeshShaderPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV,
628     ePhysicalDeviceFragmentShaderBarycentricFeaturesNV =
629       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV,
630     ePhysicalDeviceShaderImageFootprintFeaturesNV =
631       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV,
632     ePipelineViewportExclusiveScissorStateCreateInfoNV =
633       VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV,
634     ePhysicalDeviceExclusiveScissorFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV,
635     eCheckpointDataNV                         = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV,
636     eQueueFamilyCheckpointPropertiesNV        = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV,
637     ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL =
638       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL,
639     eQueryPoolPerformanceQueryCreateInfoINTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
640     eInitializePerformanceApiInfoINTEL        = VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL,
641     ePerformanceMarkerInfoINTEL               = VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL,
642     ePerformanceStreamMarkerInfoINTEL         = VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL,
643     ePerformanceOverrideInfoINTEL             = VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL,
644     ePerformanceConfigurationAcquireInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL,
645     ePhysicalDevicePciBusInfoPropertiesEXT    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT,
646     eDisplayNativeHdrSurfaceCapabilitiesAMD   = VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD,
647     eSwapchainDisplayNativeHdrCreateInfoAMD   = VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD,
648 #if defined( VK_USE_PLATFORM_FUCHSIA )
649     eImagepipeSurfaceCreateInfoFUCHSIA = VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA,
650 #endif /*VK_USE_PLATFORM_FUCHSIA*/
651     ePhysicalDeviceShaderTerminateInvocationFeaturesKHR =
652       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR,
653 #if defined( VK_USE_PLATFORM_METAL_EXT )
654     eMetalSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT,
655 #endif /*VK_USE_PLATFORM_METAL_EXT*/
656     ePhysicalDeviceFragmentDensityMapFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT,
657     ePhysicalDeviceFragmentDensityMapPropertiesEXT =
658       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT,
659     eRenderPassFragmentDensityMapCreateInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT,
660     ePhysicalDeviceSubgroupSizeControlPropertiesEXT =
661       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT,
662     ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT =
663       VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
664     ePhysicalDeviceSubgroupSizeControlFeaturesEXT =
665       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT,
666     eFragmentShadingRateAttachmentInfoKHR = VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,
667     ePipelineFragmentShadingRateStateCreateInfoKHR =
668       VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR,
669     ePhysicalDeviceFragmentShadingRatePropertiesKHR =
670       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR,
671     ePhysicalDeviceFragmentShadingRateFeaturesKHR =
672       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR,
673     ePhysicalDeviceFragmentShadingRateKHR    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR,
674     ePhysicalDeviceShaderCoreProperties2AMD  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD,
675     ePhysicalDeviceCoherentMemoryFeaturesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD,
676     ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT =
677       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT,
678     ePhysicalDeviceMemoryBudgetPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT,
679     ePhysicalDeviceMemoryPriorityFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT,
680     eMemoryPriorityAllocateInfoEXT           = VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT,
681     eSurfaceProtectedCapabilitiesKHR         = VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR,
682     ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV =
683       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV,
684     ePhysicalDeviceBufferDeviceAddressFeaturesEXT =
685       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
686     eBufferDeviceAddressCreateInfoEXT            = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT,
687     ePhysicalDeviceToolPropertiesEXT             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT,
688     eValidationFeaturesEXT                       = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT,
689     ePhysicalDevicePresentWaitFeaturesKHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR,
690     ePhysicalDeviceCooperativeMatrixFeaturesNV   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV,
691     eCooperativeMatrixPropertiesNV               = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV,
692     ePhysicalDeviceCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV,
693     ePhysicalDeviceCoverageReductionModeFeaturesNV =
694       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV,
695     ePipelineCoverageReductionStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV,
696     eFramebufferMixedSamplesCombinationNV       = VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV,
697     ePhysicalDeviceFragmentShaderInterlockFeaturesEXT =
698       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT,
699     ePhysicalDeviceYcbcrImageArraysFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT,
700     ePhysicalDeviceProvokingVertexFeaturesEXT  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT,
701     ePipelineRasterizationProvokingVertexStateCreateInfoEXT =
702       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT,
703     ePhysicalDeviceProvokingVertexPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT,
704 #if defined( VK_USE_PLATFORM_WIN32_KHR )
705     eSurfaceFullScreenExclusiveInfoEXT         = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT,
706     eSurfaceCapabilitiesFullScreenExclusiveEXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT,
707     eSurfaceFullScreenExclusiveWin32InfoEXT    = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT,
708 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
709     eHeadlessSurfaceCreateInfoEXT                 = VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT,
710     ePhysicalDeviceLineRasterizationFeaturesEXT   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT,
711     ePipelineRasterizationLineStateCreateInfoEXT  = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT,
712     ePhysicalDeviceLineRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT,
713     ePhysicalDeviceShaderAtomicFloatFeaturesEXT   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT,
714     ePhysicalDeviceIndexTypeUint8FeaturesEXT      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT,
715     ePhysicalDeviceExtendedDynamicStateFeaturesEXT =
716       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT,
717     ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR =
718       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR,
719     ePipelineInfoKHR                             = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
720     ePipelineExecutablePropertiesKHR             = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR,
721     ePipelineExecutableInfoKHR                   = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR,
722     ePipelineExecutableStatisticKHR              = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR,
723     ePipelineExecutableInternalRepresentationKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR,
724     ePhysicalDeviceShaderAtomicFloat2FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT,
725     ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT =
726       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT,
727     ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV =
728       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV,
729     eGraphicsShaderGroupCreateInfoNV           = VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV,
730     eGraphicsPipelineShaderGroupsCreateInfoNV  = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV,
731     eIndirectCommandsLayoutTokenNV             = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV,
732     eIndirectCommandsLayoutCreateInfoNV        = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV,
733     eGeneratedCommandsInfoNV                   = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV,
734     eGeneratedCommandsMemoryRequirementsInfoNV = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV,
735     ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV =
736       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV,
737     ePhysicalDeviceInheritedViewportScissorFeaturesNV =
738       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV,
739     eCommandBufferInheritanceViewportScissorInfoNV =
740       VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV,
741     ePhysicalDeviceShaderIntegerDotProductFeaturesKHR =
742       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR,
743     ePhysicalDeviceShaderIntegerDotProductPropertiesKHR =
744       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR,
745     ePhysicalDeviceTexelBufferAlignmentFeaturesEXT =
746       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT,
747     ePhysicalDeviceTexelBufferAlignmentPropertiesEXT =
748       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT,
749     eCommandBufferInheritanceRenderPassTransformInfoQCOM =
750       VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM,
751     eRenderPassTransformBeginInfoQCOM            = VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM,
752     ePhysicalDeviceDeviceMemoryReportFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT,
753     eDeviceDeviceMemoryReportCreateInfoEXT       = VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT,
754     eDeviceMemoryReportCallbackDataEXT           = VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT,
755     ePhysicalDeviceRobustness2FeaturesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT,
756     ePhysicalDeviceRobustness2PropertiesEXT      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT,
757     eSamplerCustomBorderColorCreateInfoEXT       = VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT,
758     ePhysicalDeviceCustomBorderColorPropertiesEXT =
759       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT,
760     ePhysicalDeviceCustomBorderColorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT,
761     ePipelineLibraryCreateInfoKHR               = VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR,
762     ePresentIdKHR                               = VK_STRUCTURE_TYPE_PRESENT_ID_KHR,
763     ePhysicalDevicePresentIdFeaturesKHR         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR,
764     ePhysicalDevicePrivateDataFeaturesEXT       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT,
765     eDevicePrivateDataCreateInfoEXT             = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT,
766     ePrivateDataSlotCreateInfoEXT               = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT,
767     ePhysicalDevicePipelineCreationCacheControlFeaturesEXT =
768       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT,
769 #if defined( VK_ENABLE_BETA_EXTENSIONS )
770     eVideoEncodeInfoKHR            = VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR,
771     eVideoEncodeRateControlInfoKHR = VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR,
772 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
773     ePhysicalDeviceDiagnosticsConfigFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV,
774     eDeviceDiagnosticsConfigCreateInfoNV       = VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV,
775     eMemoryBarrier2KHR                         = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR,
776     eBufferMemoryBarrier2KHR                   = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR,
777     eImageMemoryBarrier2KHR                    = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR,
778     eDependencyInfoKHR                         = VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR,
779     eSubmitInfo2KHR                            = VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR,
780     eSemaphoreSubmitInfoKHR                    = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR,
781     eCommandBufferSubmitInfoKHR                = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR,
782     ePhysicalDeviceSynchronization2FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR,
783     eQueueFamilyCheckpointProperties2NV        = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV,
784     eCheckpointData2NV                         = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV,
785     ePhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR =
786       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR,
787     ePhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR =
788       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR,
789     ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV =
790       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV,
791     ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV =
792       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV,
793     ePipelineFragmentShadingRateEnumStateCreateInfoNV =
794       VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV,
795     eAccelerationStructureGeometryMotionTrianglesDataNV =
796       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV,
797     ePhysicalDeviceRayTracingMotionBlurFeaturesNV =
798       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV,
799     eAccelerationStructureMotionInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV,
800     ePhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT =
801       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT,
802     ePhysicalDeviceFragmentDensityMap2FeaturesEXT =
803       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT,
804     ePhysicalDeviceFragmentDensityMap2PropertiesEXT =
805       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT,
806     eCopyCommandTransformInfoQCOM             = VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM,
807     ePhysicalDeviceImageRobustnessFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT,
808     ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR =
809       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR,
810     eCopyBufferInfo2KHR                       = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR,
811     eCopyImageInfo2KHR                        = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR,
812     eCopyBufferToImageInfo2KHR                = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR,
813     eCopyImageToBufferInfo2KHR                = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR,
814     eBlitImageInfo2KHR                        = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR,
815     eResolveImageInfo2KHR                     = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR,
816     eBufferCopy2KHR                           = VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR,
817     eImageCopy2KHR                            = VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR,
818     eImageBlit2KHR                            = VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR,
819     eBufferImageCopy2KHR                      = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR,
820     eImageResolve2KHR                         = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR,
821     ePhysicalDevice4444FormatsFeaturesEXT     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT,
822     ePhysicalDeviceRgba10X6FormatsFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT,
823 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
824     eDirectfbSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT,
825 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
826     ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE =
827       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE,
828     eMutableDescriptorTypeCreateInfoVALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE,
829     ePhysicalDeviceVertexInputDynamicStateFeaturesEXT =
830       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT,
831     eVertexInputBindingDescription2EXT   = VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT,
832     eVertexInputAttributeDescription2EXT = VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT,
833     ePhysicalDeviceDrmPropertiesEXT      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT,
834     ePhysicalDevicePrimitiveTopologyListRestartFeaturesEXT =
835       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT,
836     eFormatProperties3KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR,
837 #if defined( VK_USE_PLATFORM_FUCHSIA )
838     eImportMemoryZirconHandleInfoFUCHSIA     = VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA,
839     eMemoryZirconHandlePropertiesFUCHSIA     = VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA,
840     eMemoryGetZirconHandleInfoFUCHSIA        = VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA,
841     eImportSemaphoreZirconHandleInfoFUCHSIA  = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA,
842     eSemaphoreGetZirconHandleInfoFUCHSIA     = VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA,
843     eBufferCollectionCreateInfoFUCHSIA       = VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA,
844     eImportMemoryBufferCollectionFUCHSIA     = VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA,
845     eBufferCollectionImageCreateInfoFUCHSIA  = VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA,
846     eBufferCollectionPropertiesFUCHSIA       = VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA,
847     eBufferConstraintsInfoFUCHSIA            = VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA,
848     eBufferCollectionBufferCreateInfoFUCHSIA = VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA,
849     eImageConstraintsInfoFUCHSIA             = VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA,
850     eImageFormatConstraintsInfoFUCHSIA       = VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA,
851     eSysmemColorSpaceFUCHSIA                 = VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA,
852     eBufferCollectionConstraintsInfoFUCHSIA  = VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA,
853 #endif /*VK_USE_PLATFORM_FUCHSIA*/
854     eSubpassShadingPipelineCreateInfoHUAWEI       = VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI,
855     ePhysicalDeviceSubpassShadingFeaturesHUAWEI   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI,
856     ePhysicalDeviceSubpassShadingPropertiesHUAWEI = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI,
857     ePhysicalDeviceInvocationMaskFeaturesHUAWEI   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI,
858     eMemoryGetRemoteAddressInfoNV                 = VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV,
859     ePhysicalDeviceExternalMemoryRdmaFeaturesNV   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV,
860     ePhysicalDeviceExtendedDynamicState2FeaturesEXT =
861       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT,
862 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
863     eScreenSurfaceCreateInfoQNX = VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX,
864 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
865     ePhysicalDeviceColorWriteEnableFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT,
866     ePipelineColorWriteCreateInfoEXT           = VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT,
867     ePhysicalDeviceGlobalPriorityQueryFeaturesEXT =
868       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT,
869     eQueueFamilyGlobalPriorityPropertiesEXT      = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT,
870     ePhysicalDeviceMultiDrawFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT,
871     ePhysicalDeviceMultiDrawPropertiesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT,
872     ePhysicalDeviceBorderColorSwizzleFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT,
873     eSamplerBorderColorComponentMappingCreateInfoEXT =
874       VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT,
875     ePhysicalDevicePageableDeviceLocalMemoryFeaturesEXT =
876       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT,
877     ePhysicalDeviceMaintenance4FeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR,
878     ePhysicalDeviceMaintenance4PropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR,
879     eDeviceBufferMemoryRequirementsKHR       = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR,
880     eDeviceImageMemoryRequirementsKHR        = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR,
881     eAttachmentDescription2KHR               = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR,
882     eAttachmentDescriptionStencilLayoutKHR   = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR,
883     eAttachmentReference2KHR                 = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR,
884     eAttachmentReferenceStencilLayoutKHR     = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR,
885     eBindBufferMemoryDeviceGroupInfoKHR      = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR,
886     eBindBufferMemoryInfoKHR                 = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR,
887     eBindImageMemoryDeviceGroupInfoKHR       = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR,
888     eBindImageMemoryInfoKHR                  = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR,
889     eBindImagePlaneMemoryInfoKHR             = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR,
890     eBufferDeviceAddressInfoEXT              = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT,
891     eBufferDeviceAddressInfoKHR              = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR,
892     eBufferMemoryRequirementsInfo2KHR        = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR,
893     eBufferOpaqueCaptureAddressCreateInfoKHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR,
894     eDebugReportCreateInfoEXT                = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT,
895     eDescriptorSetLayoutBindingFlagsCreateInfoEXT =
896       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT,
897     eDescriptorSetLayoutSupportKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR,
898     eDescriptorSetVariableDescriptorCountAllocateInfoEXT =
899       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT,
900     eDescriptorSetVariableDescriptorCountLayoutSupportEXT =
901       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT,
902     eDescriptorUpdateTemplateCreateInfoKHR     = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR,
903     eDeviceGroupBindSparseInfoKHR              = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR,
904     eDeviceGroupCommandBufferBeginInfoKHR      = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR,
905     eDeviceGroupDeviceCreateInfoKHR            = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR,
906     eDeviceGroupRenderPassBeginInfoKHR         = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR,
907     eDeviceGroupSubmitInfoKHR                  = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR,
908     eDeviceMemoryOpaqueCaptureAddressInfoKHR   = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR,
909     eExportFenceCreateInfoKHR                  = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR,
910     eExportMemoryAllocateInfoKHR               = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR,
911     eExportSemaphoreCreateInfoKHR              = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR,
912     eExternalBufferPropertiesKHR               = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR,
913     eExternalFencePropertiesKHR                = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR,
914     eExternalImageFormatPropertiesKHR          = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR,
915     eExternalMemoryBufferCreateInfoKHR         = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR,
916     eExternalMemoryImageCreateInfoKHR          = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR,
917     eExternalSemaphorePropertiesKHR            = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR,
918     eFormatProperties2KHR                      = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR,
919     eFramebufferAttachmentsCreateInfoKHR       = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR,
920     eFramebufferAttachmentImageInfoKHR         = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR,
921     eImageFormatListCreateInfoKHR              = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR,
922     eImageFormatProperties2KHR                 = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR,
923     eImageMemoryRequirementsInfo2KHR           = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR,
924     eImagePlaneMemoryRequirementsInfoKHR       = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR,
925     eImageSparseMemoryRequirementsInfo2KHR     = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR,
926     eImageStencilUsageCreateInfoEXT            = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT,
927     eImageViewUsageCreateInfoKHR               = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR,
928     eMemoryAllocateFlagsInfoKHR                = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR,
929     eMemoryDedicatedAllocateInfoKHR            = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR,
930     eMemoryDedicatedRequirementsKHR            = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR,
931     eMemoryOpaqueCaptureAddressAllocateInfoKHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR,
932     eMemoryRequirements2KHR                    = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR,
933     ePhysicalDevice16BitStorageFeaturesKHR     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR,
934     ePhysicalDevice8BitStorageFeaturesKHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR,
935     ePhysicalDeviceBufferAddressFeaturesEXT    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT,
936     ePhysicalDeviceBufferDeviceAddressFeaturesKHR =
937       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR,
938     ePhysicalDeviceDepthStencilResolvePropertiesKHR =
939       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR,
940     ePhysicalDeviceDescriptorIndexingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT,
941     ePhysicalDeviceDescriptorIndexingPropertiesEXT =
942       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT,
943     ePhysicalDeviceDriverPropertiesKHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR,
944     ePhysicalDeviceExternalBufferInfoKHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR,
945     ePhysicalDeviceExternalFenceInfoKHR       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR,
946     ePhysicalDeviceExternalImageFormatInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR,
947     ePhysicalDeviceExternalSemaphoreInfoKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR,
948     ePhysicalDeviceFeatures2KHR               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR,
949     ePhysicalDeviceFloat16Int8FeaturesKHR     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR,
950     ePhysicalDeviceFloatControlsPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR,
951     ePhysicalDeviceGroupPropertiesKHR         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR,
952     ePhysicalDeviceHostQueryResetFeaturesEXT  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT,
953     ePhysicalDeviceIdPropertiesKHR            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR,
954     ePhysicalDeviceImagelessFramebufferFeaturesKHR =
955       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR,
956     ePhysicalDeviceImageFormatInfo2KHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR,
957     ePhysicalDeviceMaintenance3PropertiesKHR  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR,
958     ePhysicalDeviceMemoryProperties2KHR       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR,
959     ePhysicalDeviceMultiviewFeaturesKHR       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR,
960     ePhysicalDeviceMultiviewPropertiesKHR     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR,
961     ePhysicalDevicePointClippingPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR,
962     ePhysicalDeviceProperties2KHR             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR,
963     ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT =
964       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT,
965     ePhysicalDeviceSamplerYcbcrConversionFeaturesKHR =
966       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR,
967     ePhysicalDeviceScalarBlockLayoutFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT,
968     ePhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR =
969       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR,
970     ePhysicalDeviceShaderAtomicInt64FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR,
971     ePhysicalDeviceShaderDrawParameterFeatures  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES,
972     ePhysicalDeviceShaderFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR,
973     ePhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR =
974       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR,
975     ePhysicalDeviceSparseImageFormatInfo2KHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR,
976     ePhysicalDeviceTimelineSemaphoreFeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR,
977     ePhysicalDeviceTimelineSemaphorePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR,
978     ePhysicalDeviceUniformBufferStandardLayoutFeaturesKHR =
979       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR,
980     ePhysicalDeviceVariablePointersFeaturesKHR  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
981     ePhysicalDeviceVariablePointerFeatures      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
982     ePhysicalDeviceVariablePointerFeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR,
983     ePhysicalDeviceVulkanMemoryModelFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR,
984     ePipelineTessellationDomainOriginStateCreateInfoKHR =
985       VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR,
986     eQueryPoolCreateInfoINTEL         = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL,
987     eQueueFamilyProperties2KHR        = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR,
988     eRenderPassAttachmentBeginInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR,
989     eRenderPassCreateInfo2KHR         = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR,
990     eRenderPassInputAttachmentAspectCreateInfoKHR =
991       VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR,
992     eRenderPassMultiviewCreateInfoKHR    = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR,
993     eSamplerReductionModeCreateInfoEXT   = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT,
994     eSamplerYcbcrConversionCreateInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR,
995     eSamplerYcbcrConversionImageFormatPropertiesKHR =
996       VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR,
997     eSamplerYcbcrConversionInfoKHR            = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR,
998     eSemaphoreSignalInfoKHR                   = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR,
999     eSemaphoreTypeCreateInfoKHR               = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR,
1000     eSemaphoreWaitInfoKHR                     = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR,
1001     eSparseImageFormatProperties2KHR          = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR,
1002     eSparseImageMemoryRequirements2KHR        = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR,
1003     eSubpassBeginInfoKHR                      = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR,
1004     eSubpassDependency2KHR                    = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR,
1005     eSubpassDescription2KHR                   = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR,
1006     eSubpassDescriptionDepthStencilResolveKHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR,
1007     eSubpassEndInfoKHR                        = VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR,
1008     eTimelineSemaphoreSubmitInfoKHR           = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR
1009   };
1010 
to_string(StructureType value)1011   VULKAN_HPP_INLINE std::string to_string( StructureType value )
1012   {
1013     switch ( value )
1014     {
1015       case StructureType::eApplicationInfo: return "ApplicationInfo";
1016       case StructureType::eInstanceCreateInfo: return "InstanceCreateInfo";
1017       case StructureType::eDeviceQueueCreateInfo: return "DeviceQueueCreateInfo";
1018       case StructureType::eDeviceCreateInfo: return "DeviceCreateInfo";
1019       case StructureType::eSubmitInfo: return "SubmitInfo";
1020       case StructureType::eMemoryAllocateInfo: return "MemoryAllocateInfo";
1021       case StructureType::eMappedMemoryRange: return "MappedMemoryRange";
1022       case StructureType::eBindSparseInfo: return "BindSparseInfo";
1023       case StructureType::eFenceCreateInfo: return "FenceCreateInfo";
1024       case StructureType::eSemaphoreCreateInfo: return "SemaphoreCreateInfo";
1025       case StructureType::eEventCreateInfo: return "EventCreateInfo";
1026       case StructureType::eQueryPoolCreateInfo: return "QueryPoolCreateInfo";
1027       case StructureType::eBufferCreateInfo: return "BufferCreateInfo";
1028       case StructureType::eBufferViewCreateInfo: return "BufferViewCreateInfo";
1029       case StructureType::eImageCreateInfo: return "ImageCreateInfo";
1030       case StructureType::eImageViewCreateInfo: return "ImageViewCreateInfo";
1031       case StructureType::eShaderModuleCreateInfo: return "ShaderModuleCreateInfo";
1032       case StructureType::ePipelineCacheCreateInfo: return "PipelineCacheCreateInfo";
1033       case StructureType::ePipelineShaderStageCreateInfo: return "PipelineShaderStageCreateInfo";
1034       case StructureType::ePipelineVertexInputStateCreateInfo: return "PipelineVertexInputStateCreateInfo";
1035       case StructureType::ePipelineInputAssemblyStateCreateInfo: return "PipelineInputAssemblyStateCreateInfo";
1036       case StructureType::ePipelineTessellationStateCreateInfo: return "PipelineTessellationStateCreateInfo";
1037       case StructureType::ePipelineViewportStateCreateInfo: return "PipelineViewportStateCreateInfo";
1038       case StructureType::ePipelineRasterizationStateCreateInfo: return "PipelineRasterizationStateCreateInfo";
1039       case StructureType::ePipelineMultisampleStateCreateInfo: return "PipelineMultisampleStateCreateInfo";
1040       case StructureType::ePipelineDepthStencilStateCreateInfo: return "PipelineDepthStencilStateCreateInfo";
1041       case StructureType::ePipelineColorBlendStateCreateInfo: return "PipelineColorBlendStateCreateInfo";
1042       case StructureType::ePipelineDynamicStateCreateInfo: return "PipelineDynamicStateCreateInfo";
1043       case StructureType::eGraphicsPipelineCreateInfo: return "GraphicsPipelineCreateInfo";
1044       case StructureType::eComputePipelineCreateInfo: return "ComputePipelineCreateInfo";
1045       case StructureType::ePipelineLayoutCreateInfo: return "PipelineLayoutCreateInfo";
1046       case StructureType::eSamplerCreateInfo: return "SamplerCreateInfo";
1047       case StructureType::eDescriptorSetLayoutCreateInfo: return "DescriptorSetLayoutCreateInfo";
1048       case StructureType::eDescriptorPoolCreateInfo: return "DescriptorPoolCreateInfo";
1049       case StructureType::eDescriptorSetAllocateInfo: return "DescriptorSetAllocateInfo";
1050       case StructureType::eWriteDescriptorSet: return "WriteDescriptorSet";
1051       case StructureType::eCopyDescriptorSet: return "CopyDescriptorSet";
1052       case StructureType::eFramebufferCreateInfo: return "FramebufferCreateInfo";
1053       case StructureType::eRenderPassCreateInfo: return "RenderPassCreateInfo";
1054       case StructureType::eCommandPoolCreateInfo: return "CommandPoolCreateInfo";
1055       case StructureType::eCommandBufferAllocateInfo: return "CommandBufferAllocateInfo";
1056       case StructureType::eCommandBufferInheritanceInfo: return "CommandBufferInheritanceInfo";
1057       case StructureType::eCommandBufferBeginInfo: return "CommandBufferBeginInfo";
1058       case StructureType::eRenderPassBeginInfo: return "RenderPassBeginInfo";
1059       case StructureType::eBufferMemoryBarrier: return "BufferMemoryBarrier";
1060       case StructureType::eImageMemoryBarrier: return "ImageMemoryBarrier";
1061       case StructureType::eMemoryBarrier: return "MemoryBarrier";
1062       case StructureType::eLoaderInstanceCreateInfo: return "LoaderInstanceCreateInfo";
1063       case StructureType::eLoaderDeviceCreateInfo: return "LoaderDeviceCreateInfo";
1064       case StructureType::ePhysicalDeviceSubgroupProperties: return "PhysicalDeviceSubgroupProperties";
1065       case StructureType::eBindBufferMemoryInfo: return "BindBufferMemoryInfo";
1066       case StructureType::eBindImageMemoryInfo: return "BindImageMemoryInfo";
1067       case StructureType::ePhysicalDevice16BitStorageFeatures: return "PhysicalDevice16BitStorageFeatures";
1068       case StructureType::eMemoryDedicatedRequirements: return "MemoryDedicatedRequirements";
1069       case StructureType::eMemoryDedicatedAllocateInfo: return "MemoryDedicatedAllocateInfo";
1070       case StructureType::eMemoryAllocateFlagsInfo: return "MemoryAllocateFlagsInfo";
1071       case StructureType::eDeviceGroupRenderPassBeginInfo: return "DeviceGroupRenderPassBeginInfo";
1072       case StructureType::eDeviceGroupCommandBufferBeginInfo: return "DeviceGroupCommandBufferBeginInfo";
1073       case StructureType::eDeviceGroupSubmitInfo: return "DeviceGroupSubmitInfo";
1074       case StructureType::eDeviceGroupBindSparseInfo: return "DeviceGroupBindSparseInfo";
1075       case StructureType::eBindBufferMemoryDeviceGroupInfo: return "BindBufferMemoryDeviceGroupInfo";
1076       case StructureType::eBindImageMemoryDeviceGroupInfo: return "BindImageMemoryDeviceGroupInfo";
1077       case StructureType::ePhysicalDeviceGroupProperties: return "PhysicalDeviceGroupProperties";
1078       case StructureType::eDeviceGroupDeviceCreateInfo: return "DeviceGroupDeviceCreateInfo";
1079       case StructureType::eBufferMemoryRequirementsInfo2: return "BufferMemoryRequirementsInfo2";
1080       case StructureType::eImageMemoryRequirementsInfo2: return "ImageMemoryRequirementsInfo2";
1081       case StructureType::eImageSparseMemoryRequirementsInfo2: return "ImageSparseMemoryRequirementsInfo2";
1082       case StructureType::eMemoryRequirements2: return "MemoryRequirements2";
1083       case StructureType::eSparseImageMemoryRequirements2: return "SparseImageMemoryRequirements2";
1084       case StructureType::ePhysicalDeviceFeatures2: return "PhysicalDeviceFeatures2";
1085       case StructureType::ePhysicalDeviceProperties2: return "PhysicalDeviceProperties2";
1086       case StructureType::eFormatProperties2: return "FormatProperties2";
1087       case StructureType::eImageFormatProperties2: return "ImageFormatProperties2";
1088       case StructureType::ePhysicalDeviceImageFormatInfo2: return "PhysicalDeviceImageFormatInfo2";
1089       case StructureType::eQueueFamilyProperties2: return "QueueFamilyProperties2";
1090       case StructureType::ePhysicalDeviceMemoryProperties2: return "PhysicalDeviceMemoryProperties2";
1091       case StructureType::eSparseImageFormatProperties2: return "SparseImageFormatProperties2";
1092       case StructureType::ePhysicalDeviceSparseImageFormatInfo2: return "PhysicalDeviceSparseImageFormatInfo2";
1093       case StructureType::ePhysicalDevicePointClippingProperties: return "PhysicalDevicePointClippingProperties";
1094       case StructureType::eRenderPassInputAttachmentAspectCreateInfo:
1095         return "RenderPassInputAttachmentAspectCreateInfo";
1096       case StructureType::eImageViewUsageCreateInfo: return "ImageViewUsageCreateInfo";
1097       case StructureType::ePipelineTessellationDomainOriginStateCreateInfo:
1098         return "PipelineTessellationDomainOriginStateCreateInfo";
1099       case StructureType::eRenderPassMultiviewCreateInfo: return "RenderPassMultiviewCreateInfo";
1100       case StructureType::ePhysicalDeviceMultiviewFeatures: return "PhysicalDeviceMultiviewFeatures";
1101       case StructureType::ePhysicalDeviceMultiviewProperties: return "PhysicalDeviceMultiviewProperties";
1102       case StructureType::ePhysicalDeviceVariablePointersFeatures: return "PhysicalDeviceVariablePointersFeatures";
1103       case StructureType::eProtectedSubmitInfo: return "ProtectedSubmitInfo";
1104       case StructureType::ePhysicalDeviceProtectedMemoryFeatures: return "PhysicalDeviceProtectedMemoryFeatures";
1105       case StructureType::ePhysicalDeviceProtectedMemoryProperties: return "PhysicalDeviceProtectedMemoryProperties";
1106       case StructureType::eDeviceQueueInfo2: return "DeviceQueueInfo2";
1107       case StructureType::eSamplerYcbcrConversionCreateInfo: return "SamplerYcbcrConversionCreateInfo";
1108       case StructureType::eSamplerYcbcrConversionInfo: return "SamplerYcbcrConversionInfo";
1109       case StructureType::eBindImagePlaneMemoryInfo: return "BindImagePlaneMemoryInfo";
1110       case StructureType::eImagePlaneMemoryRequirementsInfo: return "ImagePlaneMemoryRequirementsInfo";
1111       case StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures:
1112         return "PhysicalDeviceSamplerYcbcrConversionFeatures";
1113       case StructureType::eSamplerYcbcrConversionImageFormatProperties:
1114         return "SamplerYcbcrConversionImageFormatProperties";
1115       case StructureType::eDescriptorUpdateTemplateCreateInfo: return "DescriptorUpdateTemplateCreateInfo";
1116       case StructureType::ePhysicalDeviceExternalImageFormatInfo: return "PhysicalDeviceExternalImageFormatInfo";
1117       case StructureType::eExternalImageFormatProperties: return "ExternalImageFormatProperties";
1118       case StructureType::ePhysicalDeviceExternalBufferInfo: return "PhysicalDeviceExternalBufferInfo";
1119       case StructureType::eExternalBufferProperties: return "ExternalBufferProperties";
1120       case StructureType::ePhysicalDeviceIdProperties: return "PhysicalDeviceIdProperties";
1121       case StructureType::eExternalMemoryBufferCreateInfo: return "ExternalMemoryBufferCreateInfo";
1122       case StructureType::eExternalMemoryImageCreateInfo: return "ExternalMemoryImageCreateInfo";
1123       case StructureType::eExportMemoryAllocateInfo: return "ExportMemoryAllocateInfo";
1124       case StructureType::ePhysicalDeviceExternalFenceInfo: return "PhysicalDeviceExternalFenceInfo";
1125       case StructureType::eExternalFenceProperties: return "ExternalFenceProperties";
1126       case StructureType::eExportFenceCreateInfo: return "ExportFenceCreateInfo";
1127       case StructureType::eExportSemaphoreCreateInfo: return "ExportSemaphoreCreateInfo";
1128       case StructureType::ePhysicalDeviceExternalSemaphoreInfo: return "PhysicalDeviceExternalSemaphoreInfo";
1129       case StructureType::eExternalSemaphoreProperties: return "ExternalSemaphoreProperties";
1130       case StructureType::ePhysicalDeviceMaintenance3Properties: return "PhysicalDeviceMaintenance3Properties";
1131       case StructureType::eDescriptorSetLayoutSupport: return "DescriptorSetLayoutSupport";
1132       case StructureType::ePhysicalDeviceShaderDrawParametersFeatures:
1133         return "PhysicalDeviceShaderDrawParametersFeatures";
1134       case StructureType::ePhysicalDeviceVulkan11Features: return "PhysicalDeviceVulkan11Features";
1135       case StructureType::ePhysicalDeviceVulkan11Properties: return "PhysicalDeviceVulkan11Properties";
1136       case StructureType::ePhysicalDeviceVulkan12Features: return "PhysicalDeviceVulkan12Features";
1137       case StructureType::ePhysicalDeviceVulkan12Properties: return "PhysicalDeviceVulkan12Properties";
1138       case StructureType::eImageFormatListCreateInfo: return "ImageFormatListCreateInfo";
1139       case StructureType::eAttachmentDescription2: return "AttachmentDescription2";
1140       case StructureType::eAttachmentReference2: return "AttachmentReference2";
1141       case StructureType::eSubpassDescription2: return "SubpassDescription2";
1142       case StructureType::eSubpassDependency2: return "SubpassDependency2";
1143       case StructureType::eRenderPassCreateInfo2: return "RenderPassCreateInfo2";
1144       case StructureType::eSubpassBeginInfo: return "SubpassBeginInfo";
1145       case StructureType::eSubpassEndInfo: return "SubpassEndInfo";
1146       case StructureType::ePhysicalDevice8BitStorageFeatures: return "PhysicalDevice8BitStorageFeatures";
1147       case StructureType::ePhysicalDeviceDriverProperties: return "PhysicalDeviceDriverProperties";
1148       case StructureType::ePhysicalDeviceShaderAtomicInt64Features: return "PhysicalDeviceShaderAtomicInt64Features";
1149       case StructureType::ePhysicalDeviceShaderFloat16Int8Features: return "PhysicalDeviceShaderFloat16Int8Features";
1150       case StructureType::ePhysicalDeviceFloatControlsProperties: return "PhysicalDeviceFloatControlsProperties";
1151       case StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo:
1152         return "DescriptorSetLayoutBindingFlagsCreateInfo";
1153       case StructureType::ePhysicalDeviceDescriptorIndexingFeatures: return "PhysicalDeviceDescriptorIndexingFeatures";
1154       case StructureType::ePhysicalDeviceDescriptorIndexingProperties:
1155         return "PhysicalDeviceDescriptorIndexingProperties";
1156       case StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo:
1157         return "DescriptorSetVariableDescriptorCountAllocateInfo";
1158       case StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport:
1159         return "DescriptorSetVariableDescriptorCountLayoutSupport";
1160       case StructureType::ePhysicalDeviceDepthStencilResolveProperties:
1161         return "PhysicalDeviceDepthStencilResolveProperties";
1162       case StructureType::eSubpassDescriptionDepthStencilResolve: return "SubpassDescriptionDepthStencilResolve";
1163       case StructureType::ePhysicalDeviceScalarBlockLayoutFeatures: return "PhysicalDeviceScalarBlockLayoutFeatures";
1164       case StructureType::eImageStencilUsageCreateInfo: return "ImageStencilUsageCreateInfo";
1165       case StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties:
1166         return "PhysicalDeviceSamplerFilterMinmaxProperties";
1167       case StructureType::eSamplerReductionModeCreateInfo: return "SamplerReductionModeCreateInfo";
1168       case StructureType::ePhysicalDeviceVulkanMemoryModelFeatures: return "PhysicalDeviceVulkanMemoryModelFeatures";
1169       case StructureType::ePhysicalDeviceImagelessFramebufferFeatures:
1170         return "PhysicalDeviceImagelessFramebufferFeatures";
1171       case StructureType::eFramebufferAttachmentsCreateInfo: return "FramebufferAttachmentsCreateInfo";
1172       case StructureType::eFramebufferAttachmentImageInfo: return "FramebufferAttachmentImageInfo";
1173       case StructureType::eRenderPassAttachmentBeginInfo: return "RenderPassAttachmentBeginInfo";
1174       case StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures:
1175         return "PhysicalDeviceUniformBufferStandardLayoutFeatures";
1176       case StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures:
1177         return "PhysicalDeviceShaderSubgroupExtendedTypesFeatures";
1178       case StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures:
1179         return "PhysicalDeviceSeparateDepthStencilLayoutsFeatures";
1180       case StructureType::eAttachmentReferenceStencilLayout: return "AttachmentReferenceStencilLayout";
1181       case StructureType::eAttachmentDescriptionStencilLayout: return "AttachmentDescriptionStencilLayout";
1182       case StructureType::ePhysicalDeviceHostQueryResetFeatures: return "PhysicalDeviceHostQueryResetFeatures";
1183       case StructureType::ePhysicalDeviceTimelineSemaphoreFeatures: return "PhysicalDeviceTimelineSemaphoreFeatures";
1184       case StructureType::ePhysicalDeviceTimelineSemaphoreProperties:
1185         return "PhysicalDeviceTimelineSemaphoreProperties";
1186       case StructureType::eSemaphoreTypeCreateInfo: return "SemaphoreTypeCreateInfo";
1187       case StructureType::eTimelineSemaphoreSubmitInfo: return "TimelineSemaphoreSubmitInfo";
1188       case StructureType::eSemaphoreWaitInfo: return "SemaphoreWaitInfo";
1189       case StructureType::eSemaphoreSignalInfo: return "SemaphoreSignalInfo";
1190       case StructureType::ePhysicalDeviceBufferDeviceAddressFeatures:
1191         return "PhysicalDeviceBufferDeviceAddressFeatures";
1192       case StructureType::eBufferDeviceAddressInfo: return "BufferDeviceAddressInfo";
1193       case StructureType::eBufferOpaqueCaptureAddressCreateInfo: return "BufferOpaqueCaptureAddressCreateInfo";
1194       case StructureType::eMemoryOpaqueCaptureAddressAllocateInfo: return "MemoryOpaqueCaptureAddressAllocateInfo";
1195       case StructureType::eDeviceMemoryOpaqueCaptureAddressInfo: return "DeviceMemoryOpaqueCaptureAddressInfo";
1196       case StructureType::eSwapchainCreateInfoKHR: return "SwapchainCreateInfoKHR";
1197       case StructureType::ePresentInfoKHR: return "PresentInfoKHR";
1198       case StructureType::eDeviceGroupPresentCapabilitiesKHR: return "DeviceGroupPresentCapabilitiesKHR";
1199       case StructureType::eImageSwapchainCreateInfoKHR: return "ImageSwapchainCreateInfoKHR";
1200       case StructureType::eBindImageMemorySwapchainInfoKHR: return "BindImageMemorySwapchainInfoKHR";
1201       case StructureType::eAcquireNextImageInfoKHR: return "AcquireNextImageInfoKHR";
1202       case StructureType::eDeviceGroupPresentInfoKHR: return "DeviceGroupPresentInfoKHR";
1203       case StructureType::eDeviceGroupSwapchainCreateInfoKHR: return "DeviceGroupSwapchainCreateInfoKHR";
1204       case StructureType::eDisplayModeCreateInfoKHR: return "DisplayModeCreateInfoKHR";
1205       case StructureType::eDisplaySurfaceCreateInfoKHR: return "DisplaySurfaceCreateInfoKHR";
1206       case StructureType::eDisplayPresentInfoKHR: return "DisplayPresentInfoKHR";
1207 #if defined( VK_USE_PLATFORM_XLIB_KHR )
1208       case StructureType::eXlibSurfaceCreateInfoKHR: return "XlibSurfaceCreateInfoKHR";
1209 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
1210 #if defined( VK_USE_PLATFORM_XCB_KHR )
1211       case StructureType::eXcbSurfaceCreateInfoKHR: return "XcbSurfaceCreateInfoKHR";
1212 #endif /*VK_USE_PLATFORM_XCB_KHR*/
1213 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
1214       case StructureType::eWaylandSurfaceCreateInfoKHR: return "WaylandSurfaceCreateInfoKHR";
1215 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
1216 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
1217       case StructureType::eAndroidSurfaceCreateInfoKHR: return "AndroidSurfaceCreateInfoKHR";
1218 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
1219 #if defined( VK_USE_PLATFORM_WIN32_KHR )
1220       case StructureType::eWin32SurfaceCreateInfoKHR: return "Win32SurfaceCreateInfoKHR";
1221 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1222       case StructureType::eDebugReportCallbackCreateInfoEXT: return "DebugReportCallbackCreateInfoEXT";
1223       case StructureType::ePipelineRasterizationStateRasterizationOrderAMD:
1224         return "PipelineRasterizationStateRasterizationOrderAMD";
1225       case StructureType::eDebugMarkerObjectNameInfoEXT: return "DebugMarkerObjectNameInfoEXT";
1226       case StructureType::eDebugMarkerObjectTagInfoEXT: return "DebugMarkerObjectTagInfoEXT";
1227       case StructureType::eDebugMarkerMarkerInfoEXT: return "DebugMarkerMarkerInfoEXT";
1228 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1229       case StructureType::eVideoProfileKHR: return "VideoProfileKHR";
1230       case StructureType::eVideoCapabilitiesKHR: return "VideoCapabilitiesKHR";
1231       case StructureType::eVideoPictureResourceKHR: return "VideoPictureResourceKHR";
1232       case StructureType::eVideoGetMemoryPropertiesKHR: return "VideoGetMemoryPropertiesKHR";
1233       case StructureType::eVideoBindMemoryKHR: return "VideoBindMemoryKHR";
1234       case StructureType::eVideoSessionCreateInfoKHR: return "VideoSessionCreateInfoKHR";
1235       case StructureType::eVideoSessionParametersCreateInfoKHR: return "VideoSessionParametersCreateInfoKHR";
1236       case StructureType::eVideoSessionParametersUpdateInfoKHR: return "VideoSessionParametersUpdateInfoKHR";
1237       case StructureType::eVideoBeginCodingInfoKHR: return "VideoBeginCodingInfoKHR";
1238       case StructureType::eVideoEndCodingInfoKHR: return "VideoEndCodingInfoKHR";
1239       case StructureType::eVideoCodingControlInfoKHR: return "VideoCodingControlInfoKHR";
1240       case StructureType::eVideoReferenceSlotKHR: return "VideoReferenceSlotKHR";
1241       case StructureType::eVideoQueueFamilyProperties2KHR: return "VideoQueueFamilyProperties2KHR";
1242       case StructureType::eVideoProfilesKHR: return "VideoProfilesKHR";
1243       case StructureType::ePhysicalDeviceVideoFormatInfoKHR: return "PhysicalDeviceVideoFormatInfoKHR";
1244       case StructureType::eVideoFormatPropertiesKHR: return "VideoFormatPropertiesKHR";
1245       case StructureType::eVideoDecodeInfoKHR: return "VideoDecodeInfoKHR";
1246 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1247       case StructureType::eDedicatedAllocationImageCreateInfoNV: return "DedicatedAllocationImageCreateInfoNV";
1248       case StructureType::eDedicatedAllocationBufferCreateInfoNV: return "DedicatedAllocationBufferCreateInfoNV";
1249       case StructureType::eDedicatedAllocationMemoryAllocateInfoNV: return "DedicatedAllocationMemoryAllocateInfoNV";
1250       case StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT:
1251         return "PhysicalDeviceTransformFeedbackFeaturesEXT";
1252       case StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT:
1253         return "PhysicalDeviceTransformFeedbackPropertiesEXT";
1254       case StructureType::ePipelineRasterizationStateStreamCreateInfoEXT:
1255         return "PipelineRasterizationStateStreamCreateInfoEXT";
1256       case StructureType::eCuModuleCreateInfoNVX: return "CuModuleCreateInfoNVX";
1257       case StructureType::eCuFunctionCreateInfoNVX: return "CuFunctionCreateInfoNVX";
1258       case StructureType::eCuLaunchInfoNVX: return "CuLaunchInfoNVX";
1259       case StructureType::eImageViewHandleInfoNVX: return "ImageViewHandleInfoNVX";
1260       case StructureType::eImageViewAddressPropertiesNVX: return "ImageViewAddressPropertiesNVX";
1261 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1262       case StructureType::eVideoEncodeH264CapabilitiesEXT: return "VideoEncodeH264CapabilitiesEXT";
1263       case StructureType::eVideoEncodeH264SessionCreateInfoEXT: return "VideoEncodeH264SessionCreateInfoEXT";
1264       case StructureType::eVideoEncodeH264SessionParametersCreateInfoEXT:
1265         return "VideoEncodeH264SessionParametersCreateInfoEXT";
1266       case StructureType::eVideoEncodeH264SessionParametersAddInfoEXT:
1267         return "VideoEncodeH264SessionParametersAddInfoEXT";
1268       case StructureType::eVideoEncodeH264VclFrameInfoEXT: return "VideoEncodeH264VclFrameInfoEXT";
1269       case StructureType::eVideoEncodeH264DpbSlotInfoEXT: return "VideoEncodeH264DpbSlotInfoEXT";
1270       case StructureType::eVideoEncodeH264NaluSliceEXT: return "VideoEncodeH264NaluSliceEXT";
1271       case StructureType::eVideoEncodeH264EmitPictureParametersEXT: return "VideoEncodeH264EmitPictureParametersEXT";
1272       case StructureType::eVideoEncodeH264ProfileEXT: return "VideoEncodeH264ProfileEXT";
1273       case StructureType::eVideoEncodeH265CapabilitiesEXT: return "VideoEncodeH265CapabilitiesEXT";
1274       case StructureType::eVideoEncodeH265SessionCreateInfoEXT: return "VideoEncodeH265SessionCreateInfoEXT";
1275       case StructureType::eVideoEncodeH265SessionParametersCreateInfoEXT:
1276         return "VideoEncodeH265SessionParametersCreateInfoEXT";
1277       case StructureType::eVideoEncodeH265SessionParametersAddInfoEXT:
1278         return "VideoEncodeH265SessionParametersAddInfoEXT";
1279       case StructureType::eVideoEncodeH265VclFrameInfoEXT: return "VideoEncodeH265VclFrameInfoEXT";
1280       case StructureType::eVideoEncodeH265DpbSlotInfoEXT: return "VideoEncodeH265DpbSlotInfoEXT";
1281       case StructureType::eVideoEncodeH265NaluSliceEXT: return "VideoEncodeH265NaluSliceEXT";
1282       case StructureType::eVideoEncodeH265EmitPictureParametersEXT: return "VideoEncodeH265EmitPictureParametersEXT";
1283       case StructureType::eVideoEncodeH265ProfileEXT: return "VideoEncodeH265ProfileEXT";
1284       case StructureType::eVideoEncodeH265ReferenceListsEXT: return "VideoEncodeH265ReferenceListsEXT";
1285       case StructureType::eVideoDecodeH264CapabilitiesEXT: return "VideoDecodeH264CapabilitiesEXT";
1286       case StructureType::eVideoDecodeH264SessionCreateInfoEXT: return "VideoDecodeH264SessionCreateInfoEXT";
1287       case StructureType::eVideoDecodeH264PictureInfoEXT: return "VideoDecodeH264PictureInfoEXT";
1288       case StructureType::eVideoDecodeH264MvcEXT: return "VideoDecodeH264MvcEXT";
1289       case StructureType::eVideoDecodeH264ProfileEXT: return "VideoDecodeH264ProfileEXT";
1290       case StructureType::eVideoDecodeH264SessionParametersCreateInfoEXT:
1291         return "VideoDecodeH264SessionParametersCreateInfoEXT";
1292       case StructureType::eVideoDecodeH264SessionParametersAddInfoEXT:
1293         return "VideoDecodeH264SessionParametersAddInfoEXT";
1294       case StructureType::eVideoDecodeH264DpbSlotInfoEXT: return "VideoDecodeH264DpbSlotInfoEXT";
1295 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1296       case StructureType::eTextureLodGatherFormatPropertiesAMD: return "TextureLodGatherFormatPropertiesAMD";
1297 #if defined( VK_USE_PLATFORM_GGP )
1298       case StructureType::eStreamDescriptorSurfaceCreateInfoGGP: return "StreamDescriptorSurfaceCreateInfoGGP";
1299 #endif /*VK_USE_PLATFORM_GGP*/
1300       case StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV:
1301         return "PhysicalDeviceCornerSampledImageFeaturesNV";
1302       case StructureType::eExternalMemoryImageCreateInfoNV: return "ExternalMemoryImageCreateInfoNV";
1303       case StructureType::eExportMemoryAllocateInfoNV: return "ExportMemoryAllocateInfoNV";
1304 #if defined( VK_USE_PLATFORM_WIN32_KHR )
1305       case StructureType::eImportMemoryWin32HandleInfoNV: return "ImportMemoryWin32HandleInfoNV";
1306       case StructureType::eExportMemoryWin32HandleInfoNV: return "ExportMemoryWin32HandleInfoNV";
1307       case StructureType::eWin32KeyedMutexAcquireReleaseInfoNV: return "Win32KeyedMutexAcquireReleaseInfoNV";
1308 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1309       case StructureType::eValidationFlagsEXT: return "ValidationFlagsEXT";
1310 #if defined( VK_USE_PLATFORM_VI_NN )
1311       case StructureType::eViSurfaceCreateInfoNN: return "ViSurfaceCreateInfoNN";
1312 #endif /*VK_USE_PLATFORM_VI_NN*/
1313       case StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT:
1314         return "PhysicalDeviceTextureCompressionAstcHdrFeaturesEXT";
1315       case StructureType::eImageViewAstcDecodeModeEXT: return "ImageViewAstcDecodeModeEXT";
1316       case StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT: return "PhysicalDeviceAstcDecodeFeaturesEXT";
1317 #if defined( VK_USE_PLATFORM_WIN32_KHR )
1318       case StructureType::eImportMemoryWin32HandleInfoKHR: return "ImportMemoryWin32HandleInfoKHR";
1319       case StructureType::eExportMemoryWin32HandleInfoKHR: return "ExportMemoryWin32HandleInfoKHR";
1320       case StructureType::eMemoryWin32HandlePropertiesKHR: return "MemoryWin32HandlePropertiesKHR";
1321       case StructureType::eMemoryGetWin32HandleInfoKHR: return "MemoryGetWin32HandleInfoKHR";
1322 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1323       case StructureType::eImportMemoryFdInfoKHR: return "ImportMemoryFdInfoKHR";
1324       case StructureType::eMemoryFdPropertiesKHR: return "MemoryFdPropertiesKHR";
1325       case StructureType::eMemoryGetFdInfoKHR: return "MemoryGetFdInfoKHR";
1326 #if defined( VK_USE_PLATFORM_WIN32_KHR )
1327       case StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR: return "Win32KeyedMutexAcquireReleaseInfoKHR";
1328       case StructureType::eImportSemaphoreWin32HandleInfoKHR: return "ImportSemaphoreWin32HandleInfoKHR";
1329       case StructureType::eExportSemaphoreWin32HandleInfoKHR: return "ExportSemaphoreWin32HandleInfoKHR";
1330       case StructureType::eD3D12FenceSubmitInfoKHR: return "D3D12FenceSubmitInfoKHR";
1331       case StructureType::eSemaphoreGetWin32HandleInfoKHR: return "SemaphoreGetWin32HandleInfoKHR";
1332 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1333       case StructureType::eImportSemaphoreFdInfoKHR: return "ImportSemaphoreFdInfoKHR";
1334       case StructureType::eSemaphoreGetFdInfoKHR: return "SemaphoreGetFdInfoKHR";
1335       case StructureType::ePhysicalDevicePushDescriptorPropertiesKHR:
1336         return "PhysicalDevicePushDescriptorPropertiesKHR";
1337       case StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT:
1338         return "CommandBufferInheritanceConditionalRenderingInfoEXT";
1339       case StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT:
1340         return "PhysicalDeviceConditionalRenderingFeaturesEXT";
1341       case StructureType::eConditionalRenderingBeginInfoEXT: return "ConditionalRenderingBeginInfoEXT";
1342       case StructureType::ePresentRegionsKHR: return "PresentRegionsKHR";
1343       case StructureType::ePipelineViewportWScalingStateCreateInfoNV:
1344         return "PipelineViewportWScalingStateCreateInfoNV";
1345       case StructureType::eSurfaceCapabilities2EXT: return "SurfaceCapabilities2EXT";
1346       case StructureType::eDisplayPowerInfoEXT: return "DisplayPowerInfoEXT";
1347       case StructureType::eDeviceEventInfoEXT: return "DeviceEventInfoEXT";
1348       case StructureType::eDisplayEventInfoEXT: return "DisplayEventInfoEXT";
1349       case StructureType::eSwapchainCounterCreateInfoEXT: return "SwapchainCounterCreateInfoEXT";
1350       case StructureType::ePresentTimesInfoGOOGLE: return "PresentTimesInfoGOOGLE";
1351       case StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX:
1352         return "PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX";
1353       case StructureType::ePipelineViewportSwizzleStateCreateInfoNV: return "PipelineViewportSwizzleStateCreateInfoNV";
1354       case StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT:
1355         return "PhysicalDeviceDiscardRectanglePropertiesEXT";
1356       case StructureType::ePipelineDiscardRectangleStateCreateInfoEXT:
1357         return "PipelineDiscardRectangleStateCreateInfoEXT";
1358       case StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT:
1359         return "PhysicalDeviceConservativeRasterizationPropertiesEXT";
1360       case StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT:
1361         return "PipelineRasterizationConservativeStateCreateInfoEXT";
1362       case StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT: return "PhysicalDeviceDepthClipEnableFeaturesEXT";
1363       case StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT:
1364         return "PipelineRasterizationDepthClipStateCreateInfoEXT";
1365       case StructureType::eHdrMetadataEXT: return "HdrMetadataEXT";
1366       case StructureType::eSharedPresentSurfaceCapabilitiesKHR: return "SharedPresentSurfaceCapabilitiesKHR";
1367 #if defined( VK_USE_PLATFORM_WIN32_KHR )
1368       case StructureType::eImportFenceWin32HandleInfoKHR: return "ImportFenceWin32HandleInfoKHR";
1369       case StructureType::eExportFenceWin32HandleInfoKHR: return "ExportFenceWin32HandleInfoKHR";
1370       case StructureType::eFenceGetWin32HandleInfoKHR: return "FenceGetWin32HandleInfoKHR";
1371 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1372       case StructureType::eImportFenceFdInfoKHR: return "ImportFenceFdInfoKHR";
1373       case StructureType::eFenceGetFdInfoKHR: return "FenceGetFdInfoKHR";
1374       case StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR:
1375         return "PhysicalDevicePerformanceQueryFeaturesKHR";
1376       case StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR:
1377         return "PhysicalDevicePerformanceQueryPropertiesKHR";
1378       case StructureType::eQueryPoolPerformanceCreateInfoKHR: return "QueryPoolPerformanceCreateInfoKHR";
1379       case StructureType::ePerformanceQuerySubmitInfoKHR: return "PerformanceQuerySubmitInfoKHR";
1380       case StructureType::eAcquireProfilingLockInfoKHR: return "AcquireProfilingLockInfoKHR";
1381       case StructureType::ePerformanceCounterKHR: return "PerformanceCounterKHR";
1382       case StructureType::ePerformanceCounterDescriptionKHR: return "PerformanceCounterDescriptionKHR";
1383       case StructureType::ePhysicalDeviceSurfaceInfo2KHR: return "PhysicalDeviceSurfaceInfo2KHR";
1384       case StructureType::eSurfaceCapabilities2KHR: return "SurfaceCapabilities2KHR";
1385       case StructureType::eSurfaceFormat2KHR: return "SurfaceFormat2KHR";
1386       case StructureType::eDisplayProperties2KHR: return "DisplayProperties2KHR";
1387       case StructureType::eDisplayPlaneProperties2KHR: return "DisplayPlaneProperties2KHR";
1388       case StructureType::eDisplayModeProperties2KHR: return "DisplayModeProperties2KHR";
1389       case StructureType::eDisplayPlaneInfo2KHR: return "DisplayPlaneInfo2KHR";
1390       case StructureType::eDisplayPlaneCapabilities2KHR: return "DisplayPlaneCapabilities2KHR";
1391 #if defined( VK_USE_PLATFORM_IOS_MVK )
1392       case StructureType::eIosSurfaceCreateInfoMVK: return "IosSurfaceCreateInfoMVK";
1393 #endif /*VK_USE_PLATFORM_IOS_MVK*/
1394 #if defined( VK_USE_PLATFORM_MACOS_MVK )
1395       case StructureType::eMacosSurfaceCreateInfoMVK: return "MacosSurfaceCreateInfoMVK";
1396 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
1397       case StructureType::eDebugUtilsObjectNameInfoEXT: return "DebugUtilsObjectNameInfoEXT";
1398       case StructureType::eDebugUtilsObjectTagInfoEXT: return "DebugUtilsObjectTagInfoEXT";
1399       case StructureType::eDebugUtilsLabelEXT: return "DebugUtilsLabelEXT";
1400       case StructureType::eDebugUtilsMessengerCallbackDataEXT: return "DebugUtilsMessengerCallbackDataEXT";
1401       case StructureType::eDebugUtilsMessengerCreateInfoEXT: return "DebugUtilsMessengerCreateInfoEXT";
1402 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
1403       case StructureType::eAndroidHardwareBufferUsageANDROID: return "AndroidHardwareBufferUsageANDROID";
1404       case StructureType::eAndroidHardwareBufferPropertiesANDROID: return "AndroidHardwareBufferPropertiesANDROID";
1405       case StructureType::eAndroidHardwareBufferFormatPropertiesANDROID:
1406         return "AndroidHardwareBufferFormatPropertiesANDROID";
1407       case StructureType::eImportAndroidHardwareBufferInfoANDROID: return "ImportAndroidHardwareBufferInfoANDROID";
1408       case StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID:
1409         return "MemoryGetAndroidHardwareBufferInfoANDROID";
1410       case StructureType::eExternalFormatANDROID: return "ExternalFormatANDROID";
1411       case StructureType::eAndroidHardwareBufferFormatProperties2ANDROID:
1412         return "AndroidHardwareBufferFormatProperties2ANDROID";
1413 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
1414       case StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT:
1415         return "PhysicalDeviceInlineUniformBlockFeaturesEXT";
1416       case StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT:
1417         return "PhysicalDeviceInlineUniformBlockPropertiesEXT";
1418       case StructureType::eWriteDescriptorSetInlineUniformBlockEXT: return "WriteDescriptorSetInlineUniformBlockEXT";
1419       case StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT:
1420         return "DescriptorPoolInlineUniformBlockCreateInfoEXT";
1421       case StructureType::eSampleLocationsInfoEXT: return "SampleLocationsInfoEXT";
1422       case StructureType::eRenderPassSampleLocationsBeginInfoEXT: return "RenderPassSampleLocationsBeginInfoEXT";
1423       case StructureType::ePipelineSampleLocationsStateCreateInfoEXT:
1424         return "PipelineSampleLocationsStateCreateInfoEXT";
1425       case StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT:
1426         return "PhysicalDeviceSampleLocationsPropertiesEXT";
1427       case StructureType::eMultisamplePropertiesEXT: return "MultisamplePropertiesEXT";
1428       case StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT:
1429         return "PhysicalDeviceBlendOperationAdvancedFeaturesEXT";
1430       case StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT:
1431         return "PhysicalDeviceBlendOperationAdvancedPropertiesEXT";
1432       case StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT:
1433         return "PipelineColorBlendAdvancedStateCreateInfoEXT";
1434       case StructureType::ePipelineCoverageToColorStateCreateInfoNV: return "PipelineCoverageToColorStateCreateInfoNV";
1435       case StructureType::eWriteDescriptorSetAccelerationStructureKHR:
1436         return "WriteDescriptorSetAccelerationStructureKHR";
1437       case StructureType::eAccelerationStructureBuildGeometryInfoKHR:
1438         return "AccelerationStructureBuildGeometryInfoKHR";
1439       case StructureType::eAccelerationStructureDeviceAddressInfoKHR:
1440         return "AccelerationStructureDeviceAddressInfoKHR";
1441       case StructureType::eAccelerationStructureGeometryAabbsDataKHR:
1442         return "AccelerationStructureGeometryAabbsDataKHR";
1443       case StructureType::eAccelerationStructureGeometryInstancesDataKHR:
1444         return "AccelerationStructureGeometryInstancesDataKHR";
1445       case StructureType::eAccelerationStructureGeometryTrianglesDataKHR:
1446         return "AccelerationStructureGeometryTrianglesDataKHR";
1447       case StructureType::eAccelerationStructureGeometryKHR: return "AccelerationStructureGeometryKHR";
1448       case StructureType::eAccelerationStructureVersionInfoKHR: return "AccelerationStructureVersionInfoKHR";
1449       case StructureType::eCopyAccelerationStructureInfoKHR: return "CopyAccelerationStructureInfoKHR";
1450       case StructureType::eCopyAccelerationStructureToMemoryInfoKHR: return "CopyAccelerationStructureToMemoryInfoKHR";
1451       case StructureType::eCopyMemoryToAccelerationStructureInfoKHR: return "CopyMemoryToAccelerationStructureInfoKHR";
1452       case StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR:
1453         return "PhysicalDeviceAccelerationStructureFeaturesKHR";
1454       case StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR:
1455         return "PhysicalDeviceAccelerationStructurePropertiesKHR";
1456       case StructureType::eAccelerationStructureCreateInfoKHR: return "AccelerationStructureCreateInfoKHR";
1457       case StructureType::eAccelerationStructureBuildSizesInfoKHR: return "AccelerationStructureBuildSizesInfoKHR";
1458       case StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR:
1459         return "PhysicalDeviceRayTracingPipelineFeaturesKHR";
1460       case StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR:
1461         return "PhysicalDeviceRayTracingPipelinePropertiesKHR";
1462       case StructureType::eRayTracingPipelineCreateInfoKHR: return "RayTracingPipelineCreateInfoKHR";
1463       case StructureType::eRayTracingShaderGroupCreateInfoKHR: return "RayTracingShaderGroupCreateInfoKHR";
1464       case StructureType::eRayTracingPipelineInterfaceCreateInfoKHR: return "RayTracingPipelineInterfaceCreateInfoKHR";
1465       case StructureType::ePhysicalDeviceRayQueryFeaturesKHR: return "PhysicalDeviceRayQueryFeaturesKHR";
1466       case StructureType::ePipelineCoverageModulationStateCreateInfoNV:
1467         return "PipelineCoverageModulationStateCreateInfoNV";
1468       case StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV: return "PhysicalDeviceShaderSmBuiltinsFeaturesNV";
1469       case StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV:
1470         return "PhysicalDeviceShaderSmBuiltinsPropertiesNV";
1471       case StructureType::eDrmFormatModifierPropertiesListEXT: return "DrmFormatModifierPropertiesListEXT";
1472       case StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT:
1473         return "PhysicalDeviceImageDrmFormatModifierInfoEXT";
1474       case StructureType::eImageDrmFormatModifierListCreateInfoEXT: return "ImageDrmFormatModifierListCreateInfoEXT";
1475       case StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT:
1476         return "ImageDrmFormatModifierExplicitCreateInfoEXT";
1477       case StructureType::eImageDrmFormatModifierPropertiesEXT: return "ImageDrmFormatModifierPropertiesEXT";
1478       case StructureType::eDrmFormatModifierPropertiesList2EXT: return "DrmFormatModifierPropertiesList2EXT";
1479       case StructureType::eValidationCacheCreateInfoEXT: return "ValidationCacheCreateInfoEXT";
1480       case StructureType::eShaderModuleValidationCacheCreateInfoEXT: return "ShaderModuleValidationCacheCreateInfoEXT";
1481 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1482       case StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR:
1483         return "PhysicalDevicePortabilitySubsetFeaturesKHR";
1484       case StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR:
1485         return "PhysicalDevicePortabilitySubsetPropertiesKHR";
1486 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1487       case StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV:
1488         return "PipelineViewportShadingRateImageStateCreateInfoNV";
1489       case StructureType::ePhysicalDeviceShadingRateImageFeaturesNV: return "PhysicalDeviceShadingRateImageFeaturesNV";
1490       case StructureType::ePhysicalDeviceShadingRateImagePropertiesNV:
1491         return "PhysicalDeviceShadingRateImagePropertiesNV";
1492       case StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV:
1493         return "PipelineViewportCoarseSampleOrderStateCreateInfoNV";
1494       case StructureType::eRayTracingPipelineCreateInfoNV: return "RayTracingPipelineCreateInfoNV";
1495       case StructureType::eAccelerationStructureCreateInfoNV: return "AccelerationStructureCreateInfoNV";
1496       case StructureType::eGeometryNV: return "GeometryNV";
1497       case StructureType::eGeometryTrianglesNV: return "GeometryTrianglesNV";
1498       case StructureType::eGeometryAabbNV: return "GeometryAabbNV";
1499       case StructureType::eBindAccelerationStructureMemoryInfoNV: return "BindAccelerationStructureMemoryInfoNV";
1500       case StructureType::eWriteDescriptorSetAccelerationStructureNV:
1501         return "WriteDescriptorSetAccelerationStructureNV";
1502       case StructureType::eAccelerationStructureMemoryRequirementsInfoNV:
1503         return "AccelerationStructureMemoryRequirementsInfoNV";
1504       case StructureType::ePhysicalDeviceRayTracingPropertiesNV: return "PhysicalDeviceRayTracingPropertiesNV";
1505       case StructureType::eRayTracingShaderGroupCreateInfoNV: return "RayTracingShaderGroupCreateInfoNV";
1506       case StructureType::eAccelerationStructureInfoNV: return "AccelerationStructureInfoNV";
1507       case StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV:
1508         return "PhysicalDeviceRepresentativeFragmentTestFeaturesNV";
1509       case StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV:
1510         return "PipelineRepresentativeFragmentTestStateCreateInfoNV";
1511       case StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT:
1512         return "PhysicalDeviceImageViewImageFormatInfoEXT";
1513       case StructureType::eFilterCubicImageViewImageFormatPropertiesEXT:
1514         return "FilterCubicImageViewImageFormatPropertiesEXT";
1515       case StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT: return "DeviceQueueGlobalPriorityCreateInfoEXT";
1516       case StructureType::eImportMemoryHostPointerInfoEXT: return "ImportMemoryHostPointerInfoEXT";
1517       case StructureType::eMemoryHostPointerPropertiesEXT: return "MemoryHostPointerPropertiesEXT";
1518       case StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT:
1519         return "PhysicalDeviceExternalMemoryHostPropertiesEXT";
1520       case StructureType::ePhysicalDeviceShaderClockFeaturesKHR: return "PhysicalDeviceShaderClockFeaturesKHR";
1521       case StructureType::ePipelineCompilerControlCreateInfoAMD: return "PipelineCompilerControlCreateInfoAMD";
1522       case StructureType::eCalibratedTimestampInfoEXT: return "CalibratedTimestampInfoEXT";
1523       case StructureType::ePhysicalDeviceShaderCorePropertiesAMD: return "PhysicalDeviceShaderCorePropertiesAMD";
1524 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1525       case StructureType::eVideoDecodeH265CapabilitiesEXT: return "VideoDecodeH265CapabilitiesEXT";
1526       case StructureType::eVideoDecodeH265SessionCreateInfoEXT: return "VideoDecodeH265SessionCreateInfoEXT";
1527       case StructureType::eVideoDecodeH265SessionParametersCreateInfoEXT:
1528         return "VideoDecodeH265SessionParametersCreateInfoEXT";
1529       case StructureType::eVideoDecodeH265SessionParametersAddInfoEXT:
1530         return "VideoDecodeH265SessionParametersAddInfoEXT";
1531       case StructureType::eVideoDecodeH265ProfileEXT: return "VideoDecodeH265ProfileEXT";
1532       case StructureType::eVideoDecodeH265PictureInfoEXT: return "VideoDecodeH265PictureInfoEXT";
1533       case StructureType::eVideoDecodeH265DpbSlotInfoEXT: return "VideoDecodeH265DpbSlotInfoEXT";
1534 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1535       case StructureType::eDeviceMemoryOverallocationCreateInfoAMD: return "DeviceMemoryOverallocationCreateInfoAMD";
1536       case StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT:
1537         return "PhysicalDeviceVertexAttributeDivisorPropertiesEXT";
1538       case StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT:
1539         return "PipelineVertexInputDivisorStateCreateInfoEXT";
1540       case StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT:
1541         return "PhysicalDeviceVertexAttributeDivisorFeaturesEXT";
1542 #if defined( VK_USE_PLATFORM_GGP )
1543       case StructureType::ePresentFrameTokenGGP: return "PresentFrameTokenGGP";
1544 #endif /*VK_USE_PLATFORM_GGP*/
1545       case StructureType::ePipelineCreationFeedbackCreateInfoEXT: return "PipelineCreationFeedbackCreateInfoEXT";
1546       case StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV:
1547         return "PhysicalDeviceComputeShaderDerivativesFeaturesNV";
1548       case StructureType::ePhysicalDeviceMeshShaderFeaturesNV: return "PhysicalDeviceMeshShaderFeaturesNV";
1549       case StructureType::ePhysicalDeviceMeshShaderPropertiesNV: return "PhysicalDeviceMeshShaderPropertiesNV";
1550       case StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV:
1551         return "PhysicalDeviceFragmentShaderBarycentricFeaturesNV";
1552       case StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV:
1553         return "PhysicalDeviceShaderImageFootprintFeaturesNV";
1554       case StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV:
1555         return "PipelineViewportExclusiveScissorStateCreateInfoNV";
1556       case StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV: return "PhysicalDeviceExclusiveScissorFeaturesNV";
1557       case StructureType::eCheckpointDataNV: return "CheckpointDataNV";
1558       case StructureType::eQueueFamilyCheckpointPropertiesNV: return "QueueFamilyCheckpointPropertiesNV";
1559       case StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL:
1560         return "PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL";
1561       case StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL: return "QueryPoolPerformanceQueryCreateInfoINTEL";
1562       case StructureType::eInitializePerformanceApiInfoINTEL: return "InitializePerformanceApiInfoINTEL";
1563       case StructureType::ePerformanceMarkerInfoINTEL: return "PerformanceMarkerInfoINTEL";
1564       case StructureType::ePerformanceStreamMarkerInfoINTEL: return "PerformanceStreamMarkerInfoINTEL";
1565       case StructureType::ePerformanceOverrideInfoINTEL: return "PerformanceOverrideInfoINTEL";
1566       case StructureType::ePerformanceConfigurationAcquireInfoINTEL: return "PerformanceConfigurationAcquireInfoINTEL";
1567       case StructureType::ePhysicalDevicePciBusInfoPropertiesEXT: return "PhysicalDevicePciBusInfoPropertiesEXT";
1568       case StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD: return "DisplayNativeHdrSurfaceCapabilitiesAMD";
1569       case StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD: return "SwapchainDisplayNativeHdrCreateInfoAMD";
1570 #if defined( VK_USE_PLATFORM_FUCHSIA )
1571       case StructureType::eImagepipeSurfaceCreateInfoFUCHSIA: return "ImagepipeSurfaceCreateInfoFUCHSIA";
1572 #endif /*VK_USE_PLATFORM_FUCHSIA*/
1573       case StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR:
1574         return "PhysicalDeviceShaderTerminateInvocationFeaturesKHR";
1575 #if defined( VK_USE_PLATFORM_METAL_EXT )
1576       case StructureType::eMetalSurfaceCreateInfoEXT: return "MetalSurfaceCreateInfoEXT";
1577 #endif /*VK_USE_PLATFORM_METAL_EXT*/
1578       case StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT:
1579         return "PhysicalDeviceFragmentDensityMapFeaturesEXT";
1580       case StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT:
1581         return "PhysicalDeviceFragmentDensityMapPropertiesEXT";
1582       case StructureType::eRenderPassFragmentDensityMapCreateInfoEXT:
1583         return "RenderPassFragmentDensityMapCreateInfoEXT";
1584       case StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT:
1585         return "PhysicalDeviceSubgroupSizeControlPropertiesEXT";
1586       case StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT:
1587         return "PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT";
1588       case StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT:
1589         return "PhysicalDeviceSubgroupSizeControlFeaturesEXT";
1590       case StructureType::eFragmentShadingRateAttachmentInfoKHR: return "FragmentShadingRateAttachmentInfoKHR";
1591       case StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR:
1592         return "PipelineFragmentShadingRateStateCreateInfoKHR";
1593       case StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR:
1594         return "PhysicalDeviceFragmentShadingRatePropertiesKHR";
1595       case StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR:
1596         return "PhysicalDeviceFragmentShadingRateFeaturesKHR";
1597       case StructureType::ePhysicalDeviceFragmentShadingRateKHR: return "PhysicalDeviceFragmentShadingRateKHR";
1598       case StructureType::ePhysicalDeviceShaderCoreProperties2AMD: return "PhysicalDeviceShaderCoreProperties2AMD";
1599       case StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD: return "PhysicalDeviceCoherentMemoryFeaturesAMD";
1600       case StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT:
1601         return "PhysicalDeviceShaderImageAtomicInt64FeaturesEXT";
1602       case StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT: return "PhysicalDeviceMemoryBudgetPropertiesEXT";
1603       case StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT: return "PhysicalDeviceMemoryPriorityFeaturesEXT";
1604       case StructureType::eMemoryPriorityAllocateInfoEXT: return "MemoryPriorityAllocateInfoEXT";
1605       case StructureType::eSurfaceProtectedCapabilitiesKHR: return "SurfaceProtectedCapabilitiesKHR";
1606       case StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV:
1607         return "PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV";
1608       case StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT:
1609         return "PhysicalDeviceBufferDeviceAddressFeaturesEXT";
1610       case StructureType::eBufferDeviceAddressCreateInfoEXT: return "BufferDeviceAddressCreateInfoEXT";
1611       case StructureType::ePhysicalDeviceToolPropertiesEXT: return "PhysicalDeviceToolPropertiesEXT";
1612       case StructureType::eValidationFeaturesEXT: return "ValidationFeaturesEXT";
1613       case StructureType::ePhysicalDevicePresentWaitFeaturesKHR: return "PhysicalDevicePresentWaitFeaturesKHR";
1614       case StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV:
1615         return "PhysicalDeviceCooperativeMatrixFeaturesNV";
1616       case StructureType::eCooperativeMatrixPropertiesNV: return "CooperativeMatrixPropertiesNV";
1617       case StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV:
1618         return "PhysicalDeviceCooperativeMatrixPropertiesNV";
1619       case StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV:
1620         return "PhysicalDeviceCoverageReductionModeFeaturesNV";
1621       case StructureType::ePipelineCoverageReductionStateCreateInfoNV:
1622         return "PipelineCoverageReductionStateCreateInfoNV";
1623       case StructureType::eFramebufferMixedSamplesCombinationNV: return "FramebufferMixedSamplesCombinationNV";
1624       case StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT:
1625         return "PhysicalDeviceFragmentShaderInterlockFeaturesEXT";
1626       case StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT:
1627         return "PhysicalDeviceYcbcrImageArraysFeaturesEXT";
1628       case StructureType::ePhysicalDeviceProvokingVertexFeaturesEXT: return "PhysicalDeviceProvokingVertexFeaturesEXT";
1629       case StructureType::ePipelineRasterizationProvokingVertexStateCreateInfoEXT:
1630         return "PipelineRasterizationProvokingVertexStateCreateInfoEXT";
1631       case StructureType::ePhysicalDeviceProvokingVertexPropertiesEXT:
1632         return "PhysicalDeviceProvokingVertexPropertiesEXT";
1633 #if defined( VK_USE_PLATFORM_WIN32_KHR )
1634       case StructureType::eSurfaceFullScreenExclusiveInfoEXT: return "SurfaceFullScreenExclusiveInfoEXT";
1635       case StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT:
1636         return "SurfaceCapabilitiesFullScreenExclusiveEXT";
1637       case StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT: return "SurfaceFullScreenExclusiveWin32InfoEXT";
1638 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1639       case StructureType::eHeadlessSurfaceCreateInfoEXT: return "HeadlessSurfaceCreateInfoEXT";
1640       case StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT:
1641         return "PhysicalDeviceLineRasterizationFeaturesEXT";
1642       case StructureType::ePipelineRasterizationLineStateCreateInfoEXT:
1643         return "PipelineRasterizationLineStateCreateInfoEXT";
1644       case StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT:
1645         return "PhysicalDeviceLineRasterizationPropertiesEXT";
1646       case StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT:
1647         return "PhysicalDeviceShaderAtomicFloatFeaturesEXT";
1648       case StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT: return "PhysicalDeviceIndexTypeUint8FeaturesEXT";
1649       case StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT:
1650         return "PhysicalDeviceExtendedDynamicStateFeaturesEXT";
1651       case StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR:
1652         return "PhysicalDevicePipelineExecutablePropertiesFeaturesKHR";
1653       case StructureType::ePipelineInfoKHR: return "PipelineInfoKHR";
1654       case StructureType::ePipelineExecutablePropertiesKHR: return "PipelineExecutablePropertiesKHR";
1655       case StructureType::ePipelineExecutableInfoKHR: return "PipelineExecutableInfoKHR";
1656       case StructureType::ePipelineExecutableStatisticKHR: return "PipelineExecutableStatisticKHR";
1657       case StructureType::ePipelineExecutableInternalRepresentationKHR:
1658         return "PipelineExecutableInternalRepresentationKHR";
1659       case StructureType::ePhysicalDeviceShaderAtomicFloat2FeaturesEXT:
1660         return "PhysicalDeviceShaderAtomicFloat2FeaturesEXT";
1661       case StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT:
1662         return "PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT";
1663       case StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV:
1664         return "PhysicalDeviceDeviceGeneratedCommandsPropertiesNV";
1665       case StructureType::eGraphicsShaderGroupCreateInfoNV: return "GraphicsShaderGroupCreateInfoNV";
1666       case StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV: return "GraphicsPipelineShaderGroupsCreateInfoNV";
1667       case StructureType::eIndirectCommandsLayoutTokenNV: return "IndirectCommandsLayoutTokenNV";
1668       case StructureType::eIndirectCommandsLayoutCreateInfoNV: return "IndirectCommandsLayoutCreateInfoNV";
1669       case StructureType::eGeneratedCommandsInfoNV: return "GeneratedCommandsInfoNV";
1670       case StructureType::eGeneratedCommandsMemoryRequirementsInfoNV:
1671         return "GeneratedCommandsMemoryRequirementsInfoNV";
1672       case StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV:
1673         return "PhysicalDeviceDeviceGeneratedCommandsFeaturesNV";
1674       case StructureType::ePhysicalDeviceInheritedViewportScissorFeaturesNV:
1675         return "PhysicalDeviceInheritedViewportScissorFeaturesNV";
1676       case StructureType::eCommandBufferInheritanceViewportScissorInfoNV:
1677         return "CommandBufferInheritanceViewportScissorInfoNV";
1678       case StructureType::ePhysicalDeviceShaderIntegerDotProductFeaturesKHR:
1679         return "PhysicalDeviceShaderIntegerDotProductFeaturesKHR";
1680       case StructureType::ePhysicalDeviceShaderIntegerDotProductPropertiesKHR:
1681         return "PhysicalDeviceShaderIntegerDotProductPropertiesKHR";
1682       case StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT:
1683         return "PhysicalDeviceTexelBufferAlignmentFeaturesEXT";
1684       case StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT:
1685         return "PhysicalDeviceTexelBufferAlignmentPropertiesEXT";
1686       case StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM:
1687         return "CommandBufferInheritanceRenderPassTransformInfoQCOM";
1688       case StructureType::eRenderPassTransformBeginInfoQCOM: return "RenderPassTransformBeginInfoQCOM";
1689       case StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT:
1690         return "PhysicalDeviceDeviceMemoryReportFeaturesEXT";
1691       case StructureType::eDeviceDeviceMemoryReportCreateInfoEXT: return "DeviceDeviceMemoryReportCreateInfoEXT";
1692       case StructureType::eDeviceMemoryReportCallbackDataEXT: return "DeviceMemoryReportCallbackDataEXT";
1693       case StructureType::ePhysicalDeviceRobustness2FeaturesEXT: return "PhysicalDeviceRobustness2FeaturesEXT";
1694       case StructureType::ePhysicalDeviceRobustness2PropertiesEXT: return "PhysicalDeviceRobustness2PropertiesEXT";
1695       case StructureType::eSamplerCustomBorderColorCreateInfoEXT: return "SamplerCustomBorderColorCreateInfoEXT";
1696       case StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT:
1697         return "PhysicalDeviceCustomBorderColorPropertiesEXT";
1698       case StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT:
1699         return "PhysicalDeviceCustomBorderColorFeaturesEXT";
1700       case StructureType::ePipelineLibraryCreateInfoKHR: return "PipelineLibraryCreateInfoKHR";
1701       case StructureType::ePresentIdKHR: return "PresentIdKHR";
1702       case StructureType::ePhysicalDevicePresentIdFeaturesKHR: return "PhysicalDevicePresentIdFeaturesKHR";
1703       case StructureType::ePhysicalDevicePrivateDataFeaturesEXT: return "PhysicalDevicePrivateDataFeaturesEXT";
1704       case StructureType::eDevicePrivateDataCreateInfoEXT: return "DevicePrivateDataCreateInfoEXT";
1705       case StructureType::ePrivateDataSlotCreateInfoEXT: return "PrivateDataSlotCreateInfoEXT";
1706       case StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT:
1707         return "PhysicalDevicePipelineCreationCacheControlFeaturesEXT";
1708 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1709       case StructureType::eVideoEncodeInfoKHR: return "VideoEncodeInfoKHR";
1710       case StructureType::eVideoEncodeRateControlInfoKHR: return "VideoEncodeRateControlInfoKHR";
1711 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1712       case StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV:
1713         return "PhysicalDeviceDiagnosticsConfigFeaturesNV";
1714       case StructureType::eDeviceDiagnosticsConfigCreateInfoNV: return "DeviceDiagnosticsConfigCreateInfoNV";
1715       case StructureType::eMemoryBarrier2KHR: return "MemoryBarrier2KHR";
1716       case StructureType::eBufferMemoryBarrier2KHR: return "BufferMemoryBarrier2KHR";
1717       case StructureType::eImageMemoryBarrier2KHR: return "ImageMemoryBarrier2KHR";
1718       case StructureType::eDependencyInfoKHR: return "DependencyInfoKHR";
1719       case StructureType::eSubmitInfo2KHR: return "SubmitInfo2KHR";
1720       case StructureType::eSemaphoreSubmitInfoKHR: return "SemaphoreSubmitInfoKHR";
1721       case StructureType::eCommandBufferSubmitInfoKHR: return "CommandBufferSubmitInfoKHR";
1722       case StructureType::ePhysicalDeviceSynchronization2FeaturesKHR:
1723         return "PhysicalDeviceSynchronization2FeaturesKHR";
1724       case StructureType::eQueueFamilyCheckpointProperties2NV: return "QueueFamilyCheckpointProperties2NV";
1725       case StructureType::eCheckpointData2NV: return "CheckpointData2NV";
1726       case StructureType::ePhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR:
1727         return "PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR";
1728       case StructureType::ePhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR:
1729         return "PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR";
1730       case StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV:
1731         return "PhysicalDeviceFragmentShadingRateEnumsPropertiesNV";
1732       case StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV:
1733         return "PhysicalDeviceFragmentShadingRateEnumsFeaturesNV";
1734       case StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV:
1735         return "PipelineFragmentShadingRateEnumStateCreateInfoNV";
1736       case StructureType::eAccelerationStructureGeometryMotionTrianglesDataNV:
1737         return "AccelerationStructureGeometryMotionTrianglesDataNV";
1738       case StructureType::ePhysicalDeviceRayTracingMotionBlurFeaturesNV:
1739         return "PhysicalDeviceRayTracingMotionBlurFeaturesNV";
1740       case StructureType::eAccelerationStructureMotionInfoNV: return "AccelerationStructureMotionInfoNV";
1741       case StructureType::ePhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT:
1742         return "PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT";
1743       case StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT:
1744         return "PhysicalDeviceFragmentDensityMap2FeaturesEXT";
1745       case StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT:
1746         return "PhysicalDeviceFragmentDensityMap2PropertiesEXT";
1747       case StructureType::eCopyCommandTransformInfoQCOM: return "CopyCommandTransformInfoQCOM";
1748       case StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT: return "PhysicalDeviceImageRobustnessFeaturesEXT";
1749       case StructureType::ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR:
1750         return "PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR";
1751       case StructureType::eCopyBufferInfo2KHR: return "CopyBufferInfo2KHR";
1752       case StructureType::eCopyImageInfo2KHR: return "CopyImageInfo2KHR";
1753       case StructureType::eCopyBufferToImageInfo2KHR: return "CopyBufferToImageInfo2KHR";
1754       case StructureType::eCopyImageToBufferInfo2KHR: return "CopyImageToBufferInfo2KHR";
1755       case StructureType::eBlitImageInfo2KHR: return "BlitImageInfo2KHR";
1756       case StructureType::eResolveImageInfo2KHR: return "ResolveImageInfo2KHR";
1757       case StructureType::eBufferCopy2KHR: return "BufferCopy2KHR";
1758       case StructureType::eImageCopy2KHR: return "ImageCopy2KHR";
1759       case StructureType::eImageBlit2KHR: return "ImageBlit2KHR";
1760       case StructureType::eBufferImageCopy2KHR: return "BufferImageCopy2KHR";
1761       case StructureType::eImageResolve2KHR: return "ImageResolve2KHR";
1762       case StructureType::ePhysicalDevice4444FormatsFeaturesEXT: return "PhysicalDevice4444FormatsFeaturesEXT";
1763       case StructureType::ePhysicalDeviceRgba10X6FormatsFeaturesEXT: return "PhysicalDeviceRgba10X6FormatsFeaturesEXT";
1764 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
1765       case StructureType::eDirectfbSurfaceCreateInfoEXT: return "DirectfbSurfaceCreateInfoEXT";
1766 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
1767       case StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE:
1768         return "PhysicalDeviceMutableDescriptorTypeFeaturesVALVE";
1769       case StructureType::eMutableDescriptorTypeCreateInfoVALVE: return "MutableDescriptorTypeCreateInfoVALVE";
1770       case StructureType::ePhysicalDeviceVertexInputDynamicStateFeaturesEXT:
1771         return "PhysicalDeviceVertexInputDynamicStateFeaturesEXT";
1772       case StructureType::eVertexInputBindingDescription2EXT: return "VertexInputBindingDescription2EXT";
1773       case StructureType::eVertexInputAttributeDescription2EXT: return "VertexInputAttributeDescription2EXT";
1774       case StructureType::ePhysicalDeviceDrmPropertiesEXT: return "PhysicalDeviceDrmPropertiesEXT";
1775       case StructureType::ePhysicalDevicePrimitiveTopologyListRestartFeaturesEXT:
1776         return "PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT";
1777       case StructureType::eFormatProperties3KHR: return "FormatProperties3KHR";
1778 #if defined( VK_USE_PLATFORM_FUCHSIA )
1779       case StructureType::eImportMemoryZirconHandleInfoFUCHSIA: return "ImportMemoryZirconHandleInfoFUCHSIA";
1780       case StructureType::eMemoryZirconHandlePropertiesFUCHSIA: return "MemoryZirconHandlePropertiesFUCHSIA";
1781       case StructureType::eMemoryGetZirconHandleInfoFUCHSIA: return "MemoryGetZirconHandleInfoFUCHSIA";
1782       case StructureType::eImportSemaphoreZirconHandleInfoFUCHSIA: return "ImportSemaphoreZirconHandleInfoFUCHSIA";
1783       case StructureType::eSemaphoreGetZirconHandleInfoFUCHSIA: return "SemaphoreGetZirconHandleInfoFUCHSIA";
1784       case StructureType::eBufferCollectionCreateInfoFUCHSIA: return "BufferCollectionCreateInfoFUCHSIA";
1785       case StructureType::eImportMemoryBufferCollectionFUCHSIA: return "ImportMemoryBufferCollectionFUCHSIA";
1786       case StructureType::eBufferCollectionImageCreateInfoFUCHSIA: return "BufferCollectionImageCreateInfoFUCHSIA";
1787       case StructureType::eBufferCollectionPropertiesFUCHSIA: return "BufferCollectionPropertiesFUCHSIA";
1788       case StructureType::eBufferConstraintsInfoFUCHSIA: return "BufferConstraintsInfoFUCHSIA";
1789       case StructureType::eBufferCollectionBufferCreateInfoFUCHSIA: return "BufferCollectionBufferCreateInfoFUCHSIA";
1790       case StructureType::eImageConstraintsInfoFUCHSIA: return "ImageConstraintsInfoFUCHSIA";
1791       case StructureType::eImageFormatConstraintsInfoFUCHSIA: return "ImageFormatConstraintsInfoFUCHSIA";
1792       case StructureType::eSysmemColorSpaceFUCHSIA: return "SysmemColorSpaceFUCHSIA";
1793       case StructureType::eBufferCollectionConstraintsInfoFUCHSIA: return "BufferCollectionConstraintsInfoFUCHSIA";
1794 #endif /*VK_USE_PLATFORM_FUCHSIA*/
1795       case StructureType::eSubpassShadingPipelineCreateInfoHUAWEI: return "SubpassShadingPipelineCreateInfoHUAWEI";
1796       case StructureType::ePhysicalDeviceSubpassShadingFeaturesHUAWEI:
1797         return "PhysicalDeviceSubpassShadingFeaturesHUAWEI";
1798       case StructureType::ePhysicalDeviceSubpassShadingPropertiesHUAWEI:
1799         return "PhysicalDeviceSubpassShadingPropertiesHUAWEI";
1800       case StructureType::ePhysicalDeviceInvocationMaskFeaturesHUAWEI:
1801         return "PhysicalDeviceInvocationMaskFeaturesHUAWEI";
1802       case StructureType::eMemoryGetRemoteAddressInfoNV: return "MemoryGetRemoteAddressInfoNV";
1803       case StructureType::ePhysicalDeviceExternalMemoryRdmaFeaturesNV:
1804         return "PhysicalDeviceExternalMemoryRdmaFeaturesNV";
1805       case StructureType::ePhysicalDeviceExtendedDynamicState2FeaturesEXT:
1806         return "PhysicalDeviceExtendedDynamicState2FeaturesEXT";
1807 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
1808       case StructureType::eScreenSurfaceCreateInfoQNX: return "ScreenSurfaceCreateInfoQNX";
1809 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
1810       case StructureType::ePhysicalDeviceColorWriteEnableFeaturesEXT:
1811         return "PhysicalDeviceColorWriteEnableFeaturesEXT";
1812       case StructureType::ePipelineColorWriteCreateInfoEXT: return "PipelineColorWriteCreateInfoEXT";
1813       case StructureType::ePhysicalDeviceGlobalPriorityQueryFeaturesEXT:
1814         return "PhysicalDeviceGlobalPriorityQueryFeaturesEXT";
1815       case StructureType::eQueueFamilyGlobalPriorityPropertiesEXT: return "QueueFamilyGlobalPriorityPropertiesEXT";
1816       case StructureType::ePhysicalDeviceMultiDrawFeaturesEXT: return "PhysicalDeviceMultiDrawFeaturesEXT";
1817       case StructureType::ePhysicalDeviceMultiDrawPropertiesEXT: return "PhysicalDeviceMultiDrawPropertiesEXT";
1818       case StructureType::ePhysicalDeviceBorderColorSwizzleFeaturesEXT:
1819         return "PhysicalDeviceBorderColorSwizzleFeaturesEXT";
1820       case StructureType::eSamplerBorderColorComponentMappingCreateInfoEXT:
1821         return "SamplerBorderColorComponentMappingCreateInfoEXT";
1822       case StructureType::ePhysicalDevicePageableDeviceLocalMemoryFeaturesEXT:
1823         return "PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT";
1824       case StructureType::ePhysicalDeviceMaintenance4FeaturesKHR: return "PhysicalDeviceMaintenance4FeaturesKHR";
1825       case StructureType::ePhysicalDeviceMaintenance4PropertiesKHR: return "PhysicalDeviceMaintenance4PropertiesKHR";
1826       case StructureType::eDeviceBufferMemoryRequirementsKHR: return "DeviceBufferMemoryRequirementsKHR";
1827       case StructureType::eDeviceImageMemoryRequirementsKHR: return "DeviceImageMemoryRequirementsKHR";
1828       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
1829     }
1830   }
1831 
1832   enum class ObjectType
1833   {
1834     eUnknown                  = VK_OBJECT_TYPE_UNKNOWN,
1835     eInstance                 = VK_OBJECT_TYPE_INSTANCE,
1836     ePhysicalDevice           = VK_OBJECT_TYPE_PHYSICAL_DEVICE,
1837     eDevice                   = VK_OBJECT_TYPE_DEVICE,
1838     eQueue                    = VK_OBJECT_TYPE_QUEUE,
1839     eSemaphore                = VK_OBJECT_TYPE_SEMAPHORE,
1840     eCommandBuffer            = VK_OBJECT_TYPE_COMMAND_BUFFER,
1841     eFence                    = VK_OBJECT_TYPE_FENCE,
1842     eDeviceMemory             = VK_OBJECT_TYPE_DEVICE_MEMORY,
1843     eBuffer                   = VK_OBJECT_TYPE_BUFFER,
1844     eImage                    = VK_OBJECT_TYPE_IMAGE,
1845     eEvent                    = VK_OBJECT_TYPE_EVENT,
1846     eQueryPool                = VK_OBJECT_TYPE_QUERY_POOL,
1847     eBufferView               = VK_OBJECT_TYPE_BUFFER_VIEW,
1848     eImageView                = VK_OBJECT_TYPE_IMAGE_VIEW,
1849     eShaderModule             = VK_OBJECT_TYPE_SHADER_MODULE,
1850     ePipelineCache            = VK_OBJECT_TYPE_PIPELINE_CACHE,
1851     ePipelineLayout           = VK_OBJECT_TYPE_PIPELINE_LAYOUT,
1852     eRenderPass               = VK_OBJECT_TYPE_RENDER_PASS,
1853     ePipeline                 = VK_OBJECT_TYPE_PIPELINE,
1854     eDescriptorSetLayout      = VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT,
1855     eSampler                  = VK_OBJECT_TYPE_SAMPLER,
1856     eDescriptorPool           = VK_OBJECT_TYPE_DESCRIPTOR_POOL,
1857     eDescriptorSet            = VK_OBJECT_TYPE_DESCRIPTOR_SET,
1858     eFramebuffer              = VK_OBJECT_TYPE_FRAMEBUFFER,
1859     eCommandPool              = VK_OBJECT_TYPE_COMMAND_POOL,
1860     eSamplerYcbcrConversion   = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
1861     eDescriptorUpdateTemplate = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
1862     eSurfaceKHR               = VK_OBJECT_TYPE_SURFACE_KHR,
1863     eSwapchainKHR             = VK_OBJECT_TYPE_SWAPCHAIN_KHR,
1864     eDisplayKHR               = VK_OBJECT_TYPE_DISPLAY_KHR,
1865     eDisplayModeKHR           = VK_OBJECT_TYPE_DISPLAY_MODE_KHR,
1866     eDebugReportCallbackEXT   = VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT,
1867 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1868     eVideoSessionKHR           = VK_OBJECT_TYPE_VIDEO_SESSION_KHR,
1869     eVideoSessionParametersKHR = VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR,
1870 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1871     eCuModuleNVX                   = VK_OBJECT_TYPE_CU_MODULE_NVX,
1872     eCuFunctionNVX                 = VK_OBJECT_TYPE_CU_FUNCTION_NVX,
1873     eDebugUtilsMessengerEXT        = VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT,
1874     eAccelerationStructureKHR      = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR,
1875     eValidationCacheEXT            = VK_OBJECT_TYPE_VALIDATION_CACHE_EXT,
1876     eAccelerationStructureNV       = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV,
1877     ePerformanceConfigurationINTEL = VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL,
1878     eDeferredOperationKHR          = VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR,
1879     eIndirectCommandsLayoutNV      = VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV,
1880     ePrivateDataSlotEXT            = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT,
1881 #if defined( VK_USE_PLATFORM_FUCHSIA )
1882     eBufferCollectionFUCHSIA = VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA,
1883 #endif /*VK_USE_PLATFORM_FUCHSIA*/
1884     eDescriptorUpdateTemplateKHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR,
1885     eSamplerYcbcrConversionKHR   = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR
1886   };
1887 
to_string(ObjectType value)1888   VULKAN_HPP_INLINE std::string to_string( ObjectType value )
1889   {
1890     switch ( value )
1891     {
1892       case ObjectType::eUnknown: return "Unknown";
1893       case ObjectType::eInstance: return "Instance";
1894       case ObjectType::ePhysicalDevice: return "PhysicalDevice";
1895       case ObjectType::eDevice: return "Device";
1896       case ObjectType::eQueue: return "Queue";
1897       case ObjectType::eSemaphore: return "Semaphore";
1898       case ObjectType::eCommandBuffer: return "CommandBuffer";
1899       case ObjectType::eFence: return "Fence";
1900       case ObjectType::eDeviceMemory: return "DeviceMemory";
1901       case ObjectType::eBuffer: return "Buffer";
1902       case ObjectType::eImage: return "Image";
1903       case ObjectType::eEvent: return "Event";
1904       case ObjectType::eQueryPool: return "QueryPool";
1905       case ObjectType::eBufferView: return "BufferView";
1906       case ObjectType::eImageView: return "ImageView";
1907       case ObjectType::eShaderModule: return "ShaderModule";
1908       case ObjectType::ePipelineCache: return "PipelineCache";
1909       case ObjectType::ePipelineLayout: return "PipelineLayout";
1910       case ObjectType::eRenderPass: return "RenderPass";
1911       case ObjectType::ePipeline: return "Pipeline";
1912       case ObjectType::eDescriptorSetLayout: return "DescriptorSetLayout";
1913       case ObjectType::eSampler: return "Sampler";
1914       case ObjectType::eDescriptorPool: return "DescriptorPool";
1915       case ObjectType::eDescriptorSet: return "DescriptorSet";
1916       case ObjectType::eFramebuffer: return "Framebuffer";
1917       case ObjectType::eCommandPool: return "CommandPool";
1918       case ObjectType::eSamplerYcbcrConversion: return "SamplerYcbcrConversion";
1919       case ObjectType::eDescriptorUpdateTemplate: return "DescriptorUpdateTemplate";
1920       case ObjectType::eSurfaceKHR: return "SurfaceKHR";
1921       case ObjectType::eSwapchainKHR: return "SwapchainKHR";
1922       case ObjectType::eDisplayKHR: return "DisplayKHR";
1923       case ObjectType::eDisplayModeKHR: return "DisplayModeKHR";
1924       case ObjectType::eDebugReportCallbackEXT: return "DebugReportCallbackEXT";
1925 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1926       case ObjectType::eVideoSessionKHR: return "VideoSessionKHR";
1927       case ObjectType::eVideoSessionParametersKHR: return "VideoSessionParametersKHR";
1928 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1929       case ObjectType::eCuModuleNVX: return "CuModuleNVX";
1930       case ObjectType::eCuFunctionNVX: return "CuFunctionNVX";
1931       case ObjectType::eDebugUtilsMessengerEXT: return "DebugUtilsMessengerEXT";
1932       case ObjectType::eAccelerationStructureKHR: return "AccelerationStructureKHR";
1933       case ObjectType::eValidationCacheEXT: return "ValidationCacheEXT";
1934       case ObjectType::eAccelerationStructureNV: return "AccelerationStructureNV";
1935       case ObjectType::ePerformanceConfigurationINTEL: return "PerformanceConfigurationINTEL";
1936       case ObjectType::eDeferredOperationKHR: return "DeferredOperationKHR";
1937       case ObjectType::eIndirectCommandsLayoutNV: return "IndirectCommandsLayoutNV";
1938       case ObjectType::ePrivateDataSlotEXT: return "PrivateDataSlotEXT";
1939 #if defined( VK_USE_PLATFORM_FUCHSIA )
1940       case ObjectType::eBufferCollectionFUCHSIA: return "BufferCollectionFUCHSIA";
1941 #endif /*VK_USE_PLATFORM_FUCHSIA*/
1942       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
1943     }
1944   }
1945 
1946   enum class VendorId
1947   {
1948     eVIV      = VK_VENDOR_ID_VIV,
1949     eVSI      = VK_VENDOR_ID_VSI,
1950     eKazan    = VK_VENDOR_ID_KAZAN,
1951     eCodeplay = VK_VENDOR_ID_CODEPLAY,
1952     eMESA     = VK_VENDOR_ID_MESA,
1953     ePocl     = VK_VENDOR_ID_POCL
1954   };
1955 
to_string(VendorId value)1956   VULKAN_HPP_INLINE std::string to_string( VendorId value )
1957   {
1958     switch ( value )
1959     {
1960       case VendorId::eVIV: return "VIV";
1961       case VendorId::eVSI: return "VSI";
1962       case VendorId::eKazan: return "Kazan";
1963       case VendorId::eCodeplay: return "Codeplay";
1964       case VendorId::eMESA: return "MESA";
1965       case VendorId::ePocl: return "Pocl";
1966       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
1967     }
1968   }
1969 
1970   enum class PipelineCacheHeaderVersion
1971   {
1972     eOne = VK_PIPELINE_CACHE_HEADER_VERSION_ONE
1973   };
1974 
to_string(PipelineCacheHeaderVersion value)1975   VULKAN_HPP_INLINE std::string to_string( PipelineCacheHeaderVersion value )
1976   {
1977     switch ( value )
1978     {
1979       case PipelineCacheHeaderVersion::eOne: return "One";
1980       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
1981     }
1982   }
1983 
1984   enum class Format
1985   {
1986     eUndefined                               = VK_FORMAT_UNDEFINED,
1987     eR4G4UnormPack8                          = VK_FORMAT_R4G4_UNORM_PACK8,
1988     eR4G4B4A4UnormPack16                     = VK_FORMAT_R4G4B4A4_UNORM_PACK16,
1989     eB4G4R4A4UnormPack16                     = VK_FORMAT_B4G4R4A4_UNORM_PACK16,
1990     eR5G6B5UnormPack16                       = VK_FORMAT_R5G6B5_UNORM_PACK16,
1991     eB5G6R5UnormPack16                       = VK_FORMAT_B5G6R5_UNORM_PACK16,
1992     eR5G5B5A1UnormPack16                     = VK_FORMAT_R5G5B5A1_UNORM_PACK16,
1993     eB5G5R5A1UnormPack16                     = VK_FORMAT_B5G5R5A1_UNORM_PACK16,
1994     eA1R5G5B5UnormPack16                     = VK_FORMAT_A1R5G5B5_UNORM_PACK16,
1995     eR8Unorm                                 = VK_FORMAT_R8_UNORM,
1996     eR8Snorm                                 = VK_FORMAT_R8_SNORM,
1997     eR8Uscaled                               = VK_FORMAT_R8_USCALED,
1998     eR8Sscaled                               = VK_FORMAT_R8_SSCALED,
1999     eR8Uint                                  = VK_FORMAT_R8_UINT,
2000     eR8Sint                                  = VK_FORMAT_R8_SINT,
2001     eR8Srgb                                  = VK_FORMAT_R8_SRGB,
2002     eR8G8Unorm                               = VK_FORMAT_R8G8_UNORM,
2003     eR8G8Snorm                               = VK_FORMAT_R8G8_SNORM,
2004     eR8G8Uscaled                             = VK_FORMAT_R8G8_USCALED,
2005     eR8G8Sscaled                             = VK_FORMAT_R8G8_SSCALED,
2006     eR8G8Uint                                = VK_FORMAT_R8G8_UINT,
2007     eR8G8Sint                                = VK_FORMAT_R8G8_SINT,
2008     eR8G8Srgb                                = VK_FORMAT_R8G8_SRGB,
2009     eR8G8B8Unorm                             = VK_FORMAT_R8G8B8_UNORM,
2010     eR8G8B8Snorm                             = VK_FORMAT_R8G8B8_SNORM,
2011     eR8G8B8Uscaled                           = VK_FORMAT_R8G8B8_USCALED,
2012     eR8G8B8Sscaled                           = VK_FORMAT_R8G8B8_SSCALED,
2013     eR8G8B8Uint                              = VK_FORMAT_R8G8B8_UINT,
2014     eR8G8B8Sint                              = VK_FORMAT_R8G8B8_SINT,
2015     eR8G8B8Srgb                              = VK_FORMAT_R8G8B8_SRGB,
2016     eB8G8R8Unorm                             = VK_FORMAT_B8G8R8_UNORM,
2017     eB8G8R8Snorm                             = VK_FORMAT_B8G8R8_SNORM,
2018     eB8G8R8Uscaled                           = VK_FORMAT_B8G8R8_USCALED,
2019     eB8G8R8Sscaled                           = VK_FORMAT_B8G8R8_SSCALED,
2020     eB8G8R8Uint                              = VK_FORMAT_B8G8R8_UINT,
2021     eB8G8R8Sint                              = VK_FORMAT_B8G8R8_SINT,
2022     eB8G8R8Srgb                              = VK_FORMAT_B8G8R8_SRGB,
2023     eR8G8B8A8Unorm                           = VK_FORMAT_R8G8B8A8_UNORM,
2024     eR8G8B8A8Snorm                           = VK_FORMAT_R8G8B8A8_SNORM,
2025     eR8G8B8A8Uscaled                         = VK_FORMAT_R8G8B8A8_USCALED,
2026     eR8G8B8A8Sscaled                         = VK_FORMAT_R8G8B8A8_SSCALED,
2027     eR8G8B8A8Uint                            = VK_FORMAT_R8G8B8A8_UINT,
2028     eR8G8B8A8Sint                            = VK_FORMAT_R8G8B8A8_SINT,
2029     eR8G8B8A8Srgb                            = VK_FORMAT_R8G8B8A8_SRGB,
2030     eB8G8R8A8Unorm                           = VK_FORMAT_B8G8R8A8_UNORM,
2031     eB8G8R8A8Snorm                           = VK_FORMAT_B8G8R8A8_SNORM,
2032     eB8G8R8A8Uscaled                         = VK_FORMAT_B8G8R8A8_USCALED,
2033     eB8G8R8A8Sscaled                         = VK_FORMAT_B8G8R8A8_SSCALED,
2034     eB8G8R8A8Uint                            = VK_FORMAT_B8G8R8A8_UINT,
2035     eB8G8R8A8Sint                            = VK_FORMAT_B8G8R8A8_SINT,
2036     eB8G8R8A8Srgb                            = VK_FORMAT_B8G8R8A8_SRGB,
2037     eA8B8G8R8UnormPack32                     = VK_FORMAT_A8B8G8R8_UNORM_PACK32,
2038     eA8B8G8R8SnormPack32                     = VK_FORMAT_A8B8G8R8_SNORM_PACK32,
2039     eA8B8G8R8UscaledPack32                   = VK_FORMAT_A8B8G8R8_USCALED_PACK32,
2040     eA8B8G8R8SscaledPack32                   = VK_FORMAT_A8B8G8R8_SSCALED_PACK32,
2041     eA8B8G8R8UintPack32                      = VK_FORMAT_A8B8G8R8_UINT_PACK32,
2042     eA8B8G8R8SintPack32                      = VK_FORMAT_A8B8G8R8_SINT_PACK32,
2043     eA8B8G8R8SrgbPack32                      = VK_FORMAT_A8B8G8R8_SRGB_PACK32,
2044     eA2R10G10B10UnormPack32                  = VK_FORMAT_A2R10G10B10_UNORM_PACK32,
2045     eA2R10G10B10SnormPack32                  = VK_FORMAT_A2R10G10B10_SNORM_PACK32,
2046     eA2R10G10B10UscaledPack32                = VK_FORMAT_A2R10G10B10_USCALED_PACK32,
2047     eA2R10G10B10SscaledPack32                = VK_FORMAT_A2R10G10B10_SSCALED_PACK32,
2048     eA2R10G10B10UintPack32                   = VK_FORMAT_A2R10G10B10_UINT_PACK32,
2049     eA2R10G10B10SintPack32                   = VK_FORMAT_A2R10G10B10_SINT_PACK32,
2050     eA2B10G10R10UnormPack32                  = VK_FORMAT_A2B10G10R10_UNORM_PACK32,
2051     eA2B10G10R10SnormPack32                  = VK_FORMAT_A2B10G10R10_SNORM_PACK32,
2052     eA2B10G10R10UscaledPack32                = VK_FORMAT_A2B10G10R10_USCALED_PACK32,
2053     eA2B10G10R10SscaledPack32                = VK_FORMAT_A2B10G10R10_SSCALED_PACK32,
2054     eA2B10G10R10UintPack32                   = VK_FORMAT_A2B10G10R10_UINT_PACK32,
2055     eA2B10G10R10SintPack32                   = VK_FORMAT_A2B10G10R10_SINT_PACK32,
2056     eR16Unorm                                = VK_FORMAT_R16_UNORM,
2057     eR16Snorm                                = VK_FORMAT_R16_SNORM,
2058     eR16Uscaled                              = VK_FORMAT_R16_USCALED,
2059     eR16Sscaled                              = VK_FORMAT_R16_SSCALED,
2060     eR16Uint                                 = VK_FORMAT_R16_UINT,
2061     eR16Sint                                 = VK_FORMAT_R16_SINT,
2062     eR16Sfloat                               = VK_FORMAT_R16_SFLOAT,
2063     eR16G16Unorm                             = VK_FORMAT_R16G16_UNORM,
2064     eR16G16Snorm                             = VK_FORMAT_R16G16_SNORM,
2065     eR16G16Uscaled                           = VK_FORMAT_R16G16_USCALED,
2066     eR16G16Sscaled                           = VK_FORMAT_R16G16_SSCALED,
2067     eR16G16Uint                              = VK_FORMAT_R16G16_UINT,
2068     eR16G16Sint                              = VK_FORMAT_R16G16_SINT,
2069     eR16G16Sfloat                            = VK_FORMAT_R16G16_SFLOAT,
2070     eR16G16B16Unorm                          = VK_FORMAT_R16G16B16_UNORM,
2071     eR16G16B16Snorm                          = VK_FORMAT_R16G16B16_SNORM,
2072     eR16G16B16Uscaled                        = VK_FORMAT_R16G16B16_USCALED,
2073     eR16G16B16Sscaled                        = VK_FORMAT_R16G16B16_SSCALED,
2074     eR16G16B16Uint                           = VK_FORMAT_R16G16B16_UINT,
2075     eR16G16B16Sint                           = VK_FORMAT_R16G16B16_SINT,
2076     eR16G16B16Sfloat                         = VK_FORMAT_R16G16B16_SFLOAT,
2077     eR16G16B16A16Unorm                       = VK_FORMAT_R16G16B16A16_UNORM,
2078     eR16G16B16A16Snorm                       = VK_FORMAT_R16G16B16A16_SNORM,
2079     eR16G16B16A16Uscaled                     = VK_FORMAT_R16G16B16A16_USCALED,
2080     eR16G16B16A16Sscaled                     = VK_FORMAT_R16G16B16A16_SSCALED,
2081     eR16G16B16A16Uint                        = VK_FORMAT_R16G16B16A16_UINT,
2082     eR16G16B16A16Sint                        = VK_FORMAT_R16G16B16A16_SINT,
2083     eR16G16B16A16Sfloat                      = VK_FORMAT_R16G16B16A16_SFLOAT,
2084     eR32Uint                                 = VK_FORMAT_R32_UINT,
2085     eR32Sint                                 = VK_FORMAT_R32_SINT,
2086     eR32Sfloat                               = VK_FORMAT_R32_SFLOAT,
2087     eR32G32Uint                              = VK_FORMAT_R32G32_UINT,
2088     eR32G32Sint                              = VK_FORMAT_R32G32_SINT,
2089     eR32G32Sfloat                            = VK_FORMAT_R32G32_SFLOAT,
2090     eR32G32B32Uint                           = VK_FORMAT_R32G32B32_UINT,
2091     eR32G32B32Sint                           = VK_FORMAT_R32G32B32_SINT,
2092     eR32G32B32Sfloat                         = VK_FORMAT_R32G32B32_SFLOAT,
2093     eR32G32B32A32Uint                        = VK_FORMAT_R32G32B32A32_UINT,
2094     eR32G32B32A32Sint                        = VK_FORMAT_R32G32B32A32_SINT,
2095     eR32G32B32A32Sfloat                      = VK_FORMAT_R32G32B32A32_SFLOAT,
2096     eR64Uint                                 = VK_FORMAT_R64_UINT,
2097     eR64Sint                                 = VK_FORMAT_R64_SINT,
2098     eR64Sfloat                               = VK_FORMAT_R64_SFLOAT,
2099     eR64G64Uint                              = VK_FORMAT_R64G64_UINT,
2100     eR64G64Sint                              = VK_FORMAT_R64G64_SINT,
2101     eR64G64Sfloat                            = VK_FORMAT_R64G64_SFLOAT,
2102     eR64G64B64Uint                           = VK_FORMAT_R64G64B64_UINT,
2103     eR64G64B64Sint                           = VK_FORMAT_R64G64B64_SINT,
2104     eR64G64B64Sfloat                         = VK_FORMAT_R64G64B64_SFLOAT,
2105     eR64G64B64A64Uint                        = VK_FORMAT_R64G64B64A64_UINT,
2106     eR64G64B64A64Sint                        = VK_FORMAT_R64G64B64A64_SINT,
2107     eR64G64B64A64Sfloat                      = VK_FORMAT_R64G64B64A64_SFLOAT,
2108     eB10G11R11UfloatPack32                   = VK_FORMAT_B10G11R11_UFLOAT_PACK32,
2109     eE5B9G9R9UfloatPack32                    = VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,
2110     eD16Unorm                                = VK_FORMAT_D16_UNORM,
2111     eX8D24UnormPack32                        = VK_FORMAT_X8_D24_UNORM_PACK32,
2112     eD32Sfloat                               = VK_FORMAT_D32_SFLOAT,
2113     eS8Uint                                  = VK_FORMAT_S8_UINT,
2114     eD16UnormS8Uint                          = VK_FORMAT_D16_UNORM_S8_UINT,
2115     eD24UnormS8Uint                          = VK_FORMAT_D24_UNORM_S8_UINT,
2116     eD32SfloatS8Uint                         = VK_FORMAT_D32_SFLOAT_S8_UINT,
2117     eBc1RgbUnormBlock                        = VK_FORMAT_BC1_RGB_UNORM_BLOCK,
2118     eBc1RgbSrgbBlock                         = VK_FORMAT_BC1_RGB_SRGB_BLOCK,
2119     eBc1RgbaUnormBlock                       = VK_FORMAT_BC1_RGBA_UNORM_BLOCK,
2120     eBc1RgbaSrgbBlock                        = VK_FORMAT_BC1_RGBA_SRGB_BLOCK,
2121     eBc2UnormBlock                           = VK_FORMAT_BC2_UNORM_BLOCK,
2122     eBc2SrgbBlock                            = VK_FORMAT_BC2_SRGB_BLOCK,
2123     eBc3UnormBlock                           = VK_FORMAT_BC3_UNORM_BLOCK,
2124     eBc3SrgbBlock                            = VK_FORMAT_BC3_SRGB_BLOCK,
2125     eBc4UnormBlock                           = VK_FORMAT_BC4_UNORM_BLOCK,
2126     eBc4SnormBlock                           = VK_FORMAT_BC4_SNORM_BLOCK,
2127     eBc5UnormBlock                           = VK_FORMAT_BC5_UNORM_BLOCK,
2128     eBc5SnormBlock                           = VK_FORMAT_BC5_SNORM_BLOCK,
2129     eBc6HUfloatBlock                         = VK_FORMAT_BC6H_UFLOAT_BLOCK,
2130     eBc6HSfloatBlock                         = VK_FORMAT_BC6H_SFLOAT_BLOCK,
2131     eBc7UnormBlock                           = VK_FORMAT_BC7_UNORM_BLOCK,
2132     eBc7SrgbBlock                            = VK_FORMAT_BC7_SRGB_BLOCK,
2133     eEtc2R8G8B8UnormBlock                    = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK,
2134     eEtc2R8G8B8SrgbBlock                     = VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK,
2135     eEtc2R8G8B8A1UnormBlock                  = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK,
2136     eEtc2R8G8B8A1SrgbBlock                   = VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK,
2137     eEtc2R8G8B8A8UnormBlock                  = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK,
2138     eEtc2R8G8B8A8SrgbBlock                   = VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK,
2139     eEacR11UnormBlock                        = VK_FORMAT_EAC_R11_UNORM_BLOCK,
2140     eEacR11SnormBlock                        = VK_FORMAT_EAC_R11_SNORM_BLOCK,
2141     eEacR11G11UnormBlock                     = VK_FORMAT_EAC_R11G11_UNORM_BLOCK,
2142     eEacR11G11SnormBlock                     = VK_FORMAT_EAC_R11G11_SNORM_BLOCK,
2143     eAstc4x4UnormBlock                       = VK_FORMAT_ASTC_4x4_UNORM_BLOCK,
2144     eAstc4x4SrgbBlock                        = VK_FORMAT_ASTC_4x4_SRGB_BLOCK,
2145     eAstc5x4UnormBlock                       = VK_FORMAT_ASTC_5x4_UNORM_BLOCK,
2146     eAstc5x4SrgbBlock                        = VK_FORMAT_ASTC_5x4_SRGB_BLOCK,
2147     eAstc5x5UnormBlock                       = VK_FORMAT_ASTC_5x5_UNORM_BLOCK,
2148     eAstc5x5SrgbBlock                        = VK_FORMAT_ASTC_5x5_SRGB_BLOCK,
2149     eAstc6x5UnormBlock                       = VK_FORMAT_ASTC_6x5_UNORM_BLOCK,
2150     eAstc6x5SrgbBlock                        = VK_FORMAT_ASTC_6x5_SRGB_BLOCK,
2151     eAstc6x6UnormBlock                       = VK_FORMAT_ASTC_6x6_UNORM_BLOCK,
2152     eAstc6x6SrgbBlock                        = VK_FORMAT_ASTC_6x6_SRGB_BLOCK,
2153     eAstc8x5UnormBlock                       = VK_FORMAT_ASTC_8x5_UNORM_BLOCK,
2154     eAstc8x5SrgbBlock                        = VK_FORMAT_ASTC_8x5_SRGB_BLOCK,
2155     eAstc8x6UnormBlock                       = VK_FORMAT_ASTC_8x6_UNORM_BLOCK,
2156     eAstc8x6SrgbBlock                        = VK_FORMAT_ASTC_8x6_SRGB_BLOCK,
2157     eAstc8x8UnormBlock                       = VK_FORMAT_ASTC_8x8_UNORM_BLOCK,
2158     eAstc8x8SrgbBlock                        = VK_FORMAT_ASTC_8x8_SRGB_BLOCK,
2159     eAstc10x5UnormBlock                      = VK_FORMAT_ASTC_10x5_UNORM_BLOCK,
2160     eAstc10x5SrgbBlock                       = VK_FORMAT_ASTC_10x5_SRGB_BLOCK,
2161     eAstc10x6UnormBlock                      = VK_FORMAT_ASTC_10x6_UNORM_BLOCK,
2162     eAstc10x6SrgbBlock                       = VK_FORMAT_ASTC_10x6_SRGB_BLOCK,
2163     eAstc10x8UnormBlock                      = VK_FORMAT_ASTC_10x8_UNORM_BLOCK,
2164     eAstc10x8SrgbBlock                       = VK_FORMAT_ASTC_10x8_SRGB_BLOCK,
2165     eAstc10x10UnormBlock                     = VK_FORMAT_ASTC_10x10_UNORM_BLOCK,
2166     eAstc10x10SrgbBlock                      = VK_FORMAT_ASTC_10x10_SRGB_BLOCK,
2167     eAstc12x10UnormBlock                     = VK_FORMAT_ASTC_12x10_UNORM_BLOCK,
2168     eAstc12x10SrgbBlock                      = VK_FORMAT_ASTC_12x10_SRGB_BLOCK,
2169     eAstc12x12UnormBlock                     = VK_FORMAT_ASTC_12x12_UNORM_BLOCK,
2170     eAstc12x12SrgbBlock                      = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
2171     eG8B8G8R8422Unorm                        = VK_FORMAT_G8B8G8R8_422_UNORM,
2172     eB8G8R8G8422Unorm                        = VK_FORMAT_B8G8R8G8_422_UNORM,
2173     eG8B8R83Plane420Unorm                    = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
2174     eG8B8R82Plane420Unorm                    = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
2175     eG8B8R83Plane422Unorm                    = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
2176     eG8B8R82Plane422Unorm                    = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
2177     eG8B8R83Plane444Unorm                    = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
2178     eR10X6UnormPack16                        = VK_FORMAT_R10X6_UNORM_PACK16,
2179     eR10X6G10X6Unorm2Pack16                  = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
2180     eR10X6G10X6B10X6A10X6Unorm4Pack16        = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
2181     eG10X6B10X6G10X6R10X6422Unorm4Pack16     = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
2182     eB10X6G10X6R10X6G10X6422Unorm4Pack16     = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
2183     eG10X6B10X6R10X63Plane420Unorm3Pack16    = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
2184     eG10X6B10X6R10X62Plane420Unorm3Pack16    = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
2185     eG10X6B10X6R10X63Plane422Unorm3Pack16    = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
2186     eG10X6B10X6R10X62Plane422Unorm3Pack16    = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
2187     eG10X6B10X6R10X63Plane444Unorm3Pack16    = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
2188     eR12X4UnormPack16                        = VK_FORMAT_R12X4_UNORM_PACK16,
2189     eR12X4G12X4Unorm2Pack16                  = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
2190     eR12X4G12X4B12X4A12X4Unorm4Pack16        = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
2191     eG12X4B12X4G12X4R12X4422Unorm4Pack16     = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
2192     eB12X4G12X4R12X4G12X4422Unorm4Pack16     = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
2193     eG12X4B12X4R12X43Plane420Unorm3Pack16    = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
2194     eG12X4B12X4R12X42Plane420Unorm3Pack16    = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
2195     eG12X4B12X4R12X43Plane422Unorm3Pack16    = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
2196     eG12X4B12X4R12X42Plane422Unorm3Pack16    = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
2197     eG12X4B12X4R12X43Plane444Unorm3Pack16    = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
2198     eG16B16G16R16422Unorm                    = VK_FORMAT_G16B16G16R16_422_UNORM,
2199     eB16G16R16G16422Unorm                    = VK_FORMAT_B16G16R16G16_422_UNORM,
2200     eG16B16R163Plane420Unorm                 = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
2201     eG16B16R162Plane420Unorm                 = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
2202     eG16B16R163Plane422Unorm                 = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
2203     eG16B16R162Plane422Unorm                 = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
2204     eG16B16R163Plane444Unorm                 = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
2205     ePvrtc12BppUnormBlockIMG                 = VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG,
2206     ePvrtc14BppUnormBlockIMG                 = VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG,
2207     ePvrtc22BppUnormBlockIMG                 = VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG,
2208     ePvrtc24BppUnormBlockIMG                 = VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG,
2209     ePvrtc12BppSrgbBlockIMG                  = VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG,
2210     ePvrtc14BppSrgbBlockIMG                  = VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG,
2211     ePvrtc22BppSrgbBlockIMG                  = VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG,
2212     ePvrtc24BppSrgbBlockIMG                  = VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG,
2213     eAstc4x4SfloatBlockEXT                   = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT,
2214     eAstc5x4SfloatBlockEXT                   = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT,
2215     eAstc5x5SfloatBlockEXT                   = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT,
2216     eAstc6x5SfloatBlockEXT                   = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT,
2217     eAstc6x6SfloatBlockEXT                   = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT,
2218     eAstc8x5SfloatBlockEXT                   = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT,
2219     eAstc8x6SfloatBlockEXT                   = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT,
2220     eAstc8x8SfloatBlockEXT                   = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT,
2221     eAstc10x5SfloatBlockEXT                  = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT,
2222     eAstc10x6SfloatBlockEXT                  = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT,
2223     eAstc10x8SfloatBlockEXT                  = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT,
2224     eAstc10x10SfloatBlockEXT                 = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT,
2225     eAstc12x10SfloatBlockEXT                 = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT,
2226     eAstc12x12SfloatBlockEXT                 = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT,
2227     eG8B8R82Plane444UnormEXT                 = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT,
2228     eG10X6B10X6R10X62Plane444Unorm3Pack16EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT,
2229     eG12X4B12X4R12X42Plane444Unorm3Pack16EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT,
2230     eG16B16R162Plane444UnormEXT              = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT,
2231     eA4R4G4B4UnormPack16EXT                  = VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT,
2232     eA4B4G4R4UnormPack16EXT                  = VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT,
2233     eB10X6G10X6R10X6G10X6422Unorm4Pack16KHR  = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR,
2234     eB12X4G12X4R12X4G12X4422Unorm4Pack16KHR  = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR,
2235     eB16G16R16G16422UnormKHR                 = VK_FORMAT_B16G16R16G16_422_UNORM_KHR,
2236     eB8G8R8G8422UnormKHR                     = VK_FORMAT_B8G8R8G8_422_UNORM_KHR,
2237     eG10X6B10X6G10X6R10X6422Unorm4Pack16KHR  = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR,
2238     eG10X6B10X6R10X62Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR,
2239     eG10X6B10X6R10X62Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR,
2240     eG10X6B10X6R10X63Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR,
2241     eG10X6B10X6R10X63Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR,
2242     eG10X6B10X6R10X63Plane444Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR,
2243     eG12X4B12X4G12X4R12X4422Unorm4Pack16KHR  = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR,
2244     eG12X4B12X4R12X42Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR,
2245     eG12X4B12X4R12X42Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR,
2246     eG12X4B12X4R12X43Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR,
2247     eG12X4B12X4R12X43Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR,
2248     eG12X4B12X4R12X43Plane444Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR,
2249     eG16B16G16R16422UnormKHR                 = VK_FORMAT_G16B16G16R16_422_UNORM_KHR,
2250     eG16B16R162Plane420UnormKHR              = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR,
2251     eG16B16R162Plane422UnormKHR              = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR,
2252     eG16B16R163Plane420UnormKHR              = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR,
2253     eG16B16R163Plane422UnormKHR              = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR,
2254     eG16B16R163Plane444UnormKHR              = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR,
2255     eG8B8G8R8422UnormKHR                     = VK_FORMAT_G8B8G8R8_422_UNORM_KHR,
2256     eG8B8R82Plane420UnormKHR                 = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR,
2257     eG8B8R82Plane422UnormKHR                 = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR,
2258     eG8B8R83Plane420UnormKHR                 = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR,
2259     eG8B8R83Plane422UnormKHR                 = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR,
2260     eG8B8R83Plane444UnormKHR                 = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR,
2261     eR10X6G10X6B10X6A10X6Unorm4Pack16KHR     = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR,
2262     eR10X6G10X6Unorm2Pack16KHR               = VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR,
2263     eR10X6UnormPack16KHR                     = VK_FORMAT_R10X6_UNORM_PACK16_KHR,
2264     eR12X4G12X4B12X4A12X4Unorm4Pack16KHR     = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR,
2265     eR12X4G12X4Unorm2Pack16KHR               = VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR,
2266     eR12X4UnormPack16KHR                     = VK_FORMAT_R12X4_UNORM_PACK16_KHR
2267   };
2268 
to_string(Format value)2269   VULKAN_HPP_INLINE std::string to_string( Format value )
2270   {
2271     switch ( value )
2272     {
2273       case Format::eUndefined: return "Undefined";
2274       case Format::eR4G4UnormPack8: return "R4G4UnormPack8";
2275       case Format::eR4G4B4A4UnormPack16: return "R4G4B4A4UnormPack16";
2276       case Format::eB4G4R4A4UnormPack16: return "B4G4R4A4UnormPack16";
2277       case Format::eR5G6B5UnormPack16: return "R5G6B5UnormPack16";
2278       case Format::eB5G6R5UnormPack16: return "B5G6R5UnormPack16";
2279       case Format::eR5G5B5A1UnormPack16: return "R5G5B5A1UnormPack16";
2280       case Format::eB5G5R5A1UnormPack16: return "B5G5R5A1UnormPack16";
2281       case Format::eA1R5G5B5UnormPack16: return "A1R5G5B5UnormPack16";
2282       case Format::eR8Unorm: return "R8Unorm";
2283       case Format::eR8Snorm: return "R8Snorm";
2284       case Format::eR8Uscaled: return "R8Uscaled";
2285       case Format::eR8Sscaled: return "R8Sscaled";
2286       case Format::eR8Uint: return "R8Uint";
2287       case Format::eR8Sint: return "R8Sint";
2288       case Format::eR8Srgb: return "R8Srgb";
2289       case Format::eR8G8Unorm: return "R8G8Unorm";
2290       case Format::eR8G8Snorm: return "R8G8Snorm";
2291       case Format::eR8G8Uscaled: return "R8G8Uscaled";
2292       case Format::eR8G8Sscaled: return "R8G8Sscaled";
2293       case Format::eR8G8Uint: return "R8G8Uint";
2294       case Format::eR8G8Sint: return "R8G8Sint";
2295       case Format::eR8G8Srgb: return "R8G8Srgb";
2296       case Format::eR8G8B8Unorm: return "R8G8B8Unorm";
2297       case Format::eR8G8B8Snorm: return "R8G8B8Snorm";
2298       case Format::eR8G8B8Uscaled: return "R8G8B8Uscaled";
2299       case Format::eR8G8B8Sscaled: return "R8G8B8Sscaled";
2300       case Format::eR8G8B8Uint: return "R8G8B8Uint";
2301       case Format::eR8G8B8Sint: return "R8G8B8Sint";
2302       case Format::eR8G8B8Srgb: return "R8G8B8Srgb";
2303       case Format::eB8G8R8Unorm: return "B8G8R8Unorm";
2304       case Format::eB8G8R8Snorm: return "B8G8R8Snorm";
2305       case Format::eB8G8R8Uscaled: return "B8G8R8Uscaled";
2306       case Format::eB8G8R8Sscaled: return "B8G8R8Sscaled";
2307       case Format::eB8G8R8Uint: return "B8G8R8Uint";
2308       case Format::eB8G8R8Sint: return "B8G8R8Sint";
2309       case Format::eB8G8R8Srgb: return "B8G8R8Srgb";
2310       case Format::eR8G8B8A8Unorm: return "R8G8B8A8Unorm";
2311       case Format::eR8G8B8A8Snorm: return "R8G8B8A8Snorm";
2312       case Format::eR8G8B8A8Uscaled: return "R8G8B8A8Uscaled";
2313       case Format::eR8G8B8A8Sscaled: return "R8G8B8A8Sscaled";
2314       case Format::eR8G8B8A8Uint: return "R8G8B8A8Uint";
2315       case Format::eR8G8B8A8Sint: return "R8G8B8A8Sint";
2316       case Format::eR8G8B8A8Srgb: return "R8G8B8A8Srgb";
2317       case Format::eB8G8R8A8Unorm: return "B8G8R8A8Unorm";
2318       case Format::eB8G8R8A8Snorm: return "B8G8R8A8Snorm";
2319       case Format::eB8G8R8A8Uscaled: return "B8G8R8A8Uscaled";
2320       case Format::eB8G8R8A8Sscaled: return "B8G8R8A8Sscaled";
2321       case Format::eB8G8R8A8Uint: return "B8G8R8A8Uint";
2322       case Format::eB8G8R8A8Sint: return "B8G8R8A8Sint";
2323       case Format::eB8G8R8A8Srgb: return "B8G8R8A8Srgb";
2324       case Format::eA8B8G8R8UnormPack32: return "A8B8G8R8UnormPack32";
2325       case Format::eA8B8G8R8SnormPack32: return "A8B8G8R8SnormPack32";
2326       case Format::eA8B8G8R8UscaledPack32: return "A8B8G8R8UscaledPack32";
2327       case Format::eA8B8G8R8SscaledPack32: return "A8B8G8R8SscaledPack32";
2328       case Format::eA8B8G8R8UintPack32: return "A8B8G8R8UintPack32";
2329       case Format::eA8B8G8R8SintPack32: return "A8B8G8R8SintPack32";
2330       case Format::eA8B8G8R8SrgbPack32: return "A8B8G8R8SrgbPack32";
2331       case Format::eA2R10G10B10UnormPack32: return "A2R10G10B10UnormPack32";
2332       case Format::eA2R10G10B10SnormPack32: return "A2R10G10B10SnormPack32";
2333       case Format::eA2R10G10B10UscaledPack32: return "A2R10G10B10UscaledPack32";
2334       case Format::eA2R10G10B10SscaledPack32: return "A2R10G10B10SscaledPack32";
2335       case Format::eA2R10G10B10UintPack32: return "A2R10G10B10UintPack32";
2336       case Format::eA2R10G10B10SintPack32: return "A2R10G10B10SintPack32";
2337       case Format::eA2B10G10R10UnormPack32: return "A2B10G10R10UnormPack32";
2338       case Format::eA2B10G10R10SnormPack32: return "A2B10G10R10SnormPack32";
2339       case Format::eA2B10G10R10UscaledPack32: return "A2B10G10R10UscaledPack32";
2340       case Format::eA2B10G10R10SscaledPack32: return "A2B10G10R10SscaledPack32";
2341       case Format::eA2B10G10R10UintPack32: return "A2B10G10R10UintPack32";
2342       case Format::eA2B10G10R10SintPack32: return "A2B10G10R10SintPack32";
2343       case Format::eR16Unorm: return "R16Unorm";
2344       case Format::eR16Snorm: return "R16Snorm";
2345       case Format::eR16Uscaled: return "R16Uscaled";
2346       case Format::eR16Sscaled: return "R16Sscaled";
2347       case Format::eR16Uint: return "R16Uint";
2348       case Format::eR16Sint: return "R16Sint";
2349       case Format::eR16Sfloat: return "R16Sfloat";
2350       case Format::eR16G16Unorm: return "R16G16Unorm";
2351       case Format::eR16G16Snorm: return "R16G16Snorm";
2352       case Format::eR16G16Uscaled: return "R16G16Uscaled";
2353       case Format::eR16G16Sscaled: return "R16G16Sscaled";
2354       case Format::eR16G16Uint: return "R16G16Uint";
2355       case Format::eR16G16Sint: return "R16G16Sint";
2356       case Format::eR16G16Sfloat: return "R16G16Sfloat";
2357       case Format::eR16G16B16Unorm: return "R16G16B16Unorm";
2358       case Format::eR16G16B16Snorm: return "R16G16B16Snorm";
2359       case Format::eR16G16B16Uscaled: return "R16G16B16Uscaled";
2360       case Format::eR16G16B16Sscaled: return "R16G16B16Sscaled";
2361       case Format::eR16G16B16Uint: return "R16G16B16Uint";
2362       case Format::eR16G16B16Sint: return "R16G16B16Sint";
2363       case Format::eR16G16B16Sfloat: return "R16G16B16Sfloat";
2364       case Format::eR16G16B16A16Unorm: return "R16G16B16A16Unorm";
2365       case Format::eR16G16B16A16Snorm: return "R16G16B16A16Snorm";
2366       case Format::eR16G16B16A16Uscaled: return "R16G16B16A16Uscaled";
2367       case Format::eR16G16B16A16Sscaled: return "R16G16B16A16Sscaled";
2368       case Format::eR16G16B16A16Uint: return "R16G16B16A16Uint";
2369       case Format::eR16G16B16A16Sint: return "R16G16B16A16Sint";
2370       case Format::eR16G16B16A16Sfloat: return "R16G16B16A16Sfloat";
2371       case Format::eR32Uint: return "R32Uint";
2372       case Format::eR32Sint: return "R32Sint";
2373       case Format::eR32Sfloat: return "R32Sfloat";
2374       case Format::eR32G32Uint: return "R32G32Uint";
2375       case Format::eR32G32Sint: return "R32G32Sint";
2376       case Format::eR32G32Sfloat: return "R32G32Sfloat";
2377       case Format::eR32G32B32Uint: return "R32G32B32Uint";
2378       case Format::eR32G32B32Sint: return "R32G32B32Sint";
2379       case Format::eR32G32B32Sfloat: return "R32G32B32Sfloat";
2380       case Format::eR32G32B32A32Uint: return "R32G32B32A32Uint";
2381       case Format::eR32G32B32A32Sint: return "R32G32B32A32Sint";
2382       case Format::eR32G32B32A32Sfloat: return "R32G32B32A32Sfloat";
2383       case Format::eR64Uint: return "R64Uint";
2384       case Format::eR64Sint: return "R64Sint";
2385       case Format::eR64Sfloat: return "R64Sfloat";
2386       case Format::eR64G64Uint: return "R64G64Uint";
2387       case Format::eR64G64Sint: return "R64G64Sint";
2388       case Format::eR64G64Sfloat: return "R64G64Sfloat";
2389       case Format::eR64G64B64Uint: return "R64G64B64Uint";
2390       case Format::eR64G64B64Sint: return "R64G64B64Sint";
2391       case Format::eR64G64B64Sfloat: return "R64G64B64Sfloat";
2392       case Format::eR64G64B64A64Uint: return "R64G64B64A64Uint";
2393       case Format::eR64G64B64A64Sint: return "R64G64B64A64Sint";
2394       case Format::eR64G64B64A64Sfloat: return "R64G64B64A64Sfloat";
2395       case Format::eB10G11R11UfloatPack32: return "B10G11R11UfloatPack32";
2396       case Format::eE5B9G9R9UfloatPack32: return "E5B9G9R9UfloatPack32";
2397       case Format::eD16Unorm: return "D16Unorm";
2398       case Format::eX8D24UnormPack32: return "X8D24UnormPack32";
2399       case Format::eD32Sfloat: return "D32Sfloat";
2400       case Format::eS8Uint: return "S8Uint";
2401       case Format::eD16UnormS8Uint: return "D16UnormS8Uint";
2402       case Format::eD24UnormS8Uint: return "D24UnormS8Uint";
2403       case Format::eD32SfloatS8Uint: return "D32SfloatS8Uint";
2404       case Format::eBc1RgbUnormBlock: return "Bc1RgbUnormBlock";
2405       case Format::eBc1RgbSrgbBlock: return "Bc1RgbSrgbBlock";
2406       case Format::eBc1RgbaUnormBlock: return "Bc1RgbaUnormBlock";
2407       case Format::eBc1RgbaSrgbBlock: return "Bc1RgbaSrgbBlock";
2408       case Format::eBc2UnormBlock: return "Bc2UnormBlock";
2409       case Format::eBc2SrgbBlock: return "Bc2SrgbBlock";
2410       case Format::eBc3UnormBlock: return "Bc3UnormBlock";
2411       case Format::eBc3SrgbBlock: return "Bc3SrgbBlock";
2412       case Format::eBc4UnormBlock: return "Bc4UnormBlock";
2413       case Format::eBc4SnormBlock: return "Bc4SnormBlock";
2414       case Format::eBc5UnormBlock: return "Bc5UnormBlock";
2415       case Format::eBc5SnormBlock: return "Bc5SnormBlock";
2416       case Format::eBc6HUfloatBlock: return "Bc6HUfloatBlock";
2417       case Format::eBc6HSfloatBlock: return "Bc6HSfloatBlock";
2418       case Format::eBc7UnormBlock: return "Bc7UnormBlock";
2419       case Format::eBc7SrgbBlock: return "Bc7SrgbBlock";
2420       case Format::eEtc2R8G8B8UnormBlock: return "Etc2R8G8B8UnormBlock";
2421       case Format::eEtc2R8G8B8SrgbBlock: return "Etc2R8G8B8SrgbBlock";
2422       case Format::eEtc2R8G8B8A1UnormBlock: return "Etc2R8G8B8A1UnormBlock";
2423       case Format::eEtc2R8G8B8A1SrgbBlock: return "Etc2R8G8B8A1SrgbBlock";
2424       case Format::eEtc2R8G8B8A8UnormBlock: return "Etc2R8G8B8A8UnormBlock";
2425       case Format::eEtc2R8G8B8A8SrgbBlock: return "Etc2R8G8B8A8SrgbBlock";
2426       case Format::eEacR11UnormBlock: return "EacR11UnormBlock";
2427       case Format::eEacR11SnormBlock: return "EacR11SnormBlock";
2428       case Format::eEacR11G11UnormBlock: return "EacR11G11UnormBlock";
2429       case Format::eEacR11G11SnormBlock: return "EacR11G11SnormBlock";
2430       case Format::eAstc4x4UnormBlock: return "Astc4x4UnormBlock";
2431       case Format::eAstc4x4SrgbBlock: return "Astc4x4SrgbBlock";
2432       case Format::eAstc5x4UnormBlock: return "Astc5x4UnormBlock";
2433       case Format::eAstc5x4SrgbBlock: return "Astc5x4SrgbBlock";
2434       case Format::eAstc5x5UnormBlock: return "Astc5x5UnormBlock";
2435       case Format::eAstc5x5SrgbBlock: return "Astc5x5SrgbBlock";
2436       case Format::eAstc6x5UnormBlock: return "Astc6x5UnormBlock";
2437       case Format::eAstc6x5SrgbBlock: return "Astc6x5SrgbBlock";
2438       case Format::eAstc6x6UnormBlock: return "Astc6x6UnormBlock";
2439       case Format::eAstc6x6SrgbBlock: return "Astc6x6SrgbBlock";
2440       case Format::eAstc8x5UnormBlock: return "Astc8x5UnormBlock";
2441       case Format::eAstc8x5SrgbBlock: return "Astc8x5SrgbBlock";
2442       case Format::eAstc8x6UnormBlock: return "Astc8x6UnormBlock";
2443       case Format::eAstc8x6SrgbBlock: return "Astc8x6SrgbBlock";
2444       case Format::eAstc8x8UnormBlock: return "Astc8x8UnormBlock";
2445       case Format::eAstc8x8SrgbBlock: return "Astc8x8SrgbBlock";
2446       case Format::eAstc10x5UnormBlock: return "Astc10x5UnormBlock";
2447       case Format::eAstc10x5SrgbBlock: return "Astc10x5SrgbBlock";
2448       case Format::eAstc10x6UnormBlock: return "Astc10x6UnormBlock";
2449       case Format::eAstc10x6SrgbBlock: return "Astc10x6SrgbBlock";
2450       case Format::eAstc10x8UnormBlock: return "Astc10x8UnormBlock";
2451       case Format::eAstc10x8SrgbBlock: return "Astc10x8SrgbBlock";
2452       case Format::eAstc10x10UnormBlock: return "Astc10x10UnormBlock";
2453       case Format::eAstc10x10SrgbBlock: return "Astc10x10SrgbBlock";
2454       case Format::eAstc12x10UnormBlock: return "Astc12x10UnormBlock";
2455       case Format::eAstc12x10SrgbBlock: return "Astc12x10SrgbBlock";
2456       case Format::eAstc12x12UnormBlock: return "Astc12x12UnormBlock";
2457       case Format::eAstc12x12SrgbBlock: return "Astc12x12SrgbBlock";
2458       case Format::eG8B8G8R8422Unorm: return "G8B8G8R8422Unorm";
2459       case Format::eB8G8R8G8422Unorm: return "B8G8R8G8422Unorm";
2460       case Format::eG8B8R83Plane420Unorm: return "G8B8R83Plane420Unorm";
2461       case Format::eG8B8R82Plane420Unorm: return "G8B8R82Plane420Unorm";
2462       case Format::eG8B8R83Plane422Unorm: return "G8B8R83Plane422Unorm";
2463       case Format::eG8B8R82Plane422Unorm: return "G8B8R82Plane422Unorm";
2464       case Format::eG8B8R83Plane444Unorm: return "G8B8R83Plane444Unorm";
2465       case Format::eR10X6UnormPack16: return "R10X6UnormPack16";
2466       case Format::eR10X6G10X6Unorm2Pack16: return "R10X6G10X6Unorm2Pack16";
2467       case Format::eR10X6G10X6B10X6A10X6Unorm4Pack16: return "R10X6G10X6B10X6A10X6Unorm4Pack16";
2468       case Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16: return "G10X6B10X6G10X6R10X6422Unorm4Pack16";
2469       case Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16: return "B10X6G10X6R10X6G10X6422Unorm4Pack16";
2470       case Format::eG10X6B10X6R10X63Plane420Unorm3Pack16: return "G10X6B10X6R10X63Plane420Unorm3Pack16";
2471       case Format::eG10X6B10X6R10X62Plane420Unorm3Pack16: return "G10X6B10X6R10X62Plane420Unorm3Pack16";
2472       case Format::eG10X6B10X6R10X63Plane422Unorm3Pack16: return "G10X6B10X6R10X63Plane422Unorm3Pack16";
2473       case Format::eG10X6B10X6R10X62Plane422Unorm3Pack16: return "G10X6B10X6R10X62Plane422Unorm3Pack16";
2474       case Format::eG10X6B10X6R10X63Plane444Unorm3Pack16: return "G10X6B10X6R10X63Plane444Unorm3Pack16";
2475       case Format::eR12X4UnormPack16: return "R12X4UnormPack16";
2476       case Format::eR12X4G12X4Unorm2Pack16: return "R12X4G12X4Unorm2Pack16";
2477       case Format::eR12X4G12X4B12X4A12X4Unorm4Pack16: return "R12X4G12X4B12X4A12X4Unorm4Pack16";
2478       case Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16: return "G12X4B12X4G12X4R12X4422Unorm4Pack16";
2479       case Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16: return "B12X4G12X4R12X4G12X4422Unorm4Pack16";
2480       case Format::eG12X4B12X4R12X43Plane420Unorm3Pack16: return "G12X4B12X4R12X43Plane420Unorm3Pack16";
2481       case Format::eG12X4B12X4R12X42Plane420Unorm3Pack16: return "G12X4B12X4R12X42Plane420Unorm3Pack16";
2482       case Format::eG12X4B12X4R12X43Plane422Unorm3Pack16: return "G12X4B12X4R12X43Plane422Unorm3Pack16";
2483       case Format::eG12X4B12X4R12X42Plane422Unorm3Pack16: return "G12X4B12X4R12X42Plane422Unorm3Pack16";
2484       case Format::eG12X4B12X4R12X43Plane444Unorm3Pack16: return "G12X4B12X4R12X43Plane444Unorm3Pack16";
2485       case Format::eG16B16G16R16422Unorm: return "G16B16G16R16422Unorm";
2486       case Format::eB16G16R16G16422Unorm: return "B16G16R16G16422Unorm";
2487       case Format::eG16B16R163Plane420Unorm: return "G16B16R163Plane420Unorm";
2488       case Format::eG16B16R162Plane420Unorm: return "G16B16R162Plane420Unorm";
2489       case Format::eG16B16R163Plane422Unorm: return "G16B16R163Plane422Unorm";
2490       case Format::eG16B16R162Plane422Unorm: return "G16B16R162Plane422Unorm";
2491       case Format::eG16B16R163Plane444Unorm: return "G16B16R163Plane444Unorm";
2492       case Format::ePvrtc12BppUnormBlockIMG: return "Pvrtc12BppUnormBlockIMG";
2493       case Format::ePvrtc14BppUnormBlockIMG: return "Pvrtc14BppUnormBlockIMG";
2494       case Format::ePvrtc22BppUnormBlockIMG: return "Pvrtc22BppUnormBlockIMG";
2495       case Format::ePvrtc24BppUnormBlockIMG: return "Pvrtc24BppUnormBlockIMG";
2496       case Format::ePvrtc12BppSrgbBlockIMG: return "Pvrtc12BppSrgbBlockIMG";
2497       case Format::ePvrtc14BppSrgbBlockIMG: return "Pvrtc14BppSrgbBlockIMG";
2498       case Format::ePvrtc22BppSrgbBlockIMG: return "Pvrtc22BppSrgbBlockIMG";
2499       case Format::ePvrtc24BppSrgbBlockIMG: return "Pvrtc24BppSrgbBlockIMG";
2500       case Format::eAstc4x4SfloatBlockEXT: return "Astc4x4SfloatBlockEXT";
2501       case Format::eAstc5x4SfloatBlockEXT: return "Astc5x4SfloatBlockEXT";
2502       case Format::eAstc5x5SfloatBlockEXT: return "Astc5x5SfloatBlockEXT";
2503       case Format::eAstc6x5SfloatBlockEXT: return "Astc6x5SfloatBlockEXT";
2504       case Format::eAstc6x6SfloatBlockEXT: return "Astc6x6SfloatBlockEXT";
2505       case Format::eAstc8x5SfloatBlockEXT: return "Astc8x5SfloatBlockEXT";
2506       case Format::eAstc8x6SfloatBlockEXT: return "Astc8x6SfloatBlockEXT";
2507       case Format::eAstc8x8SfloatBlockEXT: return "Astc8x8SfloatBlockEXT";
2508       case Format::eAstc10x5SfloatBlockEXT: return "Astc10x5SfloatBlockEXT";
2509       case Format::eAstc10x6SfloatBlockEXT: return "Astc10x6SfloatBlockEXT";
2510       case Format::eAstc10x8SfloatBlockEXT: return "Astc10x8SfloatBlockEXT";
2511       case Format::eAstc10x10SfloatBlockEXT: return "Astc10x10SfloatBlockEXT";
2512       case Format::eAstc12x10SfloatBlockEXT: return "Astc12x10SfloatBlockEXT";
2513       case Format::eAstc12x12SfloatBlockEXT: return "Astc12x12SfloatBlockEXT";
2514       case Format::eG8B8R82Plane444UnormEXT: return "G8B8R82Plane444UnormEXT";
2515       case Format::eG10X6B10X6R10X62Plane444Unorm3Pack16EXT: return "G10X6B10X6R10X62Plane444Unorm3Pack16EXT";
2516       case Format::eG12X4B12X4R12X42Plane444Unorm3Pack16EXT: return "G12X4B12X4R12X42Plane444Unorm3Pack16EXT";
2517       case Format::eG16B16R162Plane444UnormEXT: return "G16B16R162Plane444UnormEXT";
2518       case Format::eA4R4G4B4UnormPack16EXT: return "A4R4G4B4UnormPack16EXT";
2519       case Format::eA4B4G4R4UnormPack16EXT: return "A4B4G4R4UnormPack16EXT";
2520       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2521     }
2522   }
2523 
2524   enum class FormatFeatureFlagBits : VkFormatFeatureFlags
2525   {
2526     eSampledImage                            = VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
2527     eStorageImage                            = VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,
2528     eStorageImageAtomic                      = VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,
2529     eUniformTexelBuffer                      = VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,
2530     eStorageTexelBuffer                      = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,
2531     eStorageTexelBufferAtomic                = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,
2532     eVertexBuffer                            = VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,
2533     eColorAttachment                         = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,
2534     eColorAttachmentBlend                    = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,
2535     eDepthStencilAttachment                  = VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,
2536     eBlitSrc                                 = VK_FORMAT_FEATURE_BLIT_SRC_BIT,
2537     eBlitDst                                 = VK_FORMAT_FEATURE_BLIT_DST_BIT,
2538     eSampledImageFilterLinear                = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT,
2539     eTransferSrc                             = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
2540     eTransferDst                             = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
2541     eMidpointChromaSamples                   = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
2542     eSampledImageYcbcrConversionLinearFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
2543     eSampledImageYcbcrConversionSeparateReconstructionFilter =
2544       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
2545     eSampledImageYcbcrConversionChromaReconstructionExplicit =
2546       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
2547     eSampledImageYcbcrConversionChromaReconstructionExplicitForceable =
2548       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
2549     eDisjoint                   = VK_FORMAT_FEATURE_DISJOINT_BIT,
2550     eCositedChromaSamples       = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
2551     eSampledImageFilterMinmax   = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
2552     eSampledImageFilterCubicIMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,
2553 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2554     eVideoDecodeOutputKHR = VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR,
2555     eVideoDecodeDpbKHR    = VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR,
2556 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2557     eAccelerationStructureVertexBufferKHR = VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,
2558     eFragmentDensityMapEXT                = VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,
2559     eFragmentShadingRateAttachmentKHR     = VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2560 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2561     eVideoEncodeInputKHR = VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR,
2562     eVideoEncodeDpbKHR   = VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR,
2563 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2564     eCositedChromaSamplesKHR     = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR,
2565     eDisjointKHR                 = VK_FORMAT_FEATURE_DISJOINT_BIT_KHR,
2566     eMidpointChromaSamplesKHR    = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR,
2567     eSampledImageFilterCubicEXT  = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
2568     eSampledImageFilterMinmaxEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT,
2569     eSampledImageYcbcrConversionChromaReconstructionExplicitKHR =
2570       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR,
2571     eSampledImageYcbcrConversionChromaReconstructionExplicitForceableKHR =
2572       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR,
2573     eSampledImageYcbcrConversionLinearFilterKHR =
2574       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR,
2575     eSampledImageYcbcrConversionSeparateReconstructionFilterKHR =
2576       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR,
2577     eTransferDstKHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR,
2578     eTransferSrcKHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
2579   };
2580 
to_string(FormatFeatureFlagBits value)2581   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlagBits value )
2582   {
2583     switch ( value )
2584     {
2585       case FormatFeatureFlagBits::eSampledImage: return "SampledImage";
2586       case FormatFeatureFlagBits::eStorageImage: return "StorageImage";
2587       case FormatFeatureFlagBits::eStorageImageAtomic: return "StorageImageAtomic";
2588       case FormatFeatureFlagBits::eUniformTexelBuffer: return "UniformTexelBuffer";
2589       case FormatFeatureFlagBits::eStorageTexelBuffer: return "StorageTexelBuffer";
2590       case FormatFeatureFlagBits::eStorageTexelBufferAtomic: return "StorageTexelBufferAtomic";
2591       case FormatFeatureFlagBits::eVertexBuffer: return "VertexBuffer";
2592       case FormatFeatureFlagBits::eColorAttachment: return "ColorAttachment";
2593       case FormatFeatureFlagBits::eColorAttachmentBlend: return "ColorAttachmentBlend";
2594       case FormatFeatureFlagBits::eDepthStencilAttachment: return "DepthStencilAttachment";
2595       case FormatFeatureFlagBits::eBlitSrc: return "BlitSrc";
2596       case FormatFeatureFlagBits::eBlitDst: return "BlitDst";
2597       case FormatFeatureFlagBits::eSampledImageFilterLinear: return "SampledImageFilterLinear";
2598       case FormatFeatureFlagBits::eTransferSrc: return "TransferSrc";
2599       case FormatFeatureFlagBits::eTransferDst: return "TransferDst";
2600       case FormatFeatureFlagBits::eMidpointChromaSamples: return "MidpointChromaSamples";
2601       case FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter:
2602         return "SampledImageYcbcrConversionLinearFilter";
2603       case FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter:
2604         return "SampledImageYcbcrConversionSeparateReconstructionFilter";
2605       case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit:
2606         return "SampledImageYcbcrConversionChromaReconstructionExplicit";
2607       case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable:
2608         return "SampledImageYcbcrConversionChromaReconstructionExplicitForceable";
2609       case FormatFeatureFlagBits::eDisjoint: return "Disjoint";
2610       case FormatFeatureFlagBits::eCositedChromaSamples: return "CositedChromaSamples";
2611       case FormatFeatureFlagBits::eSampledImageFilterMinmax: return "SampledImageFilterMinmax";
2612       case FormatFeatureFlagBits::eSampledImageFilterCubicIMG: return "SampledImageFilterCubicIMG";
2613 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2614       case FormatFeatureFlagBits::eVideoDecodeOutputKHR: return "VideoDecodeOutputKHR";
2615       case FormatFeatureFlagBits::eVideoDecodeDpbKHR: return "VideoDecodeDpbKHR";
2616 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2617       case FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR: return "AccelerationStructureVertexBufferKHR";
2618       case FormatFeatureFlagBits::eFragmentDensityMapEXT: return "FragmentDensityMapEXT";
2619       case FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR: return "FragmentShadingRateAttachmentKHR";
2620 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2621       case FormatFeatureFlagBits::eVideoEncodeInputKHR: return "VideoEncodeInputKHR";
2622       case FormatFeatureFlagBits::eVideoEncodeDpbKHR: return "VideoEncodeDpbKHR";
2623 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2624       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2625     }
2626   }
2627 
2628   enum class ImageCreateFlagBits : VkImageCreateFlags
2629   {
2630     eSparseBinding                     = VK_IMAGE_CREATE_SPARSE_BINDING_BIT,
2631     eSparseResidency                   = VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,
2632     eSparseAliased                     = VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,
2633     eMutableFormat                     = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,
2634     eCubeCompatible                    = VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,
2635     eAlias                             = VK_IMAGE_CREATE_ALIAS_BIT,
2636     eSplitInstanceBindRegions          = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
2637     e2DArrayCompatible                 = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
2638     eBlockTexelViewCompatible          = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
2639     eExtendedUsage                     = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
2640     eProtected                         = VK_IMAGE_CREATE_PROTECTED_BIT,
2641     eDisjoint                          = VK_IMAGE_CREATE_DISJOINT_BIT,
2642     eCornerSampledNV                   = VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,
2643     eSampleLocationsCompatibleDepthEXT = VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT,
2644     eSubsampledEXT                     = VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,
2645     e2DArrayCompatibleKHR              = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR,
2646     eAliasKHR                          = VK_IMAGE_CREATE_ALIAS_BIT_KHR,
2647     eBlockTexelViewCompatibleKHR       = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR,
2648     eDisjointKHR                       = VK_IMAGE_CREATE_DISJOINT_BIT_KHR,
2649     eExtendedUsageKHR                  = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR,
2650     eSplitInstanceBindRegionsKHR       = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
2651   };
2652 
to_string(ImageCreateFlagBits value)2653   VULKAN_HPP_INLINE std::string to_string( ImageCreateFlagBits value )
2654   {
2655     switch ( value )
2656     {
2657       case ImageCreateFlagBits::eSparseBinding: return "SparseBinding";
2658       case ImageCreateFlagBits::eSparseResidency: return "SparseResidency";
2659       case ImageCreateFlagBits::eSparseAliased: return "SparseAliased";
2660       case ImageCreateFlagBits::eMutableFormat: return "MutableFormat";
2661       case ImageCreateFlagBits::eCubeCompatible: return "CubeCompatible";
2662       case ImageCreateFlagBits::eAlias: return "Alias";
2663       case ImageCreateFlagBits::eSplitInstanceBindRegions: return "SplitInstanceBindRegions";
2664       case ImageCreateFlagBits::e2DArrayCompatible: return "2DArrayCompatible";
2665       case ImageCreateFlagBits::eBlockTexelViewCompatible: return "BlockTexelViewCompatible";
2666       case ImageCreateFlagBits::eExtendedUsage: return "ExtendedUsage";
2667       case ImageCreateFlagBits::eProtected: return "Protected";
2668       case ImageCreateFlagBits::eDisjoint: return "Disjoint";
2669       case ImageCreateFlagBits::eCornerSampledNV: return "CornerSampledNV";
2670       case ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT: return "SampleLocationsCompatibleDepthEXT";
2671       case ImageCreateFlagBits::eSubsampledEXT: return "SubsampledEXT";
2672       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2673     }
2674   }
2675 
2676   enum class ImageTiling
2677   {
2678     eOptimal              = VK_IMAGE_TILING_OPTIMAL,
2679     eLinear               = VK_IMAGE_TILING_LINEAR,
2680     eDrmFormatModifierEXT = VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
2681   };
2682 
to_string(ImageTiling value)2683   VULKAN_HPP_INLINE std::string to_string( ImageTiling value )
2684   {
2685     switch ( value )
2686     {
2687       case ImageTiling::eOptimal: return "Optimal";
2688       case ImageTiling::eLinear: return "Linear";
2689       case ImageTiling::eDrmFormatModifierEXT: return "DrmFormatModifierEXT";
2690       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2691     }
2692   }
2693 
2694   enum class ImageType
2695   {
2696     e1D = VK_IMAGE_TYPE_1D,
2697     e2D = VK_IMAGE_TYPE_2D,
2698     e3D = VK_IMAGE_TYPE_3D
2699   };
2700 
to_string(ImageType value)2701   VULKAN_HPP_INLINE std::string to_string( ImageType value )
2702   {
2703     switch ( value )
2704     {
2705       case ImageType::e1D: return "1D";
2706       case ImageType::e2D: return "2D";
2707       case ImageType::e3D: return "3D";
2708       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2709     }
2710   }
2711 
2712   enum class ImageUsageFlagBits : VkImageUsageFlags
2713   {
2714     eTransferSrc            = VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
2715     eTransferDst            = VK_IMAGE_USAGE_TRANSFER_DST_BIT,
2716     eSampled                = VK_IMAGE_USAGE_SAMPLED_BIT,
2717     eStorage                = VK_IMAGE_USAGE_STORAGE_BIT,
2718     eColorAttachment        = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,
2719     eDepthStencilAttachment = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
2720     eTransientAttachment    = VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,
2721     eInputAttachment        = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,
2722 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2723     eVideoDecodeDstKHR = VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR,
2724     eVideoDecodeSrcKHR = VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR,
2725     eVideoDecodeDpbKHR = VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR,
2726 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2727     eFragmentDensityMapEXT            = VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,
2728     eFragmentShadingRateAttachmentKHR = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2729 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2730     eVideoEncodeDstKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR,
2731     eVideoEncodeSrcKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,
2732     eVideoEncodeDpbKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR,
2733 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2734     eInvocationMaskHUAWEI = VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI,
2735     eShadingRateImageNV   = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV
2736   };
2737 
to_string(ImageUsageFlagBits value)2738   VULKAN_HPP_INLINE std::string to_string( ImageUsageFlagBits value )
2739   {
2740     switch ( value )
2741     {
2742       case ImageUsageFlagBits::eTransferSrc: return "TransferSrc";
2743       case ImageUsageFlagBits::eTransferDst: return "TransferDst";
2744       case ImageUsageFlagBits::eSampled: return "Sampled";
2745       case ImageUsageFlagBits::eStorage: return "Storage";
2746       case ImageUsageFlagBits::eColorAttachment: return "ColorAttachment";
2747       case ImageUsageFlagBits::eDepthStencilAttachment: return "DepthStencilAttachment";
2748       case ImageUsageFlagBits::eTransientAttachment: return "TransientAttachment";
2749       case ImageUsageFlagBits::eInputAttachment: return "InputAttachment";
2750 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2751       case ImageUsageFlagBits::eVideoDecodeDstKHR: return "VideoDecodeDstKHR";
2752       case ImageUsageFlagBits::eVideoDecodeSrcKHR: return "VideoDecodeSrcKHR";
2753       case ImageUsageFlagBits::eVideoDecodeDpbKHR: return "VideoDecodeDpbKHR";
2754 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2755       case ImageUsageFlagBits::eFragmentDensityMapEXT: return "FragmentDensityMapEXT";
2756       case ImageUsageFlagBits::eFragmentShadingRateAttachmentKHR: return "FragmentShadingRateAttachmentKHR";
2757 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2758       case ImageUsageFlagBits::eVideoEncodeDstKHR: return "VideoEncodeDstKHR";
2759       case ImageUsageFlagBits::eVideoEncodeSrcKHR: return "VideoEncodeSrcKHR";
2760       case ImageUsageFlagBits::eVideoEncodeDpbKHR: return "VideoEncodeDpbKHR";
2761 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2762       case ImageUsageFlagBits::eInvocationMaskHUAWEI: return "InvocationMaskHUAWEI";
2763       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2764     }
2765   }
2766 
2767   enum class InternalAllocationType
2768   {
2769     eExecutable = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE
2770   };
2771 
to_string(InternalAllocationType value)2772   VULKAN_HPP_INLINE std::string to_string( InternalAllocationType value )
2773   {
2774     switch ( value )
2775     {
2776       case InternalAllocationType::eExecutable: return "Executable";
2777       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2778     }
2779   }
2780 
2781   enum class MemoryHeapFlagBits : VkMemoryHeapFlags
2782   {
2783     eDeviceLocal      = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,
2784     eMultiInstance    = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
2785     eMultiInstanceKHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR
2786   };
2787 
to_string(MemoryHeapFlagBits value)2788   VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlagBits value )
2789   {
2790     switch ( value )
2791     {
2792       case MemoryHeapFlagBits::eDeviceLocal: return "DeviceLocal";
2793       case MemoryHeapFlagBits::eMultiInstance: return "MultiInstance";
2794       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2795     }
2796   }
2797 
2798   enum class MemoryPropertyFlagBits : VkMemoryPropertyFlags
2799   {
2800     eDeviceLocal       = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
2801     eHostVisible       = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
2802     eHostCoherent      = VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
2803     eHostCached        = VK_MEMORY_PROPERTY_HOST_CACHED_BIT,
2804     eLazilyAllocated   = VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,
2805     eProtected         = VK_MEMORY_PROPERTY_PROTECTED_BIT,
2806     eDeviceCoherentAMD = VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,
2807     eDeviceUncachedAMD = VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD,
2808     eRdmaCapableNV     = VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV
2809   };
2810 
to_string(MemoryPropertyFlagBits value)2811   VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlagBits value )
2812   {
2813     switch ( value )
2814     {
2815       case MemoryPropertyFlagBits::eDeviceLocal: return "DeviceLocal";
2816       case MemoryPropertyFlagBits::eHostVisible: return "HostVisible";
2817       case MemoryPropertyFlagBits::eHostCoherent: return "HostCoherent";
2818       case MemoryPropertyFlagBits::eHostCached: return "HostCached";
2819       case MemoryPropertyFlagBits::eLazilyAllocated: return "LazilyAllocated";
2820       case MemoryPropertyFlagBits::eProtected: return "Protected";
2821       case MemoryPropertyFlagBits::eDeviceCoherentAMD: return "DeviceCoherentAMD";
2822       case MemoryPropertyFlagBits::eDeviceUncachedAMD: return "DeviceUncachedAMD";
2823       case MemoryPropertyFlagBits::eRdmaCapableNV: return "RdmaCapableNV";
2824       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2825     }
2826   }
2827 
2828   enum class PhysicalDeviceType
2829   {
2830     eOther         = VK_PHYSICAL_DEVICE_TYPE_OTHER,
2831     eIntegratedGpu = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU,
2832     eDiscreteGpu   = VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
2833     eVirtualGpu    = VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU,
2834     eCpu           = VK_PHYSICAL_DEVICE_TYPE_CPU
2835   };
2836 
to_string(PhysicalDeviceType value)2837   VULKAN_HPP_INLINE std::string to_string( PhysicalDeviceType value )
2838   {
2839     switch ( value )
2840     {
2841       case PhysicalDeviceType::eOther: return "Other";
2842       case PhysicalDeviceType::eIntegratedGpu: return "IntegratedGpu";
2843       case PhysicalDeviceType::eDiscreteGpu: return "DiscreteGpu";
2844       case PhysicalDeviceType::eVirtualGpu: return "VirtualGpu";
2845       case PhysicalDeviceType::eCpu: return "Cpu";
2846       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2847     }
2848   }
2849 
2850   enum class QueueFlagBits : VkQueueFlags
2851   {
2852     eGraphics      = VK_QUEUE_GRAPHICS_BIT,
2853     eCompute       = VK_QUEUE_COMPUTE_BIT,
2854     eTransfer      = VK_QUEUE_TRANSFER_BIT,
2855     eSparseBinding = VK_QUEUE_SPARSE_BINDING_BIT,
2856     eProtected     = VK_QUEUE_PROTECTED_BIT,
2857 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2858     eVideoDecodeKHR = VK_QUEUE_VIDEO_DECODE_BIT_KHR,
2859     eVideoEncodeKHR = VK_QUEUE_VIDEO_ENCODE_BIT_KHR
2860 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2861   };
2862 
to_string(QueueFlagBits value)2863   VULKAN_HPP_INLINE std::string to_string( QueueFlagBits value )
2864   {
2865     switch ( value )
2866     {
2867       case QueueFlagBits::eGraphics: return "Graphics";
2868       case QueueFlagBits::eCompute: return "Compute";
2869       case QueueFlagBits::eTransfer: return "Transfer";
2870       case QueueFlagBits::eSparseBinding: return "SparseBinding";
2871       case QueueFlagBits::eProtected: return "Protected";
2872 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2873       case QueueFlagBits::eVideoDecodeKHR: return "VideoDecodeKHR";
2874       case QueueFlagBits::eVideoEncodeKHR: return "VideoEncodeKHR";
2875 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2876       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2877     }
2878   }
2879 
2880   enum class SampleCountFlagBits : VkSampleCountFlags
2881   {
2882     e1  = VK_SAMPLE_COUNT_1_BIT,
2883     e2  = VK_SAMPLE_COUNT_2_BIT,
2884     e4  = VK_SAMPLE_COUNT_4_BIT,
2885     e8  = VK_SAMPLE_COUNT_8_BIT,
2886     e16 = VK_SAMPLE_COUNT_16_BIT,
2887     e32 = VK_SAMPLE_COUNT_32_BIT,
2888     e64 = VK_SAMPLE_COUNT_64_BIT
2889   };
2890 
to_string(SampleCountFlagBits value)2891   VULKAN_HPP_INLINE std::string to_string( SampleCountFlagBits value )
2892   {
2893     switch ( value )
2894     {
2895       case SampleCountFlagBits::e1: return "1";
2896       case SampleCountFlagBits::e2: return "2";
2897       case SampleCountFlagBits::e4: return "4";
2898       case SampleCountFlagBits::e8: return "8";
2899       case SampleCountFlagBits::e16: return "16";
2900       case SampleCountFlagBits::e32: return "32";
2901       case SampleCountFlagBits::e64: return "64";
2902       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2903     }
2904   }
2905 
2906   enum class SystemAllocationScope
2907   {
2908     eCommand  = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
2909     eObject   = VK_SYSTEM_ALLOCATION_SCOPE_OBJECT,
2910     eCache    = VK_SYSTEM_ALLOCATION_SCOPE_CACHE,
2911     eDevice   = VK_SYSTEM_ALLOCATION_SCOPE_DEVICE,
2912     eInstance = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE
2913   };
2914 
to_string(SystemAllocationScope value)2915   VULKAN_HPP_INLINE std::string to_string( SystemAllocationScope value )
2916   {
2917     switch ( value )
2918     {
2919       case SystemAllocationScope::eCommand: return "Command";
2920       case SystemAllocationScope::eObject: return "Object";
2921       case SystemAllocationScope::eCache: return "Cache";
2922       case SystemAllocationScope::eDevice: return "Device";
2923       case SystemAllocationScope::eInstance: return "Instance";
2924       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2925     }
2926   }
2927 
2928   enum class InstanceCreateFlagBits
2929   {
2930   };
2931 
to_string(InstanceCreateFlagBits)2932   VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlagBits )
2933   {
2934     return "(void)";
2935   }
2936 
2937   enum class DeviceCreateFlagBits
2938   {
2939   };
2940 
to_string(DeviceCreateFlagBits)2941   VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlagBits )
2942   {
2943     return "(void)";
2944   }
2945 
2946   enum class PipelineStageFlagBits : VkPipelineStageFlags
2947   {
2948     eTopOfPipe                        = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
2949     eDrawIndirect                     = VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,
2950     eVertexInput                      = VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,
2951     eVertexShader                     = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,
2952     eTessellationControlShader        = VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,
2953     eTessellationEvaluationShader     = VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,
2954     eGeometryShader                   = VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,
2955     eFragmentShader                   = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
2956     eEarlyFragmentTests               = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,
2957     eLateFragmentTests                = VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
2958     eColorAttachmentOutput            = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
2959     eComputeShader                    = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
2960     eTransfer                         = VK_PIPELINE_STAGE_TRANSFER_BIT,
2961     eBottomOfPipe                     = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
2962     eHost                             = VK_PIPELINE_STAGE_HOST_BIT,
2963     eAllGraphics                      = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,
2964     eAllCommands                      = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,
2965     eTransformFeedbackEXT             = VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,
2966     eConditionalRenderingEXT          = VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,
2967     eAccelerationStructureBuildKHR    = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
2968     eRayTracingShaderKHR              = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
2969     eTaskShaderNV                     = VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV,
2970     eMeshShaderNV                     = VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV,
2971     eFragmentDensityProcessEXT        = VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,
2972     eFragmentShadingRateAttachmentKHR = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2973     eCommandPreprocessNV              = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,
2974     eNoneKHR                          = VK_PIPELINE_STAGE_NONE_KHR,
2975     eAccelerationStructureBuildNV     = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
2976     eRayTracingShaderNV               = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV,
2977     eShadingRateImageNV               = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV
2978   };
2979 
to_string(PipelineStageFlagBits value)2980   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlagBits value )
2981   {
2982     switch ( value )
2983     {
2984       case PipelineStageFlagBits::eTopOfPipe: return "TopOfPipe";
2985       case PipelineStageFlagBits::eDrawIndirect: return "DrawIndirect";
2986       case PipelineStageFlagBits::eVertexInput: return "VertexInput";
2987       case PipelineStageFlagBits::eVertexShader: return "VertexShader";
2988       case PipelineStageFlagBits::eTessellationControlShader: return "TessellationControlShader";
2989       case PipelineStageFlagBits::eTessellationEvaluationShader: return "TessellationEvaluationShader";
2990       case PipelineStageFlagBits::eGeometryShader: return "GeometryShader";
2991       case PipelineStageFlagBits::eFragmentShader: return "FragmentShader";
2992       case PipelineStageFlagBits::eEarlyFragmentTests: return "EarlyFragmentTests";
2993       case PipelineStageFlagBits::eLateFragmentTests: return "LateFragmentTests";
2994       case PipelineStageFlagBits::eColorAttachmentOutput: return "ColorAttachmentOutput";
2995       case PipelineStageFlagBits::eComputeShader: return "ComputeShader";
2996       case PipelineStageFlagBits::eTransfer: return "Transfer";
2997       case PipelineStageFlagBits::eBottomOfPipe: return "BottomOfPipe";
2998       case PipelineStageFlagBits::eHost: return "Host";
2999       case PipelineStageFlagBits::eAllGraphics: return "AllGraphics";
3000       case PipelineStageFlagBits::eAllCommands: return "AllCommands";
3001       case PipelineStageFlagBits::eTransformFeedbackEXT: return "TransformFeedbackEXT";
3002       case PipelineStageFlagBits::eConditionalRenderingEXT: return "ConditionalRenderingEXT";
3003       case PipelineStageFlagBits::eAccelerationStructureBuildKHR: return "AccelerationStructureBuildKHR";
3004       case PipelineStageFlagBits::eRayTracingShaderKHR: return "RayTracingShaderKHR";
3005       case PipelineStageFlagBits::eTaskShaderNV: return "TaskShaderNV";
3006       case PipelineStageFlagBits::eMeshShaderNV: return "MeshShaderNV";
3007       case PipelineStageFlagBits::eFragmentDensityProcessEXT: return "FragmentDensityProcessEXT";
3008       case PipelineStageFlagBits::eFragmentShadingRateAttachmentKHR: return "FragmentShadingRateAttachmentKHR";
3009       case PipelineStageFlagBits::eCommandPreprocessNV: return "CommandPreprocessNV";
3010       case PipelineStageFlagBits::eNoneKHR: return "NoneKHR";
3011       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3012     }
3013   }
3014 
3015   enum class MemoryMapFlagBits : VkMemoryMapFlags
3016   {
3017   };
3018 
to_string(MemoryMapFlagBits)3019   VULKAN_HPP_INLINE std::string to_string( MemoryMapFlagBits )
3020   {
3021     return "(void)";
3022   }
3023 
3024   enum class ImageAspectFlagBits : VkImageAspectFlags
3025   {
3026     eColor           = VK_IMAGE_ASPECT_COLOR_BIT,
3027     eDepth           = VK_IMAGE_ASPECT_DEPTH_BIT,
3028     eStencil         = VK_IMAGE_ASPECT_STENCIL_BIT,
3029     eMetadata        = VK_IMAGE_ASPECT_METADATA_BIT,
3030     ePlane0          = VK_IMAGE_ASPECT_PLANE_0_BIT,
3031     ePlane1          = VK_IMAGE_ASPECT_PLANE_1_BIT,
3032     ePlane2          = VK_IMAGE_ASPECT_PLANE_2_BIT,
3033     eMemoryPlane0EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,
3034     eMemoryPlane1EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,
3035     eMemoryPlane2EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,
3036     eMemoryPlane3EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,
3037     ePlane0KHR       = VK_IMAGE_ASPECT_PLANE_0_BIT_KHR,
3038     ePlane1KHR       = VK_IMAGE_ASPECT_PLANE_1_BIT_KHR,
3039     ePlane2KHR       = VK_IMAGE_ASPECT_PLANE_2_BIT_KHR
3040   };
3041 
to_string(ImageAspectFlagBits value)3042   VULKAN_HPP_INLINE std::string to_string( ImageAspectFlagBits value )
3043   {
3044     switch ( value )
3045     {
3046       case ImageAspectFlagBits::eColor: return "Color";
3047       case ImageAspectFlagBits::eDepth: return "Depth";
3048       case ImageAspectFlagBits::eStencil: return "Stencil";
3049       case ImageAspectFlagBits::eMetadata: return "Metadata";
3050       case ImageAspectFlagBits::ePlane0: return "Plane0";
3051       case ImageAspectFlagBits::ePlane1: return "Plane1";
3052       case ImageAspectFlagBits::ePlane2: return "Plane2";
3053       case ImageAspectFlagBits::eMemoryPlane0EXT: return "MemoryPlane0EXT";
3054       case ImageAspectFlagBits::eMemoryPlane1EXT: return "MemoryPlane1EXT";
3055       case ImageAspectFlagBits::eMemoryPlane2EXT: return "MemoryPlane2EXT";
3056       case ImageAspectFlagBits::eMemoryPlane3EXT: return "MemoryPlane3EXT";
3057       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3058     }
3059   }
3060 
3061   enum class SparseImageFormatFlagBits : VkSparseImageFormatFlags
3062   {
3063     eSingleMiptail        = VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,
3064     eAlignedMipSize       = VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,
3065     eNonstandardBlockSize = VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT
3066   };
3067 
to_string(SparseImageFormatFlagBits value)3068   VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlagBits value )
3069   {
3070     switch ( value )
3071     {
3072       case SparseImageFormatFlagBits::eSingleMiptail: return "SingleMiptail";
3073       case SparseImageFormatFlagBits::eAlignedMipSize: return "AlignedMipSize";
3074       case SparseImageFormatFlagBits::eNonstandardBlockSize: return "NonstandardBlockSize";
3075       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3076     }
3077   }
3078 
3079   enum class SparseMemoryBindFlagBits : VkSparseMemoryBindFlags
3080   {
3081     eMetadata = VK_SPARSE_MEMORY_BIND_METADATA_BIT
3082   };
3083 
to_string(SparseMemoryBindFlagBits value)3084   VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlagBits value )
3085   {
3086     switch ( value )
3087     {
3088       case SparseMemoryBindFlagBits::eMetadata: return "Metadata";
3089       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3090     }
3091   }
3092 
3093   enum class FenceCreateFlagBits : VkFenceCreateFlags
3094   {
3095     eSignaled = VK_FENCE_CREATE_SIGNALED_BIT
3096   };
3097 
to_string(FenceCreateFlagBits value)3098   VULKAN_HPP_INLINE std::string to_string( FenceCreateFlagBits value )
3099   {
3100     switch ( value )
3101     {
3102       case FenceCreateFlagBits::eSignaled: return "Signaled";
3103       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3104     }
3105   }
3106 
3107   enum class SemaphoreCreateFlagBits : VkSemaphoreCreateFlags
3108   {
3109   };
3110 
to_string(SemaphoreCreateFlagBits)3111   VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlagBits )
3112   {
3113     return "(void)";
3114   }
3115 
3116   enum class EventCreateFlagBits : VkEventCreateFlags
3117   {
3118     eDeviceOnlyKHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR
3119   };
3120 
to_string(EventCreateFlagBits value)3121   VULKAN_HPP_INLINE std::string to_string( EventCreateFlagBits value )
3122   {
3123     switch ( value )
3124     {
3125       case EventCreateFlagBits::eDeviceOnlyKHR: return "DeviceOnlyKHR";
3126       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3127     }
3128   }
3129 
3130   enum class QueryPipelineStatisticFlagBits : VkQueryPipelineStatisticFlags
3131   {
3132     eInputAssemblyVertices            = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,
3133     eInputAssemblyPrimitives          = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,
3134     eVertexShaderInvocations          = VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,
3135     eGeometryShaderInvocations        = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,
3136     eGeometryShaderPrimitives         = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,
3137     eClippingInvocations              = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,
3138     eClippingPrimitives               = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,
3139     eFragmentShaderInvocations        = VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,
3140     eTessellationControlShaderPatches = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,
3141     eTessellationEvaluationShaderInvocations =
3142       VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,
3143     eComputeShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT
3144   };
3145 
to_string(QueryPipelineStatisticFlagBits value)3146   VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlagBits value )
3147   {
3148     switch ( value )
3149     {
3150       case QueryPipelineStatisticFlagBits::eInputAssemblyVertices: return "InputAssemblyVertices";
3151       case QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives: return "InputAssemblyPrimitives";
3152       case QueryPipelineStatisticFlagBits::eVertexShaderInvocations: return "VertexShaderInvocations";
3153       case QueryPipelineStatisticFlagBits::eGeometryShaderInvocations: return "GeometryShaderInvocations";
3154       case QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives: return "GeometryShaderPrimitives";
3155       case QueryPipelineStatisticFlagBits::eClippingInvocations: return "ClippingInvocations";
3156       case QueryPipelineStatisticFlagBits::eClippingPrimitives: return "ClippingPrimitives";
3157       case QueryPipelineStatisticFlagBits::eFragmentShaderInvocations: return "FragmentShaderInvocations";
3158       case QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches: return "TessellationControlShaderPatches";
3159       case QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations:
3160         return "TessellationEvaluationShaderInvocations";
3161       case QueryPipelineStatisticFlagBits::eComputeShaderInvocations: return "ComputeShaderInvocations";
3162       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3163     }
3164   }
3165 
3166   enum class QueryResultFlagBits : VkQueryResultFlags
3167   {
3168     e64               = VK_QUERY_RESULT_64_BIT,
3169     eWait             = VK_QUERY_RESULT_WAIT_BIT,
3170     eWithAvailability = VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,
3171     ePartial          = VK_QUERY_RESULT_PARTIAL_BIT,
3172 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3173     eWithStatusKHR = VK_QUERY_RESULT_WITH_STATUS_BIT_KHR
3174 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3175   };
3176 
to_string(QueryResultFlagBits value)3177   VULKAN_HPP_INLINE std::string to_string( QueryResultFlagBits value )
3178   {
3179     switch ( value )
3180     {
3181       case QueryResultFlagBits::e64: return "64";
3182       case QueryResultFlagBits::eWait: return "Wait";
3183       case QueryResultFlagBits::eWithAvailability: return "WithAvailability";
3184       case QueryResultFlagBits::ePartial: return "Partial";
3185 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3186       case QueryResultFlagBits::eWithStatusKHR: return "WithStatusKHR";
3187 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3188       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3189     }
3190   }
3191 
3192   enum class QueryType
3193   {
3194     eOcclusion          = VK_QUERY_TYPE_OCCLUSION,
3195     ePipelineStatistics = VK_QUERY_TYPE_PIPELINE_STATISTICS,
3196     eTimestamp          = VK_QUERY_TYPE_TIMESTAMP,
3197 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3198     eResultStatusOnlyKHR = VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR,
3199 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3200     eTransformFeedbackStreamEXT                = VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT,
3201     ePerformanceQueryKHR                       = VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR,
3202     eAccelerationStructureCompactedSizeKHR     = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR,
3203     eAccelerationStructureSerializationSizeKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR,
3204     eAccelerationStructureCompactedSizeNV      = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV,
3205     ePerformanceQueryINTEL                     = VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL,
3206 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3207     eVideoEncodeBitstreamBufferRangeKHR = VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR
3208 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3209   };
3210 
to_string(QueryType value)3211   VULKAN_HPP_INLINE std::string to_string( QueryType value )
3212   {
3213     switch ( value )
3214     {
3215       case QueryType::eOcclusion: return "Occlusion";
3216       case QueryType::ePipelineStatistics: return "PipelineStatistics";
3217       case QueryType::eTimestamp: return "Timestamp";
3218 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3219       case QueryType::eResultStatusOnlyKHR: return "ResultStatusOnlyKHR";
3220 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3221       case QueryType::eTransformFeedbackStreamEXT: return "TransformFeedbackStreamEXT";
3222       case QueryType::ePerformanceQueryKHR: return "PerformanceQueryKHR";
3223       case QueryType::eAccelerationStructureCompactedSizeKHR: return "AccelerationStructureCompactedSizeKHR";
3224       case QueryType::eAccelerationStructureSerializationSizeKHR: return "AccelerationStructureSerializationSizeKHR";
3225       case QueryType::eAccelerationStructureCompactedSizeNV: return "AccelerationStructureCompactedSizeNV";
3226       case QueryType::ePerformanceQueryINTEL: return "PerformanceQueryINTEL";
3227 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3228       case QueryType::eVideoEncodeBitstreamBufferRangeKHR: return "VideoEncodeBitstreamBufferRangeKHR";
3229 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3230       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3231     }
3232   }
3233 
3234   enum class QueryPoolCreateFlagBits
3235   {
3236   };
3237 
to_string(QueryPoolCreateFlagBits)3238   VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlagBits )
3239   {
3240     return "(void)";
3241   }
3242 
3243   enum class BufferCreateFlagBits : VkBufferCreateFlags
3244   {
3245     eSparseBinding                 = VK_BUFFER_CREATE_SPARSE_BINDING_BIT,
3246     eSparseResidency               = VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,
3247     eSparseAliased                 = VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,
3248     eProtected                     = VK_BUFFER_CREATE_PROTECTED_BIT,
3249     eDeviceAddressCaptureReplay    = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
3250     eDeviceAddressCaptureReplayEXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT,
3251     eDeviceAddressCaptureReplayKHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR
3252   };
3253 
to_string(BufferCreateFlagBits value)3254   VULKAN_HPP_INLINE std::string to_string( BufferCreateFlagBits value )
3255   {
3256     switch ( value )
3257     {
3258       case BufferCreateFlagBits::eSparseBinding: return "SparseBinding";
3259       case BufferCreateFlagBits::eSparseResidency: return "SparseResidency";
3260       case BufferCreateFlagBits::eSparseAliased: return "SparseAliased";
3261       case BufferCreateFlagBits::eProtected: return "Protected";
3262       case BufferCreateFlagBits::eDeviceAddressCaptureReplay: return "DeviceAddressCaptureReplay";
3263       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3264     }
3265   }
3266 
3267   enum class BufferUsageFlagBits : VkBufferUsageFlags
3268   {
3269     eTransferSrc         = VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
3270     eTransferDst         = VK_BUFFER_USAGE_TRANSFER_DST_BIT,
3271     eUniformTexelBuffer  = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,
3272     eStorageTexelBuffer  = VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,
3273     eUniformBuffer       = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
3274     eStorageBuffer       = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
3275     eIndexBuffer         = VK_BUFFER_USAGE_INDEX_BUFFER_BIT,
3276     eVertexBuffer        = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
3277     eIndirectBuffer      = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,
3278     eShaderDeviceAddress = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
3279 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3280     eVideoDecodeSrcKHR = VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR,
3281     eVideoDecodeDstKHR = VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR,
3282 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3283     eTransformFeedbackBufferEXT                 = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,
3284     eTransformFeedbackCounterBufferEXT          = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,
3285     eConditionalRenderingEXT                    = VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,
3286     eAccelerationStructureBuildInputReadOnlyKHR = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR,
3287     eAccelerationStructureStorageKHR            = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,
3288     eShaderBindingTableKHR                      = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
3289 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3290     eVideoEncodeDstKHR = VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR,
3291     eVideoEncodeSrcKHR = VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,
3292 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3293     eRayTracingNV           = VK_BUFFER_USAGE_RAY_TRACING_BIT_NV,
3294     eShaderDeviceAddressEXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT,
3295     eShaderDeviceAddressKHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR
3296   };
3297 
to_string(BufferUsageFlagBits value)3298   VULKAN_HPP_INLINE std::string to_string( BufferUsageFlagBits value )
3299   {
3300     switch ( value )
3301     {
3302       case BufferUsageFlagBits::eTransferSrc: return "TransferSrc";
3303       case BufferUsageFlagBits::eTransferDst: return "TransferDst";
3304       case BufferUsageFlagBits::eUniformTexelBuffer: return "UniformTexelBuffer";
3305       case BufferUsageFlagBits::eStorageTexelBuffer: return "StorageTexelBuffer";
3306       case BufferUsageFlagBits::eUniformBuffer: return "UniformBuffer";
3307       case BufferUsageFlagBits::eStorageBuffer: return "StorageBuffer";
3308       case BufferUsageFlagBits::eIndexBuffer: return "IndexBuffer";
3309       case BufferUsageFlagBits::eVertexBuffer: return "VertexBuffer";
3310       case BufferUsageFlagBits::eIndirectBuffer: return "IndirectBuffer";
3311       case BufferUsageFlagBits::eShaderDeviceAddress: return "ShaderDeviceAddress";
3312 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3313       case BufferUsageFlagBits::eVideoDecodeSrcKHR: return "VideoDecodeSrcKHR";
3314       case BufferUsageFlagBits::eVideoDecodeDstKHR: return "VideoDecodeDstKHR";
3315 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3316       case BufferUsageFlagBits::eTransformFeedbackBufferEXT: return "TransformFeedbackBufferEXT";
3317       case BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT: return "TransformFeedbackCounterBufferEXT";
3318       case BufferUsageFlagBits::eConditionalRenderingEXT: return "ConditionalRenderingEXT";
3319       case BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR:
3320         return "AccelerationStructureBuildInputReadOnlyKHR";
3321       case BufferUsageFlagBits::eAccelerationStructureStorageKHR: return "AccelerationStructureStorageKHR";
3322       case BufferUsageFlagBits::eShaderBindingTableKHR: return "ShaderBindingTableKHR";
3323 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3324       case BufferUsageFlagBits::eVideoEncodeDstKHR: return "VideoEncodeDstKHR";
3325       case BufferUsageFlagBits::eVideoEncodeSrcKHR: return "VideoEncodeSrcKHR";
3326 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3327       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3328     }
3329   }
3330 
3331   enum class SharingMode
3332   {
3333     eExclusive  = VK_SHARING_MODE_EXCLUSIVE,
3334     eConcurrent = VK_SHARING_MODE_CONCURRENT
3335   };
3336 
to_string(SharingMode value)3337   VULKAN_HPP_INLINE std::string to_string( SharingMode value )
3338   {
3339     switch ( value )
3340     {
3341       case SharingMode::eExclusive: return "Exclusive";
3342       case SharingMode::eConcurrent: return "Concurrent";
3343       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3344     }
3345   }
3346 
3347   enum class BufferViewCreateFlagBits : VkBufferViewCreateFlags
3348   {
3349   };
3350 
to_string(BufferViewCreateFlagBits)3351   VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlagBits )
3352   {
3353     return "(void)";
3354   }
3355 
3356   enum class ImageLayout
3357   {
3358     eUndefined                             = VK_IMAGE_LAYOUT_UNDEFINED,
3359     eGeneral                               = VK_IMAGE_LAYOUT_GENERAL,
3360     eColorAttachmentOptimal                = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
3361     eDepthStencilAttachmentOptimal         = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
3362     eDepthStencilReadOnlyOptimal           = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,
3363     eShaderReadOnlyOptimal                 = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
3364     eTransferSrcOptimal                    = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
3365     eTransferDstOptimal                    = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
3366     ePreinitialized                        = VK_IMAGE_LAYOUT_PREINITIALIZED,
3367     eDepthReadOnlyStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
3368     eDepthAttachmentStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
3369     eDepthAttachmentOptimal                = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
3370     eDepthReadOnlyOptimal                  = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
3371     eStencilAttachmentOptimal              = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
3372     eStencilReadOnlyOptimal                = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
3373     ePresentSrcKHR                         = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR,
3374 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3375     eVideoDecodeDstKHR = VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR,
3376     eVideoDecodeSrcKHR = VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR,
3377     eVideoDecodeDpbKHR = VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR,
3378 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3379     eSharedPresentKHR                        = VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
3380     eFragmentDensityMapOptimalEXT            = VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT,
3381     eFragmentShadingRateAttachmentOptimalKHR = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
3382 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3383     eVideoEncodeDstKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR,
3384     eVideoEncodeSrcKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR,
3385     eVideoEncodeDpbKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR,
3386 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3387     eReadOnlyOptimalKHR                       = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR,
3388     eAttachmentOptimalKHR                     = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR,
3389     eDepthAttachmentOptimalKHR                = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR,
3390     eDepthAttachmentStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR,
3391     eDepthReadOnlyOptimalKHR                  = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR,
3392     eDepthReadOnlyStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR,
3393     eShadingRateOptimalNV                     = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV,
3394     eStencilAttachmentOptimalKHR              = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR,
3395     eStencilReadOnlyOptimalKHR                = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR
3396   };
3397 
to_string(ImageLayout value)3398   VULKAN_HPP_INLINE std::string to_string( ImageLayout value )
3399   {
3400     switch ( value )
3401     {
3402       case ImageLayout::eUndefined: return "Undefined";
3403       case ImageLayout::eGeneral: return "General";
3404       case ImageLayout::eColorAttachmentOptimal: return "ColorAttachmentOptimal";
3405       case ImageLayout::eDepthStencilAttachmentOptimal: return "DepthStencilAttachmentOptimal";
3406       case ImageLayout::eDepthStencilReadOnlyOptimal: return "DepthStencilReadOnlyOptimal";
3407       case ImageLayout::eShaderReadOnlyOptimal: return "ShaderReadOnlyOptimal";
3408       case ImageLayout::eTransferSrcOptimal: return "TransferSrcOptimal";
3409       case ImageLayout::eTransferDstOptimal: return "TransferDstOptimal";
3410       case ImageLayout::ePreinitialized: return "Preinitialized";
3411       case ImageLayout::eDepthReadOnlyStencilAttachmentOptimal: return "DepthReadOnlyStencilAttachmentOptimal";
3412       case ImageLayout::eDepthAttachmentStencilReadOnlyOptimal: return "DepthAttachmentStencilReadOnlyOptimal";
3413       case ImageLayout::eDepthAttachmentOptimal: return "DepthAttachmentOptimal";
3414       case ImageLayout::eDepthReadOnlyOptimal: return "DepthReadOnlyOptimal";
3415       case ImageLayout::eStencilAttachmentOptimal: return "StencilAttachmentOptimal";
3416       case ImageLayout::eStencilReadOnlyOptimal: return "StencilReadOnlyOptimal";
3417       case ImageLayout::ePresentSrcKHR: return "PresentSrcKHR";
3418 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3419       case ImageLayout::eVideoDecodeDstKHR: return "VideoDecodeDstKHR";
3420       case ImageLayout::eVideoDecodeSrcKHR: return "VideoDecodeSrcKHR";
3421       case ImageLayout::eVideoDecodeDpbKHR: return "VideoDecodeDpbKHR";
3422 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3423       case ImageLayout::eSharedPresentKHR: return "SharedPresentKHR";
3424       case ImageLayout::eFragmentDensityMapOptimalEXT: return "FragmentDensityMapOptimalEXT";
3425       case ImageLayout::eFragmentShadingRateAttachmentOptimalKHR: return "FragmentShadingRateAttachmentOptimalKHR";
3426 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3427       case ImageLayout::eVideoEncodeDstKHR: return "VideoEncodeDstKHR";
3428       case ImageLayout::eVideoEncodeSrcKHR: return "VideoEncodeSrcKHR";
3429       case ImageLayout::eVideoEncodeDpbKHR: return "VideoEncodeDpbKHR";
3430 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3431       case ImageLayout::eReadOnlyOptimalKHR: return "ReadOnlyOptimalKHR";
3432       case ImageLayout::eAttachmentOptimalKHR: return "AttachmentOptimalKHR";
3433       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3434     }
3435   }
3436 
3437   enum class ComponentSwizzle
3438   {
3439     eIdentity = VK_COMPONENT_SWIZZLE_IDENTITY,
3440     eZero     = VK_COMPONENT_SWIZZLE_ZERO,
3441     eOne      = VK_COMPONENT_SWIZZLE_ONE,
3442     eR        = VK_COMPONENT_SWIZZLE_R,
3443     eG        = VK_COMPONENT_SWIZZLE_G,
3444     eB        = VK_COMPONENT_SWIZZLE_B,
3445     eA        = VK_COMPONENT_SWIZZLE_A
3446   };
3447 
to_string(ComponentSwizzle value)3448   VULKAN_HPP_INLINE std::string to_string( ComponentSwizzle value )
3449   {
3450     switch ( value )
3451     {
3452       case ComponentSwizzle::eIdentity: return "Identity";
3453       case ComponentSwizzle::eZero: return "Zero";
3454       case ComponentSwizzle::eOne: return "One";
3455       case ComponentSwizzle::eR: return "R";
3456       case ComponentSwizzle::eG: return "G";
3457       case ComponentSwizzle::eB: return "B";
3458       case ComponentSwizzle::eA: return "A";
3459       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3460     }
3461   }
3462 
3463   enum class ImageViewCreateFlagBits : VkImageViewCreateFlags
3464   {
3465     eFragmentDensityMapDynamicEXT  = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT,
3466     eFragmentDensityMapDeferredEXT = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT
3467   };
3468 
to_string(ImageViewCreateFlagBits value)3469   VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlagBits value )
3470   {
3471     switch ( value )
3472     {
3473       case ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT: return "FragmentDensityMapDynamicEXT";
3474       case ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT: return "FragmentDensityMapDeferredEXT";
3475       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3476     }
3477   }
3478 
3479   enum class ImageViewType
3480   {
3481     e1D        = VK_IMAGE_VIEW_TYPE_1D,
3482     e2D        = VK_IMAGE_VIEW_TYPE_2D,
3483     e3D        = VK_IMAGE_VIEW_TYPE_3D,
3484     eCube      = VK_IMAGE_VIEW_TYPE_CUBE,
3485     e1DArray   = VK_IMAGE_VIEW_TYPE_1D_ARRAY,
3486     e2DArray   = VK_IMAGE_VIEW_TYPE_2D_ARRAY,
3487     eCubeArray = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
3488   };
3489 
to_string(ImageViewType value)3490   VULKAN_HPP_INLINE std::string to_string( ImageViewType value )
3491   {
3492     switch ( value )
3493     {
3494       case ImageViewType::e1D: return "1D";
3495       case ImageViewType::e2D: return "2D";
3496       case ImageViewType::e3D: return "3D";
3497       case ImageViewType::eCube: return "Cube";
3498       case ImageViewType::e1DArray: return "1DArray";
3499       case ImageViewType::e2DArray: return "2DArray";
3500       case ImageViewType::eCubeArray: return "CubeArray";
3501       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3502     }
3503   }
3504 
3505   enum class ShaderModuleCreateFlagBits : VkShaderModuleCreateFlags
3506   {
3507   };
3508 
to_string(ShaderModuleCreateFlagBits)3509   VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlagBits )
3510   {
3511     return "(void)";
3512   }
3513 
3514   enum class BlendFactor
3515   {
3516     eZero                  = VK_BLEND_FACTOR_ZERO,
3517     eOne                   = VK_BLEND_FACTOR_ONE,
3518     eSrcColor              = VK_BLEND_FACTOR_SRC_COLOR,
3519     eOneMinusSrcColor      = VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR,
3520     eDstColor              = VK_BLEND_FACTOR_DST_COLOR,
3521     eOneMinusDstColor      = VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR,
3522     eSrcAlpha              = VK_BLEND_FACTOR_SRC_ALPHA,
3523     eOneMinusSrcAlpha      = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA,
3524     eDstAlpha              = VK_BLEND_FACTOR_DST_ALPHA,
3525     eOneMinusDstAlpha      = VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA,
3526     eConstantColor         = VK_BLEND_FACTOR_CONSTANT_COLOR,
3527     eOneMinusConstantColor = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,
3528     eConstantAlpha         = VK_BLEND_FACTOR_CONSTANT_ALPHA,
3529     eOneMinusConstantAlpha = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,
3530     eSrcAlphaSaturate      = VK_BLEND_FACTOR_SRC_ALPHA_SATURATE,
3531     eSrc1Color             = VK_BLEND_FACTOR_SRC1_COLOR,
3532     eOneMinusSrc1Color     = VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,
3533     eSrc1Alpha             = VK_BLEND_FACTOR_SRC1_ALPHA,
3534     eOneMinusSrc1Alpha     = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
3535   };
3536 
to_string(BlendFactor value)3537   VULKAN_HPP_INLINE std::string to_string( BlendFactor value )
3538   {
3539     switch ( value )
3540     {
3541       case BlendFactor::eZero: return "Zero";
3542       case BlendFactor::eOne: return "One";
3543       case BlendFactor::eSrcColor: return "SrcColor";
3544       case BlendFactor::eOneMinusSrcColor: return "OneMinusSrcColor";
3545       case BlendFactor::eDstColor: return "DstColor";
3546       case BlendFactor::eOneMinusDstColor: return "OneMinusDstColor";
3547       case BlendFactor::eSrcAlpha: return "SrcAlpha";
3548       case BlendFactor::eOneMinusSrcAlpha: return "OneMinusSrcAlpha";
3549       case BlendFactor::eDstAlpha: return "DstAlpha";
3550       case BlendFactor::eOneMinusDstAlpha: return "OneMinusDstAlpha";
3551       case BlendFactor::eConstantColor: return "ConstantColor";
3552       case BlendFactor::eOneMinusConstantColor: return "OneMinusConstantColor";
3553       case BlendFactor::eConstantAlpha: return "ConstantAlpha";
3554       case BlendFactor::eOneMinusConstantAlpha: return "OneMinusConstantAlpha";
3555       case BlendFactor::eSrcAlphaSaturate: return "SrcAlphaSaturate";
3556       case BlendFactor::eSrc1Color: return "Src1Color";
3557       case BlendFactor::eOneMinusSrc1Color: return "OneMinusSrc1Color";
3558       case BlendFactor::eSrc1Alpha: return "Src1Alpha";
3559       case BlendFactor::eOneMinusSrc1Alpha: return "OneMinusSrc1Alpha";
3560       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3561     }
3562   }
3563 
3564   enum class BlendOp
3565   {
3566     eAdd                 = VK_BLEND_OP_ADD,
3567     eSubtract            = VK_BLEND_OP_SUBTRACT,
3568     eReverseSubtract     = VK_BLEND_OP_REVERSE_SUBTRACT,
3569     eMin                 = VK_BLEND_OP_MIN,
3570     eMax                 = VK_BLEND_OP_MAX,
3571     eZeroEXT             = VK_BLEND_OP_ZERO_EXT,
3572     eSrcEXT              = VK_BLEND_OP_SRC_EXT,
3573     eDstEXT              = VK_BLEND_OP_DST_EXT,
3574     eSrcOverEXT          = VK_BLEND_OP_SRC_OVER_EXT,
3575     eDstOverEXT          = VK_BLEND_OP_DST_OVER_EXT,
3576     eSrcInEXT            = VK_BLEND_OP_SRC_IN_EXT,
3577     eDstInEXT            = VK_BLEND_OP_DST_IN_EXT,
3578     eSrcOutEXT           = VK_BLEND_OP_SRC_OUT_EXT,
3579     eDstOutEXT           = VK_BLEND_OP_DST_OUT_EXT,
3580     eSrcAtopEXT          = VK_BLEND_OP_SRC_ATOP_EXT,
3581     eDstAtopEXT          = VK_BLEND_OP_DST_ATOP_EXT,
3582     eXorEXT              = VK_BLEND_OP_XOR_EXT,
3583     eMultiplyEXT         = VK_BLEND_OP_MULTIPLY_EXT,
3584     eScreenEXT           = VK_BLEND_OP_SCREEN_EXT,
3585     eOverlayEXT          = VK_BLEND_OP_OVERLAY_EXT,
3586     eDarkenEXT           = VK_BLEND_OP_DARKEN_EXT,
3587     eLightenEXT          = VK_BLEND_OP_LIGHTEN_EXT,
3588     eColordodgeEXT       = VK_BLEND_OP_COLORDODGE_EXT,
3589     eColorburnEXT        = VK_BLEND_OP_COLORBURN_EXT,
3590     eHardlightEXT        = VK_BLEND_OP_HARDLIGHT_EXT,
3591     eSoftlightEXT        = VK_BLEND_OP_SOFTLIGHT_EXT,
3592     eDifferenceEXT       = VK_BLEND_OP_DIFFERENCE_EXT,
3593     eExclusionEXT        = VK_BLEND_OP_EXCLUSION_EXT,
3594     eInvertEXT           = VK_BLEND_OP_INVERT_EXT,
3595     eInvertRgbEXT        = VK_BLEND_OP_INVERT_RGB_EXT,
3596     eLineardodgeEXT      = VK_BLEND_OP_LINEARDODGE_EXT,
3597     eLinearburnEXT       = VK_BLEND_OP_LINEARBURN_EXT,
3598     eVividlightEXT       = VK_BLEND_OP_VIVIDLIGHT_EXT,
3599     eLinearlightEXT      = VK_BLEND_OP_LINEARLIGHT_EXT,
3600     ePinlightEXT         = VK_BLEND_OP_PINLIGHT_EXT,
3601     eHardmixEXT          = VK_BLEND_OP_HARDMIX_EXT,
3602     eHslHueEXT           = VK_BLEND_OP_HSL_HUE_EXT,
3603     eHslSaturationEXT    = VK_BLEND_OP_HSL_SATURATION_EXT,
3604     eHslColorEXT         = VK_BLEND_OP_HSL_COLOR_EXT,
3605     eHslLuminosityEXT    = VK_BLEND_OP_HSL_LUMINOSITY_EXT,
3606     ePlusEXT             = VK_BLEND_OP_PLUS_EXT,
3607     ePlusClampedEXT      = VK_BLEND_OP_PLUS_CLAMPED_EXT,
3608     ePlusClampedAlphaEXT = VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT,
3609     ePlusDarkerEXT       = VK_BLEND_OP_PLUS_DARKER_EXT,
3610     eMinusEXT            = VK_BLEND_OP_MINUS_EXT,
3611     eMinusClampedEXT     = VK_BLEND_OP_MINUS_CLAMPED_EXT,
3612     eContrastEXT         = VK_BLEND_OP_CONTRAST_EXT,
3613     eInvertOvgEXT        = VK_BLEND_OP_INVERT_OVG_EXT,
3614     eRedEXT              = VK_BLEND_OP_RED_EXT,
3615     eGreenEXT            = VK_BLEND_OP_GREEN_EXT,
3616     eBlueEXT             = VK_BLEND_OP_BLUE_EXT
3617   };
3618 
to_string(BlendOp value)3619   VULKAN_HPP_INLINE std::string to_string( BlendOp value )
3620   {
3621     switch ( value )
3622     {
3623       case BlendOp::eAdd: return "Add";
3624       case BlendOp::eSubtract: return "Subtract";
3625       case BlendOp::eReverseSubtract: return "ReverseSubtract";
3626       case BlendOp::eMin: return "Min";
3627       case BlendOp::eMax: return "Max";
3628       case BlendOp::eZeroEXT: return "ZeroEXT";
3629       case BlendOp::eSrcEXT: return "SrcEXT";
3630       case BlendOp::eDstEXT: return "DstEXT";
3631       case BlendOp::eSrcOverEXT: return "SrcOverEXT";
3632       case BlendOp::eDstOverEXT: return "DstOverEXT";
3633       case BlendOp::eSrcInEXT: return "SrcInEXT";
3634       case BlendOp::eDstInEXT: return "DstInEXT";
3635       case BlendOp::eSrcOutEXT: return "SrcOutEXT";
3636       case BlendOp::eDstOutEXT: return "DstOutEXT";
3637       case BlendOp::eSrcAtopEXT: return "SrcAtopEXT";
3638       case BlendOp::eDstAtopEXT: return "DstAtopEXT";
3639       case BlendOp::eXorEXT: return "XorEXT";
3640       case BlendOp::eMultiplyEXT: return "MultiplyEXT";
3641       case BlendOp::eScreenEXT: return "ScreenEXT";
3642       case BlendOp::eOverlayEXT: return "OverlayEXT";
3643       case BlendOp::eDarkenEXT: return "DarkenEXT";
3644       case BlendOp::eLightenEXT: return "LightenEXT";
3645       case BlendOp::eColordodgeEXT: return "ColordodgeEXT";
3646       case BlendOp::eColorburnEXT: return "ColorburnEXT";
3647       case BlendOp::eHardlightEXT: return "HardlightEXT";
3648       case BlendOp::eSoftlightEXT: return "SoftlightEXT";
3649       case BlendOp::eDifferenceEXT: return "DifferenceEXT";
3650       case BlendOp::eExclusionEXT: return "ExclusionEXT";
3651       case BlendOp::eInvertEXT: return "InvertEXT";
3652       case BlendOp::eInvertRgbEXT: return "InvertRgbEXT";
3653       case BlendOp::eLineardodgeEXT: return "LineardodgeEXT";
3654       case BlendOp::eLinearburnEXT: return "LinearburnEXT";
3655       case BlendOp::eVividlightEXT: return "VividlightEXT";
3656       case BlendOp::eLinearlightEXT: return "LinearlightEXT";
3657       case BlendOp::ePinlightEXT: return "PinlightEXT";
3658       case BlendOp::eHardmixEXT: return "HardmixEXT";
3659       case BlendOp::eHslHueEXT: return "HslHueEXT";
3660       case BlendOp::eHslSaturationEXT: return "HslSaturationEXT";
3661       case BlendOp::eHslColorEXT: return "HslColorEXT";
3662       case BlendOp::eHslLuminosityEXT: return "HslLuminosityEXT";
3663       case BlendOp::ePlusEXT: return "PlusEXT";
3664       case BlendOp::ePlusClampedEXT: return "PlusClampedEXT";
3665       case BlendOp::ePlusClampedAlphaEXT: return "PlusClampedAlphaEXT";
3666       case BlendOp::ePlusDarkerEXT: return "PlusDarkerEXT";
3667       case BlendOp::eMinusEXT: return "MinusEXT";
3668       case BlendOp::eMinusClampedEXT: return "MinusClampedEXT";
3669       case BlendOp::eContrastEXT: return "ContrastEXT";
3670       case BlendOp::eInvertOvgEXT: return "InvertOvgEXT";
3671       case BlendOp::eRedEXT: return "RedEXT";
3672       case BlendOp::eGreenEXT: return "GreenEXT";
3673       case BlendOp::eBlueEXT: return "BlueEXT";
3674       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3675     }
3676   }
3677 
3678   enum class ColorComponentFlagBits : VkColorComponentFlags
3679   {
3680     eR = VK_COLOR_COMPONENT_R_BIT,
3681     eG = VK_COLOR_COMPONENT_G_BIT,
3682     eB = VK_COLOR_COMPONENT_B_BIT,
3683     eA = VK_COLOR_COMPONENT_A_BIT
3684   };
3685 
to_string(ColorComponentFlagBits value)3686   VULKAN_HPP_INLINE std::string to_string( ColorComponentFlagBits value )
3687   {
3688     switch ( value )
3689     {
3690       case ColorComponentFlagBits::eR: return "R";
3691       case ColorComponentFlagBits::eG: return "G";
3692       case ColorComponentFlagBits::eB: return "B";
3693       case ColorComponentFlagBits::eA: return "A";
3694       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3695     }
3696   }
3697 
3698   enum class CompareOp
3699   {
3700     eNever          = VK_COMPARE_OP_NEVER,
3701     eLess           = VK_COMPARE_OP_LESS,
3702     eEqual          = VK_COMPARE_OP_EQUAL,
3703     eLessOrEqual    = VK_COMPARE_OP_LESS_OR_EQUAL,
3704     eGreater        = VK_COMPARE_OP_GREATER,
3705     eNotEqual       = VK_COMPARE_OP_NOT_EQUAL,
3706     eGreaterOrEqual = VK_COMPARE_OP_GREATER_OR_EQUAL,
3707     eAlways         = VK_COMPARE_OP_ALWAYS
3708   };
3709 
to_string(CompareOp value)3710   VULKAN_HPP_INLINE std::string to_string( CompareOp value )
3711   {
3712     switch ( value )
3713     {
3714       case CompareOp::eNever: return "Never";
3715       case CompareOp::eLess: return "Less";
3716       case CompareOp::eEqual: return "Equal";
3717       case CompareOp::eLessOrEqual: return "LessOrEqual";
3718       case CompareOp::eGreater: return "Greater";
3719       case CompareOp::eNotEqual: return "NotEqual";
3720       case CompareOp::eGreaterOrEqual: return "GreaterOrEqual";
3721       case CompareOp::eAlways: return "Always";
3722       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3723     }
3724   }
3725 
3726   enum class CullModeFlagBits : VkCullModeFlags
3727   {
3728     eNone         = VK_CULL_MODE_NONE,
3729     eFront        = VK_CULL_MODE_FRONT_BIT,
3730     eBack         = VK_CULL_MODE_BACK_BIT,
3731     eFrontAndBack = VK_CULL_MODE_FRONT_AND_BACK
3732   };
3733 
to_string(CullModeFlagBits value)3734   VULKAN_HPP_INLINE std::string to_string( CullModeFlagBits value )
3735   {
3736     switch ( value )
3737     {
3738       case CullModeFlagBits::eNone: return "None";
3739       case CullModeFlagBits::eFront: return "Front";
3740       case CullModeFlagBits::eBack: return "Back";
3741       case CullModeFlagBits::eFrontAndBack: return "FrontAndBack";
3742       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3743     }
3744   }
3745 
3746   enum class DynamicState
3747   {
3748     eViewport                       = VK_DYNAMIC_STATE_VIEWPORT,
3749     eScissor                        = VK_DYNAMIC_STATE_SCISSOR,
3750     eLineWidth                      = VK_DYNAMIC_STATE_LINE_WIDTH,
3751     eDepthBias                      = VK_DYNAMIC_STATE_DEPTH_BIAS,
3752     eBlendConstants                 = VK_DYNAMIC_STATE_BLEND_CONSTANTS,
3753     eDepthBounds                    = VK_DYNAMIC_STATE_DEPTH_BOUNDS,
3754     eStencilCompareMask             = VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK,
3755     eStencilWriteMask               = VK_DYNAMIC_STATE_STENCIL_WRITE_MASK,
3756     eStencilReference               = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
3757     eViewportWScalingNV             = VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV,
3758     eDiscardRectangleEXT            = VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT,
3759     eSampleLocationsEXT             = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT,
3760     eRayTracingPipelineStackSizeKHR = VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR,
3761     eViewportShadingRatePaletteNV   = VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV,
3762     eViewportCoarseSampleOrderNV    = VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV,
3763     eExclusiveScissorNV             = VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV,
3764     eFragmentShadingRateKHR         = VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR,
3765     eLineStippleEXT                 = VK_DYNAMIC_STATE_LINE_STIPPLE_EXT,
3766     eCullModeEXT                    = VK_DYNAMIC_STATE_CULL_MODE_EXT,
3767     eFrontFaceEXT                   = VK_DYNAMIC_STATE_FRONT_FACE_EXT,
3768     ePrimitiveTopologyEXT           = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT,
3769     eViewportWithCountEXT           = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT,
3770     eScissorWithCountEXT            = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT,
3771     eVertexInputBindingStrideEXT    = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT,
3772     eDepthTestEnableEXT             = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT,
3773     eDepthWriteEnableEXT            = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT,
3774     eDepthCompareOpEXT              = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT,
3775     eDepthBoundsTestEnableEXT       = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT,
3776     eStencilTestEnableEXT           = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT,
3777     eStencilOpEXT                   = VK_DYNAMIC_STATE_STENCIL_OP_EXT,
3778     eVertexInputEXT                 = VK_DYNAMIC_STATE_VERTEX_INPUT_EXT,
3779     ePatchControlPointsEXT          = VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT,
3780     eRasterizerDiscardEnableEXT     = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT,
3781     eDepthBiasEnableEXT             = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT,
3782     eLogicOpEXT                     = VK_DYNAMIC_STATE_LOGIC_OP_EXT,
3783     ePrimitiveRestartEnableEXT      = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT,
3784     eColorWriteEnableEXT            = VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT
3785   };
3786 
to_string(DynamicState value)3787   VULKAN_HPP_INLINE std::string to_string( DynamicState value )
3788   {
3789     switch ( value )
3790     {
3791       case DynamicState::eViewport: return "Viewport";
3792       case DynamicState::eScissor: return "Scissor";
3793       case DynamicState::eLineWidth: return "LineWidth";
3794       case DynamicState::eDepthBias: return "DepthBias";
3795       case DynamicState::eBlendConstants: return "BlendConstants";
3796       case DynamicState::eDepthBounds: return "DepthBounds";
3797       case DynamicState::eStencilCompareMask: return "StencilCompareMask";
3798       case DynamicState::eStencilWriteMask: return "StencilWriteMask";
3799       case DynamicState::eStencilReference: return "StencilReference";
3800       case DynamicState::eViewportWScalingNV: return "ViewportWScalingNV";
3801       case DynamicState::eDiscardRectangleEXT: return "DiscardRectangleEXT";
3802       case DynamicState::eSampleLocationsEXT: return "SampleLocationsEXT";
3803       case DynamicState::eRayTracingPipelineStackSizeKHR: return "RayTracingPipelineStackSizeKHR";
3804       case DynamicState::eViewportShadingRatePaletteNV: return "ViewportShadingRatePaletteNV";
3805       case DynamicState::eViewportCoarseSampleOrderNV: return "ViewportCoarseSampleOrderNV";
3806       case DynamicState::eExclusiveScissorNV: return "ExclusiveScissorNV";
3807       case DynamicState::eFragmentShadingRateKHR: return "FragmentShadingRateKHR";
3808       case DynamicState::eLineStippleEXT: return "LineStippleEXT";
3809       case DynamicState::eCullModeEXT: return "CullModeEXT";
3810       case DynamicState::eFrontFaceEXT: return "FrontFaceEXT";
3811       case DynamicState::ePrimitiveTopologyEXT: return "PrimitiveTopologyEXT";
3812       case DynamicState::eViewportWithCountEXT: return "ViewportWithCountEXT";
3813       case DynamicState::eScissorWithCountEXT: return "ScissorWithCountEXT";
3814       case DynamicState::eVertexInputBindingStrideEXT: return "VertexInputBindingStrideEXT";
3815       case DynamicState::eDepthTestEnableEXT: return "DepthTestEnableEXT";
3816       case DynamicState::eDepthWriteEnableEXT: return "DepthWriteEnableEXT";
3817       case DynamicState::eDepthCompareOpEXT: return "DepthCompareOpEXT";
3818       case DynamicState::eDepthBoundsTestEnableEXT: return "DepthBoundsTestEnableEXT";
3819       case DynamicState::eStencilTestEnableEXT: return "StencilTestEnableEXT";
3820       case DynamicState::eStencilOpEXT: return "StencilOpEXT";
3821       case DynamicState::eVertexInputEXT: return "VertexInputEXT";
3822       case DynamicState::ePatchControlPointsEXT: return "PatchControlPointsEXT";
3823       case DynamicState::eRasterizerDiscardEnableEXT: return "RasterizerDiscardEnableEXT";
3824       case DynamicState::eDepthBiasEnableEXT: return "DepthBiasEnableEXT";
3825       case DynamicState::eLogicOpEXT: return "LogicOpEXT";
3826       case DynamicState::ePrimitiveRestartEnableEXT: return "PrimitiveRestartEnableEXT";
3827       case DynamicState::eColorWriteEnableEXT: return "ColorWriteEnableEXT";
3828       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3829     }
3830   }
3831 
3832   enum class FrontFace
3833   {
3834     eCounterClockwise = VK_FRONT_FACE_COUNTER_CLOCKWISE,
3835     eClockwise        = VK_FRONT_FACE_CLOCKWISE
3836   };
3837 
to_string(FrontFace value)3838   VULKAN_HPP_INLINE std::string to_string( FrontFace value )
3839   {
3840     switch ( value )
3841     {
3842       case FrontFace::eCounterClockwise: return "CounterClockwise";
3843       case FrontFace::eClockwise: return "Clockwise";
3844       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3845     }
3846   }
3847 
3848   enum class LogicOp
3849   {
3850     eClear        = VK_LOGIC_OP_CLEAR,
3851     eAnd          = VK_LOGIC_OP_AND,
3852     eAndReverse   = VK_LOGIC_OP_AND_REVERSE,
3853     eCopy         = VK_LOGIC_OP_COPY,
3854     eAndInverted  = VK_LOGIC_OP_AND_INVERTED,
3855     eNoOp         = VK_LOGIC_OP_NO_OP,
3856     eXor          = VK_LOGIC_OP_XOR,
3857     eOr           = VK_LOGIC_OP_OR,
3858     eNor          = VK_LOGIC_OP_NOR,
3859     eEquivalent   = VK_LOGIC_OP_EQUIVALENT,
3860     eInvert       = VK_LOGIC_OP_INVERT,
3861     eOrReverse    = VK_LOGIC_OP_OR_REVERSE,
3862     eCopyInverted = VK_LOGIC_OP_COPY_INVERTED,
3863     eOrInverted   = VK_LOGIC_OP_OR_INVERTED,
3864     eNand         = VK_LOGIC_OP_NAND,
3865     eSet          = VK_LOGIC_OP_SET
3866   };
3867 
to_string(LogicOp value)3868   VULKAN_HPP_INLINE std::string to_string( LogicOp value )
3869   {
3870     switch ( value )
3871     {
3872       case LogicOp::eClear: return "Clear";
3873       case LogicOp::eAnd: return "And";
3874       case LogicOp::eAndReverse: return "AndReverse";
3875       case LogicOp::eCopy: return "Copy";
3876       case LogicOp::eAndInverted: return "AndInverted";
3877       case LogicOp::eNoOp: return "NoOp";
3878       case LogicOp::eXor: return "Xor";
3879       case LogicOp::eOr: return "Or";
3880       case LogicOp::eNor: return "Nor";
3881       case LogicOp::eEquivalent: return "Equivalent";
3882       case LogicOp::eInvert: return "Invert";
3883       case LogicOp::eOrReverse: return "OrReverse";
3884       case LogicOp::eCopyInverted: return "CopyInverted";
3885       case LogicOp::eOrInverted: return "OrInverted";
3886       case LogicOp::eNand: return "Nand";
3887       case LogicOp::eSet: return "Set";
3888       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3889     }
3890   }
3891 
3892   enum class PipelineCreateFlagBits : VkPipelineCreateFlags
3893   {
3894     eDisableOptimization                    = VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,
3895     eAllowDerivatives                       = VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,
3896     eDerivative                             = VK_PIPELINE_CREATE_DERIVATIVE_BIT,
3897     eViewIndexFromDeviceIndex               = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
3898     eDispatchBase                           = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
3899     eRayTracingNoNullAnyHitShadersKHR       = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR,
3900     eRayTracingNoNullClosestHitShadersKHR   = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR,
3901     eRayTracingNoNullMissShadersKHR         = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR,
3902     eRayTracingNoNullIntersectionShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR,
3903     eRayTracingSkipTrianglesKHR             = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,
3904     eRayTracingSkipAabbsKHR                 = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR,
3905     eRayTracingShaderGroupHandleCaptureReplayKHR =
3906       VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR,
3907     eDeferCompileNV                    = VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,
3908     eCaptureStatisticsKHR              = VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,
3909     eCaptureInternalRepresentationsKHR = VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,
3910     eIndirectBindableNV                = VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV,
3911     eLibraryKHR                        = VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,
3912     eFailOnPipelineCompileRequiredEXT  = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT,
3913     eEarlyReturnOnFailureEXT           = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT,
3914     eRayTracingAllowMotionNV           = VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV,
3915     eDispatchBaseKHR                   = VK_PIPELINE_CREATE_DISPATCH_BASE_KHR,
3916     eViewIndexFromDeviceIndexKHR       = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR
3917   };
3918 
to_string(PipelineCreateFlagBits value)3919   VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlagBits value )
3920   {
3921     switch ( value )
3922     {
3923       case PipelineCreateFlagBits::eDisableOptimization: return "DisableOptimization";
3924       case PipelineCreateFlagBits::eAllowDerivatives: return "AllowDerivatives";
3925       case PipelineCreateFlagBits::eDerivative: return "Derivative";
3926       case PipelineCreateFlagBits::eViewIndexFromDeviceIndex: return "ViewIndexFromDeviceIndex";
3927       case PipelineCreateFlagBits::eDispatchBase: return "DispatchBase";
3928       case PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR: return "RayTracingNoNullAnyHitShadersKHR";
3929       case PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR: return "RayTracingNoNullClosestHitShadersKHR";
3930       case PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR: return "RayTracingNoNullMissShadersKHR";
3931       case PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR:
3932         return "RayTracingNoNullIntersectionShadersKHR";
3933       case PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR: return "RayTracingSkipTrianglesKHR";
3934       case PipelineCreateFlagBits::eRayTracingSkipAabbsKHR: return "RayTracingSkipAabbsKHR";
3935       case PipelineCreateFlagBits::eRayTracingShaderGroupHandleCaptureReplayKHR:
3936         return "RayTracingShaderGroupHandleCaptureReplayKHR";
3937       case PipelineCreateFlagBits::eDeferCompileNV: return "DeferCompileNV";
3938       case PipelineCreateFlagBits::eCaptureStatisticsKHR: return "CaptureStatisticsKHR";
3939       case PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR: return "CaptureInternalRepresentationsKHR";
3940       case PipelineCreateFlagBits::eIndirectBindableNV: return "IndirectBindableNV";
3941       case PipelineCreateFlagBits::eLibraryKHR: return "LibraryKHR";
3942       case PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT: return "FailOnPipelineCompileRequiredEXT";
3943       case PipelineCreateFlagBits::eEarlyReturnOnFailureEXT: return "EarlyReturnOnFailureEXT";
3944       case PipelineCreateFlagBits::eRayTracingAllowMotionNV: return "RayTracingAllowMotionNV";
3945       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3946     }
3947   }
3948 
3949   enum class PipelineShaderStageCreateFlagBits : VkPipelineShaderStageCreateFlags
3950   {
3951     eAllowVaryingSubgroupSizeEXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT,
3952     eRequireFullSubgroupsEXT     = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
3953   };
3954 
to_string(PipelineShaderStageCreateFlagBits value)3955   VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlagBits value )
3956   {
3957     switch ( value )
3958     {
3959       case PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT: return "AllowVaryingSubgroupSizeEXT";
3960       case PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT: return "RequireFullSubgroupsEXT";
3961       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3962     }
3963   }
3964 
3965   enum class PolygonMode
3966   {
3967     eFill            = VK_POLYGON_MODE_FILL,
3968     eLine            = VK_POLYGON_MODE_LINE,
3969     ePoint           = VK_POLYGON_MODE_POINT,
3970     eFillRectangleNV = VK_POLYGON_MODE_FILL_RECTANGLE_NV
3971   };
3972 
to_string(PolygonMode value)3973   VULKAN_HPP_INLINE std::string to_string( PolygonMode value )
3974   {
3975     switch ( value )
3976     {
3977       case PolygonMode::eFill: return "Fill";
3978       case PolygonMode::eLine: return "Line";
3979       case PolygonMode::ePoint: return "Point";
3980       case PolygonMode::eFillRectangleNV: return "FillRectangleNV";
3981       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3982     }
3983   }
3984 
3985   enum class PrimitiveTopology
3986   {
3987     ePointList                  = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
3988     eLineList                   = VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
3989     eLineStrip                  = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,
3990     eTriangleList               = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
3991     eTriangleStrip              = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
3992     eTriangleFan                = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN,
3993     eLineListWithAdjacency      = VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY,
3994     eLineStripWithAdjacency     = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY,
3995     eTriangleListWithAdjacency  = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,
3996     eTriangleStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY,
3997     ePatchList                  = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
3998   };
3999 
to_string(PrimitiveTopology value)4000   VULKAN_HPP_INLINE std::string to_string( PrimitiveTopology value )
4001   {
4002     switch ( value )
4003     {
4004       case PrimitiveTopology::ePointList: return "PointList";
4005       case PrimitiveTopology::eLineList: return "LineList";
4006       case PrimitiveTopology::eLineStrip: return "LineStrip";
4007       case PrimitiveTopology::eTriangleList: return "TriangleList";
4008       case PrimitiveTopology::eTriangleStrip: return "TriangleStrip";
4009       case PrimitiveTopology::eTriangleFan: return "TriangleFan";
4010       case PrimitiveTopology::eLineListWithAdjacency: return "LineListWithAdjacency";
4011       case PrimitiveTopology::eLineStripWithAdjacency: return "LineStripWithAdjacency";
4012       case PrimitiveTopology::eTriangleListWithAdjacency: return "TriangleListWithAdjacency";
4013       case PrimitiveTopology::eTriangleStripWithAdjacency: return "TriangleStripWithAdjacency";
4014       case PrimitiveTopology::ePatchList: return "PatchList";
4015       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4016     }
4017   }
4018 
4019   enum class ShaderStageFlagBits : VkShaderStageFlags
4020   {
4021     eVertex                 = VK_SHADER_STAGE_VERTEX_BIT,
4022     eTessellationControl    = VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
4023     eTessellationEvaluation = VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
4024     eGeometry               = VK_SHADER_STAGE_GEOMETRY_BIT,
4025     eFragment               = VK_SHADER_STAGE_FRAGMENT_BIT,
4026     eCompute                = VK_SHADER_STAGE_COMPUTE_BIT,
4027     eAllGraphics            = VK_SHADER_STAGE_ALL_GRAPHICS,
4028     eAll                    = VK_SHADER_STAGE_ALL,
4029     eRaygenKHR              = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
4030     eAnyHitKHR              = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
4031     eClosestHitKHR          = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
4032     eMissKHR                = VK_SHADER_STAGE_MISS_BIT_KHR,
4033     eIntersectionKHR        = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
4034     eCallableKHR            = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
4035     eTaskNV                 = VK_SHADER_STAGE_TASK_BIT_NV,
4036     eMeshNV                 = VK_SHADER_STAGE_MESH_BIT_NV,
4037     eSubpassShadingHUAWEI   = VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI,
4038     eAnyHitNV               = VK_SHADER_STAGE_ANY_HIT_BIT_NV,
4039     eCallableNV             = VK_SHADER_STAGE_CALLABLE_BIT_NV,
4040     eClosestHitNV           = VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV,
4041     eIntersectionNV         = VK_SHADER_STAGE_INTERSECTION_BIT_NV,
4042     eMissNV                 = VK_SHADER_STAGE_MISS_BIT_NV,
4043     eRaygenNV               = VK_SHADER_STAGE_RAYGEN_BIT_NV
4044   };
4045 
to_string(ShaderStageFlagBits value)4046   VULKAN_HPP_INLINE std::string to_string( ShaderStageFlagBits value )
4047   {
4048     switch ( value )
4049     {
4050       case ShaderStageFlagBits::eVertex: return "Vertex";
4051       case ShaderStageFlagBits::eTessellationControl: return "TessellationControl";
4052       case ShaderStageFlagBits::eTessellationEvaluation: return "TessellationEvaluation";
4053       case ShaderStageFlagBits::eGeometry: return "Geometry";
4054       case ShaderStageFlagBits::eFragment: return "Fragment";
4055       case ShaderStageFlagBits::eCompute: return "Compute";
4056       case ShaderStageFlagBits::eAllGraphics: return "AllGraphics";
4057       case ShaderStageFlagBits::eAll: return "All";
4058       case ShaderStageFlagBits::eRaygenKHR: return "RaygenKHR";
4059       case ShaderStageFlagBits::eAnyHitKHR: return "AnyHitKHR";
4060       case ShaderStageFlagBits::eClosestHitKHR: return "ClosestHitKHR";
4061       case ShaderStageFlagBits::eMissKHR: return "MissKHR";
4062       case ShaderStageFlagBits::eIntersectionKHR: return "IntersectionKHR";
4063       case ShaderStageFlagBits::eCallableKHR: return "CallableKHR";
4064       case ShaderStageFlagBits::eTaskNV: return "TaskNV";
4065       case ShaderStageFlagBits::eMeshNV: return "MeshNV";
4066       case ShaderStageFlagBits::eSubpassShadingHUAWEI: return "SubpassShadingHUAWEI";
4067       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4068     }
4069   }
4070 
4071   enum class StencilOp
4072   {
4073     eKeep              = VK_STENCIL_OP_KEEP,
4074     eZero              = VK_STENCIL_OP_ZERO,
4075     eReplace           = VK_STENCIL_OP_REPLACE,
4076     eIncrementAndClamp = VK_STENCIL_OP_INCREMENT_AND_CLAMP,
4077     eDecrementAndClamp = VK_STENCIL_OP_DECREMENT_AND_CLAMP,
4078     eInvert            = VK_STENCIL_OP_INVERT,
4079     eIncrementAndWrap  = VK_STENCIL_OP_INCREMENT_AND_WRAP,
4080     eDecrementAndWrap  = VK_STENCIL_OP_DECREMENT_AND_WRAP
4081   };
4082 
to_string(StencilOp value)4083   VULKAN_HPP_INLINE std::string to_string( StencilOp value )
4084   {
4085     switch ( value )
4086     {
4087       case StencilOp::eKeep: return "Keep";
4088       case StencilOp::eZero: return "Zero";
4089       case StencilOp::eReplace: return "Replace";
4090       case StencilOp::eIncrementAndClamp: return "IncrementAndClamp";
4091       case StencilOp::eDecrementAndClamp: return "DecrementAndClamp";
4092       case StencilOp::eInvert: return "Invert";
4093       case StencilOp::eIncrementAndWrap: return "IncrementAndWrap";
4094       case StencilOp::eDecrementAndWrap: return "DecrementAndWrap";
4095       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4096     }
4097   }
4098 
4099   enum class VertexInputRate
4100   {
4101     eVertex   = VK_VERTEX_INPUT_RATE_VERTEX,
4102     eInstance = VK_VERTEX_INPUT_RATE_INSTANCE
4103   };
4104 
to_string(VertexInputRate value)4105   VULKAN_HPP_INLINE std::string to_string( VertexInputRate value )
4106   {
4107     switch ( value )
4108     {
4109       case VertexInputRate::eVertex: return "Vertex";
4110       case VertexInputRate::eInstance: return "Instance";
4111       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4112     }
4113   }
4114 
4115   enum class PipelineColorBlendStateCreateFlagBits : VkPipelineColorBlendStateCreateFlags
4116   {
4117   };
4118 
to_string(PipelineColorBlendStateCreateFlagBits)4119   VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlagBits )
4120   {
4121     return "(void)";
4122   }
4123 
4124   enum class PipelineDepthStencilStateCreateFlagBits : VkPipelineDepthStencilStateCreateFlags
4125   {
4126   };
4127 
to_string(PipelineDepthStencilStateCreateFlagBits)4128   VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlagBits )
4129   {
4130     return "(void)";
4131   }
4132 
4133   enum class PipelineDynamicStateCreateFlagBits : VkPipelineDynamicStateCreateFlags
4134   {
4135   };
4136 
to_string(PipelineDynamicStateCreateFlagBits)4137   VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlagBits )
4138   {
4139     return "(void)";
4140   }
4141 
4142   enum class PipelineInputAssemblyStateCreateFlagBits : VkPipelineInputAssemblyStateCreateFlags
4143   {
4144   };
4145 
to_string(PipelineInputAssemblyStateCreateFlagBits)4146   VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlagBits )
4147   {
4148     return "(void)";
4149   }
4150 
4151   enum class PipelineLayoutCreateFlagBits : VkPipelineLayoutCreateFlags
4152   {
4153   };
4154 
to_string(PipelineLayoutCreateFlagBits)4155   VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlagBits )
4156   {
4157     return "(void)";
4158   }
4159 
4160   enum class PipelineMultisampleStateCreateFlagBits : VkPipelineMultisampleStateCreateFlags
4161   {
4162   };
4163 
to_string(PipelineMultisampleStateCreateFlagBits)4164   VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlagBits )
4165   {
4166     return "(void)";
4167   }
4168 
4169   enum class PipelineRasterizationStateCreateFlagBits : VkPipelineRasterizationStateCreateFlags
4170   {
4171   };
4172 
to_string(PipelineRasterizationStateCreateFlagBits)4173   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlagBits )
4174   {
4175     return "(void)";
4176   }
4177 
4178   enum class PipelineTessellationStateCreateFlagBits : VkPipelineTessellationStateCreateFlags
4179   {
4180   };
4181 
to_string(PipelineTessellationStateCreateFlagBits)4182   VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlagBits )
4183   {
4184     return "(void)";
4185   }
4186 
4187   enum class PipelineVertexInputStateCreateFlagBits : VkPipelineVertexInputStateCreateFlags
4188   {
4189   };
4190 
to_string(PipelineVertexInputStateCreateFlagBits)4191   VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlagBits )
4192   {
4193     return "(void)";
4194   }
4195 
4196   enum class PipelineViewportStateCreateFlagBits : VkPipelineViewportStateCreateFlags
4197   {
4198   };
4199 
to_string(PipelineViewportStateCreateFlagBits)4200   VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlagBits )
4201   {
4202     return "(void)";
4203   }
4204 
4205   enum class BorderColor
4206   {
4207     eFloatTransparentBlack = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
4208     eIntTransparentBlack   = VK_BORDER_COLOR_INT_TRANSPARENT_BLACK,
4209     eFloatOpaqueBlack      = VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK,
4210     eIntOpaqueBlack        = VK_BORDER_COLOR_INT_OPAQUE_BLACK,
4211     eFloatOpaqueWhite      = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE,
4212     eIntOpaqueWhite        = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
4213     eFloatCustomEXT        = VK_BORDER_COLOR_FLOAT_CUSTOM_EXT,
4214     eIntCustomEXT          = VK_BORDER_COLOR_INT_CUSTOM_EXT
4215   };
4216 
to_string(BorderColor value)4217   VULKAN_HPP_INLINE std::string to_string( BorderColor value )
4218   {
4219     switch ( value )
4220     {
4221       case BorderColor::eFloatTransparentBlack: return "FloatTransparentBlack";
4222       case BorderColor::eIntTransparentBlack: return "IntTransparentBlack";
4223       case BorderColor::eFloatOpaqueBlack: return "FloatOpaqueBlack";
4224       case BorderColor::eIntOpaqueBlack: return "IntOpaqueBlack";
4225       case BorderColor::eFloatOpaqueWhite: return "FloatOpaqueWhite";
4226       case BorderColor::eIntOpaqueWhite: return "IntOpaqueWhite";
4227       case BorderColor::eFloatCustomEXT: return "FloatCustomEXT";
4228       case BorderColor::eIntCustomEXT: return "IntCustomEXT";
4229       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4230     }
4231   }
4232 
4233   enum class Filter
4234   {
4235     eNearest  = VK_FILTER_NEAREST,
4236     eLinear   = VK_FILTER_LINEAR,
4237     eCubicIMG = VK_FILTER_CUBIC_IMG,
4238     eCubicEXT = VK_FILTER_CUBIC_EXT
4239   };
4240 
to_string(Filter value)4241   VULKAN_HPP_INLINE std::string to_string( Filter value )
4242   {
4243     switch ( value )
4244     {
4245       case Filter::eNearest: return "Nearest";
4246       case Filter::eLinear: return "Linear";
4247       case Filter::eCubicIMG: return "CubicIMG";
4248       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4249     }
4250   }
4251 
4252   enum class SamplerAddressMode
4253   {
4254     eRepeat               = VK_SAMPLER_ADDRESS_MODE_REPEAT,
4255     eMirroredRepeat       = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT,
4256     eClampToEdge          = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
4257     eClampToBorder        = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
4258     eMirrorClampToEdge    = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
4259     eMirrorClampToEdgeKHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR
4260   };
4261 
to_string(SamplerAddressMode value)4262   VULKAN_HPP_INLINE std::string to_string( SamplerAddressMode value )
4263   {
4264     switch ( value )
4265     {
4266       case SamplerAddressMode::eRepeat: return "Repeat";
4267       case SamplerAddressMode::eMirroredRepeat: return "MirroredRepeat";
4268       case SamplerAddressMode::eClampToEdge: return "ClampToEdge";
4269       case SamplerAddressMode::eClampToBorder: return "ClampToBorder";
4270       case SamplerAddressMode::eMirrorClampToEdge: return "MirrorClampToEdge";
4271       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4272     }
4273   }
4274 
4275   enum class SamplerCreateFlagBits : VkSamplerCreateFlags
4276   {
4277     eSubsampledEXT                     = VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT,
4278     eSubsampledCoarseReconstructionEXT = VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT
4279   };
4280 
to_string(SamplerCreateFlagBits value)4281   VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlagBits value )
4282   {
4283     switch ( value )
4284     {
4285       case SamplerCreateFlagBits::eSubsampledEXT: return "SubsampledEXT";
4286       case SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT: return "SubsampledCoarseReconstructionEXT";
4287       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4288     }
4289   }
4290 
4291   enum class SamplerMipmapMode
4292   {
4293     eNearest = VK_SAMPLER_MIPMAP_MODE_NEAREST,
4294     eLinear  = VK_SAMPLER_MIPMAP_MODE_LINEAR
4295   };
4296 
to_string(SamplerMipmapMode value)4297   VULKAN_HPP_INLINE std::string to_string( SamplerMipmapMode value )
4298   {
4299     switch ( value )
4300     {
4301       case SamplerMipmapMode::eNearest: return "Nearest";
4302       case SamplerMipmapMode::eLinear: return "Linear";
4303       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4304     }
4305   }
4306 
4307   enum class DescriptorPoolCreateFlagBits : VkDescriptorPoolCreateFlags
4308   {
4309     eFreeDescriptorSet  = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,
4310     eUpdateAfterBind    = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
4311     eHostOnlyVALVE      = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE,
4312     eUpdateAfterBindEXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT
4313   };
4314 
to_string(DescriptorPoolCreateFlagBits value)4315   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlagBits value )
4316   {
4317     switch ( value )
4318     {
4319       case DescriptorPoolCreateFlagBits::eFreeDescriptorSet: return "FreeDescriptorSet";
4320       case DescriptorPoolCreateFlagBits::eUpdateAfterBind: return "UpdateAfterBind";
4321       case DescriptorPoolCreateFlagBits::eHostOnlyVALVE: return "HostOnlyVALVE";
4322       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4323     }
4324   }
4325 
4326   enum class DescriptorSetLayoutCreateFlagBits : VkDescriptorSetLayoutCreateFlags
4327   {
4328     eUpdateAfterBindPool    = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
4329     ePushDescriptorKHR      = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,
4330     eHostOnlyPoolVALVE      = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE,
4331     eUpdateAfterBindPoolEXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
4332   };
4333 
to_string(DescriptorSetLayoutCreateFlagBits value)4334   VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlagBits value )
4335   {
4336     switch ( value )
4337     {
4338       case DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool: return "UpdateAfterBindPool";
4339       case DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR: return "PushDescriptorKHR";
4340       case DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolVALVE: return "HostOnlyPoolVALVE";
4341       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4342     }
4343   }
4344 
4345   enum class DescriptorType
4346   {
4347     eSampler                  = VK_DESCRIPTOR_TYPE_SAMPLER,
4348     eCombinedImageSampler     = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
4349     eSampledImage             = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
4350     eStorageImage             = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
4351     eUniformTexelBuffer       = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,
4352     eStorageTexelBuffer       = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,
4353     eUniformBuffer            = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
4354     eStorageBuffer            = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
4355     eUniformBufferDynamic     = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
4356     eStorageBufferDynamic     = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC,
4357     eInputAttachment          = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
4358     eInlineUniformBlockEXT    = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT,
4359     eAccelerationStructureKHR = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,
4360     eAccelerationStructureNV  = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV,
4361     eMutableVALVE             = VK_DESCRIPTOR_TYPE_MUTABLE_VALVE
4362   };
4363 
to_string(DescriptorType value)4364   VULKAN_HPP_INLINE std::string to_string( DescriptorType value )
4365   {
4366     switch ( value )
4367     {
4368       case DescriptorType::eSampler: return "Sampler";
4369       case DescriptorType::eCombinedImageSampler: return "CombinedImageSampler";
4370       case DescriptorType::eSampledImage: return "SampledImage";
4371       case DescriptorType::eStorageImage: return "StorageImage";
4372       case DescriptorType::eUniformTexelBuffer: return "UniformTexelBuffer";
4373       case DescriptorType::eStorageTexelBuffer: return "StorageTexelBuffer";
4374       case DescriptorType::eUniformBuffer: return "UniformBuffer";
4375       case DescriptorType::eStorageBuffer: return "StorageBuffer";
4376       case DescriptorType::eUniformBufferDynamic: return "UniformBufferDynamic";
4377       case DescriptorType::eStorageBufferDynamic: return "StorageBufferDynamic";
4378       case DescriptorType::eInputAttachment: return "InputAttachment";
4379       case DescriptorType::eInlineUniformBlockEXT: return "InlineUniformBlockEXT";
4380       case DescriptorType::eAccelerationStructureKHR: return "AccelerationStructureKHR";
4381       case DescriptorType::eAccelerationStructureNV: return "AccelerationStructureNV";
4382       case DescriptorType::eMutableVALVE: return "MutableVALVE";
4383       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4384     }
4385   }
4386 
4387   enum class DescriptorPoolResetFlagBits : VkDescriptorPoolResetFlags
4388   {
4389   };
4390 
to_string(DescriptorPoolResetFlagBits)4391   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlagBits )
4392   {
4393     return "(void)";
4394   }
4395 
4396   enum class AccessFlagBits : VkAccessFlags
4397   {
4398     eIndirectCommandRead                  = VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
4399     eIndexRead                            = VK_ACCESS_INDEX_READ_BIT,
4400     eVertexAttributeRead                  = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,
4401     eUniformRead                          = VK_ACCESS_UNIFORM_READ_BIT,
4402     eInputAttachmentRead                  = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
4403     eShaderRead                           = VK_ACCESS_SHADER_READ_BIT,
4404     eShaderWrite                          = VK_ACCESS_SHADER_WRITE_BIT,
4405     eColorAttachmentRead                  = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,
4406     eColorAttachmentWrite                 = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
4407     eDepthStencilAttachmentRead           = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
4408     eDepthStencilAttachmentWrite          = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
4409     eTransferRead                         = VK_ACCESS_TRANSFER_READ_BIT,
4410     eTransferWrite                        = VK_ACCESS_TRANSFER_WRITE_BIT,
4411     eHostRead                             = VK_ACCESS_HOST_READ_BIT,
4412     eHostWrite                            = VK_ACCESS_HOST_WRITE_BIT,
4413     eMemoryRead                           = VK_ACCESS_MEMORY_READ_BIT,
4414     eMemoryWrite                          = VK_ACCESS_MEMORY_WRITE_BIT,
4415     eTransformFeedbackWriteEXT            = VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
4416     eTransformFeedbackCounterReadEXT      = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,
4417     eTransformFeedbackCounterWriteEXT     = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
4418     eConditionalRenderingReadEXT          = VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,
4419     eColorAttachmentReadNoncoherentEXT    = VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
4420     eAccelerationStructureReadKHR         = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
4421     eAccelerationStructureWriteKHR        = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
4422     eFragmentDensityMapReadEXT            = VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,
4423     eFragmentShadingRateAttachmentReadKHR = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
4424     eCommandPreprocessReadNV              = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,
4425     eCommandPreprocessWriteNV             = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,
4426     eNoneKHR                              = VK_ACCESS_NONE_KHR,
4427     eAccelerationStructureReadNV          = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV,
4428     eAccelerationStructureWriteNV         = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
4429     eShadingRateImageReadNV               = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV
4430   };
4431 
to_string(AccessFlagBits value)4432   VULKAN_HPP_INLINE std::string to_string( AccessFlagBits value )
4433   {
4434     switch ( value )
4435     {
4436       case AccessFlagBits::eIndirectCommandRead: return "IndirectCommandRead";
4437       case AccessFlagBits::eIndexRead: return "IndexRead";
4438       case AccessFlagBits::eVertexAttributeRead: return "VertexAttributeRead";
4439       case AccessFlagBits::eUniformRead: return "UniformRead";
4440       case AccessFlagBits::eInputAttachmentRead: return "InputAttachmentRead";
4441       case AccessFlagBits::eShaderRead: return "ShaderRead";
4442       case AccessFlagBits::eShaderWrite: return "ShaderWrite";
4443       case AccessFlagBits::eColorAttachmentRead: return "ColorAttachmentRead";
4444       case AccessFlagBits::eColorAttachmentWrite: return "ColorAttachmentWrite";
4445       case AccessFlagBits::eDepthStencilAttachmentRead: return "DepthStencilAttachmentRead";
4446       case AccessFlagBits::eDepthStencilAttachmentWrite: return "DepthStencilAttachmentWrite";
4447       case AccessFlagBits::eTransferRead: return "TransferRead";
4448       case AccessFlagBits::eTransferWrite: return "TransferWrite";
4449       case AccessFlagBits::eHostRead: return "HostRead";
4450       case AccessFlagBits::eHostWrite: return "HostWrite";
4451       case AccessFlagBits::eMemoryRead: return "MemoryRead";
4452       case AccessFlagBits::eMemoryWrite: return "MemoryWrite";
4453       case AccessFlagBits::eTransformFeedbackWriteEXT: return "TransformFeedbackWriteEXT";
4454       case AccessFlagBits::eTransformFeedbackCounterReadEXT: return "TransformFeedbackCounterReadEXT";
4455       case AccessFlagBits::eTransformFeedbackCounterWriteEXT: return "TransformFeedbackCounterWriteEXT";
4456       case AccessFlagBits::eConditionalRenderingReadEXT: return "ConditionalRenderingReadEXT";
4457       case AccessFlagBits::eColorAttachmentReadNoncoherentEXT: return "ColorAttachmentReadNoncoherentEXT";
4458       case AccessFlagBits::eAccelerationStructureReadKHR: return "AccelerationStructureReadKHR";
4459       case AccessFlagBits::eAccelerationStructureWriteKHR: return "AccelerationStructureWriteKHR";
4460       case AccessFlagBits::eFragmentDensityMapReadEXT: return "FragmentDensityMapReadEXT";
4461       case AccessFlagBits::eFragmentShadingRateAttachmentReadKHR: return "FragmentShadingRateAttachmentReadKHR";
4462       case AccessFlagBits::eCommandPreprocessReadNV: return "CommandPreprocessReadNV";
4463       case AccessFlagBits::eCommandPreprocessWriteNV: return "CommandPreprocessWriteNV";
4464       case AccessFlagBits::eNoneKHR: return "NoneKHR";
4465       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4466     }
4467   }
4468 
4469   enum class AttachmentDescriptionFlagBits : VkAttachmentDescriptionFlags
4470   {
4471     eMayAlias = VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT
4472   };
4473 
to_string(AttachmentDescriptionFlagBits value)4474   VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlagBits value )
4475   {
4476     switch ( value )
4477     {
4478       case AttachmentDescriptionFlagBits::eMayAlias: return "MayAlias";
4479       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4480     }
4481   }
4482 
4483   enum class AttachmentLoadOp
4484   {
4485     eLoad     = VK_ATTACHMENT_LOAD_OP_LOAD,
4486     eClear    = VK_ATTACHMENT_LOAD_OP_CLEAR,
4487     eDontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
4488     eNoneEXT  = VK_ATTACHMENT_LOAD_OP_NONE_EXT
4489   };
4490 
to_string(AttachmentLoadOp value)4491   VULKAN_HPP_INLINE std::string to_string( AttachmentLoadOp value )
4492   {
4493     switch ( value )
4494     {
4495       case AttachmentLoadOp::eLoad: return "Load";
4496       case AttachmentLoadOp::eClear: return "Clear";
4497       case AttachmentLoadOp::eDontCare: return "DontCare";
4498       case AttachmentLoadOp::eNoneEXT: return "NoneEXT";
4499       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4500     }
4501   }
4502 
4503   enum class AttachmentStoreOp
4504   {
4505     eStore    = VK_ATTACHMENT_STORE_OP_STORE,
4506     eDontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE,
4507     eNoneEXT  = VK_ATTACHMENT_STORE_OP_NONE_EXT,
4508     eNoneQCOM = VK_ATTACHMENT_STORE_OP_NONE_QCOM
4509   };
4510 
to_string(AttachmentStoreOp value)4511   VULKAN_HPP_INLINE std::string to_string( AttachmentStoreOp value )
4512   {
4513     switch ( value )
4514     {
4515       case AttachmentStoreOp::eStore: return "Store";
4516       case AttachmentStoreOp::eDontCare: return "DontCare";
4517       case AttachmentStoreOp::eNoneEXT: return "NoneEXT";
4518       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4519     }
4520   }
4521 
4522   enum class DependencyFlagBits : VkDependencyFlags
4523   {
4524     eByRegion       = VK_DEPENDENCY_BY_REGION_BIT,
4525     eDeviceGroup    = VK_DEPENDENCY_DEVICE_GROUP_BIT,
4526     eViewLocal      = VK_DEPENDENCY_VIEW_LOCAL_BIT,
4527     eDeviceGroupKHR = VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR,
4528     eViewLocalKHR   = VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR
4529   };
4530 
to_string(DependencyFlagBits value)4531   VULKAN_HPP_INLINE std::string to_string( DependencyFlagBits value )
4532   {
4533     switch ( value )
4534     {
4535       case DependencyFlagBits::eByRegion: return "ByRegion";
4536       case DependencyFlagBits::eDeviceGroup: return "DeviceGroup";
4537       case DependencyFlagBits::eViewLocal: return "ViewLocal";
4538       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4539     }
4540   }
4541 
4542   enum class FramebufferCreateFlagBits : VkFramebufferCreateFlags
4543   {
4544     eImageless    = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
4545     eImagelessKHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR
4546   };
4547 
to_string(FramebufferCreateFlagBits value)4548   VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlagBits value )
4549   {
4550     switch ( value )
4551     {
4552       case FramebufferCreateFlagBits::eImageless: return "Imageless";
4553       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4554     }
4555   }
4556 
4557   enum class PipelineBindPoint
4558   {
4559     eGraphics             = VK_PIPELINE_BIND_POINT_GRAPHICS,
4560     eCompute              = VK_PIPELINE_BIND_POINT_COMPUTE,
4561     eRayTracingKHR        = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
4562     eSubpassShadingHUAWEI = VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI,
4563     eRayTracingNV         = VK_PIPELINE_BIND_POINT_RAY_TRACING_NV
4564   };
4565 
to_string(PipelineBindPoint value)4566   VULKAN_HPP_INLINE std::string to_string( PipelineBindPoint value )
4567   {
4568     switch ( value )
4569     {
4570       case PipelineBindPoint::eGraphics: return "Graphics";
4571       case PipelineBindPoint::eCompute: return "Compute";
4572       case PipelineBindPoint::eRayTracingKHR: return "RayTracingKHR";
4573       case PipelineBindPoint::eSubpassShadingHUAWEI: return "SubpassShadingHUAWEI";
4574       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4575     }
4576   }
4577 
4578   enum class RenderPassCreateFlagBits : VkRenderPassCreateFlags
4579   {
4580     eTransformQCOM = VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM
4581   };
4582 
to_string(RenderPassCreateFlagBits value)4583   VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlagBits value )
4584   {
4585     switch ( value )
4586     {
4587       case RenderPassCreateFlagBits::eTransformQCOM: return "TransformQCOM";
4588       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4589     }
4590   }
4591 
4592   enum class SubpassDescriptionFlagBits : VkSubpassDescriptionFlags
4593   {
4594     ePerViewAttributesNVX    = VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,
4595     ePerViewPositionXOnlyNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX,
4596     eFragmentRegionQCOM      = VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM,
4597     eShaderResolveQCOM       = VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM
4598   };
4599 
to_string(SubpassDescriptionFlagBits value)4600   VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlagBits value )
4601   {
4602     switch ( value )
4603     {
4604       case SubpassDescriptionFlagBits::ePerViewAttributesNVX: return "PerViewAttributesNVX";
4605       case SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX: return "PerViewPositionXOnlyNVX";
4606       case SubpassDescriptionFlagBits::eFragmentRegionQCOM: return "FragmentRegionQCOM";
4607       case SubpassDescriptionFlagBits::eShaderResolveQCOM: return "ShaderResolveQCOM";
4608       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4609     }
4610   }
4611 
4612   enum class CommandPoolCreateFlagBits : VkCommandPoolCreateFlags
4613   {
4614     eTransient          = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,
4615     eResetCommandBuffer = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,
4616     eProtected          = VK_COMMAND_POOL_CREATE_PROTECTED_BIT
4617   };
4618 
to_string(CommandPoolCreateFlagBits value)4619   VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlagBits value )
4620   {
4621     switch ( value )
4622     {
4623       case CommandPoolCreateFlagBits::eTransient: return "Transient";
4624       case CommandPoolCreateFlagBits::eResetCommandBuffer: return "ResetCommandBuffer";
4625       case CommandPoolCreateFlagBits::eProtected: return "Protected";
4626       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4627     }
4628   }
4629 
4630   enum class CommandPoolResetFlagBits : VkCommandPoolResetFlags
4631   {
4632     eReleaseResources = VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT
4633   };
4634 
to_string(CommandPoolResetFlagBits value)4635   VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlagBits value )
4636   {
4637     switch ( value )
4638     {
4639       case CommandPoolResetFlagBits::eReleaseResources: return "ReleaseResources";
4640       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4641     }
4642   }
4643 
4644   enum class CommandBufferLevel
4645   {
4646     ePrimary   = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
4647     eSecondary = VK_COMMAND_BUFFER_LEVEL_SECONDARY
4648   };
4649 
to_string(CommandBufferLevel value)4650   VULKAN_HPP_INLINE std::string to_string( CommandBufferLevel value )
4651   {
4652     switch ( value )
4653     {
4654       case CommandBufferLevel::ePrimary: return "Primary";
4655       case CommandBufferLevel::eSecondary: return "Secondary";
4656       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4657     }
4658   }
4659 
4660   enum class CommandBufferResetFlagBits : VkCommandBufferResetFlags
4661   {
4662     eReleaseResources = VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT
4663   };
4664 
to_string(CommandBufferResetFlagBits value)4665   VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlagBits value )
4666   {
4667     switch ( value )
4668     {
4669       case CommandBufferResetFlagBits::eReleaseResources: return "ReleaseResources";
4670       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4671     }
4672   }
4673 
4674   enum class CommandBufferUsageFlagBits : VkCommandBufferUsageFlags
4675   {
4676     eOneTimeSubmit      = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
4677     eRenderPassContinue = VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,
4678     eSimultaneousUse    = VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
4679   };
4680 
to_string(CommandBufferUsageFlagBits value)4681   VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlagBits value )
4682   {
4683     switch ( value )
4684     {
4685       case CommandBufferUsageFlagBits::eOneTimeSubmit: return "OneTimeSubmit";
4686       case CommandBufferUsageFlagBits::eRenderPassContinue: return "RenderPassContinue";
4687       case CommandBufferUsageFlagBits::eSimultaneousUse: return "SimultaneousUse";
4688       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4689     }
4690   }
4691 
4692   enum class QueryControlFlagBits : VkQueryControlFlags
4693   {
4694     ePrecise = VK_QUERY_CONTROL_PRECISE_BIT
4695   };
4696 
to_string(QueryControlFlagBits value)4697   VULKAN_HPP_INLINE std::string to_string( QueryControlFlagBits value )
4698   {
4699     switch ( value )
4700     {
4701       case QueryControlFlagBits::ePrecise: return "Precise";
4702       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4703     }
4704   }
4705 
4706   enum class IndexType
4707   {
4708     eUint16   = VK_INDEX_TYPE_UINT16,
4709     eUint32   = VK_INDEX_TYPE_UINT32,
4710     eNoneKHR  = VK_INDEX_TYPE_NONE_KHR,
4711     eUint8EXT = VK_INDEX_TYPE_UINT8_EXT,
4712     eNoneNV   = VK_INDEX_TYPE_NONE_NV
4713   };
4714 
to_string(IndexType value)4715   VULKAN_HPP_INLINE std::string to_string( IndexType value )
4716   {
4717     switch ( value )
4718     {
4719       case IndexType::eUint16: return "Uint16";
4720       case IndexType::eUint32: return "Uint32";
4721       case IndexType::eNoneKHR: return "NoneKHR";
4722       case IndexType::eUint8EXT: return "Uint8EXT";
4723       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4724     }
4725   }
4726 
4727   enum class StencilFaceFlagBits : VkStencilFaceFlags
4728   {
4729     eFront                 = VK_STENCIL_FACE_FRONT_BIT,
4730     eBack                  = VK_STENCIL_FACE_BACK_BIT,
4731     eFrontAndBack          = VK_STENCIL_FACE_FRONT_AND_BACK,
4732     eVkStencilFrontAndBack = VK_STENCIL_FRONT_AND_BACK
4733   };
4734 
to_string(StencilFaceFlagBits value)4735   VULKAN_HPP_INLINE std::string to_string( StencilFaceFlagBits value )
4736   {
4737     switch ( value )
4738     {
4739       case StencilFaceFlagBits::eFront: return "Front";
4740       case StencilFaceFlagBits::eBack: return "Back";
4741       case StencilFaceFlagBits::eFrontAndBack: return "FrontAndBack";
4742       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4743     }
4744   }
4745 
4746   enum class SubpassContents
4747   {
4748     eInline                  = VK_SUBPASS_CONTENTS_INLINE,
4749     eSecondaryCommandBuffers = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
4750   };
4751 
to_string(SubpassContents value)4752   VULKAN_HPP_INLINE std::string to_string( SubpassContents value )
4753   {
4754     switch ( value )
4755     {
4756       case SubpassContents::eInline: return "Inline";
4757       case SubpassContents::eSecondaryCommandBuffers: return "SecondaryCommandBuffers";
4758       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4759     }
4760   }
4761 
4762   //=== VK_VERSION_1_1 ===
4763 
4764   enum class SubgroupFeatureFlagBits : VkSubgroupFeatureFlags
4765   {
4766     eBasic           = VK_SUBGROUP_FEATURE_BASIC_BIT,
4767     eVote            = VK_SUBGROUP_FEATURE_VOTE_BIT,
4768     eArithmetic      = VK_SUBGROUP_FEATURE_ARITHMETIC_BIT,
4769     eBallot          = VK_SUBGROUP_FEATURE_BALLOT_BIT,
4770     eShuffle         = VK_SUBGROUP_FEATURE_SHUFFLE_BIT,
4771     eShuffleRelative = VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,
4772     eClustered       = VK_SUBGROUP_FEATURE_CLUSTERED_BIT,
4773     eQuad            = VK_SUBGROUP_FEATURE_QUAD_BIT,
4774     ePartitionedNV   = VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV
4775   };
4776 
to_string(SubgroupFeatureFlagBits value)4777   VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlagBits value )
4778   {
4779     switch ( value )
4780     {
4781       case SubgroupFeatureFlagBits::eBasic: return "Basic";
4782       case SubgroupFeatureFlagBits::eVote: return "Vote";
4783       case SubgroupFeatureFlagBits::eArithmetic: return "Arithmetic";
4784       case SubgroupFeatureFlagBits::eBallot: return "Ballot";
4785       case SubgroupFeatureFlagBits::eShuffle: return "Shuffle";
4786       case SubgroupFeatureFlagBits::eShuffleRelative: return "ShuffleRelative";
4787       case SubgroupFeatureFlagBits::eClustered: return "Clustered";
4788       case SubgroupFeatureFlagBits::eQuad: return "Quad";
4789       case SubgroupFeatureFlagBits::ePartitionedNV: return "PartitionedNV";
4790       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4791     }
4792   }
4793 
4794   enum class PeerMemoryFeatureFlagBits : VkPeerMemoryFeatureFlags
4795   {
4796     eCopySrc    = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
4797     eCopyDst    = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
4798     eGenericSrc = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
4799     eGenericDst = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT
4800   };
4801   using PeerMemoryFeatureFlagBitsKHR = PeerMemoryFeatureFlagBits;
4802 
to_string(PeerMemoryFeatureFlagBits value)4803   VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlagBits value )
4804   {
4805     switch ( value )
4806     {
4807       case PeerMemoryFeatureFlagBits::eCopySrc: return "CopySrc";
4808       case PeerMemoryFeatureFlagBits::eCopyDst: return "CopyDst";
4809       case PeerMemoryFeatureFlagBits::eGenericSrc: return "GenericSrc";
4810       case PeerMemoryFeatureFlagBits::eGenericDst: return "GenericDst";
4811       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4812     }
4813   }
4814 
4815   enum class MemoryAllocateFlagBits : VkMemoryAllocateFlags
4816   {
4817     eDeviceMask                 = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
4818     eDeviceAddress              = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
4819     eDeviceAddressCaptureReplay = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
4820   };
4821   using MemoryAllocateFlagBitsKHR = MemoryAllocateFlagBits;
4822 
to_string(MemoryAllocateFlagBits value)4823   VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlagBits value )
4824   {
4825     switch ( value )
4826     {
4827       case MemoryAllocateFlagBits::eDeviceMask: return "DeviceMask";
4828       case MemoryAllocateFlagBits::eDeviceAddress: return "DeviceAddress";
4829       case MemoryAllocateFlagBits::eDeviceAddressCaptureReplay: return "DeviceAddressCaptureReplay";
4830       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4831     }
4832   }
4833 
4834   enum class CommandPoolTrimFlagBits : VkCommandPoolTrimFlags
4835   {
4836   };
4837 
to_string(CommandPoolTrimFlagBits)4838   VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlagBits )
4839   {
4840     return "(void)";
4841   }
4842 
4843   enum class PointClippingBehavior
4844   {
4845     eAllClipPlanes      = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
4846     eUserClipPlanesOnly = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
4847   };
4848   using PointClippingBehaviorKHR = PointClippingBehavior;
4849 
to_string(PointClippingBehavior value)4850   VULKAN_HPP_INLINE std::string to_string( PointClippingBehavior value )
4851   {
4852     switch ( value )
4853     {
4854       case PointClippingBehavior::eAllClipPlanes: return "AllClipPlanes";
4855       case PointClippingBehavior::eUserClipPlanesOnly: return "UserClipPlanesOnly";
4856       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4857     }
4858   }
4859 
4860   enum class TessellationDomainOrigin
4861   {
4862     eUpperLeft = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
4863     eLowerLeft = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT
4864   };
4865   using TessellationDomainOriginKHR = TessellationDomainOrigin;
4866 
to_string(TessellationDomainOrigin value)4867   VULKAN_HPP_INLINE std::string to_string( TessellationDomainOrigin value )
4868   {
4869     switch ( value )
4870     {
4871       case TessellationDomainOrigin::eUpperLeft: return "UpperLeft";
4872       case TessellationDomainOrigin::eLowerLeft: return "LowerLeft";
4873       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4874     }
4875   }
4876 
4877   enum class DeviceQueueCreateFlagBits : VkDeviceQueueCreateFlags
4878   {
4879     eProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT
4880   };
4881 
to_string(DeviceQueueCreateFlagBits value)4882   VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlagBits value )
4883   {
4884     switch ( value )
4885     {
4886       case DeviceQueueCreateFlagBits::eProtected: return "Protected";
4887       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4888     }
4889   }
4890 
4891   enum class SamplerYcbcrModelConversion
4892   {
4893     eRgbIdentity   = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
4894     eYcbcrIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
4895     eYcbcr709      = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
4896     eYcbcr601      = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
4897     eYcbcr2020     = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020
4898   };
4899   using SamplerYcbcrModelConversionKHR = SamplerYcbcrModelConversion;
4900 
to_string(SamplerYcbcrModelConversion value)4901   VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrModelConversion value )
4902   {
4903     switch ( value )
4904     {
4905       case SamplerYcbcrModelConversion::eRgbIdentity: return "RgbIdentity";
4906       case SamplerYcbcrModelConversion::eYcbcrIdentity: return "YcbcrIdentity";
4907       case SamplerYcbcrModelConversion::eYcbcr709: return "Ycbcr709";
4908       case SamplerYcbcrModelConversion::eYcbcr601: return "Ycbcr601";
4909       case SamplerYcbcrModelConversion::eYcbcr2020: return "Ycbcr2020";
4910       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4911     }
4912   }
4913 
4914   enum class SamplerYcbcrRange
4915   {
4916     eItuFull   = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
4917     eItuNarrow = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW
4918   };
4919   using SamplerYcbcrRangeKHR = SamplerYcbcrRange;
4920 
to_string(SamplerYcbcrRange value)4921   VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrRange value )
4922   {
4923     switch ( value )
4924     {
4925       case SamplerYcbcrRange::eItuFull: return "ItuFull";
4926       case SamplerYcbcrRange::eItuNarrow: return "ItuNarrow";
4927       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4928     }
4929   }
4930 
4931   enum class ChromaLocation
4932   {
4933     eCositedEven = VK_CHROMA_LOCATION_COSITED_EVEN,
4934     eMidpoint    = VK_CHROMA_LOCATION_MIDPOINT
4935   };
4936   using ChromaLocationKHR = ChromaLocation;
4937 
to_string(ChromaLocation value)4938   VULKAN_HPP_INLINE std::string to_string( ChromaLocation value )
4939   {
4940     switch ( value )
4941     {
4942       case ChromaLocation::eCositedEven: return "CositedEven";
4943       case ChromaLocation::eMidpoint: return "Midpoint";
4944       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4945     }
4946   }
4947 
4948   enum class DescriptorUpdateTemplateType
4949   {
4950     eDescriptorSet      = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
4951     ePushDescriptorsKHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
4952   };
4953   using DescriptorUpdateTemplateTypeKHR = DescriptorUpdateTemplateType;
4954 
to_string(DescriptorUpdateTemplateType value)4955   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateType value )
4956   {
4957     switch ( value )
4958     {
4959       case DescriptorUpdateTemplateType::eDescriptorSet: return "DescriptorSet";
4960       case DescriptorUpdateTemplateType::ePushDescriptorsKHR: return "PushDescriptorsKHR";
4961       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4962     }
4963   }
4964 
4965   enum class DescriptorUpdateTemplateCreateFlagBits : VkDescriptorUpdateTemplateCreateFlags
4966   {
4967   };
4968 
to_string(DescriptorUpdateTemplateCreateFlagBits)4969   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlagBits )
4970   {
4971     return "(void)";
4972   }
4973 
4974   enum class ExternalMemoryHandleTypeFlagBits : VkExternalMemoryHandleTypeFlags
4975   {
4976     eOpaqueFd        = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
4977     eOpaqueWin32     = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
4978     eOpaqueWin32Kmt  = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
4979     eD3D11Texture    = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
4980     eD3D11TextureKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
4981     eD3D12Heap       = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
4982     eD3D12Resource   = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
4983     eDmaBufEXT       = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,
4984 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
4985     eAndroidHardwareBufferANDROID = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,
4986 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
4987     eHostAllocationEXT          = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,
4988     eHostMappedForeignMemoryEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT,
4989 #if defined( VK_USE_PLATFORM_FUCHSIA )
4990     eZirconVmoFUCHSIA = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA,
4991 #endif /*VK_USE_PLATFORM_FUCHSIA*/
4992     eRdmaAddressNV = VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV
4993   };
4994   using ExternalMemoryHandleTypeFlagBitsKHR = ExternalMemoryHandleTypeFlagBits;
4995 
to_string(ExternalMemoryHandleTypeFlagBits value)4996   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBits value )
4997   {
4998     switch ( value )
4999     {
5000       case ExternalMemoryHandleTypeFlagBits::eOpaqueFd: return "OpaqueFd";
5001       case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32: return "OpaqueWin32";
5002       case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt: return "OpaqueWin32Kmt";
5003       case ExternalMemoryHandleTypeFlagBits::eD3D11Texture: return "D3D11Texture";
5004       case ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt: return "D3D11TextureKmt";
5005       case ExternalMemoryHandleTypeFlagBits::eD3D12Heap: return "D3D12Heap";
5006       case ExternalMemoryHandleTypeFlagBits::eD3D12Resource: return "D3D12Resource";
5007       case ExternalMemoryHandleTypeFlagBits::eDmaBufEXT: return "DmaBufEXT";
5008 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
5009       case ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID: return "AndroidHardwareBufferANDROID";
5010 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
5011       case ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT: return "HostAllocationEXT";
5012       case ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT: return "HostMappedForeignMemoryEXT";
5013 #if defined( VK_USE_PLATFORM_FUCHSIA )
5014       case ExternalMemoryHandleTypeFlagBits::eZirconVmoFUCHSIA: return "ZirconVmoFUCHSIA";
5015 #endif /*VK_USE_PLATFORM_FUCHSIA*/
5016       case ExternalMemoryHandleTypeFlagBits::eRdmaAddressNV: return "RdmaAddressNV";
5017       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5018     }
5019   }
5020 
5021   enum class ExternalMemoryFeatureFlagBits : VkExternalMemoryFeatureFlags
5022   {
5023     eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
5024     eExportable    = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
5025     eImportable    = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT
5026   };
5027   using ExternalMemoryFeatureFlagBitsKHR = ExternalMemoryFeatureFlagBits;
5028 
to_string(ExternalMemoryFeatureFlagBits value)5029   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBits value )
5030   {
5031     switch ( value )
5032     {
5033       case ExternalMemoryFeatureFlagBits::eDedicatedOnly: return "DedicatedOnly";
5034       case ExternalMemoryFeatureFlagBits::eExportable: return "Exportable";
5035       case ExternalMemoryFeatureFlagBits::eImportable: return "Importable";
5036       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5037     }
5038   }
5039 
5040   enum class ExternalFenceHandleTypeFlagBits : VkExternalFenceHandleTypeFlags
5041   {
5042     eOpaqueFd       = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
5043     eOpaqueWin32    = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5044     eOpaqueWin32Kmt = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5045     eSyncFd         = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT
5046   };
5047   using ExternalFenceHandleTypeFlagBitsKHR = ExternalFenceHandleTypeFlagBits;
5048 
to_string(ExternalFenceHandleTypeFlagBits value)5049   VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlagBits value )
5050   {
5051     switch ( value )
5052     {
5053       case ExternalFenceHandleTypeFlagBits::eOpaqueFd: return "OpaqueFd";
5054       case ExternalFenceHandleTypeFlagBits::eOpaqueWin32: return "OpaqueWin32";
5055       case ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt: return "OpaqueWin32Kmt";
5056       case ExternalFenceHandleTypeFlagBits::eSyncFd: return "SyncFd";
5057       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5058     }
5059   }
5060 
5061   enum class ExternalFenceFeatureFlagBits : VkExternalFenceFeatureFlags
5062   {
5063     eExportable = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
5064     eImportable = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT
5065   };
5066   using ExternalFenceFeatureFlagBitsKHR = ExternalFenceFeatureFlagBits;
5067 
to_string(ExternalFenceFeatureFlagBits value)5068   VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlagBits value )
5069   {
5070     switch ( value )
5071     {
5072       case ExternalFenceFeatureFlagBits::eExportable: return "Exportable";
5073       case ExternalFenceFeatureFlagBits::eImportable: return "Importable";
5074       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5075     }
5076   }
5077 
5078   enum class FenceImportFlagBits : VkFenceImportFlags
5079   {
5080     eTemporary = VK_FENCE_IMPORT_TEMPORARY_BIT
5081   };
5082   using FenceImportFlagBitsKHR = FenceImportFlagBits;
5083 
to_string(FenceImportFlagBits value)5084   VULKAN_HPP_INLINE std::string to_string( FenceImportFlagBits value )
5085   {
5086     switch ( value )
5087     {
5088       case FenceImportFlagBits::eTemporary: return "Temporary";
5089       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5090     }
5091   }
5092 
5093   enum class SemaphoreImportFlagBits : VkSemaphoreImportFlags
5094   {
5095     eTemporary = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT
5096   };
5097   using SemaphoreImportFlagBitsKHR = SemaphoreImportFlagBits;
5098 
to_string(SemaphoreImportFlagBits value)5099   VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlagBits value )
5100   {
5101     switch ( value )
5102     {
5103       case SemaphoreImportFlagBits::eTemporary: return "Temporary";
5104       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5105     }
5106   }
5107 
5108   enum class ExternalSemaphoreHandleTypeFlagBits : VkExternalSemaphoreHandleTypeFlags
5109   {
5110     eOpaqueFd       = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
5111     eOpaqueWin32    = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5112     eOpaqueWin32Kmt = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5113     eD3D12Fence     = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5114     eSyncFd         = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
5115 #if defined( VK_USE_PLATFORM_FUCHSIA )
5116     eZirconEventFUCHSIA = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA,
5117 #endif /*VK_USE_PLATFORM_FUCHSIA*/
5118     eD3D11Fence = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT
5119   };
5120   using ExternalSemaphoreHandleTypeFlagBitsKHR = ExternalSemaphoreHandleTypeFlagBits;
5121 
to_string(ExternalSemaphoreHandleTypeFlagBits value)5122   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlagBits value )
5123   {
5124     switch ( value )
5125     {
5126       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd: return "OpaqueFd";
5127       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32: return "OpaqueWin32";
5128       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt: return "OpaqueWin32Kmt";
5129       case ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence: return "D3D12Fence";
5130       case ExternalSemaphoreHandleTypeFlagBits::eSyncFd: return "SyncFd";
5131 #if defined( VK_USE_PLATFORM_FUCHSIA )
5132       case ExternalSemaphoreHandleTypeFlagBits::eZirconEventFUCHSIA: return "ZirconEventFUCHSIA";
5133 #endif /*VK_USE_PLATFORM_FUCHSIA*/
5134       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5135     }
5136   }
5137 
5138   enum class ExternalSemaphoreFeatureFlagBits : VkExternalSemaphoreFeatureFlags
5139   {
5140     eExportable = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
5141     eImportable = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT
5142   };
5143   using ExternalSemaphoreFeatureFlagBitsKHR = ExternalSemaphoreFeatureFlagBits;
5144 
to_string(ExternalSemaphoreFeatureFlagBits value)5145   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlagBits value )
5146   {
5147     switch ( value )
5148     {
5149       case ExternalSemaphoreFeatureFlagBits::eExportable: return "Exportable";
5150       case ExternalSemaphoreFeatureFlagBits::eImportable: return "Importable";
5151       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5152     }
5153   }
5154 
5155   //=== VK_VERSION_1_2 ===
5156 
5157   enum class DriverId
5158   {
5159     eAmdProprietary          = VK_DRIVER_ID_AMD_PROPRIETARY,
5160     eAmdOpenSource           = VK_DRIVER_ID_AMD_OPEN_SOURCE,
5161     eMesaRadv                = VK_DRIVER_ID_MESA_RADV,
5162     eNvidiaProprietary       = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
5163     eIntelProprietaryWindows = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
5164     eIntelOpenSourceMESA     = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
5165     eImaginationProprietary  = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
5166     eQualcommProprietary     = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
5167     eArmProprietary          = VK_DRIVER_ID_ARM_PROPRIETARY,
5168     eGoogleSwiftshader       = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
5169     eGgpProprietary          = VK_DRIVER_ID_GGP_PROPRIETARY,
5170     eBroadcomProprietary     = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
5171     eMesaLlvmpipe            = VK_DRIVER_ID_MESA_LLVMPIPE,
5172     eMoltenvk                = VK_DRIVER_ID_MOLTENVK,
5173     eCoreaviProprietary      = VK_DRIVER_ID_COREAVI_PROPRIETARY,
5174     eJuiceProprietary        = VK_DRIVER_ID_JUICE_PROPRIETARY,
5175     eVerisiliconProprietary  = VK_DRIVER_ID_VERISILICON_PROPRIETARY,
5176     eMesaTurnip              = VK_DRIVER_ID_MESA_TURNIP,
5177     eMesaV3Dv                = VK_DRIVER_ID_MESA_V3DV,
5178     eMesaPanvk               = VK_DRIVER_ID_MESA_PANVK
5179   };
5180   using DriverIdKHR = DriverId;
5181 
to_string(DriverId value)5182   VULKAN_HPP_INLINE std::string to_string( DriverId value )
5183   {
5184     switch ( value )
5185     {
5186       case DriverId::eAmdProprietary: return "AmdProprietary";
5187       case DriverId::eAmdOpenSource: return "AmdOpenSource";
5188       case DriverId::eMesaRadv: return "MesaRadv";
5189       case DriverId::eNvidiaProprietary: return "NvidiaProprietary";
5190       case DriverId::eIntelProprietaryWindows: return "IntelProprietaryWindows";
5191       case DriverId::eIntelOpenSourceMESA: return "IntelOpenSourceMESA";
5192       case DriverId::eImaginationProprietary: return "ImaginationProprietary";
5193       case DriverId::eQualcommProprietary: return "QualcommProprietary";
5194       case DriverId::eArmProprietary: return "ArmProprietary";
5195       case DriverId::eGoogleSwiftshader: return "GoogleSwiftshader";
5196       case DriverId::eGgpProprietary: return "GgpProprietary";
5197       case DriverId::eBroadcomProprietary: return "BroadcomProprietary";
5198       case DriverId::eMesaLlvmpipe: return "MesaLlvmpipe";
5199       case DriverId::eMoltenvk: return "Moltenvk";
5200       case DriverId::eCoreaviProprietary: return "CoreaviProprietary";
5201       case DriverId::eJuiceProprietary: return "JuiceProprietary";
5202       case DriverId::eVerisiliconProprietary: return "VerisiliconProprietary";
5203       case DriverId::eMesaTurnip: return "MesaTurnip";
5204       case DriverId::eMesaV3Dv: return "MesaV3Dv";
5205       case DriverId::eMesaPanvk: return "MesaPanvk";
5206       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5207     }
5208   }
5209 
5210   enum class ShaderFloatControlsIndependence
5211   {
5212     e32BitOnly = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
5213     eAll       = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
5214     eNone      = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
5215   };
5216   using ShaderFloatControlsIndependenceKHR = ShaderFloatControlsIndependence;
5217 
to_string(ShaderFloatControlsIndependence value)5218   VULKAN_HPP_INLINE std::string to_string( ShaderFloatControlsIndependence value )
5219   {
5220     switch ( value )
5221     {
5222       case ShaderFloatControlsIndependence::e32BitOnly: return "32BitOnly";
5223       case ShaderFloatControlsIndependence::eAll: return "All";
5224       case ShaderFloatControlsIndependence::eNone: return "None";
5225       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5226     }
5227   }
5228 
5229   enum class DescriptorBindingFlagBits : VkDescriptorBindingFlags
5230   {
5231     eUpdateAfterBind          = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
5232     eUpdateUnusedWhilePending = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
5233     ePartiallyBound           = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
5234     eVariableDescriptorCount  = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
5235   };
5236   using DescriptorBindingFlagBitsEXT = DescriptorBindingFlagBits;
5237 
to_string(DescriptorBindingFlagBits value)5238   VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlagBits value )
5239   {
5240     switch ( value )
5241     {
5242       case DescriptorBindingFlagBits::eUpdateAfterBind: return "UpdateAfterBind";
5243       case DescriptorBindingFlagBits::eUpdateUnusedWhilePending: return "UpdateUnusedWhilePending";
5244       case DescriptorBindingFlagBits::ePartiallyBound: return "PartiallyBound";
5245       case DescriptorBindingFlagBits::eVariableDescriptorCount: return "VariableDescriptorCount";
5246       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5247     }
5248   }
5249 
5250   enum class ResolveModeFlagBits : VkResolveModeFlags
5251   {
5252     eNone       = VK_RESOLVE_MODE_NONE,
5253     eSampleZero = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
5254     eAverage    = VK_RESOLVE_MODE_AVERAGE_BIT,
5255     eMin        = VK_RESOLVE_MODE_MIN_BIT,
5256     eMax        = VK_RESOLVE_MODE_MAX_BIT
5257   };
5258   using ResolveModeFlagBitsKHR = ResolveModeFlagBits;
5259 
to_string(ResolveModeFlagBits value)5260   VULKAN_HPP_INLINE std::string to_string( ResolveModeFlagBits value )
5261   {
5262     switch ( value )
5263     {
5264       case ResolveModeFlagBits::eNone: return "None";
5265       case ResolveModeFlagBits::eSampleZero: return "SampleZero";
5266       case ResolveModeFlagBits::eAverage: return "Average";
5267       case ResolveModeFlagBits::eMin: return "Min";
5268       case ResolveModeFlagBits::eMax: return "Max";
5269       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5270     }
5271   }
5272 
5273   enum class SamplerReductionMode
5274   {
5275     eWeightedAverage = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
5276     eMin             = VK_SAMPLER_REDUCTION_MODE_MIN,
5277     eMax             = VK_SAMPLER_REDUCTION_MODE_MAX
5278   };
5279   using SamplerReductionModeEXT = SamplerReductionMode;
5280 
to_string(SamplerReductionMode value)5281   VULKAN_HPP_INLINE std::string to_string( SamplerReductionMode value )
5282   {
5283     switch ( value )
5284     {
5285       case SamplerReductionMode::eWeightedAverage: return "WeightedAverage";
5286       case SamplerReductionMode::eMin: return "Min";
5287       case SamplerReductionMode::eMax: return "Max";
5288       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5289     }
5290   }
5291 
5292   enum class SemaphoreType
5293   {
5294     eBinary   = VK_SEMAPHORE_TYPE_BINARY,
5295     eTimeline = VK_SEMAPHORE_TYPE_TIMELINE
5296   };
5297   using SemaphoreTypeKHR = SemaphoreType;
5298 
to_string(SemaphoreType value)5299   VULKAN_HPP_INLINE std::string to_string( SemaphoreType value )
5300   {
5301     switch ( value )
5302     {
5303       case SemaphoreType::eBinary: return "Binary";
5304       case SemaphoreType::eTimeline: return "Timeline";
5305       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5306     }
5307   }
5308 
5309   enum class SemaphoreWaitFlagBits : VkSemaphoreWaitFlags
5310   {
5311     eAny = VK_SEMAPHORE_WAIT_ANY_BIT
5312   };
5313   using SemaphoreWaitFlagBitsKHR = SemaphoreWaitFlagBits;
5314 
to_string(SemaphoreWaitFlagBits value)5315   VULKAN_HPP_INLINE std::string to_string( SemaphoreWaitFlagBits value )
5316   {
5317     switch ( value )
5318     {
5319       case SemaphoreWaitFlagBits::eAny: return "Any";
5320       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5321     }
5322   }
5323 
5324   //=== VK_KHR_surface ===
5325 
5326   enum class SurfaceTransformFlagBitsKHR : VkSurfaceTransformFlagsKHR
5327   {
5328     eIdentity                  = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,
5329     eRotate90                  = VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,
5330     eRotate180                 = VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,
5331     eRotate270                 = VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,
5332     eHorizontalMirror          = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,
5333     eHorizontalMirrorRotate90  = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,
5334     eHorizontalMirrorRotate180 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR,
5335     eHorizontalMirrorRotate270 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR,
5336     eInherit                   = VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR
5337   };
5338 
to_string(SurfaceTransformFlagBitsKHR value)5339   VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagBitsKHR value )
5340   {
5341     switch ( value )
5342     {
5343       case SurfaceTransformFlagBitsKHR::eIdentity: return "Identity";
5344       case SurfaceTransformFlagBitsKHR::eRotate90: return "Rotate90";
5345       case SurfaceTransformFlagBitsKHR::eRotate180: return "Rotate180";
5346       case SurfaceTransformFlagBitsKHR::eRotate270: return "Rotate270";
5347       case SurfaceTransformFlagBitsKHR::eHorizontalMirror: return "HorizontalMirror";
5348       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90: return "HorizontalMirrorRotate90";
5349       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180: return "HorizontalMirrorRotate180";
5350       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270: return "HorizontalMirrorRotate270";
5351       case SurfaceTransformFlagBitsKHR::eInherit: return "Inherit";
5352       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5353     }
5354   }
5355 
5356   enum class PresentModeKHR
5357   {
5358     eImmediate               = VK_PRESENT_MODE_IMMEDIATE_KHR,
5359     eMailbox                 = VK_PRESENT_MODE_MAILBOX_KHR,
5360     eFifo                    = VK_PRESENT_MODE_FIFO_KHR,
5361     eFifoRelaxed             = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
5362     eSharedDemandRefresh     = VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR,
5363     eSharedContinuousRefresh = VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR
5364   };
5365 
to_string(PresentModeKHR value)5366   VULKAN_HPP_INLINE std::string to_string( PresentModeKHR value )
5367   {
5368     switch ( value )
5369     {
5370       case PresentModeKHR::eImmediate: return "Immediate";
5371       case PresentModeKHR::eMailbox: return "Mailbox";
5372       case PresentModeKHR::eFifo: return "Fifo";
5373       case PresentModeKHR::eFifoRelaxed: return "FifoRelaxed";
5374       case PresentModeKHR::eSharedDemandRefresh: return "SharedDemandRefresh";
5375       case PresentModeKHR::eSharedContinuousRefresh: return "SharedContinuousRefresh";
5376       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5377     }
5378   }
5379 
5380   enum class ColorSpaceKHR
5381   {
5382     eSrgbNonlinear             = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
5383     eDisplayP3NonlinearEXT     = VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT,
5384     eExtendedSrgbLinearEXT     = VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT,
5385     eDisplayP3LinearEXT        = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
5386     eDciP3NonlinearEXT         = VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT,
5387     eBt709LinearEXT            = VK_COLOR_SPACE_BT709_LINEAR_EXT,
5388     eBt709NonlinearEXT         = VK_COLOR_SPACE_BT709_NONLINEAR_EXT,
5389     eBt2020LinearEXT           = VK_COLOR_SPACE_BT2020_LINEAR_EXT,
5390     eHdr10St2084EXT            = VK_COLOR_SPACE_HDR10_ST2084_EXT,
5391     eDolbyvisionEXT            = VK_COLOR_SPACE_DOLBYVISION_EXT,
5392     eHdr10HlgEXT               = VK_COLOR_SPACE_HDR10_HLG_EXT,
5393     eAdobergbLinearEXT         = VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT,
5394     eAdobergbNonlinearEXT      = VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT,
5395     ePassThroughEXT            = VK_COLOR_SPACE_PASS_THROUGH_EXT,
5396     eExtendedSrgbNonlinearEXT  = VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT,
5397     eDisplayNativeAMD          = VK_COLOR_SPACE_DISPLAY_NATIVE_AMD,
5398     eVkColorspaceSrgbNonlinear = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
5399     eDciP3LinearEXT            = VK_COLOR_SPACE_DCI_P3_LINEAR_EXT
5400   };
5401 
to_string(ColorSpaceKHR value)5402   VULKAN_HPP_INLINE std::string to_string( ColorSpaceKHR value )
5403   {
5404     switch ( value )
5405     {
5406       case ColorSpaceKHR::eSrgbNonlinear: return "SrgbNonlinear";
5407       case ColorSpaceKHR::eDisplayP3NonlinearEXT: return "DisplayP3NonlinearEXT";
5408       case ColorSpaceKHR::eExtendedSrgbLinearEXT: return "ExtendedSrgbLinearEXT";
5409       case ColorSpaceKHR::eDisplayP3LinearEXT: return "DisplayP3LinearEXT";
5410       case ColorSpaceKHR::eDciP3NonlinearEXT: return "DciP3NonlinearEXT";
5411       case ColorSpaceKHR::eBt709LinearEXT: return "Bt709LinearEXT";
5412       case ColorSpaceKHR::eBt709NonlinearEXT: return "Bt709NonlinearEXT";
5413       case ColorSpaceKHR::eBt2020LinearEXT: return "Bt2020LinearEXT";
5414       case ColorSpaceKHR::eHdr10St2084EXT: return "Hdr10St2084EXT";
5415       case ColorSpaceKHR::eDolbyvisionEXT: return "DolbyvisionEXT";
5416       case ColorSpaceKHR::eHdr10HlgEXT: return "Hdr10HlgEXT";
5417       case ColorSpaceKHR::eAdobergbLinearEXT: return "AdobergbLinearEXT";
5418       case ColorSpaceKHR::eAdobergbNonlinearEXT: return "AdobergbNonlinearEXT";
5419       case ColorSpaceKHR::ePassThroughEXT: return "PassThroughEXT";
5420       case ColorSpaceKHR::eExtendedSrgbNonlinearEXT: return "ExtendedSrgbNonlinearEXT";
5421       case ColorSpaceKHR::eDisplayNativeAMD: return "DisplayNativeAMD";
5422       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5423     }
5424   }
5425 
5426   enum class CompositeAlphaFlagBitsKHR : VkCompositeAlphaFlagsKHR
5427   {
5428     eOpaque         = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,
5429     ePreMultiplied  = VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,
5430     ePostMultiplied = VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,
5431     eInherit        = VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR
5432   };
5433 
to_string(CompositeAlphaFlagBitsKHR value)5434   VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagBitsKHR value )
5435   {
5436     switch ( value )
5437     {
5438       case CompositeAlphaFlagBitsKHR::eOpaque: return "Opaque";
5439       case CompositeAlphaFlagBitsKHR::ePreMultiplied: return "PreMultiplied";
5440       case CompositeAlphaFlagBitsKHR::ePostMultiplied: return "PostMultiplied";
5441       case CompositeAlphaFlagBitsKHR::eInherit: return "Inherit";
5442       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5443     }
5444   }
5445 
5446   //=== VK_KHR_swapchain ===
5447 
5448   enum class SwapchainCreateFlagBitsKHR : VkSwapchainCreateFlagsKHR
5449   {
5450     eSplitInstanceBindRegions = VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
5451     eProtected                = VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,
5452     eMutableFormat            = VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR
5453   };
5454 
to_string(SwapchainCreateFlagBitsKHR value)5455   VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagBitsKHR value )
5456   {
5457     switch ( value )
5458     {
5459       case SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions: return "SplitInstanceBindRegions";
5460       case SwapchainCreateFlagBitsKHR::eProtected: return "Protected";
5461       case SwapchainCreateFlagBitsKHR::eMutableFormat: return "MutableFormat";
5462       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5463     }
5464   }
5465 
5466   enum class DeviceGroupPresentModeFlagBitsKHR : VkDeviceGroupPresentModeFlagsKHR
5467   {
5468     eLocal            = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,
5469     eRemote           = VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,
5470     eSum              = VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,
5471     eLocalMultiDevice = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR
5472   };
5473 
to_string(DeviceGroupPresentModeFlagBitsKHR value)5474   VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagBitsKHR value )
5475   {
5476     switch ( value )
5477     {
5478       case DeviceGroupPresentModeFlagBitsKHR::eLocal: return "Local";
5479       case DeviceGroupPresentModeFlagBitsKHR::eRemote: return "Remote";
5480       case DeviceGroupPresentModeFlagBitsKHR::eSum: return "Sum";
5481       case DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice: return "LocalMultiDevice";
5482       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5483     }
5484   }
5485 
5486   //=== VK_KHR_display ===
5487 
5488   enum class DisplayPlaneAlphaFlagBitsKHR : VkDisplayPlaneAlphaFlagsKHR
5489   {
5490     eOpaque                = VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,
5491     eGlobal                = VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,
5492     ePerPixel              = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,
5493     ePerPixelPremultiplied = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR
5494   };
5495 
to_string(DisplayPlaneAlphaFlagBitsKHR value)5496   VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagBitsKHR value )
5497   {
5498     switch ( value )
5499     {
5500       case DisplayPlaneAlphaFlagBitsKHR::eOpaque: return "Opaque";
5501       case DisplayPlaneAlphaFlagBitsKHR::eGlobal: return "Global";
5502       case DisplayPlaneAlphaFlagBitsKHR::ePerPixel: return "PerPixel";
5503       case DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied: return "PerPixelPremultiplied";
5504       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5505     }
5506   }
5507 
5508   enum class DisplayModeCreateFlagBitsKHR : VkDisplayModeCreateFlagsKHR
5509   {
5510   };
5511 
to_string(DisplayModeCreateFlagBitsKHR)5512   VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagBitsKHR )
5513   {
5514     return "(void)";
5515   }
5516 
5517   enum class DisplaySurfaceCreateFlagBitsKHR : VkDisplaySurfaceCreateFlagsKHR
5518   {
5519   };
5520 
to_string(DisplaySurfaceCreateFlagBitsKHR)5521   VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagBitsKHR )
5522   {
5523     return "(void)";
5524   }
5525 
5526 #if defined( VK_USE_PLATFORM_XLIB_KHR )
5527   //=== VK_KHR_xlib_surface ===
5528 
5529   enum class XlibSurfaceCreateFlagBitsKHR : VkXlibSurfaceCreateFlagsKHR
5530   {
5531   };
5532 
to_string(XlibSurfaceCreateFlagBitsKHR)5533   VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagBitsKHR )
5534   {
5535     return "(void)";
5536   }
5537 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
5538 
5539 #if defined( VK_USE_PLATFORM_XCB_KHR )
5540   //=== VK_KHR_xcb_surface ===
5541 
5542   enum class XcbSurfaceCreateFlagBitsKHR : VkXcbSurfaceCreateFlagsKHR
5543   {
5544   };
5545 
to_string(XcbSurfaceCreateFlagBitsKHR)5546   VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagBitsKHR )
5547   {
5548     return "(void)";
5549   }
5550 #endif /*VK_USE_PLATFORM_XCB_KHR*/
5551 
5552 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
5553   //=== VK_KHR_wayland_surface ===
5554 
5555   enum class WaylandSurfaceCreateFlagBitsKHR : VkWaylandSurfaceCreateFlagsKHR
5556   {
5557   };
5558 
to_string(WaylandSurfaceCreateFlagBitsKHR)5559   VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagBitsKHR )
5560   {
5561     return "(void)";
5562   }
5563 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
5564 
5565 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
5566   //=== VK_KHR_android_surface ===
5567 
5568   enum class AndroidSurfaceCreateFlagBitsKHR : VkAndroidSurfaceCreateFlagsKHR
5569   {
5570   };
5571 
to_string(AndroidSurfaceCreateFlagBitsKHR)5572   VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagBitsKHR )
5573   {
5574     return "(void)";
5575   }
5576 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
5577 
5578 #if defined( VK_USE_PLATFORM_WIN32_KHR )
5579   //=== VK_KHR_win32_surface ===
5580 
5581   enum class Win32SurfaceCreateFlagBitsKHR : VkWin32SurfaceCreateFlagsKHR
5582   {
5583   };
5584 
to_string(Win32SurfaceCreateFlagBitsKHR)5585   VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagBitsKHR )
5586   {
5587     return "(void)";
5588   }
5589 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
5590 
5591   //=== VK_EXT_debug_report ===
5592 
5593   enum class DebugReportFlagBitsEXT : VkDebugReportFlagsEXT
5594   {
5595     eInformation        = VK_DEBUG_REPORT_INFORMATION_BIT_EXT,
5596     eWarning            = VK_DEBUG_REPORT_WARNING_BIT_EXT,
5597     ePerformanceWarning = VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,
5598     eError              = VK_DEBUG_REPORT_ERROR_BIT_EXT,
5599     eDebug              = VK_DEBUG_REPORT_DEBUG_BIT_EXT
5600   };
5601 
to_string(DebugReportFlagBitsEXT value)5602   VULKAN_HPP_INLINE std::string to_string( DebugReportFlagBitsEXT value )
5603   {
5604     switch ( value )
5605     {
5606       case DebugReportFlagBitsEXT::eInformation: return "Information";
5607       case DebugReportFlagBitsEXT::eWarning: return "Warning";
5608       case DebugReportFlagBitsEXT::ePerformanceWarning: return "PerformanceWarning";
5609       case DebugReportFlagBitsEXT::eError: return "Error";
5610       case DebugReportFlagBitsEXT::eDebug: return "Debug";
5611       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5612     }
5613   }
5614 
5615   enum class DebugReportObjectTypeEXT
5616   {
5617     eUnknown                  = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
5618     eInstance                 = VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
5619     ePhysicalDevice           = VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
5620     eDevice                   = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
5621     eQueue                    = VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT,
5622     eSemaphore                = VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT,
5623     eCommandBuffer            = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
5624     eFence                    = VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT,
5625     eDeviceMemory             = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT,
5626     eBuffer                   = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT,
5627     eImage                    = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,
5628     eEvent                    = VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT,
5629     eQueryPool                = VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT,
5630     eBufferView               = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT,
5631     eImageView                = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT,
5632     eShaderModule             = VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT,
5633     ePipelineCache            = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT,
5634     ePipelineLayout           = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT,
5635     eRenderPass               = VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT,
5636     ePipeline                 = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT,
5637     eDescriptorSetLayout      = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT,
5638     eSampler                  = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT,
5639     eDescriptorPool           = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT,
5640     eDescriptorSet            = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT,
5641     eFramebuffer              = VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT,
5642     eCommandPool              = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT,
5643     eSurfaceKHR               = VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT,
5644     eSwapchainKHR             = VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT,
5645     eDebugReportCallbackEXT   = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
5646     eDisplayKHR               = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT,
5647     eDisplayModeKHR           = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT,
5648     eValidationCacheEXT       = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
5649     eSamplerYcbcrConversion   = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
5650     eDescriptorUpdateTemplate = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
5651     eCuModuleNVX              = VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT,
5652     eCuFunctionNVX            = VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT,
5653     eAccelerationStructureKHR = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT,
5654     eAccelerationStructureNV  = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT,
5655 #if defined( VK_USE_PLATFORM_FUCHSIA )
5656     eBufferCollectionFUCHSIA = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT,
5657 #endif /*VK_USE_PLATFORM_FUCHSIA*/
5658     eDebugReport                 = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT,
5659     eDescriptorUpdateTemplateKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT,
5660     eSamplerYcbcrConversionKHR   = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT,
5661     eValidationCache             = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT
5662   };
5663 
to_string(DebugReportObjectTypeEXT value)5664   VULKAN_HPP_INLINE std::string to_string( DebugReportObjectTypeEXT value )
5665   {
5666     switch ( value )
5667     {
5668       case DebugReportObjectTypeEXT::eUnknown: return "Unknown";
5669       case DebugReportObjectTypeEXT::eInstance: return "Instance";
5670       case DebugReportObjectTypeEXT::ePhysicalDevice: return "PhysicalDevice";
5671       case DebugReportObjectTypeEXT::eDevice: return "Device";
5672       case DebugReportObjectTypeEXT::eQueue: return "Queue";
5673       case DebugReportObjectTypeEXT::eSemaphore: return "Semaphore";
5674       case DebugReportObjectTypeEXT::eCommandBuffer: return "CommandBuffer";
5675       case DebugReportObjectTypeEXT::eFence: return "Fence";
5676       case DebugReportObjectTypeEXT::eDeviceMemory: return "DeviceMemory";
5677       case DebugReportObjectTypeEXT::eBuffer: return "Buffer";
5678       case DebugReportObjectTypeEXT::eImage: return "Image";
5679       case DebugReportObjectTypeEXT::eEvent: return "Event";
5680       case DebugReportObjectTypeEXT::eQueryPool: return "QueryPool";
5681       case DebugReportObjectTypeEXT::eBufferView: return "BufferView";
5682       case DebugReportObjectTypeEXT::eImageView: return "ImageView";
5683       case DebugReportObjectTypeEXT::eShaderModule: return "ShaderModule";
5684       case DebugReportObjectTypeEXT::ePipelineCache: return "PipelineCache";
5685       case DebugReportObjectTypeEXT::ePipelineLayout: return "PipelineLayout";
5686       case DebugReportObjectTypeEXT::eRenderPass: return "RenderPass";
5687       case DebugReportObjectTypeEXT::ePipeline: return "Pipeline";
5688       case DebugReportObjectTypeEXT::eDescriptorSetLayout: return "DescriptorSetLayout";
5689       case DebugReportObjectTypeEXT::eSampler: return "Sampler";
5690       case DebugReportObjectTypeEXT::eDescriptorPool: return "DescriptorPool";
5691       case DebugReportObjectTypeEXT::eDescriptorSet: return "DescriptorSet";
5692       case DebugReportObjectTypeEXT::eFramebuffer: return "Framebuffer";
5693       case DebugReportObjectTypeEXT::eCommandPool: return "CommandPool";
5694       case DebugReportObjectTypeEXT::eSurfaceKHR: return "SurfaceKHR";
5695       case DebugReportObjectTypeEXT::eSwapchainKHR: return "SwapchainKHR";
5696       case DebugReportObjectTypeEXT::eDebugReportCallbackEXT: return "DebugReportCallbackEXT";
5697       case DebugReportObjectTypeEXT::eDisplayKHR: return "DisplayKHR";
5698       case DebugReportObjectTypeEXT::eDisplayModeKHR: return "DisplayModeKHR";
5699       case DebugReportObjectTypeEXT::eValidationCacheEXT: return "ValidationCacheEXT";
5700       case DebugReportObjectTypeEXT::eSamplerYcbcrConversion: return "SamplerYcbcrConversion";
5701       case DebugReportObjectTypeEXT::eDescriptorUpdateTemplate: return "DescriptorUpdateTemplate";
5702       case DebugReportObjectTypeEXT::eCuModuleNVX: return "CuModuleNVX";
5703       case DebugReportObjectTypeEXT::eCuFunctionNVX: return "CuFunctionNVX";
5704       case DebugReportObjectTypeEXT::eAccelerationStructureKHR: return "AccelerationStructureKHR";
5705       case DebugReportObjectTypeEXT::eAccelerationStructureNV: return "AccelerationStructureNV";
5706 #if defined( VK_USE_PLATFORM_FUCHSIA )
5707       case DebugReportObjectTypeEXT::eBufferCollectionFUCHSIA: return "BufferCollectionFUCHSIA";
5708 #endif /*VK_USE_PLATFORM_FUCHSIA*/
5709       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5710     }
5711   }
5712 
5713   //=== VK_AMD_rasterization_order ===
5714 
5715   enum class RasterizationOrderAMD
5716   {
5717     eStrict  = VK_RASTERIZATION_ORDER_STRICT_AMD,
5718     eRelaxed = VK_RASTERIZATION_ORDER_RELAXED_AMD
5719   };
5720 
to_string(RasterizationOrderAMD value)5721   VULKAN_HPP_INLINE std::string to_string( RasterizationOrderAMD value )
5722   {
5723     switch ( value )
5724     {
5725       case RasterizationOrderAMD::eStrict: return "Strict";
5726       case RasterizationOrderAMD::eRelaxed: return "Relaxed";
5727       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5728     }
5729   }
5730 
5731 #if defined( VK_ENABLE_BETA_EXTENSIONS )
5732   //=== VK_KHR_video_queue ===
5733 
5734   enum class VideoCodecOperationFlagBitsKHR : VkVideoCodecOperationFlagsKHR
5735   {
5736     eInvalid = VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR,
5737 #  if defined( VK_ENABLE_BETA_EXTENSIONS )
5738     eEncodeH264EXT = VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT,
5739     eEncodeH265EXT = VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT,
5740     eDecodeH264EXT = VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT,
5741     eDecodeH265EXT = VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT
5742 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
5743   };
5744 
to_string(VideoCodecOperationFlagBitsKHR value)5745   VULKAN_HPP_INLINE std::string to_string( VideoCodecOperationFlagBitsKHR value )
5746   {
5747     switch ( value )
5748     {
5749       case VideoCodecOperationFlagBitsKHR::eInvalid: return "Invalid";
5750 #  if defined( VK_ENABLE_BETA_EXTENSIONS )
5751       case VideoCodecOperationFlagBitsKHR::eEncodeH264EXT: return "EncodeH264EXT";
5752       case VideoCodecOperationFlagBitsKHR::eEncodeH265EXT: return "EncodeH265EXT";
5753       case VideoCodecOperationFlagBitsKHR::eDecodeH264EXT: return "DecodeH264EXT";
5754       case VideoCodecOperationFlagBitsKHR::eDecodeH265EXT: return "DecodeH265EXT";
5755 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
5756       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5757     }
5758   }
5759 
5760   enum class VideoChromaSubsamplingFlagBitsKHR : VkVideoChromaSubsamplingFlagsKHR
5761   {
5762     eInvalid    = VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR,
5763     eMonochrome = VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR,
5764     e420        = VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,
5765     e422        = VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR,
5766     e444        = VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR
5767   };
5768 
to_string(VideoChromaSubsamplingFlagBitsKHR value)5769   VULKAN_HPP_INLINE std::string to_string( VideoChromaSubsamplingFlagBitsKHR value )
5770   {
5771     switch ( value )
5772     {
5773       case VideoChromaSubsamplingFlagBitsKHR::eInvalid: return "Invalid";
5774       case VideoChromaSubsamplingFlagBitsKHR::eMonochrome: return "Monochrome";
5775       case VideoChromaSubsamplingFlagBitsKHR::e420: return "420";
5776       case VideoChromaSubsamplingFlagBitsKHR::e422: return "422";
5777       case VideoChromaSubsamplingFlagBitsKHR::e444: return "444";
5778       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5779     }
5780   }
5781 
5782   enum class VideoComponentBitDepthFlagBitsKHR : VkVideoComponentBitDepthFlagsKHR
5783   {
5784     eInvalid = VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR,
5785     e8       = VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR,
5786     e10      = VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR,
5787     e12      = VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR
5788   };
5789 
to_string(VideoComponentBitDepthFlagBitsKHR value)5790   VULKAN_HPP_INLINE std::string to_string( VideoComponentBitDepthFlagBitsKHR value )
5791   {
5792     switch ( value )
5793     {
5794       case VideoComponentBitDepthFlagBitsKHR::eInvalid: return "Invalid";
5795       case VideoComponentBitDepthFlagBitsKHR::e8: return "8";
5796       case VideoComponentBitDepthFlagBitsKHR::e10: return "10";
5797       case VideoComponentBitDepthFlagBitsKHR::e12: return "12";
5798       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5799     }
5800   }
5801 
5802   enum class VideoCapabilityFlagBitsKHR : VkVideoCapabilityFlagsKHR
5803   {
5804     eProtectedContent        = VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR,
5805     eSeparateReferenceImages = VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR
5806   };
5807 
to_string(VideoCapabilityFlagBitsKHR value)5808   VULKAN_HPP_INLINE std::string to_string( VideoCapabilityFlagBitsKHR value )
5809   {
5810     switch ( value )
5811     {
5812       case VideoCapabilityFlagBitsKHR::eProtectedContent: return "ProtectedContent";
5813       case VideoCapabilityFlagBitsKHR::eSeparateReferenceImages: return "SeparateReferenceImages";
5814       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5815     }
5816   }
5817 
5818   enum class VideoSessionCreateFlagBitsKHR : VkVideoSessionCreateFlagsKHR
5819   {
5820     eDefault          = VK_VIDEO_SESSION_CREATE_DEFAULT_KHR,
5821     eProtectedContent = VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR
5822   };
5823 
to_string(VideoSessionCreateFlagBitsKHR value)5824   VULKAN_HPP_INLINE std::string to_string( VideoSessionCreateFlagBitsKHR value )
5825   {
5826     switch ( value )
5827     {
5828       case VideoSessionCreateFlagBitsKHR::eDefault: return "Default";
5829       case VideoSessionCreateFlagBitsKHR::eProtectedContent: return "ProtectedContent";
5830       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5831     }
5832   }
5833 
5834   enum class VideoCodingControlFlagBitsKHR : VkVideoCodingControlFlagsKHR
5835   {
5836     eDefault = VK_VIDEO_CODING_CONTROL_DEFAULT_KHR,
5837     eReset   = VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR
5838   };
5839 
to_string(VideoCodingControlFlagBitsKHR value)5840   VULKAN_HPP_INLINE std::string to_string( VideoCodingControlFlagBitsKHR value )
5841   {
5842     switch ( value )
5843     {
5844       case VideoCodingControlFlagBitsKHR::eDefault: return "Default";
5845       case VideoCodingControlFlagBitsKHR::eReset: return "Reset";
5846       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5847     }
5848   }
5849 
5850   enum class VideoCodingQualityPresetFlagBitsKHR : VkVideoCodingQualityPresetFlagsKHR
5851   {
5852     eNormal  = VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR,
5853     ePower   = VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR,
5854     eQuality = VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR
5855   };
5856 
to_string(VideoCodingQualityPresetFlagBitsKHR value)5857   VULKAN_HPP_INLINE std::string to_string( VideoCodingQualityPresetFlagBitsKHR value )
5858   {
5859     switch ( value )
5860     {
5861       case VideoCodingQualityPresetFlagBitsKHR::eNormal: return "Normal";
5862       case VideoCodingQualityPresetFlagBitsKHR::ePower: return "Power";
5863       case VideoCodingQualityPresetFlagBitsKHR::eQuality: return "Quality";
5864       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5865     }
5866   }
5867 
5868   enum class QueryResultStatusKHR
5869   {
5870     eError    = VK_QUERY_RESULT_STATUS_ERROR_KHR,
5871     eNotReady = VK_QUERY_RESULT_STATUS_NOT_READY_KHR,
5872     eComplete = VK_QUERY_RESULT_STATUS_COMPLETE_KHR
5873   };
5874 
to_string(QueryResultStatusKHR value)5875   VULKAN_HPP_INLINE std::string to_string( QueryResultStatusKHR value )
5876   {
5877     switch ( value )
5878     {
5879       case QueryResultStatusKHR::eError: return "Error";
5880       case QueryResultStatusKHR::eNotReady: return "NotReady";
5881       case QueryResultStatusKHR::eComplete: return "Complete";
5882       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5883     }
5884   }
5885 
5886   enum class VideoBeginCodingFlagBitsKHR : VkVideoBeginCodingFlagsKHR
5887   {
5888   };
5889 
to_string(VideoBeginCodingFlagBitsKHR)5890   VULKAN_HPP_INLINE std::string to_string( VideoBeginCodingFlagBitsKHR )
5891   {
5892     return "(void)";
5893   }
5894 
5895   enum class VideoEndCodingFlagBitsKHR : VkVideoEndCodingFlagsKHR
5896   {
5897   };
5898 
to_string(VideoEndCodingFlagBitsKHR)5899   VULKAN_HPP_INLINE std::string to_string( VideoEndCodingFlagBitsKHR )
5900   {
5901     return "(void)";
5902   }
5903 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
5904 
5905 #if defined( VK_ENABLE_BETA_EXTENSIONS )
5906   //=== VK_KHR_video_decode_queue ===
5907 
5908   enum class VideoDecodeFlagBitsKHR : VkVideoDecodeFlagsKHR
5909   {
5910     eDefault   = VK_VIDEO_DECODE_DEFAULT_KHR,
5911     eReserved0 = VK_VIDEO_DECODE_RESERVED_0_BIT_KHR
5912   };
5913 
to_string(VideoDecodeFlagBitsKHR value)5914   VULKAN_HPP_INLINE std::string to_string( VideoDecodeFlagBitsKHR value )
5915   {
5916     switch ( value )
5917     {
5918       case VideoDecodeFlagBitsKHR::eDefault: return "Default";
5919       case VideoDecodeFlagBitsKHR::eReserved0: return "Reserved0";
5920       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5921     }
5922   }
5923 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
5924 
5925   //=== VK_EXT_transform_feedback ===
5926 
5927   enum class PipelineRasterizationStateStreamCreateFlagBitsEXT : VkPipelineRasterizationStateStreamCreateFlagsEXT
5928   {
5929   };
5930 
to_string(PipelineRasterizationStateStreamCreateFlagBitsEXT)5931   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagBitsEXT )
5932   {
5933     return "(void)";
5934   }
5935 
5936 #if defined( VK_ENABLE_BETA_EXTENSIONS )
5937   //=== VK_EXT_video_encode_h264 ===
5938 
5939   enum class VideoEncodeH264CapabilityFlagBitsEXT : VkVideoEncodeH264CapabilityFlagsEXT
5940   {
5941     eCabac                      = VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT,
5942     eCavlc                      = VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT,
5943     eWeightedBiPredImplicit     = VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT,
5944     eTransform8X8               = VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT,
5945     eChromaQpOffset             = VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT,
5946     eSecondChromaQpOffset       = VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT,
5947     eDeblockingFilterDisabled   = VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT,
5948     eDeblockingFilterEnabled    = VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT,
5949     eDeblockingFilterPartial    = VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT,
5950     eMultipleSlicePerFrame      = VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT,
5951     eEvenlyDistributedSliceSize = VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT
5952   };
5953 
to_string(VideoEncodeH264CapabilityFlagBitsEXT value)5954   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CapabilityFlagBitsEXT value )
5955   {
5956     switch ( value )
5957     {
5958       case VideoEncodeH264CapabilityFlagBitsEXT::eCabac: return "Cabac";
5959       case VideoEncodeH264CapabilityFlagBitsEXT::eCavlc: return "Cavlc";
5960       case VideoEncodeH264CapabilityFlagBitsEXT::eWeightedBiPredImplicit: return "WeightedBiPredImplicit";
5961       case VideoEncodeH264CapabilityFlagBitsEXT::eTransform8X8: return "Transform8X8";
5962       case VideoEncodeH264CapabilityFlagBitsEXT::eChromaQpOffset: return "ChromaQpOffset";
5963       case VideoEncodeH264CapabilityFlagBitsEXT::eSecondChromaQpOffset: return "SecondChromaQpOffset";
5964       case VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterDisabled: return "DeblockingFilterDisabled";
5965       case VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterEnabled: return "DeblockingFilterEnabled";
5966       case VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterPartial: return "DeblockingFilterPartial";
5967       case VideoEncodeH264CapabilityFlagBitsEXT::eMultipleSlicePerFrame: return "MultipleSlicePerFrame";
5968       case VideoEncodeH264CapabilityFlagBitsEXT::eEvenlyDistributedSliceSize: return "EvenlyDistributedSliceSize";
5969       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5970     }
5971   }
5972 
5973   enum class VideoEncodeH264InputModeFlagBitsEXT : VkVideoEncodeH264InputModeFlagsEXT
5974   {
5975     eFrame  = VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT,
5976     eSlice  = VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT,
5977     eNonVcl = VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT
5978   };
5979 
to_string(VideoEncodeH264InputModeFlagBitsEXT value)5980   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264InputModeFlagBitsEXT value )
5981   {
5982     switch ( value )
5983     {
5984       case VideoEncodeH264InputModeFlagBitsEXT::eFrame: return "Frame";
5985       case VideoEncodeH264InputModeFlagBitsEXT::eSlice: return "Slice";
5986       case VideoEncodeH264InputModeFlagBitsEXT::eNonVcl: return "NonVcl";
5987       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5988     }
5989   }
5990 
5991   enum class VideoEncodeH264OutputModeFlagBitsEXT : VkVideoEncodeH264OutputModeFlagsEXT
5992   {
5993     eFrame  = VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT,
5994     eSlice  = VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT,
5995     eNonVcl = VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT
5996   };
5997 
to_string(VideoEncodeH264OutputModeFlagBitsEXT value)5998   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264OutputModeFlagBitsEXT value )
5999   {
6000     switch ( value )
6001     {
6002       case VideoEncodeH264OutputModeFlagBitsEXT::eFrame: return "Frame";
6003       case VideoEncodeH264OutputModeFlagBitsEXT::eSlice: return "Slice";
6004       case VideoEncodeH264OutputModeFlagBitsEXT::eNonVcl: return "NonVcl";
6005       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6006     }
6007   }
6008 
6009   enum class VideoEncodeH264CreateFlagBitsEXT : VkVideoEncodeH264CreateFlagsEXT
6010   {
6011     eDefault   = VK_VIDEO_ENCODE_H264_CREATE_DEFAULT_EXT,
6012     eReserved0 = VK_VIDEO_ENCODE_H264_CREATE_RESERVED_0_BIT_EXT
6013   };
6014 
to_string(VideoEncodeH264CreateFlagBitsEXT value)6015   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CreateFlagBitsEXT value )
6016   {
6017     switch ( value )
6018     {
6019       case VideoEncodeH264CreateFlagBitsEXT::eDefault: return "Default";
6020       case VideoEncodeH264CreateFlagBitsEXT::eReserved0: return "Reserved0";
6021       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6022     }
6023   }
6024 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
6025 
6026 #if defined( VK_ENABLE_BETA_EXTENSIONS )
6027   //=== VK_EXT_video_encode_h265 ===
6028 
6029   enum class VideoEncodeH265CapabilityFlagBitsEXT : VkVideoEncodeH265CapabilityFlagsEXT
6030   {
6031     eWeightedBiPredImplicit     = VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT,
6032     eTransform8X8               = VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_8X8_BIT_EXT,
6033     eChromaQpOffset             = VK_VIDEO_ENCODE_H265_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT,
6034     eSecondChromaQpOffset       = VK_VIDEO_ENCODE_H265_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT,
6035     eDeblockingFilterDisabled   = VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT,
6036     eDeblockingFilterEnabled    = VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT,
6037     eDeblockingFilterPartial    = VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT,
6038     eMultipleSlicePerFrame      = VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT,
6039     eEvenlyDistributedSliceSize = VK_VIDEO_ENCODE_H265_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT
6040   };
6041 
to_string(VideoEncodeH265CapabilityFlagBitsEXT value)6042   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CapabilityFlagBitsEXT value )
6043   {
6044     switch ( value )
6045     {
6046       case VideoEncodeH265CapabilityFlagBitsEXT::eWeightedBiPredImplicit: return "WeightedBiPredImplicit";
6047       case VideoEncodeH265CapabilityFlagBitsEXT::eTransform8X8: return "Transform8X8";
6048       case VideoEncodeH265CapabilityFlagBitsEXT::eChromaQpOffset: return "ChromaQpOffset";
6049       case VideoEncodeH265CapabilityFlagBitsEXT::eSecondChromaQpOffset: return "SecondChromaQpOffset";
6050       case VideoEncodeH265CapabilityFlagBitsEXT::eDeblockingFilterDisabled: return "DeblockingFilterDisabled";
6051       case VideoEncodeH265CapabilityFlagBitsEXT::eDeblockingFilterEnabled: return "DeblockingFilterEnabled";
6052       case VideoEncodeH265CapabilityFlagBitsEXT::eDeblockingFilterPartial: return "DeblockingFilterPartial";
6053       case VideoEncodeH265CapabilityFlagBitsEXT::eMultipleSlicePerFrame: return "MultipleSlicePerFrame";
6054       case VideoEncodeH265CapabilityFlagBitsEXT::eEvenlyDistributedSliceSize: return "EvenlyDistributedSliceSize";
6055       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6056     }
6057   }
6058 
6059   enum class VideoEncodeH265InputModeFlagBitsEXT : VkVideoEncodeH265InputModeFlagsEXT
6060   {
6061     eFrame  = VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT,
6062     eSlice  = VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_BIT_EXT,
6063     eNonVcl = VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT
6064   };
6065 
to_string(VideoEncodeH265InputModeFlagBitsEXT value)6066   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265InputModeFlagBitsEXT value )
6067   {
6068     switch ( value )
6069     {
6070       case VideoEncodeH265InputModeFlagBitsEXT::eFrame: return "Frame";
6071       case VideoEncodeH265InputModeFlagBitsEXT::eSlice: return "Slice";
6072       case VideoEncodeH265InputModeFlagBitsEXT::eNonVcl: return "NonVcl";
6073       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6074     }
6075   }
6076 
6077   enum class VideoEncodeH265OutputModeFlagBitsEXT : VkVideoEncodeH265OutputModeFlagsEXT
6078   {
6079     eFrame  = VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT,
6080     eSlice  = VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_BIT_EXT,
6081     eNonVcl = VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT
6082   };
6083 
to_string(VideoEncodeH265OutputModeFlagBitsEXT value)6084   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265OutputModeFlagBitsEXT value )
6085   {
6086     switch ( value )
6087     {
6088       case VideoEncodeH265OutputModeFlagBitsEXT::eFrame: return "Frame";
6089       case VideoEncodeH265OutputModeFlagBitsEXT::eSlice: return "Slice";
6090       case VideoEncodeH265OutputModeFlagBitsEXT::eNonVcl: return "NonVcl";
6091       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6092     }
6093   }
6094 
6095   enum class VideoEncodeH265CtbSizeFlagBitsEXT : VkVideoEncodeH265CtbSizeFlagsEXT
6096   {
6097     e8  = VK_VIDEO_ENCODE_H265_CTB_SIZE_8_BIT_EXT,
6098     e16 = VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT,
6099     e32 = VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT,
6100     e64 = VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT
6101   };
6102 
to_string(VideoEncodeH265CtbSizeFlagBitsEXT value)6103   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CtbSizeFlagBitsEXT value )
6104   {
6105     switch ( value )
6106     {
6107       case VideoEncodeH265CtbSizeFlagBitsEXT::e8: return "8";
6108       case VideoEncodeH265CtbSizeFlagBitsEXT::e16: return "16";
6109       case VideoEncodeH265CtbSizeFlagBitsEXT::e32: return "32";
6110       case VideoEncodeH265CtbSizeFlagBitsEXT::e64: return "64";
6111       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6112     }
6113   }
6114 
6115   enum class VideoEncodeH265CreateFlagBitsEXT : VkVideoEncodeH265CreateFlagsEXT
6116   {
6117   };
6118 
to_string(VideoEncodeH265CreateFlagBitsEXT)6119   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CreateFlagBitsEXT )
6120   {
6121     return "(void)";
6122   }
6123 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
6124 
6125 #if defined( VK_ENABLE_BETA_EXTENSIONS )
6126   //=== VK_EXT_video_decode_h264 ===
6127 
6128   enum class VideoDecodeH264PictureLayoutFlagBitsEXT : VkVideoDecodeH264PictureLayoutFlagsEXT
6129   {
6130     eProgressive                = VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT,
6131     eInterlacedInterleavedLines = VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT,
6132     eInterlacedSeparatePlanes   = VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT
6133   };
6134 
to_string(VideoDecodeH264PictureLayoutFlagBitsEXT value)6135   VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264PictureLayoutFlagBitsEXT value )
6136   {
6137     switch ( value )
6138     {
6139       case VideoDecodeH264PictureLayoutFlagBitsEXT::eProgressive: return "Progressive";
6140       case VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedInterleavedLines: return "InterlacedInterleavedLines";
6141       case VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedSeparatePlanes: return "InterlacedSeparatePlanes";
6142       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6143     }
6144   }
6145 
6146   enum class VideoDecodeH264CreateFlagBitsEXT : VkVideoDecodeH264CreateFlagsEXT
6147   {
6148   };
6149 
to_string(VideoDecodeH264CreateFlagBitsEXT)6150   VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264CreateFlagBitsEXT )
6151   {
6152     return "(void)";
6153   }
6154 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
6155 
6156   //=== VK_AMD_shader_info ===
6157 
6158   enum class ShaderInfoTypeAMD
6159   {
6160     eStatistics  = VK_SHADER_INFO_TYPE_STATISTICS_AMD,
6161     eBinary      = VK_SHADER_INFO_TYPE_BINARY_AMD,
6162     eDisassembly = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD
6163   };
6164 
to_string(ShaderInfoTypeAMD value)6165   VULKAN_HPP_INLINE std::string to_string( ShaderInfoTypeAMD value )
6166   {
6167     switch ( value )
6168     {
6169       case ShaderInfoTypeAMD::eStatistics: return "Statistics";
6170       case ShaderInfoTypeAMD::eBinary: return "Binary";
6171       case ShaderInfoTypeAMD::eDisassembly: return "Disassembly";
6172       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6173     }
6174   }
6175 
6176 #if defined( VK_USE_PLATFORM_GGP )
6177   //=== VK_GGP_stream_descriptor_surface ===
6178 
6179   enum class StreamDescriptorSurfaceCreateFlagBitsGGP : VkStreamDescriptorSurfaceCreateFlagsGGP
6180   {
6181   };
6182 
to_string(StreamDescriptorSurfaceCreateFlagBitsGGP)6183   VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagBitsGGP )
6184   {
6185     return "(void)";
6186   }
6187 #endif /*VK_USE_PLATFORM_GGP*/
6188 
6189   //=== VK_NV_external_memory_capabilities ===
6190 
6191   enum class ExternalMemoryHandleTypeFlagBitsNV : VkExternalMemoryHandleTypeFlagsNV
6192   {
6193     eOpaqueWin32    = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,
6194     eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,
6195     eD3D11Image     = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,
6196     eD3D11ImageKmt  = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV
6197   };
6198 
to_string(ExternalMemoryHandleTypeFlagBitsNV value)6199   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBitsNV value )
6200   {
6201     switch ( value )
6202     {
6203       case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32: return "OpaqueWin32";
6204       case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt: return "OpaqueWin32Kmt";
6205       case ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image: return "D3D11Image";
6206       case ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt: return "D3D11ImageKmt";
6207       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6208     }
6209   }
6210 
6211   enum class ExternalMemoryFeatureFlagBitsNV : VkExternalMemoryFeatureFlagsNV
6212   {
6213     eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,
6214     eExportable    = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,
6215     eImportable    = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV
6216   };
6217 
to_string(ExternalMemoryFeatureFlagBitsNV value)6218   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBitsNV value )
6219   {
6220     switch ( value )
6221     {
6222       case ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly: return "DedicatedOnly";
6223       case ExternalMemoryFeatureFlagBitsNV::eExportable: return "Exportable";
6224       case ExternalMemoryFeatureFlagBitsNV::eImportable: return "Importable";
6225       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6226     }
6227   }
6228 
6229   //=== VK_EXT_validation_flags ===
6230 
6231   enum class ValidationCheckEXT
6232   {
6233     eAll     = VK_VALIDATION_CHECK_ALL_EXT,
6234     eShaders = VK_VALIDATION_CHECK_SHADERS_EXT
6235   };
6236 
to_string(ValidationCheckEXT value)6237   VULKAN_HPP_INLINE std::string to_string( ValidationCheckEXT value )
6238   {
6239     switch ( value )
6240     {
6241       case ValidationCheckEXT::eAll: return "All";
6242       case ValidationCheckEXT::eShaders: return "Shaders";
6243       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6244     }
6245   }
6246 
6247 #if defined( VK_USE_PLATFORM_VI_NN )
6248   //=== VK_NN_vi_surface ===
6249 
6250   enum class ViSurfaceCreateFlagBitsNN : VkViSurfaceCreateFlagsNN
6251   {
6252   };
6253 
to_string(ViSurfaceCreateFlagBitsNN)6254   VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagBitsNN )
6255   {
6256     return "(void)";
6257   }
6258 #endif /*VK_USE_PLATFORM_VI_NN*/
6259 
6260   //=== VK_EXT_conditional_rendering ===
6261 
6262   enum class ConditionalRenderingFlagBitsEXT : VkConditionalRenderingFlagsEXT
6263   {
6264     eInverted = VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT
6265   };
6266 
to_string(ConditionalRenderingFlagBitsEXT value)6267   VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagBitsEXT value )
6268   {
6269     switch ( value )
6270     {
6271       case ConditionalRenderingFlagBitsEXT::eInverted: return "Inverted";
6272       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6273     }
6274   }
6275 
6276   //=== VK_EXT_display_surface_counter ===
6277 
6278   enum class SurfaceCounterFlagBitsEXT : VkSurfaceCounterFlagsEXT
6279   {
6280     eVblank = VK_SURFACE_COUNTER_VBLANK_BIT_EXT
6281   };
6282 
to_string(SurfaceCounterFlagBitsEXT value)6283   VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagBitsEXT value )
6284   {
6285     switch ( value )
6286     {
6287       case SurfaceCounterFlagBitsEXT::eVblank: return "Vblank";
6288       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6289     }
6290   }
6291 
6292   //=== VK_EXT_display_control ===
6293 
6294   enum class DisplayPowerStateEXT
6295   {
6296     eOff     = VK_DISPLAY_POWER_STATE_OFF_EXT,
6297     eSuspend = VK_DISPLAY_POWER_STATE_SUSPEND_EXT,
6298     eOn      = VK_DISPLAY_POWER_STATE_ON_EXT
6299   };
6300 
to_string(DisplayPowerStateEXT value)6301   VULKAN_HPP_INLINE std::string to_string( DisplayPowerStateEXT value )
6302   {
6303     switch ( value )
6304     {
6305       case DisplayPowerStateEXT::eOff: return "Off";
6306       case DisplayPowerStateEXT::eSuspend: return "Suspend";
6307       case DisplayPowerStateEXT::eOn: return "On";
6308       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6309     }
6310   }
6311 
6312   enum class DeviceEventTypeEXT
6313   {
6314     eDisplayHotplug = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT
6315   };
6316 
to_string(DeviceEventTypeEXT value)6317   VULKAN_HPP_INLINE std::string to_string( DeviceEventTypeEXT value )
6318   {
6319     switch ( value )
6320     {
6321       case DeviceEventTypeEXT::eDisplayHotplug: return "DisplayHotplug";
6322       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6323     }
6324   }
6325 
6326   enum class DisplayEventTypeEXT
6327   {
6328     eFirstPixelOut = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT
6329   };
6330 
to_string(DisplayEventTypeEXT value)6331   VULKAN_HPP_INLINE std::string to_string( DisplayEventTypeEXT value )
6332   {
6333     switch ( value )
6334     {
6335       case DisplayEventTypeEXT::eFirstPixelOut: return "FirstPixelOut";
6336       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6337     }
6338   }
6339 
6340   //=== VK_NV_viewport_swizzle ===
6341 
6342   enum class ViewportCoordinateSwizzleNV
6343   {
6344     ePositiveX = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
6345     eNegativeX = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV,
6346     ePositiveY = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV,
6347     eNegativeY = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV,
6348     ePositiveZ = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV,
6349     eNegativeZ = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV,
6350     ePositiveW = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV,
6351     eNegativeW = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV
6352   };
6353 
to_string(ViewportCoordinateSwizzleNV value)6354   VULKAN_HPP_INLINE std::string to_string( ViewportCoordinateSwizzleNV value )
6355   {
6356     switch ( value )
6357     {
6358       case ViewportCoordinateSwizzleNV::ePositiveX: return "PositiveX";
6359       case ViewportCoordinateSwizzleNV::eNegativeX: return "NegativeX";
6360       case ViewportCoordinateSwizzleNV::ePositiveY: return "PositiveY";
6361       case ViewportCoordinateSwizzleNV::eNegativeY: return "NegativeY";
6362       case ViewportCoordinateSwizzleNV::ePositiveZ: return "PositiveZ";
6363       case ViewportCoordinateSwizzleNV::eNegativeZ: return "NegativeZ";
6364       case ViewportCoordinateSwizzleNV::ePositiveW: return "PositiveW";
6365       case ViewportCoordinateSwizzleNV::eNegativeW: return "NegativeW";
6366       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6367     }
6368   }
6369 
6370   enum class PipelineViewportSwizzleStateCreateFlagBitsNV : VkPipelineViewportSwizzleStateCreateFlagsNV
6371   {
6372   };
6373 
to_string(PipelineViewportSwizzleStateCreateFlagBitsNV)6374   VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagBitsNV )
6375   {
6376     return "(void)";
6377   }
6378 
6379   //=== VK_EXT_discard_rectangles ===
6380 
6381   enum class DiscardRectangleModeEXT
6382   {
6383     eInclusive = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
6384     eExclusive = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT
6385   };
6386 
to_string(DiscardRectangleModeEXT value)6387   VULKAN_HPP_INLINE std::string to_string( DiscardRectangleModeEXT value )
6388   {
6389     switch ( value )
6390     {
6391       case DiscardRectangleModeEXT::eInclusive: return "Inclusive";
6392       case DiscardRectangleModeEXT::eExclusive: return "Exclusive";
6393       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6394     }
6395   }
6396 
6397   enum class PipelineDiscardRectangleStateCreateFlagBitsEXT : VkPipelineDiscardRectangleStateCreateFlagsEXT
6398   {
6399   };
6400 
to_string(PipelineDiscardRectangleStateCreateFlagBitsEXT)6401   VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagBitsEXT )
6402   {
6403     return "(void)";
6404   }
6405 
6406   //=== VK_EXT_conservative_rasterization ===
6407 
6408   enum class ConservativeRasterizationModeEXT
6409   {
6410     eDisabled      = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT,
6411     eOverestimate  = VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,
6412     eUnderestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT
6413   };
6414 
to_string(ConservativeRasterizationModeEXT value)6415   VULKAN_HPP_INLINE std::string to_string( ConservativeRasterizationModeEXT value )
6416   {
6417     switch ( value )
6418     {
6419       case ConservativeRasterizationModeEXT::eDisabled: return "Disabled";
6420       case ConservativeRasterizationModeEXT::eOverestimate: return "Overestimate";
6421       case ConservativeRasterizationModeEXT::eUnderestimate: return "Underestimate";
6422       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6423     }
6424   }
6425 
6426   enum class
6427     PipelineRasterizationConservativeStateCreateFlagBitsEXT : VkPipelineRasterizationConservativeStateCreateFlagsEXT
6428   {
6429   };
6430 
to_string(PipelineRasterizationConservativeStateCreateFlagBitsEXT)6431   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagBitsEXT )
6432   {
6433     return "(void)";
6434   }
6435 
6436   //=== VK_EXT_depth_clip_enable ===
6437 
6438   enum class PipelineRasterizationDepthClipStateCreateFlagBitsEXT : VkPipelineRasterizationDepthClipStateCreateFlagsEXT
6439   {
6440   };
6441 
to_string(PipelineRasterizationDepthClipStateCreateFlagBitsEXT)6442   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagBitsEXT )
6443   {
6444     return "(void)";
6445   }
6446 
6447   //=== VK_KHR_performance_query ===
6448 
6449   enum class PerformanceCounterDescriptionFlagBitsKHR : VkPerformanceCounterDescriptionFlagsKHR
6450   {
6451     ePerformanceImpacting = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
6452     eConcurrentlyImpacted = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR
6453   };
6454 
to_string(PerformanceCounterDescriptionFlagBitsKHR value)6455   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterDescriptionFlagBitsKHR value )
6456   {
6457     switch ( value )
6458     {
6459       case PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting: return "PerformanceImpacting";
6460       case PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted: return "ConcurrentlyImpacted";
6461       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6462     }
6463   }
6464 
6465   enum class PerformanceCounterScopeKHR
6466   {
6467     eCommandBuffer             = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
6468     eRenderPass                = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
6469     eCommand                   = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
6470     eVkQueryScopeCommandBuffer = VK_QUERY_SCOPE_COMMAND_BUFFER_KHR,
6471     eVkQueryScopeCommand       = VK_QUERY_SCOPE_COMMAND_KHR,
6472     eVkQueryScopeRenderPass    = VK_QUERY_SCOPE_RENDER_PASS_KHR
6473   };
6474 
to_string(PerformanceCounterScopeKHR value)6475   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterScopeKHR value )
6476   {
6477     switch ( value )
6478     {
6479       case PerformanceCounterScopeKHR::eCommandBuffer: return "CommandBuffer";
6480       case PerformanceCounterScopeKHR::eRenderPass: return "RenderPass";
6481       case PerformanceCounterScopeKHR::eCommand: return "Command";
6482       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6483     }
6484   }
6485 
6486   enum class PerformanceCounterStorageKHR
6487   {
6488     eInt32   = VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR,
6489     eInt64   = VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR,
6490     eUint32  = VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR,
6491     eUint64  = VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR,
6492     eFloat32 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR,
6493     eFloat64 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR
6494   };
6495 
to_string(PerformanceCounterStorageKHR value)6496   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterStorageKHR value )
6497   {
6498     switch ( value )
6499     {
6500       case PerformanceCounterStorageKHR::eInt32: return "Int32";
6501       case PerformanceCounterStorageKHR::eInt64: return "Int64";
6502       case PerformanceCounterStorageKHR::eUint32: return "Uint32";
6503       case PerformanceCounterStorageKHR::eUint64: return "Uint64";
6504       case PerformanceCounterStorageKHR::eFloat32: return "Float32";
6505       case PerformanceCounterStorageKHR::eFloat64: return "Float64";
6506       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6507     }
6508   }
6509 
6510   enum class PerformanceCounterUnitKHR
6511   {
6512     eGeneric        = VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR,
6513     ePercentage     = VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR,
6514     eNanoseconds    = VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR,
6515     eBytes          = VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR,
6516     eBytesPerSecond = VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR,
6517     eKelvin         = VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR,
6518     eWatts          = VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR,
6519     eVolts          = VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR,
6520     eAmps           = VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR,
6521     eHertz          = VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR,
6522     eCycles         = VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR
6523   };
6524 
to_string(PerformanceCounterUnitKHR value)6525   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterUnitKHR value )
6526   {
6527     switch ( value )
6528     {
6529       case PerformanceCounterUnitKHR::eGeneric: return "Generic";
6530       case PerformanceCounterUnitKHR::ePercentage: return "Percentage";
6531       case PerformanceCounterUnitKHR::eNanoseconds: return "Nanoseconds";
6532       case PerformanceCounterUnitKHR::eBytes: return "Bytes";
6533       case PerformanceCounterUnitKHR::eBytesPerSecond: return "BytesPerSecond";
6534       case PerformanceCounterUnitKHR::eKelvin: return "Kelvin";
6535       case PerformanceCounterUnitKHR::eWatts: return "Watts";
6536       case PerformanceCounterUnitKHR::eVolts: return "Volts";
6537       case PerformanceCounterUnitKHR::eAmps: return "Amps";
6538       case PerformanceCounterUnitKHR::eHertz: return "Hertz";
6539       case PerformanceCounterUnitKHR::eCycles: return "Cycles";
6540       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6541     }
6542   }
6543 
6544   enum class AcquireProfilingLockFlagBitsKHR : VkAcquireProfilingLockFlagsKHR
6545   {
6546   };
6547 
to_string(AcquireProfilingLockFlagBitsKHR)6548   VULKAN_HPP_INLINE std::string to_string( AcquireProfilingLockFlagBitsKHR )
6549   {
6550     return "(void)";
6551   }
6552 
6553 #if defined( VK_USE_PLATFORM_IOS_MVK )
6554   //=== VK_MVK_ios_surface ===
6555 
6556   enum class IOSSurfaceCreateFlagBitsMVK : VkIOSSurfaceCreateFlagsMVK
6557   {
6558   };
6559 
to_string(IOSSurfaceCreateFlagBitsMVK)6560   VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagBitsMVK )
6561   {
6562     return "(void)";
6563   }
6564 #endif /*VK_USE_PLATFORM_IOS_MVK*/
6565 
6566 #if defined( VK_USE_PLATFORM_MACOS_MVK )
6567   //=== VK_MVK_macos_surface ===
6568 
6569   enum class MacOSSurfaceCreateFlagBitsMVK : VkMacOSSurfaceCreateFlagsMVK
6570   {
6571   };
6572 
to_string(MacOSSurfaceCreateFlagBitsMVK)6573   VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagBitsMVK )
6574   {
6575     return "(void)";
6576   }
6577 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
6578 
6579   //=== VK_EXT_debug_utils ===
6580 
6581   enum class DebugUtilsMessageSeverityFlagBitsEXT : VkDebugUtilsMessageSeverityFlagsEXT
6582   {
6583     eVerbose = VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,
6584     eInfo    = VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,
6585     eWarning = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,
6586     eError   = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT
6587   };
6588 
to_string(DebugUtilsMessageSeverityFlagBitsEXT value)6589   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagBitsEXT value )
6590   {
6591     switch ( value )
6592     {
6593       case DebugUtilsMessageSeverityFlagBitsEXT::eVerbose: return "Verbose";
6594       case DebugUtilsMessageSeverityFlagBitsEXT::eInfo: return "Info";
6595       case DebugUtilsMessageSeverityFlagBitsEXT::eWarning: return "Warning";
6596       case DebugUtilsMessageSeverityFlagBitsEXT::eError: return "Error";
6597       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6598     }
6599   }
6600 
6601   enum class DebugUtilsMessageTypeFlagBitsEXT : VkDebugUtilsMessageTypeFlagsEXT
6602   {
6603     eGeneral     = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,
6604     eValidation  = VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,
6605     ePerformance = VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT
6606   };
6607 
to_string(DebugUtilsMessageTypeFlagBitsEXT value)6608   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagBitsEXT value )
6609   {
6610     switch ( value )
6611     {
6612       case DebugUtilsMessageTypeFlagBitsEXT::eGeneral: return "General";
6613       case DebugUtilsMessageTypeFlagBitsEXT::eValidation: return "Validation";
6614       case DebugUtilsMessageTypeFlagBitsEXT::ePerformance: return "Performance";
6615       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6616     }
6617   }
6618 
6619   enum class DebugUtilsMessengerCallbackDataFlagBitsEXT : VkDebugUtilsMessengerCallbackDataFlagsEXT
6620   {
6621   };
6622 
to_string(DebugUtilsMessengerCallbackDataFlagBitsEXT)6623   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagBitsEXT )
6624   {
6625     return "(void)";
6626   }
6627 
6628   enum class DebugUtilsMessengerCreateFlagBitsEXT : VkDebugUtilsMessengerCreateFlagsEXT
6629   {
6630   };
6631 
to_string(DebugUtilsMessengerCreateFlagBitsEXT)6632   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagBitsEXT )
6633   {
6634     return "(void)";
6635   }
6636 
6637   //=== VK_EXT_blend_operation_advanced ===
6638 
6639   enum class BlendOverlapEXT
6640   {
6641     eUncorrelated = VK_BLEND_OVERLAP_UNCORRELATED_EXT,
6642     eDisjoint     = VK_BLEND_OVERLAP_DISJOINT_EXT,
6643     eConjoint     = VK_BLEND_OVERLAP_CONJOINT_EXT
6644   };
6645 
to_string(BlendOverlapEXT value)6646   VULKAN_HPP_INLINE std::string to_string( BlendOverlapEXT value )
6647   {
6648     switch ( value )
6649     {
6650       case BlendOverlapEXT::eUncorrelated: return "Uncorrelated";
6651       case BlendOverlapEXT::eDisjoint: return "Disjoint";
6652       case BlendOverlapEXT::eConjoint: return "Conjoint";
6653       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6654     }
6655   }
6656 
6657   //=== VK_NV_fragment_coverage_to_color ===
6658 
6659   enum class PipelineCoverageToColorStateCreateFlagBitsNV : VkPipelineCoverageToColorStateCreateFlagsNV
6660   {
6661   };
6662 
to_string(PipelineCoverageToColorStateCreateFlagBitsNV)6663   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagBitsNV )
6664   {
6665     return "(void)";
6666   }
6667 
6668   //=== VK_KHR_acceleration_structure ===
6669 
6670   enum class AccelerationStructureTypeKHR
6671   {
6672     eTopLevel    = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
6673     eBottomLevel = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
6674     eGeneric     = VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
6675   };
6676   using AccelerationStructureTypeNV = AccelerationStructureTypeKHR;
6677 
to_string(AccelerationStructureTypeKHR value)6678   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureTypeKHR value )
6679   {
6680     switch ( value )
6681     {
6682       case AccelerationStructureTypeKHR::eTopLevel: return "TopLevel";
6683       case AccelerationStructureTypeKHR::eBottomLevel: return "BottomLevel";
6684       case AccelerationStructureTypeKHR::eGeneric: return "Generic";
6685       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6686     }
6687   }
6688 
6689   enum class AccelerationStructureBuildTypeKHR
6690   {
6691     eHost         = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR,
6692     eDevice       = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR,
6693     eHostOrDevice = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR
6694   };
6695 
to_string(AccelerationStructureBuildTypeKHR value)6696   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureBuildTypeKHR value )
6697   {
6698     switch ( value )
6699     {
6700       case AccelerationStructureBuildTypeKHR::eHost: return "Host";
6701       case AccelerationStructureBuildTypeKHR::eDevice: return "Device";
6702       case AccelerationStructureBuildTypeKHR::eHostOrDevice: return "HostOrDevice";
6703       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6704     }
6705   }
6706 
6707   enum class GeometryFlagBitsKHR : VkGeometryFlagsKHR
6708   {
6709     eOpaque                      = VK_GEOMETRY_OPAQUE_BIT_KHR,
6710     eNoDuplicateAnyHitInvocation = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR
6711   };
6712   using GeometryFlagBitsNV = GeometryFlagBitsKHR;
6713 
to_string(GeometryFlagBitsKHR value)6714   VULKAN_HPP_INLINE std::string to_string( GeometryFlagBitsKHR value )
6715   {
6716     switch ( value )
6717     {
6718       case GeometryFlagBitsKHR::eOpaque: return "Opaque";
6719       case GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation: return "NoDuplicateAnyHitInvocation";
6720       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6721     }
6722   }
6723 
6724   enum class GeometryInstanceFlagBitsKHR : VkGeometryInstanceFlagsKHR
6725   {
6726     eTriangleFacingCullDisable        = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
6727     eTriangleFlipFacing               = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
6728     eForceOpaque                      = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
6729     eForceNoOpaque                    = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
6730     eTriangleCullDisable              = VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV,
6731     eTriangleFrontCounterclockwiseKHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
6732     eTriangleFrontCounterclockwise    = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV
6733   };
6734   using GeometryInstanceFlagBitsNV = GeometryInstanceFlagBitsKHR;
6735 
to_string(GeometryInstanceFlagBitsKHR value)6736   VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagBitsKHR value )
6737   {
6738     switch ( value )
6739     {
6740       case GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable: return "TriangleFacingCullDisable";
6741       case GeometryInstanceFlagBitsKHR::eTriangleFlipFacing: return "TriangleFlipFacing";
6742       case GeometryInstanceFlagBitsKHR::eForceOpaque: return "ForceOpaque";
6743       case GeometryInstanceFlagBitsKHR::eForceNoOpaque: return "ForceNoOpaque";
6744       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6745     }
6746   }
6747 
6748   enum class BuildAccelerationStructureFlagBitsKHR : VkBuildAccelerationStructureFlagsKHR
6749   {
6750     eAllowUpdate     = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
6751     eAllowCompaction = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
6752     ePreferFastTrace = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
6753     ePreferFastBuild = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
6754     eLowMemory       = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
6755     eMotionNV        = VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV
6756   };
6757   using BuildAccelerationStructureFlagBitsNV = BuildAccelerationStructureFlagBitsKHR;
6758 
to_string(BuildAccelerationStructureFlagBitsKHR value)6759   VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagBitsKHR value )
6760   {
6761     switch ( value )
6762     {
6763       case BuildAccelerationStructureFlagBitsKHR::eAllowUpdate: return "AllowUpdate";
6764       case BuildAccelerationStructureFlagBitsKHR::eAllowCompaction: return "AllowCompaction";
6765       case BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace: return "PreferFastTrace";
6766       case BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild: return "PreferFastBuild";
6767       case BuildAccelerationStructureFlagBitsKHR::eLowMemory: return "LowMemory";
6768       case BuildAccelerationStructureFlagBitsKHR::eMotionNV: return "MotionNV";
6769       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6770     }
6771   }
6772 
6773   enum class CopyAccelerationStructureModeKHR
6774   {
6775     eClone       = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
6776     eCompact     = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
6777     eSerialize   = VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR,
6778     eDeserialize = VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR
6779   };
6780   using CopyAccelerationStructureModeNV = CopyAccelerationStructureModeKHR;
6781 
to_string(CopyAccelerationStructureModeKHR value)6782   VULKAN_HPP_INLINE std::string to_string( CopyAccelerationStructureModeKHR value )
6783   {
6784     switch ( value )
6785     {
6786       case CopyAccelerationStructureModeKHR::eClone: return "Clone";
6787       case CopyAccelerationStructureModeKHR::eCompact: return "Compact";
6788       case CopyAccelerationStructureModeKHR::eSerialize: return "Serialize";
6789       case CopyAccelerationStructureModeKHR::eDeserialize: return "Deserialize";
6790       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6791     }
6792   }
6793 
6794   enum class GeometryTypeKHR
6795   {
6796     eTriangles = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
6797     eAabbs     = VK_GEOMETRY_TYPE_AABBS_KHR,
6798     eInstances = VK_GEOMETRY_TYPE_INSTANCES_KHR
6799   };
6800   using GeometryTypeNV = GeometryTypeKHR;
6801 
to_string(GeometryTypeKHR value)6802   VULKAN_HPP_INLINE std::string to_string( GeometryTypeKHR value )
6803   {
6804     switch ( value )
6805     {
6806       case GeometryTypeKHR::eTriangles: return "Triangles";
6807       case GeometryTypeKHR::eAabbs: return "Aabbs";
6808       case GeometryTypeKHR::eInstances: return "Instances";
6809       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6810     }
6811   }
6812 
6813   enum class AccelerationStructureCompatibilityKHR
6814   {
6815     eCompatible   = VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR,
6816     eIncompatible = VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR
6817   };
6818 
to_string(AccelerationStructureCompatibilityKHR value)6819   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureCompatibilityKHR value )
6820   {
6821     switch ( value )
6822     {
6823       case AccelerationStructureCompatibilityKHR::eCompatible: return "Compatible";
6824       case AccelerationStructureCompatibilityKHR::eIncompatible: return "Incompatible";
6825       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6826     }
6827   }
6828 
6829   enum class AccelerationStructureCreateFlagBitsKHR : VkAccelerationStructureCreateFlagsKHR
6830   {
6831     eDeviceAddressCaptureReplay = VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,
6832     eMotionNV                   = VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV
6833   };
6834 
to_string(AccelerationStructureCreateFlagBitsKHR value)6835   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureCreateFlagBitsKHR value )
6836   {
6837     switch ( value )
6838     {
6839       case AccelerationStructureCreateFlagBitsKHR::eDeviceAddressCaptureReplay: return "DeviceAddressCaptureReplay";
6840       case AccelerationStructureCreateFlagBitsKHR::eMotionNV: return "MotionNV";
6841       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6842     }
6843   }
6844 
6845   enum class BuildAccelerationStructureModeKHR
6846   {
6847     eBuild  = VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR,
6848     eUpdate = VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR
6849   };
6850 
to_string(BuildAccelerationStructureModeKHR value)6851   VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureModeKHR value )
6852   {
6853     switch ( value )
6854     {
6855       case BuildAccelerationStructureModeKHR::eBuild: return "Build";
6856       case BuildAccelerationStructureModeKHR::eUpdate: return "Update";
6857       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6858     }
6859   }
6860 
6861   //=== VK_NV_framebuffer_mixed_samples ===
6862 
6863   enum class CoverageModulationModeNV
6864   {
6865     eNone  = VK_COVERAGE_MODULATION_MODE_NONE_NV,
6866     eRgb   = VK_COVERAGE_MODULATION_MODE_RGB_NV,
6867     eAlpha = VK_COVERAGE_MODULATION_MODE_ALPHA_NV,
6868     eRgba  = VK_COVERAGE_MODULATION_MODE_RGBA_NV
6869   };
6870 
to_string(CoverageModulationModeNV value)6871   VULKAN_HPP_INLINE std::string to_string( CoverageModulationModeNV value )
6872   {
6873     switch ( value )
6874     {
6875       case CoverageModulationModeNV::eNone: return "None";
6876       case CoverageModulationModeNV::eRgb: return "Rgb";
6877       case CoverageModulationModeNV::eAlpha: return "Alpha";
6878       case CoverageModulationModeNV::eRgba: return "Rgba";
6879       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6880     }
6881   }
6882 
6883   enum class PipelineCoverageModulationStateCreateFlagBitsNV : VkPipelineCoverageModulationStateCreateFlagsNV
6884   {
6885   };
6886 
to_string(PipelineCoverageModulationStateCreateFlagBitsNV)6887   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagBitsNV )
6888   {
6889     return "(void)";
6890   }
6891 
6892   //=== VK_EXT_validation_cache ===
6893 
6894   enum class ValidationCacheHeaderVersionEXT
6895   {
6896     eOne = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT
6897   };
6898 
to_string(ValidationCacheHeaderVersionEXT value)6899   VULKAN_HPP_INLINE std::string to_string( ValidationCacheHeaderVersionEXT value )
6900   {
6901     switch ( value )
6902     {
6903       case ValidationCacheHeaderVersionEXT::eOne: return "One";
6904       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6905     }
6906   }
6907 
6908   enum class ValidationCacheCreateFlagBitsEXT : VkValidationCacheCreateFlagsEXT
6909   {
6910   };
6911 
to_string(ValidationCacheCreateFlagBitsEXT)6912   VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagBitsEXT )
6913   {
6914     return "(void)";
6915   }
6916 
6917   //=== VK_NV_shading_rate_image ===
6918 
6919   enum class ShadingRatePaletteEntryNV
6920   {
6921     eNoInvocations           = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV,
6922     e16InvocationsPerPixel   = VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV,
6923     e8InvocationsPerPixel    = VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV,
6924     e4InvocationsPerPixel    = VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV,
6925     e2InvocationsPerPixel    = VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV,
6926     e1InvocationPerPixel     = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV,
6927     e1InvocationPer2X1Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV,
6928     e1InvocationPer1X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV,
6929     e1InvocationPer2X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV,
6930     e1InvocationPer4X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV,
6931     e1InvocationPer2X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV,
6932     e1InvocationPer4X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV
6933   };
6934 
to_string(ShadingRatePaletteEntryNV value)6935   VULKAN_HPP_INLINE std::string to_string( ShadingRatePaletteEntryNV value )
6936   {
6937     switch ( value )
6938     {
6939       case ShadingRatePaletteEntryNV::eNoInvocations: return "NoInvocations";
6940       case ShadingRatePaletteEntryNV::e16InvocationsPerPixel: return "16InvocationsPerPixel";
6941       case ShadingRatePaletteEntryNV::e8InvocationsPerPixel: return "8InvocationsPerPixel";
6942       case ShadingRatePaletteEntryNV::e4InvocationsPerPixel: return "4InvocationsPerPixel";
6943       case ShadingRatePaletteEntryNV::e2InvocationsPerPixel: return "2InvocationsPerPixel";
6944       case ShadingRatePaletteEntryNV::e1InvocationPerPixel: return "1InvocationPerPixel";
6945       case ShadingRatePaletteEntryNV::e1InvocationPer2X1Pixels: return "1InvocationPer2X1Pixels";
6946       case ShadingRatePaletteEntryNV::e1InvocationPer1X2Pixels: return "1InvocationPer1X2Pixels";
6947       case ShadingRatePaletteEntryNV::e1InvocationPer2X2Pixels: return "1InvocationPer2X2Pixels";
6948       case ShadingRatePaletteEntryNV::e1InvocationPer4X2Pixels: return "1InvocationPer4X2Pixels";
6949       case ShadingRatePaletteEntryNV::e1InvocationPer2X4Pixels: return "1InvocationPer2X4Pixels";
6950       case ShadingRatePaletteEntryNV::e1InvocationPer4X4Pixels: return "1InvocationPer4X4Pixels";
6951       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6952     }
6953   }
6954 
6955   enum class CoarseSampleOrderTypeNV
6956   {
6957     eDefault     = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV,
6958     eCustom      = VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV,
6959     ePixelMajor  = VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV,
6960     eSampleMajor = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV
6961   };
6962 
to_string(CoarseSampleOrderTypeNV value)6963   VULKAN_HPP_INLINE std::string to_string( CoarseSampleOrderTypeNV value )
6964   {
6965     switch ( value )
6966     {
6967       case CoarseSampleOrderTypeNV::eDefault: return "Default";
6968       case CoarseSampleOrderTypeNV::eCustom: return "Custom";
6969       case CoarseSampleOrderTypeNV::ePixelMajor: return "PixelMajor";
6970       case CoarseSampleOrderTypeNV::eSampleMajor: return "SampleMajor";
6971       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6972     }
6973   }
6974 
6975   //=== VK_NV_ray_tracing ===
6976 
6977   enum class AccelerationStructureMemoryRequirementsTypeNV
6978   {
6979     eObject        = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV,
6980     eBuildScratch  = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV,
6981     eUpdateScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV
6982   };
6983 
to_string(AccelerationStructureMemoryRequirementsTypeNV value)6984   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMemoryRequirementsTypeNV value )
6985   {
6986     switch ( value )
6987     {
6988       case AccelerationStructureMemoryRequirementsTypeNV::eObject: return "Object";
6989       case AccelerationStructureMemoryRequirementsTypeNV::eBuildScratch: return "BuildScratch";
6990       case AccelerationStructureMemoryRequirementsTypeNV::eUpdateScratch: return "UpdateScratch";
6991       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6992     }
6993   }
6994 
6995   //=== VK_EXT_global_priority ===
6996 
6997   enum class QueueGlobalPriorityEXT
6998   {
6999     eLow      = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT,
7000     eMedium   = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT,
7001     eHigh     = VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT,
7002     eRealtime = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT
7003   };
7004 
to_string(QueueGlobalPriorityEXT value)7005   VULKAN_HPP_INLINE std::string to_string( QueueGlobalPriorityEXT value )
7006   {
7007     switch ( value )
7008     {
7009       case QueueGlobalPriorityEXT::eLow: return "Low";
7010       case QueueGlobalPriorityEXT::eMedium: return "Medium";
7011       case QueueGlobalPriorityEXT::eHigh: return "High";
7012       case QueueGlobalPriorityEXT::eRealtime: return "Realtime";
7013       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7014     }
7015   }
7016 
7017   //=== VK_AMD_pipeline_compiler_control ===
7018 
7019   enum class PipelineCompilerControlFlagBitsAMD : VkPipelineCompilerControlFlagsAMD
7020   {
7021   };
7022 
to_string(PipelineCompilerControlFlagBitsAMD)7023   VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagBitsAMD )
7024   {
7025     return "(void)";
7026   }
7027 
7028   //=== VK_EXT_calibrated_timestamps ===
7029 
7030   enum class TimeDomainEXT
7031   {
7032     eDevice                  = VK_TIME_DOMAIN_DEVICE_EXT,
7033     eClockMonotonic          = VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT,
7034     eClockMonotonicRaw       = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT,
7035     eQueryPerformanceCounter = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT
7036   };
7037 
to_string(TimeDomainEXT value)7038   VULKAN_HPP_INLINE std::string to_string( TimeDomainEXT value )
7039   {
7040     switch ( value )
7041     {
7042       case TimeDomainEXT::eDevice: return "Device";
7043       case TimeDomainEXT::eClockMonotonic: return "ClockMonotonic";
7044       case TimeDomainEXT::eClockMonotonicRaw: return "ClockMonotonicRaw";
7045       case TimeDomainEXT::eQueryPerformanceCounter: return "QueryPerformanceCounter";
7046       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7047     }
7048   }
7049 
7050 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7051   //=== VK_EXT_video_decode_h265 ===
7052 
7053   enum class VideoDecodeH265CreateFlagBitsEXT : VkVideoDecodeH265CreateFlagsEXT
7054   {
7055   };
7056 
to_string(VideoDecodeH265CreateFlagBitsEXT)7057   VULKAN_HPP_INLINE std::string to_string( VideoDecodeH265CreateFlagBitsEXT )
7058   {
7059     return "(void)";
7060   }
7061 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7062 
7063   //=== VK_AMD_memory_overallocation_behavior ===
7064 
7065   enum class MemoryOverallocationBehaviorAMD
7066   {
7067     eDefault    = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD,
7068     eAllowed    = VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD,
7069     eDisallowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD
7070   };
7071 
to_string(MemoryOverallocationBehaviorAMD value)7072   VULKAN_HPP_INLINE std::string to_string( MemoryOverallocationBehaviorAMD value )
7073   {
7074     switch ( value )
7075     {
7076       case MemoryOverallocationBehaviorAMD::eDefault: return "Default";
7077       case MemoryOverallocationBehaviorAMD::eAllowed: return "Allowed";
7078       case MemoryOverallocationBehaviorAMD::eDisallowed: return "Disallowed";
7079       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7080     }
7081   }
7082 
7083   //=== VK_EXT_pipeline_creation_feedback ===
7084 
7085   enum class PipelineCreationFeedbackFlagBitsEXT : VkPipelineCreationFeedbackFlagsEXT
7086   {
7087     eValid                       = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT,
7088     eApplicationPipelineCacheHit = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT,
7089     eBasePipelineAcceleration    = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT
7090   };
7091 
to_string(PipelineCreationFeedbackFlagBitsEXT value)7092   VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagBitsEXT value )
7093   {
7094     switch ( value )
7095     {
7096       case PipelineCreationFeedbackFlagBitsEXT::eValid: return "Valid";
7097       case PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit: return "ApplicationPipelineCacheHit";
7098       case PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration: return "BasePipelineAcceleration";
7099       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7100     }
7101   }
7102 
7103   //=== VK_INTEL_performance_query ===
7104 
7105   enum class PerformanceConfigurationTypeINTEL
7106   {
7107     eCommandQueueMetricsDiscoveryActivated =
7108       VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL
7109   };
7110 
to_string(PerformanceConfigurationTypeINTEL value)7111   VULKAN_HPP_INLINE std::string to_string( PerformanceConfigurationTypeINTEL value )
7112   {
7113     switch ( value )
7114     {
7115       case PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated:
7116         return "CommandQueueMetricsDiscoveryActivated";
7117       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7118     }
7119   }
7120 
7121   enum class QueryPoolSamplingModeINTEL
7122   {
7123     eManual = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL
7124   };
7125 
to_string(QueryPoolSamplingModeINTEL value)7126   VULKAN_HPP_INLINE std::string to_string( QueryPoolSamplingModeINTEL value )
7127   {
7128     switch ( value )
7129     {
7130       case QueryPoolSamplingModeINTEL::eManual: return "Manual";
7131       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7132     }
7133   }
7134 
7135   enum class PerformanceOverrideTypeINTEL
7136   {
7137     eNullHardware   = VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL,
7138     eFlushGpuCaches = VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL
7139   };
7140 
to_string(PerformanceOverrideTypeINTEL value)7141   VULKAN_HPP_INLINE std::string to_string( PerformanceOverrideTypeINTEL value )
7142   {
7143     switch ( value )
7144     {
7145       case PerformanceOverrideTypeINTEL::eNullHardware: return "NullHardware";
7146       case PerformanceOverrideTypeINTEL::eFlushGpuCaches: return "FlushGpuCaches";
7147       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7148     }
7149   }
7150 
7151   enum class PerformanceParameterTypeINTEL
7152   {
7153     eHwCountersSupported   = VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL,
7154     eStreamMarkerValidBits = VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL
7155   };
7156 
to_string(PerformanceParameterTypeINTEL value)7157   VULKAN_HPP_INLINE std::string to_string( PerformanceParameterTypeINTEL value )
7158   {
7159     switch ( value )
7160     {
7161       case PerformanceParameterTypeINTEL::eHwCountersSupported: return "HwCountersSupported";
7162       case PerformanceParameterTypeINTEL::eStreamMarkerValidBits: return "StreamMarkerValidBits";
7163       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7164     }
7165   }
7166 
7167   enum class PerformanceValueTypeINTEL
7168   {
7169     eUint32 = VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL,
7170     eUint64 = VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL,
7171     eFloat  = VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL,
7172     eBool   = VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL,
7173     eString = VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL
7174   };
7175 
to_string(PerformanceValueTypeINTEL value)7176   VULKAN_HPP_INLINE std::string to_string( PerformanceValueTypeINTEL value )
7177   {
7178     switch ( value )
7179     {
7180       case PerformanceValueTypeINTEL::eUint32: return "Uint32";
7181       case PerformanceValueTypeINTEL::eUint64: return "Uint64";
7182       case PerformanceValueTypeINTEL::eFloat: return "Float";
7183       case PerformanceValueTypeINTEL::eBool: return "Bool";
7184       case PerformanceValueTypeINTEL::eString: return "String";
7185       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7186     }
7187   }
7188 
7189 #if defined( VK_USE_PLATFORM_FUCHSIA )
7190   //=== VK_FUCHSIA_imagepipe_surface ===
7191 
7192   enum class ImagePipeSurfaceCreateFlagBitsFUCHSIA : VkImagePipeSurfaceCreateFlagsFUCHSIA
7193   {
7194   };
7195 
to_string(ImagePipeSurfaceCreateFlagBitsFUCHSIA)7196   VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagBitsFUCHSIA )
7197   {
7198     return "(void)";
7199   }
7200 #endif /*VK_USE_PLATFORM_FUCHSIA*/
7201 
7202 #if defined( VK_USE_PLATFORM_METAL_EXT )
7203   //=== VK_EXT_metal_surface ===
7204 
7205   enum class MetalSurfaceCreateFlagBitsEXT : VkMetalSurfaceCreateFlagsEXT
7206   {
7207   };
7208 
to_string(MetalSurfaceCreateFlagBitsEXT)7209   VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagBitsEXT )
7210   {
7211     return "(void)";
7212   }
7213 #endif /*VK_USE_PLATFORM_METAL_EXT*/
7214 
7215   //=== VK_KHR_fragment_shading_rate ===
7216 
7217   enum class FragmentShadingRateCombinerOpKHR
7218   {
7219     eKeep    = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR,
7220     eReplace = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR,
7221     eMin     = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR,
7222     eMax     = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR,
7223     eMul     = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR
7224   };
7225 
to_string(FragmentShadingRateCombinerOpKHR value)7226   VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateCombinerOpKHR value )
7227   {
7228     switch ( value )
7229     {
7230       case FragmentShadingRateCombinerOpKHR::eKeep: return "Keep";
7231       case FragmentShadingRateCombinerOpKHR::eReplace: return "Replace";
7232       case FragmentShadingRateCombinerOpKHR::eMin: return "Min";
7233       case FragmentShadingRateCombinerOpKHR::eMax: return "Max";
7234       case FragmentShadingRateCombinerOpKHR::eMul: return "Mul";
7235       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7236     }
7237   }
7238 
7239   //=== VK_AMD_shader_core_properties2 ===
7240 
7241   enum class ShaderCorePropertiesFlagBitsAMD : VkShaderCorePropertiesFlagsAMD
7242   {
7243   };
7244 
to_string(ShaderCorePropertiesFlagBitsAMD)7245   VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagBitsAMD )
7246   {
7247     return "(void)";
7248   }
7249 
7250   //=== VK_EXT_tooling_info ===
7251 
7252   enum class ToolPurposeFlagBitsEXT : VkToolPurposeFlagsEXT
7253   {
7254     eValidation         = VK_TOOL_PURPOSE_VALIDATION_BIT_EXT,
7255     eProfiling          = VK_TOOL_PURPOSE_PROFILING_BIT_EXT,
7256     eTracing            = VK_TOOL_PURPOSE_TRACING_BIT_EXT,
7257     eAdditionalFeatures = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT,
7258     eModifyingFeatures  = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT,
7259     eDebugReporting     = VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT,
7260     eDebugMarkers       = VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT
7261   };
7262 
to_string(ToolPurposeFlagBitsEXT value)7263   VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagBitsEXT value )
7264   {
7265     switch ( value )
7266     {
7267       case ToolPurposeFlagBitsEXT::eValidation: return "Validation";
7268       case ToolPurposeFlagBitsEXT::eProfiling: return "Profiling";
7269       case ToolPurposeFlagBitsEXT::eTracing: return "Tracing";
7270       case ToolPurposeFlagBitsEXT::eAdditionalFeatures: return "AdditionalFeatures";
7271       case ToolPurposeFlagBitsEXT::eModifyingFeatures: return "ModifyingFeatures";
7272       case ToolPurposeFlagBitsEXT::eDebugReporting: return "DebugReporting";
7273       case ToolPurposeFlagBitsEXT::eDebugMarkers: return "DebugMarkers";
7274       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7275     }
7276   }
7277 
7278   //=== VK_EXT_validation_features ===
7279 
7280   enum class ValidationFeatureEnableEXT
7281   {
7282     eGpuAssisted                   = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,
7283     eGpuAssistedReserveBindingSlot = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT,
7284     eBestPractices                 = VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,
7285     eDebugPrintf                   = VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT,
7286     eSynchronizationValidation     = VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT
7287   };
7288 
to_string(ValidationFeatureEnableEXT value)7289   VULKAN_HPP_INLINE std::string to_string( ValidationFeatureEnableEXT value )
7290   {
7291     switch ( value )
7292     {
7293       case ValidationFeatureEnableEXT::eGpuAssisted: return "GpuAssisted";
7294       case ValidationFeatureEnableEXT::eGpuAssistedReserveBindingSlot: return "GpuAssistedReserveBindingSlot";
7295       case ValidationFeatureEnableEXT::eBestPractices: return "BestPractices";
7296       case ValidationFeatureEnableEXT::eDebugPrintf: return "DebugPrintf";
7297       case ValidationFeatureEnableEXT::eSynchronizationValidation: return "SynchronizationValidation";
7298       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7299     }
7300   }
7301 
7302   enum class ValidationFeatureDisableEXT
7303   {
7304     eAll                   = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT,
7305     eShaders               = VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT,
7306     eThreadSafety          = VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT,
7307     eApiParameters         = VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT,
7308     eObjectLifetimes       = VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT,
7309     eCoreChecks            = VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT,
7310     eUniqueHandles         = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT,
7311     eShaderValidationCache = VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT
7312   };
7313 
to_string(ValidationFeatureDisableEXT value)7314   VULKAN_HPP_INLINE std::string to_string( ValidationFeatureDisableEXT value )
7315   {
7316     switch ( value )
7317     {
7318       case ValidationFeatureDisableEXT::eAll: return "All";
7319       case ValidationFeatureDisableEXT::eShaders: return "Shaders";
7320       case ValidationFeatureDisableEXT::eThreadSafety: return "ThreadSafety";
7321       case ValidationFeatureDisableEXT::eApiParameters: return "ApiParameters";
7322       case ValidationFeatureDisableEXT::eObjectLifetimes: return "ObjectLifetimes";
7323       case ValidationFeatureDisableEXT::eCoreChecks: return "CoreChecks";
7324       case ValidationFeatureDisableEXT::eUniqueHandles: return "UniqueHandles";
7325       case ValidationFeatureDisableEXT::eShaderValidationCache: return "ShaderValidationCache";
7326       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7327     }
7328   }
7329 
7330   //=== VK_NV_cooperative_matrix ===
7331 
7332   enum class ScopeNV
7333   {
7334     eDevice      = VK_SCOPE_DEVICE_NV,
7335     eWorkgroup   = VK_SCOPE_WORKGROUP_NV,
7336     eSubgroup    = VK_SCOPE_SUBGROUP_NV,
7337     eQueueFamily = VK_SCOPE_QUEUE_FAMILY_NV
7338   };
7339 
to_string(ScopeNV value)7340   VULKAN_HPP_INLINE std::string to_string( ScopeNV value )
7341   {
7342     switch ( value )
7343     {
7344       case ScopeNV::eDevice: return "Device";
7345       case ScopeNV::eWorkgroup: return "Workgroup";
7346       case ScopeNV::eSubgroup: return "Subgroup";
7347       case ScopeNV::eQueueFamily: return "QueueFamily";
7348       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7349     }
7350   }
7351 
7352   enum class ComponentTypeNV
7353   {
7354     eFloat16 = VK_COMPONENT_TYPE_FLOAT16_NV,
7355     eFloat32 = VK_COMPONENT_TYPE_FLOAT32_NV,
7356     eFloat64 = VK_COMPONENT_TYPE_FLOAT64_NV,
7357     eSint8   = VK_COMPONENT_TYPE_SINT8_NV,
7358     eSint16  = VK_COMPONENT_TYPE_SINT16_NV,
7359     eSint32  = VK_COMPONENT_TYPE_SINT32_NV,
7360     eSint64  = VK_COMPONENT_TYPE_SINT64_NV,
7361     eUint8   = VK_COMPONENT_TYPE_UINT8_NV,
7362     eUint16  = VK_COMPONENT_TYPE_UINT16_NV,
7363     eUint32  = VK_COMPONENT_TYPE_UINT32_NV,
7364     eUint64  = VK_COMPONENT_TYPE_UINT64_NV
7365   };
7366 
to_string(ComponentTypeNV value)7367   VULKAN_HPP_INLINE std::string to_string( ComponentTypeNV value )
7368   {
7369     switch ( value )
7370     {
7371       case ComponentTypeNV::eFloat16: return "Float16";
7372       case ComponentTypeNV::eFloat32: return "Float32";
7373       case ComponentTypeNV::eFloat64: return "Float64";
7374       case ComponentTypeNV::eSint8: return "Sint8";
7375       case ComponentTypeNV::eSint16: return "Sint16";
7376       case ComponentTypeNV::eSint32: return "Sint32";
7377       case ComponentTypeNV::eSint64: return "Sint64";
7378       case ComponentTypeNV::eUint8: return "Uint8";
7379       case ComponentTypeNV::eUint16: return "Uint16";
7380       case ComponentTypeNV::eUint32: return "Uint32";
7381       case ComponentTypeNV::eUint64: return "Uint64";
7382       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7383     }
7384   }
7385 
7386   //=== VK_NV_coverage_reduction_mode ===
7387 
7388   enum class CoverageReductionModeNV
7389   {
7390     eMerge    = VK_COVERAGE_REDUCTION_MODE_MERGE_NV,
7391     eTruncate = VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV
7392   };
7393 
to_string(CoverageReductionModeNV value)7394   VULKAN_HPP_INLINE std::string to_string( CoverageReductionModeNV value )
7395   {
7396     switch ( value )
7397     {
7398       case CoverageReductionModeNV::eMerge: return "Merge";
7399       case CoverageReductionModeNV::eTruncate: return "Truncate";
7400       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7401     }
7402   }
7403 
7404   enum class PipelineCoverageReductionStateCreateFlagBitsNV : VkPipelineCoverageReductionStateCreateFlagsNV
7405   {
7406   };
7407 
to_string(PipelineCoverageReductionStateCreateFlagBitsNV)7408   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagBitsNV )
7409   {
7410     return "(void)";
7411   }
7412 
7413   //=== VK_EXT_provoking_vertex ===
7414 
7415   enum class ProvokingVertexModeEXT
7416   {
7417     eFirstVertex = VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT,
7418     eLastVertex  = VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT
7419   };
7420 
to_string(ProvokingVertexModeEXT value)7421   VULKAN_HPP_INLINE std::string to_string( ProvokingVertexModeEXT value )
7422   {
7423     switch ( value )
7424     {
7425       case ProvokingVertexModeEXT::eFirstVertex: return "FirstVertex";
7426       case ProvokingVertexModeEXT::eLastVertex: return "LastVertex";
7427       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7428     }
7429   }
7430 
7431 #if defined( VK_USE_PLATFORM_WIN32_KHR )
7432   //=== VK_EXT_full_screen_exclusive ===
7433 
7434   enum class FullScreenExclusiveEXT
7435   {
7436     eDefault               = VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT,
7437     eAllowed               = VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT,
7438     eDisallowed            = VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT,
7439     eApplicationControlled = VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
7440   };
7441 
to_string(FullScreenExclusiveEXT value)7442   VULKAN_HPP_INLINE std::string to_string( FullScreenExclusiveEXT value )
7443   {
7444     switch ( value )
7445     {
7446       case FullScreenExclusiveEXT::eDefault: return "Default";
7447       case FullScreenExclusiveEXT::eAllowed: return "Allowed";
7448       case FullScreenExclusiveEXT::eDisallowed: return "Disallowed";
7449       case FullScreenExclusiveEXT::eApplicationControlled: return "ApplicationControlled";
7450       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7451     }
7452   }
7453 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
7454 
7455   //=== VK_EXT_headless_surface ===
7456 
7457   enum class HeadlessSurfaceCreateFlagBitsEXT : VkHeadlessSurfaceCreateFlagsEXT
7458   {
7459   };
7460 
to_string(HeadlessSurfaceCreateFlagBitsEXT)7461   VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagBitsEXT )
7462   {
7463     return "(void)";
7464   }
7465 
7466   //=== VK_EXT_line_rasterization ===
7467 
7468   enum class LineRasterizationModeEXT
7469   {
7470     eDefault           = VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT,
7471     eRectangular       = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT,
7472     eBresenham         = VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT,
7473     eRectangularSmooth = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT
7474   };
7475 
to_string(LineRasterizationModeEXT value)7476   VULKAN_HPP_INLINE std::string to_string( LineRasterizationModeEXT value )
7477   {
7478     switch ( value )
7479     {
7480       case LineRasterizationModeEXT::eDefault: return "Default";
7481       case LineRasterizationModeEXT::eRectangular: return "Rectangular";
7482       case LineRasterizationModeEXT::eBresenham: return "Bresenham";
7483       case LineRasterizationModeEXT::eRectangularSmooth: return "RectangularSmooth";
7484       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7485     }
7486   }
7487 
7488   //=== VK_KHR_pipeline_executable_properties ===
7489 
7490   enum class PipelineExecutableStatisticFormatKHR
7491   {
7492     eBool32  = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR,
7493     eInt64   = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR,
7494     eUint64  = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR,
7495     eFloat64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR
7496   };
7497 
to_string(PipelineExecutableStatisticFormatKHR value)7498   VULKAN_HPP_INLINE std::string to_string( PipelineExecutableStatisticFormatKHR value )
7499   {
7500     switch ( value )
7501     {
7502       case PipelineExecutableStatisticFormatKHR::eBool32: return "Bool32";
7503       case PipelineExecutableStatisticFormatKHR::eInt64: return "Int64";
7504       case PipelineExecutableStatisticFormatKHR::eUint64: return "Uint64";
7505       case PipelineExecutableStatisticFormatKHR::eFloat64: return "Float64";
7506       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7507     }
7508   }
7509 
7510   //=== VK_NV_device_generated_commands ===
7511 
7512   enum class IndirectStateFlagBitsNV : VkIndirectStateFlagsNV
7513   {
7514     eFlagFrontface = VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV
7515   };
7516 
to_string(IndirectStateFlagBitsNV value)7517   VULKAN_HPP_INLINE std::string to_string( IndirectStateFlagBitsNV value )
7518   {
7519     switch ( value )
7520     {
7521       case IndirectStateFlagBitsNV::eFlagFrontface: return "FlagFrontface";
7522       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7523     }
7524   }
7525 
7526   enum class IndirectCommandsTokenTypeNV
7527   {
7528     eShaderGroup  = VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV,
7529     eStateFlags   = VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV,
7530     eIndexBuffer  = VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV,
7531     eVertexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV,
7532     ePushConstant = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV,
7533     eDrawIndexed  = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV,
7534     eDraw         = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV,
7535     eDrawTasks    = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV
7536   };
7537 
to_string(IndirectCommandsTokenTypeNV value)7538   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsTokenTypeNV value )
7539   {
7540     switch ( value )
7541     {
7542       case IndirectCommandsTokenTypeNV::eShaderGroup: return "ShaderGroup";
7543       case IndirectCommandsTokenTypeNV::eStateFlags: return "StateFlags";
7544       case IndirectCommandsTokenTypeNV::eIndexBuffer: return "IndexBuffer";
7545       case IndirectCommandsTokenTypeNV::eVertexBuffer: return "VertexBuffer";
7546       case IndirectCommandsTokenTypeNV::ePushConstant: return "PushConstant";
7547       case IndirectCommandsTokenTypeNV::eDrawIndexed: return "DrawIndexed";
7548       case IndirectCommandsTokenTypeNV::eDraw: return "Draw";
7549       case IndirectCommandsTokenTypeNV::eDrawTasks: return "DrawTasks";
7550       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7551     }
7552   }
7553 
7554   enum class IndirectCommandsLayoutUsageFlagBitsNV : VkIndirectCommandsLayoutUsageFlagsNV
7555   {
7556     eExplicitPreprocess = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV,
7557     eIndexedSequences   = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV,
7558     eUnorderedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV
7559   };
7560 
to_string(IndirectCommandsLayoutUsageFlagBitsNV value)7561   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagBitsNV value )
7562   {
7563     switch ( value )
7564     {
7565       case IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess: return "ExplicitPreprocess";
7566       case IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences: return "IndexedSequences";
7567       case IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences: return "UnorderedSequences";
7568       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7569     }
7570   }
7571 
7572   //=== VK_EXT_device_memory_report ===
7573 
7574   enum class DeviceMemoryReportEventTypeEXT
7575   {
7576     eAllocate         = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT,
7577     eFree             = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT,
7578     eImport           = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT,
7579     eUnimport         = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT,
7580     eAllocationFailed = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT
7581   };
7582 
to_string(DeviceMemoryReportEventTypeEXT value)7583   VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportEventTypeEXT value )
7584   {
7585     switch ( value )
7586     {
7587       case DeviceMemoryReportEventTypeEXT::eAllocate: return "Allocate";
7588       case DeviceMemoryReportEventTypeEXT::eFree: return "Free";
7589       case DeviceMemoryReportEventTypeEXT::eImport: return "Import";
7590       case DeviceMemoryReportEventTypeEXT::eUnimport: return "Unimport";
7591       case DeviceMemoryReportEventTypeEXT::eAllocationFailed: return "AllocationFailed";
7592       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7593     }
7594   }
7595 
7596   enum class DeviceMemoryReportFlagBitsEXT : VkDeviceMemoryReportFlagsEXT
7597   {
7598   };
7599 
to_string(DeviceMemoryReportFlagBitsEXT)7600   VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportFlagBitsEXT )
7601   {
7602     return "(void)";
7603   }
7604 
7605   //=== VK_EXT_private_data ===
7606 
7607   enum class PrivateDataSlotCreateFlagBitsEXT : VkPrivateDataSlotCreateFlagsEXT
7608   {
7609   };
7610 
to_string(PrivateDataSlotCreateFlagBitsEXT)7611   VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagBitsEXT )
7612   {
7613     return "(void)";
7614   }
7615 
7616   //=== VK_EXT_pipeline_creation_cache_control ===
7617 
7618   enum class PipelineCacheCreateFlagBits : VkPipelineCacheCreateFlags
7619   {
7620     eExternallySynchronizedEXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT
7621   };
7622 
to_string(PipelineCacheCreateFlagBits value)7623   VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlagBits value )
7624   {
7625     switch ( value )
7626     {
7627       case PipelineCacheCreateFlagBits::eExternallySynchronizedEXT: return "ExternallySynchronizedEXT";
7628       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7629     }
7630   }
7631 
7632 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7633   //=== VK_KHR_video_encode_queue ===
7634 
7635   enum class VideoEncodeFlagBitsKHR : VkVideoEncodeFlagsKHR
7636   {
7637     eDefault   = VK_VIDEO_ENCODE_DEFAULT_KHR,
7638     eReserved0 = VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR
7639   };
7640 
to_string(VideoEncodeFlagBitsKHR value)7641   VULKAN_HPP_INLINE std::string to_string( VideoEncodeFlagBitsKHR value )
7642   {
7643     switch ( value )
7644     {
7645       case VideoEncodeFlagBitsKHR::eDefault: return "Default";
7646       case VideoEncodeFlagBitsKHR::eReserved0: return "Reserved0";
7647       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7648     }
7649   }
7650 
7651   enum class VideoEncodeRateControlFlagBitsKHR : VkVideoEncodeRateControlFlagsKHR
7652   {
7653     eDefault = VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR,
7654     eReset   = VK_VIDEO_ENCODE_RATE_CONTROL_RESET_BIT_KHR
7655   };
7656 
to_string(VideoEncodeRateControlFlagBitsKHR value)7657   VULKAN_HPP_INLINE std::string to_string( VideoEncodeRateControlFlagBitsKHR value )
7658   {
7659     switch ( value )
7660     {
7661       case VideoEncodeRateControlFlagBitsKHR::eDefault: return "Default";
7662       case VideoEncodeRateControlFlagBitsKHR::eReset: return "Reset";
7663       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7664     }
7665   }
7666 
7667   enum class VideoEncodeRateControlModeFlagBitsKHR : VkVideoEncodeRateControlModeFlagsKHR
7668   {
7669     eNone = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR,
7670     eCbr  = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR,
7671     eVbr  = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR
7672   };
7673 
to_string(VideoEncodeRateControlModeFlagBitsKHR value)7674   VULKAN_HPP_INLINE std::string to_string( VideoEncodeRateControlModeFlagBitsKHR value )
7675   {
7676     switch ( value )
7677     {
7678       case VideoEncodeRateControlModeFlagBitsKHR::eNone: return "None";
7679       case VideoEncodeRateControlModeFlagBitsKHR::eCbr: return "Cbr";
7680       case VideoEncodeRateControlModeFlagBitsKHR::eVbr: return "Vbr";
7681       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7682     }
7683   }
7684 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7685 
7686   //=== VK_NV_device_diagnostics_config ===
7687 
7688   enum class DeviceDiagnosticsConfigFlagBitsNV : VkDeviceDiagnosticsConfigFlagsNV
7689   {
7690     eEnableShaderDebugInfo      = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV,
7691     eEnableResourceTracking     = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV,
7692     eEnableAutomaticCheckpoints = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV
7693   };
7694 
to_string(DeviceDiagnosticsConfigFlagBitsNV value)7695   VULKAN_HPP_INLINE std::string to_string( DeviceDiagnosticsConfigFlagBitsNV value )
7696   {
7697     switch ( value )
7698     {
7699       case DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo: return "EnableShaderDebugInfo";
7700       case DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking: return "EnableResourceTracking";
7701       case DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints: return "EnableAutomaticCheckpoints";
7702       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7703     }
7704   }
7705 
7706   //=== VK_KHR_synchronization2 ===
7707 
7708   enum class PipelineStageFlagBits2KHR : VkPipelineStageFlags2KHR
7709   {
7710     eNone                         = VK_PIPELINE_STAGE_2_NONE_KHR,
7711     eTopOfPipe                    = VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR,
7712     eDrawIndirect                 = VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR,
7713     eVertexInput                  = VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR,
7714     eVertexShader                 = VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR,
7715     eTessellationControlShader    = VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR,
7716     eTessellationEvaluationShader = VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR,
7717     eGeometryShader               = VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR,
7718     eFragmentShader               = VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR,
7719     eEarlyFragmentTests           = VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR,
7720     eLateFragmentTests            = VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR,
7721     eColorAttachmentOutput        = VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR,
7722     eComputeShader                = VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR,
7723     eAllTransfer                  = VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR,
7724     eBottomOfPipe                 = VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR,
7725     eHost                         = VK_PIPELINE_STAGE_2_HOST_BIT_KHR,
7726     eAllGraphics                  = VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR,
7727     eAllCommands                  = VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR,
7728     eCopy                         = VK_PIPELINE_STAGE_2_COPY_BIT_KHR,
7729     eResolve                      = VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR,
7730     eBlit                         = VK_PIPELINE_STAGE_2_BLIT_BIT_KHR,
7731     eClear                        = VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR,
7732     eIndexInput                   = VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR,
7733     eVertexAttributeInput         = VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR,
7734     ePreRasterizationShaders      = VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR,
7735 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7736     eVideoDecode = VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR,
7737     eVideoEncode = VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR,
7738 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7739     eTransformFeedbackEXT          = VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,
7740     eConditionalRenderingEXT       = VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT,
7741     eCommandPreprocessNV           = VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV,
7742     eFragmentShadingRateAttachment = VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
7743     eAccelerationStructureBuild    = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
7744     eRayTracingShader              = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR,
7745     eFragmentDensityProcessEXT     = VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT,
7746     eTaskShaderNV                  = VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV,
7747     eMeshShaderNV                  = VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV,
7748     eSubpassShadingHUAWEI          = VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI,
7749     eInvocationMaskHUAWEI          = VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI,
7750     eAccelerationStructureBuildNV  = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
7751     eRayTracingShaderNV            = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV,
7752     eShadingRateImageNV            = VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV,
7753     eTransfer                      = VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR
7754   };
7755 
to_string(PipelineStageFlagBits2KHR value)7756   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlagBits2KHR value )
7757   {
7758     switch ( value )
7759     {
7760       case PipelineStageFlagBits2KHR::eNone: return "None";
7761       case PipelineStageFlagBits2KHR::eTopOfPipe: return "TopOfPipe";
7762       case PipelineStageFlagBits2KHR::eDrawIndirect: return "DrawIndirect";
7763       case PipelineStageFlagBits2KHR::eVertexInput: return "VertexInput";
7764       case PipelineStageFlagBits2KHR::eVertexShader: return "VertexShader";
7765       case PipelineStageFlagBits2KHR::eTessellationControlShader: return "TessellationControlShader";
7766       case PipelineStageFlagBits2KHR::eTessellationEvaluationShader: return "TessellationEvaluationShader";
7767       case PipelineStageFlagBits2KHR::eGeometryShader: return "GeometryShader";
7768       case PipelineStageFlagBits2KHR::eFragmentShader: return "FragmentShader";
7769       case PipelineStageFlagBits2KHR::eEarlyFragmentTests: return "EarlyFragmentTests";
7770       case PipelineStageFlagBits2KHR::eLateFragmentTests: return "LateFragmentTests";
7771       case PipelineStageFlagBits2KHR::eColorAttachmentOutput: return "ColorAttachmentOutput";
7772       case PipelineStageFlagBits2KHR::eComputeShader: return "ComputeShader";
7773       case PipelineStageFlagBits2KHR::eAllTransfer: return "AllTransfer";
7774       case PipelineStageFlagBits2KHR::eBottomOfPipe: return "BottomOfPipe";
7775       case PipelineStageFlagBits2KHR::eHost: return "Host";
7776       case PipelineStageFlagBits2KHR::eAllGraphics: return "AllGraphics";
7777       case PipelineStageFlagBits2KHR::eAllCommands: return "AllCommands";
7778       case PipelineStageFlagBits2KHR::eCopy: return "Copy";
7779       case PipelineStageFlagBits2KHR::eResolve: return "Resolve";
7780       case PipelineStageFlagBits2KHR::eBlit: return "Blit";
7781       case PipelineStageFlagBits2KHR::eClear: return "Clear";
7782       case PipelineStageFlagBits2KHR::eIndexInput: return "IndexInput";
7783       case PipelineStageFlagBits2KHR::eVertexAttributeInput: return "VertexAttributeInput";
7784       case PipelineStageFlagBits2KHR::ePreRasterizationShaders: return "PreRasterizationShaders";
7785 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7786       case PipelineStageFlagBits2KHR::eVideoDecode: return "VideoDecode";
7787       case PipelineStageFlagBits2KHR::eVideoEncode: return "VideoEncode";
7788 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7789       case PipelineStageFlagBits2KHR::eTransformFeedbackEXT: return "TransformFeedbackEXT";
7790       case PipelineStageFlagBits2KHR::eConditionalRenderingEXT: return "ConditionalRenderingEXT";
7791       case PipelineStageFlagBits2KHR::eCommandPreprocessNV: return "CommandPreprocessNV";
7792       case PipelineStageFlagBits2KHR::eFragmentShadingRateAttachment: return "FragmentShadingRateAttachment";
7793       case PipelineStageFlagBits2KHR::eAccelerationStructureBuild: return "AccelerationStructureBuild";
7794       case PipelineStageFlagBits2KHR::eRayTracingShader: return "RayTracingShader";
7795       case PipelineStageFlagBits2KHR::eFragmentDensityProcessEXT: return "FragmentDensityProcessEXT";
7796       case PipelineStageFlagBits2KHR::eTaskShaderNV: return "TaskShaderNV";
7797       case PipelineStageFlagBits2KHR::eMeshShaderNV: return "MeshShaderNV";
7798       case PipelineStageFlagBits2KHR::eSubpassShadingHUAWEI: return "SubpassShadingHUAWEI";
7799       case PipelineStageFlagBits2KHR::eInvocationMaskHUAWEI: return "InvocationMaskHUAWEI";
7800       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7801     }
7802   }
7803 
7804   enum class AccessFlagBits2KHR : VkAccessFlags2KHR
7805   {
7806     eNone                        = VK_ACCESS_2_NONE_KHR,
7807     eIndirectCommandRead         = VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR,
7808     eIndexRead                   = VK_ACCESS_2_INDEX_READ_BIT_KHR,
7809     eVertexAttributeRead         = VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR,
7810     eUniformRead                 = VK_ACCESS_2_UNIFORM_READ_BIT_KHR,
7811     eInputAttachmentRead         = VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR,
7812     eShaderRead                  = VK_ACCESS_2_SHADER_READ_BIT_KHR,
7813     eShaderWrite                 = VK_ACCESS_2_SHADER_WRITE_BIT_KHR,
7814     eColorAttachmentRead         = VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR,
7815     eColorAttachmentWrite        = VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR,
7816     eDepthStencilAttachmentRead  = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR,
7817     eDepthStencilAttachmentWrite = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR,
7818     eTransferRead                = VK_ACCESS_2_TRANSFER_READ_BIT_KHR,
7819     eTransferWrite               = VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR,
7820     eHostRead                    = VK_ACCESS_2_HOST_READ_BIT_KHR,
7821     eHostWrite                   = VK_ACCESS_2_HOST_WRITE_BIT_KHR,
7822     eMemoryRead                  = VK_ACCESS_2_MEMORY_READ_BIT_KHR,
7823     eMemoryWrite                 = VK_ACCESS_2_MEMORY_WRITE_BIT_KHR,
7824     eShaderSampledRead           = VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR,
7825     eShaderStorageRead           = VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR,
7826     eShaderStorageWrite          = VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR,
7827 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7828     eVideoDecodeRead  = VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR,
7829     eVideoDecodeWrite = VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,
7830     eVideoEncodeRead  = VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,
7831     eVideoEncodeWrite = VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,
7832 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7833     eTransformFeedbackWriteEXT         = VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
7834     eTransformFeedbackCounterReadEXT   = VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,
7835     eTransformFeedbackCounterWriteEXT  = VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
7836     eConditionalRenderingReadEXT       = VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT,
7837     eCommandPreprocessReadNV           = VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV,
7838     eCommandPreprocessWriteNV          = VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV,
7839     eFragmentShadingRateAttachmentRead = VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
7840     eAccelerationStructureRead         = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,
7841     eAccelerationStructureWrite        = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
7842     eFragmentDensityMapReadEXT         = VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,
7843     eColorAttachmentReadNoncoherentEXT = VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
7844     eInvocationMaskReadHUAWEI          = VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI,
7845     eAccelerationStructureReadNV       = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV,
7846     eAccelerationStructureWriteNV      = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
7847     eShadingRateImageReadNV            = VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV
7848   };
7849 
to_string(AccessFlagBits2KHR value)7850   VULKAN_HPP_INLINE std::string to_string( AccessFlagBits2KHR value )
7851   {
7852     switch ( value )
7853     {
7854       case AccessFlagBits2KHR::eNone: return "None";
7855       case AccessFlagBits2KHR::eIndirectCommandRead: return "IndirectCommandRead";
7856       case AccessFlagBits2KHR::eIndexRead: return "IndexRead";
7857       case AccessFlagBits2KHR::eVertexAttributeRead: return "VertexAttributeRead";
7858       case AccessFlagBits2KHR::eUniformRead: return "UniformRead";
7859       case AccessFlagBits2KHR::eInputAttachmentRead: return "InputAttachmentRead";
7860       case AccessFlagBits2KHR::eShaderRead: return "ShaderRead";
7861       case AccessFlagBits2KHR::eShaderWrite: return "ShaderWrite";
7862       case AccessFlagBits2KHR::eColorAttachmentRead: return "ColorAttachmentRead";
7863       case AccessFlagBits2KHR::eColorAttachmentWrite: return "ColorAttachmentWrite";
7864       case AccessFlagBits2KHR::eDepthStencilAttachmentRead: return "DepthStencilAttachmentRead";
7865       case AccessFlagBits2KHR::eDepthStencilAttachmentWrite: return "DepthStencilAttachmentWrite";
7866       case AccessFlagBits2KHR::eTransferRead: return "TransferRead";
7867       case AccessFlagBits2KHR::eTransferWrite: return "TransferWrite";
7868       case AccessFlagBits2KHR::eHostRead: return "HostRead";
7869       case AccessFlagBits2KHR::eHostWrite: return "HostWrite";
7870       case AccessFlagBits2KHR::eMemoryRead: return "MemoryRead";
7871       case AccessFlagBits2KHR::eMemoryWrite: return "MemoryWrite";
7872       case AccessFlagBits2KHR::eShaderSampledRead: return "ShaderSampledRead";
7873       case AccessFlagBits2KHR::eShaderStorageRead: return "ShaderStorageRead";
7874       case AccessFlagBits2KHR::eShaderStorageWrite: return "ShaderStorageWrite";
7875 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7876       case AccessFlagBits2KHR::eVideoDecodeRead: return "VideoDecodeRead";
7877       case AccessFlagBits2KHR::eVideoDecodeWrite: return "VideoDecodeWrite";
7878       case AccessFlagBits2KHR::eVideoEncodeRead: return "VideoEncodeRead";
7879       case AccessFlagBits2KHR::eVideoEncodeWrite: return "VideoEncodeWrite";
7880 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7881       case AccessFlagBits2KHR::eTransformFeedbackWriteEXT: return "TransformFeedbackWriteEXT";
7882       case AccessFlagBits2KHR::eTransformFeedbackCounterReadEXT: return "TransformFeedbackCounterReadEXT";
7883       case AccessFlagBits2KHR::eTransformFeedbackCounterWriteEXT: return "TransformFeedbackCounterWriteEXT";
7884       case AccessFlagBits2KHR::eConditionalRenderingReadEXT: return "ConditionalRenderingReadEXT";
7885       case AccessFlagBits2KHR::eCommandPreprocessReadNV: return "CommandPreprocessReadNV";
7886       case AccessFlagBits2KHR::eCommandPreprocessWriteNV: return "CommandPreprocessWriteNV";
7887       case AccessFlagBits2KHR::eFragmentShadingRateAttachmentRead: return "FragmentShadingRateAttachmentRead";
7888       case AccessFlagBits2KHR::eAccelerationStructureRead: return "AccelerationStructureRead";
7889       case AccessFlagBits2KHR::eAccelerationStructureWrite: return "AccelerationStructureWrite";
7890       case AccessFlagBits2KHR::eFragmentDensityMapReadEXT: return "FragmentDensityMapReadEXT";
7891       case AccessFlagBits2KHR::eColorAttachmentReadNoncoherentEXT: return "ColorAttachmentReadNoncoherentEXT";
7892       case AccessFlagBits2KHR::eInvocationMaskReadHUAWEI: return "InvocationMaskReadHUAWEI";
7893       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7894     }
7895   }
7896 
7897   enum class SubmitFlagBitsKHR : VkSubmitFlagsKHR
7898   {
7899     eProtected = VK_SUBMIT_PROTECTED_BIT_KHR
7900   };
7901 
to_string(SubmitFlagBitsKHR value)7902   VULKAN_HPP_INLINE std::string to_string( SubmitFlagBitsKHR value )
7903   {
7904     switch ( value )
7905     {
7906       case SubmitFlagBitsKHR::eProtected: return "Protected";
7907       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7908     }
7909   }
7910 
7911   //=== VK_NV_fragment_shading_rate_enums ===
7912 
7913   enum class FragmentShadingRateNV
7914   {
7915     e1InvocationPerPixel     = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV,
7916     e1InvocationPer1X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV,
7917     e1InvocationPer2X1Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV,
7918     e1InvocationPer2X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV,
7919     e1InvocationPer2X4Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV,
7920     e1InvocationPer4X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV,
7921     e1InvocationPer4X4Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV,
7922     e2InvocationsPerPixel    = VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV,
7923     e4InvocationsPerPixel    = VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV,
7924     e8InvocationsPerPixel    = VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV,
7925     e16InvocationsPerPixel   = VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV,
7926     eNoInvocations           = VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV
7927   };
7928 
to_string(FragmentShadingRateNV value)7929   VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateNV value )
7930   {
7931     switch ( value )
7932     {
7933       case FragmentShadingRateNV::e1InvocationPerPixel: return "1InvocationPerPixel";
7934       case FragmentShadingRateNV::e1InvocationPer1X2Pixels: return "1InvocationPer1X2Pixels";
7935       case FragmentShadingRateNV::e1InvocationPer2X1Pixels: return "1InvocationPer2X1Pixels";
7936       case FragmentShadingRateNV::e1InvocationPer2X2Pixels: return "1InvocationPer2X2Pixels";
7937       case FragmentShadingRateNV::e1InvocationPer2X4Pixels: return "1InvocationPer2X4Pixels";
7938       case FragmentShadingRateNV::e1InvocationPer4X2Pixels: return "1InvocationPer4X2Pixels";
7939       case FragmentShadingRateNV::e1InvocationPer4X4Pixels: return "1InvocationPer4X4Pixels";
7940       case FragmentShadingRateNV::e2InvocationsPerPixel: return "2InvocationsPerPixel";
7941       case FragmentShadingRateNV::e4InvocationsPerPixel: return "4InvocationsPerPixel";
7942       case FragmentShadingRateNV::e8InvocationsPerPixel: return "8InvocationsPerPixel";
7943       case FragmentShadingRateNV::e16InvocationsPerPixel: return "16InvocationsPerPixel";
7944       case FragmentShadingRateNV::eNoInvocations: return "NoInvocations";
7945       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7946     }
7947   }
7948 
7949   enum class FragmentShadingRateTypeNV
7950   {
7951     eFragmentSize = VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV,
7952     eEnums        = VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV
7953   };
7954 
to_string(FragmentShadingRateTypeNV value)7955   VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateTypeNV value )
7956   {
7957     switch ( value )
7958     {
7959       case FragmentShadingRateTypeNV::eFragmentSize: return "FragmentSize";
7960       case FragmentShadingRateTypeNV::eEnums: return "Enums";
7961       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7962     }
7963   }
7964 
7965   //=== VK_NV_ray_tracing_motion_blur ===
7966 
7967   enum class AccelerationStructureMotionInstanceTypeNV
7968   {
7969     eStatic       = VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV,
7970     eMatrixMotion = VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV,
7971     eSrtMotion    = VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV
7972   };
7973 
to_string(AccelerationStructureMotionInstanceTypeNV value)7974   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMotionInstanceTypeNV value )
7975   {
7976     switch ( value )
7977     {
7978       case AccelerationStructureMotionInstanceTypeNV::eStatic: return "Static";
7979       case AccelerationStructureMotionInstanceTypeNV::eMatrixMotion: return "MatrixMotion";
7980       case AccelerationStructureMotionInstanceTypeNV::eSrtMotion: return "SrtMotion";
7981       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7982     }
7983   }
7984 
7985   enum class AccelerationStructureMotionInfoFlagBitsNV : VkAccelerationStructureMotionInfoFlagsNV
7986   {
7987   };
7988 
to_string(AccelerationStructureMotionInfoFlagBitsNV)7989   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMotionInfoFlagBitsNV )
7990   {
7991     return "(void)";
7992   }
7993 
7994   enum class AccelerationStructureMotionInstanceFlagBitsNV : VkAccelerationStructureMotionInstanceFlagsNV
7995   {
7996   };
7997 
to_string(AccelerationStructureMotionInstanceFlagBitsNV)7998   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMotionInstanceFlagBitsNV )
7999   {
8000     return "(void)";
8001   }
8002 
8003 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
8004   //=== VK_EXT_directfb_surface ===
8005 
8006   enum class DirectFBSurfaceCreateFlagBitsEXT : VkDirectFBSurfaceCreateFlagsEXT
8007   {
8008   };
8009 
to_string(DirectFBSurfaceCreateFlagBitsEXT)8010   VULKAN_HPP_INLINE std::string to_string( DirectFBSurfaceCreateFlagBitsEXT )
8011   {
8012     return "(void)";
8013   }
8014 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
8015 
8016   //=== VK_KHR_ray_tracing_pipeline ===
8017 
8018   enum class RayTracingShaderGroupTypeKHR
8019   {
8020     eGeneral            = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
8021     eTrianglesHitGroup  = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
8022     eProceduralHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR
8023   };
8024   using RayTracingShaderGroupTypeNV = RayTracingShaderGroupTypeKHR;
8025 
to_string(RayTracingShaderGroupTypeKHR value)8026   VULKAN_HPP_INLINE std::string to_string( RayTracingShaderGroupTypeKHR value )
8027   {
8028     switch ( value )
8029     {
8030       case RayTracingShaderGroupTypeKHR::eGeneral: return "General";
8031       case RayTracingShaderGroupTypeKHR::eTrianglesHitGroup: return "TrianglesHitGroup";
8032       case RayTracingShaderGroupTypeKHR::eProceduralHitGroup: return "ProceduralHitGroup";
8033       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8034     }
8035   }
8036 
8037   enum class ShaderGroupShaderKHR
8038   {
8039     eGeneral      = VK_SHADER_GROUP_SHADER_GENERAL_KHR,
8040     eClosestHit   = VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR,
8041     eAnyHit       = VK_SHADER_GROUP_SHADER_ANY_HIT_KHR,
8042     eIntersection = VK_SHADER_GROUP_SHADER_INTERSECTION_KHR
8043   };
8044 
to_string(ShaderGroupShaderKHR value)8045   VULKAN_HPP_INLINE std::string to_string( ShaderGroupShaderKHR value )
8046   {
8047     switch ( value )
8048     {
8049       case ShaderGroupShaderKHR::eGeneral: return "General";
8050       case ShaderGroupShaderKHR::eClosestHit: return "ClosestHit";
8051       case ShaderGroupShaderKHR::eAnyHit: return "AnyHit";
8052       case ShaderGroupShaderKHR::eIntersection: return "Intersection";
8053       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8054     }
8055   }
8056 
8057   //=== VK_KHR_format_feature_flags2 ===
8058 
8059   enum class FormatFeatureFlagBits2KHR : VkFormatFeatureFlags2KHR
8060   {
8061     eSampledImage                            = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR,
8062     eStorageImage                            = VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR,
8063     eStorageImageAtomic                      = VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR,
8064     eUniformTexelBuffer                      = VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR,
8065     eStorageTexelBuffer                      = VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR,
8066     eStorageTexelBufferAtomic                = VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR,
8067     eVertexBuffer                            = VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR,
8068     eColorAttachment                         = VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR,
8069     eColorAttachmentBlend                    = VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR,
8070     eDepthStencilAttachment                  = VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR,
8071     eBlitSrc                                 = VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR,
8072     eBlitDst                                 = VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR,
8073     eSampledImageFilterLinear                = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR,
8074     eSampledImageFilterCubicEXT              = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
8075     eTransferSrc                             = VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR,
8076     eTransferDst                             = VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR,
8077     eSampledImageFilterMinmax                = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR,
8078     eMidpointChromaSamples                   = VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR,
8079     eSampledImageYcbcrConversionLinearFilter = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR,
8080     eSampledImageYcbcrConversionSeparateReconstructionFilter =
8081       VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR,
8082     eSampledImageYcbcrConversionChromaReconstructionExplicit =
8083       VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR,
8084     eSampledImageYcbcrConversionChromaReconstructionExplicitForceable =
8085       VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR,
8086     eDisjoint                    = VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR,
8087     eCositedChromaSamples        = VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR,
8088     eStorageReadWithoutFormat    = VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR,
8089     eStorageWriteWithoutFormat   = VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR,
8090     eSampledImageDepthComparison = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR,
8091 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8092     eVideoDecodeOutput = VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR,
8093     eVideoDecodeDpb    = VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR,
8094 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8095     eAccelerationStructureVertexBuffer = VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,
8096     eFragmentDensityMapEXT             = VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT,
8097     eFragmentShadingRateAttachment     = VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
8098 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8099     eVideoEncodeInput = VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR,
8100     eVideoEncodeDpb   = VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR
8101 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8102   };
8103 
to_string(FormatFeatureFlagBits2KHR value)8104   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlagBits2KHR value )
8105   {
8106     switch ( value )
8107     {
8108       case FormatFeatureFlagBits2KHR::eSampledImage: return "SampledImage";
8109       case FormatFeatureFlagBits2KHR::eStorageImage: return "StorageImage";
8110       case FormatFeatureFlagBits2KHR::eStorageImageAtomic: return "StorageImageAtomic";
8111       case FormatFeatureFlagBits2KHR::eUniformTexelBuffer: return "UniformTexelBuffer";
8112       case FormatFeatureFlagBits2KHR::eStorageTexelBuffer: return "StorageTexelBuffer";
8113       case FormatFeatureFlagBits2KHR::eStorageTexelBufferAtomic: return "StorageTexelBufferAtomic";
8114       case FormatFeatureFlagBits2KHR::eVertexBuffer: return "VertexBuffer";
8115       case FormatFeatureFlagBits2KHR::eColorAttachment: return "ColorAttachment";
8116       case FormatFeatureFlagBits2KHR::eColorAttachmentBlend: return "ColorAttachmentBlend";
8117       case FormatFeatureFlagBits2KHR::eDepthStencilAttachment: return "DepthStencilAttachment";
8118       case FormatFeatureFlagBits2KHR::eBlitSrc: return "BlitSrc";
8119       case FormatFeatureFlagBits2KHR::eBlitDst: return "BlitDst";
8120       case FormatFeatureFlagBits2KHR::eSampledImageFilterLinear: return "SampledImageFilterLinear";
8121       case FormatFeatureFlagBits2KHR::eSampledImageFilterCubicEXT: return "SampledImageFilterCubicEXT";
8122       case FormatFeatureFlagBits2KHR::eTransferSrc: return "TransferSrc";
8123       case FormatFeatureFlagBits2KHR::eTransferDst: return "TransferDst";
8124       case FormatFeatureFlagBits2KHR::eSampledImageFilterMinmax: return "SampledImageFilterMinmax";
8125       case FormatFeatureFlagBits2KHR::eMidpointChromaSamples: return "MidpointChromaSamples";
8126       case FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionLinearFilter:
8127         return "SampledImageYcbcrConversionLinearFilter";
8128       case FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionSeparateReconstructionFilter:
8129         return "SampledImageYcbcrConversionSeparateReconstructionFilter";
8130       case FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionChromaReconstructionExplicit:
8131         return "SampledImageYcbcrConversionChromaReconstructionExplicit";
8132       case FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable:
8133         return "SampledImageYcbcrConversionChromaReconstructionExplicitForceable";
8134       case FormatFeatureFlagBits2KHR::eDisjoint: return "Disjoint";
8135       case FormatFeatureFlagBits2KHR::eCositedChromaSamples: return "CositedChromaSamples";
8136       case FormatFeatureFlagBits2KHR::eStorageReadWithoutFormat: return "StorageReadWithoutFormat";
8137       case FormatFeatureFlagBits2KHR::eStorageWriteWithoutFormat: return "StorageWriteWithoutFormat";
8138       case FormatFeatureFlagBits2KHR::eSampledImageDepthComparison: return "SampledImageDepthComparison";
8139 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8140       case FormatFeatureFlagBits2KHR::eVideoDecodeOutput: return "VideoDecodeOutput";
8141       case FormatFeatureFlagBits2KHR::eVideoDecodeDpb: return "VideoDecodeDpb";
8142 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8143       case FormatFeatureFlagBits2KHR::eAccelerationStructureVertexBuffer: return "AccelerationStructureVertexBuffer";
8144       case FormatFeatureFlagBits2KHR::eFragmentDensityMapEXT: return "FragmentDensityMapEXT";
8145       case FormatFeatureFlagBits2KHR::eFragmentShadingRateAttachment: return "FragmentShadingRateAttachment";
8146 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8147       case FormatFeatureFlagBits2KHR::eVideoEncodeInput: return "VideoEncodeInput";
8148       case FormatFeatureFlagBits2KHR::eVideoEncodeDpb: return "VideoEncodeDpb";
8149 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8150       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8151     }
8152   }
8153 
8154 #if defined( VK_USE_PLATFORM_FUCHSIA )
8155   //=== VK_FUCHSIA_buffer_collection ===
8156 
8157   enum class ImageConstraintsInfoFlagBitsFUCHSIA : VkImageConstraintsInfoFlagsFUCHSIA
8158   {
8159     eCpuReadRarely     = VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA,
8160     eCpuReadOften      = VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA,
8161     eCpuWriteRarely    = VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA,
8162     eCpuWriteOften     = VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA,
8163     eProtectedOptional = VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA
8164   };
8165 
to_string(ImageConstraintsInfoFlagBitsFUCHSIA value)8166   VULKAN_HPP_INLINE std::string to_string( ImageConstraintsInfoFlagBitsFUCHSIA value )
8167   {
8168     switch ( value )
8169     {
8170       case ImageConstraintsInfoFlagBitsFUCHSIA::eCpuReadRarely: return "CpuReadRarely";
8171       case ImageConstraintsInfoFlagBitsFUCHSIA::eCpuReadOften: return "CpuReadOften";
8172       case ImageConstraintsInfoFlagBitsFUCHSIA::eCpuWriteRarely: return "CpuWriteRarely";
8173       case ImageConstraintsInfoFlagBitsFUCHSIA::eCpuWriteOften: return "CpuWriteOften";
8174       case ImageConstraintsInfoFlagBitsFUCHSIA::eProtectedOptional: return "ProtectedOptional";
8175       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8176     }
8177   }
8178 
8179   enum class ImageFormatConstraintsFlagBitsFUCHSIA : VkImageFormatConstraintsFlagsFUCHSIA
8180   {
8181   };
8182 
to_string(ImageFormatConstraintsFlagBitsFUCHSIA)8183   VULKAN_HPP_INLINE std::string to_string( ImageFormatConstraintsFlagBitsFUCHSIA )
8184   {
8185     return "(void)";
8186   }
8187 #endif /*VK_USE_PLATFORM_FUCHSIA*/
8188 
8189 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
8190   //=== VK_QNX_screen_surface ===
8191 
8192   enum class ScreenSurfaceCreateFlagBitsQNX : VkScreenSurfaceCreateFlagsQNX
8193   {
8194   };
8195 
to_string(ScreenSurfaceCreateFlagBitsQNX)8196   VULKAN_HPP_INLINE std::string to_string( ScreenSurfaceCreateFlagBitsQNX )
8197   {
8198     return "(void)";
8199   }
8200 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
8201 
8202   template <ObjectType value>
8203   struct cpp_type
8204   {};
8205 
8206   template <typename T>
8207   struct IndexTypeValue
8208   {};
8209 
8210   template <>
8211   struct IndexTypeValue<uint16_t>
8212   {
8213     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint16;
8214   };
8215 
8216   template <>
8217   struct CppType<IndexType, IndexType::eUint16>
8218   {
8219     using Type = uint16_t;
8220   };
8221 
8222   template <>
8223   struct IndexTypeValue<uint32_t>
8224   {
8225     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint32;
8226   };
8227 
8228   template <>
8229   struct CppType<IndexType, IndexType::eUint32>
8230   {
8231     using Type = uint32_t;
8232   };
8233 
8234   template <>
8235   struct IndexTypeValue<uint8_t>
8236   {
8237     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint8EXT;
8238   };
8239 
8240   template <>
8241   struct CppType<IndexType, IndexType::eUint8EXT>
8242   {
8243     using Type = uint8_t;
8244   };
8245 
8246   //================
8247   //=== BITMASKs ===
8248   //================
8249 
8250   //=== VK_VERSION_1_0 ===
8251 
8252   using FormatFeatureFlags = Flags<FormatFeatureFlagBits>;
8253 
8254   template <>
8255   struct FlagTraits<FormatFeatureFlagBits>
8256   {
8257     enum : VkFlags
8258     {
8259       allFlags =
8260         VkFlags( FormatFeatureFlagBits::eSampledImage ) | VkFlags( FormatFeatureFlagBits::eStorageImage ) |
8261         VkFlags( FormatFeatureFlagBits::eStorageImageAtomic ) | VkFlags( FormatFeatureFlagBits::eUniformTexelBuffer ) |
8262         VkFlags( FormatFeatureFlagBits::eStorageTexelBuffer ) |
8263         VkFlags( FormatFeatureFlagBits::eStorageTexelBufferAtomic ) | VkFlags( FormatFeatureFlagBits::eVertexBuffer ) |
8264         VkFlags( FormatFeatureFlagBits::eColorAttachment ) | VkFlags( FormatFeatureFlagBits::eColorAttachmentBlend ) |
8265         VkFlags( FormatFeatureFlagBits::eDepthStencilAttachment ) | VkFlags( FormatFeatureFlagBits::eBlitSrc ) |
8266         VkFlags( FormatFeatureFlagBits::eBlitDst ) | VkFlags( FormatFeatureFlagBits::eSampledImageFilterLinear ) |
8267         VkFlags( FormatFeatureFlagBits::eTransferSrc ) | VkFlags( FormatFeatureFlagBits::eTransferDst ) |
8268         VkFlags( FormatFeatureFlagBits::eMidpointChromaSamples ) |
8269         VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter ) |
8270         VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter ) |
8271         VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit ) |
8272         VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable ) |
8273         VkFlags( FormatFeatureFlagBits::eDisjoint ) | VkFlags( FormatFeatureFlagBits::eCositedChromaSamples ) |
8274         VkFlags( FormatFeatureFlagBits::eSampledImageFilterMinmax ) |
8275         VkFlags( FormatFeatureFlagBits::eSampledImageFilterCubicIMG )
8276 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8277         | VkFlags( FormatFeatureFlagBits::eVideoDecodeOutputKHR ) | VkFlags( FormatFeatureFlagBits::eVideoDecodeDpbKHR )
8278 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8279         | VkFlags( FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR ) |
8280         VkFlags( FormatFeatureFlagBits::eFragmentDensityMapEXT ) |
8281         VkFlags( FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR )
8282 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8283         | VkFlags( FormatFeatureFlagBits::eVideoEncodeInputKHR ) | VkFlags( FormatFeatureFlagBits::eVideoEncodeDpbKHR )
8284 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8285     };
8286   };
8287 
operator |(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)8288   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator|( FormatFeatureFlagBits bit0,
8289                                                                        FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8290   {
8291     return FormatFeatureFlags( bit0 ) | bit1;
8292   }
8293 
operator &(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)8294   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator&( FormatFeatureFlagBits bit0,
8295                                                                        FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8296   {
8297     return FormatFeatureFlags( bit0 ) & bit1;
8298   }
8299 
operator ^(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)8300   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator^( FormatFeatureFlagBits bit0,
8301                                                                        FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8302   {
8303     return FormatFeatureFlags( bit0 ) ^ bit1;
8304   }
8305 
operator ~(FormatFeatureFlagBits bits)8306   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator~( FormatFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
8307   {
8308     return ~( FormatFeatureFlags( bits ) );
8309   }
8310 
to_string(FormatFeatureFlags value)8311   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlags value )
8312   {
8313     if ( !value )
8314       return "{}";
8315 
8316     std::string result;
8317     if ( value & FormatFeatureFlagBits::eSampledImage )
8318       result += "SampledImage | ";
8319     if ( value & FormatFeatureFlagBits::eStorageImage )
8320       result += "StorageImage | ";
8321     if ( value & FormatFeatureFlagBits::eStorageImageAtomic )
8322       result += "StorageImageAtomic | ";
8323     if ( value & FormatFeatureFlagBits::eUniformTexelBuffer )
8324       result += "UniformTexelBuffer | ";
8325     if ( value & FormatFeatureFlagBits::eStorageTexelBuffer )
8326       result += "StorageTexelBuffer | ";
8327     if ( value & FormatFeatureFlagBits::eStorageTexelBufferAtomic )
8328       result += "StorageTexelBufferAtomic | ";
8329     if ( value & FormatFeatureFlagBits::eVertexBuffer )
8330       result += "VertexBuffer | ";
8331     if ( value & FormatFeatureFlagBits::eColorAttachment )
8332       result += "ColorAttachment | ";
8333     if ( value & FormatFeatureFlagBits::eColorAttachmentBlend )
8334       result += "ColorAttachmentBlend | ";
8335     if ( value & FormatFeatureFlagBits::eDepthStencilAttachment )
8336       result += "DepthStencilAttachment | ";
8337     if ( value & FormatFeatureFlagBits::eBlitSrc )
8338       result += "BlitSrc | ";
8339     if ( value & FormatFeatureFlagBits::eBlitDst )
8340       result += "BlitDst | ";
8341     if ( value & FormatFeatureFlagBits::eSampledImageFilterLinear )
8342       result += "SampledImageFilterLinear | ";
8343     if ( value & FormatFeatureFlagBits::eTransferSrc )
8344       result += "TransferSrc | ";
8345     if ( value & FormatFeatureFlagBits::eTransferDst )
8346       result += "TransferDst | ";
8347     if ( value & FormatFeatureFlagBits::eMidpointChromaSamples )
8348       result += "MidpointChromaSamples | ";
8349     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter )
8350       result += "SampledImageYcbcrConversionLinearFilter | ";
8351     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter )
8352       result += "SampledImageYcbcrConversionSeparateReconstructionFilter | ";
8353     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit )
8354       result += "SampledImageYcbcrConversionChromaReconstructionExplicit | ";
8355     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable )
8356       result += "SampledImageYcbcrConversionChromaReconstructionExplicitForceable | ";
8357     if ( value & FormatFeatureFlagBits::eDisjoint )
8358       result += "Disjoint | ";
8359     if ( value & FormatFeatureFlagBits::eCositedChromaSamples )
8360       result += "CositedChromaSamples | ";
8361     if ( value & FormatFeatureFlagBits::eSampledImageFilterMinmax )
8362       result += "SampledImageFilterMinmax | ";
8363     if ( value & FormatFeatureFlagBits::eSampledImageFilterCubicIMG )
8364       result += "SampledImageFilterCubicIMG | ";
8365 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8366     if ( value & FormatFeatureFlagBits::eVideoDecodeOutputKHR )
8367       result += "VideoDecodeOutputKHR | ";
8368     if ( value & FormatFeatureFlagBits::eVideoDecodeDpbKHR )
8369       result += "VideoDecodeDpbKHR | ";
8370 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8371     if ( value & FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR )
8372       result += "AccelerationStructureVertexBufferKHR | ";
8373     if ( value & FormatFeatureFlagBits::eFragmentDensityMapEXT )
8374       result += "FragmentDensityMapEXT | ";
8375     if ( value & FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR )
8376       result += "FragmentShadingRateAttachmentKHR | ";
8377 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8378     if ( value & FormatFeatureFlagBits::eVideoEncodeInputKHR )
8379       result += "VideoEncodeInputKHR | ";
8380     if ( value & FormatFeatureFlagBits::eVideoEncodeDpbKHR )
8381       result += "VideoEncodeDpbKHR | ";
8382 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8383 
8384     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8385   }
8386 
8387   using ImageCreateFlags = Flags<ImageCreateFlagBits>;
8388 
8389   template <>
8390   struct FlagTraits<ImageCreateFlagBits>
8391   {
8392     enum : VkFlags
8393     {
8394       allFlags = VkFlags( ImageCreateFlagBits::eSparseBinding ) | VkFlags( ImageCreateFlagBits::eSparseResidency ) |
8395                  VkFlags( ImageCreateFlagBits::eSparseAliased ) | VkFlags( ImageCreateFlagBits::eMutableFormat ) |
8396                  VkFlags( ImageCreateFlagBits::eCubeCompatible ) | VkFlags( ImageCreateFlagBits::eAlias ) |
8397                  VkFlags( ImageCreateFlagBits::eSplitInstanceBindRegions ) |
8398                  VkFlags( ImageCreateFlagBits::e2DArrayCompatible ) |
8399                  VkFlags( ImageCreateFlagBits::eBlockTexelViewCompatible ) |
8400                  VkFlags( ImageCreateFlagBits::eExtendedUsage ) | VkFlags( ImageCreateFlagBits::eProtected ) |
8401                  VkFlags( ImageCreateFlagBits::eDisjoint ) | VkFlags( ImageCreateFlagBits::eCornerSampledNV ) |
8402                  VkFlags( ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT ) |
8403                  VkFlags( ImageCreateFlagBits::eSubsampledEXT )
8404     };
8405   };
8406 
operator |(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)8407   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator|( ImageCreateFlagBits bit0,
8408                                                                      ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8409   {
8410     return ImageCreateFlags( bit0 ) | bit1;
8411   }
8412 
operator &(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)8413   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator&( ImageCreateFlagBits bit0,
8414                                                                      ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8415   {
8416     return ImageCreateFlags( bit0 ) & bit1;
8417   }
8418 
operator ^(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)8419   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator^( ImageCreateFlagBits bit0,
8420                                                                      ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8421   {
8422     return ImageCreateFlags( bit0 ) ^ bit1;
8423   }
8424 
operator ~(ImageCreateFlagBits bits)8425   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator~( ImageCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
8426   {
8427     return ~( ImageCreateFlags( bits ) );
8428   }
8429 
to_string(ImageCreateFlags value)8430   VULKAN_HPP_INLINE std::string to_string( ImageCreateFlags value )
8431   {
8432     if ( !value )
8433       return "{}";
8434 
8435     std::string result;
8436     if ( value & ImageCreateFlagBits::eSparseBinding )
8437       result += "SparseBinding | ";
8438     if ( value & ImageCreateFlagBits::eSparseResidency )
8439       result += "SparseResidency | ";
8440     if ( value & ImageCreateFlagBits::eSparseAliased )
8441       result += "SparseAliased | ";
8442     if ( value & ImageCreateFlagBits::eMutableFormat )
8443       result += "MutableFormat | ";
8444     if ( value & ImageCreateFlagBits::eCubeCompatible )
8445       result += "CubeCompatible | ";
8446     if ( value & ImageCreateFlagBits::eAlias )
8447       result += "Alias | ";
8448     if ( value & ImageCreateFlagBits::eSplitInstanceBindRegions )
8449       result += "SplitInstanceBindRegions | ";
8450     if ( value & ImageCreateFlagBits::e2DArrayCompatible )
8451       result += "2DArrayCompatible | ";
8452     if ( value & ImageCreateFlagBits::eBlockTexelViewCompatible )
8453       result += "BlockTexelViewCompatible | ";
8454     if ( value & ImageCreateFlagBits::eExtendedUsage )
8455       result += "ExtendedUsage | ";
8456     if ( value & ImageCreateFlagBits::eProtected )
8457       result += "Protected | ";
8458     if ( value & ImageCreateFlagBits::eDisjoint )
8459       result += "Disjoint | ";
8460     if ( value & ImageCreateFlagBits::eCornerSampledNV )
8461       result += "CornerSampledNV | ";
8462     if ( value & ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT )
8463       result += "SampleLocationsCompatibleDepthEXT | ";
8464     if ( value & ImageCreateFlagBits::eSubsampledEXT )
8465       result += "SubsampledEXT | ";
8466 
8467     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8468   }
8469 
8470   using ImageUsageFlags = Flags<ImageUsageFlagBits>;
8471 
8472   template <>
8473   struct FlagTraits<ImageUsageFlagBits>
8474   {
8475     enum : VkFlags
8476     {
8477       allFlags = VkFlags( ImageUsageFlagBits::eTransferSrc ) | VkFlags( ImageUsageFlagBits::eTransferDst ) |
8478                  VkFlags( ImageUsageFlagBits::eSampled ) | VkFlags( ImageUsageFlagBits::eStorage ) |
8479                  VkFlags( ImageUsageFlagBits::eColorAttachment ) |
8480                  VkFlags( ImageUsageFlagBits::eDepthStencilAttachment ) |
8481                  VkFlags( ImageUsageFlagBits::eTransientAttachment ) | VkFlags( ImageUsageFlagBits::eInputAttachment )
8482 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8483                  | VkFlags( ImageUsageFlagBits::eVideoDecodeDstKHR ) |
8484                  VkFlags( ImageUsageFlagBits::eVideoDecodeSrcKHR ) | VkFlags( ImageUsageFlagBits::eVideoDecodeDpbKHR )
8485 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8486                  | VkFlags( ImageUsageFlagBits::eFragmentDensityMapEXT ) |
8487                  VkFlags( ImageUsageFlagBits::eFragmentShadingRateAttachmentKHR )
8488 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8489                  | VkFlags( ImageUsageFlagBits::eVideoEncodeDstKHR ) |
8490                  VkFlags( ImageUsageFlagBits::eVideoEncodeSrcKHR ) | VkFlags( ImageUsageFlagBits::eVideoEncodeDpbKHR )
8491 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8492                  | VkFlags( ImageUsageFlagBits::eInvocationMaskHUAWEI )
8493     };
8494   };
8495 
operator |(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)8496   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator|( ImageUsageFlagBits bit0,
8497                                                                     ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8498   {
8499     return ImageUsageFlags( bit0 ) | bit1;
8500   }
8501 
operator &(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)8502   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator&( ImageUsageFlagBits bit0,
8503                                                                     ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8504   {
8505     return ImageUsageFlags( bit0 ) & bit1;
8506   }
8507 
operator ^(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)8508   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator^( ImageUsageFlagBits bit0,
8509                                                                     ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8510   {
8511     return ImageUsageFlags( bit0 ) ^ bit1;
8512   }
8513 
operator ~(ImageUsageFlagBits bits)8514   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator~( ImageUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT
8515   {
8516     return ~( ImageUsageFlags( bits ) );
8517   }
8518 
to_string(ImageUsageFlags value)8519   VULKAN_HPP_INLINE std::string to_string( ImageUsageFlags value )
8520   {
8521     if ( !value )
8522       return "{}";
8523 
8524     std::string result;
8525     if ( value & ImageUsageFlagBits::eTransferSrc )
8526       result += "TransferSrc | ";
8527     if ( value & ImageUsageFlagBits::eTransferDst )
8528       result += "TransferDst | ";
8529     if ( value & ImageUsageFlagBits::eSampled )
8530       result += "Sampled | ";
8531     if ( value & ImageUsageFlagBits::eStorage )
8532       result += "Storage | ";
8533     if ( value & ImageUsageFlagBits::eColorAttachment )
8534       result += "ColorAttachment | ";
8535     if ( value & ImageUsageFlagBits::eDepthStencilAttachment )
8536       result += "DepthStencilAttachment | ";
8537     if ( value & ImageUsageFlagBits::eTransientAttachment )
8538       result += "TransientAttachment | ";
8539     if ( value & ImageUsageFlagBits::eInputAttachment )
8540       result += "InputAttachment | ";
8541 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8542     if ( value & ImageUsageFlagBits::eVideoDecodeDstKHR )
8543       result += "VideoDecodeDstKHR | ";
8544     if ( value & ImageUsageFlagBits::eVideoDecodeSrcKHR )
8545       result += "VideoDecodeSrcKHR | ";
8546     if ( value & ImageUsageFlagBits::eVideoDecodeDpbKHR )
8547       result += "VideoDecodeDpbKHR | ";
8548 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8549     if ( value & ImageUsageFlagBits::eFragmentDensityMapEXT )
8550       result += "FragmentDensityMapEXT | ";
8551     if ( value & ImageUsageFlagBits::eFragmentShadingRateAttachmentKHR )
8552       result += "FragmentShadingRateAttachmentKHR | ";
8553 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8554     if ( value & ImageUsageFlagBits::eVideoEncodeDstKHR )
8555       result += "VideoEncodeDstKHR | ";
8556     if ( value & ImageUsageFlagBits::eVideoEncodeSrcKHR )
8557       result += "VideoEncodeSrcKHR | ";
8558     if ( value & ImageUsageFlagBits::eVideoEncodeDpbKHR )
8559       result += "VideoEncodeDpbKHR | ";
8560 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8561     if ( value & ImageUsageFlagBits::eInvocationMaskHUAWEI )
8562       result += "InvocationMaskHUAWEI | ";
8563 
8564     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8565   }
8566 
8567   using InstanceCreateFlags = Flags<InstanceCreateFlagBits>;
8568 
to_string(InstanceCreateFlags)8569   VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlags )
8570   {
8571     return "{}";
8572   }
8573 
8574   using MemoryHeapFlags = Flags<MemoryHeapFlagBits>;
8575 
8576   template <>
8577   struct FlagTraits<MemoryHeapFlagBits>
8578   {
8579     enum : VkFlags
8580     {
8581       allFlags = VkFlags( MemoryHeapFlagBits::eDeviceLocal ) | VkFlags( MemoryHeapFlagBits::eMultiInstance )
8582     };
8583   };
8584 
operator |(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)8585   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator|( MemoryHeapFlagBits bit0,
8586                                                                     MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8587   {
8588     return MemoryHeapFlags( bit0 ) | bit1;
8589   }
8590 
operator &(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)8591   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator&( MemoryHeapFlagBits bit0,
8592                                                                     MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8593   {
8594     return MemoryHeapFlags( bit0 ) & bit1;
8595   }
8596 
operator ^(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)8597   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator^( MemoryHeapFlagBits bit0,
8598                                                                     MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8599   {
8600     return MemoryHeapFlags( bit0 ) ^ bit1;
8601   }
8602 
operator ~(MemoryHeapFlagBits bits)8603   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator~( MemoryHeapFlagBits bits ) VULKAN_HPP_NOEXCEPT
8604   {
8605     return ~( MemoryHeapFlags( bits ) );
8606   }
8607 
to_string(MemoryHeapFlags value)8608   VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlags value )
8609   {
8610     if ( !value )
8611       return "{}";
8612 
8613     std::string result;
8614     if ( value & MemoryHeapFlagBits::eDeviceLocal )
8615       result += "DeviceLocal | ";
8616     if ( value & MemoryHeapFlagBits::eMultiInstance )
8617       result += "MultiInstance | ";
8618 
8619     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8620   }
8621 
8622   using MemoryPropertyFlags = Flags<MemoryPropertyFlagBits>;
8623 
8624   template <>
8625   struct FlagTraits<MemoryPropertyFlagBits>
8626   {
8627     enum : VkFlags
8628     {
8629       allFlags = VkFlags( MemoryPropertyFlagBits::eDeviceLocal ) | VkFlags( MemoryPropertyFlagBits::eHostVisible ) |
8630                  VkFlags( MemoryPropertyFlagBits::eHostCoherent ) | VkFlags( MemoryPropertyFlagBits::eHostCached ) |
8631                  VkFlags( MemoryPropertyFlagBits::eLazilyAllocated ) | VkFlags( MemoryPropertyFlagBits::eProtected ) |
8632                  VkFlags( MemoryPropertyFlagBits::eDeviceCoherentAMD ) |
8633                  VkFlags( MemoryPropertyFlagBits::eDeviceUncachedAMD ) |
8634                  VkFlags( MemoryPropertyFlagBits::eRdmaCapableNV )
8635     };
8636   };
8637 
8638   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags
operator |(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)8639     operator|( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8640   {
8641     return MemoryPropertyFlags( bit0 ) | bit1;
8642   }
8643 
8644   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags
operator &(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)8645     operator&( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8646   {
8647     return MemoryPropertyFlags( bit0 ) & bit1;
8648   }
8649 
8650   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags
operator ^(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)8651     operator^( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8652   {
8653     return MemoryPropertyFlags( bit0 ) ^ bit1;
8654   }
8655 
operator ~(MemoryPropertyFlagBits bits)8656   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator~( MemoryPropertyFlagBits bits )
8657     VULKAN_HPP_NOEXCEPT
8658   {
8659     return ~( MemoryPropertyFlags( bits ) );
8660   }
8661 
to_string(MemoryPropertyFlags value)8662   VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlags value )
8663   {
8664     if ( !value )
8665       return "{}";
8666 
8667     std::string result;
8668     if ( value & MemoryPropertyFlagBits::eDeviceLocal )
8669       result += "DeviceLocal | ";
8670     if ( value & MemoryPropertyFlagBits::eHostVisible )
8671       result += "HostVisible | ";
8672     if ( value & MemoryPropertyFlagBits::eHostCoherent )
8673       result += "HostCoherent | ";
8674     if ( value & MemoryPropertyFlagBits::eHostCached )
8675       result += "HostCached | ";
8676     if ( value & MemoryPropertyFlagBits::eLazilyAllocated )
8677       result += "LazilyAllocated | ";
8678     if ( value & MemoryPropertyFlagBits::eProtected )
8679       result += "Protected | ";
8680     if ( value & MemoryPropertyFlagBits::eDeviceCoherentAMD )
8681       result += "DeviceCoherentAMD | ";
8682     if ( value & MemoryPropertyFlagBits::eDeviceUncachedAMD )
8683       result += "DeviceUncachedAMD | ";
8684     if ( value & MemoryPropertyFlagBits::eRdmaCapableNV )
8685       result += "RdmaCapableNV | ";
8686 
8687     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8688   }
8689 
8690   using QueueFlags = Flags<QueueFlagBits>;
8691 
8692   template <>
8693   struct FlagTraits<QueueFlagBits>
8694   {
8695     enum : VkFlags
8696     {
8697       allFlags = VkFlags( QueueFlagBits::eGraphics ) | VkFlags( QueueFlagBits::eCompute ) |
8698                  VkFlags( QueueFlagBits::eTransfer ) | VkFlags( QueueFlagBits::eSparseBinding ) |
8699                  VkFlags( QueueFlagBits::eProtected )
8700 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8701                  | VkFlags( QueueFlagBits::eVideoDecodeKHR ) | VkFlags( QueueFlagBits::eVideoEncodeKHR )
8702 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8703     };
8704   };
8705 
operator |(QueueFlagBits bit0,QueueFlagBits bit1)8706   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator|( QueueFlagBits bit0,
8707                                                                QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8708   {
8709     return QueueFlags( bit0 ) | bit1;
8710   }
8711 
operator &(QueueFlagBits bit0,QueueFlagBits bit1)8712   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator&( QueueFlagBits bit0,
8713                                                                QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8714   {
8715     return QueueFlags( bit0 ) & bit1;
8716   }
8717 
operator ^(QueueFlagBits bit0,QueueFlagBits bit1)8718   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator^( QueueFlagBits bit0,
8719                                                                QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8720   {
8721     return QueueFlags( bit0 ) ^ bit1;
8722   }
8723 
operator ~(QueueFlagBits bits)8724   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator~( QueueFlagBits bits ) VULKAN_HPP_NOEXCEPT
8725   {
8726     return ~( QueueFlags( bits ) );
8727   }
8728 
to_string(QueueFlags value)8729   VULKAN_HPP_INLINE std::string to_string( QueueFlags value )
8730   {
8731     if ( !value )
8732       return "{}";
8733 
8734     std::string result;
8735     if ( value & QueueFlagBits::eGraphics )
8736       result += "Graphics | ";
8737     if ( value & QueueFlagBits::eCompute )
8738       result += "Compute | ";
8739     if ( value & QueueFlagBits::eTransfer )
8740       result += "Transfer | ";
8741     if ( value & QueueFlagBits::eSparseBinding )
8742       result += "SparseBinding | ";
8743     if ( value & QueueFlagBits::eProtected )
8744       result += "Protected | ";
8745 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8746     if ( value & QueueFlagBits::eVideoDecodeKHR )
8747       result += "VideoDecodeKHR | ";
8748     if ( value & QueueFlagBits::eVideoEncodeKHR )
8749       result += "VideoEncodeKHR | ";
8750 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8751 
8752     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8753   }
8754 
8755   using SampleCountFlags = Flags<SampleCountFlagBits>;
8756 
8757   template <>
8758   struct FlagTraits<SampleCountFlagBits>
8759   {
8760     enum : VkFlags
8761     {
8762       allFlags = VkFlags( SampleCountFlagBits::e1 ) | VkFlags( SampleCountFlagBits::e2 ) |
8763                  VkFlags( SampleCountFlagBits::e4 ) | VkFlags( SampleCountFlagBits::e8 ) |
8764                  VkFlags( SampleCountFlagBits::e16 ) | VkFlags( SampleCountFlagBits::e32 ) |
8765                  VkFlags( SampleCountFlagBits::e64 )
8766     };
8767   };
8768 
operator |(SampleCountFlagBits bit0,SampleCountFlagBits bit1)8769   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator|( SampleCountFlagBits bit0,
8770                                                                      SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8771   {
8772     return SampleCountFlags( bit0 ) | bit1;
8773   }
8774 
operator &(SampleCountFlagBits bit0,SampleCountFlagBits bit1)8775   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator&( SampleCountFlagBits bit0,
8776                                                                      SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8777   {
8778     return SampleCountFlags( bit0 ) & bit1;
8779   }
8780 
operator ^(SampleCountFlagBits bit0,SampleCountFlagBits bit1)8781   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator^( SampleCountFlagBits bit0,
8782                                                                      SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8783   {
8784     return SampleCountFlags( bit0 ) ^ bit1;
8785   }
8786 
operator ~(SampleCountFlagBits bits)8787   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator~( SampleCountFlagBits bits ) VULKAN_HPP_NOEXCEPT
8788   {
8789     return ~( SampleCountFlags( bits ) );
8790   }
8791 
to_string(SampleCountFlags value)8792   VULKAN_HPP_INLINE std::string to_string( SampleCountFlags value )
8793   {
8794     if ( !value )
8795       return "{}";
8796 
8797     std::string result;
8798     if ( value & SampleCountFlagBits::e1 )
8799       result += "1 | ";
8800     if ( value & SampleCountFlagBits::e2 )
8801       result += "2 | ";
8802     if ( value & SampleCountFlagBits::e4 )
8803       result += "4 | ";
8804     if ( value & SampleCountFlagBits::e8 )
8805       result += "8 | ";
8806     if ( value & SampleCountFlagBits::e16 )
8807       result += "16 | ";
8808     if ( value & SampleCountFlagBits::e32 )
8809       result += "32 | ";
8810     if ( value & SampleCountFlagBits::e64 )
8811       result += "64 | ";
8812 
8813     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8814   }
8815 
8816   using DeviceCreateFlags = Flags<DeviceCreateFlagBits>;
8817 
to_string(DeviceCreateFlags)8818   VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlags )
8819   {
8820     return "{}";
8821   }
8822 
8823   using DeviceQueueCreateFlags = Flags<DeviceQueueCreateFlagBits>;
8824 
8825   template <>
8826   struct FlagTraits<DeviceQueueCreateFlagBits>
8827   {
8828     enum : VkFlags
8829     {
8830       allFlags = VkFlags( DeviceQueueCreateFlagBits::eProtected )
8831     };
8832   };
8833 
8834   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags
operator |(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)8835     operator|( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8836   {
8837     return DeviceQueueCreateFlags( bit0 ) | bit1;
8838   }
8839 
8840   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags
operator &(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)8841     operator&( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8842   {
8843     return DeviceQueueCreateFlags( bit0 ) & bit1;
8844   }
8845 
8846   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags
operator ^(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)8847     operator^( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8848   {
8849     return DeviceQueueCreateFlags( bit0 ) ^ bit1;
8850   }
8851 
operator ~(DeviceQueueCreateFlagBits bits)8852   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator~( DeviceQueueCreateFlagBits bits )
8853     VULKAN_HPP_NOEXCEPT
8854   {
8855     return ~( DeviceQueueCreateFlags( bits ) );
8856   }
8857 
to_string(DeviceQueueCreateFlags value)8858   VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlags value )
8859   {
8860     if ( !value )
8861       return "{}";
8862 
8863     std::string result;
8864     if ( value & DeviceQueueCreateFlagBits::eProtected )
8865       result += "Protected | ";
8866 
8867     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8868   }
8869 
8870   using PipelineStageFlags = Flags<PipelineStageFlagBits>;
8871 
8872   template <>
8873   struct FlagTraits<PipelineStageFlagBits>
8874   {
8875     enum : VkFlags
8876     {
8877       allFlags =
8878         VkFlags( PipelineStageFlagBits::eTopOfPipe ) | VkFlags( PipelineStageFlagBits::eDrawIndirect ) |
8879         VkFlags( PipelineStageFlagBits::eVertexInput ) | VkFlags( PipelineStageFlagBits::eVertexShader ) |
8880         VkFlags( PipelineStageFlagBits::eTessellationControlShader ) |
8881         VkFlags( PipelineStageFlagBits::eTessellationEvaluationShader ) |
8882         VkFlags( PipelineStageFlagBits::eGeometryShader ) | VkFlags( PipelineStageFlagBits::eFragmentShader ) |
8883         VkFlags( PipelineStageFlagBits::eEarlyFragmentTests ) | VkFlags( PipelineStageFlagBits::eLateFragmentTests ) |
8884         VkFlags( PipelineStageFlagBits::eColorAttachmentOutput ) | VkFlags( PipelineStageFlagBits::eComputeShader ) |
8885         VkFlags( PipelineStageFlagBits::eTransfer ) | VkFlags( PipelineStageFlagBits::eBottomOfPipe ) |
8886         VkFlags( PipelineStageFlagBits::eHost ) | VkFlags( PipelineStageFlagBits::eAllGraphics ) |
8887         VkFlags( PipelineStageFlagBits::eAllCommands ) | VkFlags( PipelineStageFlagBits::eTransformFeedbackEXT ) |
8888         VkFlags( PipelineStageFlagBits::eConditionalRenderingEXT ) |
8889         VkFlags( PipelineStageFlagBits::eAccelerationStructureBuildKHR ) |
8890         VkFlags( PipelineStageFlagBits::eRayTracingShaderKHR ) | VkFlags( PipelineStageFlagBits::eTaskShaderNV ) |
8891         VkFlags( PipelineStageFlagBits::eMeshShaderNV ) | VkFlags( PipelineStageFlagBits::eFragmentDensityProcessEXT ) |
8892         VkFlags( PipelineStageFlagBits::eFragmentShadingRateAttachmentKHR ) |
8893         VkFlags( PipelineStageFlagBits::eCommandPreprocessNV ) | VkFlags( PipelineStageFlagBits::eNoneKHR )
8894     };
8895   };
8896 
operator |(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)8897   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator|( PipelineStageFlagBits bit0,
8898                                                                        PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8899   {
8900     return PipelineStageFlags( bit0 ) | bit1;
8901   }
8902 
operator &(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)8903   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator&( PipelineStageFlagBits bit0,
8904                                                                        PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8905   {
8906     return PipelineStageFlags( bit0 ) & bit1;
8907   }
8908 
operator ^(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)8909   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator^( PipelineStageFlagBits bit0,
8910                                                                        PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8911   {
8912     return PipelineStageFlags( bit0 ) ^ bit1;
8913   }
8914 
operator ~(PipelineStageFlagBits bits)8915   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator~( PipelineStageFlagBits bits ) VULKAN_HPP_NOEXCEPT
8916   {
8917     return ~( PipelineStageFlags( bits ) );
8918   }
8919 
to_string(PipelineStageFlags value)8920   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlags value )
8921   {
8922     if ( !value )
8923       return "{}";
8924 
8925     std::string result;
8926     if ( value & PipelineStageFlagBits::eTopOfPipe )
8927       result += "TopOfPipe | ";
8928     if ( value & PipelineStageFlagBits::eDrawIndirect )
8929       result += "DrawIndirect | ";
8930     if ( value & PipelineStageFlagBits::eVertexInput )
8931       result += "VertexInput | ";
8932     if ( value & PipelineStageFlagBits::eVertexShader )
8933       result += "VertexShader | ";
8934     if ( value & PipelineStageFlagBits::eTessellationControlShader )
8935       result += "TessellationControlShader | ";
8936     if ( value & PipelineStageFlagBits::eTessellationEvaluationShader )
8937       result += "TessellationEvaluationShader | ";
8938     if ( value & PipelineStageFlagBits::eGeometryShader )
8939       result += "GeometryShader | ";
8940     if ( value & PipelineStageFlagBits::eFragmentShader )
8941       result += "FragmentShader | ";
8942     if ( value & PipelineStageFlagBits::eEarlyFragmentTests )
8943       result += "EarlyFragmentTests | ";
8944     if ( value & PipelineStageFlagBits::eLateFragmentTests )
8945       result += "LateFragmentTests | ";
8946     if ( value & PipelineStageFlagBits::eColorAttachmentOutput )
8947       result += "ColorAttachmentOutput | ";
8948     if ( value & PipelineStageFlagBits::eComputeShader )
8949       result += "ComputeShader | ";
8950     if ( value & PipelineStageFlagBits::eTransfer )
8951       result += "Transfer | ";
8952     if ( value & PipelineStageFlagBits::eBottomOfPipe )
8953       result += "BottomOfPipe | ";
8954     if ( value & PipelineStageFlagBits::eHost )
8955       result += "Host | ";
8956     if ( value & PipelineStageFlagBits::eAllGraphics )
8957       result += "AllGraphics | ";
8958     if ( value & PipelineStageFlagBits::eAllCommands )
8959       result += "AllCommands | ";
8960     if ( value & PipelineStageFlagBits::eTransformFeedbackEXT )
8961       result += "TransformFeedbackEXT | ";
8962     if ( value & PipelineStageFlagBits::eConditionalRenderingEXT )
8963       result += "ConditionalRenderingEXT | ";
8964     if ( value & PipelineStageFlagBits::eAccelerationStructureBuildKHR )
8965       result += "AccelerationStructureBuildKHR | ";
8966     if ( value & PipelineStageFlagBits::eRayTracingShaderKHR )
8967       result += "RayTracingShaderKHR | ";
8968     if ( value & PipelineStageFlagBits::eTaskShaderNV )
8969       result += "TaskShaderNV | ";
8970     if ( value & PipelineStageFlagBits::eMeshShaderNV )
8971       result += "MeshShaderNV | ";
8972     if ( value & PipelineStageFlagBits::eFragmentDensityProcessEXT )
8973       result += "FragmentDensityProcessEXT | ";
8974     if ( value & PipelineStageFlagBits::eFragmentShadingRateAttachmentKHR )
8975       result += "FragmentShadingRateAttachmentKHR | ";
8976     if ( value & PipelineStageFlagBits::eCommandPreprocessNV )
8977       result += "CommandPreprocessNV | ";
8978 
8979     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8980   }
8981 
8982   using MemoryMapFlags = Flags<MemoryMapFlagBits>;
8983 
to_string(MemoryMapFlags)8984   VULKAN_HPP_INLINE std::string to_string( MemoryMapFlags )
8985   {
8986     return "{}";
8987   }
8988 
8989   using ImageAspectFlags = Flags<ImageAspectFlagBits>;
8990 
8991   template <>
8992   struct FlagTraits<ImageAspectFlagBits>
8993   {
8994     enum : VkFlags
8995     {
8996       allFlags = VkFlags( ImageAspectFlagBits::eColor ) | VkFlags( ImageAspectFlagBits::eDepth ) |
8997                  VkFlags( ImageAspectFlagBits::eStencil ) | VkFlags( ImageAspectFlagBits::eMetadata ) |
8998                  VkFlags( ImageAspectFlagBits::ePlane0 ) | VkFlags( ImageAspectFlagBits::ePlane1 ) |
8999                  VkFlags( ImageAspectFlagBits::ePlane2 ) | VkFlags( ImageAspectFlagBits::eMemoryPlane0EXT ) |
9000                  VkFlags( ImageAspectFlagBits::eMemoryPlane1EXT ) | VkFlags( ImageAspectFlagBits::eMemoryPlane2EXT ) |
9001                  VkFlags( ImageAspectFlagBits::eMemoryPlane3EXT )
9002     };
9003   };
9004 
operator |(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)9005   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator|( ImageAspectFlagBits bit0,
9006                                                                      ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9007   {
9008     return ImageAspectFlags( bit0 ) | bit1;
9009   }
9010 
operator &(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)9011   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator&( ImageAspectFlagBits bit0,
9012                                                                      ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9013   {
9014     return ImageAspectFlags( bit0 ) & bit1;
9015   }
9016 
operator ^(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)9017   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator^( ImageAspectFlagBits bit0,
9018                                                                      ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9019   {
9020     return ImageAspectFlags( bit0 ) ^ bit1;
9021   }
9022 
operator ~(ImageAspectFlagBits bits)9023   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator~( ImageAspectFlagBits bits ) VULKAN_HPP_NOEXCEPT
9024   {
9025     return ~( ImageAspectFlags( bits ) );
9026   }
9027 
to_string(ImageAspectFlags value)9028   VULKAN_HPP_INLINE std::string to_string( ImageAspectFlags value )
9029   {
9030     if ( !value )
9031       return "{}";
9032 
9033     std::string result;
9034     if ( value & ImageAspectFlagBits::eColor )
9035       result += "Color | ";
9036     if ( value & ImageAspectFlagBits::eDepth )
9037       result += "Depth | ";
9038     if ( value & ImageAspectFlagBits::eStencil )
9039       result += "Stencil | ";
9040     if ( value & ImageAspectFlagBits::eMetadata )
9041       result += "Metadata | ";
9042     if ( value & ImageAspectFlagBits::ePlane0 )
9043       result += "Plane0 | ";
9044     if ( value & ImageAspectFlagBits::ePlane1 )
9045       result += "Plane1 | ";
9046     if ( value & ImageAspectFlagBits::ePlane2 )
9047       result += "Plane2 | ";
9048     if ( value & ImageAspectFlagBits::eMemoryPlane0EXT )
9049       result += "MemoryPlane0EXT | ";
9050     if ( value & ImageAspectFlagBits::eMemoryPlane1EXT )
9051       result += "MemoryPlane1EXT | ";
9052     if ( value & ImageAspectFlagBits::eMemoryPlane2EXT )
9053       result += "MemoryPlane2EXT | ";
9054     if ( value & ImageAspectFlagBits::eMemoryPlane3EXT )
9055       result += "MemoryPlane3EXT | ";
9056 
9057     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9058   }
9059 
9060   using SparseImageFormatFlags = Flags<SparseImageFormatFlagBits>;
9061 
9062   template <>
9063   struct FlagTraits<SparseImageFormatFlagBits>
9064   {
9065     enum : VkFlags
9066     {
9067       allFlags = VkFlags( SparseImageFormatFlagBits::eSingleMiptail ) |
9068                  VkFlags( SparseImageFormatFlagBits::eAlignedMipSize ) |
9069                  VkFlags( SparseImageFormatFlagBits::eNonstandardBlockSize )
9070     };
9071   };
9072 
9073   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags
operator |(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)9074     operator|( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9075   {
9076     return SparseImageFormatFlags( bit0 ) | bit1;
9077   }
9078 
9079   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags
operator &(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)9080     operator&( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9081   {
9082     return SparseImageFormatFlags( bit0 ) & bit1;
9083   }
9084 
9085   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags
operator ^(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)9086     operator^( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9087   {
9088     return SparseImageFormatFlags( bit0 ) ^ bit1;
9089   }
9090 
operator ~(SparseImageFormatFlagBits bits)9091   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator~( SparseImageFormatFlagBits bits )
9092     VULKAN_HPP_NOEXCEPT
9093   {
9094     return ~( SparseImageFormatFlags( bits ) );
9095   }
9096 
to_string(SparseImageFormatFlags value)9097   VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlags value )
9098   {
9099     if ( !value )
9100       return "{}";
9101 
9102     std::string result;
9103     if ( value & SparseImageFormatFlagBits::eSingleMiptail )
9104       result += "SingleMiptail | ";
9105     if ( value & SparseImageFormatFlagBits::eAlignedMipSize )
9106       result += "AlignedMipSize | ";
9107     if ( value & SparseImageFormatFlagBits::eNonstandardBlockSize )
9108       result += "NonstandardBlockSize | ";
9109 
9110     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9111   }
9112 
9113   using SparseMemoryBindFlags = Flags<SparseMemoryBindFlagBits>;
9114 
9115   template <>
9116   struct FlagTraits<SparseMemoryBindFlagBits>
9117   {
9118     enum : VkFlags
9119     {
9120       allFlags = VkFlags( SparseMemoryBindFlagBits::eMetadata )
9121     };
9122   };
9123 
9124   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags
operator |(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)9125     operator|( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9126   {
9127     return SparseMemoryBindFlags( bit0 ) | bit1;
9128   }
9129 
9130   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags
operator &(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)9131     operator&( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9132   {
9133     return SparseMemoryBindFlags( bit0 ) & bit1;
9134   }
9135 
9136   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags
operator ^(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)9137     operator^( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9138   {
9139     return SparseMemoryBindFlags( bit0 ) ^ bit1;
9140   }
9141 
operator ~(SparseMemoryBindFlagBits bits)9142   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator~( SparseMemoryBindFlagBits bits )
9143     VULKAN_HPP_NOEXCEPT
9144   {
9145     return ~( SparseMemoryBindFlags( bits ) );
9146   }
9147 
to_string(SparseMemoryBindFlags value)9148   VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlags value )
9149   {
9150     if ( !value )
9151       return "{}";
9152 
9153     std::string result;
9154     if ( value & SparseMemoryBindFlagBits::eMetadata )
9155       result += "Metadata | ";
9156 
9157     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9158   }
9159 
9160   using FenceCreateFlags = Flags<FenceCreateFlagBits>;
9161 
9162   template <>
9163   struct FlagTraits<FenceCreateFlagBits>
9164   {
9165     enum : VkFlags
9166     {
9167       allFlags = VkFlags( FenceCreateFlagBits::eSignaled )
9168     };
9169   };
9170 
operator |(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)9171   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator|( FenceCreateFlagBits bit0,
9172                                                                      FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9173   {
9174     return FenceCreateFlags( bit0 ) | bit1;
9175   }
9176 
operator &(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)9177   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator&( FenceCreateFlagBits bit0,
9178                                                                      FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9179   {
9180     return FenceCreateFlags( bit0 ) & bit1;
9181   }
9182 
operator ^(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)9183   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator^( FenceCreateFlagBits bit0,
9184                                                                      FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9185   {
9186     return FenceCreateFlags( bit0 ) ^ bit1;
9187   }
9188 
operator ~(FenceCreateFlagBits bits)9189   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator~( FenceCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
9190   {
9191     return ~( FenceCreateFlags( bits ) );
9192   }
9193 
to_string(FenceCreateFlags value)9194   VULKAN_HPP_INLINE std::string to_string( FenceCreateFlags value )
9195   {
9196     if ( !value )
9197       return "{}";
9198 
9199     std::string result;
9200     if ( value & FenceCreateFlagBits::eSignaled )
9201       result += "Signaled | ";
9202 
9203     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9204   }
9205 
9206   using SemaphoreCreateFlags = Flags<SemaphoreCreateFlagBits>;
9207 
to_string(SemaphoreCreateFlags)9208   VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlags )
9209   {
9210     return "{}";
9211   }
9212 
9213   using EventCreateFlags = Flags<EventCreateFlagBits>;
9214 
9215   template <>
9216   struct FlagTraits<EventCreateFlagBits>
9217   {
9218     enum : VkFlags
9219     {
9220       allFlags = VkFlags( EventCreateFlagBits::eDeviceOnlyKHR )
9221     };
9222   };
9223 
operator |(EventCreateFlagBits bit0,EventCreateFlagBits bit1)9224   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator|( EventCreateFlagBits bit0,
9225                                                                      EventCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9226   {
9227     return EventCreateFlags( bit0 ) | bit1;
9228   }
9229 
operator &(EventCreateFlagBits bit0,EventCreateFlagBits bit1)9230   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator&( EventCreateFlagBits bit0,
9231                                                                      EventCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9232   {
9233     return EventCreateFlags( bit0 ) & bit1;
9234   }
9235 
operator ^(EventCreateFlagBits bit0,EventCreateFlagBits bit1)9236   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator^( EventCreateFlagBits bit0,
9237                                                                      EventCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9238   {
9239     return EventCreateFlags( bit0 ) ^ bit1;
9240   }
9241 
operator ~(EventCreateFlagBits bits)9242   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator~( EventCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
9243   {
9244     return ~( EventCreateFlags( bits ) );
9245   }
9246 
to_string(EventCreateFlags value)9247   VULKAN_HPP_INLINE std::string to_string( EventCreateFlags value )
9248   {
9249     if ( !value )
9250       return "{}";
9251 
9252     std::string result;
9253     if ( value & EventCreateFlagBits::eDeviceOnlyKHR )
9254       result += "DeviceOnlyKHR | ";
9255 
9256     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9257   }
9258 
9259   using QueryPipelineStatisticFlags = Flags<QueryPipelineStatisticFlagBits>;
9260 
9261   template <>
9262   struct FlagTraits<QueryPipelineStatisticFlagBits>
9263   {
9264     enum : VkFlags
9265     {
9266       allFlags = VkFlags( QueryPipelineStatisticFlagBits::eInputAssemblyVertices ) |
9267                  VkFlags( QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives ) |
9268                  VkFlags( QueryPipelineStatisticFlagBits::eVertexShaderInvocations ) |
9269                  VkFlags( QueryPipelineStatisticFlagBits::eGeometryShaderInvocations ) |
9270                  VkFlags( QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives ) |
9271                  VkFlags( QueryPipelineStatisticFlagBits::eClippingInvocations ) |
9272                  VkFlags( QueryPipelineStatisticFlagBits::eClippingPrimitives ) |
9273                  VkFlags( QueryPipelineStatisticFlagBits::eFragmentShaderInvocations ) |
9274                  VkFlags( QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches ) |
9275                  VkFlags( QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations ) |
9276                  VkFlags( QueryPipelineStatisticFlagBits::eComputeShaderInvocations )
9277     };
9278   };
9279 
9280   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags
operator |(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)9281     operator|( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9282   {
9283     return QueryPipelineStatisticFlags( bit0 ) | bit1;
9284   }
9285 
9286   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags
operator &(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)9287     operator&( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9288   {
9289     return QueryPipelineStatisticFlags( bit0 ) & bit1;
9290   }
9291 
9292   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags
operator ^(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)9293     operator^( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9294   {
9295     return QueryPipelineStatisticFlags( bit0 ) ^ bit1;
9296   }
9297 
operator ~(QueryPipelineStatisticFlagBits bits)9298   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator~( QueryPipelineStatisticFlagBits bits )
9299     VULKAN_HPP_NOEXCEPT
9300   {
9301     return ~( QueryPipelineStatisticFlags( bits ) );
9302   }
9303 
to_string(QueryPipelineStatisticFlags value)9304   VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlags value )
9305   {
9306     if ( !value )
9307       return "{}";
9308 
9309     std::string result;
9310     if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyVertices )
9311       result += "InputAssemblyVertices | ";
9312     if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives )
9313       result += "InputAssemblyPrimitives | ";
9314     if ( value & QueryPipelineStatisticFlagBits::eVertexShaderInvocations )
9315       result += "VertexShaderInvocations | ";
9316     if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderInvocations )
9317       result += "GeometryShaderInvocations | ";
9318     if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives )
9319       result += "GeometryShaderPrimitives | ";
9320     if ( value & QueryPipelineStatisticFlagBits::eClippingInvocations )
9321       result += "ClippingInvocations | ";
9322     if ( value & QueryPipelineStatisticFlagBits::eClippingPrimitives )
9323       result += "ClippingPrimitives | ";
9324     if ( value & QueryPipelineStatisticFlagBits::eFragmentShaderInvocations )
9325       result += "FragmentShaderInvocations | ";
9326     if ( value & QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches )
9327       result += "TessellationControlShaderPatches | ";
9328     if ( value & QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations )
9329       result += "TessellationEvaluationShaderInvocations | ";
9330     if ( value & QueryPipelineStatisticFlagBits::eComputeShaderInvocations )
9331       result += "ComputeShaderInvocations | ";
9332 
9333     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9334   }
9335 
9336   using QueryPoolCreateFlags = Flags<QueryPoolCreateFlagBits>;
9337 
to_string(QueryPoolCreateFlags)9338   VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlags )
9339   {
9340     return "{}";
9341   }
9342 
9343   using QueryResultFlags = Flags<QueryResultFlagBits>;
9344 
9345   template <>
9346   struct FlagTraits<QueryResultFlagBits>
9347   {
9348     enum : VkFlags
9349     {
9350       allFlags = VkFlags( QueryResultFlagBits::e64 ) | VkFlags( QueryResultFlagBits::eWait ) |
9351                  VkFlags( QueryResultFlagBits::eWithAvailability ) | VkFlags( QueryResultFlagBits::ePartial )
9352 #if defined( VK_ENABLE_BETA_EXTENSIONS )
9353                  | VkFlags( QueryResultFlagBits::eWithStatusKHR )
9354 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
9355     };
9356   };
9357 
operator |(QueryResultFlagBits bit0,QueryResultFlagBits bit1)9358   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator|( QueryResultFlagBits bit0,
9359                                                                      QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9360   {
9361     return QueryResultFlags( bit0 ) | bit1;
9362   }
9363 
operator &(QueryResultFlagBits bit0,QueryResultFlagBits bit1)9364   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator&( QueryResultFlagBits bit0,
9365                                                                      QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9366   {
9367     return QueryResultFlags( bit0 ) & bit1;
9368   }
9369 
operator ^(QueryResultFlagBits bit0,QueryResultFlagBits bit1)9370   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator^( QueryResultFlagBits bit0,
9371                                                                      QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9372   {
9373     return QueryResultFlags( bit0 ) ^ bit1;
9374   }
9375 
operator ~(QueryResultFlagBits bits)9376   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator~( QueryResultFlagBits bits ) VULKAN_HPP_NOEXCEPT
9377   {
9378     return ~( QueryResultFlags( bits ) );
9379   }
9380 
to_string(QueryResultFlags value)9381   VULKAN_HPP_INLINE std::string to_string( QueryResultFlags value )
9382   {
9383     if ( !value )
9384       return "{}";
9385 
9386     std::string result;
9387     if ( value & QueryResultFlagBits::e64 )
9388       result += "64 | ";
9389     if ( value & QueryResultFlagBits::eWait )
9390       result += "Wait | ";
9391     if ( value & QueryResultFlagBits::eWithAvailability )
9392       result += "WithAvailability | ";
9393     if ( value & QueryResultFlagBits::ePartial )
9394       result += "Partial | ";
9395 #if defined( VK_ENABLE_BETA_EXTENSIONS )
9396     if ( value & QueryResultFlagBits::eWithStatusKHR )
9397       result += "WithStatusKHR | ";
9398 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
9399 
9400     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9401   }
9402 
9403   using BufferCreateFlags = Flags<BufferCreateFlagBits>;
9404 
9405   template <>
9406   struct FlagTraits<BufferCreateFlagBits>
9407   {
9408     enum : VkFlags
9409     {
9410       allFlags = VkFlags( BufferCreateFlagBits::eSparseBinding ) | VkFlags( BufferCreateFlagBits::eSparseResidency ) |
9411                  VkFlags( BufferCreateFlagBits::eSparseAliased ) | VkFlags( BufferCreateFlagBits::eProtected ) |
9412                  VkFlags( BufferCreateFlagBits::eDeviceAddressCaptureReplay )
9413     };
9414   };
9415 
operator |(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)9416   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator|( BufferCreateFlagBits bit0,
9417                                                                       BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9418   {
9419     return BufferCreateFlags( bit0 ) | bit1;
9420   }
9421 
operator &(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)9422   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator&( BufferCreateFlagBits bit0,
9423                                                                       BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9424   {
9425     return BufferCreateFlags( bit0 ) & bit1;
9426   }
9427 
operator ^(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)9428   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator^( BufferCreateFlagBits bit0,
9429                                                                       BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9430   {
9431     return BufferCreateFlags( bit0 ) ^ bit1;
9432   }
9433 
operator ~(BufferCreateFlagBits bits)9434   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator~( BufferCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
9435   {
9436     return ~( BufferCreateFlags( bits ) );
9437   }
9438 
to_string(BufferCreateFlags value)9439   VULKAN_HPP_INLINE std::string to_string( BufferCreateFlags value )
9440   {
9441     if ( !value )
9442       return "{}";
9443 
9444     std::string result;
9445     if ( value & BufferCreateFlagBits::eSparseBinding )
9446       result += "SparseBinding | ";
9447     if ( value & BufferCreateFlagBits::eSparseResidency )
9448       result += "SparseResidency | ";
9449     if ( value & BufferCreateFlagBits::eSparseAliased )
9450       result += "SparseAliased | ";
9451     if ( value & BufferCreateFlagBits::eProtected )
9452       result += "Protected | ";
9453     if ( value & BufferCreateFlagBits::eDeviceAddressCaptureReplay )
9454       result += "DeviceAddressCaptureReplay | ";
9455 
9456     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9457   }
9458 
9459   using BufferUsageFlags = Flags<BufferUsageFlagBits>;
9460 
9461   template <>
9462   struct FlagTraits<BufferUsageFlagBits>
9463   {
9464     enum : VkFlags
9465     {
9466       allFlags =
9467         VkFlags( BufferUsageFlagBits::eTransferSrc ) | VkFlags( BufferUsageFlagBits::eTransferDst ) |
9468         VkFlags( BufferUsageFlagBits::eUniformTexelBuffer ) | VkFlags( BufferUsageFlagBits::eStorageTexelBuffer ) |
9469         VkFlags( BufferUsageFlagBits::eUniformBuffer ) | VkFlags( BufferUsageFlagBits::eStorageBuffer ) |
9470         VkFlags( BufferUsageFlagBits::eIndexBuffer ) | VkFlags( BufferUsageFlagBits::eVertexBuffer ) |
9471         VkFlags( BufferUsageFlagBits::eIndirectBuffer ) | VkFlags( BufferUsageFlagBits::eShaderDeviceAddress )
9472 #if defined( VK_ENABLE_BETA_EXTENSIONS )
9473         | VkFlags( BufferUsageFlagBits::eVideoDecodeSrcKHR ) | VkFlags( BufferUsageFlagBits::eVideoDecodeDstKHR )
9474 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
9475         | VkFlags( BufferUsageFlagBits::eTransformFeedbackBufferEXT ) |
9476         VkFlags( BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT ) |
9477         VkFlags( BufferUsageFlagBits::eConditionalRenderingEXT ) |
9478         VkFlags( BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR ) |
9479         VkFlags( BufferUsageFlagBits::eAccelerationStructureStorageKHR ) |
9480         VkFlags( BufferUsageFlagBits::eShaderBindingTableKHR )
9481 #if defined( VK_ENABLE_BETA_EXTENSIONS )
9482         | VkFlags( BufferUsageFlagBits::eVideoEncodeDstKHR ) | VkFlags( BufferUsageFlagBits::eVideoEncodeSrcKHR )
9483 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
9484     };
9485   };
9486 
operator |(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)9487   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator|( BufferUsageFlagBits bit0,
9488                                                                      BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9489   {
9490     return BufferUsageFlags( bit0 ) | bit1;
9491   }
9492 
operator &(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)9493   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator&( BufferUsageFlagBits bit0,
9494                                                                      BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9495   {
9496     return BufferUsageFlags( bit0 ) & bit1;
9497   }
9498 
operator ^(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)9499   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator^( BufferUsageFlagBits bit0,
9500                                                                      BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9501   {
9502     return BufferUsageFlags( bit0 ) ^ bit1;
9503   }
9504 
operator ~(BufferUsageFlagBits bits)9505   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator~( BufferUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT
9506   {
9507     return ~( BufferUsageFlags( bits ) );
9508   }
9509 
to_string(BufferUsageFlags value)9510   VULKAN_HPP_INLINE std::string to_string( BufferUsageFlags value )
9511   {
9512     if ( !value )
9513       return "{}";
9514 
9515     std::string result;
9516     if ( value & BufferUsageFlagBits::eTransferSrc )
9517       result += "TransferSrc | ";
9518     if ( value & BufferUsageFlagBits::eTransferDst )
9519       result += "TransferDst | ";
9520     if ( value & BufferUsageFlagBits::eUniformTexelBuffer )
9521       result += "UniformTexelBuffer | ";
9522     if ( value & BufferUsageFlagBits::eStorageTexelBuffer )
9523       result += "StorageTexelBuffer | ";
9524     if ( value & BufferUsageFlagBits::eUniformBuffer )
9525       result += "UniformBuffer | ";
9526     if ( value & BufferUsageFlagBits::eStorageBuffer )
9527       result += "StorageBuffer | ";
9528     if ( value & BufferUsageFlagBits::eIndexBuffer )
9529       result += "IndexBuffer | ";
9530     if ( value & BufferUsageFlagBits::eVertexBuffer )
9531       result += "VertexBuffer | ";
9532     if ( value & BufferUsageFlagBits::eIndirectBuffer )
9533       result += "IndirectBuffer | ";
9534     if ( value & BufferUsageFlagBits::eShaderDeviceAddress )
9535       result += "ShaderDeviceAddress | ";
9536 #if defined( VK_ENABLE_BETA_EXTENSIONS )
9537     if ( value & BufferUsageFlagBits::eVideoDecodeSrcKHR )
9538       result += "VideoDecodeSrcKHR | ";
9539     if ( value & BufferUsageFlagBits::eVideoDecodeDstKHR )
9540       result += "VideoDecodeDstKHR | ";
9541 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
9542     if ( value & BufferUsageFlagBits::eTransformFeedbackBufferEXT )
9543       result += "TransformFeedbackBufferEXT | ";
9544     if ( value & BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT )
9545       result += "TransformFeedbackCounterBufferEXT | ";
9546     if ( value & BufferUsageFlagBits::eConditionalRenderingEXT )
9547       result += "ConditionalRenderingEXT | ";
9548     if ( value & BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR )
9549       result += "AccelerationStructureBuildInputReadOnlyKHR | ";
9550     if ( value & BufferUsageFlagBits::eAccelerationStructureStorageKHR )
9551       result += "AccelerationStructureStorageKHR | ";
9552     if ( value & BufferUsageFlagBits::eShaderBindingTableKHR )
9553       result += "ShaderBindingTableKHR | ";
9554 #if defined( VK_ENABLE_BETA_EXTENSIONS )
9555     if ( value & BufferUsageFlagBits::eVideoEncodeDstKHR )
9556       result += "VideoEncodeDstKHR | ";
9557     if ( value & BufferUsageFlagBits::eVideoEncodeSrcKHR )
9558       result += "VideoEncodeSrcKHR | ";
9559 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
9560 
9561     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9562   }
9563 
9564   using BufferViewCreateFlags = Flags<BufferViewCreateFlagBits>;
9565 
to_string(BufferViewCreateFlags)9566   VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlags )
9567   {
9568     return "{}";
9569   }
9570 
9571   using ImageViewCreateFlags = Flags<ImageViewCreateFlagBits>;
9572 
9573   template <>
9574   struct FlagTraits<ImageViewCreateFlagBits>
9575   {
9576     enum : VkFlags
9577     {
9578       allFlags = VkFlags( ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT ) |
9579                  VkFlags( ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT )
9580     };
9581   };
9582 
9583   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags
operator |(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)9584     operator|( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9585   {
9586     return ImageViewCreateFlags( bit0 ) | bit1;
9587   }
9588 
9589   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags
operator &(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)9590     operator&( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9591   {
9592     return ImageViewCreateFlags( bit0 ) & bit1;
9593   }
9594 
9595   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags
operator ^(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)9596     operator^( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9597   {
9598     return ImageViewCreateFlags( bit0 ) ^ bit1;
9599   }
9600 
operator ~(ImageViewCreateFlagBits bits)9601   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator~( ImageViewCreateFlagBits bits )
9602     VULKAN_HPP_NOEXCEPT
9603   {
9604     return ~( ImageViewCreateFlags( bits ) );
9605   }
9606 
to_string(ImageViewCreateFlags value)9607   VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlags value )
9608   {
9609     if ( !value )
9610       return "{}";
9611 
9612     std::string result;
9613     if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT )
9614       result += "FragmentDensityMapDynamicEXT | ";
9615     if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT )
9616       result += "FragmentDensityMapDeferredEXT | ";
9617 
9618     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9619   }
9620 
9621   using ShaderModuleCreateFlags = Flags<ShaderModuleCreateFlagBits>;
9622 
to_string(ShaderModuleCreateFlags)9623   VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlags )
9624   {
9625     return "{}";
9626   }
9627 
9628   using PipelineCacheCreateFlags = Flags<PipelineCacheCreateFlagBits>;
9629 
9630   template <>
9631   struct FlagTraits<PipelineCacheCreateFlagBits>
9632   {
9633     enum : VkFlags
9634     {
9635       allFlags = VkFlags( PipelineCacheCreateFlagBits::eExternallySynchronizedEXT )
9636     };
9637   };
9638 
9639   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags
operator |(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)9640     operator|( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9641   {
9642     return PipelineCacheCreateFlags( bit0 ) | bit1;
9643   }
9644 
9645   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags
operator &(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)9646     operator&( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9647   {
9648     return PipelineCacheCreateFlags( bit0 ) & bit1;
9649   }
9650 
9651   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags
operator ^(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)9652     operator^( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9653   {
9654     return PipelineCacheCreateFlags( bit0 ) ^ bit1;
9655   }
9656 
operator ~(PipelineCacheCreateFlagBits bits)9657   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator~( PipelineCacheCreateFlagBits bits )
9658     VULKAN_HPP_NOEXCEPT
9659   {
9660     return ~( PipelineCacheCreateFlags( bits ) );
9661   }
9662 
to_string(PipelineCacheCreateFlags value)9663   VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlags value )
9664   {
9665     if ( !value )
9666       return "{}";
9667 
9668     std::string result;
9669     if ( value & PipelineCacheCreateFlagBits::eExternallySynchronizedEXT )
9670       result += "ExternallySynchronizedEXT | ";
9671 
9672     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9673   }
9674 
9675   using ColorComponentFlags = Flags<ColorComponentFlagBits>;
9676 
9677   template <>
9678   struct FlagTraits<ColorComponentFlagBits>
9679   {
9680     enum : VkFlags
9681     {
9682       allFlags = VkFlags( ColorComponentFlagBits::eR ) | VkFlags( ColorComponentFlagBits::eG ) |
9683                  VkFlags( ColorComponentFlagBits::eB ) | VkFlags( ColorComponentFlagBits::eA )
9684     };
9685   };
9686 
9687   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags
operator |(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)9688     operator|( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9689   {
9690     return ColorComponentFlags( bit0 ) | bit1;
9691   }
9692 
9693   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags
operator &(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)9694     operator&( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9695   {
9696     return ColorComponentFlags( bit0 ) & bit1;
9697   }
9698 
9699   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags
operator ^(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)9700     operator^( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9701   {
9702     return ColorComponentFlags( bit0 ) ^ bit1;
9703   }
9704 
operator ~(ColorComponentFlagBits bits)9705   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator~( ColorComponentFlagBits bits )
9706     VULKAN_HPP_NOEXCEPT
9707   {
9708     return ~( ColorComponentFlags( bits ) );
9709   }
9710 
to_string(ColorComponentFlags value)9711   VULKAN_HPP_INLINE std::string to_string( ColorComponentFlags value )
9712   {
9713     if ( !value )
9714       return "{}";
9715 
9716     std::string result;
9717     if ( value & ColorComponentFlagBits::eR )
9718       result += "R | ";
9719     if ( value & ColorComponentFlagBits::eG )
9720       result += "G | ";
9721     if ( value & ColorComponentFlagBits::eB )
9722       result += "B | ";
9723     if ( value & ColorComponentFlagBits::eA )
9724       result += "A | ";
9725 
9726     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9727   }
9728 
9729   using CullModeFlags = Flags<CullModeFlagBits>;
9730 
9731   template <>
9732   struct FlagTraits<CullModeFlagBits>
9733   {
9734     enum : VkFlags
9735     {
9736       allFlags = VkFlags( CullModeFlagBits::eNone ) | VkFlags( CullModeFlagBits::eFront ) |
9737                  VkFlags( CullModeFlagBits::eBack ) | VkFlags( CullModeFlagBits::eFrontAndBack )
9738     };
9739   };
9740 
operator |(CullModeFlagBits bit0,CullModeFlagBits bit1)9741   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator|( CullModeFlagBits bit0,
9742                                                                   CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9743   {
9744     return CullModeFlags( bit0 ) | bit1;
9745   }
9746 
operator &(CullModeFlagBits bit0,CullModeFlagBits bit1)9747   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator&( CullModeFlagBits bit0,
9748                                                                   CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9749   {
9750     return CullModeFlags( bit0 ) & bit1;
9751   }
9752 
operator ^(CullModeFlagBits bit0,CullModeFlagBits bit1)9753   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator^( CullModeFlagBits bit0,
9754                                                                   CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9755   {
9756     return CullModeFlags( bit0 ) ^ bit1;
9757   }
9758 
operator ~(CullModeFlagBits bits)9759   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator~( CullModeFlagBits bits ) VULKAN_HPP_NOEXCEPT
9760   {
9761     return ~( CullModeFlags( bits ) );
9762   }
9763 
to_string(CullModeFlags value)9764   VULKAN_HPP_INLINE std::string to_string( CullModeFlags value )
9765   {
9766     if ( !value )
9767       return "{}";
9768 
9769     std::string result;
9770     if ( value & CullModeFlagBits::eFront )
9771       result += "Front | ";
9772     if ( value & CullModeFlagBits::eBack )
9773       result += "Back | ";
9774 
9775     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9776   }
9777 
9778   using PipelineColorBlendStateCreateFlags = Flags<PipelineColorBlendStateCreateFlagBits>;
9779 
to_string(PipelineColorBlendStateCreateFlags)9780   VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlags )
9781   {
9782     return "{}";
9783   }
9784 
9785   using PipelineCreateFlags = Flags<PipelineCreateFlagBits>;
9786 
9787   template <>
9788   struct FlagTraits<PipelineCreateFlagBits>
9789   {
9790     enum : VkFlags
9791     {
9792       allFlags =
9793         VkFlags( PipelineCreateFlagBits::eDisableOptimization ) | VkFlags( PipelineCreateFlagBits::eAllowDerivatives ) |
9794         VkFlags( PipelineCreateFlagBits::eDerivative ) | VkFlags( PipelineCreateFlagBits::eViewIndexFromDeviceIndex ) |
9795         VkFlags( PipelineCreateFlagBits::eDispatchBase ) |
9796         VkFlags( PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR ) |
9797         VkFlags( PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR ) |
9798         VkFlags( PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR ) |
9799         VkFlags( PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR ) |
9800         VkFlags( PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR ) |
9801         VkFlags( PipelineCreateFlagBits::eRayTracingSkipAabbsKHR ) |
9802         VkFlags( PipelineCreateFlagBits::eRayTracingShaderGroupHandleCaptureReplayKHR ) |
9803         VkFlags( PipelineCreateFlagBits::eDeferCompileNV ) | VkFlags( PipelineCreateFlagBits::eCaptureStatisticsKHR ) |
9804         VkFlags( PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR ) |
9805         VkFlags( PipelineCreateFlagBits::eIndirectBindableNV ) | VkFlags( PipelineCreateFlagBits::eLibraryKHR ) |
9806         VkFlags( PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT ) |
9807         VkFlags( PipelineCreateFlagBits::eEarlyReturnOnFailureEXT ) |
9808         VkFlags( PipelineCreateFlagBits::eRayTracingAllowMotionNV )
9809     };
9810   };
9811 
9812   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags
operator |(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)9813     operator|( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9814   {
9815     return PipelineCreateFlags( bit0 ) | bit1;
9816   }
9817 
9818   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags
operator &(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)9819     operator&( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9820   {
9821     return PipelineCreateFlags( bit0 ) & bit1;
9822   }
9823 
9824   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags
operator ^(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)9825     operator^( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9826   {
9827     return PipelineCreateFlags( bit0 ) ^ bit1;
9828   }
9829 
operator ~(PipelineCreateFlagBits bits)9830   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator~( PipelineCreateFlagBits bits )
9831     VULKAN_HPP_NOEXCEPT
9832   {
9833     return ~( PipelineCreateFlags( bits ) );
9834   }
9835 
to_string(PipelineCreateFlags value)9836   VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlags value )
9837   {
9838     if ( !value )
9839       return "{}";
9840 
9841     std::string result;
9842     if ( value & PipelineCreateFlagBits::eDisableOptimization )
9843       result += "DisableOptimization | ";
9844     if ( value & PipelineCreateFlagBits::eAllowDerivatives )
9845       result += "AllowDerivatives | ";
9846     if ( value & PipelineCreateFlagBits::eDerivative )
9847       result += "Derivative | ";
9848     if ( value & PipelineCreateFlagBits::eViewIndexFromDeviceIndex )
9849       result += "ViewIndexFromDeviceIndex | ";
9850     if ( value & PipelineCreateFlagBits::eDispatchBase )
9851       result += "DispatchBase | ";
9852     if ( value & PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR )
9853       result += "RayTracingNoNullAnyHitShadersKHR | ";
9854     if ( value & PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR )
9855       result += "RayTracingNoNullClosestHitShadersKHR | ";
9856     if ( value & PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR )
9857       result += "RayTracingNoNullMissShadersKHR | ";
9858     if ( value & PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR )
9859       result += "RayTracingNoNullIntersectionShadersKHR | ";
9860     if ( value & PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR )
9861       result += "RayTracingSkipTrianglesKHR | ";
9862     if ( value & PipelineCreateFlagBits::eRayTracingSkipAabbsKHR )
9863       result += "RayTracingSkipAabbsKHR | ";
9864     if ( value & PipelineCreateFlagBits::eRayTracingShaderGroupHandleCaptureReplayKHR )
9865       result += "RayTracingShaderGroupHandleCaptureReplayKHR | ";
9866     if ( value & PipelineCreateFlagBits::eDeferCompileNV )
9867       result += "DeferCompileNV | ";
9868     if ( value & PipelineCreateFlagBits::eCaptureStatisticsKHR )
9869       result += "CaptureStatisticsKHR | ";
9870     if ( value & PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR )
9871       result += "CaptureInternalRepresentationsKHR | ";
9872     if ( value & PipelineCreateFlagBits::eIndirectBindableNV )
9873       result += "IndirectBindableNV | ";
9874     if ( value & PipelineCreateFlagBits::eLibraryKHR )
9875       result += "LibraryKHR | ";
9876     if ( value & PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT )
9877       result += "FailOnPipelineCompileRequiredEXT | ";
9878     if ( value & PipelineCreateFlagBits::eEarlyReturnOnFailureEXT )
9879       result += "EarlyReturnOnFailureEXT | ";
9880     if ( value & PipelineCreateFlagBits::eRayTracingAllowMotionNV )
9881       result += "RayTracingAllowMotionNV | ";
9882 
9883     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9884   }
9885 
9886   using PipelineDepthStencilStateCreateFlags = Flags<PipelineDepthStencilStateCreateFlagBits>;
9887 
to_string(PipelineDepthStencilStateCreateFlags)9888   VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlags )
9889   {
9890     return "{}";
9891   }
9892 
9893   using PipelineDynamicStateCreateFlags = Flags<PipelineDynamicStateCreateFlagBits>;
9894 
to_string(PipelineDynamicStateCreateFlags)9895   VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlags )
9896   {
9897     return "{}";
9898   }
9899 
9900   using PipelineInputAssemblyStateCreateFlags = Flags<PipelineInputAssemblyStateCreateFlagBits>;
9901 
to_string(PipelineInputAssemblyStateCreateFlags)9902   VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlags )
9903   {
9904     return "{}";
9905   }
9906 
9907   using PipelineLayoutCreateFlags = Flags<PipelineLayoutCreateFlagBits>;
9908 
to_string(PipelineLayoutCreateFlags)9909   VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlags )
9910   {
9911     return "{}";
9912   }
9913 
9914   using PipelineMultisampleStateCreateFlags = Flags<PipelineMultisampleStateCreateFlagBits>;
9915 
to_string(PipelineMultisampleStateCreateFlags)9916   VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlags )
9917   {
9918     return "{}";
9919   }
9920 
9921   using PipelineRasterizationStateCreateFlags = Flags<PipelineRasterizationStateCreateFlagBits>;
9922 
to_string(PipelineRasterizationStateCreateFlags)9923   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlags )
9924   {
9925     return "{}";
9926   }
9927 
9928   using PipelineShaderStageCreateFlags = Flags<PipelineShaderStageCreateFlagBits>;
9929 
9930   template <>
9931   struct FlagTraits<PipelineShaderStageCreateFlagBits>
9932   {
9933     enum : VkFlags
9934     {
9935       allFlags = VkFlags( PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT ) |
9936                  VkFlags( PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT )
9937     };
9938   };
9939 
9940   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags
operator |(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)9941     operator|( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9942   {
9943     return PipelineShaderStageCreateFlags( bit0 ) | bit1;
9944   }
9945 
9946   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags
operator &(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)9947     operator&( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9948   {
9949     return PipelineShaderStageCreateFlags( bit0 ) & bit1;
9950   }
9951 
9952   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags
operator ^(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)9953     operator^( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9954   {
9955     return PipelineShaderStageCreateFlags( bit0 ) ^ bit1;
9956   }
9957 
9958   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags
operator ~(PipelineShaderStageCreateFlagBits bits)9959     operator~( PipelineShaderStageCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
9960   {
9961     return ~( PipelineShaderStageCreateFlags( bits ) );
9962   }
9963 
to_string(PipelineShaderStageCreateFlags value)9964   VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlags value )
9965   {
9966     if ( !value )
9967       return "{}";
9968 
9969     std::string result;
9970     if ( value & PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT )
9971       result += "AllowVaryingSubgroupSizeEXT | ";
9972     if ( value & PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT )
9973       result += "RequireFullSubgroupsEXT | ";
9974 
9975     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9976   }
9977 
9978   using PipelineTessellationStateCreateFlags = Flags<PipelineTessellationStateCreateFlagBits>;
9979 
to_string(PipelineTessellationStateCreateFlags)9980   VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlags )
9981   {
9982     return "{}";
9983   }
9984 
9985   using PipelineVertexInputStateCreateFlags = Flags<PipelineVertexInputStateCreateFlagBits>;
9986 
to_string(PipelineVertexInputStateCreateFlags)9987   VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlags )
9988   {
9989     return "{}";
9990   }
9991 
9992   using PipelineViewportStateCreateFlags = Flags<PipelineViewportStateCreateFlagBits>;
9993 
to_string(PipelineViewportStateCreateFlags)9994   VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlags )
9995   {
9996     return "{}";
9997   }
9998 
9999   using ShaderStageFlags = Flags<ShaderStageFlagBits>;
10000 
10001   template <>
10002   struct FlagTraits<ShaderStageFlagBits>
10003   {
10004     enum : VkFlags
10005     {
10006       allFlags = VkFlags( ShaderStageFlagBits::eVertex ) | VkFlags( ShaderStageFlagBits::eTessellationControl ) |
10007                  VkFlags( ShaderStageFlagBits::eTessellationEvaluation ) | VkFlags( ShaderStageFlagBits::eGeometry ) |
10008                  VkFlags( ShaderStageFlagBits::eFragment ) | VkFlags( ShaderStageFlagBits::eCompute ) |
10009                  VkFlags( ShaderStageFlagBits::eAllGraphics ) | VkFlags( ShaderStageFlagBits::eAll ) |
10010                  VkFlags( ShaderStageFlagBits::eRaygenKHR ) | VkFlags( ShaderStageFlagBits::eAnyHitKHR ) |
10011                  VkFlags( ShaderStageFlagBits::eClosestHitKHR ) | VkFlags( ShaderStageFlagBits::eMissKHR ) |
10012                  VkFlags( ShaderStageFlagBits::eIntersectionKHR ) | VkFlags( ShaderStageFlagBits::eCallableKHR ) |
10013                  VkFlags( ShaderStageFlagBits::eTaskNV ) | VkFlags( ShaderStageFlagBits::eMeshNV ) |
10014                  VkFlags( ShaderStageFlagBits::eSubpassShadingHUAWEI )
10015     };
10016   };
10017 
operator |(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)10018   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator|( ShaderStageFlagBits bit0,
10019                                                                      ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10020   {
10021     return ShaderStageFlags( bit0 ) | bit1;
10022   }
10023 
operator &(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)10024   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator&( ShaderStageFlagBits bit0,
10025                                                                      ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10026   {
10027     return ShaderStageFlags( bit0 ) & bit1;
10028   }
10029 
operator ^(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)10030   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator^( ShaderStageFlagBits bit0,
10031                                                                      ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10032   {
10033     return ShaderStageFlags( bit0 ) ^ bit1;
10034   }
10035 
operator ~(ShaderStageFlagBits bits)10036   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator~( ShaderStageFlagBits bits ) VULKAN_HPP_NOEXCEPT
10037   {
10038     return ~( ShaderStageFlags( bits ) );
10039   }
10040 
to_string(ShaderStageFlags value)10041   VULKAN_HPP_INLINE std::string to_string( ShaderStageFlags value )
10042   {
10043     if ( !value )
10044       return "{}";
10045 
10046     std::string result;
10047     if ( value & ShaderStageFlagBits::eVertex )
10048       result += "Vertex | ";
10049     if ( value & ShaderStageFlagBits::eTessellationControl )
10050       result += "TessellationControl | ";
10051     if ( value & ShaderStageFlagBits::eTessellationEvaluation )
10052       result += "TessellationEvaluation | ";
10053     if ( value & ShaderStageFlagBits::eGeometry )
10054       result += "Geometry | ";
10055     if ( value & ShaderStageFlagBits::eFragment )
10056       result += "Fragment | ";
10057     if ( value & ShaderStageFlagBits::eCompute )
10058       result += "Compute | ";
10059     if ( value & ShaderStageFlagBits::eRaygenKHR )
10060       result += "RaygenKHR | ";
10061     if ( value & ShaderStageFlagBits::eAnyHitKHR )
10062       result += "AnyHitKHR | ";
10063     if ( value & ShaderStageFlagBits::eClosestHitKHR )
10064       result += "ClosestHitKHR | ";
10065     if ( value & ShaderStageFlagBits::eMissKHR )
10066       result += "MissKHR | ";
10067     if ( value & ShaderStageFlagBits::eIntersectionKHR )
10068       result += "IntersectionKHR | ";
10069     if ( value & ShaderStageFlagBits::eCallableKHR )
10070       result += "CallableKHR | ";
10071     if ( value & ShaderStageFlagBits::eTaskNV )
10072       result += "TaskNV | ";
10073     if ( value & ShaderStageFlagBits::eMeshNV )
10074       result += "MeshNV | ";
10075     if ( value & ShaderStageFlagBits::eSubpassShadingHUAWEI )
10076       result += "SubpassShadingHUAWEI | ";
10077 
10078     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10079   }
10080 
10081   using SamplerCreateFlags = Flags<SamplerCreateFlagBits>;
10082 
10083   template <>
10084   struct FlagTraits<SamplerCreateFlagBits>
10085   {
10086     enum : VkFlags
10087     {
10088       allFlags = VkFlags( SamplerCreateFlagBits::eSubsampledEXT ) |
10089                  VkFlags( SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT )
10090     };
10091   };
10092 
operator |(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)10093   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator|( SamplerCreateFlagBits bit0,
10094                                                                        SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10095   {
10096     return SamplerCreateFlags( bit0 ) | bit1;
10097   }
10098 
operator &(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)10099   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator&( SamplerCreateFlagBits bit0,
10100                                                                        SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10101   {
10102     return SamplerCreateFlags( bit0 ) & bit1;
10103   }
10104 
operator ^(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)10105   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator^( SamplerCreateFlagBits bit0,
10106                                                                        SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10107   {
10108     return SamplerCreateFlags( bit0 ) ^ bit1;
10109   }
10110 
operator ~(SamplerCreateFlagBits bits)10111   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator~( SamplerCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
10112   {
10113     return ~( SamplerCreateFlags( bits ) );
10114   }
10115 
to_string(SamplerCreateFlags value)10116   VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlags value )
10117   {
10118     if ( !value )
10119       return "{}";
10120 
10121     std::string result;
10122     if ( value & SamplerCreateFlagBits::eSubsampledEXT )
10123       result += "SubsampledEXT | ";
10124     if ( value & SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT )
10125       result += "SubsampledCoarseReconstructionEXT | ";
10126 
10127     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10128   }
10129 
10130   using DescriptorPoolCreateFlags = Flags<DescriptorPoolCreateFlagBits>;
10131 
10132   template <>
10133   struct FlagTraits<DescriptorPoolCreateFlagBits>
10134   {
10135     enum : VkFlags
10136     {
10137       allFlags = VkFlags( DescriptorPoolCreateFlagBits::eFreeDescriptorSet ) |
10138                  VkFlags( DescriptorPoolCreateFlagBits::eUpdateAfterBind ) |
10139                  VkFlags( DescriptorPoolCreateFlagBits::eHostOnlyVALVE )
10140     };
10141   };
10142 
10143   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags
operator |(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)10144     operator|( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10145   {
10146     return DescriptorPoolCreateFlags( bit0 ) | bit1;
10147   }
10148 
10149   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags
operator &(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)10150     operator&( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10151   {
10152     return DescriptorPoolCreateFlags( bit0 ) & bit1;
10153   }
10154 
10155   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags
operator ^(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)10156     operator^( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10157   {
10158     return DescriptorPoolCreateFlags( bit0 ) ^ bit1;
10159   }
10160 
operator ~(DescriptorPoolCreateFlagBits bits)10161   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator~( DescriptorPoolCreateFlagBits bits )
10162     VULKAN_HPP_NOEXCEPT
10163   {
10164     return ~( DescriptorPoolCreateFlags( bits ) );
10165   }
10166 
to_string(DescriptorPoolCreateFlags value)10167   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlags value )
10168   {
10169     if ( !value )
10170       return "{}";
10171 
10172     std::string result;
10173     if ( value & DescriptorPoolCreateFlagBits::eFreeDescriptorSet )
10174       result += "FreeDescriptorSet | ";
10175     if ( value & DescriptorPoolCreateFlagBits::eUpdateAfterBind )
10176       result += "UpdateAfterBind | ";
10177     if ( value & DescriptorPoolCreateFlagBits::eHostOnlyVALVE )
10178       result += "HostOnlyVALVE | ";
10179 
10180     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10181   }
10182 
10183   using DescriptorPoolResetFlags = Flags<DescriptorPoolResetFlagBits>;
10184 
to_string(DescriptorPoolResetFlags)10185   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlags )
10186   {
10187     return "{}";
10188   }
10189 
10190   using DescriptorSetLayoutCreateFlags = Flags<DescriptorSetLayoutCreateFlagBits>;
10191 
10192   template <>
10193   struct FlagTraits<DescriptorSetLayoutCreateFlagBits>
10194   {
10195     enum : VkFlags
10196     {
10197       allFlags = VkFlags( DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool ) |
10198                  VkFlags( DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR ) |
10199                  VkFlags( DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolVALVE )
10200     };
10201   };
10202 
10203   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags
operator |(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)10204     operator|( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10205   {
10206     return DescriptorSetLayoutCreateFlags( bit0 ) | bit1;
10207   }
10208 
10209   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags
operator &(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)10210     operator&( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10211   {
10212     return DescriptorSetLayoutCreateFlags( bit0 ) & bit1;
10213   }
10214 
10215   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags
operator ^(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)10216     operator^( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10217   {
10218     return DescriptorSetLayoutCreateFlags( bit0 ) ^ bit1;
10219   }
10220 
10221   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags
operator ~(DescriptorSetLayoutCreateFlagBits bits)10222     operator~( DescriptorSetLayoutCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
10223   {
10224     return ~( DescriptorSetLayoutCreateFlags( bits ) );
10225   }
10226 
to_string(DescriptorSetLayoutCreateFlags value)10227   VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlags value )
10228   {
10229     if ( !value )
10230       return "{}";
10231 
10232     std::string result;
10233     if ( value & DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool )
10234       result += "UpdateAfterBindPool | ";
10235     if ( value & DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR )
10236       result += "PushDescriptorKHR | ";
10237     if ( value & DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolVALVE )
10238       result += "HostOnlyPoolVALVE | ";
10239 
10240     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10241   }
10242 
10243   using AccessFlags = Flags<AccessFlagBits>;
10244 
10245   template <>
10246   struct FlagTraits<AccessFlagBits>
10247   {
10248     enum : VkFlags
10249     {
10250       allFlags = VkFlags( AccessFlagBits::eIndirectCommandRead ) | VkFlags( AccessFlagBits::eIndexRead ) |
10251                  VkFlags( AccessFlagBits::eVertexAttributeRead ) | VkFlags( AccessFlagBits::eUniformRead ) |
10252                  VkFlags( AccessFlagBits::eInputAttachmentRead ) | VkFlags( AccessFlagBits::eShaderRead ) |
10253                  VkFlags( AccessFlagBits::eShaderWrite ) | VkFlags( AccessFlagBits::eColorAttachmentRead ) |
10254                  VkFlags( AccessFlagBits::eColorAttachmentWrite ) |
10255                  VkFlags( AccessFlagBits::eDepthStencilAttachmentRead ) |
10256                  VkFlags( AccessFlagBits::eDepthStencilAttachmentWrite ) | VkFlags( AccessFlagBits::eTransferRead ) |
10257                  VkFlags( AccessFlagBits::eTransferWrite ) | VkFlags( AccessFlagBits::eHostRead ) |
10258                  VkFlags( AccessFlagBits::eHostWrite ) | VkFlags( AccessFlagBits::eMemoryRead ) |
10259                  VkFlags( AccessFlagBits::eMemoryWrite ) | VkFlags( AccessFlagBits::eTransformFeedbackWriteEXT ) |
10260                  VkFlags( AccessFlagBits::eTransformFeedbackCounterReadEXT ) |
10261                  VkFlags( AccessFlagBits::eTransformFeedbackCounterWriteEXT ) |
10262                  VkFlags( AccessFlagBits::eConditionalRenderingReadEXT ) |
10263                  VkFlags( AccessFlagBits::eColorAttachmentReadNoncoherentEXT ) |
10264                  VkFlags( AccessFlagBits::eAccelerationStructureReadKHR ) |
10265                  VkFlags( AccessFlagBits::eAccelerationStructureWriteKHR ) |
10266                  VkFlags( AccessFlagBits::eFragmentDensityMapReadEXT ) |
10267                  VkFlags( AccessFlagBits::eFragmentShadingRateAttachmentReadKHR ) |
10268                  VkFlags( AccessFlagBits::eCommandPreprocessReadNV ) |
10269                  VkFlags( AccessFlagBits::eCommandPreprocessWriteNV ) | VkFlags( AccessFlagBits::eNoneKHR )
10270     };
10271   };
10272 
operator |(AccessFlagBits bit0,AccessFlagBits bit1)10273   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator|( AccessFlagBits bit0,
10274                                                                 AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10275   {
10276     return AccessFlags( bit0 ) | bit1;
10277   }
10278 
operator &(AccessFlagBits bit0,AccessFlagBits bit1)10279   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator&( AccessFlagBits bit0,
10280                                                                 AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10281   {
10282     return AccessFlags( bit0 ) & bit1;
10283   }
10284 
operator ^(AccessFlagBits bit0,AccessFlagBits bit1)10285   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator^( AccessFlagBits bit0,
10286                                                                 AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10287   {
10288     return AccessFlags( bit0 ) ^ bit1;
10289   }
10290 
operator ~(AccessFlagBits bits)10291   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator~( AccessFlagBits bits ) VULKAN_HPP_NOEXCEPT
10292   {
10293     return ~( AccessFlags( bits ) );
10294   }
10295 
to_string(AccessFlags value)10296   VULKAN_HPP_INLINE std::string to_string( AccessFlags value )
10297   {
10298     if ( !value )
10299       return "{}";
10300 
10301     std::string result;
10302     if ( value & AccessFlagBits::eIndirectCommandRead )
10303       result += "IndirectCommandRead | ";
10304     if ( value & AccessFlagBits::eIndexRead )
10305       result += "IndexRead | ";
10306     if ( value & AccessFlagBits::eVertexAttributeRead )
10307       result += "VertexAttributeRead | ";
10308     if ( value & AccessFlagBits::eUniformRead )
10309       result += "UniformRead | ";
10310     if ( value & AccessFlagBits::eInputAttachmentRead )
10311       result += "InputAttachmentRead | ";
10312     if ( value & AccessFlagBits::eShaderRead )
10313       result += "ShaderRead | ";
10314     if ( value & AccessFlagBits::eShaderWrite )
10315       result += "ShaderWrite | ";
10316     if ( value & AccessFlagBits::eColorAttachmentRead )
10317       result += "ColorAttachmentRead | ";
10318     if ( value & AccessFlagBits::eColorAttachmentWrite )
10319       result += "ColorAttachmentWrite | ";
10320     if ( value & AccessFlagBits::eDepthStencilAttachmentRead )
10321       result += "DepthStencilAttachmentRead | ";
10322     if ( value & AccessFlagBits::eDepthStencilAttachmentWrite )
10323       result += "DepthStencilAttachmentWrite | ";
10324     if ( value & AccessFlagBits::eTransferRead )
10325       result += "TransferRead | ";
10326     if ( value & AccessFlagBits::eTransferWrite )
10327       result += "TransferWrite | ";
10328     if ( value & AccessFlagBits::eHostRead )
10329       result += "HostRead | ";
10330     if ( value & AccessFlagBits::eHostWrite )
10331       result += "HostWrite | ";
10332     if ( value & AccessFlagBits::eMemoryRead )
10333       result += "MemoryRead | ";
10334     if ( value & AccessFlagBits::eMemoryWrite )
10335       result += "MemoryWrite | ";
10336     if ( value & AccessFlagBits::eTransformFeedbackWriteEXT )
10337       result += "TransformFeedbackWriteEXT | ";
10338     if ( value & AccessFlagBits::eTransformFeedbackCounterReadEXT )
10339       result += "TransformFeedbackCounterReadEXT | ";
10340     if ( value & AccessFlagBits::eTransformFeedbackCounterWriteEXT )
10341       result += "TransformFeedbackCounterWriteEXT | ";
10342     if ( value & AccessFlagBits::eConditionalRenderingReadEXT )
10343       result += "ConditionalRenderingReadEXT | ";
10344     if ( value & AccessFlagBits::eColorAttachmentReadNoncoherentEXT )
10345       result += "ColorAttachmentReadNoncoherentEXT | ";
10346     if ( value & AccessFlagBits::eAccelerationStructureReadKHR )
10347       result += "AccelerationStructureReadKHR | ";
10348     if ( value & AccessFlagBits::eAccelerationStructureWriteKHR )
10349       result += "AccelerationStructureWriteKHR | ";
10350     if ( value & AccessFlagBits::eFragmentDensityMapReadEXT )
10351       result += "FragmentDensityMapReadEXT | ";
10352     if ( value & AccessFlagBits::eFragmentShadingRateAttachmentReadKHR )
10353       result += "FragmentShadingRateAttachmentReadKHR | ";
10354     if ( value & AccessFlagBits::eCommandPreprocessReadNV )
10355       result += "CommandPreprocessReadNV | ";
10356     if ( value & AccessFlagBits::eCommandPreprocessWriteNV )
10357       result += "CommandPreprocessWriteNV | ";
10358 
10359     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10360   }
10361 
10362   using AttachmentDescriptionFlags = Flags<AttachmentDescriptionFlagBits>;
10363 
10364   template <>
10365   struct FlagTraits<AttachmentDescriptionFlagBits>
10366   {
10367     enum : VkFlags
10368     {
10369       allFlags = VkFlags( AttachmentDescriptionFlagBits::eMayAlias )
10370     };
10371   };
10372 
10373   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags
operator |(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)10374     operator|( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10375   {
10376     return AttachmentDescriptionFlags( bit0 ) | bit1;
10377   }
10378 
10379   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags
operator &(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)10380     operator&( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10381   {
10382     return AttachmentDescriptionFlags( bit0 ) & bit1;
10383   }
10384 
10385   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags
operator ^(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)10386     operator^( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10387   {
10388     return AttachmentDescriptionFlags( bit0 ) ^ bit1;
10389   }
10390 
operator ~(AttachmentDescriptionFlagBits bits)10391   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator~( AttachmentDescriptionFlagBits bits )
10392     VULKAN_HPP_NOEXCEPT
10393   {
10394     return ~( AttachmentDescriptionFlags( bits ) );
10395   }
10396 
to_string(AttachmentDescriptionFlags value)10397   VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlags value )
10398   {
10399     if ( !value )
10400       return "{}";
10401 
10402     std::string result;
10403     if ( value & AttachmentDescriptionFlagBits::eMayAlias )
10404       result += "MayAlias | ";
10405 
10406     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10407   }
10408 
10409   using DependencyFlags = Flags<DependencyFlagBits>;
10410 
10411   template <>
10412   struct FlagTraits<DependencyFlagBits>
10413   {
10414     enum : VkFlags
10415     {
10416       allFlags = VkFlags( DependencyFlagBits::eByRegion ) | VkFlags( DependencyFlagBits::eDeviceGroup ) |
10417                  VkFlags( DependencyFlagBits::eViewLocal )
10418     };
10419   };
10420 
operator |(DependencyFlagBits bit0,DependencyFlagBits bit1)10421   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator|( DependencyFlagBits bit0,
10422                                                                     DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10423   {
10424     return DependencyFlags( bit0 ) | bit1;
10425   }
10426 
operator &(DependencyFlagBits bit0,DependencyFlagBits bit1)10427   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator&( DependencyFlagBits bit0,
10428                                                                     DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10429   {
10430     return DependencyFlags( bit0 ) & bit1;
10431   }
10432 
operator ^(DependencyFlagBits bit0,DependencyFlagBits bit1)10433   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator^( DependencyFlagBits bit0,
10434                                                                     DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10435   {
10436     return DependencyFlags( bit0 ) ^ bit1;
10437   }
10438 
operator ~(DependencyFlagBits bits)10439   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator~( DependencyFlagBits bits ) VULKAN_HPP_NOEXCEPT
10440   {
10441     return ~( DependencyFlags( bits ) );
10442   }
10443 
to_string(DependencyFlags value)10444   VULKAN_HPP_INLINE std::string to_string( DependencyFlags value )
10445   {
10446     if ( !value )
10447       return "{}";
10448 
10449     std::string result;
10450     if ( value & DependencyFlagBits::eByRegion )
10451       result += "ByRegion | ";
10452     if ( value & DependencyFlagBits::eDeviceGroup )
10453       result += "DeviceGroup | ";
10454     if ( value & DependencyFlagBits::eViewLocal )
10455       result += "ViewLocal | ";
10456 
10457     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10458   }
10459 
10460   using FramebufferCreateFlags = Flags<FramebufferCreateFlagBits>;
10461 
10462   template <>
10463   struct FlagTraits<FramebufferCreateFlagBits>
10464   {
10465     enum : VkFlags
10466     {
10467       allFlags = VkFlags( FramebufferCreateFlagBits::eImageless )
10468     };
10469   };
10470 
10471   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags
operator |(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)10472     operator|( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10473   {
10474     return FramebufferCreateFlags( bit0 ) | bit1;
10475   }
10476 
10477   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags
operator &(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)10478     operator&( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10479   {
10480     return FramebufferCreateFlags( bit0 ) & bit1;
10481   }
10482 
10483   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags
operator ^(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)10484     operator^( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10485   {
10486     return FramebufferCreateFlags( bit0 ) ^ bit1;
10487   }
10488 
operator ~(FramebufferCreateFlagBits bits)10489   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator~( FramebufferCreateFlagBits bits )
10490     VULKAN_HPP_NOEXCEPT
10491   {
10492     return ~( FramebufferCreateFlags( bits ) );
10493   }
10494 
to_string(FramebufferCreateFlags value)10495   VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlags value )
10496   {
10497     if ( !value )
10498       return "{}";
10499 
10500     std::string result;
10501     if ( value & FramebufferCreateFlagBits::eImageless )
10502       result += "Imageless | ";
10503 
10504     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10505   }
10506 
10507   using RenderPassCreateFlags = Flags<RenderPassCreateFlagBits>;
10508 
10509   template <>
10510   struct FlagTraits<RenderPassCreateFlagBits>
10511   {
10512     enum : VkFlags
10513     {
10514       allFlags = VkFlags( RenderPassCreateFlagBits::eTransformQCOM )
10515     };
10516   };
10517 
10518   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags
operator |(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)10519     operator|( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10520   {
10521     return RenderPassCreateFlags( bit0 ) | bit1;
10522   }
10523 
10524   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags
operator &(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)10525     operator&( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10526   {
10527     return RenderPassCreateFlags( bit0 ) & bit1;
10528   }
10529 
10530   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags
operator ^(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)10531     operator^( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10532   {
10533     return RenderPassCreateFlags( bit0 ) ^ bit1;
10534   }
10535 
operator ~(RenderPassCreateFlagBits bits)10536   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator~( RenderPassCreateFlagBits bits )
10537     VULKAN_HPP_NOEXCEPT
10538   {
10539     return ~( RenderPassCreateFlags( bits ) );
10540   }
10541 
to_string(RenderPassCreateFlags value)10542   VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlags value )
10543   {
10544     if ( !value )
10545       return "{}";
10546 
10547     std::string result;
10548     if ( value & RenderPassCreateFlagBits::eTransformQCOM )
10549       result += "TransformQCOM | ";
10550 
10551     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10552   }
10553 
10554   using SubpassDescriptionFlags = Flags<SubpassDescriptionFlagBits>;
10555 
10556   template <>
10557   struct FlagTraits<SubpassDescriptionFlagBits>
10558   {
10559     enum : VkFlags
10560     {
10561       allFlags = VkFlags( SubpassDescriptionFlagBits::ePerViewAttributesNVX ) |
10562                  VkFlags( SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX ) |
10563                  VkFlags( SubpassDescriptionFlagBits::eFragmentRegionQCOM ) |
10564                  VkFlags( SubpassDescriptionFlagBits::eShaderResolveQCOM )
10565     };
10566   };
10567 
10568   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags
operator |(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)10569     operator|( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10570   {
10571     return SubpassDescriptionFlags( bit0 ) | bit1;
10572   }
10573 
10574   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags
operator &(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)10575     operator&( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10576   {
10577     return SubpassDescriptionFlags( bit0 ) & bit1;
10578   }
10579 
10580   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags
operator ^(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)10581     operator^( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10582   {
10583     return SubpassDescriptionFlags( bit0 ) ^ bit1;
10584   }
10585 
operator ~(SubpassDescriptionFlagBits bits)10586   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator~( SubpassDescriptionFlagBits bits )
10587     VULKAN_HPP_NOEXCEPT
10588   {
10589     return ~( SubpassDescriptionFlags( bits ) );
10590   }
10591 
to_string(SubpassDescriptionFlags value)10592   VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlags value )
10593   {
10594     if ( !value )
10595       return "{}";
10596 
10597     std::string result;
10598     if ( value & SubpassDescriptionFlagBits::ePerViewAttributesNVX )
10599       result += "PerViewAttributesNVX | ";
10600     if ( value & SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX )
10601       result += "PerViewPositionXOnlyNVX | ";
10602     if ( value & SubpassDescriptionFlagBits::eFragmentRegionQCOM )
10603       result += "FragmentRegionQCOM | ";
10604     if ( value & SubpassDescriptionFlagBits::eShaderResolveQCOM )
10605       result += "ShaderResolveQCOM | ";
10606 
10607     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10608   }
10609 
10610   using CommandPoolCreateFlags = Flags<CommandPoolCreateFlagBits>;
10611 
10612   template <>
10613   struct FlagTraits<CommandPoolCreateFlagBits>
10614   {
10615     enum : VkFlags
10616     {
10617       allFlags = VkFlags( CommandPoolCreateFlagBits::eTransient ) |
10618                  VkFlags( CommandPoolCreateFlagBits::eResetCommandBuffer ) |
10619                  VkFlags( CommandPoolCreateFlagBits::eProtected )
10620     };
10621   };
10622 
10623   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags
operator |(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)10624     operator|( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10625   {
10626     return CommandPoolCreateFlags( bit0 ) | bit1;
10627   }
10628 
10629   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags
operator &(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)10630     operator&( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10631   {
10632     return CommandPoolCreateFlags( bit0 ) & bit1;
10633   }
10634 
10635   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags
operator ^(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)10636     operator^( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10637   {
10638     return CommandPoolCreateFlags( bit0 ) ^ bit1;
10639   }
10640 
operator ~(CommandPoolCreateFlagBits bits)10641   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator~( CommandPoolCreateFlagBits bits )
10642     VULKAN_HPP_NOEXCEPT
10643   {
10644     return ~( CommandPoolCreateFlags( bits ) );
10645   }
10646 
to_string(CommandPoolCreateFlags value)10647   VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlags value )
10648   {
10649     if ( !value )
10650       return "{}";
10651 
10652     std::string result;
10653     if ( value & CommandPoolCreateFlagBits::eTransient )
10654       result += "Transient | ";
10655     if ( value & CommandPoolCreateFlagBits::eResetCommandBuffer )
10656       result += "ResetCommandBuffer | ";
10657     if ( value & CommandPoolCreateFlagBits::eProtected )
10658       result += "Protected | ";
10659 
10660     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10661   }
10662 
10663   using CommandPoolResetFlags = Flags<CommandPoolResetFlagBits>;
10664 
10665   template <>
10666   struct FlagTraits<CommandPoolResetFlagBits>
10667   {
10668     enum : VkFlags
10669     {
10670       allFlags = VkFlags( CommandPoolResetFlagBits::eReleaseResources )
10671     };
10672   };
10673 
10674   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags
operator |(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)10675     operator|( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10676   {
10677     return CommandPoolResetFlags( bit0 ) | bit1;
10678   }
10679 
10680   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags
operator &(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)10681     operator&( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10682   {
10683     return CommandPoolResetFlags( bit0 ) & bit1;
10684   }
10685 
10686   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags
operator ^(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)10687     operator^( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10688   {
10689     return CommandPoolResetFlags( bit0 ) ^ bit1;
10690   }
10691 
operator ~(CommandPoolResetFlagBits bits)10692   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator~( CommandPoolResetFlagBits bits )
10693     VULKAN_HPP_NOEXCEPT
10694   {
10695     return ~( CommandPoolResetFlags( bits ) );
10696   }
10697 
to_string(CommandPoolResetFlags value)10698   VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlags value )
10699   {
10700     if ( !value )
10701       return "{}";
10702 
10703     std::string result;
10704     if ( value & CommandPoolResetFlagBits::eReleaseResources )
10705       result += "ReleaseResources | ";
10706 
10707     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10708   }
10709 
10710   using CommandBufferResetFlags = Flags<CommandBufferResetFlagBits>;
10711 
10712   template <>
10713   struct FlagTraits<CommandBufferResetFlagBits>
10714   {
10715     enum : VkFlags
10716     {
10717       allFlags = VkFlags( CommandBufferResetFlagBits::eReleaseResources )
10718     };
10719   };
10720 
10721   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags
operator |(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)10722     operator|( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10723   {
10724     return CommandBufferResetFlags( bit0 ) | bit1;
10725   }
10726 
10727   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags
operator &(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)10728     operator&( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10729   {
10730     return CommandBufferResetFlags( bit0 ) & bit1;
10731   }
10732 
10733   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags
operator ^(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)10734     operator^( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10735   {
10736     return CommandBufferResetFlags( bit0 ) ^ bit1;
10737   }
10738 
operator ~(CommandBufferResetFlagBits bits)10739   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator~( CommandBufferResetFlagBits bits )
10740     VULKAN_HPP_NOEXCEPT
10741   {
10742     return ~( CommandBufferResetFlags( bits ) );
10743   }
10744 
to_string(CommandBufferResetFlags value)10745   VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlags value )
10746   {
10747     if ( !value )
10748       return "{}";
10749 
10750     std::string result;
10751     if ( value & CommandBufferResetFlagBits::eReleaseResources )
10752       result += "ReleaseResources | ";
10753 
10754     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10755   }
10756 
10757   using CommandBufferUsageFlags = Flags<CommandBufferUsageFlagBits>;
10758 
10759   template <>
10760   struct FlagTraits<CommandBufferUsageFlagBits>
10761   {
10762     enum : VkFlags
10763     {
10764       allFlags = VkFlags( CommandBufferUsageFlagBits::eOneTimeSubmit ) |
10765                  VkFlags( CommandBufferUsageFlagBits::eRenderPassContinue ) |
10766                  VkFlags( CommandBufferUsageFlagBits::eSimultaneousUse )
10767     };
10768   };
10769 
10770   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags
operator |(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)10771     operator|( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10772   {
10773     return CommandBufferUsageFlags( bit0 ) | bit1;
10774   }
10775 
10776   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags
operator &(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)10777     operator&( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10778   {
10779     return CommandBufferUsageFlags( bit0 ) & bit1;
10780   }
10781 
10782   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags
operator ^(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)10783     operator^( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10784   {
10785     return CommandBufferUsageFlags( bit0 ) ^ bit1;
10786   }
10787 
operator ~(CommandBufferUsageFlagBits bits)10788   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator~( CommandBufferUsageFlagBits bits )
10789     VULKAN_HPP_NOEXCEPT
10790   {
10791     return ~( CommandBufferUsageFlags( bits ) );
10792   }
10793 
to_string(CommandBufferUsageFlags value)10794   VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlags value )
10795   {
10796     if ( !value )
10797       return "{}";
10798 
10799     std::string result;
10800     if ( value & CommandBufferUsageFlagBits::eOneTimeSubmit )
10801       result += "OneTimeSubmit | ";
10802     if ( value & CommandBufferUsageFlagBits::eRenderPassContinue )
10803       result += "RenderPassContinue | ";
10804     if ( value & CommandBufferUsageFlagBits::eSimultaneousUse )
10805       result += "SimultaneousUse | ";
10806 
10807     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10808   }
10809 
10810   using QueryControlFlags = Flags<QueryControlFlagBits>;
10811 
10812   template <>
10813   struct FlagTraits<QueryControlFlagBits>
10814   {
10815     enum : VkFlags
10816     {
10817       allFlags = VkFlags( QueryControlFlagBits::ePrecise )
10818     };
10819   };
10820 
operator |(QueryControlFlagBits bit0,QueryControlFlagBits bit1)10821   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator|( QueryControlFlagBits bit0,
10822                                                                       QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10823   {
10824     return QueryControlFlags( bit0 ) | bit1;
10825   }
10826 
operator &(QueryControlFlagBits bit0,QueryControlFlagBits bit1)10827   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator&( QueryControlFlagBits bit0,
10828                                                                       QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10829   {
10830     return QueryControlFlags( bit0 ) & bit1;
10831   }
10832 
operator ^(QueryControlFlagBits bit0,QueryControlFlagBits bit1)10833   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator^( QueryControlFlagBits bit0,
10834                                                                       QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10835   {
10836     return QueryControlFlags( bit0 ) ^ bit1;
10837   }
10838 
operator ~(QueryControlFlagBits bits)10839   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator~( QueryControlFlagBits bits ) VULKAN_HPP_NOEXCEPT
10840   {
10841     return ~( QueryControlFlags( bits ) );
10842   }
10843 
to_string(QueryControlFlags value)10844   VULKAN_HPP_INLINE std::string to_string( QueryControlFlags value )
10845   {
10846     if ( !value )
10847       return "{}";
10848 
10849     std::string result;
10850     if ( value & QueryControlFlagBits::ePrecise )
10851       result += "Precise | ";
10852 
10853     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10854   }
10855 
10856   using StencilFaceFlags = Flags<StencilFaceFlagBits>;
10857 
10858   template <>
10859   struct FlagTraits<StencilFaceFlagBits>
10860   {
10861     enum : VkFlags
10862     {
10863       allFlags = VkFlags( StencilFaceFlagBits::eFront ) | VkFlags( StencilFaceFlagBits::eBack ) |
10864                  VkFlags( StencilFaceFlagBits::eFrontAndBack )
10865     };
10866   };
10867 
operator |(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)10868   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator|( StencilFaceFlagBits bit0,
10869                                                                      StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10870   {
10871     return StencilFaceFlags( bit0 ) | bit1;
10872   }
10873 
operator &(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)10874   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator&( StencilFaceFlagBits bit0,
10875                                                                      StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10876   {
10877     return StencilFaceFlags( bit0 ) & bit1;
10878   }
10879 
operator ^(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)10880   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator^( StencilFaceFlagBits bit0,
10881                                                                      StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10882   {
10883     return StencilFaceFlags( bit0 ) ^ bit1;
10884   }
10885 
operator ~(StencilFaceFlagBits bits)10886   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator~( StencilFaceFlagBits bits ) VULKAN_HPP_NOEXCEPT
10887   {
10888     return ~( StencilFaceFlags( bits ) );
10889   }
10890 
to_string(StencilFaceFlags value)10891   VULKAN_HPP_INLINE std::string to_string( StencilFaceFlags value )
10892   {
10893     if ( !value )
10894       return "{}";
10895 
10896     std::string result;
10897     if ( value & StencilFaceFlagBits::eFront )
10898       result += "Front | ";
10899     if ( value & StencilFaceFlagBits::eBack )
10900       result += "Back | ";
10901 
10902     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10903   }
10904 
10905   //=== VK_VERSION_1_1 ===
10906 
10907   using SubgroupFeatureFlags = Flags<SubgroupFeatureFlagBits>;
10908 
10909   template <>
10910   struct FlagTraits<SubgroupFeatureFlagBits>
10911   {
10912     enum : VkFlags
10913     {
10914       allFlags = VkFlags( SubgroupFeatureFlagBits::eBasic ) | VkFlags( SubgroupFeatureFlagBits::eVote ) |
10915                  VkFlags( SubgroupFeatureFlagBits::eArithmetic ) | VkFlags( SubgroupFeatureFlagBits::eBallot ) |
10916                  VkFlags( SubgroupFeatureFlagBits::eShuffle ) | VkFlags( SubgroupFeatureFlagBits::eShuffleRelative ) |
10917                  VkFlags( SubgroupFeatureFlagBits::eClustered ) | VkFlags( SubgroupFeatureFlagBits::eQuad ) |
10918                  VkFlags( SubgroupFeatureFlagBits::ePartitionedNV )
10919     };
10920   };
10921 
10922   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags
operator |(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)10923     operator|( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10924   {
10925     return SubgroupFeatureFlags( bit0 ) | bit1;
10926   }
10927 
10928   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags
operator &(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)10929     operator&( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10930   {
10931     return SubgroupFeatureFlags( bit0 ) & bit1;
10932   }
10933 
10934   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags
operator ^(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)10935     operator^( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10936   {
10937     return SubgroupFeatureFlags( bit0 ) ^ bit1;
10938   }
10939 
operator ~(SubgroupFeatureFlagBits bits)10940   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator~( SubgroupFeatureFlagBits bits )
10941     VULKAN_HPP_NOEXCEPT
10942   {
10943     return ~( SubgroupFeatureFlags( bits ) );
10944   }
10945 
to_string(SubgroupFeatureFlags value)10946   VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlags value )
10947   {
10948     if ( !value )
10949       return "{}";
10950 
10951     std::string result;
10952     if ( value & SubgroupFeatureFlagBits::eBasic )
10953       result += "Basic | ";
10954     if ( value & SubgroupFeatureFlagBits::eVote )
10955       result += "Vote | ";
10956     if ( value & SubgroupFeatureFlagBits::eArithmetic )
10957       result += "Arithmetic | ";
10958     if ( value & SubgroupFeatureFlagBits::eBallot )
10959       result += "Ballot | ";
10960     if ( value & SubgroupFeatureFlagBits::eShuffle )
10961       result += "Shuffle | ";
10962     if ( value & SubgroupFeatureFlagBits::eShuffleRelative )
10963       result += "ShuffleRelative | ";
10964     if ( value & SubgroupFeatureFlagBits::eClustered )
10965       result += "Clustered | ";
10966     if ( value & SubgroupFeatureFlagBits::eQuad )
10967       result += "Quad | ";
10968     if ( value & SubgroupFeatureFlagBits::ePartitionedNV )
10969       result += "PartitionedNV | ";
10970 
10971     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10972   }
10973 
10974   using PeerMemoryFeatureFlags = Flags<PeerMemoryFeatureFlagBits>;
10975 
10976   template <>
10977   struct FlagTraits<PeerMemoryFeatureFlagBits>
10978   {
10979     enum : VkFlags
10980     {
10981       allFlags = VkFlags( PeerMemoryFeatureFlagBits::eCopySrc ) | VkFlags( PeerMemoryFeatureFlagBits::eCopyDst ) |
10982                  VkFlags( PeerMemoryFeatureFlagBits::eGenericSrc ) | VkFlags( PeerMemoryFeatureFlagBits::eGenericDst )
10983     };
10984   };
10985 
10986   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags
operator |(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)10987     operator|( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10988   {
10989     return PeerMemoryFeatureFlags( bit0 ) | bit1;
10990   }
10991 
10992   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags
operator &(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)10993     operator&( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10994   {
10995     return PeerMemoryFeatureFlags( bit0 ) & bit1;
10996   }
10997 
10998   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags
operator ^(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)10999     operator^( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11000   {
11001     return PeerMemoryFeatureFlags( bit0 ) ^ bit1;
11002   }
11003 
operator ~(PeerMemoryFeatureFlagBits bits)11004   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator~( PeerMemoryFeatureFlagBits bits )
11005     VULKAN_HPP_NOEXCEPT
11006   {
11007     return ~( PeerMemoryFeatureFlags( bits ) );
11008   }
11009 
11010   using PeerMemoryFeatureFlagsKHR = PeerMemoryFeatureFlags;
11011 
to_string(PeerMemoryFeatureFlags value)11012   VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlags value )
11013   {
11014     if ( !value )
11015       return "{}";
11016 
11017     std::string result;
11018     if ( value & PeerMemoryFeatureFlagBits::eCopySrc )
11019       result += "CopySrc | ";
11020     if ( value & PeerMemoryFeatureFlagBits::eCopyDst )
11021       result += "CopyDst | ";
11022     if ( value & PeerMemoryFeatureFlagBits::eGenericSrc )
11023       result += "GenericSrc | ";
11024     if ( value & PeerMemoryFeatureFlagBits::eGenericDst )
11025       result += "GenericDst | ";
11026 
11027     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11028   }
11029 
11030   using MemoryAllocateFlags = Flags<MemoryAllocateFlagBits>;
11031 
11032   template <>
11033   struct FlagTraits<MemoryAllocateFlagBits>
11034   {
11035     enum : VkFlags
11036     {
11037       allFlags = VkFlags( MemoryAllocateFlagBits::eDeviceMask ) | VkFlags( MemoryAllocateFlagBits::eDeviceAddress ) |
11038                  VkFlags( MemoryAllocateFlagBits::eDeviceAddressCaptureReplay )
11039     };
11040   };
11041 
11042   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags
operator |(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)11043     operator|( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11044   {
11045     return MemoryAllocateFlags( bit0 ) | bit1;
11046   }
11047 
11048   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags
operator &(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)11049     operator&( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11050   {
11051     return MemoryAllocateFlags( bit0 ) & bit1;
11052   }
11053 
11054   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags
operator ^(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)11055     operator^( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11056   {
11057     return MemoryAllocateFlags( bit0 ) ^ bit1;
11058   }
11059 
operator ~(MemoryAllocateFlagBits bits)11060   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator~( MemoryAllocateFlagBits bits )
11061     VULKAN_HPP_NOEXCEPT
11062   {
11063     return ~( MemoryAllocateFlags( bits ) );
11064   }
11065 
11066   using MemoryAllocateFlagsKHR = MemoryAllocateFlags;
11067 
to_string(MemoryAllocateFlags value)11068   VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlags value )
11069   {
11070     if ( !value )
11071       return "{}";
11072 
11073     std::string result;
11074     if ( value & MemoryAllocateFlagBits::eDeviceMask )
11075       result += "DeviceMask | ";
11076     if ( value & MemoryAllocateFlagBits::eDeviceAddress )
11077       result += "DeviceAddress | ";
11078     if ( value & MemoryAllocateFlagBits::eDeviceAddressCaptureReplay )
11079       result += "DeviceAddressCaptureReplay | ";
11080 
11081     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11082   }
11083 
11084   using CommandPoolTrimFlags = Flags<CommandPoolTrimFlagBits>;
11085 
11086   using CommandPoolTrimFlagsKHR = CommandPoolTrimFlags;
11087 
to_string(CommandPoolTrimFlags)11088   VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlags )
11089   {
11090     return "{}";
11091   }
11092 
11093   using DescriptorUpdateTemplateCreateFlags = Flags<DescriptorUpdateTemplateCreateFlagBits>;
11094 
11095   using DescriptorUpdateTemplateCreateFlagsKHR = DescriptorUpdateTemplateCreateFlags;
11096 
to_string(DescriptorUpdateTemplateCreateFlags)11097   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlags )
11098   {
11099     return "{}";
11100   }
11101 
11102   using ExternalMemoryHandleTypeFlags = Flags<ExternalMemoryHandleTypeFlagBits>;
11103 
11104   template <>
11105   struct FlagTraits<ExternalMemoryHandleTypeFlagBits>
11106   {
11107     enum : VkFlags
11108     {
11109       allFlags = VkFlags( ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) |
11110                  VkFlags( ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 ) |
11111                  VkFlags( ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt ) |
11112                  VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D11Texture ) |
11113                  VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt ) |
11114                  VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D12Heap ) |
11115                  VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D12Resource ) |
11116                  VkFlags( ExternalMemoryHandleTypeFlagBits::eDmaBufEXT )
11117 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
11118                  | VkFlags( ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID )
11119 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
11120                  | VkFlags( ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT ) |
11121                  VkFlags( ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT )
11122 #if defined( VK_USE_PLATFORM_FUCHSIA )
11123                  | VkFlags( ExternalMemoryHandleTypeFlagBits::eZirconVmoFUCHSIA )
11124 #endif /*VK_USE_PLATFORM_FUCHSIA*/
11125                  | VkFlags( ExternalMemoryHandleTypeFlagBits::eRdmaAddressNV )
11126     };
11127   };
11128 
11129   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags
operator |(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)11130     operator|( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11131   {
11132     return ExternalMemoryHandleTypeFlags( bit0 ) | bit1;
11133   }
11134 
11135   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags
operator &(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)11136     operator&( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11137   {
11138     return ExternalMemoryHandleTypeFlags( bit0 ) & bit1;
11139   }
11140 
11141   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags
operator ^(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)11142     operator^( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11143   {
11144     return ExternalMemoryHandleTypeFlags( bit0 ) ^ bit1;
11145   }
11146 
11147   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags
operator ~(ExternalMemoryHandleTypeFlagBits bits)11148     operator~( ExternalMemoryHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT
11149   {
11150     return ~( ExternalMemoryHandleTypeFlags( bits ) );
11151   }
11152 
11153   using ExternalMemoryHandleTypeFlagsKHR = ExternalMemoryHandleTypeFlags;
11154 
to_string(ExternalMemoryHandleTypeFlags value)11155   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlags value )
11156   {
11157     if ( !value )
11158       return "{}";
11159 
11160     std::string result;
11161     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueFd )
11162       result += "OpaqueFd | ";
11163     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 )
11164       result += "OpaqueWin32 | ";
11165     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt )
11166       result += "OpaqueWin32Kmt | ";
11167     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11Texture )
11168       result += "D3D11Texture | ";
11169     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt )
11170       result += "D3D11TextureKmt | ";
11171     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Heap )
11172       result += "D3D12Heap | ";
11173     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Resource )
11174       result += "D3D12Resource | ";
11175     if ( value & ExternalMemoryHandleTypeFlagBits::eDmaBufEXT )
11176       result += "DmaBufEXT | ";
11177 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
11178     if ( value & ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID )
11179       result += "AndroidHardwareBufferANDROID | ";
11180 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
11181     if ( value & ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT )
11182       result += "HostAllocationEXT | ";
11183     if ( value & ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT )
11184       result += "HostMappedForeignMemoryEXT | ";
11185 #if defined( VK_USE_PLATFORM_FUCHSIA )
11186     if ( value & ExternalMemoryHandleTypeFlagBits::eZirconVmoFUCHSIA )
11187       result += "ZirconVmoFUCHSIA | ";
11188 #endif /*VK_USE_PLATFORM_FUCHSIA*/
11189     if ( value & ExternalMemoryHandleTypeFlagBits::eRdmaAddressNV )
11190       result += "RdmaAddressNV | ";
11191 
11192     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11193   }
11194 
11195   using ExternalMemoryFeatureFlags = Flags<ExternalMemoryFeatureFlagBits>;
11196 
11197   template <>
11198   struct FlagTraits<ExternalMemoryFeatureFlagBits>
11199   {
11200     enum : VkFlags
11201     {
11202       allFlags = VkFlags( ExternalMemoryFeatureFlagBits::eDedicatedOnly ) |
11203                  VkFlags( ExternalMemoryFeatureFlagBits::eExportable ) |
11204                  VkFlags( ExternalMemoryFeatureFlagBits::eImportable )
11205     };
11206   };
11207 
11208   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags
operator |(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)11209     operator|( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11210   {
11211     return ExternalMemoryFeatureFlags( bit0 ) | bit1;
11212   }
11213 
11214   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags
operator &(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)11215     operator&( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11216   {
11217     return ExternalMemoryFeatureFlags( bit0 ) & bit1;
11218   }
11219 
11220   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags
operator ^(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)11221     operator^( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11222   {
11223     return ExternalMemoryFeatureFlags( bit0 ) ^ bit1;
11224   }
11225 
operator ~(ExternalMemoryFeatureFlagBits bits)11226   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator~( ExternalMemoryFeatureFlagBits bits )
11227     VULKAN_HPP_NOEXCEPT
11228   {
11229     return ~( ExternalMemoryFeatureFlags( bits ) );
11230   }
11231 
11232   using ExternalMemoryFeatureFlagsKHR = ExternalMemoryFeatureFlags;
11233 
to_string(ExternalMemoryFeatureFlags value)11234   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlags value )
11235   {
11236     if ( !value )
11237       return "{}";
11238 
11239     std::string result;
11240     if ( value & ExternalMemoryFeatureFlagBits::eDedicatedOnly )
11241       result += "DedicatedOnly | ";
11242     if ( value & ExternalMemoryFeatureFlagBits::eExportable )
11243       result += "Exportable | ";
11244     if ( value & ExternalMemoryFeatureFlagBits::eImportable )
11245       result += "Importable | ";
11246 
11247     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11248   }
11249 
11250   using ExternalFenceHandleTypeFlags = Flags<ExternalFenceHandleTypeFlagBits>;
11251 
11252   template <>
11253   struct FlagTraits<ExternalFenceHandleTypeFlagBits>
11254   {
11255     enum : VkFlags
11256     {
11257       allFlags = VkFlags( ExternalFenceHandleTypeFlagBits::eOpaqueFd ) |
11258                  VkFlags( ExternalFenceHandleTypeFlagBits::eOpaqueWin32 ) |
11259                  VkFlags( ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt ) |
11260                  VkFlags( ExternalFenceHandleTypeFlagBits::eSyncFd )
11261     };
11262   };
11263 
11264   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags
operator |(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)11265     operator|( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11266   {
11267     return ExternalFenceHandleTypeFlags( bit0 ) | bit1;
11268   }
11269 
11270   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags
operator &(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)11271     operator&( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11272   {
11273     return ExternalFenceHandleTypeFlags( bit0 ) & bit1;
11274   }
11275 
11276   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags
operator ^(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)11277     operator^( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11278   {
11279     return ExternalFenceHandleTypeFlags( bit0 ) ^ bit1;
11280   }
11281 
operator ~(ExternalFenceHandleTypeFlagBits bits)11282   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator~( ExternalFenceHandleTypeFlagBits bits )
11283     VULKAN_HPP_NOEXCEPT
11284   {
11285     return ~( ExternalFenceHandleTypeFlags( bits ) );
11286   }
11287 
11288   using ExternalFenceHandleTypeFlagsKHR = ExternalFenceHandleTypeFlags;
11289 
to_string(ExternalFenceHandleTypeFlags value)11290   VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlags value )
11291   {
11292     if ( !value )
11293       return "{}";
11294 
11295     std::string result;
11296     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueFd )
11297       result += "OpaqueFd | ";
11298     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32 )
11299       result += "OpaqueWin32 | ";
11300     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt )
11301       result += "OpaqueWin32Kmt | ";
11302     if ( value & ExternalFenceHandleTypeFlagBits::eSyncFd )
11303       result += "SyncFd | ";
11304 
11305     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11306   }
11307 
11308   using ExternalFenceFeatureFlags = Flags<ExternalFenceFeatureFlagBits>;
11309 
11310   template <>
11311   struct FlagTraits<ExternalFenceFeatureFlagBits>
11312   {
11313     enum : VkFlags
11314     {
11315       allFlags =
11316         VkFlags( ExternalFenceFeatureFlagBits::eExportable ) | VkFlags( ExternalFenceFeatureFlagBits::eImportable )
11317     };
11318   };
11319 
11320   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags
operator |(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)11321     operator|( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11322   {
11323     return ExternalFenceFeatureFlags( bit0 ) | bit1;
11324   }
11325 
11326   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags
operator &(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)11327     operator&( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11328   {
11329     return ExternalFenceFeatureFlags( bit0 ) & bit1;
11330   }
11331 
11332   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags
operator ^(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)11333     operator^( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11334   {
11335     return ExternalFenceFeatureFlags( bit0 ) ^ bit1;
11336   }
11337 
operator ~(ExternalFenceFeatureFlagBits bits)11338   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator~( ExternalFenceFeatureFlagBits bits )
11339     VULKAN_HPP_NOEXCEPT
11340   {
11341     return ~( ExternalFenceFeatureFlags( bits ) );
11342   }
11343 
11344   using ExternalFenceFeatureFlagsKHR = ExternalFenceFeatureFlags;
11345 
to_string(ExternalFenceFeatureFlags value)11346   VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlags value )
11347   {
11348     if ( !value )
11349       return "{}";
11350 
11351     std::string result;
11352     if ( value & ExternalFenceFeatureFlagBits::eExportable )
11353       result += "Exportable | ";
11354     if ( value & ExternalFenceFeatureFlagBits::eImportable )
11355       result += "Importable | ";
11356 
11357     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11358   }
11359 
11360   using FenceImportFlags = Flags<FenceImportFlagBits>;
11361 
11362   template <>
11363   struct FlagTraits<FenceImportFlagBits>
11364   {
11365     enum : VkFlags
11366     {
11367       allFlags = VkFlags( FenceImportFlagBits::eTemporary )
11368     };
11369   };
11370 
operator |(FenceImportFlagBits bit0,FenceImportFlagBits bit1)11371   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator|( FenceImportFlagBits bit0,
11372                                                                      FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11373   {
11374     return FenceImportFlags( bit0 ) | bit1;
11375   }
11376 
operator &(FenceImportFlagBits bit0,FenceImportFlagBits bit1)11377   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator&( FenceImportFlagBits bit0,
11378                                                                      FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11379   {
11380     return FenceImportFlags( bit0 ) & bit1;
11381   }
11382 
operator ^(FenceImportFlagBits bit0,FenceImportFlagBits bit1)11383   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator^( FenceImportFlagBits bit0,
11384                                                                      FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11385   {
11386     return FenceImportFlags( bit0 ) ^ bit1;
11387   }
11388 
operator ~(FenceImportFlagBits bits)11389   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator~( FenceImportFlagBits bits ) VULKAN_HPP_NOEXCEPT
11390   {
11391     return ~( FenceImportFlags( bits ) );
11392   }
11393 
11394   using FenceImportFlagsKHR = FenceImportFlags;
11395 
to_string(FenceImportFlags value)11396   VULKAN_HPP_INLINE std::string to_string( FenceImportFlags value )
11397   {
11398     if ( !value )
11399       return "{}";
11400 
11401     std::string result;
11402     if ( value & FenceImportFlagBits::eTemporary )
11403       result += "Temporary | ";
11404 
11405     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11406   }
11407 
11408   using SemaphoreImportFlags = Flags<SemaphoreImportFlagBits>;
11409 
11410   template <>
11411   struct FlagTraits<SemaphoreImportFlagBits>
11412   {
11413     enum : VkFlags
11414     {
11415       allFlags = VkFlags( SemaphoreImportFlagBits::eTemporary )
11416     };
11417   };
11418 
11419   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags
operator |(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)11420     operator|( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11421   {
11422     return SemaphoreImportFlags( bit0 ) | bit1;
11423   }
11424 
11425   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags
operator &(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)11426     operator&( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11427   {
11428     return SemaphoreImportFlags( bit0 ) & bit1;
11429   }
11430 
11431   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags
operator ^(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)11432     operator^( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11433   {
11434     return SemaphoreImportFlags( bit0 ) ^ bit1;
11435   }
11436 
operator ~(SemaphoreImportFlagBits bits)11437   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator~( SemaphoreImportFlagBits bits )
11438     VULKAN_HPP_NOEXCEPT
11439   {
11440     return ~( SemaphoreImportFlags( bits ) );
11441   }
11442 
11443   using SemaphoreImportFlagsKHR = SemaphoreImportFlags;
11444 
to_string(SemaphoreImportFlags value)11445   VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlags value )
11446   {
11447     if ( !value )
11448       return "{}";
11449 
11450     std::string result;
11451     if ( value & SemaphoreImportFlagBits::eTemporary )
11452       result += "Temporary | ";
11453 
11454     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11455   }
11456 
11457   using ExternalSemaphoreHandleTypeFlags = Flags<ExternalSemaphoreHandleTypeFlagBits>;
11458 
11459   template <>
11460   struct FlagTraits<ExternalSemaphoreHandleTypeFlagBits>
11461   {
11462     enum : VkFlags
11463     {
11464       allFlags = VkFlags( ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) |
11465                  VkFlags( ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 ) |
11466                  VkFlags( ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt ) |
11467                  VkFlags( ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence ) |
11468                  VkFlags( ExternalSemaphoreHandleTypeFlagBits::eSyncFd )
11469 #if defined( VK_USE_PLATFORM_FUCHSIA )
11470                  | VkFlags( ExternalSemaphoreHandleTypeFlagBits::eZirconEventFUCHSIA )
11471 #endif /*VK_USE_PLATFORM_FUCHSIA*/
11472     };
11473   };
11474 
11475   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags
operator |(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)11476     operator|( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11477   {
11478     return ExternalSemaphoreHandleTypeFlags( bit0 ) | bit1;
11479   }
11480 
11481   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags
operator &(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)11482     operator&( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11483   {
11484     return ExternalSemaphoreHandleTypeFlags( bit0 ) & bit1;
11485   }
11486 
11487   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags
operator ^(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)11488     operator^( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11489   {
11490     return ExternalSemaphoreHandleTypeFlags( bit0 ) ^ bit1;
11491   }
11492 
11493   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags
operator ~(ExternalSemaphoreHandleTypeFlagBits bits)11494     operator~( ExternalSemaphoreHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT
11495   {
11496     return ~( ExternalSemaphoreHandleTypeFlags( bits ) );
11497   }
11498 
11499   using ExternalSemaphoreHandleTypeFlagsKHR = ExternalSemaphoreHandleTypeFlags;
11500 
to_string(ExternalSemaphoreHandleTypeFlags value)11501   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlags value )
11502   {
11503     if ( !value )
11504       return "{}";
11505 
11506     std::string result;
11507     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd )
11508       result += "OpaqueFd | ";
11509     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 )
11510       result += "OpaqueWin32 | ";
11511     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt )
11512       result += "OpaqueWin32Kmt | ";
11513     if ( value & ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence )
11514       result += "D3D12Fence | ";
11515     if ( value & ExternalSemaphoreHandleTypeFlagBits::eSyncFd )
11516       result += "SyncFd | ";
11517 #if defined( VK_USE_PLATFORM_FUCHSIA )
11518     if ( value & ExternalSemaphoreHandleTypeFlagBits::eZirconEventFUCHSIA )
11519       result += "ZirconEventFUCHSIA | ";
11520 #endif /*VK_USE_PLATFORM_FUCHSIA*/
11521 
11522     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11523   }
11524 
11525   using ExternalSemaphoreFeatureFlags = Flags<ExternalSemaphoreFeatureFlagBits>;
11526 
11527   template <>
11528   struct FlagTraits<ExternalSemaphoreFeatureFlagBits>
11529   {
11530     enum : VkFlags
11531     {
11532       allFlags = VkFlags( ExternalSemaphoreFeatureFlagBits::eExportable ) |
11533                  VkFlags( ExternalSemaphoreFeatureFlagBits::eImportable )
11534     };
11535   };
11536 
11537   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags
operator |(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)11538     operator|( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11539   {
11540     return ExternalSemaphoreFeatureFlags( bit0 ) | bit1;
11541   }
11542 
11543   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags
operator &(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)11544     operator&( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11545   {
11546     return ExternalSemaphoreFeatureFlags( bit0 ) & bit1;
11547   }
11548 
11549   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags
operator ^(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)11550     operator^( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11551   {
11552     return ExternalSemaphoreFeatureFlags( bit0 ) ^ bit1;
11553   }
11554 
11555   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags
operator ~(ExternalSemaphoreFeatureFlagBits bits)11556     operator~( ExternalSemaphoreFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
11557   {
11558     return ~( ExternalSemaphoreFeatureFlags( bits ) );
11559   }
11560 
11561   using ExternalSemaphoreFeatureFlagsKHR = ExternalSemaphoreFeatureFlags;
11562 
to_string(ExternalSemaphoreFeatureFlags value)11563   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlags value )
11564   {
11565     if ( !value )
11566       return "{}";
11567 
11568     std::string result;
11569     if ( value & ExternalSemaphoreFeatureFlagBits::eExportable )
11570       result += "Exportable | ";
11571     if ( value & ExternalSemaphoreFeatureFlagBits::eImportable )
11572       result += "Importable | ";
11573 
11574     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11575   }
11576 
11577   //=== VK_VERSION_1_2 ===
11578 
11579   using DescriptorBindingFlags = Flags<DescriptorBindingFlagBits>;
11580 
11581   template <>
11582   struct FlagTraits<DescriptorBindingFlagBits>
11583   {
11584     enum : VkFlags
11585     {
11586       allFlags = VkFlags( DescriptorBindingFlagBits::eUpdateAfterBind ) |
11587                  VkFlags( DescriptorBindingFlagBits::eUpdateUnusedWhilePending ) |
11588                  VkFlags( DescriptorBindingFlagBits::ePartiallyBound ) |
11589                  VkFlags( DescriptorBindingFlagBits::eVariableDescriptorCount )
11590     };
11591   };
11592 
11593   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags
operator |(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)11594     operator|( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11595   {
11596     return DescriptorBindingFlags( bit0 ) | bit1;
11597   }
11598 
11599   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags
operator &(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)11600     operator&( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11601   {
11602     return DescriptorBindingFlags( bit0 ) & bit1;
11603   }
11604 
11605   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags
operator ^(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)11606     operator^( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11607   {
11608     return DescriptorBindingFlags( bit0 ) ^ bit1;
11609   }
11610 
operator ~(DescriptorBindingFlagBits bits)11611   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator~( DescriptorBindingFlagBits bits )
11612     VULKAN_HPP_NOEXCEPT
11613   {
11614     return ~( DescriptorBindingFlags( bits ) );
11615   }
11616 
11617   using DescriptorBindingFlagsEXT = DescriptorBindingFlags;
11618 
to_string(DescriptorBindingFlags value)11619   VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlags value )
11620   {
11621     if ( !value )
11622       return "{}";
11623 
11624     std::string result;
11625     if ( value & DescriptorBindingFlagBits::eUpdateAfterBind )
11626       result += "UpdateAfterBind | ";
11627     if ( value & DescriptorBindingFlagBits::eUpdateUnusedWhilePending )
11628       result += "UpdateUnusedWhilePending | ";
11629     if ( value & DescriptorBindingFlagBits::ePartiallyBound )
11630       result += "PartiallyBound | ";
11631     if ( value & DescriptorBindingFlagBits::eVariableDescriptorCount )
11632       result += "VariableDescriptorCount | ";
11633 
11634     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11635   }
11636 
11637   using ResolveModeFlags = Flags<ResolveModeFlagBits>;
11638 
11639   template <>
11640   struct FlagTraits<ResolveModeFlagBits>
11641   {
11642     enum : VkFlags
11643     {
11644       allFlags = VkFlags( ResolveModeFlagBits::eNone ) | VkFlags( ResolveModeFlagBits::eSampleZero ) |
11645                  VkFlags( ResolveModeFlagBits::eAverage ) | VkFlags( ResolveModeFlagBits::eMin ) |
11646                  VkFlags( ResolveModeFlagBits::eMax )
11647     };
11648   };
11649 
operator |(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)11650   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator|( ResolveModeFlagBits bit0,
11651                                                                      ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11652   {
11653     return ResolveModeFlags( bit0 ) | bit1;
11654   }
11655 
operator &(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)11656   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator&( ResolveModeFlagBits bit0,
11657                                                                      ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11658   {
11659     return ResolveModeFlags( bit0 ) & bit1;
11660   }
11661 
operator ^(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)11662   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator^( ResolveModeFlagBits bit0,
11663                                                                      ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11664   {
11665     return ResolveModeFlags( bit0 ) ^ bit1;
11666   }
11667 
operator ~(ResolveModeFlagBits bits)11668   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator~( ResolveModeFlagBits bits ) VULKAN_HPP_NOEXCEPT
11669   {
11670     return ~( ResolveModeFlags( bits ) );
11671   }
11672 
11673   using ResolveModeFlagsKHR = ResolveModeFlags;
11674 
to_string(ResolveModeFlags value)11675   VULKAN_HPP_INLINE std::string to_string( ResolveModeFlags value )
11676   {
11677     if ( !value )
11678       return "{}";
11679 
11680     std::string result;
11681     if ( value & ResolveModeFlagBits::eSampleZero )
11682       result += "SampleZero | ";
11683     if ( value & ResolveModeFlagBits::eAverage )
11684       result += "Average | ";
11685     if ( value & ResolveModeFlagBits::eMin )
11686       result += "Min | ";
11687     if ( value & ResolveModeFlagBits::eMax )
11688       result += "Max | ";
11689 
11690     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11691   }
11692 
11693   using SemaphoreWaitFlags = Flags<SemaphoreWaitFlagBits>;
11694 
11695   template <>
11696   struct FlagTraits<SemaphoreWaitFlagBits>
11697   {
11698     enum : VkFlags
11699     {
11700       allFlags = VkFlags( SemaphoreWaitFlagBits::eAny )
11701     };
11702   };
11703 
operator |(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)11704   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator|( SemaphoreWaitFlagBits bit0,
11705                                                                        SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11706   {
11707     return SemaphoreWaitFlags( bit0 ) | bit1;
11708   }
11709 
operator &(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)11710   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator&( SemaphoreWaitFlagBits bit0,
11711                                                                        SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11712   {
11713     return SemaphoreWaitFlags( bit0 ) & bit1;
11714   }
11715 
operator ^(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)11716   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator^( SemaphoreWaitFlagBits bit0,
11717                                                                        SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11718   {
11719     return SemaphoreWaitFlags( bit0 ) ^ bit1;
11720   }
11721 
operator ~(SemaphoreWaitFlagBits bits)11722   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator~( SemaphoreWaitFlagBits bits ) VULKAN_HPP_NOEXCEPT
11723   {
11724     return ~( SemaphoreWaitFlags( bits ) );
11725   }
11726 
11727   using SemaphoreWaitFlagsKHR = SemaphoreWaitFlags;
11728 
to_string(SemaphoreWaitFlags value)11729   VULKAN_HPP_INLINE std::string to_string( SemaphoreWaitFlags value )
11730   {
11731     if ( !value )
11732       return "{}";
11733 
11734     std::string result;
11735     if ( value & SemaphoreWaitFlagBits::eAny )
11736       result += "Any | ";
11737 
11738     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11739   }
11740 
11741   //=== VK_KHR_surface ===
11742 
11743   using CompositeAlphaFlagsKHR = Flags<CompositeAlphaFlagBitsKHR>;
11744 
11745   template <>
11746   struct FlagTraits<CompositeAlphaFlagBitsKHR>
11747   {
11748     enum : VkFlags
11749     {
11750       allFlags = VkFlags( CompositeAlphaFlagBitsKHR::eOpaque ) | VkFlags( CompositeAlphaFlagBitsKHR::ePreMultiplied ) |
11751                  VkFlags( CompositeAlphaFlagBitsKHR::ePostMultiplied ) | VkFlags( CompositeAlphaFlagBitsKHR::eInherit )
11752     };
11753   };
11754 
11755   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR
operator |(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)11756     operator|( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11757   {
11758     return CompositeAlphaFlagsKHR( bit0 ) | bit1;
11759   }
11760 
11761   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR
operator &(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)11762     operator&( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11763   {
11764     return CompositeAlphaFlagsKHR( bit0 ) & bit1;
11765   }
11766 
11767   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR
operator ^(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)11768     operator^( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11769   {
11770     return CompositeAlphaFlagsKHR( bit0 ) ^ bit1;
11771   }
11772 
operator ~(CompositeAlphaFlagBitsKHR bits)11773   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator~( CompositeAlphaFlagBitsKHR bits )
11774     VULKAN_HPP_NOEXCEPT
11775   {
11776     return ~( CompositeAlphaFlagsKHR( bits ) );
11777   }
11778 
to_string(CompositeAlphaFlagsKHR value)11779   VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagsKHR value )
11780   {
11781     if ( !value )
11782       return "{}";
11783 
11784     std::string result;
11785     if ( value & CompositeAlphaFlagBitsKHR::eOpaque )
11786       result += "Opaque | ";
11787     if ( value & CompositeAlphaFlagBitsKHR::ePreMultiplied )
11788       result += "PreMultiplied | ";
11789     if ( value & CompositeAlphaFlagBitsKHR::ePostMultiplied )
11790       result += "PostMultiplied | ";
11791     if ( value & CompositeAlphaFlagBitsKHR::eInherit )
11792       result += "Inherit | ";
11793 
11794     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11795   }
11796 
11797   //=== VK_KHR_swapchain ===
11798 
11799   using SwapchainCreateFlagsKHR = Flags<SwapchainCreateFlagBitsKHR>;
11800 
11801   template <>
11802   struct FlagTraits<SwapchainCreateFlagBitsKHR>
11803   {
11804     enum : VkFlags
11805     {
11806       allFlags = VkFlags( SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions ) |
11807                  VkFlags( SwapchainCreateFlagBitsKHR::eProtected ) |
11808                  VkFlags( SwapchainCreateFlagBitsKHR::eMutableFormat )
11809     };
11810   };
11811 
11812   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR
operator |(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)11813     operator|( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11814   {
11815     return SwapchainCreateFlagsKHR( bit0 ) | bit1;
11816   }
11817 
11818   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR
operator &(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)11819     operator&( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11820   {
11821     return SwapchainCreateFlagsKHR( bit0 ) & bit1;
11822   }
11823 
11824   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR
operator ^(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)11825     operator^( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11826   {
11827     return SwapchainCreateFlagsKHR( bit0 ) ^ bit1;
11828   }
11829 
operator ~(SwapchainCreateFlagBitsKHR bits)11830   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator~( SwapchainCreateFlagBitsKHR bits )
11831     VULKAN_HPP_NOEXCEPT
11832   {
11833     return ~( SwapchainCreateFlagsKHR( bits ) );
11834   }
11835 
to_string(SwapchainCreateFlagsKHR value)11836   VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagsKHR value )
11837   {
11838     if ( !value )
11839       return "{}";
11840 
11841     std::string result;
11842     if ( value & SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions )
11843       result += "SplitInstanceBindRegions | ";
11844     if ( value & SwapchainCreateFlagBitsKHR::eProtected )
11845       result += "Protected | ";
11846     if ( value & SwapchainCreateFlagBitsKHR::eMutableFormat )
11847       result += "MutableFormat | ";
11848 
11849     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11850   }
11851 
11852   using DeviceGroupPresentModeFlagsKHR = Flags<DeviceGroupPresentModeFlagBitsKHR>;
11853 
11854   template <>
11855   struct FlagTraits<DeviceGroupPresentModeFlagBitsKHR>
11856   {
11857     enum : VkFlags
11858     {
11859       allFlags = VkFlags( DeviceGroupPresentModeFlagBitsKHR::eLocal ) |
11860                  VkFlags( DeviceGroupPresentModeFlagBitsKHR::eRemote ) |
11861                  VkFlags( DeviceGroupPresentModeFlagBitsKHR::eSum ) |
11862                  VkFlags( DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice )
11863     };
11864   };
11865 
11866   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR
operator |(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)11867     operator|( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11868   {
11869     return DeviceGroupPresentModeFlagsKHR( bit0 ) | bit1;
11870   }
11871 
11872   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR
operator &(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)11873     operator&( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11874   {
11875     return DeviceGroupPresentModeFlagsKHR( bit0 ) & bit1;
11876   }
11877 
11878   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR
operator ^(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)11879     operator^( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11880   {
11881     return DeviceGroupPresentModeFlagsKHR( bit0 ) ^ bit1;
11882   }
11883 
11884   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR
operator ~(DeviceGroupPresentModeFlagBitsKHR bits)11885     operator~( DeviceGroupPresentModeFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
11886   {
11887     return ~( DeviceGroupPresentModeFlagsKHR( bits ) );
11888   }
11889 
to_string(DeviceGroupPresentModeFlagsKHR value)11890   VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagsKHR value )
11891   {
11892     if ( !value )
11893       return "{}";
11894 
11895     std::string result;
11896     if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocal )
11897       result += "Local | ";
11898     if ( value & DeviceGroupPresentModeFlagBitsKHR::eRemote )
11899       result += "Remote | ";
11900     if ( value & DeviceGroupPresentModeFlagBitsKHR::eSum )
11901       result += "Sum | ";
11902     if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice )
11903       result += "LocalMultiDevice | ";
11904 
11905     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11906   }
11907 
11908   //=== VK_KHR_display ===
11909 
11910   using DisplayModeCreateFlagsKHR = Flags<DisplayModeCreateFlagBitsKHR>;
11911 
to_string(DisplayModeCreateFlagsKHR)11912   VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagsKHR )
11913   {
11914     return "{}";
11915   }
11916 
11917   using DisplayPlaneAlphaFlagsKHR = Flags<DisplayPlaneAlphaFlagBitsKHR>;
11918 
11919   template <>
11920   struct FlagTraits<DisplayPlaneAlphaFlagBitsKHR>
11921   {
11922     enum : VkFlags
11923     {
11924       allFlags = VkFlags( DisplayPlaneAlphaFlagBitsKHR::eOpaque ) | VkFlags( DisplayPlaneAlphaFlagBitsKHR::eGlobal ) |
11925                  VkFlags( DisplayPlaneAlphaFlagBitsKHR::ePerPixel ) |
11926                  VkFlags( DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied )
11927     };
11928   };
11929 
11930   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR
operator |(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)11931     operator|( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11932   {
11933     return DisplayPlaneAlphaFlagsKHR( bit0 ) | bit1;
11934   }
11935 
11936   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR
operator &(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)11937     operator&( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11938   {
11939     return DisplayPlaneAlphaFlagsKHR( bit0 ) & bit1;
11940   }
11941 
11942   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR
operator ^(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)11943     operator^( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11944   {
11945     return DisplayPlaneAlphaFlagsKHR( bit0 ) ^ bit1;
11946   }
11947 
operator ~(DisplayPlaneAlphaFlagBitsKHR bits)11948   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator~( DisplayPlaneAlphaFlagBitsKHR bits )
11949     VULKAN_HPP_NOEXCEPT
11950   {
11951     return ~( DisplayPlaneAlphaFlagsKHR( bits ) );
11952   }
11953 
to_string(DisplayPlaneAlphaFlagsKHR value)11954   VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagsKHR value )
11955   {
11956     if ( !value )
11957       return "{}";
11958 
11959     std::string result;
11960     if ( value & DisplayPlaneAlphaFlagBitsKHR::eOpaque )
11961       result += "Opaque | ";
11962     if ( value & DisplayPlaneAlphaFlagBitsKHR::eGlobal )
11963       result += "Global | ";
11964     if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixel )
11965       result += "PerPixel | ";
11966     if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied )
11967       result += "PerPixelPremultiplied | ";
11968 
11969     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11970   }
11971 
11972   using DisplaySurfaceCreateFlagsKHR = Flags<DisplaySurfaceCreateFlagBitsKHR>;
11973 
to_string(DisplaySurfaceCreateFlagsKHR)11974   VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagsKHR )
11975   {
11976     return "{}";
11977   }
11978 
11979   using SurfaceTransformFlagsKHR = Flags<SurfaceTransformFlagBitsKHR>;
11980 
11981   template <>
11982   struct FlagTraits<SurfaceTransformFlagBitsKHR>
11983   {
11984     enum : VkFlags
11985     {
11986       allFlags = VkFlags( SurfaceTransformFlagBitsKHR::eIdentity ) | VkFlags( SurfaceTransformFlagBitsKHR::eRotate90 ) |
11987                  VkFlags( SurfaceTransformFlagBitsKHR::eRotate180 ) |
11988                  VkFlags( SurfaceTransformFlagBitsKHR::eRotate270 ) |
11989                  VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirror ) |
11990                  VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 ) |
11991                  VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 ) |
11992                  VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 ) |
11993                  VkFlags( SurfaceTransformFlagBitsKHR::eInherit )
11994     };
11995   };
11996 
11997   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR
operator |(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)11998     operator|( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11999   {
12000     return SurfaceTransformFlagsKHR( bit0 ) | bit1;
12001   }
12002 
12003   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR
operator &(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)12004     operator&( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12005   {
12006     return SurfaceTransformFlagsKHR( bit0 ) & bit1;
12007   }
12008 
12009   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR
operator ^(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)12010     operator^( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12011   {
12012     return SurfaceTransformFlagsKHR( bit0 ) ^ bit1;
12013   }
12014 
operator ~(SurfaceTransformFlagBitsKHR bits)12015   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator~( SurfaceTransformFlagBitsKHR bits )
12016     VULKAN_HPP_NOEXCEPT
12017   {
12018     return ~( SurfaceTransformFlagsKHR( bits ) );
12019   }
12020 
to_string(SurfaceTransformFlagsKHR value)12021   VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagsKHR value )
12022   {
12023     if ( !value )
12024       return "{}";
12025 
12026     std::string result;
12027     if ( value & SurfaceTransformFlagBitsKHR::eIdentity )
12028       result += "Identity | ";
12029     if ( value & SurfaceTransformFlagBitsKHR::eRotate90 )
12030       result += "Rotate90 | ";
12031     if ( value & SurfaceTransformFlagBitsKHR::eRotate180 )
12032       result += "Rotate180 | ";
12033     if ( value & SurfaceTransformFlagBitsKHR::eRotate270 )
12034       result += "Rotate270 | ";
12035     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirror )
12036       result += "HorizontalMirror | ";
12037     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 )
12038       result += "HorizontalMirrorRotate90 | ";
12039     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 )
12040       result += "HorizontalMirrorRotate180 | ";
12041     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 )
12042       result += "HorizontalMirrorRotate270 | ";
12043     if ( value & SurfaceTransformFlagBitsKHR::eInherit )
12044       result += "Inherit | ";
12045 
12046     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12047   }
12048 
12049 #if defined( VK_USE_PLATFORM_XLIB_KHR )
12050   //=== VK_KHR_xlib_surface ===
12051 
12052   using XlibSurfaceCreateFlagsKHR = Flags<XlibSurfaceCreateFlagBitsKHR>;
12053 
to_string(XlibSurfaceCreateFlagsKHR)12054   VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagsKHR )
12055   {
12056     return "{}";
12057   }
12058 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
12059 
12060 #if defined( VK_USE_PLATFORM_XCB_KHR )
12061   //=== VK_KHR_xcb_surface ===
12062 
12063   using XcbSurfaceCreateFlagsKHR = Flags<XcbSurfaceCreateFlagBitsKHR>;
12064 
to_string(XcbSurfaceCreateFlagsKHR)12065   VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagsKHR )
12066   {
12067     return "{}";
12068   }
12069 #endif /*VK_USE_PLATFORM_XCB_KHR*/
12070 
12071 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
12072   //=== VK_KHR_wayland_surface ===
12073 
12074   using WaylandSurfaceCreateFlagsKHR = Flags<WaylandSurfaceCreateFlagBitsKHR>;
12075 
to_string(WaylandSurfaceCreateFlagsKHR)12076   VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagsKHR )
12077   {
12078     return "{}";
12079   }
12080 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
12081 
12082 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
12083   //=== VK_KHR_android_surface ===
12084 
12085   using AndroidSurfaceCreateFlagsKHR = Flags<AndroidSurfaceCreateFlagBitsKHR>;
12086 
to_string(AndroidSurfaceCreateFlagsKHR)12087   VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagsKHR )
12088   {
12089     return "{}";
12090   }
12091 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
12092 
12093 #if defined( VK_USE_PLATFORM_WIN32_KHR )
12094   //=== VK_KHR_win32_surface ===
12095 
12096   using Win32SurfaceCreateFlagsKHR = Flags<Win32SurfaceCreateFlagBitsKHR>;
12097 
to_string(Win32SurfaceCreateFlagsKHR)12098   VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagsKHR )
12099   {
12100     return "{}";
12101   }
12102 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
12103 
12104   //=== VK_EXT_debug_report ===
12105 
12106   using DebugReportFlagsEXT = Flags<DebugReportFlagBitsEXT>;
12107 
12108   template <>
12109   struct FlagTraits<DebugReportFlagBitsEXT>
12110   {
12111     enum : VkFlags
12112     {
12113       allFlags = VkFlags( DebugReportFlagBitsEXT::eInformation ) | VkFlags( DebugReportFlagBitsEXT::eWarning ) |
12114                  VkFlags( DebugReportFlagBitsEXT::ePerformanceWarning ) | VkFlags( DebugReportFlagBitsEXT::eError ) |
12115                  VkFlags( DebugReportFlagBitsEXT::eDebug )
12116     };
12117   };
12118 
12119   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT
operator |(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)12120     operator|( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12121   {
12122     return DebugReportFlagsEXT( bit0 ) | bit1;
12123   }
12124 
12125   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT
operator &(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)12126     operator&( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12127   {
12128     return DebugReportFlagsEXT( bit0 ) & bit1;
12129   }
12130 
12131   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT
operator ^(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)12132     operator^( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12133   {
12134     return DebugReportFlagsEXT( bit0 ) ^ bit1;
12135   }
12136 
operator ~(DebugReportFlagBitsEXT bits)12137   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator~( DebugReportFlagBitsEXT bits )
12138     VULKAN_HPP_NOEXCEPT
12139   {
12140     return ~( DebugReportFlagsEXT( bits ) );
12141   }
12142 
to_string(DebugReportFlagsEXT value)12143   VULKAN_HPP_INLINE std::string to_string( DebugReportFlagsEXT value )
12144   {
12145     if ( !value )
12146       return "{}";
12147 
12148     std::string result;
12149     if ( value & DebugReportFlagBitsEXT::eInformation )
12150       result += "Information | ";
12151     if ( value & DebugReportFlagBitsEXT::eWarning )
12152       result += "Warning | ";
12153     if ( value & DebugReportFlagBitsEXT::ePerformanceWarning )
12154       result += "PerformanceWarning | ";
12155     if ( value & DebugReportFlagBitsEXT::eError )
12156       result += "Error | ";
12157     if ( value & DebugReportFlagBitsEXT::eDebug )
12158       result += "Debug | ";
12159 
12160     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12161   }
12162 
12163 #if defined( VK_ENABLE_BETA_EXTENSIONS )
12164   //=== VK_KHR_video_queue ===
12165 
12166   using VideoCodecOperationFlagsKHR = Flags<VideoCodecOperationFlagBitsKHR>;
12167 
12168   template <>
12169   struct FlagTraits<VideoCodecOperationFlagBitsKHR>
12170   {
12171     enum : VkFlags
12172     {
12173       allFlags = VkFlags( VideoCodecOperationFlagBitsKHR::eInvalid )
12174 #  if defined( VK_ENABLE_BETA_EXTENSIONS )
12175                  | VkFlags( VideoCodecOperationFlagBitsKHR::eEncodeH264EXT ) |
12176                  VkFlags( VideoCodecOperationFlagBitsKHR::eEncodeH265EXT ) |
12177                  VkFlags( VideoCodecOperationFlagBitsKHR::eDecodeH264EXT ) |
12178                  VkFlags( VideoCodecOperationFlagBitsKHR::eDecodeH265EXT )
12179 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
12180     };
12181   };
12182 
12183   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodecOperationFlagsKHR
operator |(VideoCodecOperationFlagBitsKHR bit0,VideoCodecOperationFlagBitsKHR bit1)12184     operator|( VideoCodecOperationFlagBitsKHR bit0, VideoCodecOperationFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12185   {
12186     return VideoCodecOperationFlagsKHR( bit0 ) | bit1;
12187   }
12188 
12189   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodecOperationFlagsKHR
operator &(VideoCodecOperationFlagBitsKHR bit0,VideoCodecOperationFlagBitsKHR bit1)12190     operator&( VideoCodecOperationFlagBitsKHR bit0, VideoCodecOperationFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12191   {
12192     return VideoCodecOperationFlagsKHR( bit0 ) & bit1;
12193   }
12194 
12195   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodecOperationFlagsKHR
operator ^(VideoCodecOperationFlagBitsKHR bit0,VideoCodecOperationFlagBitsKHR bit1)12196     operator^( VideoCodecOperationFlagBitsKHR bit0, VideoCodecOperationFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12197   {
12198     return VideoCodecOperationFlagsKHR( bit0 ) ^ bit1;
12199   }
12200 
operator ~(VideoCodecOperationFlagBitsKHR bits)12201   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodecOperationFlagsKHR operator~( VideoCodecOperationFlagBitsKHR bits )
12202     VULKAN_HPP_NOEXCEPT
12203   {
12204     return ~( VideoCodecOperationFlagsKHR( bits ) );
12205   }
12206 
to_string(VideoCodecOperationFlagsKHR value)12207   VULKAN_HPP_INLINE std::string to_string( VideoCodecOperationFlagsKHR value )
12208   {
12209     if ( !value )
12210       return "{}";
12211 
12212     std::string result;
12213 #  if defined( VK_ENABLE_BETA_EXTENSIONS )
12214     if ( value & VideoCodecOperationFlagBitsKHR::eEncodeH264EXT )
12215       result += "EncodeH264EXT | ";
12216     if ( value & VideoCodecOperationFlagBitsKHR::eEncodeH265EXT )
12217       result += "EncodeH265EXT | ";
12218     if ( value & VideoCodecOperationFlagBitsKHR::eDecodeH264EXT )
12219       result += "DecodeH264EXT | ";
12220     if ( value & VideoCodecOperationFlagBitsKHR::eDecodeH265EXT )
12221       result += "DecodeH265EXT | ";
12222 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
12223 
12224     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12225   }
12226 
12227   using VideoChromaSubsamplingFlagsKHR = Flags<VideoChromaSubsamplingFlagBitsKHR>;
12228 
12229   template <>
12230   struct FlagTraits<VideoChromaSubsamplingFlagBitsKHR>
12231   {
12232     enum : VkFlags
12233     {
12234       allFlags = VkFlags( VideoChromaSubsamplingFlagBitsKHR::eInvalid ) |
12235                  VkFlags( VideoChromaSubsamplingFlagBitsKHR::eMonochrome ) |
12236                  VkFlags( VideoChromaSubsamplingFlagBitsKHR::e420 ) |
12237                  VkFlags( VideoChromaSubsamplingFlagBitsKHR::e422 ) | VkFlags( VideoChromaSubsamplingFlagBitsKHR::e444 )
12238     };
12239   };
12240 
12241   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoChromaSubsamplingFlagsKHR
operator |(VideoChromaSubsamplingFlagBitsKHR bit0,VideoChromaSubsamplingFlagBitsKHR bit1)12242     operator|( VideoChromaSubsamplingFlagBitsKHR bit0, VideoChromaSubsamplingFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12243   {
12244     return VideoChromaSubsamplingFlagsKHR( bit0 ) | bit1;
12245   }
12246 
12247   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoChromaSubsamplingFlagsKHR
operator &(VideoChromaSubsamplingFlagBitsKHR bit0,VideoChromaSubsamplingFlagBitsKHR bit1)12248     operator&( VideoChromaSubsamplingFlagBitsKHR bit0, VideoChromaSubsamplingFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12249   {
12250     return VideoChromaSubsamplingFlagsKHR( bit0 ) & bit1;
12251   }
12252 
12253   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoChromaSubsamplingFlagsKHR
operator ^(VideoChromaSubsamplingFlagBitsKHR bit0,VideoChromaSubsamplingFlagBitsKHR bit1)12254     operator^( VideoChromaSubsamplingFlagBitsKHR bit0, VideoChromaSubsamplingFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12255   {
12256     return VideoChromaSubsamplingFlagsKHR( bit0 ) ^ bit1;
12257   }
12258 
12259   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoChromaSubsamplingFlagsKHR
operator ~(VideoChromaSubsamplingFlagBitsKHR bits)12260     operator~( VideoChromaSubsamplingFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
12261   {
12262     return ~( VideoChromaSubsamplingFlagsKHR( bits ) );
12263   }
12264 
to_string(VideoChromaSubsamplingFlagsKHR value)12265   VULKAN_HPP_INLINE std::string to_string( VideoChromaSubsamplingFlagsKHR value )
12266   {
12267     if ( !value )
12268       return "{}";
12269 
12270     std::string result;
12271     if ( value & VideoChromaSubsamplingFlagBitsKHR::eMonochrome )
12272       result += "Monochrome | ";
12273     if ( value & VideoChromaSubsamplingFlagBitsKHR::e420 )
12274       result += "420 | ";
12275     if ( value & VideoChromaSubsamplingFlagBitsKHR::e422 )
12276       result += "422 | ";
12277     if ( value & VideoChromaSubsamplingFlagBitsKHR::e444 )
12278       result += "444 | ";
12279 
12280     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12281   }
12282 
12283   using VideoComponentBitDepthFlagsKHR = Flags<VideoComponentBitDepthFlagBitsKHR>;
12284 
12285   template <>
12286   struct FlagTraits<VideoComponentBitDepthFlagBitsKHR>
12287   {
12288     enum : VkFlags
12289     {
12290       allFlags = VkFlags( VideoComponentBitDepthFlagBitsKHR::eInvalid ) |
12291                  VkFlags( VideoComponentBitDepthFlagBitsKHR::e8 ) | VkFlags( VideoComponentBitDepthFlagBitsKHR::e10 ) |
12292                  VkFlags( VideoComponentBitDepthFlagBitsKHR::e12 )
12293     };
12294   };
12295 
12296   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoComponentBitDepthFlagsKHR
operator |(VideoComponentBitDepthFlagBitsKHR bit0,VideoComponentBitDepthFlagBitsKHR bit1)12297     operator|( VideoComponentBitDepthFlagBitsKHR bit0, VideoComponentBitDepthFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12298   {
12299     return VideoComponentBitDepthFlagsKHR( bit0 ) | bit1;
12300   }
12301 
12302   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoComponentBitDepthFlagsKHR
operator &(VideoComponentBitDepthFlagBitsKHR bit0,VideoComponentBitDepthFlagBitsKHR bit1)12303     operator&( VideoComponentBitDepthFlagBitsKHR bit0, VideoComponentBitDepthFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12304   {
12305     return VideoComponentBitDepthFlagsKHR( bit0 ) & bit1;
12306   }
12307 
12308   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoComponentBitDepthFlagsKHR
operator ^(VideoComponentBitDepthFlagBitsKHR bit0,VideoComponentBitDepthFlagBitsKHR bit1)12309     operator^( VideoComponentBitDepthFlagBitsKHR bit0, VideoComponentBitDepthFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12310   {
12311     return VideoComponentBitDepthFlagsKHR( bit0 ) ^ bit1;
12312   }
12313 
12314   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoComponentBitDepthFlagsKHR
operator ~(VideoComponentBitDepthFlagBitsKHR bits)12315     operator~( VideoComponentBitDepthFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
12316   {
12317     return ~( VideoComponentBitDepthFlagsKHR( bits ) );
12318   }
12319 
to_string(VideoComponentBitDepthFlagsKHR value)12320   VULKAN_HPP_INLINE std::string to_string( VideoComponentBitDepthFlagsKHR value )
12321   {
12322     if ( !value )
12323       return "{}";
12324 
12325     std::string result;
12326     if ( value & VideoComponentBitDepthFlagBitsKHR::e8 )
12327       result += "8 | ";
12328     if ( value & VideoComponentBitDepthFlagBitsKHR::e10 )
12329       result += "10 | ";
12330     if ( value & VideoComponentBitDepthFlagBitsKHR::e12 )
12331       result += "12 | ";
12332 
12333     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12334   }
12335 
12336   using VideoCapabilityFlagsKHR = Flags<VideoCapabilityFlagBitsKHR>;
12337 
12338   template <>
12339   struct FlagTraits<VideoCapabilityFlagBitsKHR>
12340   {
12341     enum : VkFlags
12342     {
12343       allFlags = VkFlags( VideoCapabilityFlagBitsKHR::eProtectedContent ) |
12344                  VkFlags( VideoCapabilityFlagBitsKHR::eSeparateReferenceImages )
12345     };
12346   };
12347 
12348   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilityFlagsKHR
operator |(VideoCapabilityFlagBitsKHR bit0,VideoCapabilityFlagBitsKHR bit1)12349     operator|( VideoCapabilityFlagBitsKHR bit0, VideoCapabilityFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12350   {
12351     return VideoCapabilityFlagsKHR( bit0 ) | bit1;
12352   }
12353 
12354   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilityFlagsKHR
operator &(VideoCapabilityFlagBitsKHR bit0,VideoCapabilityFlagBitsKHR bit1)12355     operator&( VideoCapabilityFlagBitsKHR bit0, VideoCapabilityFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12356   {
12357     return VideoCapabilityFlagsKHR( bit0 ) & bit1;
12358   }
12359 
12360   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilityFlagsKHR
operator ^(VideoCapabilityFlagBitsKHR bit0,VideoCapabilityFlagBitsKHR bit1)12361     operator^( VideoCapabilityFlagBitsKHR bit0, VideoCapabilityFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12362   {
12363     return VideoCapabilityFlagsKHR( bit0 ) ^ bit1;
12364   }
12365 
operator ~(VideoCapabilityFlagBitsKHR bits)12366   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilityFlagsKHR operator~( VideoCapabilityFlagBitsKHR bits )
12367     VULKAN_HPP_NOEXCEPT
12368   {
12369     return ~( VideoCapabilityFlagsKHR( bits ) );
12370   }
12371 
to_string(VideoCapabilityFlagsKHR value)12372   VULKAN_HPP_INLINE std::string to_string( VideoCapabilityFlagsKHR value )
12373   {
12374     if ( !value )
12375       return "{}";
12376 
12377     std::string result;
12378     if ( value & VideoCapabilityFlagBitsKHR::eProtectedContent )
12379       result += "ProtectedContent | ";
12380     if ( value & VideoCapabilityFlagBitsKHR::eSeparateReferenceImages )
12381       result += "SeparateReferenceImages | ";
12382 
12383     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12384   }
12385 
12386   using VideoSessionCreateFlagsKHR = Flags<VideoSessionCreateFlagBitsKHR>;
12387 
12388   template <>
12389   struct FlagTraits<VideoSessionCreateFlagBitsKHR>
12390   {
12391     enum : VkFlags
12392     {
12393       allFlags =
12394         VkFlags( VideoSessionCreateFlagBitsKHR::eDefault ) | VkFlags( VideoSessionCreateFlagBitsKHR::eProtectedContent )
12395     };
12396   };
12397 
12398   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoSessionCreateFlagsKHR
operator |(VideoSessionCreateFlagBitsKHR bit0,VideoSessionCreateFlagBitsKHR bit1)12399     operator|( VideoSessionCreateFlagBitsKHR bit0, VideoSessionCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12400   {
12401     return VideoSessionCreateFlagsKHR( bit0 ) | bit1;
12402   }
12403 
12404   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoSessionCreateFlagsKHR
operator &(VideoSessionCreateFlagBitsKHR bit0,VideoSessionCreateFlagBitsKHR bit1)12405     operator&( VideoSessionCreateFlagBitsKHR bit0, VideoSessionCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12406   {
12407     return VideoSessionCreateFlagsKHR( bit0 ) & bit1;
12408   }
12409 
12410   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoSessionCreateFlagsKHR
operator ^(VideoSessionCreateFlagBitsKHR bit0,VideoSessionCreateFlagBitsKHR bit1)12411     operator^( VideoSessionCreateFlagBitsKHR bit0, VideoSessionCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12412   {
12413     return VideoSessionCreateFlagsKHR( bit0 ) ^ bit1;
12414   }
12415 
operator ~(VideoSessionCreateFlagBitsKHR bits)12416   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoSessionCreateFlagsKHR operator~( VideoSessionCreateFlagBitsKHR bits )
12417     VULKAN_HPP_NOEXCEPT
12418   {
12419     return ~( VideoSessionCreateFlagsKHR( bits ) );
12420   }
12421 
to_string(VideoSessionCreateFlagsKHR value)12422   VULKAN_HPP_INLINE std::string to_string( VideoSessionCreateFlagsKHR value )
12423   {
12424     if ( !value )
12425       return "{}";
12426 
12427     std::string result;
12428     if ( value & VideoSessionCreateFlagBitsKHR::eProtectedContent )
12429       result += "ProtectedContent | ";
12430 
12431     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12432   }
12433 
12434   using VideoBeginCodingFlagsKHR = Flags<VideoBeginCodingFlagBitsKHR>;
12435 
to_string(VideoBeginCodingFlagsKHR)12436   VULKAN_HPP_INLINE std::string to_string( VideoBeginCodingFlagsKHR )
12437   {
12438     return "{}";
12439   }
12440 
12441   using VideoEndCodingFlagsKHR = Flags<VideoEndCodingFlagBitsKHR>;
12442 
to_string(VideoEndCodingFlagsKHR)12443   VULKAN_HPP_INLINE std::string to_string( VideoEndCodingFlagsKHR )
12444   {
12445     return "{}";
12446   }
12447 
12448   using VideoCodingControlFlagsKHR = Flags<VideoCodingControlFlagBitsKHR>;
12449 
12450   template <>
12451   struct FlagTraits<VideoCodingControlFlagBitsKHR>
12452   {
12453     enum : VkFlags
12454     {
12455       allFlags = VkFlags( VideoCodingControlFlagBitsKHR::eDefault ) | VkFlags( VideoCodingControlFlagBitsKHR::eReset )
12456     };
12457   };
12458 
12459   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingControlFlagsKHR
operator |(VideoCodingControlFlagBitsKHR bit0,VideoCodingControlFlagBitsKHR bit1)12460     operator|( VideoCodingControlFlagBitsKHR bit0, VideoCodingControlFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12461   {
12462     return VideoCodingControlFlagsKHR( bit0 ) | bit1;
12463   }
12464 
12465   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingControlFlagsKHR
operator &(VideoCodingControlFlagBitsKHR bit0,VideoCodingControlFlagBitsKHR bit1)12466     operator&( VideoCodingControlFlagBitsKHR bit0, VideoCodingControlFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12467   {
12468     return VideoCodingControlFlagsKHR( bit0 ) & bit1;
12469   }
12470 
12471   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingControlFlagsKHR
operator ^(VideoCodingControlFlagBitsKHR bit0,VideoCodingControlFlagBitsKHR bit1)12472     operator^( VideoCodingControlFlagBitsKHR bit0, VideoCodingControlFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12473   {
12474     return VideoCodingControlFlagsKHR( bit0 ) ^ bit1;
12475   }
12476 
operator ~(VideoCodingControlFlagBitsKHR bits)12477   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingControlFlagsKHR operator~( VideoCodingControlFlagBitsKHR bits )
12478     VULKAN_HPP_NOEXCEPT
12479   {
12480     return ~( VideoCodingControlFlagsKHR( bits ) );
12481   }
12482 
to_string(VideoCodingControlFlagsKHR value)12483   VULKAN_HPP_INLINE std::string to_string( VideoCodingControlFlagsKHR value )
12484   {
12485     if ( !value )
12486       return "{}";
12487 
12488     std::string result;
12489     if ( value & VideoCodingControlFlagBitsKHR::eReset )
12490       result += "Reset | ";
12491 
12492     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12493   }
12494 
12495   using VideoCodingQualityPresetFlagsKHR = Flags<VideoCodingQualityPresetFlagBitsKHR>;
12496 
12497   template <>
12498   struct FlagTraits<VideoCodingQualityPresetFlagBitsKHR>
12499   {
12500     enum : VkFlags
12501     {
12502       allFlags = VkFlags( VideoCodingQualityPresetFlagBitsKHR::eNormal ) |
12503                  VkFlags( VideoCodingQualityPresetFlagBitsKHR::ePower ) |
12504                  VkFlags( VideoCodingQualityPresetFlagBitsKHR::eQuality )
12505     };
12506   };
12507 
12508   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingQualityPresetFlagsKHR
operator |(VideoCodingQualityPresetFlagBitsKHR bit0,VideoCodingQualityPresetFlagBitsKHR bit1)12509     operator|( VideoCodingQualityPresetFlagBitsKHR bit0, VideoCodingQualityPresetFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12510   {
12511     return VideoCodingQualityPresetFlagsKHR( bit0 ) | bit1;
12512   }
12513 
12514   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingQualityPresetFlagsKHR
operator &(VideoCodingQualityPresetFlagBitsKHR bit0,VideoCodingQualityPresetFlagBitsKHR bit1)12515     operator&( VideoCodingQualityPresetFlagBitsKHR bit0, VideoCodingQualityPresetFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12516   {
12517     return VideoCodingQualityPresetFlagsKHR( bit0 ) & bit1;
12518   }
12519 
12520   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingQualityPresetFlagsKHR
operator ^(VideoCodingQualityPresetFlagBitsKHR bit0,VideoCodingQualityPresetFlagBitsKHR bit1)12521     operator^( VideoCodingQualityPresetFlagBitsKHR bit0, VideoCodingQualityPresetFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12522   {
12523     return VideoCodingQualityPresetFlagsKHR( bit0 ) ^ bit1;
12524   }
12525 
12526   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingQualityPresetFlagsKHR
operator ~(VideoCodingQualityPresetFlagBitsKHR bits)12527     operator~( VideoCodingQualityPresetFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
12528   {
12529     return ~( VideoCodingQualityPresetFlagsKHR( bits ) );
12530   }
12531 
to_string(VideoCodingQualityPresetFlagsKHR value)12532   VULKAN_HPP_INLINE std::string to_string( VideoCodingQualityPresetFlagsKHR value )
12533   {
12534     if ( !value )
12535       return "{}";
12536 
12537     std::string result;
12538     if ( value & VideoCodingQualityPresetFlagBitsKHR::eNormal )
12539       result += "Normal | ";
12540     if ( value & VideoCodingQualityPresetFlagBitsKHR::ePower )
12541       result += "Power | ";
12542     if ( value & VideoCodingQualityPresetFlagBitsKHR::eQuality )
12543       result += "Quality | ";
12544 
12545     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12546   }
12547 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
12548 
12549 #if defined( VK_ENABLE_BETA_EXTENSIONS )
12550   //=== VK_KHR_video_decode_queue ===
12551 
12552   using VideoDecodeFlagsKHR = Flags<VideoDecodeFlagBitsKHR>;
12553 
12554   template <>
12555   struct FlagTraits<VideoDecodeFlagBitsKHR>
12556   {
12557     enum : VkFlags
12558     {
12559       allFlags = VkFlags( VideoDecodeFlagBitsKHR::eDefault ) | VkFlags( VideoDecodeFlagBitsKHR::eReserved0 )
12560     };
12561   };
12562 
12563   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeFlagsKHR
operator |(VideoDecodeFlagBitsKHR bit0,VideoDecodeFlagBitsKHR bit1)12564     operator|( VideoDecodeFlagBitsKHR bit0, VideoDecodeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12565   {
12566     return VideoDecodeFlagsKHR( bit0 ) | bit1;
12567   }
12568 
12569   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeFlagsKHR
operator &(VideoDecodeFlagBitsKHR bit0,VideoDecodeFlagBitsKHR bit1)12570     operator&( VideoDecodeFlagBitsKHR bit0, VideoDecodeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12571   {
12572     return VideoDecodeFlagsKHR( bit0 ) & bit1;
12573   }
12574 
12575   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeFlagsKHR
operator ^(VideoDecodeFlagBitsKHR bit0,VideoDecodeFlagBitsKHR bit1)12576     operator^( VideoDecodeFlagBitsKHR bit0, VideoDecodeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12577   {
12578     return VideoDecodeFlagsKHR( bit0 ) ^ bit1;
12579   }
12580 
operator ~(VideoDecodeFlagBitsKHR bits)12581   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeFlagsKHR operator~( VideoDecodeFlagBitsKHR bits )
12582     VULKAN_HPP_NOEXCEPT
12583   {
12584     return ~( VideoDecodeFlagsKHR( bits ) );
12585   }
12586 
to_string(VideoDecodeFlagsKHR value)12587   VULKAN_HPP_INLINE std::string to_string( VideoDecodeFlagsKHR value )
12588   {
12589     if ( !value )
12590       return "{}";
12591 
12592     std::string result;
12593     if ( value & VideoDecodeFlagBitsKHR::eReserved0 )
12594       result += "Reserved0 | ";
12595 
12596     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12597   }
12598 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
12599 
12600   //=== VK_EXT_transform_feedback ===
12601 
12602   using PipelineRasterizationStateStreamCreateFlagsEXT = Flags<PipelineRasterizationStateStreamCreateFlagBitsEXT>;
12603 
to_string(PipelineRasterizationStateStreamCreateFlagsEXT)12604   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagsEXT )
12605   {
12606     return "{}";
12607   }
12608 
12609 #if defined( VK_ENABLE_BETA_EXTENSIONS )
12610   //=== VK_EXT_video_encode_h264 ===
12611 
12612   using VideoEncodeH264CapabilityFlagsEXT = Flags<VideoEncodeH264CapabilityFlagBitsEXT>;
12613 
12614   template <>
12615   struct FlagTraits<VideoEncodeH264CapabilityFlagBitsEXT>
12616   {
12617     enum : VkFlags
12618     {
12619       allFlags = VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eCabac ) |
12620                  VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eCavlc ) |
12621                  VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eWeightedBiPredImplicit ) |
12622                  VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eTransform8X8 ) |
12623                  VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eChromaQpOffset ) |
12624                  VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eSecondChromaQpOffset ) |
12625                  VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterDisabled ) |
12626                  VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterEnabled ) |
12627                  VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterPartial ) |
12628                  VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eMultipleSlicePerFrame ) |
12629                  VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eEvenlyDistributedSliceSize )
12630     };
12631   };
12632 
operator |(VideoEncodeH264CapabilityFlagBitsEXT bit0,VideoEncodeH264CapabilityFlagBitsEXT bit1)12633   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilityFlagsEXT operator|(
12634     VideoEncodeH264CapabilityFlagBitsEXT bit0, VideoEncodeH264CapabilityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12635   {
12636     return VideoEncodeH264CapabilityFlagsEXT( bit0 ) | bit1;
12637   }
12638 
operator &(VideoEncodeH264CapabilityFlagBitsEXT bit0,VideoEncodeH264CapabilityFlagBitsEXT bit1)12639   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilityFlagsEXT operator&(
12640     VideoEncodeH264CapabilityFlagBitsEXT bit0, VideoEncodeH264CapabilityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12641   {
12642     return VideoEncodeH264CapabilityFlagsEXT( bit0 ) & bit1;
12643   }
12644 
operator ^(VideoEncodeH264CapabilityFlagBitsEXT bit0,VideoEncodeH264CapabilityFlagBitsEXT bit1)12645   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilityFlagsEXT operator^(
12646     VideoEncodeH264CapabilityFlagBitsEXT bit0, VideoEncodeH264CapabilityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12647   {
12648     return VideoEncodeH264CapabilityFlagsEXT( bit0 ) ^ bit1;
12649   }
12650 
12651   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilityFlagsEXT
operator ~(VideoEncodeH264CapabilityFlagBitsEXT bits)12652     operator~( VideoEncodeH264CapabilityFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12653   {
12654     return ~( VideoEncodeH264CapabilityFlagsEXT( bits ) );
12655   }
12656 
to_string(VideoEncodeH264CapabilityFlagsEXT value)12657   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CapabilityFlagsEXT value )
12658   {
12659     if ( !value )
12660       return "{}";
12661 
12662     std::string result;
12663     if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eCabac )
12664       result += "Cabac | ";
12665     if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eCavlc )
12666       result += "Cavlc | ";
12667     if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eWeightedBiPredImplicit )
12668       result += "WeightedBiPredImplicit | ";
12669     if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eTransform8X8 )
12670       result += "Transform8X8 | ";
12671     if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eChromaQpOffset )
12672       result += "ChromaQpOffset | ";
12673     if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eSecondChromaQpOffset )
12674       result += "SecondChromaQpOffset | ";
12675     if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterDisabled )
12676       result += "DeblockingFilterDisabled | ";
12677     if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterEnabled )
12678       result += "DeblockingFilterEnabled | ";
12679     if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterPartial )
12680       result += "DeblockingFilterPartial | ";
12681     if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eMultipleSlicePerFrame )
12682       result += "MultipleSlicePerFrame | ";
12683     if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eEvenlyDistributedSliceSize )
12684       result += "EvenlyDistributedSliceSize | ";
12685 
12686     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12687   }
12688 
12689   using VideoEncodeH264InputModeFlagsEXT = Flags<VideoEncodeH264InputModeFlagBitsEXT>;
12690 
12691   template <>
12692   struct FlagTraits<VideoEncodeH264InputModeFlagBitsEXT>
12693   {
12694     enum : VkFlags
12695     {
12696       allFlags = VkFlags( VideoEncodeH264InputModeFlagBitsEXT::eFrame ) |
12697                  VkFlags( VideoEncodeH264InputModeFlagBitsEXT::eSlice ) |
12698                  VkFlags( VideoEncodeH264InputModeFlagBitsEXT::eNonVcl )
12699     };
12700   };
12701 
12702   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264InputModeFlagsEXT
operator |(VideoEncodeH264InputModeFlagBitsEXT bit0,VideoEncodeH264InputModeFlagBitsEXT bit1)12703     operator|( VideoEncodeH264InputModeFlagBitsEXT bit0, VideoEncodeH264InputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12704   {
12705     return VideoEncodeH264InputModeFlagsEXT( bit0 ) | bit1;
12706   }
12707 
12708   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264InputModeFlagsEXT
operator &(VideoEncodeH264InputModeFlagBitsEXT bit0,VideoEncodeH264InputModeFlagBitsEXT bit1)12709     operator&( VideoEncodeH264InputModeFlagBitsEXT bit0, VideoEncodeH264InputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12710   {
12711     return VideoEncodeH264InputModeFlagsEXT( bit0 ) & bit1;
12712   }
12713 
12714   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264InputModeFlagsEXT
operator ^(VideoEncodeH264InputModeFlagBitsEXT bit0,VideoEncodeH264InputModeFlagBitsEXT bit1)12715     operator^( VideoEncodeH264InputModeFlagBitsEXT bit0, VideoEncodeH264InputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12716   {
12717     return VideoEncodeH264InputModeFlagsEXT( bit0 ) ^ bit1;
12718   }
12719 
12720   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264InputModeFlagsEXT
operator ~(VideoEncodeH264InputModeFlagBitsEXT bits)12721     operator~( VideoEncodeH264InputModeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12722   {
12723     return ~( VideoEncodeH264InputModeFlagsEXT( bits ) );
12724   }
12725 
to_string(VideoEncodeH264InputModeFlagsEXT value)12726   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264InputModeFlagsEXT value )
12727   {
12728     if ( !value )
12729       return "{}";
12730 
12731     std::string result;
12732     if ( value & VideoEncodeH264InputModeFlagBitsEXT::eFrame )
12733       result += "Frame | ";
12734     if ( value & VideoEncodeH264InputModeFlagBitsEXT::eSlice )
12735       result += "Slice | ";
12736     if ( value & VideoEncodeH264InputModeFlagBitsEXT::eNonVcl )
12737       result += "NonVcl | ";
12738 
12739     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12740   }
12741 
12742   using VideoEncodeH264OutputModeFlagsEXT = Flags<VideoEncodeH264OutputModeFlagBitsEXT>;
12743 
12744   template <>
12745   struct FlagTraits<VideoEncodeH264OutputModeFlagBitsEXT>
12746   {
12747     enum : VkFlags
12748     {
12749       allFlags = VkFlags( VideoEncodeH264OutputModeFlagBitsEXT::eFrame ) |
12750                  VkFlags( VideoEncodeH264OutputModeFlagBitsEXT::eSlice ) |
12751                  VkFlags( VideoEncodeH264OutputModeFlagBitsEXT::eNonVcl )
12752     };
12753   };
12754 
operator |(VideoEncodeH264OutputModeFlagBitsEXT bit0,VideoEncodeH264OutputModeFlagBitsEXT bit1)12755   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264OutputModeFlagsEXT operator|(
12756     VideoEncodeH264OutputModeFlagBitsEXT bit0, VideoEncodeH264OutputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12757   {
12758     return VideoEncodeH264OutputModeFlagsEXT( bit0 ) | bit1;
12759   }
12760 
operator &(VideoEncodeH264OutputModeFlagBitsEXT bit0,VideoEncodeH264OutputModeFlagBitsEXT bit1)12761   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264OutputModeFlagsEXT operator&(
12762     VideoEncodeH264OutputModeFlagBitsEXT bit0, VideoEncodeH264OutputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12763   {
12764     return VideoEncodeH264OutputModeFlagsEXT( bit0 ) & bit1;
12765   }
12766 
operator ^(VideoEncodeH264OutputModeFlagBitsEXT bit0,VideoEncodeH264OutputModeFlagBitsEXT bit1)12767   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264OutputModeFlagsEXT operator^(
12768     VideoEncodeH264OutputModeFlagBitsEXT bit0, VideoEncodeH264OutputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12769   {
12770     return VideoEncodeH264OutputModeFlagsEXT( bit0 ) ^ bit1;
12771   }
12772 
12773   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264OutputModeFlagsEXT
operator ~(VideoEncodeH264OutputModeFlagBitsEXT bits)12774     operator~( VideoEncodeH264OutputModeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12775   {
12776     return ~( VideoEncodeH264OutputModeFlagsEXT( bits ) );
12777   }
12778 
to_string(VideoEncodeH264OutputModeFlagsEXT value)12779   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264OutputModeFlagsEXT value )
12780   {
12781     if ( !value )
12782       return "{}";
12783 
12784     std::string result;
12785     if ( value & VideoEncodeH264OutputModeFlagBitsEXT::eFrame )
12786       result += "Frame | ";
12787     if ( value & VideoEncodeH264OutputModeFlagBitsEXT::eSlice )
12788       result += "Slice | ";
12789     if ( value & VideoEncodeH264OutputModeFlagBitsEXT::eNonVcl )
12790       result += "NonVcl | ";
12791 
12792     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12793   }
12794 
12795   using VideoEncodeH264CreateFlagsEXT = Flags<VideoEncodeH264CreateFlagBitsEXT>;
12796 
12797   template <>
12798   struct FlagTraits<VideoEncodeH264CreateFlagBitsEXT>
12799   {
12800     enum : VkFlags
12801     {
12802       allFlags =
12803         VkFlags( VideoEncodeH264CreateFlagBitsEXT::eDefault ) | VkFlags( VideoEncodeH264CreateFlagBitsEXT::eReserved0 )
12804     };
12805   };
12806 
12807   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CreateFlagsEXT
operator |(VideoEncodeH264CreateFlagBitsEXT bit0,VideoEncodeH264CreateFlagBitsEXT bit1)12808     operator|( VideoEncodeH264CreateFlagBitsEXT bit0, VideoEncodeH264CreateFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12809   {
12810     return VideoEncodeH264CreateFlagsEXT( bit0 ) | bit1;
12811   }
12812 
12813   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CreateFlagsEXT
operator &(VideoEncodeH264CreateFlagBitsEXT bit0,VideoEncodeH264CreateFlagBitsEXT bit1)12814     operator&( VideoEncodeH264CreateFlagBitsEXT bit0, VideoEncodeH264CreateFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12815   {
12816     return VideoEncodeH264CreateFlagsEXT( bit0 ) & bit1;
12817   }
12818 
12819   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CreateFlagsEXT
operator ^(VideoEncodeH264CreateFlagBitsEXT bit0,VideoEncodeH264CreateFlagBitsEXT bit1)12820     operator^( VideoEncodeH264CreateFlagBitsEXT bit0, VideoEncodeH264CreateFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12821   {
12822     return VideoEncodeH264CreateFlagsEXT( bit0 ) ^ bit1;
12823   }
12824 
12825   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CreateFlagsEXT
operator ~(VideoEncodeH264CreateFlagBitsEXT bits)12826     operator~( VideoEncodeH264CreateFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12827   {
12828     return ~( VideoEncodeH264CreateFlagsEXT( bits ) );
12829   }
12830 
to_string(VideoEncodeH264CreateFlagsEXT value)12831   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CreateFlagsEXT value )
12832   {
12833     if ( !value )
12834       return "{}";
12835 
12836     std::string result;
12837     if ( value & VideoEncodeH264CreateFlagBitsEXT::eReserved0 )
12838       result += "Reserved0 | ";
12839 
12840     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12841   }
12842 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
12843 
12844 #if defined( VK_ENABLE_BETA_EXTENSIONS )
12845   //=== VK_EXT_video_encode_h265 ===
12846 
12847   using VideoEncodeH265CapabilityFlagsEXT = Flags<VideoEncodeH265CapabilityFlagBitsEXT>;
12848 
12849   template <>
12850   struct FlagTraits<VideoEncodeH265CapabilityFlagBitsEXT>
12851   {
12852     enum : VkFlags
12853     {
12854       allFlags = VkFlags( VideoEncodeH265CapabilityFlagBitsEXT::eWeightedBiPredImplicit ) |
12855                  VkFlags( VideoEncodeH265CapabilityFlagBitsEXT::eTransform8X8 ) |
12856                  VkFlags( VideoEncodeH265CapabilityFlagBitsEXT::eChromaQpOffset ) |
12857                  VkFlags( VideoEncodeH265CapabilityFlagBitsEXT::eSecondChromaQpOffset ) |
12858                  VkFlags( VideoEncodeH265CapabilityFlagBitsEXT::eDeblockingFilterDisabled ) |
12859                  VkFlags( VideoEncodeH265CapabilityFlagBitsEXT::eDeblockingFilterEnabled ) |
12860                  VkFlags( VideoEncodeH265CapabilityFlagBitsEXT::eDeblockingFilterPartial ) |
12861                  VkFlags( VideoEncodeH265CapabilityFlagBitsEXT::eMultipleSlicePerFrame ) |
12862                  VkFlags( VideoEncodeH265CapabilityFlagBitsEXT::eEvenlyDistributedSliceSize )
12863     };
12864   };
12865 
operator |(VideoEncodeH265CapabilityFlagBitsEXT bit0,VideoEncodeH265CapabilityFlagBitsEXT bit1)12866   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265CapabilityFlagsEXT operator|(
12867     VideoEncodeH265CapabilityFlagBitsEXT bit0, VideoEncodeH265CapabilityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12868   {
12869     return VideoEncodeH265CapabilityFlagsEXT( bit0 ) | bit1;
12870   }
12871 
operator &(VideoEncodeH265CapabilityFlagBitsEXT bit0,VideoEncodeH265CapabilityFlagBitsEXT bit1)12872   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265CapabilityFlagsEXT operator&(
12873     VideoEncodeH265CapabilityFlagBitsEXT bit0, VideoEncodeH265CapabilityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12874   {
12875     return VideoEncodeH265CapabilityFlagsEXT( bit0 ) & bit1;
12876   }
12877 
operator ^(VideoEncodeH265CapabilityFlagBitsEXT bit0,VideoEncodeH265CapabilityFlagBitsEXT bit1)12878   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265CapabilityFlagsEXT operator^(
12879     VideoEncodeH265CapabilityFlagBitsEXT bit0, VideoEncodeH265CapabilityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12880   {
12881     return VideoEncodeH265CapabilityFlagsEXT( bit0 ) ^ bit1;
12882   }
12883 
12884   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265CapabilityFlagsEXT
operator ~(VideoEncodeH265CapabilityFlagBitsEXT bits)12885     operator~( VideoEncodeH265CapabilityFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12886   {
12887     return ~( VideoEncodeH265CapabilityFlagsEXT( bits ) );
12888   }
12889 
to_string(VideoEncodeH265CapabilityFlagsEXT value)12890   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CapabilityFlagsEXT value )
12891   {
12892     if ( !value )
12893       return "{}";
12894 
12895     std::string result;
12896     if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eWeightedBiPredImplicit )
12897       result += "WeightedBiPredImplicit | ";
12898     if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eTransform8X8 )
12899       result += "Transform8X8 | ";
12900     if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eChromaQpOffset )
12901       result += "ChromaQpOffset | ";
12902     if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eSecondChromaQpOffset )
12903       result += "SecondChromaQpOffset | ";
12904     if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eDeblockingFilterDisabled )
12905       result += "DeblockingFilterDisabled | ";
12906     if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eDeblockingFilterEnabled )
12907       result += "DeblockingFilterEnabled | ";
12908     if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eDeblockingFilterPartial )
12909       result += "DeblockingFilterPartial | ";
12910     if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eMultipleSlicePerFrame )
12911       result += "MultipleSlicePerFrame | ";
12912     if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eEvenlyDistributedSliceSize )
12913       result += "EvenlyDistributedSliceSize | ";
12914 
12915     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12916   }
12917 
12918   using VideoEncodeH265InputModeFlagsEXT = Flags<VideoEncodeH265InputModeFlagBitsEXT>;
12919 
12920   template <>
12921   struct FlagTraits<VideoEncodeH265InputModeFlagBitsEXT>
12922   {
12923     enum : VkFlags
12924     {
12925       allFlags = VkFlags( VideoEncodeH265InputModeFlagBitsEXT::eFrame ) |
12926                  VkFlags( VideoEncodeH265InputModeFlagBitsEXT::eSlice ) |
12927                  VkFlags( VideoEncodeH265InputModeFlagBitsEXT::eNonVcl )
12928     };
12929   };
12930 
12931   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265InputModeFlagsEXT
operator |(VideoEncodeH265InputModeFlagBitsEXT bit0,VideoEncodeH265InputModeFlagBitsEXT bit1)12932     operator|( VideoEncodeH265InputModeFlagBitsEXT bit0, VideoEncodeH265InputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12933   {
12934     return VideoEncodeH265InputModeFlagsEXT( bit0 ) | bit1;
12935   }
12936 
12937   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265InputModeFlagsEXT
operator &(VideoEncodeH265InputModeFlagBitsEXT bit0,VideoEncodeH265InputModeFlagBitsEXT bit1)12938     operator&( VideoEncodeH265InputModeFlagBitsEXT bit0, VideoEncodeH265InputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12939   {
12940     return VideoEncodeH265InputModeFlagsEXT( bit0 ) & bit1;
12941   }
12942 
12943   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265InputModeFlagsEXT
operator ^(VideoEncodeH265InputModeFlagBitsEXT bit0,VideoEncodeH265InputModeFlagBitsEXT bit1)12944     operator^( VideoEncodeH265InputModeFlagBitsEXT bit0, VideoEncodeH265InputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12945   {
12946     return VideoEncodeH265InputModeFlagsEXT( bit0 ) ^ bit1;
12947   }
12948 
12949   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265InputModeFlagsEXT
operator ~(VideoEncodeH265InputModeFlagBitsEXT bits)12950     operator~( VideoEncodeH265InputModeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12951   {
12952     return ~( VideoEncodeH265InputModeFlagsEXT( bits ) );
12953   }
12954 
to_string(VideoEncodeH265InputModeFlagsEXT value)12955   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265InputModeFlagsEXT value )
12956   {
12957     if ( !value )
12958       return "{}";
12959 
12960     std::string result;
12961     if ( value & VideoEncodeH265InputModeFlagBitsEXT::eFrame )
12962       result += "Frame | ";
12963     if ( value & VideoEncodeH265InputModeFlagBitsEXT::eSlice )
12964       result += "Slice | ";
12965     if ( value & VideoEncodeH265InputModeFlagBitsEXT::eNonVcl )
12966       result += "NonVcl | ";
12967 
12968     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12969   }
12970 
12971   using VideoEncodeH265OutputModeFlagsEXT = Flags<VideoEncodeH265OutputModeFlagBitsEXT>;
12972 
12973   template <>
12974   struct FlagTraits<VideoEncodeH265OutputModeFlagBitsEXT>
12975   {
12976     enum : VkFlags
12977     {
12978       allFlags = VkFlags( VideoEncodeH265OutputModeFlagBitsEXT::eFrame ) |
12979                  VkFlags( VideoEncodeH265OutputModeFlagBitsEXT::eSlice ) |
12980                  VkFlags( VideoEncodeH265OutputModeFlagBitsEXT::eNonVcl )
12981     };
12982   };
12983 
operator |(VideoEncodeH265OutputModeFlagBitsEXT bit0,VideoEncodeH265OutputModeFlagBitsEXT bit1)12984   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265OutputModeFlagsEXT operator|(
12985     VideoEncodeH265OutputModeFlagBitsEXT bit0, VideoEncodeH265OutputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12986   {
12987     return VideoEncodeH265OutputModeFlagsEXT( bit0 ) | bit1;
12988   }
12989 
operator &(VideoEncodeH265OutputModeFlagBitsEXT bit0,VideoEncodeH265OutputModeFlagBitsEXT bit1)12990   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265OutputModeFlagsEXT operator&(
12991     VideoEncodeH265OutputModeFlagBitsEXT bit0, VideoEncodeH265OutputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12992   {
12993     return VideoEncodeH265OutputModeFlagsEXT( bit0 ) & bit1;
12994   }
12995 
operator ^(VideoEncodeH265OutputModeFlagBitsEXT bit0,VideoEncodeH265OutputModeFlagBitsEXT bit1)12996   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265OutputModeFlagsEXT operator^(
12997     VideoEncodeH265OutputModeFlagBitsEXT bit0, VideoEncodeH265OutputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12998   {
12999     return VideoEncodeH265OutputModeFlagsEXT( bit0 ) ^ bit1;
13000   }
13001 
13002   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265OutputModeFlagsEXT
operator ~(VideoEncodeH265OutputModeFlagBitsEXT bits)13003     operator~( VideoEncodeH265OutputModeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
13004   {
13005     return ~( VideoEncodeH265OutputModeFlagsEXT( bits ) );
13006   }
13007 
to_string(VideoEncodeH265OutputModeFlagsEXT value)13008   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265OutputModeFlagsEXT value )
13009   {
13010     if ( !value )
13011       return "{}";
13012 
13013     std::string result;
13014     if ( value & VideoEncodeH265OutputModeFlagBitsEXT::eFrame )
13015       result += "Frame | ";
13016     if ( value & VideoEncodeH265OutputModeFlagBitsEXT::eSlice )
13017       result += "Slice | ";
13018     if ( value & VideoEncodeH265OutputModeFlagBitsEXT::eNonVcl )
13019       result += "NonVcl | ";
13020 
13021     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13022   }
13023 
13024   using VideoEncodeH265CreateFlagsEXT = Flags<VideoEncodeH265CreateFlagBitsEXT>;
13025 
to_string(VideoEncodeH265CreateFlagsEXT)13026   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CreateFlagsEXT )
13027   {
13028     return "{}";
13029   }
13030 
13031   using VideoEncodeH265CtbSizeFlagsEXT = Flags<VideoEncodeH265CtbSizeFlagBitsEXT>;
13032 
13033   template <>
13034   struct FlagTraits<VideoEncodeH265CtbSizeFlagBitsEXT>
13035   {
13036     enum : VkFlags
13037     {
13038       allFlags = VkFlags( VideoEncodeH265CtbSizeFlagBitsEXT::e8 ) | VkFlags( VideoEncodeH265CtbSizeFlagBitsEXT::e16 ) |
13039                  VkFlags( VideoEncodeH265CtbSizeFlagBitsEXT::e32 ) | VkFlags( VideoEncodeH265CtbSizeFlagBitsEXT::e64 )
13040     };
13041   };
13042 
13043   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265CtbSizeFlagsEXT
operator |(VideoEncodeH265CtbSizeFlagBitsEXT bit0,VideoEncodeH265CtbSizeFlagBitsEXT bit1)13044     operator|( VideoEncodeH265CtbSizeFlagBitsEXT bit0, VideoEncodeH265CtbSizeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13045   {
13046     return VideoEncodeH265CtbSizeFlagsEXT( bit0 ) | bit1;
13047   }
13048 
13049   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265CtbSizeFlagsEXT
operator &(VideoEncodeH265CtbSizeFlagBitsEXT bit0,VideoEncodeH265CtbSizeFlagBitsEXT bit1)13050     operator&( VideoEncodeH265CtbSizeFlagBitsEXT bit0, VideoEncodeH265CtbSizeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13051   {
13052     return VideoEncodeH265CtbSizeFlagsEXT( bit0 ) & bit1;
13053   }
13054 
13055   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265CtbSizeFlagsEXT
operator ^(VideoEncodeH265CtbSizeFlagBitsEXT bit0,VideoEncodeH265CtbSizeFlagBitsEXT bit1)13056     operator^( VideoEncodeH265CtbSizeFlagBitsEXT bit0, VideoEncodeH265CtbSizeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13057   {
13058     return VideoEncodeH265CtbSizeFlagsEXT( bit0 ) ^ bit1;
13059   }
13060 
13061   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265CtbSizeFlagsEXT
operator ~(VideoEncodeH265CtbSizeFlagBitsEXT bits)13062     operator~( VideoEncodeH265CtbSizeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
13063   {
13064     return ~( VideoEncodeH265CtbSizeFlagsEXT( bits ) );
13065   }
13066 
to_string(VideoEncodeH265CtbSizeFlagsEXT value)13067   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CtbSizeFlagsEXT value )
13068   {
13069     if ( !value )
13070       return "{}";
13071 
13072     std::string result;
13073     if ( value & VideoEncodeH265CtbSizeFlagBitsEXT::e8 )
13074       result += "8 | ";
13075     if ( value & VideoEncodeH265CtbSizeFlagBitsEXT::e16 )
13076       result += "16 | ";
13077     if ( value & VideoEncodeH265CtbSizeFlagBitsEXT::e32 )
13078       result += "32 | ";
13079     if ( value & VideoEncodeH265CtbSizeFlagBitsEXT::e64 )
13080       result += "64 | ";
13081 
13082     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13083   }
13084 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13085 
13086 #if defined( VK_ENABLE_BETA_EXTENSIONS )
13087   //=== VK_EXT_video_decode_h264 ===
13088 
13089   using VideoDecodeH264PictureLayoutFlagsEXT = Flags<VideoDecodeH264PictureLayoutFlagBitsEXT>;
13090 
13091   template <>
13092   struct FlagTraits<VideoDecodeH264PictureLayoutFlagBitsEXT>
13093   {
13094     enum : VkFlags
13095     {
13096       allFlags = VkFlags( VideoDecodeH264PictureLayoutFlagBitsEXT::eProgressive ) |
13097                  VkFlags( VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedInterleavedLines ) |
13098                  VkFlags( VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedSeparatePlanes )
13099     };
13100   };
13101 
operator |(VideoDecodeH264PictureLayoutFlagBitsEXT bit0,VideoDecodeH264PictureLayoutFlagBitsEXT bit1)13102   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264PictureLayoutFlagsEXT operator|(
13103     VideoDecodeH264PictureLayoutFlagBitsEXT bit0, VideoDecodeH264PictureLayoutFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13104   {
13105     return VideoDecodeH264PictureLayoutFlagsEXT( bit0 ) | bit1;
13106   }
13107 
operator &(VideoDecodeH264PictureLayoutFlagBitsEXT bit0,VideoDecodeH264PictureLayoutFlagBitsEXT bit1)13108   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264PictureLayoutFlagsEXT operator&(
13109     VideoDecodeH264PictureLayoutFlagBitsEXT bit0, VideoDecodeH264PictureLayoutFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13110   {
13111     return VideoDecodeH264PictureLayoutFlagsEXT( bit0 ) & bit1;
13112   }
13113 
operator ^(VideoDecodeH264PictureLayoutFlagBitsEXT bit0,VideoDecodeH264PictureLayoutFlagBitsEXT bit1)13114   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264PictureLayoutFlagsEXT operator^(
13115     VideoDecodeH264PictureLayoutFlagBitsEXT bit0, VideoDecodeH264PictureLayoutFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13116   {
13117     return VideoDecodeH264PictureLayoutFlagsEXT( bit0 ) ^ bit1;
13118   }
13119 
13120   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264PictureLayoutFlagsEXT
operator ~(VideoDecodeH264PictureLayoutFlagBitsEXT bits)13121     operator~( VideoDecodeH264PictureLayoutFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
13122   {
13123     return ~( VideoDecodeH264PictureLayoutFlagsEXT( bits ) );
13124   }
13125 
to_string(VideoDecodeH264PictureLayoutFlagsEXT value)13126   VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264PictureLayoutFlagsEXT value )
13127   {
13128     if ( !value )
13129       return "{}";
13130 
13131     std::string result;
13132     if ( value & VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedInterleavedLines )
13133       result += "InterlacedInterleavedLines | ";
13134     if ( value & VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedSeparatePlanes )
13135       result += "InterlacedSeparatePlanes | ";
13136 
13137     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13138   }
13139 
13140   using VideoDecodeH264CreateFlagsEXT = Flags<VideoDecodeH264CreateFlagBitsEXT>;
13141 
to_string(VideoDecodeH264CreateFlagsEXT)13142   VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264CreateFlagsEXT )
13143   {
13144     return "{}";
13145   }
13146 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13147 
13148 #if defined( VK_USE_PLATFORM_GGP )
13149   //=== VK_GGP_stream_descriptor_surface ===
13150 
13151   using StreamDescriptorSurfaceCreateFlagsGGP = Flags<StreamDescriptorSurfaceCreateFlagBitsGGP>;
13152 
to_string(StreamDescriptorSurfaceCreateFlagsGGP)13153   VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagsGGP )
13154   {
13155     return "{}";
13156   }
13157 #endif /*VK_USE_PLATFORM_GGP*/
13158 
13159   //=== VK_NV_external_memory_capabilities ===
13160 
13161   using ExternalMemoryHandleTypeFlagsNV = Flags<ExternalMemoryHandleTypeFlagBitsNV>;
13162 
13163   template <>
13164   struct FlagTraits<ExternalMemoryHandleTypeFlagBitsNV>
13165   {
13166     enum : VkFlags
13167     {
13168       allFlags = VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 ) |
13169                  VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt ) |
13170                  VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image ) |
13171                  VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt )
13172     };
13173   };
13174 
13175   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV
operator |(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)13176     operator|( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
13177   {
13178     return ExternalMemoryHandleTypeFlagsNV( bit0 ) | bit1;
13179   }
13180 
13181   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV
operator &(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)13182     operator&( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
13183   {
13184     return ExternalMemoryHandleTypeFlagsNV( bit0 ) & bit1;
13185   }
13186 
13187   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV
operator ^(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)13188     operator^( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
13189   {
13190     return ExternalMemoryHandleTypeFlagsNV( bit0 ) ^ bit1;
13191   }
13192 
13193   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV
operator ~(ExternalMemoryHandleTypeFlagBitsNV bits)13194     operator~( ExternalMemoryHandleTypeFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
13195   {
13196     return ~( ExternalMemoryHandleTypeFlagsNV( bits ) );
13197   }
13198 
to_string(ExternalMemoryHandleTypeFlagsNV value)13199   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagsNV value )
13200   {
13201     if ( !value )
13202       return "{}";
13203 
13204     std::string result;
13205     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 )
13206       result += "OpaqueWin32 | ";
13207     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt )
13208       result += "OpaqueWin32Kmt | ";
13209     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image )
13210       result += "D3D11Image | ";
13211     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt )
13212       result += "D3D11ImageKmt | ";
13213 
13214     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13215   }
13216 
13217   using ExternalMemoryFeatureFlagsNV = Flags<ExternalMemoryFeatureFlagBitsNV>;
13218 
13219   template <>
13220   struct FlagTraits<ExternalMemoryFeatureFlagBitsNV>
13221   {
13222     enum : VkFlags
13223     {
13224       allFlags = VkFlags( ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly ) |
13225                  VkFlags( ExternalMemoryFeatureFlagBitsNV::eExportable ) |
13226                  VkFlags( ExternalMemoryFeatureFlagBitsNV::eImportable )
13227     };
13228   };
13229 
13230   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV
operator |(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)13231     operator|( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
13232   {
13233     return ExternalMemoryFeatureFlagsNV( bit0 ) | bit1;
13234   }
13235 
13236   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV
operator &(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)13237     operator&( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
13238   {
13239     return ExternalMemoryFeatureFlagsNV( bit0 ) & bit1;
13240   }
13241 
13242   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV
operator ^(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)13243     operator^( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
13244   {
13245     return ExternalMemoryFeatureFlagsNV( bit0 ) ^ bit1;
13246   }
13247 
operator ~(ExternalMemoryFeatureFlagBitsNV bits)13248   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator~( ExternalMemoryFeatureFlagBitsNV bits )
13249     VULKAN_HPP_NOEXCEPT
13250   {
13251     return ~( ExternalMemoryFeatureFlagsNV( bits ) );
13252   }
13253 
to_string(ExternalMemoryFeatureFlagsNV value)13254   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagsNV value )
13255   {
13256     if ( !value )
13257       return "{}";
13258 
13259     std::string result;
13260     if ( value & ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly )
13261       result += "DedicatedOnly | ";
13262     if ( value & ExternalMemoryFeatureFlagBitsNV::eExportable )
13263       result += "Exportable | ";
13264     if ( value & ExternalMemoryFeatureFlagBitsNV::eImportable )
13265       result += "Importable | ";
13266 
13267     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13268   }
13269 
13270 #if defined( VK_USE_PLATFORM_VI_NN )
13271   //=== VK_NN_vi_surface ===
13272 
13273   using ViSurfaceCreateFlagsNN = Flags<ViSurfaceCreateFlagBitsNN>;
13274 
to_string(ViSurfaceCreateFlagsNN)13275   VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagsNN )
13276   {
13277     return "{}";
13278   }
13279 #endif /*VK_USE_PLATFORM_VI_NN*/
13280 
13281   //=== VK_EXT_conditional_rendering ===
13282 
13283   using ConditionalRenderingFlagsEXT = Flags<ConditionalRenderingFlagBitsEXT>;
13284 
13285   template <>
13286   struct FlagTraits<ConditionalRenderingFlagBitsEXT>
13287   {
13288     enum : VkFlags
13289     {
13290       allFlags = VkFlags( ConditionalRenderingFlagBitsEXT::eInverted )
13291     };
13292   };
13293 
13294   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT
operator |(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)13295     operator|( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13296   {
13297     return ConditionalRenderingFlagsEXT( bit0 ) | bit1;
13298   }
13299 
13300   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT
operator &(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)13301     operator&( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13302   {
13303     return ConditionalRenderingFlagsEXT( bit0 ) & bit1;
13304   }
13305 
13306   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT
operator ^(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)13307     operator^( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13308   {
13309     return ConditionalRenderingFlagsEXT( bit0 ) ^ bit1;
13310   }
13311 
operator ~(ConditionalRenderingFlagBitsEXT bits)13312   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator~( ConditionalRenderingFlagBitsEXT bits )
13313     VULKAN_HPP_NOEXCEPT
13314   {
13315     return ~( ConditionalRenderingFlagsEXT( bits ) );
13316   }
13317 
to_string(ConditionalRenderingFlagsEXT value)13318   VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagsEXT value )
13319   {
13320     if ( !value )
13321       return "{}";
13322 
13323     std::string result;
13324     if ( value & ConditionalRenderingFlagBitsEXT::eInverted )
13325       result += "Inverted | ";
13326 
13327     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13328   }
13329 
13330   //=== VK_EXT_display_surface_counter ===
13331 
13332   using SurfaceCounterFlagsEXT = Flags<SurfaceCounterFlagBitsEXT>;
13333 
13334   template <>
13335   struct FlagTraits<SurfaceCounterFlagBitsEXT>
13336   {
13337     enum : VkFlags
13338     {
13339       allFlags = VkFlags( SurfaceCounterFlagBitsEXT::eVblank )
13340     };
13341   };
13342 
13343   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT
operator |(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)13344     operator|( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13345   {
13346     return SurfaceCounterFlagsEXT( bit0 ) | bit1;
13347   }
13348 
13349   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT
operator &(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)13350     operator&( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13351   {
13352     return SurfaceCounterFlagsEXT( bit0 ) & bit1;
13353   }
13354 
13355   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT
operator ^(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)13356     operator^( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13357   {
13358     return SurfaceCounterFlagsEXT( bit0 ) ^ bit1;
13359   }
13360 
operator ~(SurfaceCounterFlagBitsEXT bits)13361   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator~( SurfaceCounterFlagBitsEXT bits )
13362     VULKAN_HPP_NOEXCEPT
13363   {
13364     return ~( SurfaceCounterFlagsEXT( bits ) );
13365   }
13366 
to_string(SurfaceCounterFlagsEXT value)13367   VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagsEXT value )
13368   {
13369     if ( !value )
13370       return "{}";
13371 
13372     std::string result;
13373     if ( value & SurfaceCounterFlagBitsEXT::eVblank )
13374       result += "Vblank | ";
13375 
13376     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13377   }
13378 
13379   //=== VK_NV_viewport_swizzle ===
13380 
13381   using PipelineViewportSwizzleStateCreateFlagsNV = Flags<PipelineViewportSwizzleStateCreateFlagBitsNV>;
13382 
to_string(PipelineViewportSwizzleStateCreateFlagsNV)13383   VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagsNV )
13384   {
13385     return "{}";
13386   }
13387 
13388   //=== VK_EXT_discard_rectangles ===
13389 
13390   using PipelineDiscardRectangleStateCreateFlagsEXT = Flags<PipelineDiscardRectangleStateCreateFlagBitsEXT>;
13391 
to_string(PipelineDiscardRectangleStateCreateFlagsEXT)13392   VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagsEXT )
13393   {
13394     return "{}";
13395   }
13396 
13397   //=== VK_EXT_conservative_rasterization ===
13398 
13399   using PipelineRasterizationConservativeStateCreateFlagsEXT =
13400     Flags<PipelineRasterizationConservativeStateCreateFlagBitsEXT>;
13401 
to_string(PipelineRasterizationConservativeStateCreateFlagsEXT)13402   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagsEXT )
13403   {
13404     return "{}";
13405   }
13406 
13407   //=== VK_EXT_depth_clip_enable ===
13408 
13409   using PipelineRasterizationDepthClipStateCreateFlagsEXT = Flags<PipelineRasterizationDepthClipStateCreateFlagBitsEXT>;
13410 
to_string(PipelineRasterizationDepthClipStateCreateFlagsEXT)13411   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagsEXT )
13412   {
13413     return "{}";
13414   }
13415 
13416   //=== VK_KHR_performance_query ===
13417 
13418   using PerformanceCounterDescriptionFlagsKHR = Flags<PerformanceCounterDescriptionFlagBitsKHR>;
13419 
13420   template <>
13421   struct FlagTraits<PerformanceCounterDescriptionFlagBitsKHR>
13422   {
13423     enum : VkFlags
13424     {
13425       allFlags = VkFlags( PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting ) |
13426                  VkFlags( PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted )
13427     };
13428   };
13429 
operator |(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)13430   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator|(
13431     PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13432   {
13433     return PerformanceCounterDescriptionFlagsKHR( bit0 ) | bit1;
13434   }
13435 
operator &(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)13436   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator&(
13437     PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13438   {
13439     return PerformanceCounterDescriptionFlagsKHR( bit0 ) & bit1;
13440   }
13441 
operator ^(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)13442   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator^(
13443     PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13444   {
13445     return PerformanceCounterDescriptionFlagsKHR( bit0 ) ^ bit1;
13446   }
13447 
13448   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR
operator ~(PerformanceCounterDescriptionFlagBitsKHR bits)13449     operator~( PerformanceCounterDescriptionFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
13450   {
13451     return ~( PerformanceCounterDescriptionFlagsKHR( bits ) );
13452   }
13453 
to_string(PerformanceCounterDescriptionFlagsKHR value)13454   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterDescriptionFlagsKHR value )
13455   {
13456     if ( !value )
13457       return "{}";
13458 
13459     std::string result;
13460     if ( value & PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting )
13461       result += "PerformanceImpacting | ";
13462     if ( value & PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted )
13463       result += "ConcurrentlyImpacted | ";
13464 
13465     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13466   }
13467 
13468   using AcquireProfilingLockFlagsKHR = Flags<AcquireProfilingLockFlagBitsKHR>;
13469 
to_string(AcquireProfilingLockFlagsKHR)13470   VULKAN_HPP_INLINE std::string to_string( AcquireProfilingLockFlagsKHR )
13471   {
13472     return "{}";
13473   }
13474 
13475 #if defined( VK_USE_PLATFORM_IOS_MVK )
13476   //=== VK_MVK_ios_surface ===
13477 
13478   using IOSSurfaceCreateFlagsMVK = Flags<IOSSurfaceCreateFlagBitsMVK>;
13479 
to_string(IOSSurfaceCreateFlagsMVK)13480   VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagsMVK )
13481   {
13482     return "{}";
13483   }
13484 #endif /*VK_USE_PLATFORM_IOS_MVK*/
13485 
13486 #if defined( VK_USE_PLATFORM_MACOS_MVK )
13487   //=== VK_MVK_macos_surface ===
13488 
13489   using MacOSSurfaceCreateFlagsMVK = Flags<MacOSSurfaceCreateFlagBitsMVK>;
13490 
to_string(MacOSSurfaceCreateFlagsMVK)13491   VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagsMVK )
13492   {
13493     return "{}";
13494   }
13495 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
13496 
13497   //=== VK_EXT_debug_utils ===
13498 
13499   using DebugUtilsMessageSeverityFlagsEXT = Flags<DebugUtilsMessageSeverityFlagBitsEXT>;
13500 
13501   template <>
13502   struct FlagTraits<DebugUtilsMessageSeverityFlagBitsEXT>
13503   {
13504     enum : VkFlags
13505     {
13506       allFlags = VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eVerbose ) |
13507                  VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eInfo ) |
13508                  VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eWarning ) |
13509                  VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eError )
13510     };
13511   };
13512 
operator |(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)13513   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator|(
13514     DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13515   {
13516     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) | bit1;
13517   }
13518 
operator &(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)13519   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator&(
13520     DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13521   {
13522     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) & bit1;
13523   }
13524 
operator ^(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)13525   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator^(
13526     DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13527   {
13528     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) ^ bit1;
13529   }
13530 
13531   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT
operator ~(DebugUtilsMessageSeverityFlagBitsEXT bits)13532     operator~( DebugUtilsMessageSeverityFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
13533   {
13534     return ~( DebugUtilsMessageSeverityFlagsEXT( bits ) );
13535   }
13536 
to_string(DebugUtilsMessageSeverityFlagsEXT value)13537   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagsEXT value )
13538   {
13539     if ( !value )
13540       return "{}";
13541 
13542     std::string result;
13543     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eVerbose )
13544       result += "Verbose | ";
13545     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eInfo )
13546       result += "Info | ";
13547     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eWarning )
13548       result += "Warning | ";
13549     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eError )
13550       result += "Error | ";
13551 
13552     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13553   }
13554 
13555   using DebugUtilsMessageTypeFlagsEXT = Flags<DebugUtilsMessageTypeFlagBitsEXT>;
13556 
13557   template <>
13558   struct FlagTraits<DebugUtilsMessageTypeFlagBitsEXT>
13559   {
13560     enum : VkFlags
13561     {
13562       allFlags = VkFlags( DebugUtilsMessageTypeFlagBitsEXT::eGeneral ) |
13563                  VkFlags( DebugUtilsMessageTypeFlagBitsEXT::eValidation ) |
13564                  VkFlags( DebugUtilsMessageTypeFlagBitsEXT::ePerformance )
13565     };
13566   };
13567 
13568   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT
operator |(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)13569     operator|( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13570   {
13571     return DebugUtilsMessageTypeFlagsEXT( bit0 ) | bit1;
13572   }
13573 
13574   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT
operator &(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)13575     operator&( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13576   {
13577     return DebugUtilsMessageTypeFlagsEXT( bit0 ) & bit1;
13578   }
13579 
13580   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT
operator ^(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)13581     operator^( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13582   {
13583     return DebugUtilsMessageTypeFlagsEXT( bit0 ) ^ bit1;
13584   }
13585 
13586   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT
operator ~(DebugUtilsMessageTypeFlagBitsEXT bits)13587     operator~( DebugUtilsMessageTypeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
13588   {
13589     return ~( DebugUtilsMessageTypeFlagsEXT( bits ) );
13590   }
13591 
to_string(DebugUtilsMessageTypeFlagsEXT value)13592   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagsEXT value )
13593   {
13594     if ( !value )
13595       return "{}";
13596 
13597     std::string result;
13598     if ( value & DebugUtilsMessageTypeFlagBitsEXT::eGeneral )
13599       result += "General | ";
13600     if ( value & DebugUtilsMessageTypeFlagBitsEXT::eValidation )
13601       result += "Validation | ";
13602     if ( value & DebugUtilsMessageTypeFlagBitsEXT::ePerformance )
13603       result += "Performance | ";
13604 
13605     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13606   }
13607 
13608   using DebugUtilsMessengerCallbackDataFlagsEXT = Flags<DebugUtilsMessengerCallbackDataFlagBitsEXT>;
13609 
to_string(DebugUtilsMessengerCallbackDataFlagsEXT)13610   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagsEXT )
13611   {
13612     return "{}";
13613   }
13614 
13615   using DebugUtilsMessengerCreateFlagsEXT = Flags<DebugUtilsMessengerCreateFlagBitsEXT>;
13616 
to_string(DebugUtilsMessengerCreateFlagsEXT)13617   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagsEXT )
13618   {
13619     return "{}";
13620   }
13621 
13622   //=== VK_NV_fragment_coverage_to_color ===
13623 
13624   using PipelineCoverageToColorStateCreateFlagsNV = Flags<PipelineCoverageToColorStateCreateFlagBitsNV>;
13625 
to_string(PipelineCoverageToColorStateCreateFlagsNV)13626   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagsNV )
13627   {
13628     return "{}";
13629   }
13630 
13631   //=== VK_KHR_acceleration_structure ===
13632 
13633   using GeometryFlagsKHR = Flags<GeometryFlagBitsKHR>;
13634 
13635   template <>
13636   struct FlagTraits<GeometryFlagBitsKHR>
13637   {
13638     enum : VkFlags
13639     {
13640       allFlags = VkFlags( GeometryFlagBitsKHR::eOpaque ) | VkFlags( GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation )
13641     };
13642   };
13643 
operator |(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)13644   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator|( GeometryFlagBitsKHR bit0,
13645                                                                      GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13646   {
13647     return GeometryFlagsKHR( bit0 ) | bit1;
13648   }
13649 
operator &(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)13650   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator&( GeometryFlagBitsKHR bit0,
13651                                                                      GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13652   {
13653     return GeometryFlagsKHR( bit0 ) & bit1;
13654   }
13655 
operator ^(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)13656   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator^( GeometryFlagBitsKHR bit0,
13657                                                                      GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13658   {
13659     return GeometryFlagsKHR( bit0 ) ^ bit1;
13660   }
13661 
operator ~(GeometryFlagBitsKHR bits)13662   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator~( GeometryFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
13663   {
13664     return ~( GeometryFlagsKHR( bits ) );
13665   }
13666 
13667   using GeometryFlagsNV = GeometryFlagsKHR;
13668 
to_string(GeometryFlagsKHR value)13669   VULKAN_HPP_INLINE std::string to_string( GeometryFlagsKHR value )
13670   {
13671     if ( !value )
13672       return "{}";
13673 
13674     std::string result;
13675     if ( value & GeometryFlagBitsKHR::eOpaque )
13676       result += "Opaque | ";
13677     if ( value & GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation )
13678       result += "NoDuplicateAnyHitInvocation | ";
13679 
13680     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13681   }
13682 
13683   using GeometryInstanceFlagsKHR = Flags<GeometryInstanceFlagBitsKHR>;
13684 
13685   template <>
13686   struct FlagTraits<GeometryInstanceFlagBitsKHR>
13687   {
13688     enum : VkFlags
13689     {
13690       allFlags = VkFlags( GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable ) |
13691                  VkFlags( GeometryInstanceFlagBitsKHR::eTriangleFlipFacing ) |
13692                  VkFlags( GeometryInstanceFlagBitsKHR::eForceOpaque ) |
13693                  VkFlags( GeometryInstanceFlagBitsKHR::eForceNoOpaque )
13694     };
13695   };
13696 
13697   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR
operator |(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)13698     operator|( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13699   {
13700     return GeometryInstanceFlagsKHR( bit0 ) | bit1;
13701   }
13702 
13703   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR
operator &(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)13704     operator&( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13705   {
13706     return GeometryInstanceFlagsKHR( bit0 ) & bit1;
13707   }
13708 
13709   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR
operator ^(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)13710     operator^( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13711   {
13712     return GeometryInstanceFlagsKHR( bit0 ) ^ bit1;
13713   }
13714 
operator ~(GeometryInstanceFlagBitsKHR bits)13715   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator~( GeometryInstanceFlagBitsKHR bits )
13716     VULKAN_HPP_NOEXCEPT
13717   {
13718     return ~( GeometryInstanceFlagsKHR( bits ) );
13719   }
13720 
13721   using GeometryInstanceFlagsNV = GeometryInstanceFlagsKHR;
13722 
to_string(GeometryInstanceFlagsKHR value)13723   VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagsKHR value )
13724   {
13725     if ( !value )
13726       return "{}";
13727 
13728     std::string result;
13729     if ( value & GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable )
13730       result += "TriangleFacingCullDisable | ";
13731     if ( value & GeometryInstanceFlagBitsKHR::eTriangleFlipFacing )
13732       result += "TriangleFlipFacing | ";
13733     if ( value & GeometryInstanceFlagBitsKHR::eForceOpaque )
13734       result += "ForceOpaque | ";
13735     if ( value & GeometryInstanceFlagBitsKHR::eForceNoOpaque )
13736       result += "ForceNoOpaque | ";
13737 
13738     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13739   }
13740 
13741   using BuildAccelerationStructureFlagsKHR = Flags<BuildAccelerationStructureFlagBitsKHR>;
13742 
13743   template <>
13744   struct FlagTraits<BuildAccelerationStructureFlagBitsKHR>
13745   {
13746     enum : VkFlags
13747     {
13748       allFlags = VkFlags( BuildAccelerationStructureFlagBitsKHR::eAllowUpdate ) |
13749                  VkFlags( BuildAccelerationStructureFlagBitsKHR::eAllowCompaction ) |
13750                  VkFlags( BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace ) |
13751                  VkFlags( BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild ) |
13752                  VkFlags( BuildAccelerationStructureFlagBitsKHR::eLowMemory ) |
13753                  VkFlags( BuildAccelerationStructureFlagBitsKHR::eMotionNV )
13754     };
13755   };
13756 
operator |(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)13757   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator|(
13758     BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13759   {
13760     return BuildAccelerationStructureFlagsKHR( bit0 ) | bit1;
13761   }
13762 
operator &(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)13763   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator&(
13764     BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13765   {
13766     return BuildAccelerationStructureFlagsKHR( bit0 ) & bit1;
13767   }
13768 
operator ^(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)13769   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator^(
13770     BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13771   {
13772     return BuildAccelerationStructureFlagsKHR( bit0 ) ^ bit1;
13773   }
13774 
13775   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR
operator ~(BuildAccelerationStructureFlagBitsKHR bits)13776     operator~( BuildAccelerationStructureFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
13777   {
13778     return ~( BuildAccelerationStructureFlagsKHR( bits ) );
13779   }
13780 
13781   using BuildAccelerationStructureFlagsNV = BuildAccelerationStructureFlagsKHR;
13782 
to_string(BuildAccelerationStructureFlagsKHR value)13783   VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagsKHR value )
13784   {
13785     if ( !value )
13786       return "{}";
13787 
13788     std::string result;
13789     if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowUpdate )
13790       result += "AllowUpdate | ";
13791     if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowCompaction )
13792       result += "AllowCompaction | ";
13793     if ( value & BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace )
13794       result += "PreferFastTrace | ";
13795     if ( value & BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild )
13796       result += "PreferFastBuild | ";
13797     if ( value & BuildAccelerationStructureFlagBitsKHR::eLowMemory )
13798       result += "LowMemory | ";
13799     if ( value & BuildAccelerationStructureFlagBitsKHR::eMotionNV )
13800       result += "MotionNV | ";
13801 
13802     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13803   }
13804 
13805   using AccelerationStructureCreateFlagsKHR = Flags<AccelerationStructureCreateFlagBitsKHR>;
13806 
13807   template <>
13808   struct FlagTraits<AccelerationStructureCreateFlagBitsKHR>
13809   {
13810     enum : VkFlags
13811     {
13812       allFlags = VkFlags( AccelerationStructureCreateFlagBitsKHR::eDeviceAddressCaptureReplay ) |
13813                  VkFlags( AccelerationStructureCreateFlagBitsKHR::eMotionNV )
13814     };
13815   };
13816 
operator |(AccelerationStructureCreateFlagBitsKHR bit0,AccelerationStructureCreateFlagBitsKHR bit1)13817   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator|(
13818     AccelerationStructureCreateFlagBitsKHR bit0, AccelerationStructureCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13819   {
13820     return AccelerationStructureCreateFlagsKHR( bit0 ) | bit1;
13821   }
13822 
operator &(AccelerationStructureCreateFlagBitsKHR bit0,AccelerationStructureCreateFlagBitsKHR bit1)13823   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator&(
13824     AccelerationStructureCreateFlagBitsKHR bit0, AccelerationStructureCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13825   {
13826     return AccelerationStructureCreateFlagsKHR( bit0 ) & bit1;
13827   }
13828 
operator ^(AccelerationStructureCreateFlagBitsKHR bit0,AccelerationStructureCreateFlagBitsKHR bit1)13829   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator^(
13830     AccelerationStructureCreateFlagBitsKHR bit0, AccelerationStructureCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13831   {
13832     return AccelerationStructureCreateFlagsKHR( bit0 ) ^ bit1;
13833   }
13834 
13835   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR
operator ~(AccelerationStructureCreateFlagBitsKHR bits)13836     operator~( AccelerationStructureCreateFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
13837   {
13838     return ~( AccelerationStructureCreateFlagsKHR( bits ) );
13839   }
13840 
to_string(AccelerationStructureCreateFlagsKHR value)13841   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureCreateFlagsKHR value )
13842   {
13843     if ( !value )
13844       return "{}";
13845 
13846     std::string result;
13847     if ( value & AccelerationStructureCreateFlagBitsKHR::eDeviceAddressCaptureReplay )
13848       result += "DeviceAddressCaptureReplay | ";
13849     if ( value & AccelerationStructureCreateFlagBitsKHR::eMotionNV )
13850       result += "MotionNV | ";
13851 
13852     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13853   }
13854 
13855   //=== VK_NV_framebuffer_mixed_samples ===
13856 
13857   using PipelineCoverageModulationStateCreateFlagsNV = Flags<PipelineCoverageModulationStateCreateFlagBitsNV>;
13858 
to_string(PipelineCoverageModulationStateCreateFlagsNV)13859   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagsNV )
13860   {
13861     return "{}";
13862   }
13863 
13864   //=== VK_EXT_validation_cache ===
13865 
13866   using ValidationCacheCreateFlagsEXT = Flags<ValidationCacheCreateFlagBitsEXT>;
13867 
to_string(ValidationCacheCreateFlagsEXT)13868   VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagsEXT )
13869   {
13870     return "{}";
13871   }
13872 
13873   //=== VK_AMD_pipeline_compiler_control ===
13874 
13875   using PipelineCompilerControlFlagsAMD = Flags<PipelineCompilerControlFlagBitsAMD>;
13876 
to_string(PipelineCompilerControlFlagsAMD)13877   VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagsAMD )
13878   {
13879     return "{}";
13880   }
13881 
13882 #if defined( VK_ENABLE_BETA_EXTENSIONS )
13883   //=== VK_EXT_video_decode_h265 ===
13884 
13885   using VideoDecodeH265CreateFlagsEXT = Flags<VideoDecodeH265CreateFlagBitsEXT>;
13886 
to_string(VideoDecodeH265CreateFlagsEXT)13887   VULKAN_HPP_INLINE std::string to_string( VideoDecodeH265CreateFlagsEXT )
13888   {
13889     return "{}";
13890   }
13891 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13892 
13893   //=== VK_EXT_pipeline_creation_feedback ===
13894 
13895   using PipelineCreationFeedbackFlagsEXT = Flags<PipelineCreationFeedbackFlagBitsEXT>;
13896 
13897   template <>
13898   struct FlagTraits<PipelineCreationFeedbackFlagBitsEXT>
13899   {
13900     enum : VkFlags
13901     {
13902       allFlags = VkFlags( PipelineCreationFeedbackFlagBitsEXT::eValid ) |
13903                  VkFlags( PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit ) |
13904                  VkFlags( PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration )
13905     };
13906   };
13907 
13908   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT
operator |(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)13909     operator|( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13910   {
13911     return PipelineCreationFeedbackFlagsEXT( bit0 ) | bit1;
13912   }
13913 
13914   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT
operator &(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)13915     operator&( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13916   {
13917     return PipelineCreationFeedbackFlagsEXT( bit0 ) & bit1;
13918   }
13919 
13920   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT
operator ^(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)13921     operator^( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13922   {
13923     return PipelineCreationFeedbackFlagsEXT( bit0 ) ^ bit1;
13924   }
13925 
13926   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT
operator ~(PipelineCreationFeedbackFlagBitsEXT bits)13927     operator~( PipelineCreationFeedbackFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
13928   {
13929     return ~( PipelineCreationFeedbackFlagsEXT( bits ) );
13930   }
13931 
to_string(PipelineCreationFeedbackFlagsEXT value)13932   VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagsEXT value )
13933   {
13934     if ( !value )
13935       return "{}";
13936 
13937     std::string result;
13938     if ( value & PipelineCreationFeedbackFlagBitsEXT::eValid )
13939       result += "Valid | ";
13940     if ( value & PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit )
13941       result += "ApplicationPipelineCacheHit | ";
13942     if ( value & PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration )
13943       result += "BasePipelineAcceleration | ";
13944 
13945     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13946   }
13947 
13948 #if defined( VK_USE_PLATFORM_FUCHSIA )
13949   //=== VK_FUCHSIA_imagepipe_surface ===
13950 
13951   using ImagePipeSurfaceCreateFlagsFUCHSIA = Flags<ImagePipeSurfaceCreateFlagBitsFUCHSIA>;
13952 
to_string(ImagePipeSurfaceCreateFlagsFUCHSIA)13953   VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagsFUCHSIA )
13954   {
13955     return "{}";
13956   }
13957 #endif /*VK_USE_PLATFORM_FUCHSIA*/
13958 
13959 #if defined( VK_USE_PLATFORM_METAL_EXT )
13960   //=== VK_EXT_metal_surface ===
13961 
13962   using MetalSurfaceCreateFlagsEXT = Flags<MetalSurfaceCreateFlagBitsEXT>;
13963 
to_string(MetalSurfaceCreateFlagsEXT)13964   VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagsEXT )
13965   {
13966     return "{}";
13967   }
13968 #endif /*VK_USE_PLATFORM_METAL_EXT*/
13969 
13970   //=== VK_AMD_shader_core_properties2 ===
13971 
13972   using ShaderCorePropertiesFlagsAMD = Flags<ShaderCorePropertiesFlagBitsAMD>;
13973 
to_string(ShaderCorePropertiesFlagsAMD)13974   VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagsAMD )
13975   {
13976     return "{}";
13977   }
13978 
13979   //=== VK_EXT_tooling_info ===
13980 
13981   using ToolPurposeFlagsEXT = Flags<ToolPurposeFlagBitsEXT>;
13982 
13983   template <>
13984   struct FlagTraits<ToolPurposeFlagBitsEXT>
13985   {
13986     enum : VkFlags
13987     {
13988       allFlags = VkFlags( ToolPurposeFlagBitsEXT::eValidation ) | VkFlags( ToolPurposeFlagBitsEXT::eProfiling ) |
13989                  VkFlags( ToolPurposeFlagBitsEXT::eTracing ) | VkFlags( ToolPurposeFlagBitsEXT::eAdditionalFeatures ) |
13990                  VkFlags( ToolPurposeFlagBitsEXT::eModifyingFeatures ) |
13991                  VkFlags( ToolPurposeFlagBitsEXT::eDebugReporting ) | VkFlags( ToolPurposeFlagBitsEXT::eDebugMarkers )
13992     };
13993   };
13994 
13995   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT
operator |(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)13996     operator|( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13997   {
13998     return ToolPurposeFlagsEXT( bit0 ) | bit1;
13999   }
14000 
14001   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT
operator &(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)14002     operator&( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
14003   {
14004     return ToolPurposeFlagsEXT( bit0 ) & bit1;
14005   }
14006 
14007   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT
operator ^(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)14008     operator^( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
14009   {
14010     return ToolPurposeFlagsEXT( bit0 ) ^ bit1;
14011   }
14012 
operator ~(ToolPurposeFlagBitsEXT bits)14013   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator~( ToolPurposeFlagBitsEXT bits )
14014     VULKAN_HPP_NOEXCEPT
14015   {
14016     return ~( ToolPurposeFlagsEXT( bits ) );
14017   }
14018 
to_string(ToolPurposeFlagsEXT value)14019   VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagsEXT value )
14020   {
14021     if ( !value )
14022       return "{}";
14023 
14024     std::string result;
14025     if ( value & ToolPurposeFlagBitsEXT::eValidation )
14026       result += "Validation | ";
14027     if ( value & ToolPurposeFlagBitsEXT::eProfiling )
14028       result += "Profiling | ";
14029     if ( value & ToolPurposeFlagBitsEXT::eTracing )
14030       result += "Tracing | ";
14031     if ( value & ToolPurposeFlagBitsEXT::eAdditionalFeatures )
14032       result += "AdditionalFeatures | ";
14033     if ( value & ToolPurposeFlagBitsEXT::eModifyingFeatures )
14034       result += "ModifyingFeatures | ";
14035     if ( value & ToolPurposeFlagBitsEXT::eDebugReporting )
14036       result += "DebugReporting | ";
14037     if ( value & ToolPurposeFlagBitsEXT::eDebugMarkers )
14038       result += "DebugMarkers | ";
14039 
14040     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14041   }
14042 
14043   //=== VK_NV_coverage_reduction_mode ===
14044 
14045   using PipelineCoverageReductionStateCreateFlagsNV = Flags<PipelineCoverageReductionStateCreateFlagBitsNV>;
14046 
to_string(PipelineCoverageReductionStateCreateFlagsNV)14047   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagsNV )
14048   {
14049     return "{}";
14050   }
14051 
14052   //=== VK_EXT_headless_surface ===
14053 
14054   using HeadlessSurfaceCreateFlagsEXT = Flags<HeadlessSurfaceCreateFlagBitsEXT>;
14055 
to_string(HeadlessSurfaceCreateFlagsEXT)14056   VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagsEXT )
14057   {
14058     return "{}";
14059   }
14060 
14061   //=== VK_NV_device_generated_commands ===
14062 
14063   using IndirectStateFlagsNV = Flags<IndirectStateFlagBitsNV>;
14064 
14065   template <>
14066   struct FlagTraits<IndirectStateFlagBitsNV>
14067   {
14068     enum : VkFlags
14069     {
14070       allFlags = VkFlags( IndirectStateFlagBitsNV::eFlagFrontface )
14071     };
14072   };
14073 
14074   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV
operator |(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)14075     operator|( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
14076   {
14077     return IndirectStateFlagsNV( bit0 ) | bit1;
14078   }
14079 
14080   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV
operator &(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)14081     operator&( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
14082   {
14083     return IndirectStateFlagsNV( bit0 ) & bit1;
14084   }
14085 
14086   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV
operator ^(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)14087     operator^( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
14088   {
14089     return IndirectStateFlagsNV( bit0 ) ^ bit1;
14090   }
14091 
operator ~(IndirectStateFlagBitsNV bits)14092   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator~( IndirectStateFlagBitsNV bits )
14093     VULKAN_HPP_NOEXCEPT
14094   {
14095     return ~( IndirectStateFlagsNV( bits ) );
14096   }
14097 
to_string(IndirectStateFlagsNV value)14098   VULKAN_HPP_INLINE std::string to_string( IndirectStateFlagsNV value )
14099   {
14100     if ( !value )
14101       return "{}";
14102 
14103     std::string result;
14104     if ( value & IndirectStateFlagBitsNV::eFlagFrontface )
14105       result += "FlagFrontface | ";
14106 
14107     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14108   }
14109 
14110   using IndirectCommandsLayoutUsageFlagsNV = Flags<IndirectCommandsLayoutUsageFlagBitsNV>;
14111 
14112   template <>
14113   struct FlagTraits<IndirectCommandsLayoutUsageFlagBitsNV>
14114   {
14115     enum : VkFlags
14116     {
14117       allFlags = VkFlags( IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess ) |
14118                  VkFlags( IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences ) |
14119                  VkFlags( IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences )
14120     };
14121   };
14122 
operator |(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)14123   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator|(
14124     IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
14125   {
14126     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) | bit1;
14127   }
14128 
operator &(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)14129   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator&(
14130     IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
14131   {
14132     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) & bit1;
14133   }
14134 
operator ^(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)14135   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator^(
14136     IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
14137   {
14138     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) ^ bit1;
14139   }
14140 
14141   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV
operator ~(IndirectCommandsLayoutUsageFlagBitsNV bits)14142     operator~( IndirectCommandsLayoutUsageFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
14143   {
14144     return ~( IndirectCommandsLayoutUsageFlagsNV( bits ) );
14145   }
14146 
to_string(IndirectCommandsLayoutUsageFlagsNV value)14147   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagsNV value )
14148   {
14149     if ( !value )
14150       return "{}";
14151 
14152     std::string result;
14153     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess )
14154       result += "ExplicitPreprocess | ";
14155     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences )
14156       result += "IndexedSequences | ";
14157     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences )
14158       result += "UnorderedSequences | ";
14159 
14160     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14161   }
14162 
14163   //=== VK_EXT_device_memory_report ===
14164 
14165   using DeviceMemoryReportFlagsEXT = Flags<DeviceMemoryReportFlagBitsEXT>;
14166 
to_string(DeviceMemoryReportFlagsEXT)14167   VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportFlagsEXT )
14168   {
14169     return "{}";
14170   }
14171 
14172   //=== VK_EXT_private_data ===
14173 
14174   using PrivateDataSlotCreateFlagsEXT = Flags<PrivateDataSlotCreateFlagBitsEXT>;
14175 
to_string(PrivateDataSlotCreateFlagsEXT)14176   VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagsEXT )
14177   {
14178     return "{}";
14179   }
14180 
14181 #if defined( VK_ENABLE_BETA_EXTENSIONS )
14182   //=== VK_KHR_video_encode_queue ===
14183 
14184   using VideoEncodeFlagsKHR = Flags<VideoEncodeFlagBitsKHR>;
14185 
14186   template <>
14187   struct FlagTraits<VideoEncodeFlagBitsKHR>
14188   {
14189     enum : VkFlags
14190     {
14191       allFlags = VkFlags( VideoEncodeFlagBitsKHR::eDefault ) | VkFlags( VideoEncodeFlagBitsKHR::eReserved0 )
14192     };
14193   };
14194 
14195   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeFlagsKHR
operator |(VideoEncodeFlagBitsKHR bit0,VideoEncodeFlagBitsKHR bit1)14196     operator|( VideoEncodeFlagBitsKHR bit0, VideoEncodeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14197   {
14198     return VideoEncodeFlagsKHR( bit0 ) | bit1;
14199   }
14200 
14201   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeFlagsKHR
operator &(VideoEncodeFlagBitsKHR bit0,VideoEncodeFlagBitsKHR bit1)14202     operator&( VideoEncodeFlagBitsKHR bit0, VideoEncodeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14203   {
14204     return VideoEncodeFlagsKHR( bit0 ) & bit1;
14205   }
14206 
14207   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeFlagsKHR
operator ^(VideoEncodeFlagBitsKHR bit0,VideoEncodeFlagBitsKHR bit1)14208     operator^( VideoEncodeFlagBitsKHR bit0, VideoEncodeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14209   {
14210     return VideoEncodeFlagsKHR( bit0 ) ^ bit1;
14211   }
14212 
operator ~(VideoEncodeFlagBitsKHR bits)14213   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeFlagsKHR operator~( VideoEncodeFlagBitsKHR bits )
14214     VULKAN_HPP_NOEXCEPT
14215   {
14216     return ~( VideoEncodeFlagsKHR( bits ) );
14217   }
14218 
to_string(VideoEncodeFlagsKHR value)14219   VULKAN_HPP_INLINE std::string to_string( VideoEncodeFlagsKHR value )
14220   {
14221     if ( !value )
14222       return "{}";
14223 
14224     std::string result;
14225     if ( value & VideoEncodeFlagBitsKHR::eReserved0 )
14226       result += "Reserved0 | ";
14227 
14228     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14229   }
14230 
14231   using VideoEncodeRateControlFlagsKHR = Flags<VideoEncodeRateControlFlagBitsKHR>;
14232 
14233   template <>
14234   struct FlagTraits<VideoEncodeRateControlFlagBitsKHR>
14235   {
14236     enum : VkFlags
14237     {
14238       allFlags =
14239         VkFlags( VideoEncodeRateControlFlagBitsKHR::eDefault ) | VkFlags( VideoEncodeRateControlFlagBitsKHR::eReset )
14240     };
14241   };
14242 
14243   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlFlagsKHR
operator |(VideoEncodeRateControlFlagBitsKHR bit0,VideoEncodeRateControlFlagBitsKHR bit1)14244     operator|( VideoEncodeRateControlFlagBitsKHR bit0, VideoEncodeRateControlFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14245   {
14246     return VideoEncodeRateControlFlagsKHR( bit0 ) | bit1;
14247   }
14248 
14249   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlFlagsKHR
operator &(VideoEncodeRateControlFlagBitsKHR bit0,VideoEncodeRateControlFlagBitsKHR bit1)14250     operator&( VideoEncodeRateControlFlagBitsKHR bit0, VideoEncodeRateControlFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14251   {
14252     return VideoEncodeRateControlFlagsKHR( bit0 ) & bit1;
14253   }
14254 
14255   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlFlagsKHR
operator ^(VideoEncodeRateControlFlagBitsKHR bit0,VideoEncodeRateControlFlagBitsKHR bit1)14256     operator^( VideoEncodeRateControlFlagBitsKHR bit0, VideoEncodeRateControlFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14257   {
14258     return VideoEncodeRateControlFlagsKHR( bit0 ) ^ bit1;
14259   }
14260 
14261   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlFlagsKHR
operator ~(VideoEncodeRateControlFlagBitsKHR bits)14262     operator~( VideoEncodeRateControlFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
14263   {
14264     return ~( VideoEncodeRateControlFlagsKHR( bits ) );
14265   }
14266 
to_string(VideoEncodeRateControlFlagsKHR value)14267   VULKAN_HPP_INLINE std::string to_string( VideoEncodeRateControlFlagsKHR value )
14268   {
14269     if ( !value )
14270       return "{}";
14271 
14272     std::string result;
14273     if ( value & VideoEncodeRateControlFlagBitsKHR::eReset )
14274       result += "Reset | ";
14275 
14276     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14277   }
14278 
14279   using VideoEncodeRateControlModeFlagsKHR = Flags<VideoEncodeRateControlModeFlagBitsKHR>;
14280 
14281   template <>
14282   struct FlagTraits<VideoEncodeRateControlModeFlagBitsKHR>
14283   {
14284     enum : VkFlags
14285     {
14286       allFlags = VkFlags( VideoEncodeRateControlModeFlagBitsKHR::eNone ) |
14287                  VkFlags( VideoEncodeRateControlModeFlagBitsKHR::eCbr ) |
14288                  VkFlags( VideoEncodeRateControlModeFlagBitsKHR::eVbr )
14289     };
14290   };
14291 
operator |(VideoEncodeRateControlModeFlagBitsKHR bit0,VideoEncodeRateControlModeFlagBitsKHR bit1)14292   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlModeFlagsKHR operator|(
14293     VideoEncodeRateControlModeFlagBitsKHR bit0, VideoEncodeRateControlModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14294   {
14295     return VideoEncodeRateControlModeFlagsKHR( bit0 ) | bit1;
14296   }
14297 
operator &(VideoEncodeRateControlModeFlagBitsKHR bit0,VideoEncodeRateControlModeFlagBitsKHR bit1)14298   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlModeFlagsKHR operator&(
14299     VideoEncodeRateControlModeFlagBitsKHR bit0, VideoEncodeRateControlModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14300   {
14301     return VideoEncodeRateControlModeFlagsKHR( bit0 ) & bit1;
14302   }
14303 
operator ^(VideoEncodeRateControlModeFlagBitsKHR bit0,VideoEncodeRateControlModeFlagBitsKHR bit1)14304   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlModeFlagsKHR operator^(
14305     VideoEncodeRateControlModeFlagBitsKHR bit0, VideoEncodeRateControlModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14306   {
14307     return VideoEncodeRateControlModeFlagsKHR( bit0 ) ^ bit1;
14308   }
14309 
14310   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlModeFlagsKHR
operator ~(VideoEncodeRateControlModeFlagBitsKHR bits)14311     operator~( VideoEncodeRateControlModeFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
14312   {
14313     return ~( VideoEncodeRateControlModeFlagsKHR( bits ) );
14314   }
14315 
to_string(VideoEncodeRateControlModeFlagsKHR value)14316   VULKAN_HPP_INLINE std::string to_string( VideoEncodeRateControlModeFlagsKHR value )
14317   {
14318     if ( !value )
14319       return "{}";
14320 
14321     std::string result;
14322 
14323     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14324   }
14325 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14326 
14327   //=== VK_NV_device_diagnostics_config ===
14328 
14329   using DeviceDiagnosticsConfigFlagsNV = Flags<DeviceDiagnosticsConfigFlagBitsNV>;
14330 
14331   template <>
14332   struct FlagTraits<DeviceDiagnosticsConfigFlagBitsNV>
14333   {
14334     enum : VkFlags
14335     {
14336       allFlags = VkFlags( DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo ) |
14337                  VkFlags( DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking ) |
14338                  VkFlags( DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints )
14339     };
14340   };
14341 
14342   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV
operator |(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)14343     operator|( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
14344   {
14345     return DeviceDiagnosticsConfigFlagsNV( bit0 ) | bit1;
14346   }
14347 
14348   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV
operator &(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)14349     operator&( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
14350   {
14351     return DeviceDiagnosticsConfigFlagsNV( bit0 ) & bit1;
14352   }
14353 
14354   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV
operator ^(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)14355     operator^( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
14356   {
14357     return DeviceDiagnosticsConfigFlagsNV( bit0 ) ^ bit1;
14358   }
14359 
14360   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV
operator ~(DeviceDiagnosticsConfigFlagBitsNV bits)14361     operator~( DeviceDiagnosticsConfigFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
14362   {
14363     return ~( DeviceDiagnosticsConfigFlagsNV( bits ) );
14364   }
14365 
to_string(DeviceDiagnosticsConfigFlagsNV value)14366   VULKAN_HPP_INLINE std::string to_string( DeviceDiagnosticsConfigFlagsNV value )
14367   {
14368     if ( !value )
14369       return "{}";
14370 
14371     std::string result;
14372     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo )
14373       result += "EnableShaderDebugInfo | ";
14374     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking )
14375       result += "EnableResourceTracking | ";
14376     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints )
14377       result += "EnableAutomaticCheckpoints | ";
14378 
14379     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14380   }
14381 
14382   //=== VK_KHR_synchronization2 ===
14383 
14384   using PipelineStageFlags2KHR = Flags<PipelineStageFlagBits2KHR>;
14385 
14386   template <>
14387   struct FlagTraits<PipelineStageFlagBits2KHR>
14388   {
14389     enum : VkFlags64
14390     {
14391       allFlags =
14392         VkFlags64( PipelineStageFlagBits2KHR::eNone ) | VkFlags64( PipelineStageFlagBits2KHR::eTopOfPipe ) |
14393         VkFlags64( PipelineStageFlagBits2KHR::eDrawIndirect ) | VkFlags64( PipelineStageFlagBits2KHR::eVertexInput ) |
14394         VkFlags64( PipelineStageFlagBits2KHR::eVertexShader ) |
14395         VkFlags64( PipelineStageFlagBits2KHR::eTessellationControlShader ) |
14396         VkFlags64( PipelineStageFlagBits2KHR::eTessellationEvaluationShader ) |
14397         VkFlags64( PipelineStageFlagBits2KHR::eGeometryShader ) |
14398         VkFlags64( PipelineStageFlagBits2KHR::eFragmentShader ) |
14399         VkFlags64( PipelineStageFlagBits2KHR::eEarlyFragmentTests ) |
14400         VkFlags64( PipelineStageFlagBits2KHR::eLateFragmentTests ) |
14401         VkFlags64( PipelineStageFlagBits2KHR::eColorAttachmentOutput ) |
14402         VkFlags64( PipelineStageFlagBits2KHR::eComputeShader ) | VkFlags64( PipelineStageFlagBits2KHR::eAllTransfer ) |
14403         VkFlags64( PipelineStageFlagBits2KHR::eBottomOfPipe ) | VkFlags64( PipelineStageFlagBits2KHR::eHost ) |
14404         VkFlags64( PipelineStageFlagBits2KHR::eAllGraphics ) | VkFlags64( PipelineStageFlagBits2KHR::eAllCommands ) |
14405         VkFlags64( PipelineStageFlagBits2KHR::eCopy ) | VkFlags64( PipelineStageFlagBits2KHR::eResolve ) |
14406         VkFlags64( PipelineStageFlagBits2KHR::eBlit ) | VkFlags64( PipelineStageFlagBits2KHR::eClear ) |
14407         VkFlags64( PipelineStageFlagBits2KHR::eIndexInput ) |
14408         VkFlags64( PipelineStageFlagBits2KHR::eVertexAttributeInput ) |
14409         VkFlags64( PipelineStageFlagBits2KHR::ePreRasterizationShaders )
14410 #if defined( VK_ENABLE_BETA_EXTENSIONS )
14411         | VkFlags64( PipelineStageFlagBits2KHR::eVideoDecode ) | VkFlags64( PipelineStageFlagBits2KHR::eVideoEncode )
14412 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14413         | VkFlags64( PipelineStageFlagBits2KHR::eTransformFeedbackEXT ) |
14414         VkFlags64( PipelineStageFlagBits2KHR::eConditionalRenderingEXT ) |
14415         VkFlags64( PipelineStageFlagBits2KHR::eCommandPreprocessNV ) |
14416         VkFlags64( PipelineStageFlagBits2KHR::eFragmentShadingRateAttachment ) |
14417         VkFlags64( PipelineStageFlagBits2KHR::eAccelerationStructureBuild ) |
14418         VkFlags64( PipelineStageFlagBits2KHR::eRayTracingShader ) |
14419         VkFlags64( PipelineStageFlagBits2KHR::eFragmentDensityProcessEXT ) |
14420         VkFlags64( PipelineStageFlagBits2KHR::eTaskShaderNV ) | VkFlags64( PipelineStageFlagBits2KHR::eMeshShaderNV ) |
14421         VkFlags64( PipelineStageFlagBits2KHR::eSubpassShadingHUAWEI ) |
14422         VkFlags64( PipelineStageFlagBits2KHR::eInvocationMaskHUAWEI )
14423     };
14424   };
14425 
14426   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR
operator |(PipelineStageFlagBits2KHR bit0,PipelineStageFlagBits2KHR bit1)14427     operator|( PipelineStageFlagBits2KHR bit0, PipelineStageFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
14428   {
14429     return PipelineStageFlags2KHR( bit0 ) | bit1;
14430   }
14431 
14432   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR
operator &(PipelineStageFlagBits2KHR bit0,PipelineStageFlagBits2KHR bit1)14433     operator&( PipelineStageFlagBits2KHR bit0, PipelineStageFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
14434   {
14435     return PipelineStageFlags2KHR( bit0 ) & bit1;
14436   }
14437 
14438   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR
operator ^(PipelineStageFlagBits2KHR bit0,PipelineStageFlagBits2KHR bit1)14439     operator^( PipelineStageFlagBits2KHR bit0, PipelineStageFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
14440   {
14441     return PipelineStageFlags2KHR( bit0 ) ^ bit1;
14442   }
14443 
operator ~(PipelineStageFlagBits2KHR bits)14444   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR operator~( PipelineStageFlagBits2KHR bits )
14445     VULKAN_HPP_NOEXCEPT
14446   {
14447     return ~( PipelineStageFlags2KHR( bits ) );
14448   }
14449 
to_string(PipelineStageFlags2KHR value)14450   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlags2KHR value )
14451   {
14452     if ( !value )
14453       return "{}";
14454 
14455     std::string result;
14456     if ( value & PipelineStageFlagBits2KHR::eTopOfPipe )
14457       result += "TopOfPipe | ";
14458     if ( value & PipelineStageFlagBits2KHR::eDrawIndirect )
14459       result += "DrawIndirect | ";
14460     if ( value & PipelineStageFlagBits2KHR::eVertexInput )
14461       result += "VertexInput | ";
14462     if ( value & PipelineStageFlagBits2KHR::eVertexShader )
14463       result += "VertexShader | ";
14464     if ( value & PipelineStageFlagBits2KHR::eTessellationControlShader )
14465       result += "TessellationControlShader | ";
14466     if ( value & PipelineStageFlagBits2KHR::eTessellationEvaluationShader )
14467       result += "TessellationEvaluationShader | ";
14468     if ( value & PipelineStageFlagBits2KHR::eGeometryShader )
14469       result += "GeometryShader | ";
14470     if ( value & PipelineStageFlagBits2KHR::eFragmentShader )
14471       result += "FragmentShader | ";
14472     if ( value & PipelineStageFlagBits2KHR::eEarlyFragmentTests )
14473       result += "EarlyFragmentTests | ";
14474     if ( value & PipelineStageFlagBits2KHR::eLateFragmentTests )
14475       result += "LateFragmentTests | ";
14476     if ( value & PipelineStageFlagBits2KHR::eColorAttachmentOutput )
14477       result += "ColorAttachmentOutput | ";
14478     if ( value & PipelineStageFlagBits2KHR::eComputeShader )
14479       result += "ComputeShader | ";
14480     if ( value & PipelineStageFlagBits2KHR::eAllTransfer )
14481       result += "AllTransfer | ";
14482     if ( value & PipelineStageFlagBits2KHR::eBottomOfPipe )
14483       result += "BottomOfPipe | ";
14484     if ( value & PipelineStageFlagBits2KHR::eHost )
14485       result += "Host | ";
14486     if ( value & PipelineStageFlagBits2KHR::eAllGraphics )
14487       result += "AllGraphics | ";
14488     if ( value & PipelineStageFlagBits2KHR::eAllCommands )
14489       result += "AllCommands | ";
14490     if ( value & PipelineStageFlagBits2KHR::eCopy )
14491       result += "Copy | ";
14492     if ( value & PipelineStageFlagBits2KHR::eResolve )
14493       result += "Resolve | ";
14494     if ( value & PipelineStageFlagBits2KHR::eBlit )
14495       result += "Blit | ";
14496     if ( value & PipelineStageFlagBits2KHR::eClear )
14497       result += "Clear | ";
14498     if ( value & PipelineStageFlagBits2KHR::eIndexInput )
14499       result += "IndexInput | ";
14500     if ( value & PipelineStageFlagBits2KHR::eVertexAttributeInput )
14501       result += "VertexAttributeInput | ";
14502     if ( value & PipelineStageFlagBits2KHR::ePreRasterizationShaders )
14503       result += "PreRasterizationShaders | ";
14504 #if defined( VK_ENABLE_BETA_EXTENSIONS )
14505     if ( value & PipelineStageFlagBits2KHR::eVideoDecode )
14506       result += "VideoDecode | ";
14507     if ( value & PipelineStageFlagBits2KHR::eVideoEncode )
14508       result += "VideoEncode | ";
14509 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14510     if ( value & PipelineStageFlagBits2KHR::eTransformFeedbackEXT )
14511       result += "TransformFeedbackEXT | ";
14512     if ( value & PipelineStageFlagBits2KHR::eConditionalRenderingEXT )
14513       result += "ConditionalRenderingEXT | ";
14514     if ( value & PipelineStageFlagBits2KHR::eCommandPreprocessNV )
14515       result += "CommandPreprocessNV | ";
14516     if ( value & PipelineStageFlagBits2KHR::eFragmentShadingRateAttachment )
14517       result += "FragmentShadingRateAttachment | ";
14518     if ( value & PipelineStageFlagBits2KHR::eAccelerationStructureBuild )
14519       result += "AccelerationStructureBuild | ";
14520     if ( value & PipelineStageFlagBits2KHR::eRayTracingShader )
14521       result += "RayTracingShader | ";
14522     if ( value & PipelineStageFlagBits2KHR::eFragmentDensityProcessEXT )
14523       result += "FragmentDensityProcessEXT | ";
14524     if ( value & PipelineStageFlagBits2KHR::eTaskShaderNV )
14525       result += "TaskShaderNV | ";
14526     if ( value & PipelineStageFlagBits2KHR::eMeshShaderNV )
14527       result += "MeshShaderNV | ";
14528     if ( value & PipelineStageFlagBits2KHR::eSubpassShadingHUAWEI )
14529       result += "SubpassShadingHUAWEI | ";
14530     if ( value & PipelineStageFlagBits2KHR::eInvocationMaskHUAWEI )
14531       result += "InvocationMaskHUAWEI | ";
14532 
14533     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14534   }
14535 
14536   using AccessFlags2KHR = Flags<AccessFlagBits2KHR>;
14537 
14538   template <>
14539   struct FlagTraits<AccessFlagBits2KHR>
14540   {
14541     enum : VkFlags64
14542     {
14543       allFlags =
14544         VkFlags64( AccessFlagBits2KHR::eNone ) | VkFlags64( AccessFlagBits2KHR::eIndirectCommandRead ) |
14545         VkFlags64( AccessFlagBits2KHR::eIndexRead ) | VkFlags64( AccessFlagBits2KHR::eVertexAttributeRead ) |
14546         VkFlags64( AccessFlagBits2KHR::eUniformRead ) | VkFlags64( AccessFlagBits2KHR::eInputAttachmentRead ) |
14547         VkFlags64( AccessFlagBits2KHR::eShaderRead ) | VkFlags64( AccessFlagBits2KHR::eShaderWrite ) |
14548         VkFlags64( AccessFlagBits2KHR::eColorAttachmentRead ) | VkFlags64( AccessFlagBits2KHR::eColorAttachmentWrite ) |
14549         VkFlags64( AccessFlagBits2KHR::eDepthStencilAttachmentRead ) |
14550         VkFlags64( AccessFlagBits2KHR::eDepthStencilAttachmentWrite ) | VkFlags64( AccessFlagBits2KHR::eTransferRead ) |
14551         VkFlags64( AccessFlagBits2KHR::eTransferWrite ) | VkFlags64( AccessFlagBits2KHR::eHostRead ) |
14552         VkFlags64( AccessFlagBits2KHR::eHostWrite ) | VkFlags64( AccessFlagBits2KHR::eMemoryRead ) |
14553         VkFlags64( AccessFlagBits2KHR::eMemoryWrite ) | VkFlags64( AccessFlagBits2KHR::eShaderSampledRead ) |
14554         VkFlags64( AccessFlagBits2KHR::eShaderStorageRead ) | VkFlags64( AccessFlagBits2KHR::eShaderStorageWrite )
14555 #if defined( VK_ENABLE_BETA_EXTENSIONS )
14556         | VkFlags64( AccessFlagBits2KHR::eVideoDecodeRead ) | VkFlags64( AccessFlagBits2KHR::eVideoDecodeWrite ) |
14557         VkFlags64( AccessFlagBits2KHR::eVideoEncodeRead ) | VkFlags64( AccessFlagBits2KHR::eVideoEncodeWrite )
14558 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14559         | VkFlags64( AccessFlagBits2KHR::eTransformFeedbackWriteEXT ) |
14560         VkFlags64( AccessFlagBits2KHR::eTransformFeedbackCounterReadEXT ) |
14561         VkFlags64( AccessFlagBits2KHR::eTransformFeedbackCounterWriteEXT ) |
14562         VkFlags64( AccessFlagBits2KHR::eConditionalRenderingReadEXT ) |
14563         VkFlags64( AccessFlagBits2KHR::eCommandPreprocessReadNV ) |
14564         VkFlags64( AccessFlagBits2KHR::eCommandPreprocessWriteNV ) |
14565         VkFlags64( AccessFlagBits2KHR::eFragmentShadingRateAttachmentRead ) |
14566         VkFlags64( AccessFlagBits2KHR::eAccelerationStructureRead ) |
14567         VkFlags64( AccessFlagBits2KHR::eAccelerationStructureWrite ) |
14568         VkFlags64( AccessFlagBits2KHR::eFragmentDensityMapReadEXT ) |
14569         VkFlags64( AccessFlagBits2KHR::eColorAttachmentReadNoncoherentEXT ) |
14570         VkFlags64( AccessFlagBits2KHR::eInvocationMaskReadHUAWEI )
14571     };
14572   };
14573 
operator |(AccessFlagBits2KHR bit0,AccessFlagBits2KHR bit1)14574   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator|( AccessFlagBits2KHR bit0,
14575                                                                     AccessFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
14576   {
14577     return AccessFlags2KHR( bit0 ) | bit1;
14578   }
14579 
operator &(AccessFlagBits2KHR bit0,AccessFlagBits2KHR bit1)14580   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator&( AccessFlagBits2KHR bit0,
14581                                                                     AccessFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
14582   {
14583     return AccessFlags2KHR( bit0 ) & bit1;
14584   }
14585 
operator ^(AccessFlagBits2KHR bit0,AccessFlagBits2KHR bit1)14586   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator^( AccessFlagBits2KHR bit0,
14587                                                                     AccessFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
14588   {
14589     return AccessFlags2KHR( bit0 ) ^ bit1;
14590   }
14591 
operator ~(AccessFlagBits2KHR bits)14592   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator~( AccessFlagBits2KHR bits ) VULKAN_HPP_NOEXCEPT
14593   {
14594     return ~( AccessFlags2KHR( bits ) );
14595   }
14596 
to_string(AccessFlags2KHR value)14597   VULKAN_HPP_INLINE std::string to_string( AccessFlags2KHR value )
14598   {
14599     if ( !value )
14600       return "{}";
14601 
14602     std::string result;
14603     if ( value & AccessFlagBits2KHR::eIndirectCommandRead )
14604       result += "IndirectCommandRead | ";
14605     if ( value & AccessFlagBits2KHR::eIndexRead )
14606       result += "IndexRead | ";
14607     if ( value & AccessFlagBits2KHR::eVertexAttributeRead )
14608       result += "VertexAttributeRead | ";
14609     if ( value & AccessFlagBits2KHR::eUniformRead )
14610       result += "UniformRead | ";
14611     if ( value & AccessFlagBits2KHR::eInputAttachmentRead )
14612       result += "InputAttachmentRead | ";
14613     if ( value & AccessFlagBits2KHR::eShaderRead )
14614       result += "ShaderRead | ";
14615     if ( value & AccessFlagBits2KHR::eShaderWrite )
14616       result += "ShaderWrite | ";
14617     if ( value & AccessFlagBits2KHR::eColorAttachmentRead )
14618       result += "ColorAttachmentRead | ";
14619     if ( value & AccessFlagBits2KHR::eColorAttachmentWrite )
14620       result += "ColorAttachmentWrite | ";
14621     if ( value & AccessFlagBits2KHR::eDepthStencilAttachmentRead )
14622       result += "DepthStencilAttachmentRead | ";
14623     if ( value & AccessFlagBits2KHR::eDepthStencilAttachmentWrite )
14624       result += "DepthStencilAttachmentWrite | ";
14625     if ( value & AccessFlagBits2KHR::eTransferRead )
14626       result += "TransferRead | ";
14627     if ( value & AccessFlagBits2KHR::eTransferWrite )
14628       result += "TransferWrite | ";
14629     if ( value & AccessFlagBits2KHR::eHostRead )
14630       result += "HostRead | ";
14631     if ( value & AccessFlagBits2KHR::eHostWrite )
14632       result += "HostWrite | ";
14633     if ( value & AccessFlagBits2KHR::eMemoryRead )
14634       result += "MemoryRead | ";
14635     if ( value & AccessFlagBits2KHR::eMemoryWrite )
14636       result += "MemoryWrite | ";
14637     if ( value & AccessFlagBits2KHR::eShaderSampledRead )
14638       result += "ShaderSampledRead | ";
14639     if ( value & AccessFlagBits2KHR::eShaderStorageRead )
14640       result += "ShaderStorageRead | ";
14641     if ( value & AccessFlagBits2KHR::eShaderStorageWrite )
14642       result += "ShaderStorageWrite | ";
14643 #if defined( VK_ENABLE_BETA_EXTENSIONS )
14644     if ( value & AccessFlagBits2KHR::eVideoDecodeRead )
14645       result += "VideoDecodeRead | ";
14646     if ( value & AccessFlagBits2KHR::eVideoDecodeWrite )
14647       result += "VideoDecodeWrite | ";
14648     if ( value & AccessFlagBits2KHR::eVideoEncodeRead )
14649       result += "VideoEncodeRead | ";
14650     if ( value & AccessFlagBits2KHR::eVideoEncodeWrite )
14651       result += "VideoEncodeWrite | ";
14652 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14653     if ( value & AccessFlagBits2KHR::eTransformFeedbackWriteEXT )
14654       result += "TransformFeedbackWriteEXT | ";
14655     if ( value & AccessFlagBits2KHR::eTransformFeedbackCounterReadEXT )
14656       result += "TransformFeedbackCounterReadEXT | ";
14657     if ( value & AccessFlagBits2KHR::eTransformFeedbackCounterWriteEXT )
14658       result += "TransformFeedbackCounterWriteEXT | ";
14659     if ( value & AccessFlagBits2KHR::eConditionalRenderingReadEXT )
14660       result += "ConditionalRenderingReadEXT | ";
14661     if ( value & AccessFlagBits2KHR::eCommandPreprocessReadNV )
14662       result += "CommandPreprocessReadNV | ";
14663     if ( value & AccessFlagBits2KHR::eCommandPreprocessWriteNV )
14664       result += "CommandPreprocessWriteNV | ";
14665     if ( value & AccessFlagBits2KHR::eFragmentShadingRateAttachmentRead )
14666       result += "FragmentShadingRateAttachmentRead | ";
14667     if ( value & AccessFlagBits2KHR::eAccelerationStructureRead )
14668       result += "AccelerationStructureRead | ";
14669     if ( value & AccessFlagBits2KHR::eAccelerationStructureWrite )
14670       result += "AccelerationStructureWrite | ";
14671     if ( value & AccessFlagBits2KHR::eFragmentDensityMapReadEXT )
14672       result += "FragmentDensityMapReadEXT | ";
14673     if ( value & AccessFlagBits2KHR::eColorAttachmentReadNoncoherentEXT )
14674       result += "ColorAttachmentReadNoncoherentEXT | ";
14675     if ( value & AccessFlagBits2KHR::eInvocationMaskReadHUAWEI )
14676       result += "InvocationMaskReadHUAWEI | ";
14677 
14678     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14679   }
14680 
14681   using SubmitFlagsKHR = Flags<SubmitFlagBitsKHR>;
14682 
14683   template <>
14684   struct FlagTraits<SubmitFlagBitsKHR>
14685   {
14686     enum : VkFlags
14687     {
14688       allFlags = VkFlags( SubmitFlagBitsKHR::eProtected )
14689     };
14690   };
14691 
operator |(SubmitFlagBitsKHR bit0,SubmitFlagBitsKHR bit1)14692   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator|( SubmitFlagBitsKHR bit0,
14693                                                                    SubmitFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14694   {
14695     return SubmitFlagsKHR( bit0 ) | bit1;
14696   }
14697 
operator &(SubmitFlagBitsKHR bit0,SubmitFlagBitsKHR bit1)14698   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator&( SubmitFlagBitsKHR bit0,
14699                                                                    SubmitFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14700   {
14701     return SubmitFlagsKHR( bit0 ) & bit1;
14702   }
14703 
operator ^(SubmitFlagBitsKHR bit0,SubmitFlagBitsKHR bit1)14704   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator^( SubmitFlagBitsKHR bit0,
14705                                                                    SubmitFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14706   {
14707     return SubmitFlagsKHR( bit0 ) ^ bit1;
14708   }
14709 
operator ~(SubmitFlagBitsKHR bits)14710   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator~( SubmitFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
14711   {
14712     return ~( SubmitFlagsKHR( bits ) );
14713   }
14714 
to_string(SubmitFlagsKHR value)14715   VULKAN_HPP_INLINE std::string to_string( SubmitFlagsKHR value )
14716   {
14717     if ( !value )
14718       return "{}";
14719 
14720     std::string result;
14721     if ( value & SubmitFlagBitsKHR::eProtected )
14722       result += "Protected | ";
14723 
14724     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14725   }
14726 
14727   //=== VK_NV_ray_tracing_motion_blur ===
14728 
14729   using AccelerationStructureMotionInfoFlagsNV = Flags<AccelerationStructureMotionInfoFlagBitsNV>;
14730 
to_string(AccelerationStructureMotionInfoFlagsNV)14731   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMotionInfoFlagsNV )
14732   {
14733     return "{}";
14734   }
14735 
14736   using AccelerationStructureMotionInstanceFlagsNV = Flags<AccelerationStructureMotionInstanceFlagBitsNV>;
14737 
to_string(AccelerationStructureMotionInstanceFlagsNV)14738   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMotionInstanceFlagsNV )
14739   {
14740     return "{}";
14741   }
14742 
14743 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
14744   //=== VK_EXT_directfb_surface ===
14745 
14746   using DirectFBSurfaceCreateFlagsEXT = Flags<DirectFBSurfaceCreateFlagBitsEXT>;
14747 
to_string(DirectFBSurfaceCreateFlagsEXT)14748   VULKAN_HPP_INLINE std::string to_string( DirectFBSurfaceCreateFlagsEXT )
14749   {
14750     return "{}";
14751   }
14752 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
14753 
14754   //=== VK_KHR_format_feature_flags2 ===
14755 
14756   using FormatFeatureFlags2KHR = Flags<FormatFeatureFlagBits2KHR>;
14757 
14758   template <>
14759   struct FlagTraits<FormatFeatureFlagBits2KHR>
14760   {
14761     enum : VkFlags64
14762     {
14763       allFlags =
14764         VkFlags64( FormatFeatureFlagBits2KHR::eSampledImage ) | VkFlags64( FormatFeatureFlagBits2KHR::eStorageImage ) |
14765         VkFlags64( FormatFeatureFlagBits2KHR::eStorageImageAtomic ) |
14766         VkFlags64( FormatFeatureFlagBits2KHR::eUniformTexelBuffer ) |
14767         VkFlags64( FormatFeatureFlagBits2KHR::eStorageTexelBuffer ) |
14768         VkFlags64( FormatFeatureFlagBits2KHR::eStorageTexelBufferAtomic ) |
14769         VkFlags64( FormatFeatureFlagBits2KHR::eVertexBuffer ) |
14770         VkFlags64( FormatFeatureFlagBits2KHR::eColorAttachment ) |
14771         VkFlags64( FormatFeatureFlagBits2KHR::eColorAttachmentBlend ) |
14772         VkFlags64( FormatFeatureFlagBits2KHR::eDepthStencilAttachment ) |
14773         VkFlags64( FormatFeatureFlagBits2KHR::eBlitSrc ) | VkFlags64( FormatFeatureFlagBits2KHR::eBlitDst ) |
14774         VkFlags64( FormatFeatureFlagBits2KHR::eSampledImageFilterLinear ) |
14775         VkFlags64( FormatFeatureFlagBits2KHR::eSampledImageFilterCubicEXT ) |
14776         VkFlags64( FormatFeatureFlagBits2KHR::eTransferSrc ) | VkFlags64( FormatFeatureFlagBits2KHR::eTransferDst ) |
14777         VkFlags64( FormatFeatureFlagBits2KHR::eSampledImageFilterMinmax ) |
14778         VkFlags64( FormatFeatureFlagBits2KHR::eMidpointChromaSamples ) |
14779         VkFlags64( FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionLinearFilter ) |
14780         VkFlags64( FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionSeparateReconstructionFilter ) |
14781         VkFlags64( FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionChromaReconstructionExplicit ) |
14782         VkFlags64( FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable ) |
14783         VkFlags64( FormatFeatureFlagBits2KHR::eDisjoint ) |
14784         VkFlags64( FormatFeatureFlagBits2KHR::eCositedChromaSamples ) |
14785         VkFlags64( FormatFeatureFlagBits2KHR::eStorageReadWithoutFormat ) |
14786         VkFlags64( FormatFeatureFlagBits2KHR::eStorageWriteWithoutFormat ) |
14787         VkFlags64( FormatFeatureFlagBits2KHR::eSampledImageDepthComparison )
14788 #if defined( VK_ENABLE_BETA_EXTENSIONS )
14789         | VkFlags64( FormatFeatureFlagBits2KHR::eVideoDecodeOutput ) |
14790         VkFlags64( FormatFeatureFlagBits2KHR::eVideoDecodeDpb )
14791 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14792         | VkFlags64( FormatFeatureFlagBits2KHR::eAccelerationStructureVertexBuffer ) |
14793         VkFlags64( FormatFeatureFlagBits2KHR::eFragmentDensityMapEXT ) |
14794         VkFlags64( FormatFeatureFlagBits2KHR::eFragmentShadingRateAttachment )
14795 #if defined( VK_ENABLE_BETA_EXTENSIONS )
14796         | VkFlags64( FormatFeatureFlagBits2KHR::eVideoEncodeInput ) |
14797         VkFlags64( FormatFeatureFlagBits2KHR::eVideoEncodeDpb )
14798 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14799     };
14800   };
14801 
14802   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags2KHR
operator |(FormatFeatureFlagBits2KHR bit0,FormatFeatureFlagBits2KHR bit1)14803     operator|( FormatFeatureFlagBits2KHR bit0, FormatFeatureFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
14804   {
14805     return FormatFeatureFlags2KHR( bit0 ) | bit1;
14806   }
14807 
14808   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags2KHR
operator &(FormatFeatureFlagBits2KHR bit0,FormatFeatureFlagBits2KHR bit1)14809     operator&( FormatFeatureFlagBits2KHR bit0, FormatFeatureFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
14810   {
14811     return FormatFeatureFlags2KHR( bit0 ) & bit1;
14812   }
14813 
14814   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags2KHR
operator ^(FormatFeatureFlagBits2KHR bit0,FormatFeatureFlagBits2KHR bit1)14815     operator^( FormatFeatureFlagBits2KHR bit0, FormatFeatureFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
14816   {
14817     return FormatFeatureFlags2KHR( bit0 ) ^ bit1;
14818   }
14819 
operator ~(FormatFeatureFlagBits2KHR bits)14820   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags2KHR operator~( FormatFeatureFlagBits2KHR bits )
14821     VULKAN_HPP_NOEXCEPT
14822   {
14823     return ~( FormatFeatureFlags2KHR( bits ) );
14824   }
14825 
to_string(FormatFeatureFlags2KHR value)14826   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlags2KHR value )
14827   {
14828     if ( !value )
14829       return "{}";
14830 
14831     std::string result;
14832     if ( value & FormatFeatureFlagBits2KHR::eSampledImage )
14833       result += "SampledImage | ";
14834     if ( value & FormatFeatureFlagBits2KHR::eStorageImage )
14835       result += "StorageImage | ";
14836     if ( value & FormatFeatureFlagBits2KHR::eStorageImageAtomic )
14837       result += "StorageImageAtomic | ";
14838     if ( value & FormatFeatureFlagBits2KHR::eUniformTexelBuffer )
14839       result += "UniformTexelBuffer | ";
14840     if ( value & FormatFeatureFlagBits2KHR::eStorageTexelBuffer )
14841       result += "StorageTexelBuffer | ";
14842     if ( value & FormatFeatureFlagBits2KHR::eStorageTexelBufferAtomic )
14843       result += "StorageTexelBufferAtomic | ";
14844     if ( value & FormatFeatureFlagBits2KHR::eVertexBuffer )
14845       result += "VertexBuffer | ";
14846     if ( value & FormatFeatureFlagBits2KHR::eColorAttachment )
14847       result += "ColorAttachment | ";
14848     if ( value & FormatFeatureFlagBits2KHR::eColorAttachmentBlend )
14849       result += "ColorAttachmentBlend | ";
14850     if ( value & FormatFeatureFlagBits2KHR::eDepthStencilAttachment )
14851       result += "DepthStencilAttachment | ";
14852     if ( value & FormatFeatureFlagBits2KHR::eBlitSrc )
14853       result += "BlitSrc | ";
14854     if ( value & FormatFeatureFlagBits2KHR::eBlitDst )
14855       result += "BlitDst | ";
14856     if ( value & FormatFeatureFlagBits2KHR::eSampledImageFilterLinear )
14857       result += "SampledImageFilterLinear | ";
14858     if ( value & FormatFeatureFlagBits2KHR::eSampledImageFilterCubicEXT )
14859       result += "SampledImageFilterCubicEXT | ";
14860     if ( value & FormatFeatureFlagBits2KHR::eTransferSrc )
14861       result += "TransferSrc | ";
14862     if ( value & FormatFeatureFlagBits2KHR::eTransferDst )
14863       result += "TransferDst | ";
14864     if ( value & FormatFeatureFlagBits2KHR::eSampledImageFilterMinmax )
14865       result += "SampledImageFilterMinmax | ";
14866     if ( value & FormatFeatureFlagBits2KHR::eMidpointChromaSamples )
14867       result += "MidpointChromaSamples | ";
14868     if ( value & FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionLinearFilter )
14869       result += "SampledImageYcbcrConversionLinearFilter | ";
14870     if ( value & FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionSeparateReconstructionFilter )
14871       result += "SampledImageYcbcrConversionSeparateReconstructionFilter | ";
14872     if ( value & FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionChromaReconstructionExplicit )
14873       result += "SampledImageYcbcrConversionChromaReconstructionExplicit | ";
14874     if ( value & FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable )
14875       result += "SampledImageYcbcrConversionChromaReconstructionExplicitForceable | ";
14876     if ( value & FormatFeatureFlagBits2KHR::eDisjoint )
14877       result += "Disjoint | ";
14878     if ( value & FormatFeatureFlagBits2KHR::eCositedChromaSamples )
14879       result += "CositedChromaSamples | ";
14880     if ( value & FormatFeatureFlagBits2KHR::eStorageReadWithoutFormat )
14881       result += "StorageReadWithoutFormat | ";
14882     if ( value & FormatFeatureFlagBits2KHR::eStorageWriteWithoutFormat )
14883       result += "StorageWriteWithoutFormat | ";
14884     if ( value & FormatFeatureFlagBits2KHR::eSampledImageDepthComparison )
14885       result += "SampledImageDepthComparison | ";
14886 #if defined( VK_ENABLE_BETA_EXTENSIONS )
14887     if ( value & FormatFeatureFlagBits2KHR::eVideoDecodeOutput )
14888       result += "VideoDecodeOutput | ";
14889     if ( value & FormatFeatureFlagBits2KHR::eVideoDecodeDpb )
14890       result += "VideoDecodeDpb | ";
14891 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14892     if ( value & FormatFeatureFlagBits2KHR::eAccelerationStructureVertexBuffer )
14893       result += "AccelerationStructureVertexBuffer | ";
14894     if ( value & FormatFeatureFlagBits2KHR::eFragmentDensityMapEXT )
14895       result += "FragmentDensityMapEXT | ";
14896     if ( value & FormatFeatureFlagBits2KHR::eFragmentShadingRateAttachment )
14897       result += "FragmentShadingRateAttachment | ";
14898 #if defined( VK_ENABLE_BETA_EXTENSIONS )
14899     if ( value & FormatFeatureFlagBits2KHR::eVideoEncodeInput )
14900       result += "VideoEncodeInput | ";
14901     if ( value & FormatFeatureFlagBits2KHR::eVideoEncodeDpb )
14902       result += "VideoEncodeDpb | ";
14903 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14904 
14905     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14906   }
14907 
14908 #if defined( VK_USE_PLATFORM_FUCHSIA )
14909   //=== VK_FUCHSIA_buffer_collection ===
14910 
14911   using ImageFormatConstraintsFlagsFUCHSIA = Flags<ImageFormatConstraintsFlagBitsFUCHSIA>;
14912 
to_string(ImageFormatConstraintsFlagsFUCHSIA)14913   VULKAN_HPP_INLINE std::string to_string( ImageFormatConstraintsFlagsFUCHSIA )
14914   {
14915     return "{}";
14916   }
14917 
14918   using ImageConstraintsInfoFlagsFUCHSIA = Flags<ImageConstraintsInfoFlagBitsFUCHSIA>;
14919 
14920   template <>
14921   struct FlagTraits<ImageConstraintsInfoFlagBitsFUCHSIA>
14922   {
14923     enum : VkFlags
14924     {
14925       allFlags = VkFlags( ImageConstraintsInfoFlagBitsFUCHSIA::eCpuReadRarely ) |
14926                  VkFlags( ImageConstraintsInfoFlagBitsFUCHSIA::eCpuReadOften ) |
14927                  VkFlags( ImageConstraintsInfoFlagBitsFUCHSIA::eCpuWriteRarely ) |
14928                  VkFlags( ImageConstraintsInfoFlagBitsFUCHSIA::eCpuWriteOften ) |
14929                  VkFlags( ImageConstraintsInfoFlagBitsFUCHSIA::eProtectedOptional )
14930     };
14931   };
14932 
14933   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageConstraintsInfoFlagsFUCHSIA
operator |(ImageConstraintsInfoFlagBitsFUCHSIA bit0,ImageConstraintsInfoFlagBitsFUCHSIA bit1)14934     operator|( ImageConstraintsInfoFlagBitsFUCHSIA bit0, ImageConstraintsInfoFlagBitsFUCHSIA bit1 ) VULKAN_HPP_NOEXCEPT
14935   {
14936     return ImageConstraintsInfoFlagsFUCHSIA( bit0 ) | bit1;
14937   }
14938 
14939   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageConstraintsInfoFlagsFUCHSIA
operator &(ImageConstraintsInfoFlagBitsFUCHSIA bit0,ImageConstraintsInfoFlagBitsFUCHSIA bit1)14940     operator&( ImageConstraintsInfoFlagBitsFUCHSIA bit0, ImageConstraintsInfoFlagBitsFUCHSIA bit1 ) VULKAN_HPP_NOEXCEPT
14941   {
14942     return ImageConstraintsInfoFlagsFUCHSIA( bit0 ) & bit1;
14943   }
14944 
14945   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageConstraintsInfoFlagsFUCHSIA
operator ^(ImageConstraintsInfoFlagBitsFUCHSIA bit0,ImageConstraintsInfoFlagBitsFUCHSIA bit1)14946     operator^( ImageConstraintsInfoFlagBitsFUCHSIA bit0, ImageConstraintsInfoFlagBitsFUCHSIA bit1 ) VULKAN_HPP_NOEXCEPT
14947   {
14948     return ImageConstraintsInfoFlagsFUCHSIA( bit0 ) ^ bit1;
14949   }
14950 
14951   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageConstraintsInfoFlagsFUCHSIA
operator ~(ImageConstraintsInfoFlagBitsFUCHSIA bits)14952     operator~( ImageConstraintsInfoFlagBitsFUCHSIA bits ) VULKAN_HPP_NOEXCEPT
14953   {
14954     return ~( ImageConstraintsInfoFlagsFUCHSIA( bits ) );
14955   }
14956 
to_string(ImageConstraintsInfoFlagsFUCHSIA value)14957   VULKAN_HPP_INLINE std::string to_string( ImageConstraintsInfoFlagsFUCHSIA value )
14958   {
14959     if ( !value )
14960       return "{}";
14961 
14962     std::string result;
14963     if ( value & ImageConstraintsInfoFlagBitsFUCHSIA::eCpuReadRarely )
14964       result += "CpuReadRarely | ";
14965     if ( value & ImageConstraintsInfoFlagBitsFUCHSIA::eCpuReadOften )
14966       result += "CpuReadOften | ";
14967     if ( value & ImageConstraintsInfoFlagBitsFUCHSIA::eCpuWriteRarely )
14968       result += "CpuWriteRarely | ";
14969     if ( value & ImageConstraintsInfoFlagBitsFUCHSIA::eCpuWriteOften )
14970       result += "CpuWriteOften | ";
14971     if ( value & ImageConstraintsInfoFlagBitsFUCHSIA::eProtectedOptional )
14972       result += "ProtectedOptional | ";
14973 
14974     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14975   }
14976 #endif /*VK_USE_PLATFORM_FUCHSIA*/
14977 
14978 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
14979   //=== VK_QNX_screen_surface ===
14980 
14981   using ScreenSurfaceCreateFlagsQNX = Flags<ScreenSurfaceCreateFlagBitsQNX>;
14982 
to_string(ScreenSurfaceCreateFlagsQNX)14983   VULKAN_HPP_INLINE std::string to_string( ScreenSurfaceCreateFlagsQNX )
14984   {
14985     return "{}";
14986   }
14987 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
14988 
14989 }  // namespace VULKAN_HPP_NAMESPACE
14990 #endif
14991