• 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     eRenderingInfoKHR                          = VK_STRUCTURE_TYPE_RENDERING_INFO_KHR,
403     eRenderingAttachmentInfoKHR                = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR,
404     ePipelineRenderingCreateInfoKHR            = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,
405     ePhysicalDeviceDynamicRenderingFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR,
406     eCommandBufferInheritanceRenderingInfoKHR  = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR,
407     eRenderingFragmentShadingRateAttachmentInfoKHR =
408       VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,
409     eRenderingFragmentDensityMapAttachmentInfoEXT =
410       VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT,
411     eAttachmentSampleCountInfoAMD      = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
412     eMultiviewPerViewAttributesInfoNVX = VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX,
413 #if defined( VK_USE_PLATFORM_GGP )
414     eStreamDescriptorSurfaceCreateInfoGGP = VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP,
415 #endif /*VK_USE_PLATFORM_GGP*/
416     ePhysicalDeviceCornerSampledImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV,
417     eExternalMemoryImageCreateInfoNV            = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV,
418     eExportMemoryAllocateInfoNV                 = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV,
419 #if defined( VK_USE_PLATFORM_WIN32_KHR )
420     eImportMemoryWin32HandleInfoNV       = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV,
421     eExportMemoryWin32HandleInfoNV       = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV,
422     eWin32KeyedMutexAcquireReleaseInfoNV = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV,
423 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
424     eValidationFlagsEXT = VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT,
425 #if defined( VK_USE_PLATFORM_VI_NN )
426     eViSurfaceCreateInfoNN = VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN,
427 #endif /*VK_USE_PLATFORM_VI_NN*/
428     ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT =
429       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT,
430     eImageViewAstcDecodeModeEXT          = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT,
431     ePhysicalDeviceAstcDecodeFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT,
432 #if defined( VK_USE_PLATFORM_WIN32_KHR )
433     eImportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
434     eExportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
435     eMemoryWin32HandlePropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR,
436     eMemoryGetWin32HandleInfoKHR    = VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR,
437 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
438     eImportMemoryFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR,
439     eMemoryFdPropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR,
440     eMemoryGetFdInfoKHR    = VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR,
441 #if defined( VK_USE_PLATFORM_WIN32_KHR )
442     eWin32KeyedMutexAcquireReleaseInfoKHR = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR,
443     eImportSemaphoreWin32HandleInfoKHR    = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
444     eExportSemaphoreWin32HandleInfoKHR    = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
445     eD3D12FenceSubmitInfoKHR              = VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR,
446     eSemaphoreGetWin32HandleInfoKHR       = VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR,
447 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
448     eImportSemaphoreFdInfoKHR                  = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR,
449     eSemaphoreGetFdInfoKHR                     = VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR,
450     ePhysicalDevicePushDescriptorPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR,
451     eCommandBufferInheritanceConditionalRenderingInfoEXT =
452       VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT,
453     ePhysicalDeviceConditionalRenderingFeaturesEXT =
454       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT,
455     eConditionalRenderingBeginInfoEXT          = VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT,
456     ePresentRegionsKHR                         = VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR,
457     ePipelineViewportWScalingStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV,
458     eSurfaceCapabilities2EXT                   = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
459     eDisplayPowerInfoEXT                       = VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT,
460     eDeviceEventInfoEXT                        = VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT,
461     eDisplayEventInfoEXT                       = VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT,
462     eSwapchainCounterCreateInfoEXT             = VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT,
463     ePresentTimesInfoGOOGLE                    = VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE,
464     ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX =
465       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX,
466     ePipelineViewportSwizzleStateCreateInfoNV    = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV,
467     ePhysicalDeviceDiscardRectanglePropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT,
468     ePipelineDiscardRectangleStateCreateInfoEXT  = VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT,
469     ePhysicalDeviceConservativeRasterizationPropertiesEXT =
470       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT,
471     ePipelineRasterizationConservativeStateCreateInfoEXT =
472       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT,
473     ePhysicalDeviceDepthClipEnableFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT,
474     ePipelineRasterizationDepthClipStateCreateInfoEXT =
475       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT,
476     eHdrMetadataEXT                      = VK_STRUCTURE_TYPE_HDR_METADATA_EXT,
477     eSharedPresentSurfaceCapabilitiesKHR = VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR,
478 #if defined( VK_USE_PLATFORM_WIN32_KHR )
479     eImportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR,
480     eExportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR,
481     eFenceGetWin32HandleInfoKHR    = VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR,
482 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
483     eImportFenceFdInfoKHR                        = VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR,
484     eFenceGetFdInfoKHR                           = VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR,
485     ePhysicalDevicePerformanceQueryFeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR,
486     ePhysicalDevicePerformanceQueryPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR,
487     eQueryPoolPerformanceCreateInfoKHR           = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR,
488     ePerformanceQuerySubmitInfoKHR               = VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR,
489     eAcquireProfilingLockInfoKHR                 = VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR,
490     ePerformanceCounterKHR                       = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR,
491     ePerformanceCounterDescriptionKHR            = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR,
492     ePhysicalDeviceSurfaceInfo2KHR               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR,
493     eSurfaceCapabilities2KHR                     = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR,
494     eSurfaceFormat2KHR                           = VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR,
495     eDisplayProperties2KHR                       = VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR,
496     eDisplayPlaneProperties2KHR                  = VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR,
497     eDisplayModeProperties2KHR                   = VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR,
498     eDisplayPlaneInfo2KHR                        = VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR,
499     eDisplayPlaneCapabilities2KHR                = VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR,
500 #if defined( VK_USE_PLATFORM_IOS_MVK )
501     eIosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK,
502 #endif /*VK_USE_PLATFORM_IOS_MVK*/
503 #if defined( VK_USE_PLATFORM_MACOS_MVK )
504     eMacosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK,
505 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
506     eDebugUtilsObjectNameInfoEXT        = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT,
507     eDebugUtilsObjectTagInfoEXT         = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT,
508     eDebugUtilsLabelEXT                 = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
509     eDebugUtilsMessengerCallbackDataEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT,
510     eDebugUtilsMessengerCreateInfoEXT   = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
511 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
512     eAndroidHardwareBufferUsageANDROID            = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID,
513     eAndroidHardwareBufferPropertiesANDROID       = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID,
514     eAndroidHardwareBufferFormatPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID,
515     eImportAndroidHardwareBufferInfoANDROID       = VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
516     eMemoryGetAndroidHardwareBufferInfoANDROID    = VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
517     eExternalFormatANDROID                        = VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID,
518     eAndroidHardwareBufferFormatProperties2ANDROID =
519       VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID,
520 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
521     ePhysicalDeviceInlineUniformBlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT,
522     ePhysicalDeviceInlineUniformBlockPropertiesEXT =
523       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT,
524     eWriteDescriptorSetInlineUniformBlockEXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT,
525     eDescriptorPoolInlineUniformBlockCreateInfoEXT =
526       VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT,
527     eSampleLocationsInfoEXT                     = VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT,
528     eRenderPassSampleLocationsBeginInfoEXT      = VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT,
529     ePipelineSampleLocationsStateCreateInfoEXT  = VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT,
530     ePhysicalDeviceSampleLocationsPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT,
531     eMultisamplePropertiesEXT                   = VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT,
532     ePhysicalDeviceBlendOperationAdvancedFeaturesEXT =
533       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT,
534     ePhysicalDeviceBlendOperationAdvancedPropertiesEXT =
535       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT,
536     ePipelineColorBlendAdvancedStateCreateInfoEXT =
537       VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT,
538     ePipelineCoverageToColorStateCreateInfoNV   = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV,
539     eWriteDescriptorSetAccelerationStructureKHR = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR,
540     eAccelerationStructureBuildGeometryInfoKHR  = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,
541     eAccelerationStructureDeviceAddressInfoKHR  = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR,
542     eAccelerationStructureGeometryAabbsDataKHR  = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR,
543     eAccelerationStructureGeometryInstancesDataKHR =
544       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR,
545     eAccelerationStructureGeometryTrianglesDataKHR =
546       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR,
547     eAccelerationStructureGeometryKHR         = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR,
548     eAccelerationStructureVersionInfoKHR      = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR,
549     eCopyAccelerationStructureInfoKHR         = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR,
550     eCopyAccelerationStructureToMemoryInfoKHR = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR,
551     eCopyMemoryToAccelerationStructureInfoKHR = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR,
552     ePhysicalDeviceAccelerationStructureFeaturesKHR =
553       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR,
554     ePhysicalDeviceAccelerationStructurePropertiesKHR =
555       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR,
556     eAccelerationStructureCreateInfoKHR          = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR,
557     eAccelerationStructureBuildSizesInfoKHR      = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR,
558     ePhysicalDeviceRayTracingPipelineFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR,
559     ePhysicalDeviceRayTracingPipelinePropertiesKHR =
560       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR,
561     eRayTracingPipelineCreateInfoKHR             = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR,
562     eRayTracingShaderGroupCreateInfoKHR          = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR,
563     eRayTracingPipelineInterfaceCreateInfoKHR    = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR,
564     ePhysicalDeviceRayQueryFeaturesKHR           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR,
565     ePipelineCoverageModulationStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV,
566     ePhysicalDeviceShaderSmBuiltinsFeaturesNV    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV,
567     ePhysicalDeviceShaderSmBuiltinsPropertiesNV  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV,
568     eDrmFormatModifierPropertiesListEXT          = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT,
569     ePhysicalDeviceImageDrmFormatModifierInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT,
570     eImageDrmFormatModifierListCreateInfoEXT     = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT,
571     eImageDrmFormatModifierExplicitCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,
572     eImageDrmFormatModifierPropertiesEXT         = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,
573     eDrmFormatModifierPropertiesList2EXT         = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT,
574     eValidationCacheCreateInfoEXT                = VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT,
575     eShaderModuleValidationCacheCreateInfoEXT    = VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT,
576 #if defined( VK_ENABLE_BETA_EXTENSIONS )
577     ePhysicalDevicePortabilitySubsetFeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR,
578     ePhysicalDevicePortabilitySubsetPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR,
579 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
580     ePipelineViewportShadingRateImageStateCreateInfoNV =
581       VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV,
582     ePhysicalDeviceShadingRateImageFeaturesNV   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV,
583     ePhysicalDeviceShadingRateImagePropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV,
584     ePipelineViewportCoarseSampleOrderStateCreateInfoNV =
585       VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV,
586     eRayTracingPipelineCreateInfoNV            = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV,
587     eAccelerationStructureCreateInfoNV         = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV,
588     eGeometryNV                                = VK_STRUCTURE_TYPE_GEOMETRY_NV,
589     eGeometryTrianglesNV                       = VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV,
590     eGeometryAabbNV                            = VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV,
591     eBindAccelerationStructureMemoryInfoNV     = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV,
592     eWriteDescriptorSetAccelerationStructureNV = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV,
593     eAccelerationStructureMemoryRequirementsInfoNV =
594       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV,
595     ePhysicalDeviceRayTracingPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV,
596     eRayTracingShaderGroupCreateInfoNV    = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV,
597     eAccelerationStructureInfoNV          = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV,
598     ePhysicalDeviceRepresentativeFragmentTestFeaturesNV =
599       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV,
600     ePipelineRepresentativeFragmentTestStateCreateInfoNV =
601       VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV,
602     ePhysicalDeviceImageViewImageFormatInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT,
603     eFilterCubicImageViewImageFormatPropertiesEXT =
604       VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT,
605     eDeviceQueueGlobalPriorityCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT,
606     eImportMemoryHostPointerInfoEXT         = VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT,
607     eMemoryHostPointerPropertiesEXT         = VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT,
608     ePhysicalDeviceExternalMemoryHostPropertiesEXT =
609       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT,
610     ePhysicalDeviceShaderClockFeaturesKHR  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR,
611     ePipelineCompilerControlCreateInfoAMD  = VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD,
612     eCalibratedTimestampInfoEXT            = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT,
613     ePhysicalDeviceShaderCorePropertiesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD,
614 #if defined( VK_ENABLE_BETA_EXTENSIONS )
615     eVideoDecodeH265CapabilitiesEXT      = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT,
616     eVideoDecodeH265SessionCreateInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT,
617     eVideoDecodeH265SessionParametersCreateInfoEXT =
618       VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT,
619     eVideoDecodeH265SessionParametersAddInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT,
620     eVideoDecodeH265ProfileEXT                  = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT,
621     eVideoDecodeH265PictureInfoEXT              = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT,
622     eVideoDecodeH265DpbSlotInfoEXT              = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT,
623 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
624     eDeviceMemoryOverallocationCreateInfoAMD = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD,
625     ePhysicalDeviceVertexAttributeDivisorPropertiesEXT =
626       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT,
627     ePipelineVertexInputDivisorStateCreateInfoEXT =
628       VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT,
629     ePhysicalDeviceVertexAttributeDivisorFeaturesEXT =
630       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT,
631 #if defined( VK_USE_PLATFORM_GGP )
632     ePresentFrameTokenGGP = VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP,
633 #endif /*VK_USE_PLATFORM_GGP*/
634     ePipelineCreationFeedbackCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT,
635     ePhysicalDeviceComputeShaderDerivativesFeaturesNV =
636       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV,
637     ePhysicalDeviceMeshShaderFeaturesNV   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV,
638     ePhysicalDeviceMeshShaderPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV,
639     ePhysicalDeviceFragmentShaderBarycentricFeaturesNV =
640       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV,
641     ePhysicalDeviceShaderImageFootprintFeaturesNV =
642       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV,
643     ePipelineViewportExclusiveScissorStateCreateInfoNV =
644       VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV,
645     ePhysicalDeviceExclusiveScissorFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV,
646     eCheckpointDataNV                         = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV,
647     eQueueFamilyCheckpointPropertiesNV        = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV,
648     ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL =
649       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL,
650     eQueryPoolPerformanceQueryCreateInfoINTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
651     eInitializePerformanceApiInfoINTEL        = VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL,
652     ePerformanceMarkerInfoINTEL               = VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL,
653     ePerformanceStreamMarkerInfoINTEL         = VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL,
654     ePerformanceOverrideInfoINTEL             = VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL,
655     ePerformanceConfigurationAcquireInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL,
656     ePhysicalDevicePciBusInfoPropertiesEXT    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT,
657     eDisplayNativeHdrSurfaceCapabilitiesAMD   = VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD,
658     eSwapchainDisplayNativeHdrCreateInfoAMD   = VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD,
659 #if defined( VK_USE_PLATFORM_FUCHSIA )
660     eImagepipeSurfaceCreateInfoFUCHSIA = VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA,
661 #endif /*VK_USE_PLATFORM_FUCHSIA*/
662     ePhysicalDeviceShaderTerminateInvocationFeaturesKHR =
663       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR,
664 #if defined( VK_USE_PLATFORM_METAL_EXT )
665     eMetalSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT,
666 #endif /*VK_USE_PLATFORM_METAL_EXT*/
667     ePhysicalDeviceFragmentDensityMapFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT,
668     ePhysicalDeviceFragmentDensityMapPropertiesEXT =
669       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT,
670     eRenderPassFragmentDensityMapCreateInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT,
671     ePhysicalDeviceSubgroupSizeControlPropertiesEXT =
672       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT,
673     ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT =
674       VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
675     ePhysicalDeviceSubgroupSizeControlFeaturesEXT =
676       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT,
677     eFragmentShadingRateAttachmentInfoKHR = VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,
678     ePipelineFragmentShadingRateStateCreateInfoKHR =
679       VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR,
680     ePhysicalDeviceFragmentShadingRatePropertiesKHR =
681       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR,
682     ePhysicalDeviceFragmentShadingRateFeaturesKHR =
683       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR,
684     ePhysicalDeviceFragmentShadingRateKHR    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR,
685     ePhysicalDeviceShaderCoreProperties2AMD  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD,
686     ePhysicalDeviceCoherentMemoryFeaturesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD,
687     ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT =
688       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT,
689     ePhysicalDeviceMemoryBudgetPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT,
690     ePhysicalDeviceMemoryPriorityFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT,
691     eMemoryPriorityAllocateInfoEXT           = VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT,
692     eSurfaceProtectedCapabilitiesKHR         = VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR,
693     ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV =
694       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV,
695     ePhysicalDeviceBufferDeviceAddressFeaturesEXT =
696       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
697     eBufferDeviceAddressCreateInfoEXT            = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT,
698     ePhysicalDeviceToolPropertiesEXT             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT,
699     eValidationFeaturesEXT                       = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT,
700     ePhysicalDevicePresentWaitFeaturesKHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR,
701     ePhysicalDeviceCooperativeMatrixFeaturesNV   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV,
702     eCooperativeMatrixPropertiesNV               = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV,
703     ePhysicalDeviceCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV,
704     ePhysicalDeviceCoverageReductionModeFeaturesNV =
705       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV,
706     ePipelineCoverageReductionStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV,
707     eFramebufferMixedSamplesCombinationNV       = VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV,
708     ePhysicalDeviceFragmentShaderInterlockFeaturesEXT =
709       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT,
710     ePhysicalDeviceYcbcrImageArraysFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT,
711     ePhysicalDeviceProvokingVertexFeaturesEXT  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT,
712     ePipelineRasterizationProvokingVertexStateCreateInfoEXT =
713       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT,
714     ePhysicalDeviceProvokingVertexPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT,
715 #if defined( VK_USE_PLATFORM_WIN32_KHR )
716     eSurfaceFullScreenExclusiveInfoEXT         = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT,
717     eSurfaceCapabilitiesFullScreenExclusiveEXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT,
718     eSurfaceFullScreenExclusiveWin32InfoEXT    = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT,
719 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
720     eHeadlessSurfaceCreateInfoEXT                 = VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT,
721     ePhysicalDeviceLineRasterizationFeaturesEXT   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT,
722     ePipelineRasterizationLineStateCreateInfoEXT  = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT,
723     ePhysicalDeviceLineRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT,
724     ePhysicalDeviceShaderAtomicFloatFeaturesEXT   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT,
725     ePhysicalDeviceIndexTypeUint8FeaturesEXT      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT,
726     ePhysicalDeviceExtendedDynamicStateFeaturesEXT =
727       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT,
728     ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR =
729       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR,
730     ePipelineInfoKHR                             = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
731     ePipelineExecutablePropertiesKHR             = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR,
732     ePipelineExecutableInfoKHR                   = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR,
733     ePipelineExecutableStatisticKHR              = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR,
734     ePipelineExecutableInternalRepresentationKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR,
735     ePhysicalDeviceShaderAtomicFloat2FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT,
736     ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT =
737       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT,
738     ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV =
739       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV,
740     eGraphicsShaderGroupCreateInfoNV           = VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV,
741     eGraphicsPipelineShaderGroupsCreateInfoNV  = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV,
742     eIndirectCommandsLayoutTokenNV             = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV,
743     eIndirectCommandsLayoutCreateInfoNV        = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV,
744     eGeneratedCommandsInfoNV                   = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV,
745     eGeneratedCommandsMemoryRequirementsInfoNV = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV,
746     ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV =
747       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV,
748     ePhysicalDeviceInheritedViewportScissorFeaturesNV =
749       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV,
750     eCommandBufferInheritanceViewportScissorInfoNV =
751       VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV,
752     ePhysicalDeviceShaderIntegerDotProductFeaturesKHR =
753       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR,
754     ePhysicalDeviceShaderIntegerDotProductPropertiesKHR =
755       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR,
756     ePhysicalDeviceTexelBufferAlignmentFeaturesEXT =
757       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT,
758     ePhysicalDeviceTexelBufferAlignmentPropertiesEXT =
759       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT,
760     eCommandBufferInheritanceRenderPassTransformInfoQCOM =
761       VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM,
762     eRenderPassTransformBeginInfoQCOM            = VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM,
763     ePhysicalDeviceDeviceMemoryReportFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT,
764     eDeviceDeviceMemoryReportCreateInfoEXT       = VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT,
765     eDeviceMemoryReportCallbackDataEXT           = VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT,
766     ePhysicalDeviceRobustness2FeaturesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT,
767     ePhysicalDeviceRobustness2PropertiesEXT      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT,
768     eSamplerCustomBorderColorCreateInfoEXT       = VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT,
769     ePhysicalDeviceCustomBorderColorPropertiesEXT =
770       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT,
771     ePhysicalDeviceCustomBorderColorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT,
772     ePipelineLibraryCreateInfoKHR               = VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR,
773     ePresentIdKHR                               = VK_STRUCTURE_TYPE_PRESENT_ID_KHR,
774     ePhysicalDevicePresentIdFeaturesKHR         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR,
775     ePhysicalDevicePrivateDataFeaturesEXT       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT,
776     eDevicePrivateDataCreateInfoEXT             = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT,
777     ePrivateDataSlotCreateInfoEXT               = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT,
778     ePhysicalDevicePipelineCreationCacheControlFeaturesEXT =
779       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT,
780 #if defined( VK_ENABLE_BETA_EXTENSIONS )
781     eVideoEncodeInfoKHR            = VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR,
782     eVideoEncodeRateControlInfoKHR = VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR,
783 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
784     ePhysicalDeviceDiagnosticsConfigFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV,
785     eDeviceDiagnosticsConfigCreateInfoNV       = VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV,
786     eMemoryBarrier2KHR                         = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR,
787     eBufferMemoryBarrier2KHR                   = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR,
788     eImageMemoryBarrier2KHR                    = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR,
789     eDependencyInfoKHR                         = VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR,
790     eSubmitInfo2KHR                            = VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR,
791     eSemaphoreSubmitInfoKHR                    = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR,
792     eCommandBufferSubmitInfoKHR                = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR,
793     ePhysicalDeviceSynchronization2FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR,
794     eQueueFamilyCheckpointProperties2NV        = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV,
795     eCheckpointData2NV                         = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV,
796     ePhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR =
797       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR,
798     ePhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR =
799       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR,
800     ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV =
801       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV,
802     ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV =
803       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV,
804     ePipelineFragmentShadingRateEnumStateCreateInfoNV =
805       VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV,
806     eAccelerationStructureGeometryMotionTrianglesDataNV =
807       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV,
808     ePhysicalDeviceRayTracingMotionBlurFeaturesNV =
809       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV,
810     eAccelerationStructureMotionInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV,
811     ePhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT =
812       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT,
813     ePhysicalDeviceFragmentDensityMap2FeaturesEXT =
814       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT,
815     ePhysicalDeviceFragmentDensityMap2PropertiesEXT =
816       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT,
817     eCopyCommandTransformInfoQCOM             = VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM,
818     ePhysicalDeviceImageRobustnessFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT,
819     ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR =
820       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR,
821     eCopyBufferInfo2KHR                       = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR,
822     eCopyImageInfo2KHR                        = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR,
823     eCopyBufferToImageInfo2KHR                = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR,
824     eCopyImageToBufferInfo2KHR                = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR,
825     eBlitImageInfo2KHR                        = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR,
826     eResolveImageInfo2KHR                     = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR,
827     eBufferCopy2KHR                           = VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR,
828     eImageCopy2KHR                            = VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR,
829     eImageBlit2KHR                            = VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR,
830     eBufferImageCopy2KHR                      = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR,
831     eImageResolve2KHR                         = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR,
832     ePhysicalDevice4444FormatsFeaturesEXT     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT,
833     ePhysicalDeviceRgba10X6FormatsFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT,
834 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
835     eDirectfbSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT,
836 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
837     ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE =
838       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE,
839     eMutableDescriptorTypeCreateInfoVALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE,
840     ePhysicalDeviceVertexInputDynamicStateFeaturesEXT =
841       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT,
842     eVertexInputBindingDescription2EXT   = VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT,
843     eVertexInputAttributeDescription2EXT = VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT,
844     ePhysicalDeviceDrmPropertiesEXT      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT,
845     ePhysicalDevicePrimitiveTopologyListRestartFeaturesEXT =
846       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT,
847     eFormatProperties3KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR,
848 #if defined( VK_USE_PLATFORM_FUCHSIA )
849     eImportMemoryZirconHandleInfoFUCHSIA     = VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA,
850     eMemoryZirconHandlePropertiesFUCHSIA     = VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA,
851     eMemoryGetZirconHandleInfoFUCHSIA        = VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA,
852     eImportSemaphoreZirconHandleInfoFUCHSIA  = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA,
853     eSemaphoreGetZirconHandleInfoFUCHSIA     = VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA,
854     eBufferCollectionCreateInfoFUCHSIA       = VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA,
855     eImportMemoryBufferCollectionFUCHSIA     = VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA,
856     eBufferCollectionImageCreateInfoFUCHSIA  = VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA,
857     eBufferCollectionPropertiesFUCHSIA       = VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA,
858     eBufferConstraintsInfoFUCHSIA            = VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA,
859     eBufferCollectionBufferCreateInfoFUCHSIA = VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA,
860     eImageConstraintsInfoFUCHSIA             = VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA,
861     eImageFormatConstraintsInfoFUCHSIA       = VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA,
862     eSysmemColorSpaceFUCHSIA                 = VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA,
863     eBufferCollectionConstraintsInfoFUCHSIA  = VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA,
864 #endif /*VK_USE_PLATFORM_FUCHSIA*/
865     eSubpassShadingPipelineCreateInfoHUAWEI       = VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI,
866     ePhysicalDeviceSubpassShadingFeaturesHUAWEI   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI,
867     ePhysicalDeviceSubpassShadingPropertiesHUAWEI = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI,
868     ePhysicalDeviceInvocationMaskFeaturesHUAWEI   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI,
869     eMemoryGetRemoteAddressInfoNV                 = VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV,
870     ePhysicalDeviceExternalMemoryRdmaFeaturesNV   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV,
871     ePhysicalDeviceExtendedDynamicState2FeaturesEXT =
872       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT,
873 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
874     eScreenSurfaceCreateInfoQNX = VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX,
875 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
876     ePhysicalDeviceColorWriteEnableFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT,
877     ePipelineColorWriteCreateInfoEXT           = VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT,
878     ePhysicalDeviceGlobalPriorityQueryFeaturesEXT =
879       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT,
880     eQueueFamilyGlobalPriorityPropertiesEXT      = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT,
881     ePhysicalDeviceMultiDrawFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT,
882     ePhysicalDeviceMultiDrawPropertiesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT,
883     ePhysicalDeviceBorderColorSwizzleFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT,
884     eSamplerBorderColorComponentMappingCreateInfoEXT =
885       VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT,
886     ePhysicalDevicePageableDeviceLocalMemoryFeaturesEXT =
887       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT,
888     ePhysicalDeviceMaintenance4FeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR,
889     ePhysicalDeviceMaintenance4PropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR,
890     eDeviceBufferMemoryRequirementsKHR       = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR,
891     eDeviceImageMemoryRequirementsKHR        = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR,
892     eAttachmentDescription2KHR               = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR,
893     eAttachmentDescriptionStencilLayoutKHR   = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR,
894     eAttachmentReference2KHR                 = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR,
895     eAttachmentReferenceStencilLayoutKHR     = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR,
896     eAttachmentSampleCountInfoNV             = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV,
897     eBindBufferMemoryDeviceGroupInfoKHR      = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR,
898     eBindBufferMemoryInfoKHR                 = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR,
899     eBindImageMemoryDeviceGroupInfoKHR       = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR,
900     eBindImageMemoryInfoKHR                  = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR,
901     eBindImagePlaneMemoryInfoKHR             = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR,
902     eBufferDeviceAddressInfoEXT              = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT,
903     eBufferDeviceAddressInfoKHR              = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR,
904     eBufferMemoryRequirementsInfo2KHR        = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR,
905     eBufferOpaqueCaptureAddressCreateInfoKHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR,
906     eDebugReportCreateInfoEXT                = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT,
907     eDescriptorSetLayoutBindingFlagsCreateInfoEXT =
908       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT,
909     eDescriptorSetLayoutSupportKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR,
910     eDescriptorSetVariableDescriptorCountAllocateInfoEXT =
911       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT,
912     eDescriptorSetVariableDescriptorCountLayoutSupportEXT =
913       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT,
914     eDescriptorUpdateTemplateCreateInfoKHR     = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR,
915     eDeviceGroupBindSparseInfoKHR              = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR,
916     eDeviceGroupCommandBufferBeginInfoKHR      = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR,
917     eDeviceGroupDeviceCreateInfoKHR            = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR,
918     eDeviceGroupRenderPassBeginInfoKHR         = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR,
919     eDeviceGroupSubmitInfoKHR                  = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR,
920     eDeviceMemoryOpaqueCaptureAddressInfoKHR   = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR,
921     eExportFenceCreateInfoKHR                  = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR,
922     eExportMemoryAllocateInfoKHR               = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR,
923     eExportSemaphoreCreateInfoKHR              = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR,
924     eExternalBufferPropertiesKHR               = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR,
925     eExternalFencePropertiesKHR                = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR,
926     eExternalImageFormatPropertiesKHR          = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR,
927     eExternalMemoryBufferCreateInfoKHR         = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR,
928     eExternalMemoryImageCreateInfoKHR          = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR,
929     eExternalSemaphorePropertiesKHR            = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR,
930     eFormatProperties2KHR                      = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR,
931     eFramebufferAttachmentsCreateInfoKHR       = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR,
932     eFramebufferAttachmentImageInfoKHR         = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR,
933     eImageFormatListCreateInfoKHR              = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR,
934     eImageFormatProperties2KHR                 = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR,
935     eImageMemoryRequirementsInfo2KHR           = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR,
936     eImagePlaneMemoryRequirementsInfoKHR       = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR,
937     eImageSparseMemoryRequirementsInfo2KHR     = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR,
938     eImageStencilUsageCreateInfoEXT            = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT,
939     eImageViewUsageCreateInfoKHR               = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR,
940     eMemoryAllocateFlagsInfoKHR                = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR,
941     eMemoryDedicatedAllocateInfoKHR            = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR,
942     eMemoryDedicatedRequirementsKHR            = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR,
943     eMemoryOpaqueCaptureAddressAllocateInfoKHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR,
944     eMemoryRequirements2KHR                    = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR,
945     ePhysicalDevice16BitStorageFeaturesKHR     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR,
946     ePhysicalDevice8BitStorageFeaturesKHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR,
947     ePhysicalDeviceBufferAddressFeaturesEXT    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT,
948     ePhysicalDeviceBufferDeviceAddressFeaturesKHR =
949       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR,
950     ePhysicalDeviceDepthStencilResolvePropertiesKHR =
951       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR,
952     ePhysicalDeviceDescriptorIndexingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT,
953     ePhysicalDeviceDescriptorIndexingPropertiesEXT =
954       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT,
955     ePhysicalDeviceDriverPropertiesKHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR,
956     ePhysicalDeviceExternalBufferInfoKHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR,
957     ePhysicalDeviceExternalFenceInfoKHR       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR,
958     ePhysicalDeviceExternalImageFormatInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR,
959     ePhysicalDeviceExternalSemaphoreInfoKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR,
960     ePhysicalDeviceFeatures2KHR               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR,
961     ePhysicalDeviceFloat16Int8FeaturesKHR     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR,
962     ePhysicalDeviceFloatControlsPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR,
963     ePhysicalDeviceGroupPropertiesKHR         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR,
964     ePhysicalDeviceHostQueryResetFeaturesEXT  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT,
965     ePhysicalDeviceIdPropertiesKHR            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR,
966     ePhysicalDeviceImagelessFramebufferFeaturesKHR =
967       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR,
968     ePhysicalDeviceImageFormatInfo2KHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR,
969     ePhysicalDeviceMaintenance3PropertiesKHR  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR,
970     ePhysicalDeviceMemoryProperties2KHR       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR,
971     ePhysicalDeviceMultiviewFeaturesKHR       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR,
972     ePhysicalDeviceMultiviewPropertiesKHR     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR,
973     ePhysicalDevicePointClippingPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR,
974     ePhysicalDeviceProperties2KHR             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR,
975     ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT =
976       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT,
977     ePhysicalDeviceSamplerYcbcrConversionFeaturesKHR =
978       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR,
979     ePhysicalDeviceScalarBlockLayoutFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT,
980     ePhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR =
981       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR,
982     ePhysicalDeviceShaderAtomicInt64FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR,
983     ePhysicalDeviceShaderDrawParameterFeatures  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES,
984     ePhysicalDeviceShaderFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR,
985     ePhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR =
986       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR,
987     ePhysicalDeviceSparseImageFormatInfo2KHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR,
988     ePhysicalDeviceTimelineSemaphoreFeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR,
989     ePhysicalDeviceTimelineSemaphorePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR,
990     ePhysicalDeviceUniformBufferStandardLayoutFeaturesKHR =
991       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR,
992     ePhysicalDeviceVariablePointersFeaturesKHR  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
993     ePhysicalDeviceVariablePointerFeatures      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
994     ePhysicalDeviceVariablePointerFeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR,
995     ePhysicalDeviceVulkanMemoryModelFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR,
996     ePipelineTessellationDomainOriginStateCreateInfoKHR =
997       VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR,
998     eQueryPoolCreateInfoINTEL         = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL,
999     eQueueFamilyProperties2KHR        = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR,
1000     eRenderPassAttachmentBeginInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR,
1001     eRenderPassCreateInfo2KHR         = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR,
1002     eRenderPassInputAttachmentAspectCreateInfoKHR =
1003       VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR,
1004     eRenderPassMultiviewCreateInfoKHR    = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR,
1005     eSamplerReductionModeCreateInfoEXT   = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT,
1006     eSamplerYcbcrConversionCreateInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR,
1007     eSamplerYcbcrConversionImageFormatPropertiesKHR =
1008       VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR,
1009     eSamplerYcbcrConversionInfoKHR            = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR,
1010     eSemaphoreSignalInfoKHR                   = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR,
1011     eSemaphoreTypeCreateInfoKHR               = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR,
1012     eSemaphoreWaitInfoKHR                     = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR,
1013     eSparseImageFormatProperties2KHR          = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR,
1014     eSparseImageMemoryRequirements2KHR        = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR,
1015     eSubpassBeginInfoKHR                      = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR,
1016     eSubpassDependency2KHR                    = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR,
1017     eSubpassDescription2KHR                   = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR,
1018     eSubpassDescriptionDepthStencilResolveKHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR,
1019     eSubpassEndInfoKHR                        = VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR,
1020     eTimelineSemaphoreSubmitInfoKHR           = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR
1021   };
1022 
to_string(StructureType value)1023   VULKAN_HPP_INLINE std::string to_string( StructureType value )
1024   {
1025     switch ( value )
1026     {
1027       case StructureType::eApplicationInfo: return "ApplicationInfo";
1028       case StructureType::eInstanceCreateInfo: return "InstanceCreateInfo";
1029       case StructureType::eDeviceQueueCreateInfo: return "DeviceQueueCreateInfo";
1030       case StructureType::eDeviceCreateInfo: return "DeviceCreateInfo";
1031       case StructureType::eSubmitInfo: return "SubmitInfo";
1032       case StructureType::eMemoryAllocateInfo: return "MemoryAllocateInfo";
1033       case StructureType::eMappedMemoryRange: return "MappedMemoryRange";
1034       case StructureType::eBindSparseInfo: return "BindSparseInfo";
1035       case StructureType::eFenceCreateInfo: return "FenceCreateInfo";
1036       case StructureType::eSemaphoreCreateInfo: return "SemaphoreCreateInfo";
1037       case StructureType::eEventCreateInfo: return "EventCreateInfo";
1038       case StructureType::eQueryPoolCreateInfo: return "QueryPoolCreateInfo";
1039       case StructureType::eBufferCreateInfo: return "BufferCreateInfo";
1040       case StructureType::eBufferViewCreateInfo: return "BufferViewCreateInfo";
1041       case StructureType::eImageCreateInfo: return "ImageCreateInfo";
1042       case StructureType::eImageViewCreateInfo: return "ImageViewCreateInfo";
1043       case StructureType::eShaderModuleCreateInfo: return "ShaderModuleCreateInfo";
1044       case StructureType::ePipelineCacheCreateInfo: return "PipelineCacheCreateInfo";
1045       case StructureType::ePipelineShaderStageCreateInfo: return "PipelineShaderStageCreateInfo";
1046       case StructureType::ePipelineVertexInputStateCreateInfo: return "PipelineVertexInputStateCreateInfo";
1047       case StructureType::ePipelineInputAssemblyStateCreateInfo: return "PipelineInputAssemblyStateCreateInfo";
1048       case StructureType::ePipelineTessellationStateCreateInfo: return "PipelineTessellationStateCreateInfo";
1049       case StructureType::ePipelineViewportStateCreateInfo: return "PipelineViewportStateCreateInfo";
1050       case StructureType::ePipelineRasterizationStateCreateInfo: return "PipelineRasterizationStateCreateInfo";
1051       case StructureType::ePipelineMultisampleStateCreateInfo: return "PipelineMultisampleStateCreateInfo";
1052       case StructureType::ePipelineDepthStencilStateCreateInfo: return "PipelineDepthStencilStateCreateInfo";
1053       case StructureType::ePipelineColorBlendStateCreateInfo: return "PipelineColorBlendStateCreateInfo";
1054       case StructureType::ePipelineDynamicStateCreateInfo: return "PipelineDynamicStateCreateInfo";
1055       case StructureType::eGraphicsPipelineCreateInfo: return "GraphicsPipelineCreateInfo";
1056       case StructureType::eComputePipelineCreateInfo: return "ComputePipelineCreateInfo";
1057       case StructureType::ePipelineLayoutCreateInfo: return "PipelineLayoutCreateInfo";
1058       case StructureType::eSamplerCreateInfo: return "SamplerCreateInfo";
1059       case StructureType::eDescriptorSetLayoutCreateInfo: return "DescriptorSetLayoutCreateInfo";
1060       case StructureType::eDescriptorPoolCreateInfo: return "DescriptorPoolCreateInfo";
1061       case StructureType::eDescriptorSetAllocateInfo: return "DescriptorSetAllocateInfo";
1062       case StructureType::eWriteDescriptorSet: return "WriteDescriptorSet";
1063       case StructureType::eCopyDescriptorSet: return "CopyDescriptorSet";
1064       case StructureType::eFramebufferCreateInfo: return "FramebufferCreateInfo";
1065       case StructureType::eRenderPassCreateInfo: return "RenderPassCreateInfo";
1066       case StructureType::eCommandPoolCreateInfo: return "CommandPoolCreateInfo";
1067       case StructureType::eCommandBufferAllocateInfo: return "CommandBufferAllocateInfo";
1068       case StructureType::eCommandBufferInheritanceInfo: return "CommandBufferInheritanceInfo";
1069       case StructureType::eCommandBufferBeginInfo: return "CommandBufferBeginInfo";
1070       case StructureType::eRenderPassBeginInfo: return "RenderPassBeginInfo";
1071       case StructureType::eBufferMemoryBarrier: return "BufferMemoryBarrier";
1072       case StructureType::eImageMemoryBarrier: return "ImageMemoryBarrier";
1073       case StructureType::eMemoryBarrier: return "MemoryBarrier";
1074       case StructureType::eLoaderInstanceCreateInfo: return "LoaderInstanceCreateInfo";
1075       case StructureType::eLoaderDeviceCreateInfo: return "LoaderDeviceCreateInfo";
1076       case StructureType::ePhysicalDeviceSubgroupProperties: return "PhysicalDeviceSubgroupProperties";
1077       case StructureType::eBindBufferMemoryInfo: return "BindBufferMemoryInfo";
1078       case StructureType::eBindImageMemoryInfo: return "BindImageMemoryInfo";
1079       case StructureType::ePhysicalDevice16BitStorageFeatures: return "PhysicalDevice16BitStorageFeatures";
1080       case StructureType::eMemoryDedicatedRequirements: return "MemoryDedicatedRequirements";
1081       case StructureType::eMemoryDedicatedAllocateInfo: return "MemoryDedicatedAllocateInfo";
1082       case StructureType::eMemoryAllocateFlagsInfo: return "MemoryAllocateFlagsInfo";
1083       case StructureType::eDeviceGroupRenderPassBeginInfo: return "DeviceGroupRenderPassBeginInfo";
1084       case StructureType::eDeviceGroupCommandBufferBeginInfo: return "DeviceGroupCommandBufferBeginInfo";
1085       case StructureType::eDeviceGroupSubmitInfo: return "DeviceGroupSubmitInfo";
1086       case StructureType::eDeviceGroupBindSparseInfo: return "DeviceGroupBindSparseInfo";
1087       case StructureType::eBindBufferMemoryDeviceGroupInfo: return "BindBufferMemoryDeviceGroupInfo";
1088       case StructureType::eBindImageMemoryDeviceGroupInfo: return "BindImageMemoryDeviceGroupInfo";
1089       case StructureType::ePhysicalDeviceGroupProperties: return "PhysicalDeviceGroupProperties";
1090       case StructureType::eDeviceGroupDeviceCreateInfo: return "DeviceGroupDeviceCreateInfo";
1091       case StructureType::eBufferMemoryRequirementsInfo2: return "BufferMemoryRequirementsInfo2";
1092       case StructureType::eImageMemoryRequirementsInfo2: return "ImageMemoryRequirementsInfo2";
1093       case StructureType::eImageSparseMemoryRequirementsInfo2: return "ImageSparseMemoryRequirementsInfo2";
1094       case StructureType::eMemoryRequirements2: return "MemoryRequirements2";
1095       case StructureType::eSparseImageMemoryRequirements2: return "SparseImageMemoryRequirements2";
1096       case StructureType::ePhysicalDeviceFeatures2: return "PhysicalDeviceFeatures2";
1097       case StructureType::ePhysicalDeviceProperties2: return "PhysicalDeviceProperties2";
1098       case StructureType::eFormatProperties2: return "FormatProperties2";
1099       case StructureType::eImageFormatProperties2: return "ImageFormatProperties2";
1100       case StructureType::ePhysicalDeviceImageFormatInfo2: return "PhysicalDeviceImageFormatInfo2";
1101       case StructureType::eQueueFamilyProperties2: return "QueueFamilyProperties2";
1102       case StructureType::ePhysicalDeviceMemoryProperties2: return "PhysicalDeviceMemoryProperties2";
1103       case StructureType::eSparseImageFormatProperties2: return "SparseImageFormatProperties2";
1104       case StructureType::ePhysicalDeviceSparseImageFormatInfo2: return "PhysicalDeviceSparseImageFormatInfo2";
1105       case StructureType::ePhysicalDevicePointClippingProperties: return "PhysicalDevicePointClippingProperties";
1106       case StructureType::eRenderPassInputAttachmentAspectCreateInfo:
1107         return "RenderPassInputAttachmentAspectCreateInfo";
1108       case StructureType::eImageViewUsageCreateInfo: return "ImageViewUsageCreateInfo";
1109       case StructureType::ePipelineTessellationDomainOriginStateCreateInfo:
1110         return "PipelineTessellationDomainOriginStateCreateInfo";
1111       case StructureType::eRenderPassMultiviewCreateInfo: return "RenderPassMultiviewCreateInfo";
1112       case StructureType::ePhysicalDeviceMultiviewFeatures: return "PhysicalDeviceMultiviewFeatures";
1113       case StructureType::ePhysicalDeviceMultiviewProperties: return "PhysicalDeviceMultiviewProperties";
1114       case StructureType::ePhysicalDeviceVariablePointersFeatures: return "PhysicalDeviceVariablePointersFeatures";
1115       case StructureType::eProtectedSubmitInfo: return "ProtectedSubmitInfo";
1116       case StructureType::ePhysicalDeviceProtectedMemoryFeatures: return "PhysicalDeviceProtectedMemoryFeatures";
1117       case StructureType::ePhysicalDeviceProtectedMemoryProperties: return "PhysicalDeviceProtectedMemoryProperties";
1118       case StructureType::eDeviceQueueInfo2: return "DeviceQueueInfo2";
1119       case StructureType::eSamplerYcbcrConversionCreateInfo: return "SamplerYcbcrConversionCreateInfo";
1120       case StructureType::eSamplerYcbcrConversionInfo: return "SamplerYcbcrConversionInfo";
1121       case StructureType::eBindImagePlaneMemoryInfo: return "BindImagePlaneMemoryInfo";
1122       case StructureType::eImagePlaneMemoryRequirementsInfo: return "ImagePlaneMemoryRequirementsInfo";
1123       case StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures:
1124         return "PhysicalDeviceSamplerYcbcrConversionFeatures";
1125       case StructureType::eSamplerYcbcrConversionImageFormatProperties:
1126         return "SamplerYcbcrConversionImageFormatProperties";
1127       case StructureType::eDescriptorUpdateTemplateCreateInfo: return "DescriptorUpdateTemplateCreateInfo";
1128       case StructureType::ePhysicalDeviceExternalImageFormatInfo: return "PhysicalDeviceExternalImageFormatInfo";
1129       case StructureType::eExternalImageFormatProperties: return "ExternalImageFormatProperties";
1130       case StructureType::ePhysicalDeviceExternalBufferInfo: return "PhysicalDeviceExternalBufferInfo";
1131       case StructureType::eExternalBufferProperties: return "ExternalBufferProperties";
1132       case StructureType::ePhysicalDeviceIdProperties: return "PhysicalDeviceIdProperties";
1133       case StructureType::eExternalMemoryBufferCreateInfo: return "ExternalMemoryBufferCreateInfo";
1134       case StructureType::eExternalMemoryImageCreateInfo: return "ExternalMemoryImageCreateInfo";
1135       case StructureType::eExportMemoryAllocateInfo: return "ExportMemoryAllocateInfo";
1136       case StructureType::ePhysicalDeviceExternalFenceInfo: return "PhysicalDeviceExternalFenceInfo";
1137       case StructureType::eExternalFenceProperties: return "ExternalFenceProperties";
1138       case StructureType::eExportFenceCreateInfo: return "ExportFenceCreateInfo";
1139       case StructureType::eExportSemaphoreCreateInfo: return "ExportSemaphoreCreateInfo";
1140       case StructureType::ePhysicalDeviceExternalSemaphoreInfo: return "PhysicalDeviceExternalSemaphoreInfo";
1141       case StructureType::eExternalSemaphoreProperties: return "ExternalSemaphoreProperties";
1142       case StructureType::ePhysicalDeviceMaintenance3Properties: return "PhysicalDeviceMaintenance3Properties";
1143       case StructureType::eDescriptorSetLayoutSupport: return "DescriptorSetLayoutSupport";
1144       case StructureType::ePhysicalDeviceShaderDrawParametersFeatures:
1145         return "PhysicalDeviceShaderDrawParametersFeatures";
1146       case StructureType::ePhysicalDeviceVulkan11Features: return "PhysicalDeviceVulkan11Features";
1147       case StructureType::ePhysicalDeviceVulkan11Properties: return "PhysicalDeviceVulkan11Properties";
1148       case StructureType::ePhysicalDeviceVulkan12Features: return "PhysicalDeviceVulkan12Features";
1149       case StructureType::ePhysicalDeviceVulkan12Properties: return "PhysicalDeviceVulkan12Properties";
1150       case StructureType::eImageFormatListCreateInfo: return "ImageFormatListCreateInfo";
1151       case StructureType::eAttachmentDescription2: return "AttachmentDescription2";
1152       case StructureType::eAttachmentReference2: return "AttachmentReference2";
1153       case StructureType::eSubpassDescription2: return "SubpassDescription2";
1154       case StructureType::eSubpassDependency2: return "SubpassDependency2";
1155       case StructureType::eRenderPassCreateInfo2: return "RenderPassCreateInfo2";
1156       case StructureType::eSubpassBeginInfo: return "SubpassBeginInfo";
1157       case StructureType::eSubpassEndInfo: return "SubpassEndInfo";
1158       case StructureType::ePhysicalDevice8BitStorageFeatures: return "PhysicalDevice8BitStorageFeatures";
1159       case StructureType::ePhysicalDeviceDriverProperties: return "PhysicalDeviceDriverProperties";
1160       case StructureType::ePhysicalDeviceShaderAtomicInt64Features: return "PhysicalDeviceShaderAtomicInt64Features";
1161       case StructureType::ePhysicalDeviceShaderFloat16Int8Features: return "PhysicalDeviceShaderFloat16Int8Features";
1162       case StructureType::ePhysicalDeviceFloatControlsProperties: return "PhysicalDeviceFloatControlsProperties";
1163       case StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo:
1164         return "DescriptorSetLayoutBindingFlagsCreateInfo";
1165       case StructureType::ePhysicalDeviceDescriptorIndexingFeatures: return "PhysicalDeviceDescriptorIndexingFeatures";
1166       case StructureType::ePhysicalDeviceDescriptorIndexingProperties:
1167         return "PhysicalDeviceDescriptorIndexingProperties";
1168       case StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo:
1169         return "DescriptorSetVariableDescriptorCountAllocateInfo";
1170       case StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport:
1171         return "DescriptorSetVariableDescriptorCountLayoutSupport";
1172       case StructureType::ePhysicalDeviceDepthStencilResolveProperties:
1173         return "PhysicalDeviceDepthStencilResolveProperties";
1174       case StructureType::eSubpassDescriptionDepthStencilResolve: return "SubpassDescriptionDepthStencilResolve";
1175       case StructureType::ePhysicalDeviceScalarBlockLayoutFeatures: return "PhysicalDeviceScalarBlockLayoutFeatures";
1176       case StructureType::eImageStencilUsageCreateInfo: return "ImageStencilUsageCreateInfo";
1177       case StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties:
1178         return "PhysicalDeviceSamplerFilterMinmaxProperties";
1179       case StructureType::eSamplerReductionModeCreateInfo: return "SamplerReductionModeCreateInfo";
1180       case StructureType::ePhysicalDeviceVulkanMemoryModelFeatures: return "PhysicalDeviceVulkanMemoryModelFeatures";
1181       case StructureType::ePhysicalDeviceImagelessFramebufferFeatures:
1182         return "PhysicalDeviceImagelessFramebufferFeatures";
1183       case StructureType::eFramebufferAttachmentsCreateInfo: return "FramebufferAttachmentsCreateInfo";
1184       case StructureType::eFramebufferAttachmentImageInfo: return "FramebufferAttachmentImageInfo";
1185       case StructureType::eRenderPassAttachmentBeginInfo: return "RenderPassAttachmentBeginInfo";
1186       case StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures:
1187         return "PhysicalDeviceUniformBufferStandardLayoutFeatures";
1188       case StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures:
1189         return "PhysicalDeviceShaderSubgroupExtendedTypesFeatures";
1190       case StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures:
1191         return "PhysicalDeviceSeparateDepthStencilLayoutsFeatures";
1192       case StructureType::eAttachmentReferenceStencilLayout: return "AttachmentReferenceStencilLayout";
1193       case StructureType::eAttachmentDescriptionStencilLayout: return "AttachmentDescriptionStencilLayout";
1194       case StructureType::ePhysicalDeviceHostQueryResetFeatures: return "PhysicalDeviceHostQueryResetFeatures";
1195       case StructureType::ePhysicalDeviceTimelineSemaphoreFeatures: return "PhysicalDeviceTimelineSemaphoreFeatures";
1196       case StructureType::ePhysicalDeviceTimelineSemaphoreProperties:
1197         return "PhysicalDeviceTimelineSemaphoreProperties";
1198       case StructureType::eSemaphoreTypeCreateInfo: return "SemaphoreTypeCreateInfo";
1199       case StructureType::eTimelineSemaphoreSubmitInfo: return "TimelineSemaphoreSubmitInfo";
1200       case StructureType::eSemaphoreWaitInfo: return "SemaphoreWaitInfo";
1201       case StructureType::eSemaphoreSignalInfo: return "SemaphoreSignalInfo";
1202       case StructureType::ePhysicalDeviceBufferDeviceAddressFeatures:
1203         return "PhysicalDeviceBufferDeviceAddressFeatures";
1204       case StructureType::eBufferDeviceAddressInfo: return "BufferDeviceAddressInfo";
1205       case StructureType::eBufferOpaqueCaptureAddressCreateInfo: return "BufferOpaqueCaptureAddressCreateInfo";
1206       case StructureType::eMemoryOpaqueCaptureAddressAllocateInfo: return "MemoryOpaqueCaptureAddressAllocateInfo";
1207       case StructureType::eDeviceMemoryOpaqueCaptureAddressInfo: return "DeviceMemoryOpaqueCaptureAddressInfo";
1208       case StructureType::eSwapchainCreateInfoKHR: return "SwapchainCreateInfoKHR";
1209       case StructureType::ePresentInfoKHR: return "PresentInfoKHR";
1210       case StructureType::eDeviceGroupPresentCapabilitiesKHR: return "DeviceGroupPresentCapabilitiesKHR";
1211       case StructureType::eImageSwapchainCreateInfoKHR: return "ImageSwapchainCreateInfoKHR";
1212       case StructureType::eBindImageMemorySwapchainInfoKHR: return "BindImageMemorySwapchainInfoKHR";
1213       case StructureType::eAcquireNextImageInfoKHR: return "AcquireNextImageInfoKHR";
1214       case StructureType::eDeviceGroupPresentInfoKHR: return "DeviceGroupPresentInfoKHR";
1215       case StructureType::eDeviceGroupSwapchainCreateInfoKHR: return "DeviceGroupSwapchainCreateInfoKHR";
1216       case StructureType::eDisplayModeCreateInfoKHR: return "DisplayModeCreateInfoKHR";
1217       case StructureType::eDisplaySurfaceCreateInfoKHR: return "DisplaySurfaceCreateInfoKHR";
1218       case StructureType::eDisplayPresentInfoKHR: return "DisplayPresentInfoKHR";
1219 #if defined( VK_USE_PLATFORM_XLIB_KHR )
1220       case StructureType::eXlibSurfaceCreateInfoKHR: return "XlibSurfaceCreateInfoKHR";
1221 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
1222 #if defined( VK_USE_PLATFORM_XCB_KHR )
1223       case StructureType::eXcbSurfaceCreateInfoKHR: return "XcbSurfaceCreateInfoKHR";
1224 #endif /*VK_USE_PLATFORM_XCB_KHR*/
1225 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
1226       case StructureType::eWaylandSurfaceCreateInfoKHR: return "WaylandSurfaceCreateInfoKHR";
1227 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
1228 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
1229       case StructureType::eAndroidSurfaceCreateInfoKHR: return "AndroidSurfaceCreateInfoKHR";
1230 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
1231 #if defined( VK_USE_PLATFORM_WIN32_KHR )
1232       case StructureType::eWin32SurfaceCreateInfoKHR: return "Win32SurfaceCreateInfoKHR";
1233 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1234       case StructureType::eDebugReportCallbackCreateInfoEXT: return "DebugReportCallbackCreateInfoEXT";
1235       case StructureType::ePipelineRasterizationStateRasterizationOrderAMD:
1236         return "PipelineRasterizationStateRasterizationOrderAMD";
1237       case StructureType::eDebugMarkerObjectNameInfoEXT: return "DebugMarkerObjectNameInfoEXT";
1238       case StructureType::eDebugMarkerObjectTagInfoEXT: return "DebugMarkerObjectTagInfoEXT";
1239       case StructureType::eDebugMarkerMarkerInfoEXT: return "DebugMarkerMarkerInfoEXT";
1240 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1241       case StructureType::eVideoProfileKHR: return "VideoProfileKHR";
1242       case StructureType::eVideoCapabilitiesKHR: return "VideoCapabilitiesKHR";
1243       case StructureType::eVideoPictureResourceKHR: return "VideoPictureResourceKHR";
1244       case StructureType::eVideoGetMemoryPropertiesKHR: return "VideoGetMemoryPropertiesKHR";
1245       case StructureType::eVideoBindMemoryKHR: return "VideoBindMemoryKHR";
1246       case StructureType::eVideoSessionCreateInfoKHR: return "VideoSessionCreateInfoKHR";
1247       case StructureType::eVideoSessionParametersCreateInfoKHR: return "VideoSessionParametersCreateInfoKHR";
1248       case StructureType::eVideoSessionParametersUpdateInfoKHR: return "VideoSessionParametersUpdateInfoKHR";
1249       case StructureType::eVideoBeginCodingInfoKHR: return "VideoBeginCodingInfoKHR";
1250       case StructureType::eVideoEndCodingInfoKHR: return "VideoEndCodingInfoKHR";
1251       case StructureType::eVideoCodingControlInfoKHR: return "VideoCodingControlInfoKHR";
1252       case StructureType::eVideoReferenceSlotKHR: return "VideoReferenceSlotKHR";
1253       case StructureType::eVideoQueueFamilyProperties2KHR: return "VideoQueueFamilyProperties2KHR";
1254       case StructureType::eVideoProfilesKHR: return "VideoProfilesKHR";
1255       case StructureType::ePhysicalDeviceVideoFormatInfoKHR: return "PhysicalDeviceVideoFormatInfoKHR";
1256       case StructureType::eVideoFormatPropertiesKHR: return "VideoFormatPropertiesKHR";
1257       case StructureType::eVideoDecodeInfoKHR: return "VideoDecodeInfoKHR";
1258 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1259       case StructureType::eDedicatedAllocationImageCreateInfoNV: return "DedicatedAllocationImageCreateInfoNV";
1260       case StructureType::eDedicatedAllocationBufferCreateInfoNV: return "DedicatedAllocationBufferCreateInfoNV";
1261       case StructureType::eDedicatedAllocationMemoryAllocateInfoNV: return "DedicatedAllocationMemoryAllocateInfoNV";
1262       case StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT:
1263         return "PhysicalDeviceTransformFeedbackFeaturesEXT";
1264       case StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT:
1265         return "PhysicalDeviceTransformFeedbackPropertiesEXT";
1266       case StructureType::ePipelineRasterizationStateStreamCreateInfoEXT:
1267         return "PipelineRasterizationStateStreamCreateInfoEXT";
1268       case StructureType::eCuModuleCreateInfoNVX: return "CuModuleCreateInfoNVX";
1269       case StructureType::eCuFunctionCreateInfoNVX: return "CuFunctionCreateInfoNVX";
1270       case StructureType::eCuLaunchInfoNVX: return "CuLaunchInfoNVX";
1271       case StructureType::eImageViewHandleInfoNVX: return "ImageViewHandleInfoNVX";
1272       case StructureType::eImageViewAddressPropertiesNVX: return "ImageViewAddressPropertiesNVX";
1273 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1274       case StructureType::eVideoEncodeH264CapabilitiesEXT: return "VideoEncodeH264CapabilitiesEXT";
1275       case StructureType::eVideoEncodeH264SessionCreateInfoEXT: return "VideoEncodeH264SessionCreateInfoEXT";
1276       case StructureType::eVideoEncodeH264SessionParametersCreateInfoEXT:
1277         return "VideoEncodeH264SessionParametersCreateInfoEXT";
1278       case StructureType::eVideoEncodeH264SessionParametersAddInfoEXT:
1279         return "VideoEncodeH264SessionParametersAddInfoEXT";
1280       case StructureType::eVideoEncodeH264VclFrameInfoEXT: return "VideoEncodeH264VclFrameInfoEXT";
1281       case StructureType::eVideoEncodeH264DpbSlotInfoEXT: return "VideoEncodeH264DpbSlotInfoEXT";
1282       case StructureType::eVideoEncodeH264NaluSliceEXT: return "VideoEncodeH264NaluSliceEXT";
1283       case StructureType::eVideoEncodeH264EmitPictureParametersEXT: return "VideoEncodeH264EmitPictureParametersEXT";
1284       case StructureType::eVideoEncodeH264ProfileEXT: return "VideoEncodeH264ProfileEXT";
1285       case StructureType::eVideoEncodeH265CapabilitiesEXT: return "VideoEncodeH265CapabilitiesEXT";
1286       case StructureType::eVideoEncodeH265SessionCreateInfoEXT: return "VideoEncodeH265SessionCreateInfoEXT";
1287       case StructureType::eVideoEncodeH265SessionParametersCreateInfoEXT:
1288         return "VideoEncodeH265SessionParametersCreateInfoEXT";
1289       case StructureType::eVideoEncodeH265SessionParametersAddInfoEXT:
1290         return "VideoEncodeH265SessionParametersAddInfoEXT";
1291       case StructureType::eVideoEncodeH265VclFrameInfoEXT: return "VideoEncodeH265VclFrameInfoEXT";
1292       case StructureType::eVideoEncodeH265DpbSlotInfoEXT: return "VideoEncodeH265DpbSlotInfoEXT";
1293       case StructureType::eVideoEncodeH265NaluSliceEXT: return "VideoEncodeH265NaluSliceEXT";
1294       case StructureType::eVideoEncodeH265EmitPictureParametersEXT: return "VideoEncodeH265EmitPictureParametersEXT";
1295       case StructureType::eVideoEncodeH265ProfileEXT: return "VideoEncodeH265ProfileEXT";
1296       case StructureType::eVideoEncodeH265ReferenceListsEXT: return "VideoEncodeH265ReferenceListsEXT";
1297       case StructureType::eVideoDecodeH264CapabilitiesEXT: return "VideoDecodeH264CapabilitiesEXT";
1298       case StructureType::eVideoDecodeH264SessionCreateInfoEXT: return "VideoDecodeH264SessionCreateInfoEXT";
1299       case StructureType::eVideoDecodeH264PictureInfoEXT: return "VideoDecodeH264PictureInfoEXT";
1300       case StructureType::eVideoDecodeH264MvcEXT: return "VideoDecodeH264MvcEXT";
1301       case StructureType::eVideoDecodeH264ProfileEXT: return "VideoDecodeH264ProfileEXT";
1302       case StructureType::eVideoDecodeH264SessionParametersCreateInfoEXT:
1303         return "VideoDecodeH264SessionParametersCreateInfoEXT";
1304       case StructureType::eVideoDecodeH264SessionParametersAddInfoEXT:
1305         return "VideoDecodeH264SessionParametersAddInfoEXT";
1306       case StructureType::eVideoDecodeH264DpbSlotInfoEXT: return "VideoDecodeH264DpbSlotInfoEXT";
1307 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1308       case StructureType::eTextureLodGatherFormatPropertiesAMD: return "TextureLodGatherFormatPropertiesAMD";
1309       case StructureType::eRenderingInfoKHR: return "RenderingInfoKHR";
1310       case StructureType::eRenderingAttachmentInfoKHR: return "RenderingAttachmentInfoKHR";
1311       case StructureType::ePipelineRenderingCreateInfoKHR: return "PipelineRenderingCreateInfoKHR";
1312       case StructureType::ePhysicalDeviceDynamicRenderingFeaturesKHR:
1313         return "PhysicalDeviceDynamicRenderingFeaturesKHR";
1314       case StructureType::eCommandBufferInheritanceRenderingInfoKHR: return "CommandBufferInheritanceRenderingInfoKHR";
1315       case StructureType::eRenderingFragmentShadingRateAttachmentInfoKHR:
1316         return "RenderingFragmentShadingRateAttachmentInfoKHR";
1317       case StructureType::eRenderingFragmentDensityMapAttachmentInfoEXT:
1318         return "RenderingFragmentDensityMapAttachmentInfoEXT";
1319       case StructureType::eAttachmentSampleCountInfoAMD: return "AttachmentSampleCountInfoAMD";
1320       case StructureType::eMultiviewPerViewAttributesInfoNVX: return "MultiviewPerViewAttributesInfoNVX";
1321 #if defined( VK_USE_PLATFORM_GGP )
1322       case StructureType::eStreamDescriptorSurfaceCreateInfoGGP: return "StreamDescriptorSurfaceCreateInfoGGP";
1323 #endif /*VK_USE_PLATFORM_GGP*/
1324       case StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV:
1325         return "PhysicalDeviceCornerSampledImageFeaturesNV";
1326       case StructureType::eExternalMemoryImageCreateInfoNV: return "ExternalMemoryImageCreateInfoNV";
1327       case StructureType::eExportMemoryAllocateInfoNV: return "ExportMemoryAllocateInfoNV";
1328 #if defined( VK_USE_PLATFORM_WIN32_KHR )
1329       case StructureType::eImportMemoryWin32HandleInfoNV: return "ImportMemoryWin32HandleInfoNV";
1330       case StructureType::eExportMemoryWin32HandleInfoNV: return "ExportMemoryWin32HandleInfoNV";
1331       case StructureType::eWin32KeyedMutexAcquireReleaseInfoNV: return "Win32KeyedMutexAcquireReleaseInfoNV";
1332 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1333       case StructureType::eValidationFlagsEXT: return "ValidationFlagsEXT";
1334 #if defined( VK_USE_PLATFORM_VI_NN )
1335       case StructureType::eViSurfaceCreateInfoNN: return "ViSurfaceCreateInfoNN";
1336 #endif /*VK_USE_PLATFORM_VI_NN*/
1337       case StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT:
1338         return "PhysicalDeviceTextureCompressionAstcHdrFeaturesEXT";
1339       case StructureType::eImageViewAstcDecodeModeEXT: return "ImageViewAstcDecodeModeEXT";
1340       case StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT: return "PhysicalDeviceAstcDecodeFeaturesEXT";
1341 #if defined( VK_USE_PLATFORM_WIN32_KHR )
1342       case StructureType::eImportMemoryWin32HandleInfoKHR: return "ImportMemoryWin32HandleInfoKHR";
1343       case StructureType::eExportMemoryWin32HandleInfoKHR: return "ExportMemoryWin32HandleInfoKHR";
1344       case StructureType::eMemoryWin32HandlePropertiesKHR: return "MemoryWin32HandlePropertiesKHR";
1345       case StructureType::eMemoryGetWin32HandleInfoKHR: return "MemoryGetWin32HandleInfoKHR";
1346 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1347       case StructureType::eImportMemoryFdInfoKHR: return "ImportMemoryFdInfoKHR";
1348       case StructureType::eMemoryFdPropertiesKHR: return "MemoryFdPropertiesKHR";
1349       case StructureType::eMemoryGetFdInfoKHR: return "MemoryGetFdInfoKHR";
1350 #if defined( VK_USE_PLATFORM_WIN32_KHR )
1351       case StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR: return "Win32KeyedMutexAcquireReleaseInfoKHR";
1352       case StructureType::eImportSemaphoreWin32HandleInfoKHR: return "ImportSemaphoreWin32HandleInfoKHR";
1353       case StructureType::eExportSemaphoreWin32HandleInfoKHR: return "ExportSemaphoreWin32HandleInfoKHR";
1354       case StructureType::eD3D12FenceSubmitInfoKHR: return "D3D12FenceSubmitInfoKHR";
1355       case StructureType::eSemaphoreGetWin32HandleInfoKHR: return "SemaphoreGetWin32HandleInfoKHR";
1356 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1357       case StructureType::eImportSemaphoreFdInfoKHR: return "ImportSemaphoreFdInfoKHR";
1358       case StructureType::eSemaphoreGetFdInfoKHR: return "SemaphoreGetFdInfoKHR";
1359       case StructureType::ePhysicalDevicePushDescriptorPropertiesKHR:
1360         return "PhysicalDevicePushDescriptorPropertiesKHR";
1361       case StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT:
1362         return "CommandBufferInheritanceConditionalRenderingInfoEXT";
1363       case StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT:
1364         return "PhysicalDeviceConditionalRenderingFeaturesEXT";
1365       case StructureType::eConditionalRenderingBeginInfoEXT: return "ConditionalRenderingBeginInfoEXT";
1366       case StructureType::ePresentRegionsKHR: return "PresentRegionsKHR";
1367       case StructureType::ePipelineViewportWScalingStateCreateInfoNV:
1368         return "PipelineViewportWScalingStateCreateInfoNV";
1369       case StructureType::eSurfaceCapabilities2EXT: return "SurfaceCapabilities2EXT";
1370       case StructureType::eDisplayPowerInfoEXT: return "DisplayPowerInfoEXT";
1371       case StructureType::eDeviceEventInfoEXT: return "DeviceEventInfoEXT";
1372       case StructureType::eDisplayEventInfoEXT: return "DisplayEventInfoEXT";
1373       case StructureType::eSwapchainCounterCreateInfoEXT: return "SwapchainCounterCreateInfoEXT";
1374       case StructureType::ePresentTimesInfoGOOGLE: return "PresentTimesInfoGOOGLE";
1375       case StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX:
1376         return "PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX";
1377       case StructureType::ePipelineViewportSwizzleStateCreateInfoNV: return "PipelineViewportSwizzleStateCreateInfoNV";
1378       case StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT:
1379         return "PhysicalDeviceDiscardRectanglePropertiesEXT";
1380       case StructureType::ePipelineDiscardRectangleStateCreateInfoEXT:
1381         return "PipelineDiscardRectangleStateCreateInfoEXT";
1382       case StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT:
1383         return "PhysicalDeviceConservativeRasterizationPropertiesEXT";
1384       case StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT:
1385         return "PipelineRasterizationConservativeStateCreateInfoEXT";
1386       case StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT: return "PhysicalDeviceDepthClipEnableFeaturesEXT";
1387       case StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT:
1388         return "PipelineRasterizationDepthClipStateCreateInfoEXT";
1389       case StructureType::eHdrMetadataEXT: return "HdrMetadataEXT";
1390       case StructureType::eSharedPresentSurfaceCapabilitiesKHR: return "SharedPresentSurfaceCapabilitiesKHR";
1391 #if defined( VK_USE_PLATFORM_WIN32_KHR )
1392       case StructureType::eImportFenceWin32HandleInfoKHR: return "ImportFenceWin32HandleInfoKHR";
1393       case StructureType::eExportFenceWin32HandleInfoKHR: return "ExportFenceWin32HandleInfoKHR";
1394       case StructureType::eFenceGetWin32HandleInfoKHR: return "FenceGetWin32HandleInfoKHR";
1395 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1396       case StructureType::eImportFenceFdInfoKHR: return "ImportFenceFdInfoKHR";
1397       case StructureType::eFenceGetFdInfoKHR: return "FenceGetFdInfoKHR";
1398       case StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR:
1399         return "PhysicalDevicePerformanceQueryFeaturesKHR";
1400       case StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR:
1401         return "PhysicalDevicePerformanceQueryPropertiesKHR";
1402       case StructureType::eQueryPoolPerformanceCreateInfoKHR: return "QueryPoolPerformanceCreateInfoKHR";
1403       case StructureType::ePerformanceQuerySubmitInfoKHR: return "PerformanceQuerySubmitInfoKHR";
1404       case StructureType::eAcquireProfilingLockInfoKHR: return "AcquireProfilingLockInfoKHR";
1405       case StructureType::ePerformanceCounterKHR: return "PerformanceCounterKHR";
1406       case StructureType::ePerformanceCounterDescriptionKHR: return "PerformanceCounterDescriptionKHR";
1407       case StructureType::ePhysicalDeviceSurfaceInfo2KHR: return "PhysicalDeviceSurfaceInfo2KHR";
1408       case StructureType::eSurfaceCapabilities2KHR: return "SurfaceCapabilities2KHR";
1409       case StructureType::eSurfaceFormat2KHR: return "SurfaceFormat2KHR";
1410       case StructureType::eDisplayProperties2KHR: return "DisplayProperties2KHR";
1411       case StructureType::eDisplayPlaneProperties2KHR: return "DisplayPlaneProperties2KHR";
1412       case StructureType::eDisplayModeProperties2KHR: return "DisplayModeProperties2KHR";
1413       case StructureType::eDisplayPlaneInfo2KHR: return "DisplayPlaneInfo2KHR";
1414       case StructureType::eDisplayPlaneCapabilities2KHR: return "DisplayPlaneCapabilities2KHR";
1415 #if defined( VK_USE_PLATFORM_IOS_MVK )
1416       case StructureType::eIosSurfaceCreateInfoMVK: return "IosSurfaceCreateInfoMVK";
1417 #endif /*VK_USE_PLATFORM_IOS_MVK*/
1418 #if defined( VK_USE_PLATFORM_MACOS_MVK )
1419       case StructureType::eMacosSurfaceCreateInfoMVK: return "MacosSurfaceCreateInfoMVK";
1420 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
1421       case StructureType::eDebugUtilsObjectNameInfoEXT: return "DebugUtilsObjectNameInfoEXT";
1422       case StructureType::eDebugUtilsObjectTagInfoEXT: return "DebugUtilsObjectTagInfoEXT";
1423       case StructureType::eDebugUtilsLabelEXT: return "DebugUtilsLabelEXT";
1424       case StructureType::eDebugUtilsMessengerCallbackDataEXT: return "DebugUtilsMessengerCallbackDataEXT";
1425       case StructureType::eDebugUtilsMessengerCreateInfoEXT: return "DebugUtilsMessengerCreateInfoEXT";
1426 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
1427       case StructureType::eAndroidHardwareBufferUsageANDROID: return "AndroidHardwareBufferUsageANDROID";
1428       case StructureType::eAndroidHardwareBufferPropertiesANDROID: return "AndroidHardwareBufferPropertiesANDROID";
1429       case StructureType::eAndroidHardwareBufferFormatPropertiesANDROID:
1430         return "AndroidHardwareBufferFormatPropertiesANDROID";
1431       case StructureType::eImportAndroidHardwareBufferInfoANDROID: return "ImportAndroidHardwareBufferInfoANDROID";
1432       case StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID:
1433         return "MemoryGetAndroidHardwareBufferInfoANDROID";
1434       case StructureType::eExternalFormatANDROID: return "ExternalFormatANDROID";
1435       case StructureType::eAndroidHardwareBufferFormatProperties2ANDROID:
1436         return "AndroidHardwareBufferFormatProperties2ANDROID";
1437 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
1438       case StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT:
1439         return "PhysicalDeviceInlineUniformBlockFeaturesEXT";
1440       case StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT:
1441         return "PhysicalDeviceInlineUniformBlockPropertiesEXT";
1442       case StructureType::eWriteDescriptorSetInlineUniformBlockEXT: return "WriteDescriptorSetInlineUniformBlockEXT";
1443       case StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT:
1444         return "DescriptorPoolInlineUniformBlockCreateInfoEXT";
1445       case StructureType::eSampleLocationsInfoEXT: return "SampleLocationsInfoEXT";
1446       case StructureType::eRenderPassSampleLocationsBeginInfoEXT: return "RenderPassSampleLocationsBeginInfoEXT";
1447       case StructureType::ePipelineSampleLocationsStateCreateInfoEXT:
1448         return "PipelineSampleLocationsStateCreateInfoEXT";
1449       case StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT:
1450         return "PhysicalDeviceSampleLocationsPropertiesEXT";
1451       case StructureType::eMultisamplePropertiesEXT: return "MultisamplePropertiesEXT";
1452       case StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT:
1453         return "PhysicalDeviceBlendOperationAdvancedFeaturesEXT";
1454       case StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT:
1455         return "PhysicalDeviceBlendOperationAdvancedPropertiesEXT";
1456       case StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT:
1457         return "PipelineColorBlendAdvancedStateCreateInfoEXT";
1458       case StructureType::ePipelineCoverageToColorStateCreateInfoNV: return "PipelineCoverageToColorStateCreateInfoNV";
1459       case StructureType::eWriteDescriptorSetAccelerationStructureKHR:
1460         return "WriteDescriptorSetAccelerationStructureKHR";
1461       case StructureType::eAccelerationStructureBuildGeometryInfoKHR:
1462         return "AccelerationStructureBuildGeometryInfoKHR";
1463       case StructureType::eAccelerationStructureDeviceAddressInfoKHR:
1464         return "AccelerationStructureDeviceAddressInfoKHR";
1465       case StructureType::eAccelerationStructureGeometryAabbsDataKHR:
1466         return "AccelerationStructureGeometryAabbsDataKHR";
1467       case StructureType::eAccelerationStructureGeometryInstancesDataKHR:
1468         return "AccelerationStructureGeometryInstancesDataKHR";
1469       case StructureType::eAccelerationStructureGeometryTrianglesDataKHR:
1470         return "AccelerationStructureGeometryTrianglesDataKHR";
1471       case StructureType::eAccelerationStructureGeometryKHR: return "AccelerationStructureGeometryKHR";
1472       case StructureType::eAccelerationStructureVersionInfoKHR: return "AccelerationStructureVersionInfoKHR";
1473       case StructureType::eCopyAccelerationStructureInfoKHR: return "CopyAccelerationStructureInfoKHR";
1474       case StructureType::eCopyAccelerationStructureToMemoryInfoKHR: return "CopyAccelerationStructureToMemoryInfoKHR";
1475       case StructureType::eCopyMemoryToAccelerationStructureInfoKHR: return "CopyMemoryToAccelerationStructureInfoKHR";
1476       case StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR:
1477         return "PhysicalDeviceAccelerationStructureFeaturesKHR";
1478       case StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR:
1479         return "PhysicalDeviceAccelerationStructurePropertiesKHR";
1480       case StructureType::eAccelerationStructureCreateInfoKHR: return "AccelerationStructureCreateInfoKHR";
1481       case StructureType::eAccelerationStructureBuildSizesInfoKHR: return "AccelerationStructureBuildSizesInfoKHR";
1482       case StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR:
1483         return "PhysicalDeviceRayTracingPipelineFeaturesKHR";
1484       case StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR:
1485         return "PhysicalDeviceRayTracingPipelinePropertiesKHR";
1486       case StructureType::eRayTracingPipelineCreateInfoKHR: return "RayTracingPipelineCreateInfoKHR";
1487       case StructureType::eRayTracingShaderGroupCreateInfoKHR: return "RayTracingShaderGroupCreateInfoKHR";
1488       case StructureType::eRayTracingPipelineInterfaceCreateInfoKHR: return "RayTracingPipelineInterfaceCreateInfoKHR";
1489       case StructureType::ePhysicalDeviceRayQueryFeaturesKHR: return "PhysicalDeviceRayQueryFeaturesKHR";
1490       case StructureType::ePipelineCoverageModulationStateCreateInfoNV:
1491         return "PipelineCoverageModulationStateCreateInfoNV";
1492       case StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV: return "PhysicalDeviceShaderSmBuiltinsFeaturesNV";
1493       case StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV:
1494         return "PhysicalDeviceShaderSmBuiltinsPropertiesNV";
1495       case StructureType::eDrmFormatModifierPropertiesListEXT: return "DrmFormatModifierPropertiesListEXT";
1496       case StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT:
1497         return "PhysicalDeviceImageDrmFormatModifierInfoEXT";
1498       case StructureType::eImageDrmFormatModifierListCreateInfoEXT: return "ImageDrmFormatModifierListCreateInfoEXT";
1499       case StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT:
1500         return "ImageDrmFormatModifierExplicitCreateInfoEXT";
1501       case StructureType::eImageDrmFormatModifierPropertiesEXT: return "ImageDrmFormatModifierPropertiesEXT";
1502       case StructureType::eDrmFormatModifierPropertiesList2EXT: return "DrmFormatModifierPropertiesList2EXT";
1503       case StructureType::eValidationCacheCreateInfoEXT: return "ValidationCacheCreateInfoEXT";
1504       case StructureType::eShaderModuleValidationCacheCreateInfoEXT: return "ShaderModuleValidationCacheCreateInfoEXT";
1505 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1506       case StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR:
1507         return "PhysicalDevicePortabilitySubsetFeaturesKHR";
1508       case StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR:
1509         return "PhysicalDevicePortabilitySubsetPropertiesKHR";
1510 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1511       case StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV:
1512         return "PipelineViewportShadingRateImageStateCreateInfoNV";
1513       case StructureType::ePhysicalDeviceShadingRateImageFeaturesNV: return "PhysicalDeviceShadingRateImageFeaturesNV";
1514       case StructureType::ePhysicalDeviceShadingRateImagePropertiesNV:
1515         return "PhysicalDeviceShadingRateImagePropertiesNV";
1516       case StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV:
1517         return "PipelineViewportCoarseSampleOrderStateCreateInfoNV";
1518       case StructureType::eRayTracingPipelineCreateInfoNV: return "RayTracingPipelineCreateInfoNV";
1519       case StructureType::eAccelerationStructureCreateInfoNV: return "AccelerationStructureCreateInfoNV";
1520       case StructureType::eGeometryNV: return "GeometryNV";
1521       case StructureType::eGeometryTrianglesNV: return "GeometryTrianglesNV";
1522       case StructureType::eGeometryAabbNV: return "GeometryAabbNV";
1523       case StructureType::eBindAccelerationStructureMemoryInfoNV: return "BindAccelerationStructureMemoryInfoNV";
1524       case StructureType::eWriteDescriptorSetAccelerationStructureNV:
1525         return "WriteDescriptorSetAccelerationStructureNV";
1526       case StructureType::eAccelerationStructureMemoryRequirementsInfoNV:
1527         return "AccelerationStructureMemoryRequirementsInfoNV";
1528       case StructureType::ePhysicalDeviceRayTracingPropertiesNV: return "PhysicalDeviceRayTracingPropertiesNV";
1529       case StructureType::eRayTracingShaderGroupCreateInfoNV: return "RayTracingShaderGroupCreateInfoNV";
1530       case StructureType::eAccelerationStructureInfoNV: return "AccelerationStructureInfoNV";
1531       case StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV:
1532         return "PhysicalDeviceRepresentativeFragmentTestFeaturesNV";
1533       case StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV:
1534         return "PipelineRepresentativeFragmentTestStateCreateInfoNV";
1535       case StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT:
1536         return "PhysicalDeviceImageViewImageFormatInfoEXT";
1537       case StructureType::eFilterCubicImageViewImageFormatPropertiesEXT:
1538         return "FilterCubicImageViewImageFormatPropertiesEXT";
1539       case StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT: return "DeviceQueueGlobalPriorityCreateInfoEXT";
1540       case StructureType::eImportMemoryHostPointerInfoEXT: return "ImportMemoryHostPointerInfoEXT";
1541       case StructureType::eMemoryHostPointerPropertiesEXT: return "MemoryHostPointerPropertiesEXT";
1542       case StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT:
1543         return "PhysicalDeviceExternalMemoryHostPropertiesEXT";
1544       case StructureType::ePhysicalDeviceShaderClockFeaturesKHR: return "PhysicalDeviceShaderClockFeaturesKHR";
1545       case StructureType::ePipelineCompilerControlCreateInfoAMD: return "PipelineCompilerControlCreateInfoAMD";
1546       case StructureType::eCalibratedTimestampInfoEXT: return "CalibratedTimestampInfoEXT";
1547       case StructureType::ePhysicalDeviceShaderCorePropertiesAMD: return "PhysicalDeviceShaderCorePropertiesAMD";
1548 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1549       case StructureType::eVideoDecodeH265CapabilitiesEXT: return "VideoDecodeH265CapabilitiesEXT";
1550       case StructureType::eVideoDecodeH265SessionCreateInfoEXT: return "VideoDecodeH265SessionCreateInfoEXT";
1551       case StructureType::eVideoDecodeH265SessionParametersCreateInfoEXT:
1552         return "VideoDecodeH265SessionParametersCreateInfoEXT";
1553       case StructureType::eVideoDecodeH265SessionParametersAddInfoEXT:
1554         return "VideoDecodeH265SessionParametersAddInfoEXT";
1555       case StructureType::eVideoDecodeH265ProfileEXT: return "VideoDecodeH265ProfileEXT";
1556       case StructureType::eVideoDecodeH265PictureInfoEXT: return "VideoDecodeH265PictureInfoEXT";
1557       case StructureType::eVideoDecodeH265DpbSlotInfoEXT: return "VideoDecodeH265DpbSlotInfoEXT";
1558 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1559       case StructureType::eDeviceMemoryOverallocationCreateInfoAMD: return "DeviceMemoryOverallocationCreateInfoAMD";
1560       case StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT:
1561         return "PhysicalDeviceVertexAttributeDivisorPropertiesEXT";
1562       case StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT:
1563         return "PipelineVertexInputDivisorStateCreateInfoEXT";
1564       case StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT:
1565         return "PhysicalDeviceVertexAttributeDivisorFeaturesEXT";
1566 #if defined( VK_USE_PLATFORM_GGP )
1567       case StructureType::ePresentFrameTokenGGP: return "PresentFrameTokenGGP";
1568 #endif /*VK_USE_PLATFORM_GGP*/
1569       case StructureType::ePipelineCreationFeedbackCreateInfoEXT: return "PipelineCreationFeedbackCreateInfoEXT";
1570       case StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV:
1571         return "PhysicalDeviceComputeShaderDerivativesFeaturesNV";
1572       case StructureType::ePhysicalDeviceMeshShaderFeaturesNV: return "PhysicalDeviceMeshShaderFeaturesNV";
1573       case StructureType::ePhysicalDeviceMeshShaderPropertiesNV: return "PhysicalDeviceMeshShaderPropertiesNV";
1574       case StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV:
1575         return "PhysicalDeviceFragmentShaderBarycentricFeaturesNV";
1576       case StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV:
1577         return "PhysicalDeviceShaderImageFootprintFeaturesNV";
1578       case StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV:
1579         return "PipelineViewportExclusiveScissorStateCreateInfoNV";
1580       case StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV: return "PhysicalDeviceExclusiveScissorFeaturesNV";
1581       case StructureType::eCheckpointDataNV: return "CheckpointDataNV";
1582       case StructureType::eQueueFamilyCheckpointPropertiesNV: return "QueueFamilyCheckpointPropertiesNV";
1583       case StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL:
1584         return "PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL";
1585       case StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL: return "QueryPoolPerformanceQueryCreateInfoINTEL";
1586       case StructureType::eInitializePerformanceApiInfoINTEL: return "InitializePerformanceApiInfoINTEL";
1587       case StructureType::ePerformanceMarkerInfoINTEL: return "PerformanceMarkerInfoINTEL";
1588       case StructureType::ePerformanceStreamMarkerInfoINTEL: return "PerformanceStreamMarkerInfoINTEL";
1589       case StructureType::ePerformanceOverrideInfoINTEL: return "PerformanceOverrideInfoINTEL";
1590       case StructureType::ePerformanceConfigurationAcquireInfoINTEL: return "PerformanceConfigurationAcquireInfoINTEL";
1591       case StructureType::ePhysicalDevicePciBusInfoPropertiesEXT: return "PhysicalDevicePciBusInfoPropertiesEXT";
1592       case StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD: return "DisplayNativeHdrSurfaceCapabilitiesAMD";
1593       case StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD: return "SwapchainDisplayNativeHdrCreateInfoAMD";
1594 #if defined( VK_USE_PLATFORM_FUCHSIA )
1595       case StructureType::eImagepipeSurfaceCreateInfoFUCHSIA: return "ImagepipeSurfaceCreateInfoFUCHSIA";
1596 #endif /*VK_USE_PLATFORM_FUCHSIA*/
1597       case StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR:
1598         return "PhysicalDeviceShaderTerminateInvocationFeaturesKHR";
1599 #if defined( VK_USE_PLATFORM_METAL_EXT )
1600       case StructureType::eMetalSurfaceCreateInfoEXT: return "MetalSurfaceCreateInfoEXT";
1601 #endif /*VK_USE_PLATFORM_METAL_EXT*/
1602       case StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT:
1603         return "PhysicalDeviceFragmentDensityMapFeaturesEXT";
1604       case StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT:
1605         return "PhysicalDeviceFragmentDensityMapPropertiesEXT";
1606       case StructureType::eRenderPassFragmentDensityMapCreateInfoEXT:
1607         return "RenderPassFragmentDensityMapCreateInfoEXT";
1608       case StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT:
1609         return "PhysicalDeviceSubgroupSizeControlPropertiesEXT";
1610       case StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT:
1611         return "PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT";
1612       case StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT:
1613         return "PhysicalDeviceSubgroupSizeControlFeaturesEXT";
1614       case StructureType::eFragmentShadingRateAttachmentInfoKHR: return "FragmentShadingRateAttachmentInfoKHR";
1615       case StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR:
1616         return "PipelineFragmentShadingRateStateCreateInfoKHR";
1617       case StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR:
1618         return "PhysicalDeviceFragmentShadingRatePropertiesKHR";
1619       case StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR:
1620         return "PhysicalDeviceFragmentShadingRateFeaturesKHR";
1621       case StructureType::ePhysicalDeviceFragmentShadingRateKHR: return "PhysicalDeviceFragmentShadingRateKHR";
1622       case StructureType::ePhysicalDeviceShaderCoreProperties2AMD: return "PhysicalDeviceShaderCoreProperties2AMD";
1623       case StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD: return "PhysicalDeviceCoherentMemoryFeaturesAMD";
1624       case StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT:
1625         return "PhysicalDeviceShaderImageAtomicInt64FeaturesEXT";
1626       case StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT: return "PhysicalDeviceMemoryBudgetPropertiesEXT";
1627       case StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT: return "PhysicalDeviceMemoryPriorityFeaturesEXT";
1628       case StructureType::eMemoryPriorityAllocateInfoEXT: return "MemoryPriorityAllocateInfoEXT";
1629       case StructureType::eSurfaceProtectedCapabilitiesKHR: return "SurfaceProtectedCapabilitiesKHR";
1630       case StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV:
1631         return "PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV";
1632       case StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT:
1633         return "PhysicalDeviceBufferDeviceAddressFeaturesEXT";
1634       case StructureType::eBufferDeviceAddressCreateInfoEXT: return "BufferDeviceAddressCreateInfoEXT";
1635       case StructureType::ePhysicalDeviceToolPropertiesEXT: return "PhysicalDeviceToolPropertiesEXT";
1636       case StructureType::eValidationFeaturesEXT: return "ValidationFeaturesEXT";
1637       case StructureType::ePhysicalDevicePresentWaitFeaturesKHR: return "PhysicalDevicePresentWaitFeaturesKHR";
1638       case StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV:
1639         return "PhysicalDeviceCooperativeMatrixFeaturesNV";
1640       case StructureType::eCooperativeMatrixPropertiesNV: return "CooperativeMatrixPropertiesNV";
1641       case StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV:
1642         return "PhysicalDeviceCooperativeMatrixPropertiesNV";
1643       case StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV:
1644         return "PhysicalDeviceCoverageReductionModeFeaturesNV";
1645       case StructureType::ePipelineCoverageReductionStateCreateInfoNV:
1646         return "PipelineCoverageReductionStateCreateInfoNV";
1647       case StructureType::eFramebufferMixedSamplesCombinationNV: return "FramebufferMixedSamplesCombinationNV";
1648       case StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT:
1649         return "PhysicalDeviceFragmentShaderInterlockFeaturesEXT";
1650       case StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT:
1651         return "PhysicalDeviceYcbcrImageArraysFeaturesEXT";
1652       case StructureType::ePhysicalDeviceProvokingVertexFeaturesEXT: return "PhysicalDeviceProvokingVertexFeaturesEXT";
1653       case StructureType::ePipelineRasterizationProvokingVertexStateCreateInfoEXT:
1654         return "PipelineRasterizationProvokingVertexStateCreateInfoEXT";
1655       case StructureType::ePhysicalDeviceProvokingVertexPropertiesEXT:
1656         return "PhysicalDeviceProvokingVertexPropertiesEXT";
1657 #if defined( VK_USE_PLATFORM_WIN32_KHR )
1658       case StructureType::eSurfaceFullScreenExclusiveInfoEXT: return "SurfaceFullScreenExclusiveInfoEXT";
1659       case StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT:
1660         return "SurfaceCapabilitiesFullScreenExclusiveEXT";
1661       case StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT: return "SurfaceFullScreenExclusiveWin32InfoEXT";
1662 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1663       case StructureType::eHeadlessSurfaceCreateInfoEXT: return "HeadlessSurfaceCreateInfoEXT";
1664       case StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT:
1665         return "PhysicalDeviceLineRasterizationFeaturesEXT";
1666       case StructureType::ePipelineRasterizationLineStateCreateInfoEXT:
1667         return "PipelineRasterizationLineStateCreateInfoEXT";
1668       case StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT:
1669         return "PhysicalDeviceLineRasterizationPropertiesEXT";
1670       case StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT:
1671         return "PhysicalDeviceShaderAtomicFloatFeaturesEXT";
1672       case StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT: return "PhysicalDeviceIndexTypeUint8FeaturesEXT";
1673       case StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT:
1674         return "PhysicalDeviceExtendedDynamicStateFeaturesEXT";
1675       case StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR:
1676         return "PhysicalDevicePipelineExecutablePropertiesFeaturesKHR";
1677       case StructureType::ePipelineInfoKHR: return "PipelineInfoKHR";
1678       case StructureType::ePipelineExecutablePropertiesKHR: return "PipelineExecutablePropertiesKHR";
1679       case StructureType::ePipelineExecutableInfoKHR: return "PipelineExecutableInfoKHR";
1680       case StructureType::ePipelineExecutableStatisticKHR: return "PipelineExecutableStatisticKHR";
1681       case StructureType::ePipelineExecutableInternalRepresentationKHR:
1682         return "PipelineExecutableInternalRepresentationKHR";
1683       case StructureType::ePhysicalDeviceShaderAtomicFloat2FeaturesEXT:
1684         return "PhysicalDeviceShaderAtomicFloat2FeaturesEXT";
1685       case StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT:
1686         return "PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT";
1687       case StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV:
1688         return "PhysicalDeviceDeviceGeneratedCommandsPropertiesNV";
1689       case StructureType::eGraphicsShaderGroupCreateInfoNV: return "GraphicsShaderGroupCreateInfoNV";
1690       case StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV: return "GraphicsPipelineShaderGroupsCreateInfoNV";
1691       case StructureType::eIndirectCommandsLayoutTokenNV: return "IndirectCommandsLayoutTokenNV";
1692       case StructureType::eIndirectCommandsLayoutCreateInfoNV: return "IndirectCommandsLayoutCreateInfoNV";
1693       case StructureType::eGeneratedCommandsInfoNV: return "GeneratedCommandsInfoNV";
1694       case StructureType::eGeneratedCommandsMemoryRequirementsInfoNV:
1695         return "GeneratedCommandsMemoryRequirementsInfoNV";
1696       case StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV:
1697         return "PhysicalDeviceDeviceGeneratedCommandsFeaturesNV";
1698       case StructureType::ePhysicalDeviceInheritedViewportScissorFeaturesNV:
1699         return "PhysicalDeviceInheritedViewportScissorFeaturesNV";
1700       case StructureType::eCommandBufferInheritanceViewportScissorInfoNV:
1701         return "CommandBufferInheritanceViewportScissorInfoNV";
1702       case StructureType::ePhysicalDeviceShaderIntegerDotProductFeaturesKHR:
1703         return "PhysicalDeviceShaderIntegerDotProductFeaturesKHR";
1704       case StructureType::ePhysicalDeviceShaderIntegerDotProductPropertiesKHR:
1705         return "PhysicalDeviceShaderIntegerDotProductPropertiesKHR";
1706       case StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT:
1707         return "PhysicalDeviceTexelBufferAlignmentFeaturesEXT";
1708       case StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT:
1709         return "PhysicalDeviceTexelBufferAlignmentPropertiesEXT";
1710       case StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM:
1711         return "CommandBufferInheritanceRenderPassTransformInfoQCOM";
1712       case StructureType::eRenderPassTransformBeginInfoQCOM: return "RenderPassTransformBeginInfoQCOM";
1713       case StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT:
1714         return "PhysicalDeviceDeviceMemoryReportFeaturesEXT";
1715       case StructureType::eDeviceDeviceMemoryReportCreateInfoEXT: return "DeviceDeviceMemoryReportCreateInfoEXT";
1716       case StructureType::eDeviceMemoryReportCallbackDataEXT: return "DeviceMemoryReportCallbackDataEXT";
1717       case StructureType::ePhysicalDeviceRobustness2FeaturesEXT: return "PhysicalDeviceRobustness2FeaturesEXT";
1718       case StructureType::ePhysicalDeviceRobustness2PropertiesEXT: return "PhysicalDeviceRobustness2PropertiesEXT";
1719       case StructureType::eSamplerCustomBorderColorCreateInfoEXT: return "SamplerCustomBorderColorCreateInfoEXT";
1720       case StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT:
1721         return "PhysicalDeviceCustomBorderColorPropertiesEXT";
1722       case StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT:
1723         return "PhysicalDeviceCustomBorderColorFeaturesEXT";
1724       case StructureType::ePipelineLibraryCreateInfoKHR: return "PipelineLibraryCreateInfoKHR";
1725       case StructureType::ePresentIdKHR: return "PresentIdKHR";
1726       case StructureType::ePhysicalDevicePresentIdFeaturesKHR: return "PhysicalDevicePresentIdFeaturesKHR";
1727       case StructureType::ePhysicalDevicePrivateDataFeaturesEXT: return "PhysicalDevicePrivateDataFeaturesEXT";
1728       case StructureType::eDevicePrivateDataCreateInfoEXT: return "DevicePrivateDataCreateInfoEXT";
1729       case StructureType::ePrivateDataSlotCreateInfoEXT: return "PrivateDataSlotCreateInfoEXT";
1730       case StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT:
1731         return "PhysicalDevicePipelineCreationCacheControlFeaturesEXT";
1732 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1733       case StructureType::eVideoEncodeInfoKHR: return "VideoEncodeInfoKHR";
1734       case StructureType::eVideoEncodeRateControlInfoKHR: return "VideoEncodeRateControlInfoKHR";
1735 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1736       case StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV:
1737         return "PhysicalDeviceDiagnosticsConfigFeaturesNV";
1738       case StructureType::eDeviceDiagnosticsConfigCreateInfoNV: return "DeviceDiagnosticsConfigCreateInfoNV";
1739       case StructureType::eMemoryBarrier2KHR: return "MemoryBarrier2KHR";
1740       case StructureType::eBufferMemoryBarrier2KHR: return "BufferMemoryBarrier2KHR";
1741       case StructureType::eImageMemoryBarrier2KHR: return "ImageMemoryBarrier2KHR";
1742       case StructureType::eDependencyInfoKHR: return "DependencyInfoKHR";
1743       case StructureType::eSubmitInfo2KHR: return "SubmitInfo2KHR";
1744       case StructureType::eSemaphoreSubmitInfoKHR: return "SemaphoreSubmitInfoKHR";
1745       case StructureType::eCommandBufferSubmitInfoKHR: return "CommandBufferSubmitInfoKHR";
1746       case StructureType::ePhysicalDeviceSynchronization2FeaturesKHR:
1747         return "PhysicalDeviceSynchronization2FeaturesKHR";
1748       case StructureType::eQueueFamilyCheckpointProperties2NV: return "QueueFamilyCheckpointProperties2NV";
1749       case StructureType::eCheckpointData2NV: return "CheckpointData2NV";
1750       case StructureType::ePhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR:
1751         return "PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR";
1752       case StructureType::ePhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR:
1753         return "PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR";
1754       case StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV:
1755         return "PhysicalDeviceFragmentShadingRateEnumsPropertiesNV";
1756       case StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV:
1757         return "PhysicalDeviceFragmentShadingRateEnumsFeaturesNV";
1758       case StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV:
1759         return "PipelineFragmentShadingRateEnumStateCreateInfoNV";
1760       case StructureType::eAccelerationStructureGeometryMotionTrianglesDataNV:
1761         return "AccelerationStructureGeometryMotionTrianglesDataNV";
1762       case StructureType::ePhysicalDeviceRayTracingMotionBlurFeaturesNV:
1763         return "PhysicalDeviceRayTracingMotionBlurFeaturesNV";
1764       case StructureType::eAccelerationStructureMotionInfoNV: return "AccelerationStructureMotionInfoNV";
1765       case StructureType::ePhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT:
1766         return "PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT";
1767       case StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT:
1768         return "PhysicalDeviceFragmentDensityMap2FeaturesEXT";
1769       case StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT:
1770         return "PhysicalDeviceFragmentDensityMap2PropertiesEXT";
1771       case StructureType::eCopyCommandTransformInfoQCOM: return "CopyCommandTransformInfoQCOM";
1772       case StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT: return "PhysicalDeviceImageRobustnessFeaturesEXT";
1773       case StructureType::ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR:
1774         return "PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR";
1775       case StructureType::eCopyBufferInfo2KHR: return "CopyBufferInfo2KHR";
1776       case StructureType::eCopyImageInfo2KHR: return "CopyImageInfo2KHR";
1777       case StructureType::eCopyBufferToImageInfo2KHR: return "CopyBufferToImageInfo2KHR";
1778       case StructureType::eCopyImageToBufferInfo2KHR: return "CopyImageToBufferInfo2KHR";
1779       case StructureType::eBlitImageInfo2KHR: return "BlitImageInfo2KHR";
1780       case StructureType::eResolveImageInfo2KHR: return "ResolveImageInfo2KHR";
1781       case StructureType::eBufferCopy2KHR: return "BufferCopy2KHR";
1782       case StructureType::eImageCopy2KHR: return "ImageCopy2KHR";
1783       case StructureType::eImageBlit2KHR: return "ImageBlit2KHR";
1784       case StructureType::eBufferImageCopy2KHR: return "BufferImageCopy2KHR";
1785       case StructureType::eImageResolve2KHR: return "ImageResolve2KHR";
1786       case StructureType::ePhysicalDevice4444FormatsFeaturesEXT: return "PhysicalDevice4444FormatsFeaturesEXT";
1787       case StructureType::ePhysicalDeviceRgba10X6FormatsFeaturesEXT: return "PhysicalDeviceRgba10X6FormatsFeaturesEXT";
1788 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
1789       case StructureType::eDirectfbSurfaceCreateInfoEXT: return "DirectfbSurfaceCreateInfoEXT";
1790 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
1791       case StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE:
1792         return "PhysicalDeviceMutableDescriptorTypeFeaturesVALVE";
1793       case StructureType::eMutableDescriptorTypeCreateInfoVALVE: return "MutableDescriptorTypeCreateInfoVALVE";
1794       case StructureType::ePhysicalDeviceVertexInputDynamicStateFeaturesEXT:
1795         return "PhysicalDeviceVertexInputDynamicStateFeaturesEXT";
1796       case StructureType::eVertexInputBindingDescription2EXT: return "VertexInputBindingDescription2EXT";
1797       case StructureType::eVertexInputAttributeDescription2EXT: return "VertexInputAttributeDescription2EXT";
1798       case StructureType::ePhysicalDeviceDrmPropertiesEXT: return "PhysicalDeviceDrmPropertiesEXT";
1799       case StructureType::ePhysicalDevicePrimitiveTopologyListRestartFeaturesEXT:
1800         return "PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT";
1801       case StructureType::eFormatProperties3KHR: return "FormatProperties3KHR";
1802 #if defined( VK_USE_PLATFORM_FUCHSIA )
1803       case StructureType::eImportMemoryZirconHandleInfoFUCHSIA: return "ImportMemoryZirconHandleInfoFUCHSIA";
1804       case StructureType::eMemoryZirconHandlePropertiesFUCHSIA: return "MemoryZirconHandlePropertiesFUCHSIA";
1805       case StructureType::eMemoryGetZirconHandleInfoFUCHSIA: return "MemoryGetZirconHandleInfoFUCHSIA";
1806       case StructureType::eImportSemaphoreZirconHandleInfoFUCHSIA: return "ImportSemaphoreZirconHandleInfoFUCHSIA";
1807       case StructureType::eSemaphoreGetZirconHandleInfoFUCHSIA: return "SemaphoreGetZirconHandleInfoFUCHSIA";
1808       case StructureType::eBufferCollectionCreateInfoFUCHSIA: return "BufferCollectionCreateInfoFUCHSIA";
1809       case StructureType::eImportMemoryBufferCollectionFUCHSIA: return "ImportMemoryBufferCollectionFUCHSIA";
1810       case StructureType::eBufferCollectionImageCreateInfoFUCHSIA: return "BufferCollectionImageCreateInfoFUCHSIA";
1811       case StructureType::eBufferCollectionPropertiesFUCHSIA: return "BufferCollectionPropertiesFUCHSIA";
1812       case StructureType::eBufferConstraintsInfoFUCHSIA: return "BufferConstraintsInfoFUCHSIA";
1813       case StructureType::eBufferCollectionBufferCreateInfoFUCHSIA: return "BufferCollectionBufferCreateInfoFUCHSIA";
1814       case StructureType::eImageConstraintsInfoFUCHSIA: return "ImageConstraintsInfoFUCHSIA";
1815       case StructureType::eImageFormatConstraintsInfoFUCHSIA: return "ImageFormatConstraintsInfoFUCHSIA";
1816       case StructureType::eSysmemColorSpaceFUCHSIA: return "SysmemColorSpaceFUCHSIA";
1817       case StructureType::eBufferCollectionConstraintsInfoFUCHSIA: return "BufferCollectionConstraintsInfoFUCHSIA";
1818 #endif /*VK_USE_PLATFORM_FUCHSIA*/
1819       case StructureType::eSubpassShadingPipelineCreateInfoHUAWEI: return "SubpassShadingPipelineCreateInfoHUAWEI";
1820       case StructureType::ePhysicalDeviceSubpassShadingFeaturesHUAWEI:
1821         return "PhysicalDeviceSubpassShadingFeaturesHUAWEI";
1822       case StructureType::ePhysicalDeviceSubpassShadingPropertiesHUAWEI:
1823         return "PhysicalDeviceSubpassShadingPropertiesHUAWEI";
1824       case StructureType::ePhysicalDeviceInvocationMaskFeaturesHUAWEI:
1825         return "PhysicalDeviceInvocationMaskFeaturesHUAWEI";
1826       case StructureType::eMemoryGetRemoteAddressInfoNV: return "MemoryGetRemoteAddressInfoNV";
1827       case StructureType::ePhysicalDeviceExternalMemoryRdmaFeaturesNV:
1828         return "PhysicalDeviceExternalMemoryRdmaFeaturesNV";
1829       case StructureType::ePhysicalDeviceExtendedDynamicState2FeaturesEXT:
1830         return "PhysicalDeviceExtendedDynamicState2FeaturesEXT";
1831 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
1832       case StructureType::eScreenSurfaceCreateInfoQNX: return "ScreenSurfaceCreateInfoQNX";
1833 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
1834       case StructureType::ePhysicalDeviceColorWriteEnableFeaturesEXT:
1835         return "PhysicalDeviceColorWriteEnableFeaturesEXT";
1836       case StructureType::ePipelineColorWriteCreateInfoEXT: return "PipelineColorWriteCreateInfoEXT";
1837       case StructureType::ePhysicalDeviceGlobalPriorityQueryFeaturesEXT:
1838         return "PhysicalDeviceGlobalPriorityQueryFeaturesEXT";
1839       case StructureType::eQueueFamilyGlobalPriorityPropertiesEXT: return "QueueFamilyGlobalPriorityPropertiesEXT";
1840       case StructureType::ePhysicalDeviceMultiDrawFeaturesEXT: return "PhysicalDeviceMultiDrawFeaturesEXT";
1841       case StructureType::ePhysicalDeviceMultiDrawPropertiesEXT: return "PhysicalDeviceMultiDrawPropertiesEXT";
1842       case StructureType::ePhysicalDeviceBorderColorSwizzleFeaturesEXT:
1843         return "PhysicalDeviceBorderColorSwizzleFeaturesEXT";
1844       case StructureType::eSamplerBorderColorComponentMappingCreateInfoEXT:
1845         return "SamplerBorderColorComponentMappingCreateInfoEXT";
1846       case StructureType::ePhysicalDevicePageableDeviceLocalMemoryFeaturesEXT:
1847         return "PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT";
1848       case StructureType::ePhysicalDeviceMaintenance4FeaturesKHR: return "PhysicalDeviceMaintenance4FeaturesKHR";
1849       case StructureType::ePhysicalDeviceMaintenance4PropertiesKHR: return "PhysicalDeviceMaintenance4PropertiesKHR";
1850       case StructureType::eDeviceBufferMemoryRequirementsKHR: return "DeviceBufferMemoryRequirementsKHR";
1851       case StructureType::eDeviceImageMemoryRequirementsKHR: return "DeviceImageMemoryRequirementsKHR";
1852       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
1853     }
1854   }
1855 
1856   enum class ObjectType
1857   {
1858     eUnknown                  = VK_OBJECT_TYPE_UNKNOWN,
1859     eInstance                 = VK_OBJECT_TYPE_INSTANCE,
1860     ePhysicalDevice           = VK_OBJECT_TYPE_PHYSICAL_DEVICE,
1861     eDevice                   = VK_OBJECT_TYPE_DEVICE,
1862     eQueue                    = VK_OBJECT_TYPE_QUEUE,
1863     eSemaphore                = VK_OBJECT_TYPE_SEMAPHORE,
1864     eCommandBuffer            = VK_OBJECT_TYPE_COMMAND_BUFFER,
1865     eFence                    = VK_OBJECT_TYPE_FENCE,
1866     eDeviceMemory             = VK_OBJECT_TYPE_DEVICE_MEMORY,
1867     eBuffer                   = VK_OBJECT_TYPE_BUFFER,
1868     eImage                    = VK_OBJECT_TYPE_IMAGE,
1869     eEvent                    = VK_OBJECT_TYPE_EVENT,
1870     eQueryPool                = VK_OBJECT_TYPE_QUERY_POOL,
1871     eBufferView               = VK_OBJECT_TYPE_BUFFER_VIEW,
1872     eImageView                = VK_OBJECT_TYPE_IMAGE_VIEW,
1873     eShaderModule             = VK_OBJECT_TYPE_SHADER_MODULE,
1874     ePipelineCache            = VK_OBJECT_TYPE_PIPELINE_CACHE,
1875     ePipelineLayout           = VK_OBJECT_TYPE_PIPELINE_LAYOUT,
1876     eRenderPass               = VK_OBJECT_TYPE_RENDER_PASS,
1877     ePipeline                 = VK_OBJECT_TYPE_PIPELINE,
1878     eDescriptorSetLayout      = VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT,
1879     eSampler                  = VK_OBJECT_TYPE_SAMPLER,
1880     eDescriptorPool           = VK_OBJECT_TYPE_DESCRIPTOR_POOL,
1881     eDescriptorSet            = VK_OBJECT_TYPE_DESCRIPTOR_SET,
1882     eFramebuffer              = VK_OBJECT_TYPE_FRAMEBUFFER,
1883     eCommandPool              = VK_OBJECT_TYPE_COMMAND_POOL,
1884     eSamplerYcbcrConversion   = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
1885     eDescriptorUpdateTemplate = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
1886     eSurfaceKHR               = VK_OBJECT_TYPE_SURFACE_KHR,
1887     eSwapchainKHR             = VK_OBJECT_TYPE_SWAPCHAIN_KHR,
1888     eDisplayKHR               = VK_OBJECT_TYPE_DISPLAY_KHR,
1889     eDisplayModeKHR           = VK_OBJECT_TYPE_DISPLAY_MODE_KHR,
1890     eDebugReportCallbackEXT   = VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT,
1891 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1892     eVideoSessionKHR           = VK_OBJECT_TYPE_VIDEO_SESSION_KHR,
1893     eVideoSessionParametersKHR = VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR,
1894 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1895     eCuModuleNVX                   = VK_OBJECT_TYPE_CU_MODULE_NVX,
1896     eCuFunctionNVX                 = VK_OBJECT_TYPE_CU_FUNCTION_NVX,
1897     eDebugUtilsMessengerEXT        = VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT,
1898     eAccelerationStructureKHR      = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR,
1899     eValidationCacheEXT            = VK_OBJECT_TYPE_VALIDATION_CACHE_EXT,
1900     eAccelerationStructureNV       = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV,
1901     ePerformanceConfigurationINTEL = VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL,
1902     eDeferredOperationKHR          = VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR,
1903     eIndirectCommandsLayoutNV      = VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV,
1904     ePrivateDataSlotEXT            = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT,
1905 #if defined( VK_USE_PLATFORM_FUCHSIA )
1906     eBufferCollectionFUCHSIA = VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA,
1907 #endif /*VK_USE_PLATFORM_FUCHSIA*/
1908     eDescriptorUpdateTemplateKHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR,
1909     eSamplerYcbcrConversionKHR   = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR
1910   };
1911 
to_string(ObjectType value)1912   VULKAN_HPP_INLINE std::string to_string( ObjectType value )
1913   {
1914     switch ( value )
1915     {
1916       case ObjectType::eUnknown: return "Unknown";
1917       case ObjectType::eInstance: return "Instance";
1918       case ObjectType::ePhysicalDevice: return "PhysicalDevice";
1919       case ObjectType::eDevice: return "Device";
1920       case ObjectType::eQueue: return "Queue";
1921       case ObjectType::eSemaphore: return "Semaphore";
1922       case ObjectType::eCommandBuffer: return "CommandBuffer";
1923       case ObjectType::eFence: return "Fence";
1924       case ObjectType::eDeviceMemory: return "DeviceMemory";
1925       case ObjectType::eBuffer: return "Buffer";
1926       case ObjectType::eImage: return "Image";
1927       case ObjectType::eEvent: return "Event";
1928       case ObjectType::eQueryPool: return "QueryPool";
1929       case ObjectType::eBufferView: return "BufferView";
1930       case ObjectType::eImageView: return "ImageView";
1931       case ObjectType::eShaderModule: return "ShaderModule";
1932       case ObjectType::ePipelineCache: return "PipelineCache";
1933       case ObjectType::ePipelineLayout: return "PipelineLayout";
1934       case ObjectType::eRenderPass: return "RenderPass";
1935       case ObjectType::ePipeline: return "Pipeline";
1936       case ObjectType::eDescriptorSetLayout: return "DescriptorSetLayout";
1937       case ObjectType::eSampler: return "Sampler";
1938       case ObjectType::eDescriptorPool: return "DescriptorPool";
1939       case ObjectType::eDescriptorSet: return "DescriptorSet";
1940       case ObjectType::eFramebuffer: return "Framebuffer";
1941       case ObjectType::eCommandPool: return "CommandPool";
1942       case ObjectType::eSamplerYcbcrConversion: return "SamplerYcbcrConversion";
1943       case ObjectType::eDescriptorUpdateTemplate: return "DescriptorUpdateTemplate";
1944       case ObjectType::eSurfaceKHR: return "SurfaceKHR";
1945       case ObjectType::eSwapchainKHR: return "SwapchainKHR";
1946       case ObjectType::eDisplayKHR: return "DisplayKHR";
1947       case ObjectType::eDisplayModeKHR: return "DisplayModeKHR";
1948       case ObjectType::eDebugReportCallbackEXT: return "DebugReportCallbackEXT";
1949 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1950       case ObjectType::eVideoSessionKHR: return "VideoSessionKHR";
1951       case ObjectType::eVideoSessionParametersKHR: return "VideoSessionParametersKHR";
1952 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1953       case ObjectType::eCuModuleNVX: return "CuModuleNVX";
1954       case ObjectType::eCuFunctionNVX: return "CuFunctionNVX";
1955       case ObjectType::eDebugUtilsMessengerEXT: return "DebugUtilsMessengerEXT";
1956       case ObjectType::eAccelerationStructureKHR: return "AccelerationStructureKHR";
1957       case ObjectType::eValidationCacheEXT: return "ValidationCacheEXT";
1958       case ObjectType::eAccelerationStructureNV: return "AccelerationStructureNV";
1959       case ObjectType::ePerformanceConfigurationINTEL: return "PerformanceConfigurationINTEL";
1960       case ObjectType::eDeferredOperationKHR: return "DeferredOperationKHR";
1961       case ObjectType::eIndirectCommandsLayoutNV: return "IndirectCommandsLayoutNV";
1962       case ObjectType::ePrivateDataSlotEXT: return "PrivateDataSlotEXT";
1963 #if defined( VK_USE_PLATFORM_FUCHSIA )
1964       case ObjectType::eBufferCollectionFUCHSIA: return "BufferCollectionFUCHSIA";
1965 #endif /*VK_USE_PLATFORM_FUCHSIA*/
1966       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
1967     }
1968   }
1969 
1970   enum class VendorId
1971   {
1972     eVIV      = VK_VENDOR_ID_VIV,
1973     eVSI      = VK_VENDOR_ID_VSI,
1974     eKazan    = VK_VENDOR_ID_KAZAN,
1975     eCodeplay = VK_VENDOR_ID_CODEPLAY,
1976     eMESA     = VK_VENDOR_ID_MESA,
1977     ePocl     = VK_VENDOR_ID_POCL
1978   };
1979 
to_string(VendorId value)1980   VULKAN_HPP_INLINE std::string to_string( VendorId value )
1981   {
1982     switch ( value )
1983     {
1984       case VendorId::eVIV: return "VIV";
1985       case VendorId::eVSI: return "VSI";
1986       case VendorId::eKazan: return "Kazan";
1987       case VendorId::eCodeplay: return "Codeplay";
1988       case VendorId::eMESA: return "MESA";
1989       case VendorId::ePocl: return "Pocl";
1990       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
1991     }
1992   }
1993 
1994   enum class PipelineCacheHeaderVersion
1995   {
1996     eOne = VK_PIPELINE_CACHE_HEADER_VERSION_ONE
1997   };
1998 
to_string(PipelineCacheHeaderVersion value)1999   VULKAN_HPP_INLINE std::string to_string( PipelineCacheHeaderVersion value )
2000   {
2001     switch ( value )
2002     {
2003       case PipelineCacheHeaderVersion::eOne: return "One";
2004       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2005     }
2006   }
2007 
2008   enum class Format
2009   {
2010     eUndefined                               = VK_FORMAT_UNDEFINED,
2011     eR4G4UnormPack8                          = VK_FORMAT_R4G4_UNORM_PACK8,
2012     eR4G4B4A4UnormPack16                     = VK_FORMAT_R4G4B4A4_UNORM_PACK16,
2013     eB4G4R4A4UnormPack16                     = VK_FORMAT_B4G4R4A4_UNORM_PACK16,
2014     eR5G6B5UnormPack16                       = VK_FORMAT_R5G6B5_UNORM_PACK16,
2015     eB5G6R5UnormPack16                       = VK_FORMAT_B5G6R5_UNORM_PACK16,
2016     eR5G5B5A1UnormPack16                     = VK_FORMAT_R5G5B5A1_UNORM_PACK16,
2017     eB5G5R5A1UnormPack16                     = VK_FORMAT_B5G5R5A1_UNORM_PACK16,
2018     eA1R5G5B5UnormPack16                     = VK_FORMAT_A1R5G5B5_UNORM_PACK16,
2019     eR8Unorm                                 = VK_FORMAT_R8_UNORM,
2020     eR8Snorm                                 = VK_FORMAT_R8_SNORM,
2021     eR8Uscaled                               = VK_FORMAT_R8_USCALED,
2022     eR8Sscaled                               = VK_FORMAT_R8_SSCALED,
2023     eR8Uint                                  = VK_FORMAT_R8_UINT,
2024     eR8Sint                                  = VK_FORMAT_R8_SINT,
2025     eR8Srgb                                  = VK_FORMAT_R8_SRGB,
2026     eR8G8Unorm                               = VK_FORMAT_R8G8_UNORM,
2027     eR8G8Snorm                               = VK_FORMAT_R8G8_SNORM,
2028     eR8G8Uscaled                             = VK_FORMAT_R8G8_USCALED,
2029     eR8G8Sscaled                             = VK_FORMAT_R8G8_SSCALED,
2030     eR8G8Uint                                = VK_FORMAT_R8G8_UINT,
2031     eR8G8Sint                                = VK_FORMAT_R8G8_SINT,
2032     eR8G8Srgb                                = VK_FORMAT_R8G8_SRGB,
2033     eR8G8B8Unorm                             = VK_FORMAT_R8G8B8_UNORM,
2034     eR8G8B8Snorm                             = VK_FORMAT_R8G8B8_SNORM,
2035     eR8G8B8Uscaled                           = VK_FORMAT_R8G8B8_USCALED,
2036     eR8G8B8Sscaled                           = VK_FORMAT_R8G8B8_SSCALED,
2037     eR8G8B8Uint                              = VK_FORMAT_R8G8B8_UINT,
2038     eR8G8B8Sint                              = VK_FORMAT_R8G8B8_SINT,
2039     eR8G8B8Srgb                              = VK_FORMAT_R8G8B8_SRGB,
2040     eB8G8R8Unorm                             = VK_FORMAT_B8G8R8_UNORM,
2041     eB8G8R8Snorm                             = VK_FORMAT_B8G8R8_SNORM,
2042     eB8G8R8Uscaled                           = VK_FORMAT_B8G8R8_USCALED,
2043     eB8G8R8Sscaled                           = VK_FORMAT_B8G8R8_SSCALED,
2044     eB8G8R8Uint                              = VK_FORMAT_B8G8R8_UINT,
2045     eB8G8R8Sint                              = VK_FORMAT_B8G8R8_SINT,
2046     eB8G8R8Srgb                              = VK_FORMAT_B8G8R8_SRGB,
2047     eR8G8B8A8Unorm                           = VK_FORMAT_R8G8B8A8_UNORM,
2048     eR8G8B8A8Snorm                           = VK_FORMAT_R8G8B8A8_SNORM,
2049     eR8G8B8A8Uscaled                         = VK_FORMAT_R8G8B8A8_USCALED,
2050     eR8G8B8A8Sscaled                         = VK_FORMAT_R8G8B8A8_SSCALED,
2051     eR8G8B8A8Uint                            = VK_FORMAT_R8G8B8A8_UINT,
2052     eR8G8B8A8Sint                            = VK_FORMAT_R8G8B8A8_SINT,
2053     eR8G8B8A8Srgb                            = VK_FORMAT_R8G8B8A8_SRGB,
2054     eB8G8R8A8Unorm                           = VK_FORMAT_B8G8R8A8_UNORM,
2055     eB8G8R8A8Snorm                           = VK_FORMAT_B8G8R8A8_SNORM,
2056     eB8G8R8A8Uscaled                         = VK_FORMAT_B8G8R8A8_USCALED,
2057     eB8G8R8A8Sscaled                         = VK_FORMAT_B8G8R8A8_SSCALED,
2058     eB8G8R8A8Uint                            = VK_FORMAT_B8G8R8A8_UINT,
2059     eB8G8R8A8Sint                            = VK_FORMAT_B8G8R8A8_SINT,
2060     eB8G8R8A8Srgb                            = VK_FORMAT_B8G8R8A8_SRGB,
2061     eA8B8G8R8UnormPack32                     = VK_FORMAT_A8B8G8R8_UNORM_PACK32,
2062     eA8B8G8R8SnormPack32                     = VK_FORMAT_A8B8G8R8_SNORM_PACK32,
2063     eA8B8G8R8UscaledPack32                   = VK_FORMAT_A8B8G8R8_USCALED_PACK32,
2064     eA8B8G8R8SscaledPack32                   = VK_FORMAT_A8B8G8R8_SSCALED_PACK32,
2065     eA8B8G8R8UintPack32                      = VK_FORMAT_A8B8G8R8_UINT_PACK32,
2066     eA8B8G8R8SintPack32                      = VK_FORMAT_A8B8G8R8_SINT_PACK32,
2067     eA8B8G8R8SrgbPack32                      = VK_FORMAT_A8B8G8R8_SRGB_PACK32,
2068     eA2R10G10B10UnormPack32                  = VK_FORMAT_A2R10G10B10_UNORM_PACK32,
2069     eA2R10G10B10SnormPack32                  = VK_FORMAT_A2R10G10B10_SNORM_PACK32,
2070     eA2R10G10B10UscaledPack32                = VK_FORMAT_A2R10G10B10_USCALED_PACK32,
2071     eA2R10G10B10SscaledPack32                = VK_FORMAT_A2R10G10B10_SSCALED_PACK32,
2072     eA2R10G10B10UintPack32                   = VK_FORMAT_A2R10G10B10_UINT_PACK32,
2073     eA2R10G10B10SintPack32                   = VK_FORMAT_A2R10G10B10_SINT_PACK32,
2074     eA2B10G10R10UnormPack32                  = VK_FORMAT_A2B10G10R10_UNORM_PACK32,
2075     eA2B10G10R10SnormPack32                  = VK_FORMAT_A2B10G10R10_SNORM_PACK32,
2076     eA2B10G10R10UscaledPack32                = VK_FORMAT_A2B10G10R10_USCALED_PACK32,
2077     eA2B10G10R10SscaledPack32                = VK_FORMAT_A2B10G10R10_SSCALED_PACK32,
2078     eA2B10G10R10UintPack32                   = VK_FORMAT_A2B10G10R10_UINT_PACK32,
2079     eA2B10G10R10SintPack32                   = VK_FORMAT_A2B10G10R10_SINT_PACK32,
2080     eR16Unorm                                = VK_FORMAT_R16_UNORM,
2081     eR16Snorm                                = VK_FORMAT_R16_SNORM,
2082     eR16Uscaled                              = VK_FORMAT_R16_USCALED,
2083     eR16Sscaled                              = VK_FORMAT_R16_SSCALED,
2084     eR16Uint                                 = VK_FORMAT_R16_UINT,
2085     eR16Sint                                 = VK_FORMAT_R16_SINT,
2086     eR16Sfloat                               = VK_FORMAT_R16_SFLOAT,
2087     eR16G16Unorm                             = VK_FORMAT_R16G16_UNORM,
2088     eR16G16Snorm                             = VK_FORMAT_R16G16_SNORM,
2089     eR16G16Uscaled                           = VK_FORMAT_R16G16_USCALED,
2090     eR16G16Sscaled                           = VK_FORMAT_R16G16_SSCALED,
2091     eR16G16Uint                              = VK_FORMAT_R16G16_UINT,
2092     eR16G16Sint                              = VK_FORMAT_R16G16_SINT,
2093     eR16G16Sfloat                            = VK_FORMAT_R16G16_SFLOAT,
2094     eR16G16B16Unorm                          = VK_FORMAT_R16G16B16_UNORM,
2095     eR16G16B16Snorm                          = VK_FORMAT_R16G16B16_SNORM,
2096     eR16G16B16Uscaled                        = VK_FORMAT_R16G16B16_USCALED,
2097     eR16G16B16Sscaled                        = VK_FORMAT_R16G16B16_SSCALED,
2098     eR16G16B16Uint                           = VK_FORMAT_R16G16B16_UINT,
2099     eR16G16B16Sint                           = VK_FORMAT_R16G16B16_SINT,
2100     eR16G16B16Sfloat                         = VK_FORMAT_R16G16B16_SFLOAT,
2101     eR16G16B16A16Unorm                       = VK_FORMAT_R16G16B16A16_UNORM,
2102     eR16G16B16A16Snorm                       = VK_FORMAT_R16G16B16A16_SNORM,
2103     eR16G16B16A16Uscaled                     = VK_FORMAT_R16G16B16A16_USCALED,
2104     eR16G16B16A16Sscaled                     = VK_FORMAT_R16G16B16A16_SSCALED,
2105     eR16G16B16A16Uint                        = VK_FORMAT_R16G16B16A16_UINT,
2106     eR16G16B16A16Sint                        = VK_FORMAT_R16G16B16A16_SINT,
2107     eR16G16B16A16Sfloat                      = VK_FORMAT_R16G16B16A16_SFLOAT,
2108     eR32Uint                                 = VK_FORMAT_R32_UINT,
2109     eR32Sint                                 = VK_FORMAT_R32_SINT,
2110     eR32Sfloat                               = VK_FORMAT_R32_SFLOAT,
2111     eR32G32Uint                              = VK_FORMAT_R32G32_UINT,
2112     eR32G32Sint                              = VK_FORMAT_R32G32_SINT,
2113     eR32G32Sfloat                            = VK_FORMAT_R32G32_SFLOAT,
2114     eR32G32B32Uint                           = VK_FORMAT_R32G32B32_UINT,
2115     eR32G32B32Sint                           = VK_FORMAT_R32G32B32_SINT,
2116     eR32G32B32Sfloat                         = VK_FORMAT_R32G32B32_SFLOAT,
2117     eR32G32B32A32Uint                        = VK_FORMAT_R32G32B32A32_UINT,
2118     eR32G32B32A32Sint                        = VK_FORMAT_R32G32B32A32_SINT,
2119     eR32G32B32A32Sfloat                      = VK_FORMAT_R32G32B32A32_SFLOAT,
2120     eR64Uint                                 = VK_FORMAT_R64_UINT,
2121     eR64Sint                                 = VK_FORMAT_R64_SINT,
2122     eR64Sfloat                               = VK_FORMAT_R64_SFLOAT,
2123     eR64G64Uint                              = VK_FORMAT_R64G64_UINT,
2124     eR64G64Sint                              = VK_FORMAT_R64G64_SINT,
2125     eR64G64Sfloat                            = VK_FORMAT_R64G64_SFLOAT,
2126     eR64G64B64Uint                           = VK_FORMAT_R64G64B64_UINT,
2127     eR64G64B64Sint                           = VK_FORMAT_R64G64B64_SINT,
2128     eR64G64B64Sfloat                         = VK_FORMAT_R64G64B64_SFLOAT,
2129     eR64G64B64A64Uint                        = VK_FORMAT_R64G64B64A64_UINT,
2130     eR64G64B64A64Sint                        = VK_FORMAT_R64G64B64A64_SINT,
2131     eR64G64B64A64Sfloat                      = VK_FORMAT_R64G64B64A64_SFLOAT,
2132     eB10G11R11UfloatPack32                   = VK_FORMAT_B10G11R11_UFLOAT_PACK32,
2133     eE5B9G9R9UfloatPack32                    = VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,
2134     eD16Unorm                                = VK_FORMAT_D16_UNORM,
2135     eX8D24UnormPack32                        = VK_FORMAT_X8_D24_UNORM_PACK32,
2136     eD32Sfloat                               = VK_FORMAT_D32_SFLOAT,
2137     eS8Uint                                  = VK_FORMAT_S8_UINT,
2138     eD16UnormS8Uint                          = VK_FORMAT_D16_UNORM_S8_UINT,
2139     eD24UnormS8Uint                          = VK_FORMAT_D24_UNORM_S8_UINT,
2140     eD32SfloatS8Uint                         = VK_FORMAT_D32_SFLOAT_S8_UINT,
2141     eBc1RgbUnormBlock                        = VK_FORMAT_BC1_RGB_UNORM_BLOCK,
2142     eBc1RgbSrgbBlock                         = VK_FORMAT_BC1_RGB_SRGB_BLOCK,
2143     eBc1RgbaUnormBlock                       = VK_FORMAT_BC1_RGBA_UNORM_BLOCK,
2144     eBc1RgbaSrgbBlock                        = VK_FORMAT_BC1_RGBA_SRGB_BLOCK,
2145     eBc2UnormBlock                           = VK_FORMAT_BC2_UNORM_BLOCK,
2146     eBc2SrgbBlock                            = VK_FORMAT_BC2_SRGB_BLOCK,
2147     eBc3UnormBlock                           = VK_FORMAT_BC3_UNORM_BLOCK,
2148     eBc3SrgbBlock                            = VK_FORMAT_BC3_SRGB_BLOCK,
2149     eBc4UnormBlock                           = VK_FORMAT_BC4_UNORM_BLOCK,
2150     eBc4SnormBlock                           = VK_FORMAT_BC4_SNORM_BLOCK,
2151     eBc5UnormBlock                           = VK_FORMAT_BC5_UNORM_BLOCK,
2152     eBc5SnormBlock                           = VK_FORMAT_BC5_SNORM_BLOCK,
2153     eBc6HUfloatBlock                         = VK_FORMAT_BC6H_UFLOAT_BLOCK,
2154     eBc6HSfloatBlock                         = VK_FORMAT_BC6H_SFLOAT_BLOCK,
2155     eBc7UnormBlock                           = VK_FORMAT_BC7_UNORM_BLOCK,
2156     eBc7SrgbBlock                            = VK_FORMAT_BC7_SRGB_BLOCK,
2157     eEtc2R8G8B8UnormBlock                    = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK,
2158     eEtc2R8G8B8SrgbBlock                     = VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK,
2159     eEtc2R8G8B8A1UnormBlock                  = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK,
2160     eEtc2R8G8B8A1SrgbBlock                   = VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK,
2161     eEtc2R8G8B8A8UnormBlock                  = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK,
2162     eEtc2R8G8B8A8SrgbBlock                   = VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK,
2163     eEacR11UnormBlock                        = VK_FORMAT_EAC_R11_UNORM_BLOCK,
2164     eEacR11SnormBlock                        = VK_FORMAT_EAC_R11_SNORM_BLOCK,
2165     eEacR11G11UnormBlock                     = VK_FORMAT_EAC_R11G11_UNORM_BLOCK,
2166     eEacR11G11SnormBlock                     = VK_FORMAT_EAC_R11G11_SNORM_BLOCK,
2167     eAstc4x4UnormBlock                       = VK_FORMAT_ASTC_4x4_UNORM_BLOCK,
2168     eAstc4x4SrgbBlock                        = VK_FORMAT_ASTC_4x4_SRGB_BLOCK,
2169     eAstc5x4UnormBlock                       = VK_FORMAT_ASTC_5x4_UNORM_BLOCK,
2170     eAstc5x4SrgbBlock                        = VK_FORMAT_ASTC_5x4_SRGB_BLOCK,
2171     eAstc5x5UnormBlock                       = VK_FORMAT_ASTC_5x5_UNORM_BLOCK,
2172     eAstc5x5SrgbBlock                        = VK_FORMAT_ASTC_5x5_SRGB_BLOCK,
2173     eAstc6x5UnormBlock                       = VK_FORMAT_ASTC_6x5_UNORM_BLOCK,
2174     eAstc6x5SrgbBlock                        = VK_FORMAT_ASTC_6x5_SRGB_BLOCK,
2175     eAstc6x6UnormBlock                       = VK_FORMAT_ASTC_6x6_UNORM_BLOCK,
2176     eAstc6x6SrgbBlock                        = VK_FORMAT_ASTC_6x6_SRGB_BLOCK,
2177     eAstc8x5UnormBlock                       = VK_FORMAT_ASTC_8x5_UNORM_BLOCK,
2178     eAstc8x5SrgbBlock                        = VK_FORMAT_ASTC_8x5_SRGB_BLOCK,
2179     eAstc8x6UnormBlock                       = VK_FORMAT_ASTC_8x6_UNORM_BLOCK,
2180     eAstc8x6SrgbBlock                        = VK_FORMAT_ASTC_8x6_SRGB_BLOCK,
2181     eAstc8x8UnormBlock                       = VK_FORMAT_ASTC_8x8_UNORM_BLOCK,
2182     eAstc8x8SrgbBlock                        = VK_FORMAT_ASTC_8x8_SRGB_BLOCK,
2183     eAstc10x5UnormBlock                      = VK_FORMAT_ASTC_10x5_UNORM_BLOCK,
2184     eAstc10x5SrgbBlock                       = VK_FORMAT_ASTC_10x5_SRGB_BLOCK,
2185     eAstc10x6UnormBlock                      = VK_FORMAT_ASTC_10x6_UNORM_BLOCK,
2186     eAstc10x6SrgbBlock                       = VK_FORMAT_ASTC_10x6_SRGB_BLOCK,
2187     eAstc10x8UnormBlock                      = VK_FORMAT_ASTC_10x8_UNORM_BLOCK,
2188     eAstc10x8SrgbBlock                       = VK_FORMAT_ASTC_10x8_SRGB_BLOCK,
2189     eAstc10x10UnormBlock                     = VK_FORMAT_ASTC_10x10_UNORM_BLOCK,
2190     eAstc10x10SrgbBlock                      = VK_FORMAT_ASTC_10x10_SRGB_BLOCK,
2191     eAstc12x10UnormBlock                     = VK_FORMAT_ASTC_12x10_UNORM_BLOCK,
2192     eAstc12x10SrgbBlock                      = VK_FORMAT_ASTC_12x10_SRGB_BLOCK,
2193     eAstc12x12UnormBlock                     = VK_FORMAT_ASTC_12x12_UNORM_BLOCK,
2194     eAstc12x12SrgbBlock                      = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
2195     eG8B8G8R8422Unorm                        = VK_FORMAT_G8B8G8R8_422_UNORM,
2196     eB8G8R8G8422Unorm                        = VK_FORMAT_B8G8R8G8_422_UNORM,
2197     eG8B8R83Plane420Unorm                    = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
2198     eG8B8R82Plane420Unorm                    = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
2199     eG8B8R83Plane422Unorm                    = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
2200     eG8B8R82Plane422Unorm                    = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
2201     eG8B8R83Plane444Unorm                    = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
2202     eR10X6UnormPack16                        = VK_FORMAT_R10X6_UNORM_PACK16,
2203     eR10X6G10X6Unorm2Pack16                  = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
2204     eR10X6G10X6B10X6A10X6Unorm4Pack16        = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
2205     eG10X6B10X6G10X6R10X6422Unorm4Pack16     = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
2206     eB10X6G10X6R10X6G10X6422Unorm4Pack16     = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
2207     eG10X6B10X6R10X63Plane420Unorm3Pack16    = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
2208     eG10X6B10X6R10X62Plane420Unorm3Pack16    = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
2209     eG10X6B10X6R10X63Plane422Unorm3Pack16    = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
2210     eG10X6B10X6R10X62Plane422Unorm3Pack16    = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
2211     eG10X6B10X6R10X63Plane444Unorm3Pack16    = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
2212     eR12X4UnormPack16                        = VK_FORMAT_R12X4_UNORM_PACK16,
2213     eR12X4G12X4Unorm2Pack16                  = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
2214     eR12X4G12X4B12X4A12X4Unorm4Pack16        = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
2215     eG12X4B12X4G12X4R12X4422Unorm4Pack16     = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
2216     eB12X4G12X4R12X4G12X4422Unorm4Pack16     = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
2217     eG12X4B12X4R12X43Plane420Unorm3Pack16    = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
2218     eG12X4B12X4R12X42Plane420Unorm3Pack16    = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
2219     eG12X4B12X4R12X43Plane422Unorm3Pack16    = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
2220     eG12X4B12X4R12X42Plane422Unorm3Pack16    = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
2221     eG12X4B12X4R12X43Plane444Unorm3Pack16    = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
2222     eG16B16G16R16422Unorm                    = VK_FORMAT_G16B16G16R16_422_UNORM,
2223     eB16G16R16G16422Unorm                    = VK_FORMAT_B16G16R16G16_422_UNORM,
2224     eG16B16R163Plane420Unorm                 = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
2225     eG16B16R162Plane420Unorm                 = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
2226     eG16B16R163Plane422Unorm                 = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
2227     eG16B16R162Plane422Unorm                 = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
2228     eG16B16R163Plane444Unorm                 = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
2229     ePvrtc12BppUnormBlockIMG                 = VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG,
2230     ePvrtc14BppUnormBlockIMG                 = VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG,
2231     ePvrtc22BppUnormBlockIMG                 = VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG,
2232     ePvrtc24BppUnormBlockIMG                 = VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG,
2233     ePvrtc12BppSrgbBlockIMG                  = VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG,
2234     ePvrtc14BppSrgbBlockIMG                  = VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG,
2235     ePvrtc22BppSrgbBlockIMG                  = VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG,
2236     ePvrtc24BppSrgbBlockIMG                  = VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG,
2237     eAstc4x4SfloatBlockEXT                   = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT,
2238     eAstc5x4SfloatBlockEXT                   = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT,
2239     eAstc5x5SfloatBlockEXT                   = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT,
2240     eAstc6x5SfloatBlockEXT                   = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT,
2241     eAstc6x6SfloatBlockEXT                   = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT,
2242     eAstc8x5SfloatBlockEXT                   = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT,
2243     eAstc8x6SfloatBlockEXT                   = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT,
2244     eAstc8x8SfloatBlockEXT                   = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT,
2245     eAstc10x5SfloatBlockEXT                  = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT,
2246     eAstc10x6SfloatBlockEXT                  = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT,
2247     eAstc10x8SfloatBlockEXT                  = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT,
2248     eAstc10x10SfloatBlockEXT                 = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT,
2249     eAstc12x10SfloatBlockEXT                 = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT,
2250     eAstc12x12SfloatBlockEXT                 = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT,
2251     eG8B8R82Plane444UnormEXT                 = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT,
2252     eG10X6B10X6R10X62Plane444Unorm3Pack16EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT,
2253     eG12X4B12X4R12X42Plane444Unorm3Pack16EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT,
2254     eG16B16R162Plane444UnormEXT              = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT,
2255     eA4R4G4B4UnormPack16EXT                  = VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT,
2256     eA4B4G4R4UnormPack16EXT                  = VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT,
2257     eB10X6G10X6R10X6G10X6422Unorm4Pack16KHR  = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR,
2258     eB12X4G12X4R12X4G12X4422Unorm4Pack16KHR  = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR,
2259     eB16G16R16G16422UnormKHR                 = VK_FORMAT_B16G16R16G16_422_UNORM_KHR,
2260     eB8G8R8G8422UnormKHR                     = VK_FORMAT_B8G8R8G8_422_UNORM_KHR,
2261     eG10X6B10X6G10X6R10X6422Unorm4Pack16KHR  = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR,
2262     eG10X6B10X6R10X62Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR,
2263     eG10X6B10X6R10X62Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR,
2264     eG10X6B10X6R10X63Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR,
2265     eG10X6B10X6R10X63Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR,
2266     eG10X6B10X6R10X63Plane444Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR,
2267     eG12X4B12X4G12X4R12X4422Unorm4Pack16KHR  = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR,
2268     eG12X4B12X4R12X42Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR,
2269     eG12X4B12X4R12X42Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR,
2270     eG12X4B12X4R12X43Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR,
2271     eG12X4B12X4R12X43Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR,
2272     eG12X4B12X4R12X43Plane444Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR,
2273     eG16B16G16R16422UnormKHR                 = VK_FORMAT_G16B16G16R16_422_UNORM_KHR,
2274     eG16B16R162Plane420UnormKHR              = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR,
2275     eG16B16R162Plane422UnormKHR              = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR,
2276     eG16B16R163Plane420UnormKHR              = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR,
2277     eG16B16R163Plane422UnormKHR              = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR,
2278     eG16B16R163Plane444UnormKHR              = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR,
2279     eG8B8G8R8422UnormKHR                     = VK_FORMAT_G8B8G8R8_422_UNORM_KHR,
2280     eG8B8R82Plane420UnormKHR                 = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR,
2281     eG8B8R82Plane422UnormKHR                 = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR,
2282     eG8B8R83Plane420UnormKHR                 = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR,
2283     eG8B8R83Plane422UnormKHR                 = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR,
2284     eG8B8R83Plane444UnormKHR                 = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR,
2285     eR10X6G10X6B10X6A10X6Unorm4Pack16KHR     = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR,
2286     eR10X6G10X6Unorm2Pack16KHR               = VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR,
2287     eR10X6UnormPack16KHR                     = VK_FORMAT_R10X6_UNORM_PACK16_KHR,
2288     eR12X4G12X4B12X4A12X4Unorm4Pack16KHR     = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR,
2289     eR12X4G12X4Unorm2Pack16KHR               = VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR,
2290     eR12X4UnormPack16KHR                     = VK_FORMAT_R12X4_UNORM_PACK16_KHR
2291   };
2292 
to_string(Format value)2293   VULKAN_HPP_INLINE std::string to_string( Format value )
2294   {
2295     switch ( value )
2296     {
2297       case Format::eUndefined: return "Undefined";
2298       case Format::eR4G4UnormPack8: return "R4G4UnormPack8";
2299       case Format::eR4G4B4A4UnormPack16: return "R4G4B4A4UnormPack16";
2300       case Format::eB4G4R4A4UnormPack16: return "B4G4R4A4UnormPack16";
2301       case Format::eR5G6B5UnormPack16: return "R5G6B5UnormPack16";
2302       case Format::eB5G6R5UnormPack16: return "B5G6R5UnormPack16";
2303       case Format::eR5G5B5A1UnormPack16: return "R5G5B5A1UnormPack16";
2304       case Format::eB5G5R5A1UnormPack16: return "B5G5R5A1UnormPack16";
2305       case Format::eA1R5G5B5UnormPack16: return "A1R5G5B5UnormPack16";
2306       case Format::eR8Unorm: return "R8Unorm";
2307       case Format::eR8Snorm: return "R8Snorm";
2308       case Format::eR8Uscaled: return "R8Uscaled";
2309       case Format::eR8Sscaled: return "R8Sscaled";
2310       case Format::eR8Uint: return "R8Uint";
2311       case Format::eR8Sint: return "R8Sint";
2312       case Format::eR8Srgb: return "R8Srgb";
2313       case Format::eR8G8Unorm: return "R8G8Unorm";
2314       case Format::eR8G8Snorm: return "R8G8Snorm";
2315       case Format::eR8G8Uscaled: return "R8G8Uscaled";
2316       case Format::eR8G8Sscaled: return "R8G8Sscaled";
2317       case Format::eR8G8Uint: return "R8G8Uint";
2318       case Format::eR8G8Sint: return "R8G8Sint";
2319       case Format::eR8G8Srgb: return "R8G8Srgb";
2320       case Format::eR8G8B8Unorm: return "R8G8B8Unorm";
2321       case Format::eR8G8B8Snorm: return "R8G8B8Snorm";
2322       case Format::eR8G8B8Uscaled: return "R8G8B8Uscaled";
2323       case Format::eR8G8B8Sscaled: return "R8G8B8Sscaled";
2324       case Format::eR8G8B8Uint: return "R8G8B8Uint";
2325       case Format::eR8G8B8Sint: return "R8G8B8Sint";
2326       case Format::eR8G8B8Srgb: return "R8G8B8Srgb";
2327       case Format::eB8G8R8Unorm: return "B8G8R8Unorm";
2328       case Format::eB8G8R8Snorm: return "B8G8R8Snorm";
2329       case Format::eB8G8R8Uscaled: return "B8G8R8Uscaled";
2330       case Format::eB8G8R8Sscaled: return "B8G8R8Sscaled";
2331       case Format::eB8G8R8Uint: return "B8G8R8Uint";
2332       case Format::eB8G8R8Sint: return "B8G8R8Sint";
2333       case Format::eB8G8R8Srgb: return "B8G8R8Srgb";
2334       case Format::eR8G8B8A8Unorm: return "R8G8B8A8Unorm";
2335       case Format::eR8G8B8A8Snorm: return "R8G8B8A8Snorm";
2336       case Format::eR8G8B8A8Uscaled: return "R8G8B8A8Uscaled";
2337       case Format::eR8G8B8A8Sscaled: return "R8G8B8A8Sscaled";
2338       case Format::eR8G8B8A8Uint: return "R8G8B8A8Uint";
2339       case Format::eR8G8B8A8Sint: return "R8G8B8A8Sint";
2340       case Format::eR8G8B8A8Srgb: return "R8G8B8A8Srgb";
2341       case Format::eB8G8R8A8Unorm: return "B8G8R8A8Unorm";
2342       case Format::eB8G8R8A8Snorm: return "B8G8R8A8Snorm";
2343       case Format::eB8G8R8A8Uscaled: return "B8G8R8A8Uscaled";
2344       case Format::eB8G8R8A8Sscaled: return "B8G8R8A8Sscaled";
2345       case Format::eB8G8R8A8Uint: return "B8G8R8A8Uint";
2346       case Format::eB8G8R8A8Sint: return "B8G8R8A8Sint";
2347       case Format::eB8G8R8A8Srgb: return "B8G8R8A8Srgb";
2348       case Format::eA8B8G8R8UnormPack32: return "A8B8G8R8UnormPack32";
2349       case Format::eA8B8G8R8SnormPack32: return "A8B8G8R8SnormPack32";
2350       case Format::eA8B8G8R8UscaledPack32: return "A8B8G8R8UscaledPack32";
2351       case Format::eA8B8G8R8SscaledPack32: return "A8B8G8R8SscaledPack32";
2352       case Format::eA8B8G8R8UintPack32: return "A8B8G8R8UintPack32";
2353       case Format::eA8B8G8R8SintPack32: return "A8B8G8R8SintPack32";
2354       case Format::eA8B8G8R8SrgbPack32: return "A8B8G8R8SrgbPack32";
2355       case Format::eA2R10G10B10UnormPack32: return "A2R10G10B10UnormPack32";
2356       case Format::eA2R10G10B10SnormPack32: return "A2R10G10B10SnormPack32";
2357       case Format::eA2R10G10B10UscaledPack32: return "A2R10G10B10UscaledPack32";
2358       case Format::eA2R10G10B10SscaledPack32: return "A2R10G10B10SscaledPack32";
2359       case Format::eA2R10G10B10UintPack32: return "A2R10G10B10UintPack32";
2360       case Format::eA2R10G10B10SintPack32: return "A2R10G10B10SintPack32";
2361       case Format::eA2B10G10R10UnormPack32: return "A2B10G10R10UnormPack32";
2362       case Format::eA2B10G10R10SnormPack32: return "A2B10G10R10SnormPack32";
2363       case Format::eA2B10G10R10UscaledPack32: return "A2B10G10R10UscaledPack32";
2364       case Format::eA2B10G10R10SscaledPack32: return "A2B10G10R10SscaledPack32";
2365       case Format::eA2B10G10R10UintPack32: return "A2B10G10R10UintPack32";
2366       case Format::eA2B10G10R10SintPack32: return "A2B10G10R10SintPack32";
2367       case Format::eR16Unorm: return "R16Unorm";
2368       case Format::eR16Snorm: return "R16Snorm";
2369       case Format::eR16Uscaled: return "R16Uscaled";
2370       case Format::eR16Sscaled: return "R16Sscaled";
2371       case Format::eR16Uint: return "R16Uint";
2372       case Format::eR16Sint: return "R16Sint";
2373       case Format::eR16Sfloat: return "R16Sfloat";
2374       case Format::eR16G16Unorm: return "R16G16Unorm";
2375       case Format::eR16G16Snorm: return "R16G16Snorm";
2376       case Format::eR16G16Uscaled: return "R16G16Uscaled";
2377       case Format::eR16G16Sscaled: return "R16G16Sscaled";
2378       case Format::eR16G16Uint: return "R16G16Uint";
2379       case Format::eR16G16Sint: return "R16G16Sint";
2380       case Format::eR16G16Sfloat: return "R16G16Sfloat";
2381       case Format::eR16G16B16Unorm: return "R16G16B16Unorm";
2382       case Format::eR16G16B16Snorm: return "R16G16B16Snorm";
2383       case Format::eR16G16B16Uscaled: return "R16G16B16Uscaled";
2384       case Format::eR16G16B16Sscaled: return "R16G16B16Sscaled";
2385       case Format::eR16G16B16Uint: return "R16G16B16Uint";
2386       case Format::eR16G16B16Sint: return "R16G16B16Sint";
2387       case Format::eR16G16B16Sfloat: return "R16G16B16Sfloat";
2388       case Format::eR16G16B16A16Unorm: return "R16G16B16A16Unorm";
2389       case Format::eR16G16B16A16Snorm: return "R16G16B16A16Snorm";
2390       case Format::eR16G16B16A16Uscaled: return "R16G16B16A16Uscaled";
2391       case Format::eR16G16B16A16Sscaled: return "R16G16B16A16Sscaled";
2392       case Format::eR16G16B16A16Uint: return "R16G16B16A16Uint";
2393       case Format::eR16G16B16A16Sint: return "R16G16B16A16Sint";
2394       case Format::eR16G16B16A16Sfloat: return "R16G16B16A16Sfloat";
2395       case Format::eR32Uint: return "R32Uint";
2396       case Format::eR32Sint: return "R32Sint";
2397       case Format::eR32Sfloat: return "R32Sfloat";
2398       case Format::eR32G32Uint: return "R32G32Uint";
2399       case Format::eR32G32Sint: return "R32G32Sint";
2400       case Format::eR32G32Sfloat: return "R32G32Sfloat";
2401       case Format::eR32G32B32Uint: return "R32G32B32Uint";
2402       case Format::eR32G32B32Sint: return "R32G32B32Sint";
2403       case Format::eR32G32B32Sfloat: return "R32G32B32Sfloat";
2404       case Format::eR32G32B32A32Uint: return "R32G32B32A32Uint";
2405       case Format::eR32G32B32A32Sint: return "R32G32B32A32Sint";
2406       case Format::eR32G32B32A32Sfloat: return "R32G32B32A32Sfloat";
2407       case Format::eR64Uint: return "R64Uint";
2408       case Format::eR64Sint: return "R64Sint";
2409       case Format::eR64Sfloat: return "R64Sfloat";
2410       case Format::eR64G64Uint: return "R64G64Uint";
2411       case Format::eR64G64Sint: return "R64G64Sint";
2412       case Format::eR64G64Sfloat: return "R64G64Sfloat";
2413       case Format::eR64G64B64Uint: return "R64G64B64Uint";
2414       case Format::eR64G64B64Sint: return "R64G64B64Sint";
2415       case Format::eR64G64B64Sfloat: return "R64G64B64Sfloat";
2416       case Format::eR64G64B64A64Uint: return "R64G64B64A64Uint";
2417       case Format::eR64G64B64A64Sint: return "R64G64B64A64Sint";
2418       case Format::eR64G64B64A64Sfloat: return "R64G64B64A64Sfloat";
2419       case Format::eB10G11R11UfloatPack32: return "B10G11R11UfloatPack32";
2420       case Format::eE5B9G9R9UfloatPack32: return "E5B9G9R9UfloatPack32";
2421       case Format::eD16Unorm: return "D16Unorm";
2422       case Format::eX8D24UnormPack32: return "X8D24UnormPack32";
2423       case Format::eD32Sfloat: return "D32Sfloat";
2424       case Format::eS8Uint: return "S8Uint";
2425       case Format::eD16UnormS8Uint: return "D16UnormS8Uint";
2426       case Format::eD24UnormS8Uint: return "D24UnormS8Uint";
2427       case Format::eD32SfloatS8Uint: return "D32SfloatS8Uint";
2428       case Format::eBc1RgbUnormBlock: return "Bc1RgbUnormBlock";
2429       case Format::eBc1RgbSrgbBlock: return "Bc1RgbSrgbBlock";
2430       case Format::eBc1RgbaUnormBlock: return "Bc1RgbaUnormBlock";
2431       case Format::eBc1RgbaSrgbBlock: return "Bc1RgbaSrgbBlock";
2432       case Format::eBc2UnormBlock: return "Bc2UnormBlock";
2433       case Format::eBc2SrgbBlock: return "Bc2SrgbBlock";
2434       case Format::eBc3UnormBlock: return "Bc3UnormBlock";
2435       case Format::eBc3SrgbBlock: return "Bc3SrgbBlock";
2436       case Format::eBc4UnormBlock: return "Bc4UnormBlock";
2437       case Format::eBc4SnormBlock: return "Bc4SnormBlock";
2438       case Format::eBc5UnormBlock: return "Bc5UnormBlock";
2439       case Format::eBc5SnormBlock: return "Bc5SnormBlock";
2440       case Format::eBc6HUfloatBlock: return "Bc6HUfloatBlock";
2441       case Format::eBc6HSfloatBlock: return "Bc6HSfloatBlock";
2442       case Format::eBc7UnormBlock: return "Bc7UnormBlock";
2443       case Format::eBc7SrgbBlock: return "Bc7SrgbBlock";
2444       case Format::eEtc2R8G8B8UnormBlock: return "Etc2R8G8B8UnormBlock";
2445       case Format::eEtc2R8G8B8SrgbBlock: return "Etc2R8G8B8SrgbBlock";
2446       case Format::eEtc2R8G8B8A1UnormBlock: return "Etc2R8G8B8A1UnormBlock";
2447       case Format::eEtc2R8G8B8A1SrgbBlock: return "Etc2R8G8B8A1SrgbBlock";
2448       case Format::eEtc2R8G8B8A8UnormBlock: return "Etc2R8G8B8A8UnormBlock";
2449       case Format::eEtc2R8G8B8A8SrgbBlock: return "Etc2R8G8B8A8SrgbBlock";
2450       case Format::eEacR11UnormBlock: return "EacR11UnormBlock";
2451       case Format::eEacR11SnormBlock: return "EacR11SnormBlock";
2452       case Format::eEacR11G11UnormBlock: return "EacR11G11UnormBlock";
2453       case Format::eEacR11G11SnormBlock: return "EacR11G11SnormBlock";
2454       case Format::eAstc4x4UnormBlock: return "Astc4x4UnormBlock";
2455       case Format::eAstc4x4SrgbBlock: return "Astc4x4SrgbBlock";
2456       case Format::eAstc5x4UnormBlock: return "Astc5x4UnormBlock";
2457       case Format::eAstc5x4SrgbBlock: return "Astc5x4SrgbBlock";
2458       case Format::eAstc5x5UnormBlock: return "Astc5x5UnormBlock";
2459       case Format::eAstc5x5SrgbBlock: return "Astc5x5SrgbBlock";
2460       case Format::eAstc6x5UnormBlock: return "Astc6x5UnormBlock";
2461       case Format::eAstc6x5SrgbBlock: return "Astc6x5SrgbBlock";
2462       case Format::eAstc6x6UnormBlock: return "Astc6x6UnormBlock";
2463       case Format::eAstc6x6SrgbBlock: return "Astc6x6SrgbBlock";
2464       case Format::eAstc8x5UnormBlock: return "Astc8x5UnormBlock";
2465       case Format::eAstc8x5SrgbBlock: return "Astc8x5SrgbBlock";
2466       case Format::eAstc8x6UnormBlock: return "Astc8x6UnormBlock";
2467       case Format::eAstc8x6SrgbBlock: return "Astc8x6SrgbBlock";
2468       case Format::eAstc8x8UnormBlock: return "Astc8x8UnormBlock";
2469       case Format::eAstc8x8SrgbBlock: return "Astc8x8SrgbBlock";
2470       case Format::eAstc10x5UnormBlock: return "Astc10x5UnormBlock";
2471       case Format::eAstc10x5SrgbBlock: return "Astc10x5SrgbBlock";
2472       case Format::eAstc10x6UnormBlock: return "Astc10x6UnormBlock";
2473       case Format::eAstc10x6SrgbBlock: return "Astc10x6SrgbBlock";
2474       case Format::eAstc10x8UnormBlock: return "Astc10x8UnormBlock";
2475       case Format::eAstc10x8SrgbBlock: return "Astc10x8SrgbBlock";
2476       case Format::eAstc10x10UnormBlock: return "Astc10x10UnormBlock";
2477       case Format::eAstc10x10SrgbBlock: return "Astc10x10SrgbBlock";
2478       case Format::eAstc12x10UnormBlock: return "Astc12x10UnormBlock";
2479       case Format::eAstc12x10SrgbBlock: return "Astc12x10SrgbBlock";
2480       case Format::eAstc12x12UnormBlock: return "Astc12x12UnormBlock";
2481       case Format::eAstc12x12SrgbBlock: return "Astc12x12SrgbBlock";
2482       case Format::eG8B8G8R8422Unorm: return "G8B8G8R8422Unorm";
2483       case Format::eB8G8R8G8422Unorm: return "B8G8R8G8422Unorm";
2484       case Format::eG8B8R83Plane420Unorm: return "G8B8R83Plane420Unorm";
2485       case Format::eG8B8R82Plane420Unorm: return "G8B8R82Plane420Unorm";
2486       case Format::eG8B8R83Plane422Unorm: return "G8B8R83Plane422Unorm";
2487       case Format::eG8B8R82Plane422Unorm: return "G8B8R82Plane422Unorm";
2488       case Format::eG8B8R83Plane444Unorm: return "G8B8R83Plane444Unorm";
2489       case Format::eR10X6UnormPack16: return "R10X6UnormPack16";
2490       case Format::eR10X6G10X6Unorm2Pack16: return "R10X6G10X6Unorm2Pack16";
2491       case Format::eR10X6G10X6B10X6A10X6Unorm4Pack16: return "R10X6G10X6B10X6A10X6Unorm4Pack16";
2492       case Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16: return "G10X6B10X6G10X6R10X6422Unorm4Pack16";
2493       case Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16: return "B10X6G10X6R10X6G10X6422Unorm4Pack16";
2494       case Format::eG10X6B10X6R10X63Plane420Unorm3Pack16: return "G10X6B10X6R10X63Plane420Unorm3Pack16";
2495       case Format::eG10X6B10X6R10X62Plane420Unorm3Pack16: return "G10X6B10X6R10X62Plane420Unorm3Pack16";
2496       case Format::eG10X6B10X6R10X63Plane422Unorm3Pack16: return "G10X6B10X6R10X63Plane422Unorm3Pack16";
2497       case Format::eG10X6B10X6R10X62Plane422Unorm3Pack16: return "G10X6B10X6R10X62Plane422Unorm3Pack16";
2498       case Format::eG10X6B10X6R10X63Plane444Unorm3Pack16: return "G10X6B10X6R10X63Plane444Unorm3Pack16";
2499       case Format::eR12X4UnormPack16: return "R12X4UnormPack16";
2500       case Format::eR12X4G12X4Unorm2Pack16: return "R12X4G12X4Unorm2Pack16";
2501       case Format::eR12X4G12X4B12X4A12X4Unorm4Pack16: return "R12X4G12X4B12X4A12X4Unorm4Pack16";
2502       case Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16: return "G12X4B12X4G12X4R12X4422Unorm4Pack16";
2503       case Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16: return "B12X4G12X4R12X4G12X4422Unorm4Pack16";
2504       case Format::eG12X4B12X4R12X43Plane420Unorm3Pack16: return "G12X4B12X4R12X43Plane420Unorm3Pack16";
2505       case Format::eG12X4B12X4R12X42Plane420Unorm3Pack16: return "G12X4B12X4R12X42Plane420Unorm3Pack16";
2506       case Format::eG12X4B12X4R12X43Plane422Unorm3Pack16: return "G12X4B12X4R12X43Plane422Unorm3Pack16";
2507       case Format::eG12X4B12X4R12X42Plane422Unorm3Pack16: return "G12X4B12X4R12X42Plane422Unorm3Pack16";
2508       case Format::eG12X4B12X4R12X43Plane444Unorm3Pack16: return "G12X4B12X4R12X43Plane444Unorm3Pack16";
2509       case Format::eG16B16G16R16422Unorm: return "G16B16G16R16422Unorm";
2510       case Format::eB16G16R16G16422Unorm: return "B16G16R16G16422Unorm";
2511       case Format::eG16B16R163Plane420Unorm: return "G16B16R163Plane420Unorm";
2512       case Format::eG16B16R162Plane420Unorm: return "G16B16R162Plane420Unorm";
2513       case Format::eG16B16R163Plane422Unorm: return "G16B16R163Plane422Unorm";
2514       case Format::eG16B16R162Plane422Unorm: return "G16B16R162Plane422Unorm";
2515       case Format::eG16B16R163Plane444Unorm: return "G16B16R163Plane444Unorm";
2516       case Format::ePvrtc12BppUnormBlockIMG: return "Pvrtc12BppUnormBlockIMG";
2517       case Format::ePvrtc14BppUnormBlockIMG: return "Pvrtc14BppUnormBlockIMG";
2518       case Format::ePvrtc22BppUnormBlockIMG: return "Pvrtc22BppUnormBlockIMG";
2519       case Format::ePvrtc24BppUnormBlockIMG: return "Pvrtc24BppUnormBlockIMG";
2520       case Format::ePvrtc12BppSrgbBlockIMG: return "Pvrtc12BppSrgbBlockIMG";
2521       case Format::ePvrtc14BppSrgbBlockIMG: return "Pvrtc14BppSrgbBlockIMG";
2522       case Format::ePvrtc22BppSrgbBlockIMG: return "Pvrtc22BppSrgbBlockIMG";
2523       case Format::ePvrtc24BppSrgbBlockIMG: return "Pvrtc24BppSrgbBlockIMG";
2524       case Format::eAstc4x4SfloatBlockEXT: return "Astc4x4SfloatBlockEXT";
2525       case Format::eAstc5x4SfloatBlockEXT: return "Astc5x4SfloatBlockEXT";
2526       case Format::eAstc5x5SfloatBlockEXT: return "Astc5x5SfloatBlockEXT";
2527       case Format::eAstc6x5SfloatBlockEXT: return "Astc6x5SfloatBlockEXT";
2528       case Format::eAstc6x6SfloatBlockEXT: return "Astc6x6SfloatBlockEXT";
2529       case Format::eAstc8x5SfloatBlockEXT: return "Astc8x5SfloatBlockEXT";
2530       case Format::eAstc8x6SfloatBlockEXT: return "Astc8x6SfloatBlockEXT";
2531       case Format::eAstc8x8SfloatBlockEXT: return "Astc8x8SfloatBlockEXT";
2532       case Format::eAstc10x5SfloatBlockEXT: return "Astc10x5SfloatBlockEXT";
2533       case Format::eAstc10x6SfloatBlockEXT: return "Astc10x6SfloatBlockEXT";
2534       case Format::eAstc10x8SfloatBlockEXT: return "Astc10x8SfloatBlockEXT";
2535       case Format::eAstc10x10SfloatBlockEXT: return "Astc10x10SfloatBlockEXT";
2536       case Format::eAstc12x10SfloatBlockEXT: return "Astc12x10SfloatBlockEXT";
2537       case Format::eAstc12x12SfloatBlockEXT: return "Astc12x12SfloatBlockEXT";
2538       case Format::eG8B8R82Plane444UnormEXT: return "G8B8R82Plane444UnormEXT";
2539       case Format::eG10X6B10X6R10X62Plane444Unorm3Pack16EXT: return "G10X6B10X6R10X62Plane444Unorm3Pack16EXT";
2540       case Format::eG12X4B12X4R12X42Plane444Unorm3Pack16EXT: return "G12X4B12X4R12X42Plane444Unorm3Pack16EXT";
2541       case Format::eG16B16R162Plane444UnormEXT: return "G16B16R162Plane444UnormEXT";
2542       case Format::eA4R4G4B4UnormPack16EXT: return "A4R4G4B4UnormPack16EXT";
2543       case Format::eA4B4G4R4UnormPack16EXT: return "A4B4G4R4UnormPack16EXT";
2544       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2545     }
2546   }
2547 
2548   enum class FormatFeatureFlagBits : VkFormatFeatureFlags
2549   {
2550     eSampledImage                            = VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
2551     eStorageImage                            = VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,
2552     eStorageImageAtomic                      = VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,
2553     eUniformTexelBuffer                      = VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,
2554     eStorageTexelBuffer                      = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,
2555     eStorageTexelBufferAtomic                = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,
2556     eVertexBuffer                            = VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,
2557     eColorAttachment                         = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,
2558     eColorAttachmentBlend                    = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,
2559     eDepthStencilAttachment                  = VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,
2560     eBlitSrc                                 = VK_FORMAT_FEATURE_BLIT_SRC_BIT,
2561     eBlitDst                                 = VK_FORMAT_FEATURE_BLIT_DST_BIT,
2562     eSampledImageFilterLinear                = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT,
2563     eTransferSrc                             = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
2564     eTransferDst                             = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
2565     eMidpointChromaSamples                   = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
2566     eSampledImageYcbcrConversionLinearFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
2567     eSampledImageYcbcrConversionSeparateReconstructionFilter =
2568       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
2569     eSampledImageYcbcrConversionChromaReconstructionExplicit =
2570       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
2571     eSampledImageYcbcrConversionChromaReconstructionExplicitForceable =
2572       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
2573     eDisjoint                   = VK_FORMAT_FEATURE_DISJOINT_BIT,
2574     eCositedChromaSamples       = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
2575     eSampledImageFilterMinmax   = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
2576     eSampledImageFilterCubicIMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,
2577 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2578     eVideoDecodeOutputKHR = VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR,
2579     eVideoDecodeDpbKHR    = VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR,
2580 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2581     eAccelerationStructureVertexBufferKHR = VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,
2582     eFragmentDensityMapEXT                = VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,
2583     eFragmentShadingRateAttachmentKHR     = VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2584 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2585     eVideoEncodeInputKHR = VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR,
2586     eVideoEncodeDpbKHR   = VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR,
2587 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2588     eCositedChromaSamplesKHR     = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR,
2589     eDisjointKHR                 = VK_FORMAT_FEATURE_DISJOINT_BIT_KHR,
2590     eMidpointChromaSamplesKHR    = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR,
2591     eSampledImageFilterCubicEXT  = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
2592     eSampledImageFilterMinmaxEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT,
2593     eSampledImageYcbcrConversionChromaReconstructionExplicitKHR =
2594       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR,
2595     eSampledImageYcbcrConversionChromaReconstructionExplicitForceableKHR =
2596       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR,
2597     eSampledImageYcbcrConversionLinearFilterKHR =
2598       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR,
2599     eSampledImageYcbcrConversionSeparateReconstructionFilterKHR =
2600       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR,
2601     eTransferDstKHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR,
2602     eTransferSrcKHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
2603   };
2604 
to_string(FormatFeatureFlagBits value)2605   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlagBits value )
2606   {
2607     switch ( value )
2608     {
2609       case FormatFeatureFlagBits::eSampledImage: return "SampledImage";
2610       case FormatFeatureFlagBits::eStorageImage: return "StorageImage";
2611       case FormatFeatureFlagBits::eStorageImageAtomic: return "StorageImageAtomic";
2612       case FormatFeatureFlagBits::eUniformTexelBuffer: return "UniformTexelBuffer";
2613       case FormatFeatureFlagBits::eStorageTexelBuffer: return "StorageTexelBuffer";
2614       case FormatFeatureFlagBits::eStorageTexelBufferAtomic: return "StorageTexelBufferAtomic";
2615       case FormatFeatureFlagBits::eVertexBuffer: return "VertexBuffer";
2616       case FormatFeatureFlagBits::eColorAttachment: return "ColorAttachment";
2617       case FormatFeatureFlagBits::eColorAttachmentBlend: return "ColorAttachmentBlend";
2618       case FormatFeatureFlagBits::eDepthStencilAttachment: return "DepthStencilAttachment";
2619       case FormatFeatureFlagBits::eBlitSrc: return "BlitSrc";
2620       case FormatFeatureFlagBits::eBlitDst: return "BlitDst";
2621       case FormatFeatureFlagBits::eSampledImageFilterLinear: return "SampledImageFilterLinear";
2622       case FormatFeatureFlagBits::eTransferSrc: return "TransferSrc";
2623       case FormatFeatureFlagBits::eTransferDst: return "TransferDst";
2624       case FormatFeatureFlagBits::eMidpointChromaSamples: return "MidpointChromaSamples";
2625       case FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter:
2626         return "SampledImageYcbcrConversionLinearFilter";
2627       case FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter:
2628         return "SampledImageYcbcrConversionSeparateReconstructionFilter";
2629       case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit:
2630         return "SampledImageYcbcrConversionChromaReconstructionExplicit";
2631       case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable:
2632         return "SampledImageYcbcrConversionChromaReconstructionExplicitForceable";
2633       case FormatFeatureFlagBits::eDisjoint: return "Disjoint";
2634       case FormatFeatureFlagBits::eCositedChromaSamples: return "CositedChromaSamples";
2635       case FormatFeatureFlagBits::eSampledImageFilterMinmax: return "SampledImageFilterMinmax";
2636       case FormatFeatureFlagBits::eSampledImageFilterCubicIMG: return "SampledImageFilterCubicIMG";
2637 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2638       case FormatFeatureFlagBits::eVideoDecodeOutputKHR: return "VideoDecodeOutputKHR";
2639       case FormatFeatureFlagBits::eVideoDecodeDpbKHR: return "VideoDecodeDpbKHR";
2640 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2641       case FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR: return "AccelerationStructureVertexBufferKHR";
2642       case FormatFeatureFlagBits::eFragmentDensityMapEXT: return "FragmentDensityMapEXT";
2643       case FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR: return "FragmentShadingRateAttachmentKHR";
2644 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2645       case FormatFeatureFlagBits::eVideoEncodeInputKHR: return "VideoEncodeInputKHR";
2646       case FormatFeatureFlagBits::eVideoEncodeDpbKHR: return "VideoEncodeDpbKHR";
2647 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2648       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2649     }
2650   }
2651 
2652   enum class ImageCreateFlagBits : VkImageCreateFlags
2653   {
2654     eSparseBinding                     = VK_IMAGE_CREATE_SPARSE_BINDING_BIT,
2655     eSparseResidency                   = VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,
2656     eSparseAliased                     = VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,
2657     eMutableFormat                     = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,
2658     eCubeCompatible                    = VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,
2659     eAlias                             = VK_IMAGE_CREATE_ALIAS_BIT,
2660     eSplitInstanceBindRegions          = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
2661     e2DArrayCompatible                 = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
2662     eBlockTexelViewCompatible          = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
2663     eExtendedUsage                     = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
2664     eProtected                         = VK_IMAGE_CREATE_PROTECTED_BIT,
2665     eDisjoint                          = VK_IMAGE_CREATE_DISJOINT_BIT,
2666     eCornerSampledNV                   = VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,
2667     eSampleLocationsCompatibleDepthEXT = VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT,
2668     eSubsampledEXT                     = VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,
2669     e2DArrayCompatibleKHR              = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR,
2670     eAliasKHR                          = VK_IMAGE_CREATE_ALIAS_BIT_KHR,
2671     eBlockTexelViewCompatibleKHR       = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR,
2672     eDisjointKHR                       = VK_IMAGE_CREATE_DISJOINT_BIT_KHR,
2673     eExtendedUsageKHR                  = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR,
2674     eSplitInstanceBindRegionsKHR       = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
2675   };
2676 
to_string(ImageCreateFlagBits value)2677   VULKAN_HPP_INLINE std::string to_string( ImageCreateFlagBits value )
2678   {
2679     switch ( value )
2680     {
2681       case ImageCreateFlagBits::eSparseBinding: return "SparseBinding";
2682       case ImageCreateFlagBits::eSparseResidency: return "SparseResidency";
2683       case ImageCreateFlagBits::eSparseAliased: return "SparseAliased";
2684       case ImageCreateFlagBits::eMutableFormat: return "MutableFormat";
2685       case ImageCreateFlagBits::eCubeCompatible: return "CubeCompatible";
2686       case ImageCreateFlagBits::eAlias: return "Alias";
2687       case ImageCreateFlagBits::eSplitInstanceBindRegions: return "SplitInstanceBindRegions";
2688       case ImageCreateFlagBits::e2DArrayCompatible: return "2DArrayCompatible";
2689       case ImageCreateFlagBits::eBlockTexelViewCompatible: return "BlockTexelViewCompatible";
2690       case ImageCreateFlagBits::eExtendedUsage: return "ExtendedUsage";
2691       case ImageCreateFlagBits::eProtected: return "Protected";
2692       case ImageCreateFlagBits::eDisjoint: return "Disjoint";
2693       case ImageCreateFlagBits::eCornerSampledNV: return "CornerSampledNV";
2694       case ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT: return "SampleLocationsCompatibleDepthEXT";
2695       case ImageCreateFlagBits::eSubsampledEXT: return "SubsampledEXT";
2696       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2697     }
2698   }
2699 
2700   enum class ImageTiling
2701   {
2702     eOptimal              = VK_IMAGE_TILING_OPTIMAL,
2703     eLinear               = VK_IMAGE_TILING_LINEAR,
2704     eDrmFormatModifierEXT = VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
2705   };
2706 
to_string(ImageTiling value)2707   VULKAN_HPP_INLINE std::string to_string( ImageTiling value )
2708   {
2709     switch ( value )
2710     {
2711       case ImageTiling::eOptimal: return "Optimal";
2712       case ImageTiling::eLinear: return "Linear";
2713       case ImageTiling::eDrmFormatModifierEXT: return "DrmFormatModifierEXT";
2714       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2715     }
2716   }
2717 
2718   enum class ImageType
2719   {
2720     e1D = VK_IMAGE_TYPE_1D,
2721     e2D = VK_IMAGE_TYPE_2D,
2722     e3D = VK_IMAGE_TYPE_3D
2723   };
2724 
to_string(ImageType value)2725   VULKAN_HPP_INLINE std::string to_string( ImageType value )
2726   {
2727     switch ( value )
2728     {
2729       case ImageType::e1D: return "1D";
2730       case ImageType::e2D: return "2D";
2731       case ImageType::e3D: return "3D";
2732       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2733     }
2734   }
2735 
2736   enum class ImageUsageFlagBits : VkImageUsageFlags
2737   {
2738     eTransferSrc            = VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
2739     eTransferDst            = VK_IMAGE_USAGE_TRANSFER_DST_BIT,
2740     eSampled                = VK_IMAGE_USAGE_SAMPLED_BIT,
2741     eStorage                = VK_IMAGE_USAGE_STORAGE_BIT,
2742     eColorAttachment        = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,
2743     eDepthStencilAttachment = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
2744     eTransientAttachment    = VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,
2745     eInputAttachment        = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,
2746 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2747     eVideoDecodeDstKHR = VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR,
2748     eVideoDecodeSrcKHR = VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR,
2749     eVideoDecodeDpbKHR = VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR,
2750 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2751     eFragmentDensityMapEXT            = VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,
2752     eFragmentShadingRateAttachmentKHR = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2753 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2754     eVideoEncodeDstKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR,
2755     eVideoEncodeSrcKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,
2756     eVideoEncodeDpbKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR,
2757 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2758     eInvocationMaskHUAWEI = VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI,
2759     eShadingRateImageNV   = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV
2760   };
2761 
to_string(ImageUsageFlagBits value)2762   VULKAN_HPP_INLINE std::string to_string( ImageUsageFlagBits value )
2763   {
2764     switch ( value )
2765     {
2766       case ImageUsageFlagBits::eTransferSrc: return "TransferSrc";
2767       case ImageUsageFlagBits::eTransferDst: return "TransferDst";
2768       case ImageUsageFlagBits::eSampled: return "Sampled";
2769       case ImageUsageFlagBits::eStorage: return "Storage";
2770       case ImageUsageFlagBits::eColorAttachment: return "ColorAttachment";
2771       case ImageUsageFlagBits::eDepthStencilAttachment: return "DepthStencilAttachment";
2772       case ImageUsageFlagBits::eTransientAttachment: return "TransientAttachment";
2773       case ImageUsageFlagBits::eInputAttachment: return "InputAttachment";
2774 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2775       case ImageUsageFlagBits::eVideoDecodeDstKHR: return "VideoDecodeDstKHR";
2776       case ImageUsageFlagBits::eVideoDecodeSrcKHR: return "VideoDecodeSrcKHR";
2777       case ImageUsageFlagBits::eVideoDecodeDpbKHR: return "VideoDecodeDpbKHR";
2778 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2779       case ImageUsageFlagBits::eFragmentDensityMapEXT: return "FragmentDensityMapEXT";
2780       case ImageUsageFlagBits::eFragmentShadingRateAttachmentKHR: return "FragmentShadingRateAttachmentKHR";
2781 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2782       case ImageUsageFlagBits::eVideoEncodeDstKHR: return "VideoEncodeDstKHR";
2783       case ImageUsageFlagBits::eVideoEncodeSrcKHR: return "VideoEncodeSrcKHR";
2784       case ImageUsageFlagBits::eVideoEncodeDpbKHR: return "VideoEncodeDpbKHR";
2785 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2786       case ImageUsageFlagBits::eInvocationMaskHUAWEI: return "InvocationMaskHUAWEI";
2787       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2788     }
2789   }
2790 
2791   enum class InternalAllocationType
2792   {
2793     eExecutable = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE
2794   };
2795 
to_string(InternalAllocationType value)2796   VULKAN_HPP_INLINE std::string to_string( InternalAllocationType value )
2797   {
2798     switch ( value )
2799     {
2800       case InternalAllocationType::eExecutable: return "Executable";
2801       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2802     }
2803   }
2804 
2805   enum class MemoryHeapFlagBits : VkMemoryHeapFlags
2806   {
2807     eDeviceLocal      = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,
2808     eMultiInstance    = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
2809     eMultiInstanceKHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR
2810   };
2811 
to_string(MemoryHeapFlagBits value)2812   VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlagBits value )
2813   {
2814     switch ( value )
2815     {
2816       case MemoryHeapFlagBits::eDeviceLocal: return "DeviceLocal";
2817       case MemoryHeapFlagBits::eMultiInstance: return "MultiInstance";
2818       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2819     }
2820   }
2821 
2822   enum class MemoryPropertyFlagBits : VkMemoryPropertyFlags
2823   {
2824     eDeviceLocal       = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
2825     eHostVisible       = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
2826     eHostCoherent      = VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
2827     eHostCached        = VK_MEMORY_PROPERTY_HOST_CACHED_BIT,
2828     eLazilyAllocated   = VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,
2829     eProtected         = VK_MEMORY_PROPERTY_PROTECTED_BIT,
2830     eDeviceCoherentAMD = VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,
2831     eDeviceUncachedAMD = VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD,
2832     eRdmaCapableNV     = VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV
2833   };
2834 
to_string(MemoryPropertyFlagBits value)2835   VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlagBits value )
2836   {
2837     switch ( value )
2838     {
2839       case MemoryPropertyFlagBits::eDeviceLocal: return "DeviceLocal";
2840       case MemoryPropertyFlagBits::eHostVisible: return "HostVisible";
2841       case MemoryPropertyFlagBits::eHostCoherent: return "HostCoherent";
2842       case MemoryPropertyFlagBits::eHostCached: return "HostCached";
2843       case MemoryPropertyFlagBits::eLazilyAllocated: return "LazilyAllocated";
2844       case MemoryPropertyFlagBits::eProtected: return "Protected";
2845       case MemoryPropertyFlagBits::eDeviceCoherentAMD: return "DeviceCoherentAMD";
2846       case MemoryPropertyFlagBits::eDeviceUncachedAMD: return "DeviceUncachedAMD";
2847       case MemoryPropertyFlagBits::eRdmaCapableNV: return "RdmaCapableNV";
2848       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2849     }
2850   }
2851 
2852   enum class PhysicalDeviceType
2853   {
2854     eOther         = VK_PHYSICAL_DEVICE_TYPE_OTHER,
2855     eIntegratedGpu = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU,
2856     eDiscreteGpu   = VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
2857     eVirtualGpu    = VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU,
2858     eCpu           = VK_PHYSICAL_DEVICE_TYPE_CPU
2859   };
2860 
to_string(PhysicalDeviceType value)2861   VULKAN_HPP_INLINE std::string to_string( PhysicalDeviceType value )
2862   {
2863     switch ( value )
2864     {
2865       case PhysicalDeviceType::eOther: return "Other";
2866       case PhysicalDeviceType::eIntegratedGpu: return "IntegratedGpu";
2867       case PhysicalDeviceType::eDiscreteGpu: return "DiscreteGpu";
2868       case PhysicalDeviceType::eVirtualGpu: return "VirtualGpu";
2869       case PhysicalDeviceType::eCpu: return "Cpu";
2870       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2871     }
2872   }
2873 
2874   enum class QueueFlagBits : VkQueueFlags
2875   {
2876     eGraphics      = VK_QUEUE_GRAPHICS_BIT,
2877     eCompute       = VK_QUEUE_COMPUTE_BIT,
2878     eTransfer      = VK_QUEUE_TRANSFER_BIT,
2879     eSparseBinding = VK_QUEUE_SPARSE_BINDING_BIT,
2880     eProtected     = VK_QUEUE_PROTECTED_BIT,
2881 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2882     eVideoDecodeKHR = VK_QUEUE_VIDEO_DECODE_BIT_KHR,
2883     eVideoEncodeKHR = VK_QUEUE_VIDEO_ENCODE_BIT_KHR
2884 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2885   };
2886 
to_string(QueueFlagBits value)2887   VULKAN_HPP_INLINE std::string to_string( QueueFlagBits value )
2888   {
2889     switch ( value )
2890     {
2891       case QueueFlagBits::eGraphics: return "Graphics";
2892       case QueueFlagBits::eCompute: return "Compute";
2893       case QueueFlagBits::eTransfer: return "Transfer";
2894       case QueueFlagBits::eSparseBinding: return "SparseBinding";
2895       case QueueFlagBits::eProtected: return "Protected";
2896 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2897       case QueueFlagBits::eVideoDecodeKHR: return "VideoDecodeKHR";
2898       case QueueFlagBits::eVideoEncodeKHR: return "VideoEncodeKHR";
2899 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2900       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2901     }
2902   }
2903 
2904   enum class SampleCountFlagBits : VkSampleCountFlags
2905   {
2906     e1  = VK_SAMPLE_COUNT_1_BIT,
2907     e2  = VK_SAMPLE_COUNT_2_BIT,
2908     e4  = VK_SAMPLE_COUNT_4_BIT,
2909     e8  = VK_SAMPLE_COUNT_8_BIT,
2910     e16 = VK_SAMPLE_COUNT_16_BIT,
2911     e32 = VK_SAMPLE_COUNT_32_BIT,
2912     e64 = VK_SAMPLE_COUNT_64_BIT
2913   };
2914 
to_string(SampleCountFlagBits value)2915   VULKAN_HPP_INLINE std::string to_string( SampleCountFlagBits value )
2916   {
2917     switch ( value )
2918     {
2919       case SampleCountFlagBits::e1: return "1";
2920       case SampleCountFlagBits::e2: return "2";
2921       case SampleCountFlagBits::e4: return "4";
2922       case SampleCountFlagBits::e8: return "8";
2923       case SampleCountFlagBits::e16: return "16";
2924       case SampleCountFlagBits::e32: return "32";
2925       case SampleCountFlagBits::e64: return "64";
2926       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2927     }
2928   }
2929 
2930   enum class SystemAllocationScope
2931   {
2932     eCommand  = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
2933     eObject   = VK_SYSTEM_ALLOCATION_SCOPE_OBJECT,
2934     eCache    = VK_SYSTEM_ALLOCATION_SCOPE_CACHE,
2935     eDevice   = VK_SYSTEM_ALLOCATION_SCOPE_DEVICE,
2936     eInstance = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE
2937   };
2938 
to_string(SystemAllocationScope value)2939   VULKAN_HPP_INLINE std::string to_string( SystemAllocationScope value )
2940   {
2941     switch ( value )
2942     {
2943       case SystemAllocationScope::eCommand: return "Command";
2944       case SystemAllocationScope::eObject: return "Object";
2945       case SystemAllocationScope::eCache: return "Cache";
2946       case SystemAllocationScope::eDevice: return "Device";
2947       case SystemAllocationScope::eInstance: return "Instance";
2948       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2949     }
2950   }
2951 
2952   enum class InstanceCreateFlagBits
2953   {
2954   };
2955 
to_string(InstanceCreateFlagBits)2956   VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlagBits )
2957   {
2958     return "(void)";
2959   }
2960 
2961   enum class DeviceCreateFlagBits
2962   {
2963   };
2964 
to_string(DeviceCreateFlagBits)2965   VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlagBits )
2966   {
2967     return "(void)";
2968   }
2969 
2970   enum class PipelineStageFlagBits : VkPipelineStageFlags
2971   {
2972     eTopOfPipe                        = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
2973     eDrawIndirect                     = VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,
2974     eVertexInput                      = VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,
2975     eVertexShader                     = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,
2976     eTessellationControlShader        = VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,
2977     eTessellationEvaluationShader     = VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,
2978     eGeometryShader                   = VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,
2979     eFragmentShader                   = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
2980     eEarlyFragmentTests               = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,
2981     eLateFragmentTests                = VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
2982     eColorAttachmentOutput            = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
2983     eComputeShader                    = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
2984     eTransfer                         = VK_PIPELINE_STAGE_TRANSFER_BIT,
2985     eBottomOfPipe                     = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
2986     eHost                             = VK_PIPELINE_STAGE_HOST_BIT,
2987     eAllGraphics                      = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,
2988     eAllCommands                      = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,
2989     eTransformFeedbackEXT             = VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,
2990     eConditionalRenderingEXT          = VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,
2991     eAccelerationStructureBuildKHR    = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
2992     eRayTracingShaderKHR              = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
2993     eTaskShaderNV                     = VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV,
2994     eMeshShaderNV                     = VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV,
2995     eFragmentDensityProcessEXT        = VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,
2996     eFragmentShadingRateAttachmentKHR = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2997     eCommandPreprocessNV              = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,
2998     eNoneKHR                          = VK_PIPELINE_STAGE_NONE_KHR,
2999     eAccelerationStructureBuildNV     = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
3000     eRayTracingShaderNV               = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV,
3001     eShadingRateImageNV               = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV
3002   };
3003 
to_string(PipelineStageFlagBits value)3004   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlagBits value )
3005   {
3006     switch ( value )
3007     {
3008       case PipelineStageFlagBits::eTopOfPipe: return "TopOfPipe";
3009       case PipelineStageFlagBits::eDrawIndirect: return "DrawIndirect";
3010       case PipelineStageFlagBits::eVertexInput: return "VertexInput";
3011       case PipelineStageFlagBits::eVertexShader: return "VertexShader";
3012       case PipelineStageFlagBits::eTessellationControlShader: return "TessellationControlShader";
3013       case PipelineStageFlagBits::eTessellationEvaluationShader: return "TessellationEvaluationShader";
3014       case PipelineStageFlagBits::eGeometryShader: return "GeometryShader";
3015       case PipelineStageFlagBits::eFragmentShader: return "FragmentShader";
3016       case PipelineStageFlagBits::eEarlyFragmentTests: return "EarlyFragmentTests";
3017       case PipelineStageFlagBits::eLateFragmentTests: return "LateFragmentTests";
3018       case PipelineStageFlagBits::eColorAttachmentOutput: return "ColorAttachmentOutput";
3019       case PipelineStageFlagBits::eComputeShader: return "ComputeShader";
3020       case PipelineStageFlagBits::eTransfer: return "Transfer";
3021       case PipelineStageFlagBits::eBottomOfPipe: return "BottomOfPipe";
3022       case PipelineStageFlagBits::eHost: return "Host";
3023       case PipelineStageFlagBits::eAllGraphics: return "AllGraphics";
3024       case PipelineStageFlagBits::eAllCommands: return "AllCommands";
3025       case PipelineStageFlagBits::eTransformFeedbackEXT: return "TransformFeedbackEXT";
3026       case PipelineStageFlagBits::eConditionalRenderingEXT: return "ConditionalRenderingEXT";
3027       case PipelineStageFlagBits::eAccelerationStructureBuildKHR: return "AccelerationStructureBuildKHR";
3028       case PipelineStageFlagBits::eRayTracingShaderKHR: return "RayTracingShaderKHR";
3029       case PipelineStageFlagBits::eTaskShaderNV: return "TaskShaderNV";
3030       case PipelineStageFlagBits::eMeshShaderNV: return "MeshShaderNV";
3031       case PipelineStageFlagBits::eFragmentDensityProcessEXT: return "FragmentDensityProcessEXT";
3032       case PipelineStageFlagBits::eFragmentShadingRateAttachmentKHR: return "FragmentShadingRateAttachmentKHR";
3033       case PipelineStageFlagBits::eCommandPreprocessNV: return "CommandPreprocessNV";
3034       case PipelineStageFlagBits::eNoneKHR: return "NoneKHR";
3035       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3036     }
3037   }
3038 
3039   enum class MemoryMapFlagBits : VkMemoryMapFlags
3040   {
3041   };
3042 
to_string(MemoryMapFlagBits)3043   VULKAN_HPP_INLINE std::string to_string( MemoryMapFlagBits )
3044   {
3045     return "(void)";
3046   }
3047 
3048   enum class ImageAspectFlagBits : VkImageAspectFlags
3049   {
3050     eColor           = VK_IMAGE_ASPECT_COLOR_BIT,
3051     eDepth           = VK_IMAGE_ASPECT_DEPTH_BIT,
3052     eStencil         = VK_IMAGE_ASPECT_STENCIL_BIT,
3053     eMetadata        = VK_IMAGE_ASPECT_METADATA_BIT,
3054     ePlane0          = VK_IMAGE_ASPECT_PLANE_0_BIT,
3055     ePlane1          = VK_IMAGE_ASPECT_PLANE_1_BIT,
3056     ePlane2          = VK_IMAGE_ASPECT_PLANE_2_BIT,
3057     eMemoryPlane0EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,
3058     eMemoryPlane1EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,
3059     eMemoryPlane2EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,
3060     eMemoryPlane3EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,
3061     ePlane0KHR       = VK_IMAGE_ASPECT_PLANE_0_BIT_KHR,
3062     ePlane1KHR       = VK_IMAGE_ASPECT_PLANE_1_BIT_KHR,
3063     ePlane2KHR       = VK_IMAGE_ASPECT_PLANE_2_BIT_KHR
3064   };
3065 
to_string(ImageAspectFlagBits value)3066   VULKAN_HPP_INLINE std::string to_string( ImageAspectFlagBits value )
3067   {
3068     switch ( value )
3069     {
3070       case ImageAspectFlagBits::eColor: return "Color";
3071       case ImageAspectFlagBits::eDepth: return "Depth";
3072       case ImageAspectFlagBits::eStencil: return "Stencil";
3073       case ImageAspectFlagBits::eMetadata: return "Metadata";
3074       case ImageAspectFlagBits::ePlane0: return "Plane0";
3075       case ImageAspectFlagBits::ePlane1: return "Plane1";
3076       case ImageAspectFlagBits::ePlane2: return "Plane2";
3077       case ImageAspectFlagBits::eMemoryPlane0EXT: return "MemoryPlane0EXT";
3078       case ImageAspectFlagBits::eMemoryPlane1EXT: return "MemoryPlane1EXT";
3079       case ImageAspectFlagBits::eMemoryPlane2EXT: return "MemoryPlane2EXT";
3080       case ImageAspectFlagBits::eMemoryPlane3EXT: return "MemoryPlane3EXT";
3081       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3082     }
3083   }
3084 
3085   enum class SparseImageFormatFlagBits : VkSparseImageFormatFlags
3086   {
3087     eSingleMiptail        = VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,
3088     eAlignedMipSize       = VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,
3089     eNonstandardBlockSize = VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT
3090   };
3091 
to_string(SparseImageFormatFlagBits value)3092   VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlagBits value )
3093   {
3094     switch ( value )
3095     {
3096       case SparseImageFormatFlagBits::eSingleMiptail: return "SingleMiptail";
3097       case SparseImageFormatFlagBits::eAlignedMipSize: return "AlignedMipSize";
3098       case SparseImageFormatFlagBits::eNonstandardBlockSize: return "NonstandardBlockSize";
3099       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3100     }
3101   }
3102 
3103   enum class SparseMemoryBindFlagBits : VkSparseMemoryBindFlags
3104   {
3105     eMetadata = VK_SPARSE_MEMORY_BIND_METADATA_BIT
3106   };
3107 
to_string(SparseMemoryBindFlagBits value)3108   VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlagBits value )
3109   {
3110     switch ( value )
3111     {
3112       case SparseMemoryBindFlagBits::eMetadata: return "Metadata";
3113       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3114     }
3115   }
3116 
3117   enum class FenceCreateFlagBits : VkFenceCreateFlags
3118   {
3119     eSignaled = VK_FENCE_CREATE_SIGNALED_BIT
3120   };
3121 
to_string(FenceCreateFlagBits value)3122   VULKAN_HPP_INLINE std::string to_string( FenceCreateFlagBits value )
3123   {
3124     switch ( value )
3125     {
3126       case FenceCreateFlagBits::eSignaled: return "Signaled";
3127       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3128     }
3129   }
3130 
3131   enum class SemaphoreCreateFlagBits : VkSemaphoreCreateFlags
3132   {
3133   };
3134 
to_string(SemaphoreCreateFlagBits)3135   VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlagBits )
3136   {
3137     return "(void)";
3138   }
3139 
3140   enum class EventCreateFlagBits : VkEventCreateFlags
3141   {
3142     eDeviceOnlyKHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR
3143   };
3144 
to_string(EventCreateFlagBits value)3145   VULKAN_HPP_INLINE std::string to_string( EventCreateFlagBits value )
3146   {
3147     switch ( value )
3148     {
3149       case EventCreateFlagBits::eDeviceOnlyKHR: return "DeviceOnlyKHR";
3150       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3151     }
3152   }
3153 
3154   enum class QueryPipelineStatisticFlagBits : VkQueryPipelineStatisticFlags
3155   {
3156     eInputAssemblyVertices            = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,
3157     eInputAssemblyPrimitives          = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,
3158     eVertexShaderInvocations          = VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,
3159     eGeometryShaderInvocations        = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,
3160     eGeometryShaderPrimitives         = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,
3161     eClippingInvocations              = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,
3162     eClippingPrimitives               = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,
3163     eFragmentShaderInvocations        = VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,
3164     eTessellationControlShaderPatches = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,
3165     eTessellationEvaluationShaderInvocations =
3166       VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,
3167     eComputeShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT
3168   };
3169 
to_string(QueryPipelineStatisticFlagBits value)3170   VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlagBits value )
3171   {
3172     switch ( value )
3173     {
3174       case QueryPipelineStatisticFlagBits::eInputAssemblyVertices: return "InputAssemblyVertices";
3175       case QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives: return "InputAssemblyPrimitives";
3176       case QueryPipelineStatisticFlagBits::eVertexShaderInvocations: return "VertexShaderInvocations";
3177       case QueryPipelineStatisticFlagBits::eGeometryShaderInvocations: return "GeometryShaderInvocations";
3178       case QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives: return "GeometryShaderPrimitives";
3179       case QueryPipelineStatisticFlagBits::eClippingInvocations: return "ClippingInvocations";
3180       case QueryPipelineStatisticFlagBits::eClippingPrimitives: return "ClippingPrimitives";
3181       case QueryPipelineStatisticFlagBits::eFragmentShaderInvocations: return "FragmentShaderInvocations";
3182       case QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches: return "TessellationControlShaderPatches";
3183       case QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations:
3184         return "TessellationEvaluationShaderInvocations";
3185       case QueryPipelineStatisticFlagBits::eComputeShaderInvocations: return "ComputeShaderInvocations";
3186       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3187     }
3188   }
3189 
3190   enum class QueryResultFlagBits : VkQueryResultFlags
3191   {
3192     e64               = VK_QUERY_RESULT_64_BIT,
3193     eWait             = VK_QUERY_RESULT_WAIT_BIT,
3194     eWithAvailability = VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,
3195     ePartial          = VK_QUERY_RESULT_PARTIAL_BIT,
3196 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3197     eWithStatusKHR = VK_QUERY_RESULT_WITH_STATUS_BIT_KHR
3198 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3199   };
3200 
to_string(QueryResultFlagBits value)3201   VULKAN_HPP_INLINE std::string to_string( QueryResultFlagBits value )
3202   {
3203     switch ( value )
3204     {
3205       case QueryResultFlagBits::e64: return "64";
3206       case QueryResultFlagBits::eWait: return "Wait";
3207       case QueryResultFlagBits::eWithAvailability: return "WithAvailability";
3208       case QueryResultFlagBits::ePartial: return "Partial";
3209 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3210       case QueryResultFlagBits::eWithStatusKHR: return "WithStatusKHR";
3211 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3212       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3213     }
3214   }
3215 
3216   enum class QueryType
3217   {
3218     eOcclusion          = VK_QUERY_TYPE_OCCLUSION,
3219     ePipelineStatistics = VK_QUERY_TYPE_PIPELINE_STATISTICS,
3220     eTimestamp          = VK_QUERY_TYPE_TIMESTAMP,
3221 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3222     eResultStatusOnlyKHR = VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR,
3223 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3224     eTransformFeedbackStreamEXT                = VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT,
3225     ePerformanceQueryKHR                       = VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR,
3226     eAccelerationStructureCompactedSizeKHR     = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR,
3227     eAccelerationStructureSerializationSizeKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR,
3228     eAccelerationStructureCompactedSizeNV      = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV,
3229     ePerformanceQueryINTEL                     = VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL,
3230 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3231     eVideoEncodeBitstreamBufferRangeKHR = VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR
3232 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3233   };
3234 
to_string(QueryType value)3235   VULKAN_HPP_INLINE std::string to_string( QueryType value )
3236   {
3237     switch ( value )
3238     {
3239       case QueryType::eOcclusion: return "Occlusion";
3240       case QueryType::ePipelineStatistics: return "PipelineStatistics";
3241       case QueryType::eTimestamp: return "Timestamp";
3242 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3243       case QueryType::eResultStatusOnlyKHR: return "ResultStatusOnlyKHR";
3244 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3245       case QueryType::eTransformFeedbackStreamEXT: return "TransformFeedbackStreamEXT";
3246       case QueryType::ePerformanceQueryKHR: return "PerformanceQueryKHR";
3247       case QueryType::eAccelerationStructureCompactedSizeKHR: return "AccelerationStructureCompactedSizeKHR";
3248       case QueryType::eAccelerationStructureSerializationSizeKHR: return "AccelerationStructureSerializationSizeKHR";
3249       case QueryType::eAccelerationStructureCompactedSizeNV: return "AccelerationStructureCompactedSizeNV";
3250       case QueryType::ePerformanceQueryINTEL: return "PerformanceQueryINTEL";
3251 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3252       case QueryType::eVideoEncodeBitstreamBufferRangeKHR: return "VideoEncodeBitstreamBufferRangeKHR";
3253 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3254       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3255     }
3256   }
3257 
3258   enum class QueryPoolCreateFlagBits
3259   {
3260   };
3261 
to_string(QueryPoolCreateFlagBits)3262   VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlagBits )
3263   {
3264     return "(void)";
3265   }
3266 
3267   enum class BufferCreateFlagBits : VkBufferCreateFlags
3268   {
3269     eSparseBinding                 = VK_BUFFER_CREATE_SPARSE_BINDING_BIT,
3270     eSparseResidency               = VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,
3271     eSparseAliased                 = VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,
3272     eProtected                     = VK_BUFFER_CREATE_PROTECTED_BIT,
3273     eDeviceAddressCaptureReplay    = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
3274     eDeviceAddressCaptureReplayEXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT,
3275     eDeviceAddressCaptureReplayKHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR
3276   };
3277 
to_string(BufferCreateFlagBits value)3278   VULKAN_HPP_INLINE std::string to_string( BufferCreateFlagBits value )
3279   {
3280     switch ( value )
3281     {
3282       case BufferCreateFlagBits::eSparseBinding: return "SparseBinding";
3283       case BufferCreateFlagBits::eSparseResidency: return "SparseResidency";
3284       case BufferCreateFlagBits::eSparseAliased: return "SparseAliased";
3285       case BufferCreateFlagBits::eProtected: return "Protected";
3286       case BufferCreateFlagBits::eDeviceAddressCaptureReplay: return "DeviceAddressCaptureReplay";
3287       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3288     }
3289   }
3290 
3291   enum class BufferUsageFlagBits : VkBufferUsageFlags
3292   {
3293     eTransferSrc         = VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
3294     eTransferDst         = VK_BUFFER_USAGE_TRANSFER_DST_BIT,
3295     eUniformTexelBuffer  = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,
3296     eStorageTexelBuffer  = VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,
3297     eUniformBuffer       = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
3298     eStorageBuffer       = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
3299     eIndexBuffer         = VK_BUFFER_USAGE_INDEX_BUFFER_BIT,
3300     eVertexBuffer        = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
3301     eIndirectBuffer      = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,
3302     eShaderDeviceAddress = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
3303 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3304     eVideoDecodeSrcKHR = VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR,
3305     eVideoDecodeDstKHR = VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR,
3306 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3307     eTransformFeedbackBufferEXT                 = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,
3308     eTransformFeedbackCounterBufferEXT          = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,
3309     eConditionalRenderingEXT                    = VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,
3310     eAccelerationStructureBuildInputReadOnlyKHR = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR,
3311     eAccelerationStructureStorageKHR            = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,
3312     eShaderBindingTableKHR                      = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
3313 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3314     eVideoEncodeDstKHR = VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR,
3315     eVideoEncodeSrcKHR = VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,
3316 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3317     eRayTracingNV           = VK_BUFFER_USAGE_RAY_TRACING_BIT_NV,
3318     eShaderDeviceAddressEXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT,
3319     eShaderDeviceAddressKHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR
3320   };
3321 
to_string(BufferUsageFlagBits value)3322   VULKAN_HPP_INLINE std::string to_string( BufferUsageFlagBits value )
3323   {
3324     switch ( value )
3325     {
3326       case BufferUsageFlagBits::eTransferSrc: return "TransferSrc";
3327       case BufferUsageFlagBits::eTransferDst: return "TransferDst";
3328       case BufferUsageFlagBits::eUniformTexelBuffer: return "UniformTexelBuffer";
3329       case BufferUsageFlagBits::eStorageTexelBuffer: return "StorageTexelBuffer";
3330       case BufferUsageFlagBits::eUniformBuffer: return "UniformBuffer";
3331       case BufferUsageFlagBits::eStorageBuffer: return "StorageBuffer";
3332       case BufferUsageFlagBits::eIndexBuffer: return "IndexBuffer";
3333       case BufferUsageFlagBits::eVertexBuffer: return "VertexBuffer";
3334       case BufferUsageFlagBits::eIndirectBuffer: return "IndirectBuffer";
3335       case BufferUsageFlagBits::eShaderDeviceAddress: return "ShaderDeviceAddress";
3336 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3337       case BufferUsageFlagBits::eVideoDecodeSrcKHR: return "VideoDecodeSrcKHR";
3338       case BufferUsageFlagBits::eVideoDecodeDstKHR: return "VideoDecodeDstKHR";
3339 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3340       case BufferUsageFlagBits::eTransformFeedbackBufferEXT: return "TransformFeedbackBufferEXT";
3341       case BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT: return "TransformFeedbackCounterBufferEXT";
3342       case BufferUsageFlagBits::eConditionalRenderingEXT: return "ConditionalRenderingEXT";
3343       case BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR:
3344         return "AccelerationStructureBuildInputReadOnlyKHR";
3345       case BufferUsageFlagBits::eAccelerationStructureStorageKHR: return "AccelerationStructureStorageKHR";
3346       case BufferUsageFlagBits::eShaderBindingTableKHR: return "ShaderBindingTableKHR";
3347 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3348       case BufferUsageFlagBits::eVideoEncodeDstKHR: return "VideoEncodeDstKHR";
3349       case BufferUsageFlagBits::eVideoEncodeSrcKHR: return "VideoEncodeSrcKHR";
3350 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3351       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3352     }
3353   }
3354 
3355   enum class SharingMode
3356   {
3357     eExclusive  = VK_SHARING_MODE_EXCLUSIVE,
3358     eConcurrent = VK_SHARING_MODE_CONCURRENT
3359   };
3360 
to_string(SharingMode value)3361   VULKAN_HPP_INLINE std::string to_string( SharingMode value )
3362   {
3363     switch ( value )
3364     {
3365       case SharingMode::eExclusive: return "Exclusive";
3366       case SharingMode::eConcurrent: return "Concurrent";
3367       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3368     }
3369   }
3370 
3371   enum class BufferViewCreateFlagBits : VkBufferViewCreateFlags
3372   {
3373   };
3374 
to_string(BufferViewCreateFlagBits)3375   VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlagBits )
3376   {
3377     return "(void)";
3378   }
3379 
3380   enum class ImageLayout
3381   {
3382     eUndefined                             = VK_IMAGE_LAYOUT_UNDEFINED,
3383     eGeneral                               = VK_IMAGE_LAYOUT_GENERAL,
3384     eColorAttachmentOptimal                = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
3385     eDepthStencilAttachmentOptimal         = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
3386     eDepthStencilReadOnlyOptimal           = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,
3387     eShaderReadOnlyOptimal                 = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
3388     eTransferSrcOptimal                    = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
3389     eTransferDstOptimal                    = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
3390     ePreinitialized                        = VK_IMAGE_LAYOUT_PREINITIALIZED,
3391     eDepthReadOnlyStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
3392     eDepthAttachmentStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
3393     eDepthAttachmentOptimal                = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
3394     eDepthReadOnlyOptimal                  = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
3395     eStencilAttachmentOptimal              = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
3396     eStencilReadOnlyOptimal                = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
3397     ePresentSrcKHR                         = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR,
3398 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3399     eVideoDecodeDstKHR = VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR,
3400     eVideoDecodeSrcKHR = VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR,
3401     eVideoDecodeDpbKHR = VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR,
3402 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3403     eSharedPresentKHR                        = VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
3404     eFragmentDensityMapOptimalEXT            = VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT,
3405     eFragmentShadingRateAttachmentOptimalKHR = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
3406 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3407     eVideoEncodeDstKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR,
3408     eVideoEncodeSrcKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR,
3409     eVideoEncodeDpbKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR,
3410 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3411     eReadOnlyOptimalKHR                       = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR,
3412     eAttachmentOptimalKHR                     = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR,
3413     eDepthAttachmentOptimalKHR                = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR,
3414     eDepthAttachmentStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR,
3415     eDepthReadOnlyOptimalKHR                  = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR,
3416     eDepthReadOnlyStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR,
3417     eShadingRateOptimalNV                     = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV,
3418     eStencilAttachmentOptimalKHR              = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR,
3419     eStencilReadOnlyOptimalKHR                = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR
3420   };
3421 
to_string(ImageLayout value)3422   VULKAN_HPP_INLINE std::string to_string( ImageLayout value )
3423   {
3424     switch ( value )
3425     {
3426       case ImageLayout::eUndefined: return "Undefined";
3427       case ImageLayout::eGeneral: return "General";
3428       case ImageLayout::eColorAttachmentOptimal: return "ColorAttachmentOptimal";
3429       case ImageLayout::eDepthStencilAttachmentOptimal: return "DepthStencilAttachmentOptimal";
3430       case ImageLayout::eDepthStencilReadOnlyOptimal: return "DepthStencilReadOnlyOptimal";
3431       case ImageLayout::eShaderReadOnlyOptimal: return "ShaderReadOnlyOptimal";
3432       case ImageLayout::eTransferSrcOptimal: return "TransferSrcOptimal";
3433       case ImageLayout::eTransferDstOptimal: return "TransferDstOptimal";
3434       case ImageLayout::ePreinitialized: return "Preinitialized";
3435       case ImageLayout::eDepthReadOnlyStencilAttachmentOptimal: return "DepthReadOnlyStencilAttachmentOptimal";
3436       case ImageLayout::eDepthAttachmentStencilReadOnlyOptimal: return "DepthAttachmentStencilReadOnlyOptimal";
3437       case ImageLayout::eDepthAttachmentOptimal: return "DepthAttachmentOptimal";
3438       case ImageLayout::eDepthReadOnlyOptimal: return "DepthReadOnlyOptimal";
3439       case ImageLayout::eStencilAttachmentOptimal: return "StencilAttachmentOptimal";
3440       case ImageLayout::eStencilReadOnlyOptimal: return "StencilReadOnlyOptimal";
3441       case ImageLayout::ePresentSrcKHR: return "PresentSrcKHR";
3442 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3443       case ImageLayout::eVideoDecodeDstKHR: return "VideoDecodeDstKHR";
3444       case ImageLayout::eVideoDecodeSrcKHR: return "VideoDecodeSrcKHR";
3445       case ImageLayout::eVideoDecodeDpbKHR: return "VideoDecodeDpbKHR";
3446 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3447       case ImageLayout::eSharedPresentKHR: return "SharedPresentKHR";
3448       case ImageLayout::eFragmentDensityMapOptimalEXT: return "FragmentDensityMapOptimalEXT";
3449       case ImageLayout::eFragmentShadingRateAttachmentOptimalKHR: return "FragmentShadingRateAttachmentOptimalKHR";
3450 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3451       case ImageLayout::eVideoEncodeDstKHR: return "VideoEncodeDstKHR";
3452       case ImageLayout::eVideoEncodeSrcKHR: return "VideoEncodeSrcKHR";
3453       case ImageLayout::eVideoEncodeDpbKHR: return "VideoEncodeDpbKHR";
3454 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3455       case ImageLayout::eReadOnlyOptimalKHR: return "ReadOnlyOptimalKHR";
3456       case ImageLayout::eAttachmentOptimalKHR: return "AttachmentOptimalKHR";
3457       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3458     }
3459   }
3460 
3461   enum class ComponentSwizzle
3462   {
3463     eIdentity = VK_COMPONENT_SWIZZLE_IDENTITY,
3464     eZero     = VK_COMPONENT_SWIZZLE_ZERO,
3465     eOne      = VK_COMPONENT_SWIZZLE_ONE,
3466     eR        = VK_COMPONENT_SWIZZLE_R,
3467     eG        = VK_COMPONENT_SWIZZLE_G,
3468     eB        = VK_COMPONENT_SWIZZLE_B,
3469     eA        = VK_COMPONENT_SWIZZLE_A
3470   };
3471 
to_string(ComponentSwizzle value)3472   VULKAN_HPP_INLINE std::string to_string( ComponentSwizzle value )
3473   {
3474     switch ( value )
3475     {
3476       case ComponentSwizzle::eIdentity: return "Identity";
3477       case ComponentSwizzle::eZero: return "Zero";
3478       case ComponentSwizzle::eOne: return "One";
3479       case ComponentSwizzle::eR: return "R";
3480       case ComponentSwizzle::eG: return "G";
3481       case ComponentSwizzle::eB: return "B";
3482       case ComponentSwizzle::eA: return "A";
3483       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3484     }
3485   }
3486 
3487   enum class ImageViewCreateFlagBits : VkImageViewCreateFlags
3488   {
3489     eFragmentDensityMapDynamicEXT  = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT,
3490     eFragmentDensityMapDeferredEXT = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT
3491   };
3492 
to_string(ImageViewCreateFlagBits value)3493   VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlagBits value )
3494   {
3495     switch ( value )
3496     {
3497       case ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT: return "FragmentDensityMapDynamicEXT";
3498       case ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT: return "FragmentDensityMapDeferredEXT";
3499       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3500     }
3501   }
3502 
3503   enum class ImageViewType
3504   {
3505     e1D        = VK_IMAGE_VIEW_TYPE_1D,
3506     e2D        = VK_IMAGE_VIEW_TYPE_2D,
3507     e3D        = VK_IMAGE_VIEW_TYPE_3D,
3508     eCube      = VK_IMAGE_VIEW_TYPE_CUBE,
3509     e1DArray   = VK_IMAGE_VIEW_TYPE_1D_ARRAY,
3510     e2DArray   = VK_IMAGE_VIEW_TYPE_2D_ARRAY,
3511     eCubeArray = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
3512   };
3513 
to_string(ImageViewType value)3514   VULKAN_HPP_INLINE std::string to_string( ImageViewType value )
3515   {
3516     switch ( value )
3517     {
3518       case ImageViewType::e1D: return "1D";
3519       case ImageViewType::e2D: return "2D";
3520       case ImageViewType::e3D: return "3D";
3521       case ImageViewType::eCube: return "Cube";
3522       case ImageViewType::e1DArray: return "1DArray";
3523       case ImageViewType::e2DArray: return "2DArray";
3524       case ImageViewType::eCubeArray: return "CubeArray";
3525       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3526     }
3527   }
3528 
3529   enum class ShaderModuleCreateFlagBits : VkShaderModuleCreateFlags
3530   {
3531   };
3532 
to_string(ShaderModuleCreateFlagBits)3533   VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlagBits )
3534   {
3535     return "(void)";
3536   }
3537 
3538   enum class BlendFactor
3539   {
3540     eZero                  = VK_BLEND_FACTOR_ZERO,
3541     eOne                   = VK_BLEND_FACTOR_ONE,
3542     eSrcColor              = VK_BLEND_FACTOR_SRC_COLOR,
3543     eOneMinusSrcColor      = VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR,
3544     eDstColor              = VK_BLEND_FACTOR_DST_COLOR,
3545     eOneMinusDstColor      = VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR,
3546     eSrcAlpha              = VK_BLEND_FACTOR_SRC_ALPHA,
3547     eOneMinusSrcAlpha      = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA,
3548     eDstAlpha              = VK_BLEND_FACTOR_DST_ALPHA,
3549     eOneMinusDstAlpha      = VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA,
3550     eConstantColor         = VK_BLEND_FACTOR_CONSTANT_COLOR,
3551     eOneMinusConstantColor = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,
3552     eConstantAlpha         = VK_BLEND_FACTOR_CONSTANT_ALPHA,
3553     eOneMinusConstantAlpha = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,
3554     eSrcAlphaSaturate      = VK_BLEND_FACTOR_SRC_ALPHA_SATURATE,
3555     eSrc1Color             = VK_BLEND_FACTOR_SRC1_COLOR,
3556     eOneMinusSrc1Color     = VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,
3557     eSrc1Alpha             = VK_BLEND_FACTOR_SRC1_ALPHA,
3558     eOneMinusSrc1Alpha     = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
3559   };
3560 
to_string(BlendFactor value)3561   VULKAN_HPP_INLINE std::string to_string( BlendFactor value )
3562   {
3563     switch ( value )
3564     {
3565       case BlendFactor::eZero: return "Zero";
3566       case BlendFactor::eOne: return "One";
3567       case BlendFactor::eSrcColor: return "SrcColor";
3568       case BlendFactor::eOneMinusSrcColor: return "OneMinusSrcColor";
3569       case BlendFactor::eDstColor: return "DstColor";
3570       case BlendFactor::eOneMinusDstColor: return "OneMinusDstColor";
3571       case BlendFactor::eSrcAlpha: return "SrcAlpha";
3572       case BlendFactor::eOneMinusSrcAlpha: return "OneMinusSrcAlpha";
3573       case BlendFactor::eDstAlpha: return "DstAlpha";
3574       case BlendFactor::eOneMinusDstAlpha: return "OneMinusDstAlpha";
3575       case BlendFactor::eConstantColor: return "ConstantColor";
3576       case BlendFactor::eOneMinusConstantColor: return "OneMinusConstantColor";
3577       case BlendFactor::eConstantAlpha: return "ConstantAlpha";
3578       case BlendFactor::eOneMinusConstantAlpha: return "OneMinusConstantAlpha";
3579       case BlendFactor::eSrcAlphaSaturate: return "SrcAlphaSaturate";
3580       case BlendFactor::eSrc1Color: return "Src1Color";
3581       case BlendFactor::eOneMinusSrc1Color: return "OneMinusSrc1Color";
3582       case BlendFactor::eSrc1Alpha: return "Src1Alpha";
3583       case BlendFactor::eOneMinusSrc1Alpha: return "OneMinusSrc1Alpha";
3584       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3585     }
3586   }
3587 
3588   enum class BlendOp
3589   {
3590     eAdd                 = VK_BLEND_OP_ADD,
3591     eSubtract            = VK_BLEND_OP_SUBTRACT,
3592     eReverseSubtract     = VK_BLEND_OP_REVERSE_SUBTRACT,
3593     eMin                 = VK_BLEND_OP_MIN,
3594     eMax                 = VK_BLEND_OP_MAX,
3595     eZeroEXT             = VK_BLEND_OP_ZERO_EXT,
3596     eSrcEXT              = VK_BLEND_OP_SRC_EXT,
3597     eDstEXT              = VK_BLEND_OP_DST_EXT,
3598     eSrcOverEXT          = VK_BLEND_OP_SRC_OVER_EXT,
3599     eDstOverEXT          = VK_BLEND_OP_DST_OVER_EXT,
3600     eSrcInEXT            = VK_BLEND_OP_SRC_IN_EXT,
3601     eDstInEXT            = VK_BLEND_OP_DST_IN_EXT,
3602     eSrcOutEXT           = VK_BLEND_OP_SRC_OUT_EXT,
3603     eDstOutEXT           = VK_BLEND_OP_DST_OUT_EXT,
3604     eSrcAtopEXT          = VK_BLEND_OP_SRC_ATOP_EXT,
3605     eDstAtopEXT          = VK_BLEND_OP_DST_ATOP_EXT,
3606     eXorEXT              = VK_BLEND_OP_XOR_EXT,
3607     eMultiplyEXT         = VK_BLEND_OP_MULTIPLY_EXT,
3608     eScreenEXT           = VK_BLEND_OP_SCREEN_EXT,
3609     eOverlayEXT          = VK_BLEND_OP_OVERLAY_EXT,
3610     eDarkenEXT           = VK_BLEND_OP_DARKEN_EXT,
3611     eLightenEXT          = VK_BLEND_OP_LIGHTEN_EXT,
3612     eColordodgeEXT       = VK_BLEND_OP_COLORDODGE_EXT,
3613     eColorburnEXT        = VK_BLEND_OP_COLORBURN_EXT,
3614     eHardlightEXT        = VK_BLEND_OP_HARDLIGHT_EXT,
3615     eSoftlightEXT        = VK_BLEND_OP_SOFTLIGHT_EXT,
3616     eDifferenceEXT       = VK_BLEND_OP_DIFFERENCE_EXT,
3617     eExclusionEXT        = VK_BLEND_OP_EXCLUSION_EXT,
3618     eInvertEXT           = VK_BLEND_OP_INVERT_EXT,
3619     eInvertRgbEXT        = VK_BLEND_OP_INVERT_RGB_EXT,
3620     eLineardodgeEXT      = VK_BLEND_OP_LINEARDODGE_EXT,
3621     eLinearburnEXT       = VK_BLEND_OP_LINEARBURN_EXT,
3622     eVividlightEXT       = VK_BLEND_OP_VIVIDLIGHT_EXT,
3623     eLinearlightEXT      = VK_BLEND_OP_LINEARLIGHT_EXT,
3624     ePinlightEXT         = VK_BLEND_OP_PINLIGHT_EXT,
3625     eHardmixEXT          = VK_BLEND_OP_HARDMIX_EXT,
3626     eHslHueEXT           = VK_BLEND_OP_HSL_HUE_EXT,
3627     eHslSaturationEXT    = VK_BLEND_OP_HSL_SATURATION_EXT,
3628     eHslColorEXT         = VK_BLEND_OP_HSL_COLOR_EXT,
3629     eHslLuminosityEXT    = VK_BLEND_OP_HSL_LUMINOSITY_EXT,
3630     ePlusEXT             = VK_BLEND_OP_PLUS_EXT,
3631     ePlusClampedEXT      = VK_BLEND_OP_PLUS_CLAMPED_EXT,
3632     ePlusClampedAlphaEXT = VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT,
3633     ePlusDarkerEXT       = VK_BLEND_OP_PLUS_DARKER_EXT,
3634     eMinusEXT            = VK_BLEND_OP_MINUS_EXT,
3635     eMinusClampedEXT     = VK_BLEND_OP_MINUS_CLAMPED_EXT,
3636     eContrastEXT         = VK_BLEND_OP_CONTRAST_EXT,
3637     eInvertOvgEXT        = VK_BLEND_OP_INVERT_OVG_EXT,
3638     eRedEXT              = VK_BLEND_OP_RED_EXT,
3639     eGreenEXT            = VK_BLEND_OP_GREEN_EXT,
3640     eBlueEXT             = VK_BLEND_OP_BLUE_EXT
3641   };
3642 
to_string(BlendOp value)3643   VULKAN_HPP_INLINE std::string to_string( BlendOp value )
3644   {
3645     switch ( value )
3646     {
3647       case BlendOp::eAdd: return "Add";
3648       case BlendOp::eSubtract: return "Subtract";
3649       case BlendOp::eReverseSubtract: return "ReverseSubtract";
3650       case BlendOp::eMin: return "Min";
3651       case BlendOp::eMax: return "Max";
3652       case BlendOp::eZeroEXT: return "ZeroEXT";
3653       case BlendOp::eSrcEXT: return "SrcEXT";
3654       case BlendOp::eDstEXT: return "DstEXT";
3655       case BlendOp::eSrcOverEXT: return "SrcOverEXT";
3656       case BlendOp::eDstOverEXT: return "DstOverEXT";
3657       case BlendOp::eSrcInEXT: return "SrcInEXT";
3658       case BlendOp::eDstInEXT: return "DstInEXT";
3659       case BlendOp::eSrcOutEXT: return "SrcOutEXT";
3660       case BlendOp::eDstOutEXT: return "DstOutEXT";
3661       case BlendOp::eSrcAtopEXT: return "SrcAtopEXT";
3662       case BlendOp::eDstAtopEXT: return "DstAtopEXT";
3663       case BlendOp::eXorEXT: return "XorEXT";
3664       case BlendOp::eMultiplyEXT: return "MultiplyEXT";
3665       case BlendOp::eScreenEXT: return "ScreenEXT";
3666       case BlendOp::eOverlayEXT: return "OverlayEXT";
3667       case BlendOp::eDarkenEXT: return "DarkenEXT";
3668       case BlendOp::eLightenEXT: return "LightenEXT";
3669       case BlendOp::eColordodgeEXT: return "ColordodgeEXT";
3670       case BlendOp::eColorburnEXT: return "ColorburnEXT";
3671       case BlendOp::eHardlightEXT: return "HardlightEXT";
3672       case BlendOp::eSoftlightEXT: return "SoftlightEXT";
3673       case BlendOp::eDifferenceEXT: return "DifferenceEXT";
3674       case BlendOp::eExclusionEXT: return "ExclusionEXT";
3675       case BlendOp::eInvertEXT: return "InvertEXT";
3676       case BlendOp::eInvertRgbEXT: return "InvertRgbEXT";
3677       case BlendOp::eLineardodgeEXT: return "LineardodgeEXT";
3678       case BlendOp::eLinearburnEXT: return "LinearburnEXT";
3679       case BlendOp::eVividlightEXT: return "VividlightEXT";
3680       case BlendOp::eLinearlightEXT: return "LinearlightEXT";
3681       case BlendOp::ePinlightEXT: return "PinlightEXT";
3682       case BlendOp::eHardmixEXT: return "HardmixEXT";
3683       case BlendOp::eHslHueEXT: return "HslHueEXT";
3684       case BlendOp::eHslSaturationEXT: return "HslSaturationEXT";
3685       case BlendOp::eHslColorEXT: return "HslColorEXT";
3686       case BlendOp::eHslLuminosityEXT: return "HslLuminosityEXT";
3687       case BlendOp::ePlusEXT: return "PlusEXT";
3688       case BlendOp::ePlusClampedEXT: return "PlusClampedEXT";
3689       case BlendOp::ePlusClampedAlphaEXT: return "PlusClampedAlphaEXT";
3690       case BlendOp::ePlusDarkerEXT: return "PlusDarkerEXT";
3691       case BlendOp::eMinusEXT: return "MinusEXT";
3692       case BlendOp::eMinusClampedEXT: return "MinusClampedEXT";
3693       case BlendOp::eContrastEXT: return "ContrastEXT";
3694       case BlendOp::eInvertOvgEXT: return "InvertOvgEXT";
3695       case BlendOp::eRedEXT: return "RedEXT";
3696       case BlendOp::eGreenEXT: return "GreenEXT";
3697       case BlendOp::eBlueEXT: return "BlueEXT";
3698       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3699     }
3700   }
3701 
3702   enum class ColorComponentFlagBits : VkColorComponentFlags
3703   {
3704     eR = VK_COLOR_COMPONENT_R_BIT,
3705     eG = VK_COLOR_COMPONENT_G_BIT,
3706     eB = VK_COLOR_COMPONENT_B_BIT,
3707     eA = VK_COLOR_COMPONENT_A_BIT
3708   };
3709 
to_string(ColorComponentFlagBits value)3710   VULKAN_HPP_INLINE std::string to_string( ColorComponentFlagBits value )
3711   {
3712     switch ( value )
3713     {
3714       case ColorComponentFlagBits::eR: return "R";
3715       case ColorComponentFlagBits::eG: return "G";
3716       case ColorComponentFlagBits::eB: return "B";
3717       case ColorComponentFlagBits::eA: return "A";
3718       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3719     }
3720   }
3721 
3722   enum class CompareOp
3723   {
3724     eNever          = VK_COMPARE_OP_NEVER,
3725     eLess           = VK_COMPARE_OP_LESS,
3726     eEqual          = VK_COMPARE_OP_EQUAL,
3727     eLessOrEqual    = VK_COMPARE_OP_LESS_OR_EQUAL,
3728     eGreater        = VK_COMPARE_OP_GREATER,
3729     eNotEqual       = VK_COMPARE_OP_NOT_EQUAL,
3730     eGreaterOrEqual = VK_COMPARE_OP_GREATER_OR_EQUAL,
3731     eAlways         = VK_COMPARE_OP_ALWAYS
3732   };
3733 
to_string(CompareOp value)3734   VULKAN_HPP_INLINE std::string to_string( CompareOp value )
3735   {
3736     switch ( value )
3737     {
3738       case CompareOp::eNever: return "Never";
3739       case CompareOp::eLess: return "Less";
3740       case CompareOp::eEqual: return "Equal";
3741       case CompareOp::eLessOrEqual: return "LessOrEqual";
3742       case CompareOp::eGreater: return "Greater";
3743       case CompareOp::eNotEqual: return "NotEqual";
3744       case CompareOp::eGreaterOrEqual: return "GreaterOrEqual";
3745       case CompareOp::eAlways: return "Always";
3746       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3747     }
3748   }
3749 
3750   enum class CullModeFlagBits : VkCullModeFlags
3751   {
3752     eNone         = VK_CULL_MODE_NONE,
3753     eFront        = VK_CULL_MODE_FRONT_BIT,
3754     eBack         = VK_CULL_MODE_BACK_BIT,
3755     eFrontAndBack = VK_CULL_MODE_FRONT_AND_BACK
3756   };
3757 
to_string(CullModeFlagBits value)3758   VULKAN_HPP_INLINE std::string to_string( CullModeFlagBits value )
3759   {
3760     switch ( value )
3761     {
3762       case CullModeFlagBits::eNone: return "None";
3763       case CullModeFlagBits::eFront: return "Front";
3764       case CullModeFlagBits::eBack: return "Back";
3765       case CullModeFlagBits::eFrontAndBack: return "FrontAndBack";
3766       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3767     }
3768   }
3769 
3770   enum class DynamicState
3771   {
3772     eViewport                       = VK_DYNAMIC_STATE_VIEWPORT,
3773     eScissor                        = VK_DYNAMIC_STATE_SCISSOR,
3774     eLineWidth                      = VK_DYNAMIC_STATE_LINE_WIDTH,
3775     eDepthBias                      = VK_DYNAMIC_STATE_DEPTH_BIAS,
3776     eBlendConstants                 = VK_DYNAMIC_STATE_BLEND_CONSTANTS,
3777     eDepthBounds                    = VK_DYNAMIC_STATE_DEPTH_BOUNDS,
3778     eStencilCompareMask             = VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK,
3779     eStencilWriteMask               = VK_DYNAMIC_STATE_STENCIL_WRITE_MASK,
3780     eStencilReference               = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
3781     eViewportWScalingNV             = VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV,
3782     eDiscardRectangleEXT            = VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT,
3783     eSampleLocationsEXT             = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT,
3784     eRayTracingPipelineStackSizeKHR = VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR,
3785     eViewportShadingRatePaletteNV   = VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV,
3786     eViewportCoarseSampleOrderNV    = VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV,
3787     eExclusiveScissorNV             = VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV,
3788     eFragmentShadingRateKHR         = VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR,
3789     eLineStippleEXT                 = VK_DYNAMIC_STATE_LINE_STIPPLE_EXT,
3790     eCullModeEXT                    = VK_DYNAMIC_STATE_CULL_MODE_EXT,
3791     eFrontFaceEXT                   = VK_DYNAMIC_STATE_FRONT_FACE_EXT,
3792     ePrimitiveTopologyEXT           = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT,
3793     eViewportWithCountEXT           = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT,
3794     eScissorWithCountEXT            = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT,
3795     eVertexInputBindingStrideEXT    = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT,
3796     eDepthTestEnableEXT             = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT,
3797     eDepthWriteEnableEXT            = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT,
3798     eDepthCompareOpEXT              = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT,
3799     eDepthBoundsTestEnableEXT       = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT,
3800     eStencilTestEnableEXT           = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT,
3801     eStencilOpEXT                   = VK_DYNAMIC_STATE_STENCIL_OP_EXT,
3802     eVertexInputEXT                 = VK_DYNAMIC_STATE_VERTEX_INPUT_EXT,
3803     ePatchControlPointsEXT          = VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT,
3804     eRasterizerDiscardEnableEXT     = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT,
3805     eDepthBiasEnableEXT             = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT,
3806     eLogicOpEXT                     = VK_DYNAMIC_STATE_LOGIC_OP_EXT,
3807     ePrimitiveRestartEnableEXT      = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT,
3808     eColorWriteEnableEXT            = VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT
3809   };
3810 
to_string(DynamicState value)3811   VULKAN_HPP_INLINE std::string to_string( DynamicState value )
3812   {
3813     switch ( value )
3814     {
3815       case DynamicState::eViewport: return "Viewport";
3816       case DynamicState::eScissor: return "Scissor";
3817       case DynamicState::eLineWidth: return "LineWidth";
3818       case DynamicState::eDepthBias: return "DepthBias";
3819       case DynamicState::eBlendConstants: return "BlendConstants";
3820       case DynamicState::eDepthBounds: return "DepthBounds";
3821       case DynamicState::eStencilCompareMask: return "StencilCompareMask";
3822       case DynamicState::eStencilWriteMask: return "StencilWriteMask";
3823       case DynamicState::eStencilReference: return "StencilReference";
3824       case DynamicState::eViewportWScalingNV: return "ViewportWScalingNV";
3825       case DynamicState::eDiscardRectangleEXT: return "DiscardRectangleEXT";
3826       case DynamicState::eSampleLocationsEXT: return "SampleLocationsEXT";
3827       case DynamicState::eRayTracingPipelineStackSizeKHR: return "RayTracingPipelineStackSizeKHR";
3828       case DynamicState::eViewportShadingRatePaletteNV: return "ViewportShadingRatePaletteNV";
3829       case DynamicState::eViewportCoarseSampleOrderNV: return "ViewportCoarseSampleOrderNV";
3830       case DynamicState::eExclusiveScissorNV: return "ExclusiveScissorNV";
3831       case DynamicState::eFragmentShadingRateKHR: return "FragmentShadingRateKHR";
3832       case DynamicState::eLineStippleEXT: return "LineStippleEXT";
3833       case DynamicState::eCullModeEXT: return "CullModeEXT";
3834       case DynamicState::eFrontFaceEXT: return "FrontFaceEXT";
3835       case DynamicState::ePrimitiveTopologyEXT: return "PrimitiveTopologyEXT";
3836       case DynamicState::eViewportWithCountEXT: return "ViewportWithCountEXT";
3837       case DynamicState::eScissorWithCountEXT: return "ScissorWithCountEXT";
3838       case DynamicState::eVertexInputBindingStrideEXT: return "VertexInputBindingStrideEXT";
3839       case DynamicState::eDepthTestEnableEXT: return "DepthTestEnableEXT";
3840       case DynamicState::eDepthWriteEnableEXT: return "DepthWriteEnableEXT";
3841       case DynamicState::eDepthCompareOpEXT: return "DepthCompareOpEXT";
3842       case DynamicState::eDepthBoundsTestEnableEXT: return "DepthBoundsTestEnableEXT";
3843       case DynamicState::eStencilTestEnableEXT: return "StencilTestEnableEXT";
3844       case DynamicState::eStencilOpEXT: return "StencilOpEXT";
3845       case DynamicState::eVertexInputEXT: return "VertexInputEXT";
3846       case DynamicState::ePatchControlPointsEXT: return "PatchControlPointsEXT";
3847       case DynamicState::eRasterizerDiscardEnableEXT: return "RasterizerDiscardEnableEXT";
3848       case DynamicState::eDepthBiasEnableEXT: return "DepthBiasEnableEXT";
3849       case DynamicState::eLogicOpEXT: return "LogicOpEXT";
3850       case DynamicState::ePrimitiveRestartEnableEXT: return "PrimitiveRestartEnableEXT";
3851       case DynamicState::eColorWriteEnableEXT: return "ColorWriteEnableEXT";
3852       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3853     }
3854   }
3855 
3856   enum class FrontFace
3857   {
3858     eCounterClockwise = VK_FRONT_FACE_COUNTER_CLOCKWISE,
3859     eClockwise        = VK_FRONT_FACE_CLOCKWISE
3860   };
3861 
to_string(FrontFace value)3862   VULKAN_HPP_INLINE std::string to_string( FrontFace value )
3863   {
3864     switch ( value )
3865     {
3866       case FrontFace::eCounterClockwise: return "CounterClockwise";
3867       case FrontFace::eClockwise: return "Clockwise";
3868       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3869     }
3870   }
3871 
3872   enum class LogicOp
3873   {
3874     eClear        = VK_LOGIC_OP_CLEAR,
3875     eAnd          = VK_LOGIC_OP_AND,
3876     eAndReverse   = VK_LOGIC_OP_AND_REVERSE,
3877     eCopy         = VK_LOGIC_OP_COPY,
3878     eAndInverted  = VK_LOGIC_OP_AND_INVERTED,
3879     eNoOp         = VK_LOGIC_OP_NO_OP,
3880     eXor          = VK_LOGIC_OP_XOR,
3881     eOr           = VK_LOGIC_OP_OR,
3882     eNor          = VK_LOGIC_OP_NOR,
3883     eEquivalent   = VK_LOGIC_OP_EQUIVALENT,
3884     eInvert       = VK_LOGIC_OP_INVERT,
3885     eOrReverse    = VK_LOGIC_OP_OR_REVERSE,
3886     eCopyInverted = VK_LOGIC_OP_COPY_INVERTED,
3887     eOrInverted   = VK_LOGIC_OP_OR_INVERTED,
3888     eNand         = VK_LOGIC_OP_NAND,
3889     eSet          = VK_LOGIC_OP_SET
3890   };
3891 
to_string(LogicOp value)3892   VULKAN_HPP_INLINE std::string to_string( LogicOp value )
3893   {
3894     switch ( value )
3895     {
3896       case LogicOp::eClear: return "Clear";
3897       case LogicOp::eAnd: return "And";
3898       case LogicOp::eAndReverse: return "AndReverse";
3899       case LogicOp::eCopy: return "Copy";
3900       case LogicOp::eAndInverted: return "AndInverted";
3901       case LogicOp::eNoOp: return "NoOp";
3902       case LogicOp::eXor: return "Xor";
3903       case LogicOp::eOr: return "Or";
3904       case LogicOp::eNor: return "Nor";
3905       case LogicOp::eEquivalent: return "Equivalent";
3906       case LogicOp::eInvert: return "Invert";
3907       case LogicOp::eOrReverse: return "OrReverse";
3908       case LogicOp::eCopyInverted: return "CopyInverted";
3909       case LogicOp::eOrInverted: return "OrInverted";
3910       case LogicOp::eNand: return "Nand";
3911       case LogicOp::eSet: return "Set";
3912       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3913     }
3914   }
3915 
3916   enum class PipelineCreateFlagBits : VkPipelineCreateFlags
3917   {
3918     eDisableOptimization      = VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,
3919     eAllowDerivatives         = VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,
3920     eDerivative               = VK_PIPELINE_CREATE_DERIVATIVE_BIT,
3921     eViewIndexFromDeviceIndex = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
3922     eDispatchBase             = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
3923     eVkPipelineRasterizationStateCreateFragmentShadingRateAttachmentKHR =
3924       VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
3925     eVkPipelineRasterizationStateCreateFragmentDensityMapAttachmentEXT =
3926       VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
3927     eRayTracingNoNullAnyHitShadersKHR       = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR,
3928     eRayTracingNoNullClosestHitShadersKHR   = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR,
3929     eRayTracingNoNullMissShadersKHR         = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR,
3930     eRayTracingNoNullIntersectionShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR,
3931     eRayTracingSkipTrianglesKHR             = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,
3932     eRayTracingSkipAabbsKHR                 = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR,
3933     eRayTracingShaderGroupHandleCaptureReplayKHR =
3934       VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR,
3935     eDeferCompileNV                    = VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,
3936     eCaptureStatisticsKHR              = VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,
3937     eCaptureInternalRepresentationsKHR = VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,
3938     eIndirectBindableNV                = VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV,
3939     eLibraryKHR                        = VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,
3940     eFailOnPipelineCompileRequiredEXT  = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT,
3941     eEarlyReturnOnFailureEXT           = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT,
3942     eRayTracingAllowMotionNV           = VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV,
3943     eDispatchBaseKHR                   = VK_PIPELINE_CREATE_DISPATCH_BASE_KHR,
3944     eViewIndexFromDeviceIndexKHR       = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR
3945   };
3946 
to_string(PipelineCreateFlagBits value)3947   VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlagBits value )
3948   {
3949     switch ( value )
3950     {
3951       case PipelineCreateFlagBits::eDisableOptimization: return "DisableOptimization";
3952       case PipelineCreateFlagBits::eAllowDerivatives: return "AllowDerivatives";
3953       case PipelineCreateFlagBits::eDerivative: return "Derivative";
3954       case PipelineCreateFlagBits::eViewIndexFromDeviceIndex: return "ViewIndexFromDeviceIndex";
3955       case PipelineCreateFlagBits::eDispatchBase: return "DispatchBase";
3956       case PipelineCreateFlagBits::eVkPipelineRasterizationStateCreateFragmentShadingRateAttachmentKHR:
3957         return "VkPipelineRasterizationStateCreateFragmentShadingRateAttachmentKHR";
3958       case PipelineCreateFlagBits::eVkPipelineRasterizationStateCreateFragmentDensityMapAttachmentEXT:
3959         return "VkPipelineRasterizationStateCreateFragmentDensityMapAttachmentEXT";
3960       case PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR: return "RayTracingNoNullAnyHitShadersKHR";
3961       case PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR: return "RayTracingNoNullClosestHitShadersKHR";
3962       case PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR: return "RayTracingNoNullMissShadersKHR";
3963       case PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR:
3964         return "RayTracingNoNullIntersectionShadersKHR";
3965       case PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR: return "RayTracingSkipTrianglesKHR";
3966       case PipelineCreateFlagBits::eRayTracingSkipAabbsKHR: return "RayTracingSkipAabbsKHR";
3967       case PipelineCreateFlagBits::eRayTracingShaderGroupHandleCaptureReplayKHR:
3968         return "RayTracingShaderGroupHandleCaptureReplayKHR";
3969       case PipelineCreateFlagBits::eDeferCompileNV: return "DeferCompileNV";
3970       case PipelineCreateFlagBits::eCaptureStatisticsKHR: return "CaptureStatisticsKHR";
3971       case PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR: return "CaptureInternalRepresentationsKHR";
3972       case PipelineCreateFlagBits::eIndirectBindableNV: return "IndirectBindableNV";
3973       case PipelineCreateFlagBits::eLibraryKHR: return "LibraryKHR";
3974       case PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT: return "FailOnPipelineCompileRequiredEXT";
3975       case PipelineCreateFlagBits::eEarlyReturnOnFailureEXT: return "EarlyReturnOnFailureEXT";
3976       case PipelineCreateFlagBits::eRayTracingAllowMotionNV: return "RayTracingAllowMotionNV";
3977       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3978     }
3979   }
3980 
3981   enum class PipelineShaderStageCreateFlagBits : VkPipelineShaderStageCreateFlags
3982   {
3983     eAllowVaryingSubgroupSizeEXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT,
3984     eRequireFullSubgroupsEXT     = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
3985   };
3986 
to_string(PipelineShaderStageCreateFlagBits value)3987   VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlagBits value )
3988   {
3989     switch ( value )
3990     {
3991       case PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT: return "AllowVaryingSubgroupSizeEXT";
3992       case PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT: return "RequireFullSubgroupsEXT";
3993       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3994     }
3995   }
3996 
3997   enum class PolygonMode
3998   {
3999     eFill            = VK_POLYGON_MODE_FILL,
4000     eLine            = VK_POLYGON_MODE_LINE,
4001     ePoint           = VK_POLYGON_MODE_POINT,
4002     eFillRectangleNV = VK_POLYGON_MODE_FILL_RECTANGLE_NV
4003   };
4004 
to_string(PolygonMode value)4005   VULKAN_HPP_INLINE std::string to_string( PolygonMode value )
4006   {
4007     switch ( value )
4008     {
4009       case PolygonMode::eFill: return "Fill";
4010       case PolygonMode::eLine: return "Line";
4011       case PolygonMode::ePoint: return "Point";
4012       case PolygonMode::eFillRectangleNV: return "FillRectangleNV";
4013       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4014     }
4015   }
4016 
4017   enum class PrimitiveTopology
4018   {
4019     ePointList                  = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
4020     eLineList                   = VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
4021     eLineStrip                  = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,
4022     eTriangleList               = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
4023     eTriangleStrip              = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
4024     eTriangleFan                = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN,
4025     eLineListWithAdjacency      = VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY,
4026     eLineStripWithAdjacency     = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY,
4027     eTriangleListWithAdjacency  = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,
4028     eTriangleStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY,
4029     ePatchList                  = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
4030   };
4031 
to_string(PrimitiveTopology value)4032   VULKAN_HPP_INLINE std::string to_string( PrimitiveTopology value )
4033   {
4034     switch ( value )
4035     {
4036       case PrimitiveTopology::ePointList: return "PointList";
4037       case PrimitiveTopology::eLineList: return "LineList";
4038       case PrimitiveTopology::eLineStrip: return "LineStrip";
4039       case PrimitiveTopology::eTriangleList: return "TriangleList";
4040       case PrimitiveTopology::eTriangleStrip: return "TriangleStrip";
4041       case PrimitiveTopology::eTriangleFan: return "TriangleFan";
4042       case PrimitiveTopology::eLineListWithAdjacency: return "LineListWithAdjacency";
4043       case PrimitiveTopology::eLineStripWithAdjacency: return "LineStripWithAdjacency";
4044       case PrimitiveTopology::eTriangleListWithAdjacency: return "TriangleListWithAdjacency";
4045       case PrimitiveTopology::eTriangleStripWithAdjacency: return "TriangleStripWithAdjacency";
4046       case PrimitiveTopology::ePatchList: return "PatchList";
4047       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4048     }
4049   }
4050 
4051   enum class ShaderStageFlagBits : VkShaderStageFlags
4052   {
4053     eVertex                 = VK_SHADER_STAGE_VERTEX_BIT,
4054     eTessellationControl    = VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
4055     eTessellationEvaluation = VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
4056     eGeometry               = VK_SHADER_STAGE_GEOMETRY_BIT,
4057     eFragment               = VK_SHADER_STAGE_FRAGMENT_BIT,
4058     eCompute                = VK_SHADER_STAGE_COMPUTE_BIT,
4059     eAllGraphics            = VK_SHADER_STAGE_ALL_GRAPHICS,
4060     eAll                    = VK_SHADER_STAGE_ALL,
4061     eRaygenKHR              = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
4062     eAnyHitKHR              = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
4063     eClosestHitKHR          = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
4064     eMissKHR                = VK_SHADER_STAGE_MISS_BIT_KHR,
4065     eIntersectionKHR        = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
4066     eCallableKHR            = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
4067     eTaskNV                 = VK_SHADER_STAGE_TASK_BIT_NV,
4068     eMeshNV                 = VK_SHADER_STAGE_MESH_BIT_NV,
4069     eSubpassShadingHUAWEI   = VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI,
4070     eAnyHitNV               = VK_SHADER_STAGE_ANY_HIT_BIT_NV,
4071     eCallableNV             = VK_SHADER_STAGE_CALLABLE_BIT_NV,
4072     eClosestHitNV           = VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV,
4073     eIntersectionNV         = VK_SHADER_STAGE_INTERSECTION_BIT_NV,
4074     eMissNV                 = VK_SHADER_STAGE_MISS_BIT_NV,
4075     eRaygenNV               = VK_SHADER_STAGE_RAYGEN_BIT_NV
4076   };
4077 
to_string(ShaderStageFlagBits value)4078   VULKAN_HPP_INLINE std::string to_string( ShaderStageFlagBits value )
4079   {
4080     switch ( value )
4081     {
4082       case ShaderStageFlagBits::eVertex: return "Vertex";
4083       case ShaderStageFlagBits::eTessellationControl: return "TessellationControl";
4084       case ShaderStageFlagBits::eTessellationEvaluation: return "TessellationEvaluation";
4085       case ShaderStageFlagBits::eGeometry: return "Geometry";
4086       case ShaderStageFlagBits::eFragment: return "Fragment";
4087       case ShaderStageFlagBits::eCompute: return "Compute";
4088       case ShaderStageFlagBits::eAllGraphics: return "AllGraphics";
4089       case ShaderStageFlagBits::eAll: return "All";
4090       case ShaderStageFlagBits::eRaygenKHR: return "RaygenKHR";
4091       case ShaderStageFlagBits::eAnyHitKHR: return "AnyHitKHR";
4092       case ShaderStageFlagBits::eClosestHitKHR: return "ClosestHitKHR";
4093       case ShaderStageFlagBits::eMissKHR: return "MissKHR";
4094       case ShaderStageFlagBits::eIntersectionKHR: return "IntersectionKHR";
4095       case ShaderStageFlagBits::eCallableKHR: return "CallableKHR";
4096       case ShaderStageFlagBits::eTaskNV: return "TaskNV";
4097       case ShaderStageFlagBits::eMeshNV: return "MeshNV";
4098       case ShaderStageFlagBits::eSubpassShadingHUAWEI: return "SubpassShadingHUAWEI";
4099       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4100     }
4101   }
4102 
4103   enum class StencilOp
4104   {
4105     eKeep              = VK_STENCIL_OP_KEEP,
4106     eZero              = VK_STENCIL_OP_ZERO,
4107     eReplace           = VK_STENCIL_OP_REPLACE,
4108     eIncrementAndClamp = VK_STENCIL_OP_INCREMENT_AND_CLAMP,
4109     eDecrementAndClamp = VK_STENCIL_OP_DECREMENT_AND_CLAMP,
4110     eInvert            = VK_STENCIL_OP_INVERT,
4111     eIncrementAndWrap  = VK_STENCIL_OP_INCREMENT_AND_WRAP,
4112     eDecrementAndWrap  = VK_STENCIL_OP_DECREMENT_AND_WRAP
4113   };
4114 
to_string(StencilOp value)4115   VULKAN_HPP_INLINE std::string to_string( StencilOp value )
4116   {
4117     switch ( value )
4118     {
4119       case StencilOp::eKeep: return "Keep";
4120       case StencilOp::eZero: return "Zero";
4121       case StencilOp::eReplace: return "Replace";
4122       case StencilOp::eIncrementAndClamp: return "IncrementAndClamp";
4123       case StencilOp::eDecrementAndClamp: return "DecrementAndClamp";
4124       case StencilOp::eInvert: return "Invert";
4125       case StencilOp::eIncrementAndWrap: return "IncrementAndWrap";
4126       case StencilOp::eDecrementAndWrap: return "DecrementAndWrap";
4127       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4128     }
4129   }
4130 
4131   enum class VertexInputRate
4132   {
4133     eVertex   = VK_VERTEX_INPUT_RATE_VERTEX,
4134     eInstance = VK_VERTEX_INPUT_RATE_INSTANCE
4135   };
4136 
to_string(VertexInputRate value)4137   VULKAN_HPP_INLINE std::string to_string( VertexInputRate value )
4138   {
4139     switch ( value )
4140     {
4141       case VertexInputRate::eVertex: return "Vertex";
4142       case VertexInputRate::eInstance: return "Instance";
4143       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4144     }
4145   }
4146 
4147   enum class PipelineColorBlendStateCreateFlagBits : VkPipelineColorBlendStateCreateFlags
4148   {
4149   };
4150 
to_string(PipelineColorBlendStateCreateFlagBits)4151   VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlagBits )
4152   {
4153     return "(void)";
4154   }
4155 
4156   enum class PipelineDepthStencilStateCreateFlagBits : VkPipelineDepthStencilStateCreateFlags
4157   {
4158   };
4159 
to_string(PipelineDepthStencilStateCreateFlagBits)4160   VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlagBits )
4161   {
4162     return "(void)";
4163   }
4164 
4165   enum class PipelineDynamicStateCreateFlagBits : VkPipelineDynamicStateCreateFlags
4166   {
4167   };
4168 
to_string(PipelineDynamicStateCreateFlagBits)4169   VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlagBits )
4170   {
4171     return "(void)";
4172   }
4173 
4174   enum class PipelineInputAssemblyStateCreateFlagBits : VkPipelineInputAssemblyStateCreateFlags
4175   {
4176   };
4177 
to_string(PipelineInputAssemblyStateCreateFlagBits)4178   VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlagBits )
4179   {
4180     return "(void)";
4181   }
4182 
4183   enum class PipelineLayoutCreateFlagBits : VkPipelineLayoutCreateFlags
4184   {
4185   };
4186 
to_string(PipelineLayoutCreateFlagBits)4187   VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlagBits )
4188   {
4189     return "(void)";
4190   }
4191 
4192   enum class PipelineMultisampleStateCreateFlagBits : VkPipelineMultisampleStateCreateFlags
4193   {
4194   };
4195 
to_string(PipelineMultisampleStateCreateFlagBits)4196   VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlagBits )
4197   {
4198     return "(void)";
4199   }
4200 
4201   enum class PipelineRasterizationStateCreateFlagBits : VkPipelineRasterizationStateCreateFlags
4202   {
4203   };
4204 
to_string(PipelineRasterizationStateCreateFlagBits)4205   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlagBits )
4206   {
4207     return "(void)";
4208   }
4209 
4210   enum class PipelineTessellationStateCreateFlagBits : VkPipelineTessellationStateCreateFlags
4211   {
4212   };
4213 
to_string(PipelineTessellationStateCreateFlagBits)4214   VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlagBits )
4215   {
4216     return "(void)";
4217   }
4218 
4219   enum class PipelineVertexInputStateCreateFlagBits : VkPipelineVertexInputStateCreateFlags
4220   {
4221   };
4222 
to_string(PipelineVertexInputStateCreateFlagBits)4223   VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlagBits )
4224   {
4225     return "(void)";
4226   }
4227 
4228   enum class PipelineViewportStateCreateFlagBits : VkPipelineViewportStateCreateFlags
4229   {
4230   };
4231 
to_string(PipelineViewportStateCreateFlagBits)4232   VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlagBits )
4233   {
4234     return "(void)";
4235   }
4236 
4237   enum class BorderColor
4238   {
4239     eFloatTransparentBlack = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
4240     eIntTransparentBlack   = VK_BORDER_COLOR_INT_TRANSPARENT_BLACK,
4241     eFloatOpaqueBlack      = VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK,
4242     eIntOpaqueBlack        = VK_BORDER_COLOR_INT_OPAQUE_BLACK,
4243     eFloatOpaqueWhite      = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE,
4244     eIntOpaqueWhite        = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
4245     eFloatCustomEXT        = VK_BORDER_COLOR_FLOAT_CUSTOM_EXT,
4246     eIntCustomEXT          = VK_BORDER_COLOR_INT_CUSTOM_EXT
4247   };
4248 
to_string(BorderColor value)4249   VULKAN_HPP_INLINE std::string to_string( BorderColor value )
4250   {
4251     switch ( value )
4252     {
4253       case BorderColor::eFloatTransparentBlack: return "FloatTransparentBlack";
4254       case BorderColor::eIntTransparentBlack: return "IntTransparentBlack";
4255       case BorderColor::eFloatOpaqueBlack: return "FloatOpaqueBlack";
4256       case BorderColor::eIntOpaqueBlack: return "IntOpaqueBlack";
4257       case BorderColor::eFloatOpaqueWhite: return "FloatOpaqueWhite";
4258       case BorderColor::eIntOpaqueWhite: return "IntOpaqueWhite";
4259       case BorderColor::eFloatCustomEXT: return "FloatCustomEXT";
4260       case BorderColor::eIntCustomEXT: return "IntCustomEXT";
4261       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4262     }
4263   }
4264 
4265   enum class Filter
4266   {
4267     eNearest  = VK_FILTER_NEAREST,
4268     eLinear   = VK_FILTER_LINEAR,
4269     eCubicIMG = VK_FILTER_CUBIC_IMG,
4270     eCubicEXT = VK_FILTER_CUBIC_EXT
4271   };
4272 
to_string(Filter value)4273   VULKAN_HPP_INLINE std::string to_string( Filter value )
4274   {
4275     switch ( value )
4276     {
4277       case Filter::eNearest: return "Nearest";
4278       case Filter::eLinear: return "Linear";
4279       case Filter::eCubicIMG: return "CubicIMG";
4280       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4281     }
4282   }
4283 
4284   enum class SamplerAddressMode
4285   {
4286     eRepeat               = VK_SAMPLER_ADDRESS_MODE_REPEAT,
4287     eMirroredRepeat       = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT,
4288     eClampToEdge          = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
4289     eClampToBorder        = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
4290     eMirrorClampToEdge    = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
4291     eMirrorClampToEdgeKHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR
4292   };
4293 
to_string(SamplerAddressMode value)4294   VULKAN_HPP_INLINE std::string to_string( SamplerAddressMode value )
4295   {
4296     switch ( value )
4297     {
4298       case SamplerAddressMode::eRepeat: return "Repeat";
4299       case SamplerAddressMode::eMirroredRepeat: return "MirroredRepeat";
4300       case SamplerAddressMode::eClampToEdge: return "ClampToEdge";
4301       case SamplerAddressMode::eClampToBorder: return "ClampToBorder";
4302       case SamplerAddressMode::eMirrorClampToEdge: return "MirrorClampToEdge";
4303       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4304     }
4305   }
4306 
4307   enum class SamplerCreateFlagBits : VkSamplerCreateFlags
4308   {
4309     eSubsampledEXT                     = VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT,
4310     eSubsampledCoarseReconstructionEXT = VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT
4311   };
4312 
to_string(SamplerCreateFlagBits value)4313   VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlagBits value )
4314   {
4315     switch ( value )
4316     {
4317       case SamplerCreateFlagBits::eSubsampledEXT: return "SubsampledEXT";
4318       case SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT: return "SubsampledCoarseReconstructionEXT";
4319       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4320     }
4321   }
4322 
4323   enum class SamplerMipmapMode
4324   {
4325     eNearest = VK_SAMPLER_MIPMAP_MODE_NEAREST,
4326     eLinear  = VK_SAMPLER_MIPMAP_MODE_LINEAR
4327   };
4328 
to_string(SamplerMipmapMode value)4329   VULKAN_HPP_INLINE std::string to_string( SamplerMipmapMode value )
4330   {
4331     switch ( value )
4332     {
4333       case SamplerMipmapMode::eNearest: return "Nearest";
4334       case SamplerMipmapMode::eLinear: return "Linear";
4335       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4336     }
4337   }
4338 
4339   enum class DescriptorPoolCreateFlagBits : VkDescriptorPoolCreateFlags
4340   {
4341     eFreeDescriptorSet  = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,
4342     eUpdateAfterBind    = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
4343     eHostOnlyVALVE      = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE,
4344     eUpdateAfterBindEXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT
4345   };
4346 
to_string(DescriptorPoolCreateFlagBits value)4347   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlagBits value )
4348   {
4349     switch ( value )
4350     {
4351       case DescriptorPoolCreateFlagBits::eFreeDescriptorSet: return "FreeDescriptorSet";
4352       case DescriptorPoolCreateFlagBits::eUpdateAfterBind: return "UpdateAfterBind";
4353       case DescriptorPoolCreateFlagBits::eHostOnlyVALVE: return "HostOnlyVALVE";
4354       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4355     }
4356   }
4357 
4358   enum class DescriptorSetLayoutCreateFlagBits : VkDescriptorSetLayoutCreateFlags
4359   {
4360     eUpdateAfterBindPool    = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
4361     ePushDescriptorKHR      = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,
4362     eHostOnlyPoolVALVE      = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE,
4363     eUpdateAfterBindPoolEXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
4364   };
4365 
to_string(DescriptorSetLayoutCreateFlagBits value)4366   VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlagBits value )
4367   {
4368     switch ( value )
4369     {
4370       case DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool: return "UpdateAfterBindPool";
4371       case DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR: return "PushDescriptorKHR";
4372       case DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolVALVE: return "HostOnlyPoolVALVE";
4373       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4374     }
4375   }
4376 
4377   enum class DescriptorType
4378   {
4379     eSampler                  = VK_DESCRIPTOR_TYPE_SAMPLER,
4380     eCombinedImageSampler     = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
4381     eSampledImage             = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
4382     eStorageImage             = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
4383     eUniformTexelBuffer       = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,
4384     eStorageTexelBuffer       = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,
4385     eUniformBuffer            = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
4386     eStorageBuffer            = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
4387     eUniformBufferDynamic     = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
4388     eStorageBufferDynamic     = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC,
4389     eInputAttachment          = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
4390     eInlineUniformBlockEXT    = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT,
4391     eAccelerationStructureKHR = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,
4392     eAccelerationStructureNV  = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV,
4393     eMutableVALVE             = VK_DESCRIPTOR_TYPE_MUTABLE_VALVE
4394   };
4395 
to_string(DescriptorType value)4396   VULKAN_HPP_INLINE std::string to_string( DescriptorType value )
4397   {
4398     switch ( value )
4399     {
4400       case DescriptorType::eSampler: return "Sampler";
4401       case DescriptorType::eCombinedImageSampler: return "CombinedImageSampler";
4402       case DescriptorType::eSampledImage: return "SampledImage";
4403       case DescriptorType::eStorageImage: return "StorageImage";
4404       case DescriptorType::eUniformTexelBuffer: return "UniformTexelBuffer";
4405       case DescriptorType::eStorageTexelBuffer: return "StorageTexelBuffer";
4406       case DescriptorType::eUniformBuffer: return "UniformBuffer";
4407       case DescriptorType::eStorageBuffer: return "StorageBuffer";
4408       case DescriptorType::eUniformBufferDynamic: return "UniformBufferDynamic";
4409       case DescriptorType::eStorageBufferDynamic: return "StorageBufferDynamic";
4410       case DescriptorType::eInputAttachment: return "InputAttachment";
4411       case DescriptorType::eInlineUniformBlockEXT: return "InlineUniformBlockEXT";
4412       case DescriptorType::eAccelerationStructureKHR: return "AccelerationStructureKHR";
4413       case DescriptorType::eAccelerationStructureNV: return "AccelerationStructureNV";
4414       case DescriptorType::eMutableVALVE: return "MutableVALVE";
4415       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4416     }
4417   }
4418 
4419   enum class DescriptorPoolResetFlagBits : VkDescriptorPoolResetFlags
4420   {
4421   };
4422 
to_string(DescriptorPoolResetFlagBits)4423   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlagBits )
4424   {
4425     return "(void)";
4426   }
4427 
4428   enum class AccessFlagBits : VkAccessFlags
4429   {
4430     eIndirectCommandRead                  = VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
4431     eIndexRead                            = VK_ACCESS_INDEX_READ_BIT,
4432     eVertexAttributeRead                  = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,
4433     eUniformRead                          = VK_ACCESS_UNIFORM_READ_BIT,
4434     eInputAttachmentRead                  = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
4435     eShaderRead                           = VK_ACCESS_SHADER_READ_BIT,
4436     eShaderWrite                          = VK_ACCESS_SHADER_WRITE_BIT,
4437     eColorAttachmentRead                  = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,
4438     eColorAttachmentWrite                 = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
4439     eDepthStencilAttachmentRead           = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
4440     eDepthStencilAttachmentWrite          = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
4441     eTransferRead                         = VK_ACCESS_TRANSFER_READ_BIT,
4442     eTransferWrite                        = VK_ACCESS_TRANSFER_WRITE_BIT,
4443     eHostRead                             = VK_ACCESS_HOST_READ_BIT,
4444     eHostWrite                            = VK_ACCESS_HOST_WRITE_BIT,
4445     eMemoryRead                           = VK_ACCESS_MEMORY_READ_BIT,
4446     eMemoryWrite                          = VK_ACCESS_MEMORY_WRITE_BIT,
4447     eTransformFeedbackWriteEXT            = VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
4448     eTransformFeedbackCounterReadEXT      = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,
4449     eTransformFeedbackCounterWriteEXT     = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
4450     eConditionalRenderingReadEXT          = VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,
4451     eColorAttachmentReadNoncoherentEXT    = VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
4452     eAccelerationStructureReadKHR         = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
4453     eAccelerationStructureWriteKHR        = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
4454     eFragmentDensityMapReadEXT            = VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,
4455     eFragmentShadingRateAttachmentReadKHR = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
4456     eCommandPreprocessReadNV              = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,
4457     eCommandPreprocessWriteNV             = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,
4458     eNoneKHR                              = VK_ACCESS_NONE_KHR,
4459     eAccelerationStructureReadNV          = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV,
4460     eAccelerationStructureWriteNV         = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
4461     eShadingRateImageReadNV               = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV
4462   };
4463 
to_string(AccessFlagBits value)4464   VULKAN_HPP_INLINE std::string to_string( AccessFlagBits value )
4465   {
4466     switch ( value )
4467     {
4468       case AccessFlagBits::eIndirectCommandRead: return "IndirectCommandRead";
4469       case AccessFlagBits::eIndexRead: return "IndexRead";
4470       case AccessFlagBits::eVertexAttributeRead: return "VertexAttributeRead";
4471       case AccessFlagBits::eUniformRead: return "UniformRead";
4472       case AccessFlagBits::eInputAttachmentRead: return "InputAttachmentRead";
4473       case AccessFlagBits::eShaderRead: return "ShaderRead";
4474       case AccessFlagBits::eShaderWrite: return "ShaderWrite";
4475       case AccessFlagBits::eColorAttachmentRead: return "ColorAttachmentRead";
4476       case AccessFlagBits::eColorAttachmentWrite: return "ColorAttachmentWrite";
4477       case AccessFlagBits::eDepthStencilAttachmentRead: return "DepthStencilAttachmentRead";
4478       case AccessFlagBits::eDepthStencilAttachmentWrite: return "DepthStencilAttachmentWrite";
4479       case AccessFlagBits::eTransferRead: return "TransferRead";
4480       case AccessFlagBits::eTransferWrite: return "TransferWrite";
4481       case AccessFlagBits::eHostRead: return "HostRead";
4482       case AccessFlagBits::eHostWrite: return "HostWrite";
4483       case AccessFlagBits::eMemoryRead: return "MemoryRead";
4484       case AccessFlagBits::eMemoryWrite: return "MemoryWrite";
4485       case AccessFlagBits::eTransformFeedbackWriteEXT: return "TransformFeedbackWriteEXT";
4486       case AccessFlagBits::eTransformFeedbackCounterReadEXT: return "TransformFeedbackCounterReadEXT";
4487       case AccessFlagBits::eTransformFeedbackCounterWriteEXT: return "TransformFeedbackCounterWriteEXT";
4488       case AccessFlagBits::eConditionalRenderingReadEXT: return "ConditionalRenderingReadEXT";
4489       case AccessFlagBits::eColorAttachmentReadNoncoherentEXT: return "ColorAttachmentReadNoncoherentEXT";
4490       case AccessFlagBits::eAccelerationStructureReadKHR: return "AccelerationStructureReadKHR";
4491       case AccessFlagBits::eAccelerationStructureWriteKHR: return "AccelerationStructureWriteKHR";
4492       case AccessFlagBits::eFragmentDensityMapReadEXT: return "FragmentDensityMapReadEXT";
4493       case AccessFlagBits::eFragmentShadingRateAttachmentReadKHR: return "FragmentShadingRateAttachmentReadKHR";
4494       case AccessFlagBits::eCommandPreprocessReadNV: return "CommandPreprocessReadNV";
4495       case AccessFlagBits::eCommandPreprocessWriteNV: return "CommandPreprocessWriteNV";
4496       case AccessFlagBits::eNoneKHR: return "NoneKHR";
4497       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4498     }
4499   }
4500 
4501   enum class AttachmentDescriptionFlagBits : VkAttachmentDescriptionFlags
4502   {
4503     eMayAlias = VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT
4504   };
4505 
to_string(AttachmentDescriptionFlagBits value)4506   VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlagBits value )
4507   {
4508     switch ( value )
4509     {
4510       case AttachmentDescriptionFlagBits::eMayAlias: return "MayAlias";
4511       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4512     }
4513   }
4514 
4515   enum class AttachmentLoadOp
4516   {
4517     eLoad     = VK_ATTACHMENT_LOAD_OP_LOAD,
4518     eClear    = VK_ATTACHMENT_LOAD_OP_CLEAR,
4519     eDontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
4520     eNoneEXT  = VK_ATTACHMENT_LOAD_OP_NONE_EXT
4521   };
4522 
to_string(AttachmentLoadOp value)4523   VULKAN_HPP_INLINE std::string to_string( AttachmentLoadOp value )
4524   {
4525     switch ( value )
4526     {
4527       case AttachmentLoadOp::eLoad: return "Load";
4528       case AttachmentLoadOp::eClear: return "Clear";
4529       case AttachmentLoadOp::eDontCare: return "DontCare";
4530       case AttachmentLoadOp::eNoneEXT: return "NoneEXT";
4531       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4532     }
4533   }
4534 
4535   enum class AttachmentStoreOp
4536   {
4537     eStore    = VK_ATTACHMENT_STORE_OP_STORE,
4538     eDontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE,
4539     eNoneKHR  = VK_ATTACHMENT_STORE_OP_NONE_KHR,
4540     eNoneEXT  = VK_ATTACHMENT_STORE_OP_NONE_EXT,
4541     eNoneQCOM = VK_ATTACHMENT_STORE_OP_NONE_QCOM
4542   };
4543 
to_string(AttachmentStoreOp value)4544   VULKAN_HPP_INLINE std::string to_string( AttachmentStoreOp value )
4545   {
4546     switch ( value )
4547     {
4548       case AttachmentStoreOp::eStore: return "Store";
4549       case AttachmentStoreOp::eDontCare: return "DontCare";
4550       case AttachmentStoreOp::eNoneKHR: return "NoneKHR";
4551       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4552     }
4553   }
4554 
4555   enum class DependencyFlagBits : VkDependencyFlags
4556   {
4557     eByRegion       = VK_DEPENDENCY_BY_REGION_BIT,
4558     eDeviceGroup    = VK_DEPENDENCY_DEVICE_GROUP_BIT,
4559     eViewLocal      = VK_DEPENDENCY_VIEW_LOCAL_BIT,
4560     eDeviceGroupKHR = VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR,
4561     eViewLocalKHR   = VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR
4562   };
4563 
to_string(DependencyFlagBits value)4564   VULKAN_HPP_INLINE std::string to_string( DependencyFlagBits value )
4565   {
4566     switch ( value )
4567     {
4568       case DependencyFlagBits::eByRegion: return "ByRegion";
4569       case DependencyFlagBits::eDeviceGroup: return "DeviceGroup";
4570       case DependencyFlagBits::eViewLocal: return "ViewLocal";
4571       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4572     }
4573   }
4574 
4575   enum class FramebufferCreateFlagBits : VkFramebufferCreateFlags
4576   {
4577     eImageless    = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
4578     eImagelessKHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR
4579   };
4580 
to_string(FramebufferCreateFlagBits value)4581   VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlagBits value )
4582   {
4583     switch ( value )
4584     {
4585       case FramebufferCreateFlagBits::eImageless: return "Imageless";
4586       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4587     }
4588   }
4589 
4590   enum class PipelineBindPoint
4591   {
4592     eGraphics             = VK_PIPELINE_BIND_POINT_GRAPHICS,
4593     eCompute              = VK_PIPELINE_BIND_POINT_COMPUTE,
4594     eRayTracingKHR        = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
4595     eSubpassShadingHUAWEI = VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI,
4596     eRayTracingNV         = VK_PIPELINE_BIND_POINT_RAY_TRACING_NV
4597   };
4598 
to_string(PipelineBindPoint value)4599   VULKAN_HPP_INLINE std::string to_string( PipelineBindPoint value )
4600   {
4601     switch ( value )
4602     {
4603       case PipelineBindPoint::eGraphics: return "Graphics";
4604       case PipelineBindPoint::eCompute: return "Compute";
4605       case PipelineBindPoint::eRayTracingKHR: return "RayTracingKHR";
4606       case PipelineBindPoint::eSubpassShadingHUAWEI: return "SubpassShadingHUAWEI";
4607       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4608     }
4609   }
4610 
4611   enum class RenderPassCreateFlagBits : VkRenderPassCreateFlags
4612   {
4613     eTransformQCOM = VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM
4614   };
4615 
to_string(RenderPassCreateFlagBits value)4616   VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlagBits value )
4617   {
4618     switch ( value )
4619     {
4620       case RenderPassCreateFlagBits::eTransformQCOM: return "TransformQCOM";
4621       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4622     }
4623   }
4624 
4625   enum class SubpassDescriptionFlagBits : VkSubpassDescriptionFlags
4626   {
4627     ePerViewAttributesNVX    = VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,
4628     ePerViewPositionXOnlyNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX,
4629     eFragmentRegionQCOM      = VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM,
4630     eShaderResolveQCOM       = VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM
4631   };
4632 
to_string(SubpassDescriptionFlagBits value)4633   VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlagBits value )
4634   {
4635     switch ( value )
4636     {
4637       case SubpassDescriptionFlagBits::ePerViewAttributesNVX: return "PerViewAttributesNVX";
4638       case SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX: return "PerViewPositionXOnlyNVX";
4639       case SubpassDescriptionFlagBits::eFragmentRegionQCOM: return "FragmentRegionQCOM";
4640       case SubpassDescriptionFlagBits::eShaderResolveQCOM: return "ShaderResolveQCOM";
4641       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4642     }
4643   }
4644 
4645   enum class CommandPoolCreateFlagBits : VkCommandPoolCreateFlags
4646   {
4647     eTransient          = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,
4648     eResetCommandBuffer = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,
4649     eProtected          = VK_COMMAND_POOL_CREATE_PROTECTED_BIT
4650   };
4651 
to_string(CommandPoolCreateFlagBits value)4652   VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlagBits value )
4653   {
4654     switch ( value )
4655     {
4656       case CommandPoolCreateFlagBits::eTransient: return "Transient";
4657       case CommandPoolCreateFlagBits::eResetCommandBuffer: return "ResetCommandBuffer";
4658       case CommandPoolCreateFlagBits::eProtected: return "Protected";
4659       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4660     }
4661   }
4662 
4663   enum class CommandPoolResetFlagBits : VkCommandPoolResetFlags
4664   {
4665     eReleaseResources = VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT
4666   };
4667 
to_string(CommandPoolResetFlagBits value)4668   VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlagBits value )
4669   {
4670     switch ( value )
4671     {
4672       case CommandPoolResetFlagBits::eReleaseResources: return "ReleaseResources";
4673       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4674     }
4675   }
4676 
4677   enum class CommandBufferLevel
4678   {
4679     ePrimary   = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
4680     eSecondary = VK_COMMAND_BUFFER_LEVEL_SECONDARY
4681   };
4682 
to_string(CommandBufferLevel value)4683   VULKAN_HPP_INLINE std::string to_string( CommandBufferLevel value )
4684   {
4685     switch ( value )
4686     {
4687       case CommandBufferLevel::ePrimary: return "Primary";
4688       case CommandBufferLevel::eSecondary: return "Secondary";
4689       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4690     }
4691   }
4692 
4693   enum class CommandBufferResetFlagBits : VkCommandBufferResetFlags
4694   {
4695     eReleaseResources = VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT
4696   };
4697 
to_string(CommandBufferResetFlagBits value)4698   VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlagBits value )
4699   {
4700     switch ( value )
4701     {
4702       case CommandBufferResetFlagBits::eReleaseResources: return "ReleaseResources";
4703       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4704     }
4705   }
4706 
4707   enum class CommandBufferUsageFlagBits : VkCommandBufferUsageFlags
4708   {
4709     eOneTimeSubmit      = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
4710     eRenderPassContinue = VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,
4711     eSimultaneousUse    = VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
4712   };
4713 
to_string(CommandBufferUsageFlagBits value)4714   VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlagBits value )
4715   {
4716     switch ( value )
4717     {
4718       case CommandBufferUsageFlagBits::eOneTimeSubmit: return "OneTimeSubmit";
4719       case CommandBufferUsageFlagBits::eRenderPassContinue: return "RenderPassContinue";
4720       case CommandBufferUsageFlagBits::eSimultaneousUse: return "SimultaneousUse";
4721       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4722     }
4723   }
4724 
4725   enum class QueryControlFlagBits : VkQueryControlFlags
4726   {
4727     ePrecise = VK_QUERY_CONTROL_PRECISE_BIT
4728   };
4729 
to_string(QueryControlFlagBits value)4730   VULKAN_HPP_INLINE std::string to_string( QueryControlFlagBits value )
4731   {
4732     switch ( value )
4733     {
4734       case QueryControlFlagBits::ePrecise: return "Precise";
4735       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4736     }
4737   }
4738 
4739   enum class IndexType
4740   {
4741     eUint16   = VK_INDEX_TYPE_UINT16,
4742     eUint32   = VK_INDEX_TYPE_UINT32,
4743     eNoneKHR  = VK_INDEX_TYPE_NONE_KHR,
4744     eUint8EXT = VK_INDEX_TYPE_UINT8_EXT,
4745     eNoneNV   = VK_INDEX_TYPE_NONE_NV
4746   };
4747 
to_string(IndexType value)4748   VULKAN_HPP_INLINE std::string to_string( IndexType value )
4749   {
4750     switch ( value )
4751     {
4752       case IndexType::eUint16: return "Uint16";
4753       case IndexType::eUint32: return "Uint32";
4754       case IndexType::eNoneKHR: return "NoneKHR";
4755       case IndexType::eUint8EXT: return "Uint8EXT";
4756       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4757     }
4758   }
4759 
4760   enum class StencilFaceFlagBits : VkStencilFaceFlags
4761   {
4762     eFront                 = VK_STENCIL_FACE_FRONT_BIT,
4763     eBack                  = VK_STENCIL_FACE_BACK_BIT,
4764     eFrontAndBack          = VK_STENCIL_FACE_FRONT_AND_BACK,
4765     eVkStencilFrontAndBack = VK_STENCIL_FRONT_AND_BACK
4766   };
4767 
to_string(StencilFaceFlagBits value)4768   VULKAN_HPP_INLINE std::string to_string( StencilFaceFlagBits value )
4769   {
4770     switch ( value )
4771     {
4772       case StencilFaceFlagBits::eFront: return "Front";
4773       case StencilFaceFlagBits::eBack: return "Back";
4774       case StencilFaceFlagBits::eFrontAndBack: return "FrontAndBack";
4775       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4776     }
4777   }
4778 
4779   enum class SubpassContents
4780   {
4781     eInline                  = VK_SUBPASS_CONTENTS_INLINE,
4782     eSecondaryCommandBuffers = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
4783   };
4784 
to_string(SubpassContents value)4785   VULKAN_HPP_INLINE std::string to_string( SubpassContents value )
4786   {
4787     switch ( value )
4788     {
4789       case SubpassContents::eInline: return "Inline";
4790       case SubpassContents::eSecondaryCommandBuffers: return "SecondaryCommandBuffers";
4791       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4792     }
4793   }
4794 
4795   //=== VK_VERSION_1_1 ===
4796 
4797   enum class SubgroupFeatureFlagBits : VkSubgroupFeatureFlags
4798   {
4799     eBasic           = VK_SUBGROUP_FEATURE_BASIC_BIT,
4800     eVote            = VK_SUBGROUP_FEATURE_VOTE_BIT,
4801     eArithmetic      = VK_SUBGROUP_FEATURE_ARITHMETIC_BIT,
4802     eBallot          = VK_SUBGROUP_FEATURE_BALLOT_BIT,
4803     eShuffle         = VK_SUBGROUP_FEATURE_SHUFFLE_BIT,
4804     eShuffleRelative = VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,
4805     eClustered       = VK_SUBGROUP_FEATURE_CLUSTERED_BIT,
4806     eQuad            = VK_SUBGROUP_FEATURE_QUAD_BIT,
4807     ePartitionedNV   = VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV
4808   };
4809 
to_string(SubgroupFeatureFlagBits value)4810   VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlagBits value )
4811   {
4812     switch ( value )
4813     {
4814       case SubgroupFeatureFlagBits::eBasic: return "Basic";
4815       case SubgroupFeatureFlagBits::eVote: return "Vote";
4816       case SubgroupFeatureFlagBits::eArithmetic: return "Arithmetic";
4817       case SubgroupFeatureFlagBits::eBallot: return "Ballot";
4818       case SubgroupFeatureFlagBits::eShuffle: return "Shuffle";
4819       case SubgroupFeatureFlagBits::eShuffleRelative: return "ShuffleRelative";
4820       case SubgroupFeatureFlagBits::eClustered: return "Clustered";
4821       case SubgroupFeatureFlagBits::eQuad: return "Quad";
4822       case SubgroupFeatureFlagBits::ePartitionedNV: return "PartitionedNV";
4823       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4824     }
4825   }
4826 
4827   enum class PeerMemoryFeatureFlagBits : VkPeerMemoryFeatureFlags
4828   {
4829     eCopySrc    = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
4830     eCopyDst    = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
4831     eGenericSrc = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
4832     eGenericDst = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT
4833   };
4834   using PeerMemoryFeatureFlagBitsKHR = PeerMemoryFeatureFlagBits;
4835 
to_string(PeerMemoryFeatureFlagBits value)4836   VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlagBits value )
4837   {
4838     switch ( value )
4839     {
4840       case PeerMemoryFeatureFlagBits::eCopySrc: return "CopySrc";
4841       case PeerMemoryFeatureFlagBits::eCopyDst: return "CopyDst";
4842       case PeerMemoryFeatureFlagBits::eGenericSrc: return "GenericSrc";
4843       case PeerMemoryFeatureFlagBits::eGenericDst: return "GenericDst";
4844       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4845     }
4846   }
4847 
4848   enum class MemoryAllocateFlagBits : VkMemoryAllocateFlags
4849   {
4850     eDeviceMask                 = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
4851     eDeviceAddress              = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
4852     eDeviceAddressCaptureReplay = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
4853   };
4854   using MemoryAllocateFlagBitsKHR = MemoryAllocateFlagBits;
4855 
to_string(MemoryAllocateFlagBits value)4856   VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlagBits value )
4857   {
4858     switch ( value )
4859     {
4860       case MemoryAllocateFlagBits::eDeviceMask: return "DeviceMask";
4861       case MemoryAllocateFlagBits::eDeviceAddress: return "DeviceAddress";
4862       case MemoryAllocateFlagBits::eDeviceAddressCaptureReplay: return "DeviceAddressCaptureReplay";
4863       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4864     }
4865   }
4866 
4867   enum class CommandPoolTrimFlagBits : VkCommandPoolTrimFlags
4868   {
4869   };
4870 
to_string(CommandPoolTrimFlagBits)4871   VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlagBits )
4872   {
4873     return "(void)";
4874   }
4875 
4876   enum class PointClippingBehavior
4877   {
4878     eAllClipPlanes      = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
4879     eUserClipPlanesOnly = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
4880   };
4881   using PointClippingBehaviorKHR = PointClippingBehavior;
4882 
to_string(PointClippingBehavior value)4883   VULKAN_HPP_INLINE std::string to_string( PointClippingBehavior value )
4884   {
4885     switch ( value )
4886     {
4887       case PointClippingBehavior::eAllClipPlanes: return "AllClipPlanes";
4888       case PointClippingBehavior::eUserClipPlanesOnly: return "UserClipPlanesOnly";
4889       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4890     }
4891   }
4892 
4893   enum class TessellationDomainOrigin
4894   {
4895     eUpperLeft = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
4896     eLowerLeft = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT
4897   };
4898   using TessellationDomainOriginKHR = TessellationDomainOrigin;
4899 
to_string(TessellationDomainOrigin value)4900   VULKAN_HPP_INLINE std::string to_string( TessellationDomainOrigin value )
4901   {
4902     switch ( value )
4903     {
4904       case TessellationDomainOrigin::eUpperLeft: return "UpperLeft";
4905       case TessellationDomainOrigin::eLowerLeft: return "LowerLeft";
4906       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4907     }
4908   }
4909 
4910   enum class DeviceQueueCreateFlagBits : VkDeviceQueueCreateFlags
4911   {
4912     eProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT
4913   };
4914 
to_string(DeviceQueueCreateFlagBits value)4915   VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlagBits value )
4916   {
4917     switch ( value )
4918     {
4919       case DeviceQueueCreateFlagBits::eProtected: return "Protected";
4920       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4921     }
4922   }
4923 
4924   enum class SamplerYcbcrModelConversion
4925   {
4926     eRgbIdentity   = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
4927     eYcbcrIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
4928     eYcbcr709      = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
4929     eYcbcr601      = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
4930     eYcbcr2020     = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020
4931   };
4932   using SamplerYcbcrModelConversionKHR = SamplerYcbcrModelConversion;
4933 
to_string(SamplerYcbcrModelConversion value)4934   VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrModelConversion value )
4935   {
4936     switch ( value )
4937     {
4938       case SamplerYcbcrModelConversion::eRgbIdentity: return "RgbIdentity";
4939       case SamplerYcbcrModelConversion::eYcbcrIdentity: return "YcbcrIdentity";
4940       case SamplerYcbcrModelConversion::eYcbcr709: return "Ycbcr709";
4941       case SamplerYcbcrModelConversion::eYcbcr601: return "Ycbcr601";
4942       case SamplerYcbcrModelConversion::eYcbcr2020: return "Ycbcr2020";
4943       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4944     }
4945   }
4946 
4947   enum class SamplerYcbcrRange
4948   {
4949     eItuFull   = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
4950     eItuNarrow = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW
4951   };
4952   using SamplerYcbcrRangeKHR = SamplerYcbcrRange;
4953 
to_string(SamplerYcbcrRange value)4954   VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrRange value )
4955   {
4956     switch ( value )
4957     {
4958       case SamplerYcbcrRange::eItuFull: return "ItuFull";
4959       case SamplerYcbcrRange::eItuNarrow: return "ItuNarrow";
4960       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4961     }
4962   }
4963 
4964   enum class ChromaLocation
4965   {
4966     eCositedEven = VK_CHROMA_LOCATION_COSITED_EVEN,
4967     eMidpoint    = VK_CHROMA_LOCATION_MIDPOINT
4968   };
4969   using ChromaLocationKHR = ChromaLocation;
4970 
to_string(ChromaLocation value)4971   VULKAN_HPP_INLINE std::string to_string( ChromaLocation value )
4972   {
4973     switch ( value )
4974     {
4975       case ChromaLocation::eCositedEven: return "CositedEven";
4976       case ChromaLocation::eMidpoint: return "Midpoint";
4977       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4978     }
4979   }
4980 
4981   enum class DescriptorUpdateTemplateType
4982   {
4983     eDescriptorSet      = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
4984     ePushDescriptorsKHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
4985   };
4986   using DescriptorUpdateTemplateTypeKHR = DescriptorUpdateTemplateType;
4987 
to_string(DescriptorUpdateTemplateType value)4988   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateType value )
4989   {
4990     switch ( value )
4991     {
4992       case DescriptorUpdateTemplateType::eDescriptorSet: return "DescriptorSet";
4993       case DescriptorUpdateTemplateType::ePushDescriptorsKHR: return "PushDescriptorsKHR";
4994       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4995     }
4996   }
4997 
4998   enum class DescriptorUpdateTemplateCreateFlagBits : VkDescriptorUpdateTemplateCreateFlags
4999   {
5000   };
5001 
to_string(DescriptorUpdateTemplateCreateFlagBits)5002   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlagBits )
5003   {
5004     return "(void)";
5005   }
5006 
5007   enum class ExternalMemoryHandleTypeFlagBits : VkExternalMemoryHandleTypeFlags
5008   {
5009     eOpaqueFd        = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
5010     eOpaqueWin32     = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5011     eOpaqueWin32Kmt  = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5012     eD3D11Texture    = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
5013     eD3D11TextureKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
5014     eD3D12Heap       = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
5015     eD3D12Resource   = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
5016     eDmaBufEXT       = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,
5017 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
5018     eAndroidHardwareBufferANDROID = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,
5019 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
5020     eHostAllocationEXT          = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,
5021     eHostMappedForeignMemoryEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT,
5022 #if defined( VK_USE_PLATFORM_FUCHSIA )
5023     eZirconVmoFUCHSIA = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA,
5024 #endif /*VK_USE_PLATFORM_FUCHSIA*/
5025     eRdmaAddressNV = VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV
5026   };
5027   using ExternalMemoryHandleTypeFlagBitsKHR = ExternalMemoryHandleTypeFlagBits;
5028 
to_string(ExternalMemoryHandleTypeFlagBits value)5029   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBits value )
5030   {
5031     switch ( value )
5032     {
5033       case ExternalMemoryHandleTypeFlagBits::eOpaqueFd: return "OpaqueFd";
5034       case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32: return "OpaqueWin32";
5035       case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt: return "OpaqueWin32Kmt";
5036       case ExternalMemoryHandleTypeFlagBits::eD3D11Texture: return "D3D11Texture";
5037       case ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt: return "D3D11TextureKmt";
5038       case ExternalMemoryHandleTypeFlagBits::eD3D12Heap: return "D3D12Heap";
5039       case ExternalMemoryHandleTypeFlagBits::eD3D12Resource: return "D3D12Resource";
5040       case ExternalMemoryHandleTypeFlagBits::eDmaBufEXT: return "DmaBufEXT";
5041 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
5042       case ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID: return "AndroidHardwareBufferANDROID";
5043 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
5044       case ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT: return "HostAllocationEXT";
5045       case ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT: return "HostMappedForeignMemoryEXT";
5046 #if defined( VK_USE_PLATFORM_FUCHSIA )
5047       case ExternalMemoryHandleTypeFlagBits::eZirconVmoFUCHSIA: return "ZirconVmoFUCHSIA";
5048 #endif /*VK_USE_PLATFORM_FUCHSIA*/
5049       case ExternalMemoryHandleTypeFlagBits::eRdmaAddressNV: return "RdmaAddressNV";
5050       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5051     }
5052   }
5053 
5054   enum class ExternalMemoryFeatureFlagBits : VkExternalMemoryFeatureFlags
5055   {
5056     eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
5057     eExportable    = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
5058     eImportable    = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT
5059   };
5060   using ExternalMemoryFeatureFlagBitsKHR = ExternalMemoryFeatureFlagBits;
5061 
to_string(ExternalMemoryFeatureFlagBits value)5062   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBits value )
5063   {
5064     switch ( value )
5065     {
5066       case ExternalMemoryFeatureFlagBits::eDedicatedOnly: return "DedicatedOnly";
5067       case ExternalMemoryFeatureFlagBits::eExportable: return "Exportable";
5068       case ExternalMemoryFeatureFlagBits::eImportable: return "Importable";
5069       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5070     }
5071   }
5072 
5073   enum class ExternalFenceHandleTypeFlagBits : VkExternalFenceHandleTypeFlags
5074   {
5075     eOpaqueFd       = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
5076     eOpaqueWin32    = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5077     eOpaqueWin32Kmt = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5078     eSyncFd         = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT
5079   };
5080   using ExternalFenceHandleTypeFlagBitsKHR = ExternalFenceHandleTypeFlagBits;
5081 
to_string(ExternalFenceHandleTypeFlagBits value)5082   VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlagBits value )
5083   {
5084     switch ( value )
5085     {
5086       case ExternalFenceHandleTypeFlagBits::eOpaqueFd: return "OpaqueFd";
5087       case ExternalFenceHandleTypeFlagBits::eOpaqueWin32: return "OpaqueWin32";
5088       case ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt: return "OpaqueWin32Kmt";
5089       case ExternalFenceHandleTypeFlagBits::eSyncFd: return "SyncFd";
5090       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5091     }
5092   }
5093 
5094   enum class ExternalFenceFeatureFlagBits : VkExternalFenceFeatureFlags
5095   {
5096     eExportable = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
5097     eImportable = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT
5098   };
5099   using ExternalFenceFeatureFlagBitsKHR = ExternalFenceFeatureFlagBits;
5100 
to_string(ExternalFenceFeatureFlagBits value)5101   VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlagBits value )
5102   {
5103     switch ( value )
5104     {
5105       case ExternalFenceFeatureFlagBits::eExportable: return "Exportable";
5106       case ExternalFenceFeatureFlagBits::eImportable: return "Importable";
5107       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5108     }
5109   }
5110 
5111   enum class FenceImportFlagBits : VkFenceImportFlags
5112   {
5113     eTemporary = VK_FENCE_IMPORT_TEMPORARY_BIT
5114   };
5115   using FenceImportFlagBitsKHR = FenceImportFlagBits;
5116 
to_string(FenceImportFlagBits value)5117   VULKAN_HPP_INLINE std::string to_string( FenceImportFlagBits value )
5118   {
5119     switch ( value )
5120     {
5121       case FenceImportFlagBits::eTemporary: return "Temporary";
5122       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5123     }
5124   }
5125 
5126   enum class SemaphoreImportFlagBits : VkSemaphoreImportFlags
5127   {
5128     eTemporary = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT
5129   };
5130   using SemaphoreImportFlagBitsKHR = SemaphoreImportFlagBits;
5131 
to_string(SemaphoreImportFlagBits value)5132   VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlagBits value )
5133   {
5134     switch ( value )
5135     {
5136       case SemaphoreImportFlagBits::eTemporary: return "Temporary";
5137       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5138     }
5139   }
5140 
5141   enum class ExternalSemaphoreHandleTypeFlagBits : VkExternalSemaphoreHandleTypeFlags
5142   {
5143     eOpaqueFd       = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
5144     eOpaqueWin32    = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5145     eOpaqueWin32Kmt = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5146     eD3D12Fence     = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5147     eSyncFd         = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
5148 #if defined( VK_USE_PLATFORM_FUCHSIA )
5149     eZirconEventFUCHSIA = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA,
5150 #endif /*VK_USE_PLATFORM_FUCHSIA*/
5151     eD3D11Fence = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT
5152   };
5153   using ExternalSemaphoreHandleTypeFlagBitsKHR = ExternalSemaphoreHandleTypeFlagBits;
5154 
to_string(ExternalSemaphoreHandleTypeFlagBits value)5155   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlagBits value )
5156   {
5157     switch ( value )
5158     {
5159       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd: return "OpaqueFd";
5160       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32: return "OpaqueWin32";
5161       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt: return "OpaqueWin32Kmt";
5162       case ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence: return "D3D12Fence";
5163       case ExternalSemaphoreHandleTypeFlagBits::eSyncFd: return "SyncFd";
5164 #if defined( VK_USE_PLATFORM_FUCHSIA )
5165       case ExternalSemaphoreHandleTypeFlagBits::eZirconEventFUCHSIA: return "ZirconEventFUCHSIA";
5166 #endif /*VK_USE_PLATFORM_FUCHSIA*/
5167       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5168     }
5169   }
5170 
5171   enum class ExternalSemaphoreFeatureFlagBits : VkExternalSemaphoreFeatureFlags
5172   {
5173     eExportable = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
5174     eImportable = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT
5175   };
5176   using ExternalSemaphoreFeatureFlagBitsKHR = ExternalSemaphoreFeatureFlagBits;
5177 
to_string(ExternalSemaphoreFeatureFlagBits value)5178   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlagBits value )
5179   {
5180     switch ( value )
5181     {
5182       case ExternalSemaphoreFeatureFlagBits::eExportable: return "Exportable";
5183       case ExternalSemaphoreFeatureFlagBits::eImportable: return "Importable";
5184       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5185     }
5186   }
5187 
5188   //=== VK_VERSION_1_2 ===
5189 
5190   enum class DriverId
5191   {
5192     eAmdProprietary          = VK_DRIVER_ID_AMD_PROPRIETARY,
5193     eAmdOpenSource           = VK_DRIVER_ID_AMD_OPEN_SOURCE,
5194     eMesaRadv                = VK_DRIVER_ID_MESA_RADV,
5195     eNvidiaProprietary       = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
5196     eIntelProprietaryWindows = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
5197     eIntelOpenSourceMESA     = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
5198     eImaginationProprietary  = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
5199     eQualcommProprietary     = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
5200     eArmProprietary          = VK_DRIVER_ID_ARM_PROPRIETARY,
5201     eGoogleSwiftshader       = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
5202     eGgpProprietary          = VK_DRIVER_ID_GGP_PROPRIETARY,
5203     eBroadcomProprietary     = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
5204     eMesaLlvmpipe            = VK_DRIVER_ID_MESA_LLVMPIPE,
5205     eMoltenvk                = VK_DRIVER_ID_MOLTENVK,
5206     eCoreaviProprietary      = VK_DRIVER_ID_COREAVI_PROPRIETARY,
5207     eJuiceProprietary        = VK_DRIVER_ID_JUICE_PROPRIETARY,
5208     eVerisiliconProprietary  = VK_DRIVER_ID_VERISILICON_PROPRIETARY,
5209     eMesaTurnip              = VK_DRIVER_ID_MESA_TURNIP,
5210     eMesaV3Dv                = VK_DRIVER_ID_MESA_V3DV,
5211     eMesaPanvk               = VK_DRIVER_ID_MESA_PANVK
5212   };
5213   using DriverIdKHR = DriverId;
5214 
to_string(DriverId value)5215   VULKAN_HPP_INLINE std::string to_string( DriverId value )
5216   {
5217     switch ( value )
5218     {
5219       case DriverId::eAmdProprietary: return "AmdProprietary";
5220       case DriverId::eAmdOpenSource: return "AmdOpenSource";
5221       case DriverId::eMesaRadv: return "MesaRadv";
5222       case DriverId::eNvidiaProprietary: return "NvidiaProprietary";
5223       case DriverId::eIntelProprietaryWindows: return "IntelProprietaryWindows";
5224       case DriverId::eIntelOpenSourceMESA: return "IntelOpenSourceMESA";
5225       case DriverId::eImaginationProprietary: return "ImaginationProprietary";
5226       case DriverId::eQualcommProprietary: return "QualcommProprietary";
5227       case DriverId::eArmProprietary: return "ArmProprietary";
5228       case DriverId::eGoogleSwiftshader: return "GoogleSwiftshader";
5229       case DriverId::eGgpProprietary: return "GgpProprietary";
5230       case DriverId::eBroadcomProprietary: return "BroadcomProprietary";
5231       case DriverId::eMesaLlvmpipe: return "MesaLlvmpipe";
5232       case DriverId::eMoltenvk: return "Moltenvk";
5233       case DriverId::eCoreaviProprietary: return "CoreaviProprietary";
5234       case DriverId::eJuiceProprietary: return "JuiceProprietary";
5235       case DriverId::eVerisiliconProprietary: return "VerisiliconProprietary";
5236       case DriverId::eMesaTurnip: return "MesaTurnip";
5237       case DriverId::eMesaV3Dv: return "MesaV3Dv";
5238       case DriverId::eMesaPanvk: return "MesaPanvk";
5239       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5240     }
5241   }
5242 
5243   enum class ShaderFloatControlsIndependence
5244   {
5245     e32BitOnly = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
5246     eAll       = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
5247     eNone      = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
5248   };
5249   using ShaderFloatControlsIndependenceKHR = ShaderFloatControlsIndependence;
5250 
to_string(ShaderFloatControlsIndependence value)5251   VULKAN_HPP_INLINE std::string to_string( ShaderFloatControlsIndependence value )
5252   {
5253     switch ( value )
5254     {
5255       case ShaderFloatControlsIndependence::e32BitOnly: return "32BitOnly";
5256       case ShaderFloatControlsIndependence::eAll: return "All";
5257       case ShaderFloatControlsIndependence::eNone: return "None";
5258       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5259     }
5260   }
5261 
5262   enum class DescriptorBindingFlagBits : VkDescriptorBindingFlags
5263   {
5264     eUpdateAfterBind          = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
5265     eUpdateUnusedWhilePending = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
5266     ePartiallyBound           = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
5267     eVariableDescriptorCount  = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
5268   };
5269   using DescriptorBindingFlagBitsEXT = DescriptorBindingFlagBits;
5270 
to_string(DescriptorBindingFlagBits value)5271   VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlagBits value )
5272   {
5273     switch ( value )
5274     {
5275       case DescriptorBindingFlagBits::eUpdateAfterBind: return "UpdateAfterBind";
5276       case DescriptorBindingFlagBits::eUpdateUnusedWhilePending: return "UpdateUnusedWhilePending";
5277       case DescriptorBindingFlagBits::ePartiallyBound: return "PartiallyBound";
5278       case DescriptorBindingFlagBits::eVariableDescriptorCount: return "VariableDescriptorCount";
5279       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5280     }
5281   }
5282 
5283   enum class ResolveModeFlagBits : VkResolveModeFlags
5284   {
5285     eNone       = VK_RESOLVE_MODE_NONE,
5286     eSampleZero = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
5287     eAverage    = VK_RESOLVE_MODE_AVERAGE_BIT,
5288     eMin        = VK_RESOLVE_MODE_MIN_BIT,
5289     eMax        = VK_RESOLVE_MODE_MAX_BIT
5290   };
5291   using ResolveModeFlagBitsKHR = ResolveModeFlagBits;
5292 
to_string(ResolveModeFlagBits value)5293   VULKAN_HPP_INLINE std::string to_string( ResolveModeFlagBits value )
5294   {
5295     switch ( value )
5296     {
5297       case ResolveModeFlagBits::eNone: return "None";
5298       case ResolveModeFlagBits::eSampleZero: return "SampleZero";
5299       case ResolveModeFlagBits::eAverage: return "Average";
5300       case ResolveModeFlagBits::eMin: return "Min";
5301       case ResolveModeFlagBits::eMax: return "Max";
5302       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5303     }
5304   }
5305 
5306   enum class SamplerReductionMode
5307   {
5308     eWeightedAverage = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
5309     eMin             = VK_SAMPLER_REDUCTION_MODE_MIN,
5310     eMax             = VK_SAMPLER_REDUCTION_MODE_MAX
5311   };
5312   using SamplerReductionModeEXT = SamplerReductionMode;
5313 
to_string(SamplerReductionMode value)5314   VULKAN_HPP_INLINE std::string to_string( SamplerReductionMode value )
5315   {
5316     switch ( value )
5317     {
5318       case SamplerReductionMode::eWeightedAverage: return "WeightedAverage";
5319       case SamplerReductionMode::eMin: return "Min";
5320       case SamplerReductionMode::eMax: return "Max";
5321       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5322     }
5323   }
5324 
5325   enum class SemaphoreType
5326   {
5327     eBinary   = VK_SEMAPHORE_TYPE_BINARY,
5328     eTimeline = VK_SEMAPHORE_TYPE_TIMELINE
5329   };
5330   using SemaphoreTypeKHR = SemaphoreType;
5331 
to_string(SemaphoreType value)5332   VULKAN_HPP_INLINE std::string to_string( SemaphoreType value )
5333   {
5334     switch ( value )
5335     {
5336       case SemaphoreType::eBinary: return "Binary";
5337       case SemaphoreType::eTimeline: return "Timeline";
5338       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5339     }
5340   }
5341 
5342   enum class SemaphoreWaitFlagBits : VkSemaphoreWaitFlags
5343   {
5344     eAny = VK_SEMAPHORE_WAIT_ANY_BIT
5345   };
5346   using SemaphoreWaitFlagBitsKHR = SemaphoreWaitFlagBits;
5347 
to_string(SemaphoreWaitFlagBits value)5348   VULKAN_HPP_INLINE std::string to_string( SemaphoreWaitFlagBits value )
5349   {
5350     switch ( value )
5351     {
5352       case SemaphoreWaitFlagBits::eAny: return "Any";
5353       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5354     }
5355   }
5356 
5357   //=== VK_KHR_surface ===
5358 
5359   enum class SurfaceTransformFlagBitsKHR : VkSurfaceTransformFlagsKHR
5360   {
5361     eIdentity                  = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,
5362     eRotate90                  = VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,
5363     eRotate180                 = VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,
5364     eRotate270                 = VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,
5365     eHorizontalMirror          = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,
5366     eHorizontalMirrorRotate90  = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,
5367     eHorizontalMirrorRotate180 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR,
5368     eHorizontalMirrorRotate270 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR,
5369     eInherit                   = VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR
5370   };
5371 
to_string(SurfaceTransformFlagBitsKHR value)5372   VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagBitsKHR value )
5373   {
5374     switch ( value )
5375     {
5376       case SurfaceTransformFlagBitsKHR::eIdentity: return "Identity";
5377       case SurfaceTransformFlagBitsKHR::eRotate90: return "Rotate90";
5378       case SurfaceTransformFlagBitsKHR::eRotate180: return "Rotate180";
5379       case SurfaceTransformFlagBitsKHR::eRotate270: return "Rotate270";
5380       case SurfaceTransformFlagBitsKHR::eHorizontalMirror: return "HorizontalMirror";
5381       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90: return "HorizontalMirrorRotate90";
5382       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180: return "HorizontalMirrorRotate180";
5383       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270: return "HorizontalMirrorRotate270";
5384       case SurfaceTransformFlagBitsKHR::eInherit: return "Inherit";
5385       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5386     }
5387   }
5388 
5389   enum class PresentModeKHR
5390   {
5391     eImmediate               = VK_PRESENT_MODE_IMMEDIATE_KHR,
5392     eMailbox                 = VK_PRESENT_MODE_MAILBOX_KHR,
5393     eFifo                    = VK_PRESENT_MODE_FIFO_KHR,
5394     eFifoRelaxed             = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
5395     eSharedDemandRefresh     = VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR,
5396     eSharedContinuousRefresh = VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR
5397   };
5398 
to_string(PresentModeKHR value)5399   VULKAN_HPP_INLINE std::string to_string( PresentModeKHR value )
5400   {
5401     switch ( value )
5402     {
5403       case PresentModeKHR::eImmediate: return "Immediate";
5404       case PresentModeKHR::eMailbox: return "Mailbox";
5405       case PresentModeKHR::eFifo: return "Fifo";
5406       case PresentModeKHR::eFifoRelaxed: return "FifoRelaxed";
5407       case PresentModeKHR::eSharedDemandRefresh: return "SharedDemandRefresh";
5408       case PresentModeKHR::eSharedContinuousRefresh: return "SharedContinuousRefresh";
5409       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5410     }
5411   }
5412 
5413   enum class ColorSpaceKHR
5414   {
5415     eSrgbNonlinear             = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
5416     eDisplayP3NonlinearEXT     = VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT,
5417     eExtendedSrgbLinearEXT     = VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT,
5418     eDisplayP3LinearEXT        = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
5419     eDciP3NonlinearEXT         = VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT,
5420     eBt709LinearEXT            = VK_COLOR_SPACE_BT709_LINEAR_EXT,
5421     eBt709NonlinearEXT         = VK_COLOR_SPACE_BT709_NONLINEAR_EXT,
5422     eBt2020LinearEXT           = VK_COLOR_SPACE_BT2020_LINEAR_EXT,
5423     eHdr10St2084EXT            = VK_COLOR_SPACE_HDR10_ST2084_EXT,
5424     eDolbyvisionEXT            = VK_COLOR_SPACE_DOLBYVISION_EXT,
5425     eHdr10HlgEXT               = VK_COLOR_SPACE_HDR10_HLG_EXT,
5426     eAdobergbLinearEXT         = VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT,
5427     eAdobergbNonlinearEXT      = VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT,
5428     ePassThroughEXT            = VK_COLOR_SPACE_PASS_THROUGH_EXT,
5429     eExtendedSrgbNonlinearEXT  = VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT,
5430     eDisplayNativeAMD          = VK_COLOR_SPACE_DISPLAY_NATIVE_AMD,
5431     eVkColorspaceSrgbNonlinear = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
5432     eDciP3LinearEXT            = VK_COLOR_SPACE_DCI_P3_LINEAR_EXT
5433   };
5434 
to_string(ColorSpaceKHR value)5435   VULKAN_HPP_INLINE std::string to_string( ColorSpaceKHR value )
5436   {
5437     switch ( value )
5438     {
5439       case ColorSpaceKHR::eSrgbNonlinear: return "SrgbNonlinear";
5440       case ColorSpaceKHR::eDisplayP3NonlinearEXT: return "DisplayP3NonlinearEXT";
5441       case ColorSpaceKHR::eExtendedSrgbLinearEXT: return "ExtendedSrgbLinearEXT";
5442       case ColorSpaceKHR::eDisplayP3LinearEXT: return "DisplayP3LinearEXT";
5443       case ColorSpaceKHR::eDciP3NonlinearEXT: return "DciP3NonlinearEXT";
5444       case ColorSpaceKHR::eBt709LinearEXT: return "Bt709LinearEXT";
5445       case ColorSpaceKHR::eBt709NonlinearEXT: return "Bt709NonlinearEXT";
5446       case ColorSpaceKHR::eBt2020LinearEXT: return "Bt2020LinearEXT";
5447       case ColorSpaceKHR::eHdr10St2084EXT: return "Hdr10St2084EXT";
5448       case ColorSpaceKHR::eDolbyvisionEXT: return "DolbyvisionEXT";
5449       case ColorSpaceKHR::eHdr10HlgEXT: return "Hdr10HlgEXT";
5450       case ColorSpaceKHR::eAdobergbLinearEXT: return "AdobergbLinearEXT";
5451       case ColorSpaceKHR::eAdobergbNonlinearEXT: return "AdobergbNonlinearEXT";
5452       case ColorSpaceKHR::ePassThroughEXT: return "PassThroughEXT";
5453       case ColorSpaceKHR::eExtendedSrgbNonlinearEXT: return "ExtendedSrgbNonlinearEXT";
5454       case ColorSpaceKHR::eDisplayNativeAMD: return "DisplayNativeAMD";
5455       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5456     }
5457   }
5458 
5459   enum class CompositeAlphaFlagBitsKHR : VkCompositeAlphaFlagsKHR
5460   {
5461     eOpaque         = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,
5462     ePreMultiplied  = VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,
5463     ePostMultiplied = VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,
5464     eInherit        = VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR
5465   };
5466 
to_string(CompositeAlphaFlagBitsKHR value)5467   VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagBitsKHR value )
5468   {
5469     switch ( value )
5470     {
5471       case CompositeAlphaFlagBitsKHR::eOpaque: return "Opaque";
5472       case CompositeAlphaFlagBitsKHR::ePreMultiplied: return "PreMultiplied";
5473       case CompositeAlphaFlagBitsKHR::ePostMultiplied: return "PostMultiplied";
5474       case CompositeAlphaFlagBitsKHR::eInherit: return "Inherit";
5475       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5476     }
5477   }
5478 
5479   //=== VK_KHR_swapchain ===
5480 
5481   enum class SwapchainCreateFlagBitsKHR : VkSwapchainCreateFlagsKHR
5482   {
5483     eSplitInstanceBindRegions = VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
5484     eProtected                = VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,
5485     eMutableFormat            = VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR
5486   };
5487 
to_string(SwapchainCreateFlagBitsKHR value)5488   VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagBitsKHR value )
5489   {
5490     switch ( value )
5491     {
5492       case SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions: return "SplitInstanceBindRegions";
5493       case SwapchainCreateFlagBitsKHR::eProtected: return "Protected";
5494       case SwapchainCreateFlagBitsKHR::eMutableFormat: return "MutableFormat";
5495       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5496     }
5497   }
5498 
5499   enum class DeviceGroupPresentModeFlagBitsKHR : VkDeviceGroupPresentModeFlagsKHR
5500   {
5501     eLocal            = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,
5502     eRemote           = VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,
5503     eSum              = VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,
5504     eLocalMultiDevice = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR
5505   };
5506 
to_string(DeviceGroupPresentModeFlagBitsKHR value)5507   VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagBitsKHR value )
5508   {
5509     switch ( value )
5510     {
5511       case DeviceGroupPresentModeFlagBitsKHR::eLocal: return "Local";
5512       case DeviceGroupPresentModeFlagBitsKHR::eRemote: return "Remote";
5513       case DeviceGroupPresentModeFlagBitsKHR::eSum: return "Sum";
5514       case DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice: return "LocalMultiDevice";
5515       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5516     }
5517   }
5518 
5519   //=== VK_KHR_display ===
5520 
5521   enum class DisplayPlaneAlphaFlagBitsKHR : VkDisplayPlaneAlphaFlagsKHR
5522   {
5523     eOpaque                = VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,
5524     eGlobal                = VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,
5525     ePerPixel              = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,
5526     ePerPixelPremultiplied = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR
5527   };
5528 
to_string(DisplayPlaneAlphaFlagBitsKHR value)5529   VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagBitsKHR value )
5530   {
5531     switch ( value )
5532     {
5533       case DisplayPlaneAlphaFlagBitsKHR::eOpaque: return "Opaque";
5534       case DisplayPlaneAlphaFlagBitsKHR::eGlobal: return "Global";
5535       case DisplayPlaneAlphaFlagBitsKHR::ePerPixel: return "PerPixel";
5536       case DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied: return "PerPixelPremultiplied";
5537       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5538     }
5539   }
5540 
5541   enum class DisplayModeCreateFlagBitsKHR : VkDisplayModeCreateFlagsKHR
5542   {
5543   };
5544 
to_string(DisplayModeCreateFlagBitsKHR)5545   VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagBitsKHR )
5546   {
5547     return "(void)";
5548   }
5549 
5550   enum class DisplaySurfaceCreateFlagBitsKHR : VkDisplaySurfaceCreateFlagsKHR
5551   {
5552   };
5553 
to_string(DisplaySurfaceCreateFlagBitsKHR)5554   VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagBitsKHR )
5555   {
5556     return "(void)";
5557   }
5558 
5559 #if defined( VK_USE_PLATFORM_XLIB_KHR )
5560   //=== VK_KHR_xlib_surface ===
5561 
5562   enum class XlibSurfaceCreateFlagBitsKHR : VkXlibSurfaceCreateFlagsKHR
5563   {
5564   };
5565 
to_string(XlibSurfaceCreateFlagBitsKHR)5566   VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagBitsKHR )
5567   {
5568     return "(void)";
5569   }
5570 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
5571 
5572 #if defined( VK_USE_PLATFORM_XCB_KHR )
5573   //=== VK_KHR_xcb_surface ===
5574 
5575   enum class XcbSurfaceCreateFlagBitsKHR : VkXcbSurfaceCreateFlagsKHR
5576   {
5577   };
5578 
to_string(XcbSurfaceCreateFlagBitsKHR)5579   VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagBitsKHR )
5580   {
5581     return "(void)";
5582   }
5583 #endif /*VK_USE_PLATFORM_XCB_KHR*/
5584 
5585 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
5586   //=== VK_KHR_wayland_surface ===
5587 
5588   enum class WaylandSurfaceCreateFlagBitsKHR : VkWaylandSurfaceCreateFlagsKHR
5589   {
5590   };
5591 
to_string(WaylandSurfaceCreateFlagBitsKHR)5592   VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagBitsKHR )
5593   {
5594     return "(void)";
5595   }
5596 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
5597 
5598 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
5599   //=== VK_KHR_android_surface ===
5600 
5601   enum class AndroidSurfaceCreateFlagBitsKHR : VkAndroidSurfaceCreateFlagsKHR
5602   {
5603   };
5604 
to_string(AndroidSurfaceCreateFlagBitsKHR)5605   VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagBitsKHR )
5606   {
5607     return "(void)";
5608   }
5609 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
5610 
5611 #if defined( VK_USE_PLATFORM_WIN32_KHR )
5612   //=== VK_KHR_win32_surface ===
5613 
5614   enum class Win32SurfaceCreateFlagBitsKHR : VkWin32SurfaceCreateFlagsKHR
5615   {
5616   };
5617 
to_string(Win32SurfaceCreateFlagBitsKHR)5618   VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagBitsKHR )
5619   {
5620     return "(void)";
5621   }
5622 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
5623 
5624   //=== VK_EXT_debug_report ===
5625 
5626   enum class DebugReportFlagBitsEXT : VkDebugReportFlagsEXT
5627   {
5628     eInformation        = VK_DEBUG_REPORT_INFORMATION_BIT_EXT,
5629     eWarning            = VK_DEBUG_REPORT_WARNING_BIT_EXT,
5630     ePerformanceWarning = VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,
5631     eError              = VK_DEBUG_REPORT_ERROR_BIT_EXT,
5632     eDebug              = VK_DEBUG_REPORT_DEBUG_BIT_EXT
5633   };
5634 
to_string(DebugReportFlagBitsEXT value)5635   VULKAN_HPP_INLINE std::string to_string( DebugReportFlagBitsEXT value )
5636   {
5637     switch ( value )
5638     {
5639       case DebugReportFlagBitsEXT::eInformation: return "Information";
5640       case DebugReportFlagBitsEXT::eWarning: return "Warning";
5641       case DebugReportFlagBitsEXT::ePerformanceWarning: return "PerformanceWarning";
5642       case DebugReportFlagBitsEXT::eError: return "Error";
5643       case DebugReportFlagBitsEXT::eDebug: return "Debug";
5644       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5645     }
5646   }
5647 
5648   enum class DebugReportObjectTypeEXT
5649   {
5650     eUnknown                  = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
5651     eInstance                 = VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
5652     ePhysicalDevice           = VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
5653     eDevice                   = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
5654     eQueue                    = VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT,
5655     eSemaphore                = VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT,
5656     eCommandBuffer            = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
5657     eFence                    = VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT,
5658     eDeviceMemory             = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT,
5659     eBuffer                   = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT,
5660     eImage                    = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,
5661     eEvent                    = VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT,
5662     eQueryPool                = VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT,
5663     eBufferView               = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT,
5664     eImageView                = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT,
5665     eShaderModule             = VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT,
5666     ePipelineCache            = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT,
5667     ePipelineLayout           = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT,
5668     eRenderPass               = VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT,
5669     ePipeline                 = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT,
5670     eDescriptorSetLayout      = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT,
5671     eSampler                  = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT,
5672     eDescriptorPool           = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT,
5673     eDescriptorSet            = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT,
5674     eFramebuffer              = VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT,
5675     eCommandPool              = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT,
5676     eSurfaceKHR               = VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT,
5677     eSwapchainKHR             = VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT,
5678     eDebugReportCallbackEXT   = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
5679     eDisplayKHR               = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT,
5680     eDisplayModeKHR           = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT,
5681     eValidationCacheEXT       = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
5682     eSamplerYcbcrConversion   = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
5683     eDescriptorUpdateTemplate = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
5684     eCuModuleNVX              = VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT,
5685     eCuFunctionNVX            = VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT,
5686     eAccelerationStructureKHR = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT,
5687     eAccelerationStructureNV  = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT,
5688 #if defined( VK_USE_PLATFORM_FUCHSIA )
5689     eBufferCollectionFUCHSIA = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT,
5690 #endif /*VK_USE_PLATFORM_FUCHSIA*/
5691     eDebugReport                 = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT,
5692     eDescriptorUpdateTemplateKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT,
5693     eSamplerYcbcrConversionKHR   = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT,
5694     eValidationCache             = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT
5695   };
5696 
to_string(DebugReportObjectTypeEXT value)5697   VULKAN_HPP_INLINE std::string to_string( DebugReportObjectTypeEXT value )
5698   {
5699     switch ( value )
5700     {
5701       case DebugReportObjectTypeEXT::eUnknown: return "Unknown";
5702       case DebugReportObjectTypeEXT::eInstance: return "Instance";
5703       case DebugReportObjectTypeEXT::ePhysicalDevice: return "PhysicalDevice";
5704       case DebugReportObjectTypeEXT::eDevice: return "Device";
5705       case DebugReportObjectTypeEXT::eQueue: return "Queue";
5706       case DebugReportObjectTypeEXT::eSemaphore: return "Semaphore";
5707       case DebugReportObjectTypeEXT::eCommandBuffer: return "CommandBuffer";
5708       case DebugReportObjectTypeEXT::eFence: return "Fence";
5709       case DebugReportObjectTypeEXT::eDeviceMemory: return "DeviceMemory";
5710       case DebugReportObjectTypeEXT::eBuffer: return "Buffer";
5711       case DebugReportObjectTypeEXT::eImage: return "Image";
5712       case DebugReportObjectTypeEXT::eEvent: return "Event";
5713       case DebugReportObjectTypeEXT::eQueryPool: return "QueryPool";
5714       case DebugReportObjectTypeEXT::eBufferView: return "BufferView";
5715       case DebugReportObjectTypeEXT::eImageView: return "ImageView";
5716       case DebugReportObjectTypeEXT::eShaderModule: return "ShaderModule";
5717       case DebugReportObjectTypeEXT::ePipelineCache: return "PipelineCache";
5718       case DebugReportObjectTypeEXT::ePipelineLayout: return "PipelineLayout";
5719       case DebugReportObjectTypeEXT::eRenderPass: return "RenderPass";
5720       case DebugReportObjectTypeEXT::ePipeline: return "Pipeline";
5721       case DebugReportObjectTypeEXT::eDescriptorSetLayout: return "DescriptorSetLayout";
5722       case DebugReportObjectTypeEXT::eSampler: return "Sampler";
5723       case DebugReportObjectTypeEXT::eDescriptorPool: return "DescriptorPool";
5724       case DebugReportObjectTypeEXT::eDescriptorSet: return "DescriptorSet";
5725       case DebugReportObjectTypeEXT::eFramebuffer: return "Framebuffer";
5726       case DebugReportObjectTypeEXT::eCommandPool: return "CommandPool";
5727       case DebugReportObjectTypeEXT::eSurfaceKHR: return "SurfaceKHR";
5728       case DebugReportObjectTypeEXT::eSwapchainKHR: return "SwapchainKHR";
5729       case DebugReportObjectTypeEXT::eDebugReportCallbackEXT: return "DebugReportCallbackEXT";
5730       case DebugReportObjectTypeEXT::eDisplayKHR: return "DisplayKHR";
5731       case DebugReportObjectTypeEXT::eDisplayModeKHR: return "DisplayModeKHR";
5732       case DebugReportObjectTypeEXT::eValidationCacheEXT: return "ValidationCacheEXT";
5733       case DebugReportObjectTypeEXT::eSamplerYcbcrConversion: return "SamplerYcbcrConversion";
5734       case DebugReportObjectTypeEXT::eDescriptorUpdateTemplate: return "DescriptorUpdateTemplate";
5735       case DebugReportObjectTypeEXT::eCuModuleNVX: return "CuModuleNVX";
5736       case DebugReportObjectTypeEXT::eCuFunctionNVX: return "CuFunctionNVX";
5737       case DebugReportObjectTypeEXT::eAccelerationStructureKHR: return "AccelerationStructureKHR";
5738       case DebugReportObjectTypeEXT::eAccelerationStructureNV: return "AccelerationStructureNV";
5739 #if defined( VK_USE_PLATFORM_FUCHSIA )
5740       case DebugReportObjectTypeEXT::eBufferCollectionFUCHSIA: return "BufferCollectionFUCHSIA";
5741 #endif /*VK_USE_PLATFORM_FUCHSIA*/
5742       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5743     }
5744   }
5745 
5746   //=== VK_AMD_rasterization_order ===
5747 
5748   enum class RasterizationOrderAMD
5749   {
5750     eStrict  = VK_RASTERIZATION_ORDER_STRICT_AMD,
5751     eRelaxed = VK_RASTERIZATION_ORDER_RELAXED_AMD
5752   };
5753 
to_string(RasterizationOrderAMD value)5754   VULKAN_HPP_INLINE std::string to_string( RasterizationOrderAMD value )
5755   {
5756     switch ( value )
5757     {
5758       case RasterizationOrderAMD::eStrict: return "Strict";
5759       case RasterizationOrderAMD::eRelaxed: return "Relaxed";
5760       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5761     }
5762   }
5763 
5764 #if defined( VK_ENABLE_BETA_EXTENSIONS )
5765   //=== VK_KHR_video_queue ===
5766 
5767   enum class VideoCodecOperationFlagBitsKHR : VkVideoCodecOperationFlagsKHR
5768   {
5769     eInvalid = VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR,
5770 #  if defined( VK_ENABLE_BETA_EXTENSIONS )
5771     eEncodeH264EXT = VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT,
5772     eEncodeH265EXT = VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT,
5773     eDecodeH264EXT = VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT,
5774     eDecodeH265EXT = VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT
5775 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
5776   };
5777 
to_string(VideoCodecOperationFlagBitsKHR value)5778   VULKAN_HPP_INLINE std::string to_string( VideoCodecOperationFlagBitsKHR value )
5779   {
5780     switch ( value )
5781     {
5782       case VideoCodecOperationFlagBitsKHR::eInvalid: return "Invalid";
5783 #  if defined( VK_ENABLE_BETA_EXTENSIONS )
5784       case VideoCodecOperationFlagBitsKHR::eEncodeH264EXT: return "EncodeH264EXT";
5785       case VideoCodecOperationFlagBitsKHR::eEncodeH265EXT: return "EncodeH265EXT";
5786       case VideoCodecOperationFlagBitsKHR::eDecodeH264EXT: return "DecodeH264EXT";
5787       case VideoCodecOperationFlagBitsKHR::eDecodeH265EXT: return "DecodeH265EXT";
5788 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
5789       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5790     }
5791   }
5792 
5793   enum class VideoChromaSubsamplingFlagBitsKHR : VkVideoChromaSubsamplingFlagsKHR
5794   {
5795     eInvalid    = VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR,
5796     eMonochrome = VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR,
5797     e420        = VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,
5798     e422        = VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR,
5799     e444        = VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR
5800   };
5801 
to_string(VideoChromaSubsamplingFlagBitsKHR value)5802   VULKAN_HPP_INLINE std::string to_string( VideoChromaSubsamplingFlagBitsKHR value )
5803   {
5804     switch ( value )
5805     {
5806       case VideoChromaSubsamplingFlagBitsKHR::eInvalid: return "Invalid";
5807       case VideoChromaSubsamplingFlagBitsKHR::eMonochrome: return "Monochrome";
5808       case VideoChromaSubsamplingFlagBitsKHR::e420: return "420";
5809       case VideoChromaSubsamplingFlagBitsKHR::e422: return "422";
5810       case VideoChromaSubsamplingFlagBitsKHR::e444: return "444";
5811       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5812     }
5813   }
5814 
5815   enum class VideoComponentBitDepthFlagBitsKHR : VkVideoComponentBitDepthFlagsKHR
5816   {
5817     eInvalid = VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR,
5818     e8       = VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR,
5819     e10      = VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR,
5820     e12      = VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR
5821   };
5822 
to_string(VideoComponentBitDepthFlagBitsKHR value)5823   VULKAN_HPP_INLINE std::string to_string( VideoComponentBitDepthFlagBitsKHR value )
5824   {
5825     switch ( value )
5826     {
5827       case VideoComponentBitDepthFlagBitsKHR::eInvalid: return "Invalid";
5828       case VideoComponentBitDepthFlagBitsKHR::e8: return "8";
5829       case VideoComponentBitDepthFlagBitsKHR::e10: return "10";
5830       case VideoComponentBitDepthFlagBitsKHR::e12: return "12";
5831       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5832     }
5833   }
5834 
5835   enum class VideoCapabilityFlagBitsKHR : VkVideoCapabilityFlagsKHR
5836   {
5837     eProtectedContent        = VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR,
5838     eSeparateReferenceImages = VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR
5839   };
5840 
to_string(VideoCapabilityFlagBitsKHR value)5841   VULKAN_HPP_INLINE std::string to_string( VideoCapabilityFlagBitsKHR value )
5842   {
5843     switch ( value )
5844     {
5845       case VideoCapabilityFlagBitsKHR::eProtectedContent: return "ProtectedContent";
5846       case VideoCapabilityFlagBitsKHR::eSeparateReferenceImages: return "SeparateReferenceImages";
5847       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5848     }
5849   }
5850 
5851   enum class VideoSessionCreateFlagBitsKHR : VkVideoSessionCreateFlagsKHR
5852   {
5853     eDefault          = VK_VIDEO_SESSION_CREATE_DEFAULT_KHR,
5854     eProtectedContent = VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR
5855   };
5856 
to_string(VideoSessionCreateFlagBitsKHR value)5857   VULKAN_HPP_INLINE std::string to_string( VideoSessionCreateFlagBitsKHR value )
5858   {
5859     switch ( value )
5860     {
5861       case VideoSessionCreateFlagBitsKHR::eDefault: return "Default";
5862       case VideoSessionCreateFlagBitsKHR::eProtectedContent: return "ProtectedContent";
5863       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5864     }
5865   }
5866 
5867   enum class VideoCodingControlFlagBitsKHR : VkVideoCodingControlFlagsKHR
5868   {
5869     eDefault = VK_VIDEO_CODING_CONTROL_DEFAULT_KHR,
5870     eReset   = VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR
5871   };
5872 
to_string(VideoCodingControlFlagBitsKHR value)5873   VULKAN_HPP_INLINE std::string to_string( VideoCodingControlFlagBitsKHR value )
5874   {
5875     switch ( value )
5876     {
5877       case VideoCodingControlFlagBitsKHR::eDefault: return "Default";
5878       case VideoCodingControlFlagBitsKHR::eReset: return "Reset";
5879       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5880     }
5881   }
5882 
5883   enum class VideoCodingQualityPresetFlagBitsKHR : VkVideoCodingQualityPresetFlagsKHR
5884   {
5885     eNormal  = VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR,
5886     ePower   = VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR,
5887     eQuality = VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR
5888   };
5889 
to_string(VideoCodingQualityPresetFlagBitsKHR value)5890   VULKAN_HPP_INLINE std::string to_string( VideoCodingQualityPresetFlagBitsKHR value )
5891   {
5892     switch ( value )
5893     {
5894       case VideoCodingQualityPresetFlagBitsKHR::eNormal: return "Normal";
5895       case VideoCodingQualityPresetFlagBitsKHR::ePower: return "Power";
5896       case VideoCodingQualityPresetFlagBitsKHR::eQuality: return "Quality";
5897       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5898     }
5899   }
5900 
5901   enum class QueryResultStatusKHR
5902   {
5903     eError    = VK_QUERY_RESULT_STATUS_ERROR_KHR,
5904     eNotReady = VK_QUERY_RESULT_STATUS_NOT_READY_KHR,
5905     eComplete = VK_QUERY_RESULT_STATUS_COMPLETE_KHR
5906   };
5907 
to_string(QueryResultStatusKHR value)5908   VULKAN_HPP_INLINE std::string to_string( QueryResultStatusKHR value )
5909   {
5910     switch ( value )
5911     {
5912       case QueryResultStatusKHR::eError: return "Error";
5913       case QueryResultStatusKHR::eNotReady: return "NotReady";
5914       case QueryResultStatusKHR::eComplete: return "Complete";
5915       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5916     }
5917   }
5918 
5919   enum class VideoBeginCodingFlagBitsKHR : VkVideoBeginCodingFlagsKHR
5920   {
5921   };
5922 
to_string(VideoBeginCodingFlagBitsKHR)5923   VULKAN_HPP_INLINE std::string to_string( VideoBeginCodingFlagBitsKHR )
5924   {
5925     return "(void)";
5926   }
5927 
5928   enum class VideoEndCodingFlagBitsKHR : VkVideoEndCodingFlagsKHR
5929   {
5930   };
5931 
to_string(VideoEndCodingFlagBitsKHR)5932   VULKAN_HPP_INLINE std::string to_string( VideoEndCodingFlagBitsKHR )
5933   {
5934     return "(void)";
5935   }
5936 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
5937 
5938 #if defined( VK_ENABLE_BETA_EXTENSIONS )
5939   //=== VK_KHR_video_decode_queue ===
5940 
5941   enum class VideoDecodeFlagBitsKHR : VkVideoDecodeFlagsKHR
5942   {
5943     eDefault   = VK_VIDEO_DECODE_DEFAULT_KHR,
5944     eReserved0 = VK_VIDEO_DECODE_RESERVED_0_BIT_KHR
5945   };
5946 
to_string(VideoDecodeFlagBitsKHR value)5947   VULKAN_HPP_INLINE std::string to_string( VideoDecodeFlagBitsKHR value )
5948   {
5949     switch ( value )
5950     {
5951       case VideoDecodeFlagBitsKHR::eDefault: return "Default";
5952       case VideoDecodeFlagBitsKHR::eReserved0: return "Reserved0";
5953       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5954     }
5955   }
5956 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
5957 
5958   //=== VK_EXT_transform_feedback ===
5959 
5960   enum class PipelineRasterizationStateStreamCreateFlagBitsEXT : VkPipelineRasterizationStateStreamCreateFlagsEXT
5961   {
5962   };
5963 
to_string(PipelineRasterizationStateStreamCreateFlagBitsEXT)5964   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagBitsEXT )
5965   {
5966     return "(void)";
5967   }
5968 
5969 #if defined( VK_ENABLE_BETA_EXTENSIONS )
5970   //=== VK_EXT_video_encode_h264 ===
5971 
5972   enum class VideoEncodeH264CapabilityFlagBitsEXT : VkVideoEncodeH264CapabilityFlagsEXT
5973   {
5974     eCabac                      = VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT,
5975     eCavlc                      = VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT,
5976     eWeightedBiPredImplicit     = VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT,
5977     eTransform8X8               = VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT,
5978     eChromaQpOffset             = VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT,
5979     eSecondChromaQpOffset       = VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT,
5980     eDeblockingFilterDisabled   = VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT,
5981     eDeblockingFilterEnabled    = VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT,
5982     eDeblockingFilterPartial    = VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT,
5983     eMultipleSlicePerFrame      = VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT,
5984     eEvenlyDistributedSliceSize = VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT
5985   };
5986 
to_string(VideoEncodeH264CapabilityFlagBitsEXT value)5987   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CapabilityFlagBitsEXT value )
5988   {
5989     switch ( value )
5990     {
5991       case VideoEncodeH264CapabilityFlagBitsEXT::eCabac: return "Cabac";
5992       case VideoEncodeH264CapabilityFlagBitsEXT::eCavlc: return "Cavlc";
5993       case VideoEncodeH264CapabilityFlagBitsEXT::eWeightedBiPredImplicit: return "WeightedBiPredImplicit";
5994       case VideoEncodeH264CapabilityFlagBitsEXT::eTransform8X8: return "Transform8X8";
5995       case VideoEncodeH264CapabilityFlagBitsEXT::eChromaQpOffset: return "ChromaQpOffset";
5996       case VideoEncodeH264CapabilityFlagBitsEXT::eSecondChromaQpOffset: return "SecondChromaQpOffset";
5997       case VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterDisabled: return "DeblockingFilterDisabled";
5998       case VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterEnabled: return "DeblockingFilterEnabled";
5999       case VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterPartial: return "DeblockingFilterPartial";
6000       case VideoEncodeH264CapabilityFlagBitsEXT::eMultipleSlicePerFrame: return "MultipleSlicePerFrame";
6001       case VideoEncodeH264CapabilityFlagBitsEXT::eEvenlyDistributedSliceSize: return "EvenlyDistributedSliceSize";
6002       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6003     }
6004   }
6005 
6006   enum class VideoEncodeH264InputModeFlagBitsEXT : VkVideoEncodeH264InputModeFlagsEXT
6007   {
6008     eFrame  = VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT,
6009     eSlice  = VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT,
6010     eNonVcl = VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT
6011   };
6012 
to_string(VideoEncodeH264InputModeFlagBitsEXT value)6013   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264InputModeFlagBitsEXT value )
6014   {
6015     switch ( value )
6016     {
6017       case VideoEncodeH264InputModeFlagBitsEXT::eFrame: return "Frame";
6018       case VideoEncodeH264InputModeFlagBitsEXT::eSlice: return "Slice";
6019       case VideoEncodeH264InputModeFlagBitsEXT::eNonVcl: return "NonVcl";
6020       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6021     }
6022   }
6023 
6024   enum class VideoEncodeH264OutputModeFlagBitsEXT : VkVideoEncodeH264OutputModeFlagsEXT
6025   {
6026     eFrame  = VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT,
6027     eSlice  = VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT,
6028     eNonVcl = VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT
6029   };
6030 
to_string(VideoEncodeH264OutputModeFlagBitsEXT value)6031   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264OutputModeFlagBitsEXT value )
6032   {
6033     switch ( value )
6034     {
6035       case VideoEncodeH264OutputModeFlagBitsEXT::eFrame: return "Frame";
6036       case VideoEncodeH264OutputModeFlagBitsEXT::eSlice: return "Slice";
6037       case VideoEncodeH264OutputModeFlagBitsEXT::eNonVcl: return "NonVcl";
6038       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6039     }
6040   }
6041 
6042   enum class VideoEncodeH264CreateFlagBitsEXT : VkVideoEncodeH264CreateFlagsEXT
6043   {
6044     eDefault   = VK_VIDEO_ENCODE_H264_CREATE_DEFAULT_EXT,
6045     eReserved0 = VK_VIDEO_ENCODE_H264_CREATE_RESERVED_0_BIT_EXT
6046   };
6047 
to_string(VideoEncodeH264CreateFlagBitsEXT value)6048   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CreateFlagBitsEXT value )
6049   {
6050     switch ( value )
6051     {
6052       case VideoEncodeH264CreateFlagBitsEXT::eDefault: return "Default";
6053       case VideoEncodeH264CreateFlagBitsEXT::eReserved0: return "Reserved0";
6054       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6055     }
6056   }
6057 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
6058 
6059 #if defined( VK_ENABLE_BETA_EXTENSIONS )
6060   //=== VK_EXT_video_encode_h265 ===
6061 
6062   enum class VideoEncodeH265InputModeFlagBitsEXT : VkVideoEncodeH265InputModeFlagsEXT
6063   {
6064     eFrame  = VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT,
6065     eSlice  = VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_BIT_EXT,
6066     eNonVcl = VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT
6067   };
6068 
to_string(VideoEncodeH265InputModeFlagBitsEXT value)6069   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265InputModeFlagBitsEXT value )
6070   {
6071     switch ( value )
6072     {
6073       case VideoEncodeH265InputModeFlagBitsEXT::eFrame: return "Frame";
6074       case VideoEncodeH265InputModeFlagBitsEXT::eSlice: return "Slice";
6075       case VideoEncodeH265InputModeFlagBitsEXT::eNonVcl: return "NonVcl";
6076       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6077     }
6078   }
6079 
6080   enum class VideoEncodeH265OutputModeFlagBitsEXT : VkVideoEncodeH265OutputModeFlagsEXT
6081   {
6082     eFrame  = VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT,
6083     eSlice  = VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_BIT_EXT,
6084     eNonVcl = VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT
6085   };
6086 
to_string(VideoEncodeH265OutputModeFlagBitsEXT value)6087   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265OutputModeFlagBitsEXT value )
6088   {
6089     switch ( value )
6090     {
6091       case VideoEncodeH265OutputModeFlagBitsEXT::eFrame: return "Frame";
6092       case VideoEncodeH265OutputModeFlagBitsEXT::eSlice: return "Slice";
6093       case VideoEncodeH265OutputModeFlagBitsEXT::eNonVcl: return "NonVcl";
6094       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6095     }
6096   }
6097 
6098   enum class VideoEncodeH265CtbSizeFlagBitsEXT : VkVideoEncodeH265CtbSizeFlagsEXT
6099   {
6100     e8  = VK_VIDEO_ENCODE_H265_CTB_SIZE_8_BIT_EXT,
6101     e16 = VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT,
6102     e32 = VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT,
6103     e64 = VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT
6104   };
6105 
to_string(VideoEncodeH265CtbSizeFlagBitsEXT value)6106   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CtbSizeFlagBitsEXT value )
6107   {
6108     switch ( value )
6109     {
6110       case VideoEncodeH265CtbSizeFlagBitsEXT::e8: return "8";
6111       case VideoEncodeH265CtbSizeFlagBitsEXT::e16: return "16";
6112       case VideoEncodeH265CtbSizeFlagBitsEXT::e32: return "32";
6113       case VideoEncodeH265CtbSizeFlagBitsEXT::e64: return "64";
6114       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6115     }
6116   }
6117 
6118   enum class VideoEncodeH265CapabilityFlagBitsEXT : VkVideoEncodeH265CapabilityFlagsEXT
6119   {
6120   };
6121 
to_string(VideoEncodeH265CapabilityFlagBitsEXT)6122   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CapabilityFlagBitsEXT )
6123   {
6124     return "(void)";
6125   }
6126 
6127   enum class VideoEncodeH265CreateFlagBitsEXT : VkVideoEncodeH265CreateFlagsEXT
6128   {
6129   };
6130 
to_string(VideoEncodeH265CreateFlagBitsEXT)6131   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CreateFlagBitsEXT )
6132   {
6133     return "(void)";
6134   }
6135 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
6136 
6137 #if defined( VK_ENABLE_BETA_EXTENSIONS )
6138   //=== VK_EXT_video_decode_h264 ===
6139 
6140   enum class VideoDecodeH264PictureLayoutFlagBitsEXT : VkVideoDecodeH264PictureLayoutFlagsEXT
6141   {
6142     eProgressive                = VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT,
6143     eInterlacedInterleavedLines = VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT,
6144     eInterlacedSeparatePlanes   = VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT
6145   };
6146 
to_string(VideoDecodeH264PictureLayoutFlagBitsEXT value)6147   VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264PictureLayoutFlagBitsEXT value )
6148   {
6149     switch ( value )
6150     {
6151       case VideoDecodeH264PictureLayoutFlagBitsEXT::eProgressive: return "Progressive";
6152       case VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedInterleavedLines: return "InterlacedInterleavedLines";
6153       case VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedSeparatePlanes: return "InterlacedSeparatePlanes";
6154       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6155     }
6156   }
6157 
6158   enum class VideoDecodeH264CreateFlagBitsEXT : VkVideoDecodeH264CreateFlagsEXT
6159   {
6160   };
6161 
to_string(VideoDecodeH264CreateFlagBitsEXT)6162   VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264CreateFlagBitsEXT )
6163   {
6164     return "(void)";
6165   }
6166 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
6167 
6168   //=== VK_AMD_shader_info ===
6169 
6170   enum class ShaderInfoTypeAMD
6171   {
6172     eStatistics  = VK_SHADER_INFO_TYPE_STATISTICS_AMD,
6173     eBinary      = VK_SHADER_INFO_TYPE_BINARY_AMD,
6174     eDisassembly = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD
6175   };
6176 
to_string(ShaderInfoTypeAMD value)6177   VULKAN_HPP_INLINE std::string to_string( ShaderInfoTypeAMD value )
6178   {
6179     switch ( value )
6180     {
6181       case ShaderInfoTypeAMD::eStatistics: return "Statistics";
6182       case ShaderInfoTypeAMD::eBinary: return "Binary";
6183       case ShaderInfoTypeAMD::eDisassembly: return "Disassembly";
6184       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6185     }
6186   }
6187 
6188   //=== VK_KHR_dynamic_rendering ===
6189 
6190   enum class RenderingFlagBitsKHR : VkRenderingFlagsKHR
6191   {
6192     eContentsSecondaryCommandBuffers = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR,
6193     eSuspending                      = VK_RENDERING_SUSPENDING_BIT_KHR,
6194     eResuming                        = VK_RENDERING_RESUMING_BIT_KHR
6195   };
6196 
to_string(RenderingFlagBitsKHR value)6197   VULKAN_HPP_INLINE std::string to_string( RenderingFlagBitsKHR value )
6198   {
6199     switch ( value )
6200     {
6201       case RenderingFlagBitsKHR::eContentsSecondaryCommandBuffers: return "ContentsSecondaryCommandBuffers";
6202       case RenderingFlagBitsKHR::eSuspending: return "Suspending";
6203       case RenderingFlagBitsKHR::eResuming: return "Resuming";
6204       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6205     }
6206   }
6207 
6208 #if defined( VK_USE_PLATFORM_GGP )
6209   //=== VK_GGP_stream_descriptor_surface ===
6210 
6211   enum class StreamDescriptorSurfaceCreateFlagBitsGGP : VkStreamDescriptorSurfaceCreateFlagsGGP
6212   {
6213   };
6214 
to_string(StreamDescriptorSurfaceCreateFlagBitsGGP)6215   VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagBitsGGP )
6216   {
6217     return "(void)";
6218   }
6219 #endif /*VK_USE_PLATFORM_GGP*/
6220 
6221   //=== VK_NV_external_memory_capabilities ===
6222 
6223   enum class ExternalMemoryHandleTypeFlagBitsNV : VkExternalMemoryHandleTypeFlagsNV
6224   {
6225     eOpaqueWin32    = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,
6226     eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,
6227     eD3D11Image     = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,
6228     eD3D11ImageKmt  = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV
6229   };
6230 
to_string(ExternalMemoryHandleTypeFlagBitsNV value)6231   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBitsNV value )
6232   {
6233     switch ( value )
6234     {
6235       case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32: return "OpaqueWin32";
6236       case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt: return "OpaqueWin32Kmt";
6237       case ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image: return "D3D11Image";
6238       case ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt: return "D3D11ImageKmt";
6239       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6240     }
6241   }
6242 
6243   enum class ExternalMemoryFeatureFlagBitsNV : VkExternalMemoryFeatureFlagsNV
6244   {
6245     eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,
6246     eExportable    = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,
6247     eImportable    = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV
6248   };
6249 
to_string(ExternalMemoryFeatureFlagBitsNV value)6250   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBitsNV value )
6251   {
6252     switch ( value )
6253     {
6254       case ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly: return "DedicatedOnly";
6255       case ExternalMemoryFeatureFlagBitsNV::eExportable: return "Exportable";
6256       case ExternalMemoryFeatureFlagBitsNV::eImportable: return "Importable";
6257       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6258     }
6259   }
6260 
6261   //=== VK_EXT_validation_flags ===
6262 
6263   enum class ValidationCheckEXT
6264   {
6265     eAll     = VK_VALIDATION_CHECK_ALL_EXT,
6266     eShaders = VK_VALIDATION_CHECK_SHADERS_EXT
6267   };
6268 
to_string(ValidationCheckEXT value)6269   VULKAN_HPP_INLINE std::string to_string( ValidationCheckEXT value )
6270   {
6271     switch ( value )
6272     {
6273       case ValidationCheckEXT::eAll: return "All";
6274       case ValidationCheckEXT::eShaders: return "Shaders";
6275       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6276     }
6277   }
6278 
6279 #if defined( VK_USE_PLATFORM_VI_NN )
6280   //=== VK_NN_vi_surface ===
6281 
6282   enum class ViSurfaceCreateFlagBitsNN : VkViSurfaceCreateFlagsNN
6283   {
6284   };
6285 
to_string(ViSurfaceCreateFlagBitsNN)6286   VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagBitsNN )
6287   {
6288     return "(void)";
6289   }
6290 #endif /*VK_USE_PLATFORM_VI_NN*/
6291 
6292   //=== VK_EXT_conditional_rendering ===
6293 
6294   enum class ConditionalRenderingFlagBitsEXT : VkConditionalRenderingFlagsEXT
6295   {
6296     eInverted = VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT
6297   };
6298 
to_string(ConditionalRenderingFlagBitsEXT value)6299   VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagBitsEXT value )
6300   {
6301     switch ( value )
6302     {
6303       case ConditionalRenderingFlagBitsEXT::eInverted: return "Inverted";
6304       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6305     }
6306   }
6307 
6308   //=== VK_EXT_display_surface_counter ===
6309 
6310   enum class SurfaceCounterFlagBitsEXT : VkSurfaceCounterFlagsEXT
6311   {
6312     eVblank = VK_SURFACE_COUNTER_VBLANK_BIT_EXT
6313   };
6314 
to_string(SurfaceCounterFlagBitsEXT value)6315   VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagBitsEXT value )
6316   {
6317     switch ( value )
6318     {
6319       case SurfaceCounterFlagBitsEXT::eVblank: return "Vblank";
6320       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6321     }
6322   }
6323 
6324   //=== VK_EXT_display_control ===
6325 
6326   enum class DisplayPowerStateEXT
6327   {
6328     eOff     = VK_DISPLAY_POWER_STATE_OFF_EXT,
6329     eSuspend = VK_DISPLAY_POWER_STATE_SUSPEND_EXT,
6330     eOn      = VK_DISPLAY_POWER_STATE_ON_EXT
6331   };
6332 
to_string(DisplayPowerStateEXT value)6333   VULKAN_HPP_INLINE std::string to_string( DisplayPowerStateEXT value )
6334   {
6335     switch ( value )
6336     {
6337       case DisplayPowerStateEXT::eOff: return "Off";
6338       case DisplayPowerStateEXT::eSuspend: return "Suspend";
6339       case DisplayPowerStateEXT::eOn: return "On";
6340       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6341     }
6342   }
6343 
6344   enum class DeviceEventTypeEXT
6345   {
6346     eDisplayHotplug = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT
6347   };
6348 
to_string(DeviceEventTypeEXT value)6349   VULKAN_HPP_INLINE std::string to_string( DeviceEventTypeEXT value )
6350   {
6351     switch ( value )
6352     {
6353       case DeviceEventTypeEXT::eDisplayHotplug: return "DisplayHotplug";
6354       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6355     }
6356   }
6357 
6358   enum class DisplayEventTypeEXT
6359   {
6360     eFirstPixelOut = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT
6361   };
6362 
to_string(DisplayEventTypeEXT value)6363   VULKAN_HPP_INLINE std::string to_string( DisplayEventTypeEXT value )
6364   {
6365     switch ( value )
6366     {
6367       case DisplayEventTypeEXT::eFirstPixelOut: return "FirstPixelOut";
6368       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6369     }
6370   }
6371 
6372   //=== VK_NV_viewport_swizzle ===
6373 
6374   enum class ViewportCoordinateSwizzleNV
6375   {
6376     ePositiveX = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
6377     eNegativeX = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV,
6378     ePositiveY = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV,
6379     eNegativeY = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV,
6380     ePositiveZ = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV,
6381     eNegativeZ = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV,
6382     ePositiveW = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV,
6383     eNegativeW = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV
6384   };
6385 
to_string(ViewportCoordinateSwizzleNV value)6386   VULKAN_HPP_INLINE std::string to_string( ViewportCoordinateSwizzleNV value )
6387   {
6388     switch ( value )
6389     {
6390       case ViewportCoordinateSwizzleNV::ePositiveX: return "PositiveX";
6391       case ViewportCoordinateSwizzleNV::eNegativeX: return "NegativeX";
6392       case ViewportCoordinateSwizzleNV::ePositiveY: return "PositiveY";
6393       case ViewportCoordinateSwizzleNV::eNegativeY: return "NegativeY";
6394       case ViewportCoordinateSwizzleNV::ePositiveZ: return "PositiveZ";
6395       case ViewportCoordinateSwizzleNV::eNegativeZ: return "NegativeZ";
6396       case ViewportCoordinateSwizzleNV::ePositiveW: return "PositiveW";
6397       case ViewportCoordinateSwizzleNV::eNegativeW: return "NegativeW";
6398       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6399     }
6400   }
6401 
6402   enum class PipelineViewportSwizzleStateCreateFlagBitsNV : VkPipelineViewportSwizzleStateCreateFlagsNV
6403   {
6404   };
6405 
to_string(PipelineViewportSwizzleStateCreateFlagBitsNV)6406   VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagBitsNV )
6407   {
6408     return "(void)";
6409   }
6410 
6411   //=== VK_EXT_discard_rectangles ===
6412 
6413   enum class DiscardRectangleModeEXT
6414   {
6415     eInclusive = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
6416     eExclusive = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT
6417   };
6418 
to_string(DiscardRectangleModeEXT value)6419   VULKAN_HPP_INLINE std::string to_string( DiscardRectangleModeEXT value )
6420   {
6421     switch ( value )
6422     {
6423       case DiscardRectangleModeEXT::eInclusive: return "Inclusive";
6424       case DiscardRectangleModeEXT::eExclusive: return "Exclusive";
6425       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6426     }
6427   }
6428 
6429   enum class PipelineDiscardRectangleStateCreateFlagBitsEXT : VkPipelineDiscardRectangleStateCreateFlagsEXT
6430   {
6431   };
6432 
to_string(PipelineDiscardRectangleStateCreateFlagBitsEXT)6433   VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagBitsEXT )
6434   {
6435     return "(void)";
6436   }
6437 
6438   //=== VK_EXT_conservative_rasterization ===
6439 
6440   enum class ConservativeRasterizationModeEXT
6441   {
6442     eDisabled      = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT,
6443     eOverestimate  = VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,
6444     eUnderestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT
6445   };
6446 
to_string(ConservativeRasterizationModeEXT value)6447   VULKAN_HPP_INLINE std::string to_string( ConservativeRasterizationModeEXT value )
6448   {
6449     switch ( value )
6450     {
6451       case ConservativeRasterizationModeEXT::eDisabled: return "Disabled";
6452       case ConservativeRasterizationModeEXT::eOverestimate: return "Overestimate";
6453       case ConservativeRasterizationModeEXT::eUnderestimate: return "Underestimate";
6454       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6455     }
6456   }
6457 
6458   enum class
6459     PipelineRasterizationConservativeStateCreateFlagBitsEXT : VkPipelineRasterizationConservativeStateCreateFlagsEXT
6460   {
6461   };
6462 
to_string(PipelineRasterizationConservativeStateCreateFlagBitsEXT)6463   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagBitsEXT )
6464   {
6465     return "(void)";
6466   }
6467 
6468   //=== VK_EXT_depth_clip_enable ===
6469 
6470   enum class PipelineRasterizationDepthClipStateCreateFlagBitsEXT : VkPipelineRasterizationDepthClipStateCreateFlagsEXT
6471   {
6472   };
6473 
to_string(PipelineRasterizationDepthClipStateCreateFlagBitsEXT)6474   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagBitsEXT )
6475   {
6476     return "(void)";
6477   }
6478 
6479   //=== VK_KHR_performance_query ===
6480 
6481   enum class PerformanceCounterDescriptionFlagBitsKHR : VkPerformanceCounterDescriptionFlagsKHR
6482   {
6483     ePerformanceImpacting = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
6484     eConcurrentlyImpacted = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR
6485   };
6486 
to_string(PerformanceCounterDescriptionFlagBitsKHR value)6487   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterDescriptionFlagBitsKHR value )
6488   {
6489     switch ( value )
6490     {
6491       case PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting: return "PerformanceImpacting";
6492       case PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted: return "ConcurrentlyImpacted";
6493       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6494     }
6495   }
6496 
6497   enum class PerformanceCounterScopeKHR
6498   {
6499     eCommandBuffer             = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
6500     eRenderPass                = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
6501     eCommand                   = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
6502     eVkQueryScopeCommandBuffer = VK_QUERY_SCOPE_COMMAND_BUFFER_KHR,
6503     eVkQueryScopeCommand       = VK_QUERY_SCOPE_COMMAND_KHR,
6504     eVkQueryScopeRenderPass    = VK_QUERY_SCOPE_RENDER_PASS_KHR
6505   };
6506 
to_string(PerformanceCounterScopeKHR value)6507   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterScopeKHR value )
6508   {
6509     switch ( value )
6510     {
6511       case PerformanceCounterScopeKHR::eCommandBuffer: return "CommandBuffer";
6512       case PerformanceCounterScopeKHR::eRenderPass: return "RenderPass";
6513       case PerformanceCounterScopeKHR::eCommand: return "Command";
6514       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6515     }
6516   }
6517 
6518   enum class PerformanceCounterStorageKHR
6519   {
6520     eInt32   = VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR,
6521     eInt64   = VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR,
6522     eUint32  = VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR,
6523     eUint64  = VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR,
6524     eFloat32 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR,
6525     eFloat64 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR
6526   };
6527 
to_string(PerformanceCounterStorageKHR value)6528   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterStorageKHR value )
6529   {
6530     switch ( value )
6531     {
6532       case PerformanceCounterStorageKHR::eInt32: return "Int32";
6533       case PerformanceCounterStorageKHR::eInt64: return "Int64";
6534       case PerformanceCounterStorageKHR::eUint32: return "Uint32";
6535       case PerformanceCounterStorageKHR::eUint64: return "Uint64";
6536       case PerformanceCounterStorageKHR::eFloat32: return "Float32";
6537       case PerformanceCounterStorageKHR::eFloat64: return "Float64";
6538       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6539     }
6540   }
6541 
6542   enum class PerformanceCounterUnitKHR
6543   {
6544     eGeneric        = VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR,
6545     ePercentage     = VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR,
6546     eNanoseconds    = VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR,
6547     eBytes          = VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR,
6548     eBytesPerSecond = VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR,
6549     eKelvin         = VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR,
6550     eWatts          = VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR,
6551     eVolts          = VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR,
6552     eAmps           = VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR,
6553     eHertz          = VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR,
6554     eCycles         = VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR
6555   };
6556 
to_string(PerformanceCounterUnitKHR value)6557   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterUnitKHR value )
6558   {
6559     switch ( value )
6560     {
6561       case PerformanceCounterUnitKHR::eGeneric: return "Generic";
6562       case PerformanceCounterUnitKHR::ePercentage: return "Percentage";
6563       case PerformanceCounterUnitKHR::eNanoseconds: return "Nanoseconds";
6564       case PerformanceCounterUnitKHR::eBytes: return "Bytes";
6565       case PerformanceCounterUnitKHR::eBytesPerSecond: return "BytesPerSecond";
6566       case PerformanceCounterUnitKHR::eKelvin: return "Kelvin";
6567       case PerformanceCounterUnitKHR::eWatts: return "Watts";
6568       case PerformanceCounterUnitKHR::eVolts: return "Volts";
6569       case PerformanceCounterUnitKHR::eAmps: return "Amps";
6570       case PerformanceCounterUnitKHR::eHertz: return "Hertz";
6571       case PerformanceCounterUnitKHR::eCycles: return "Cycles";
6572       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6573     }
6574   }
6575 
6576   enum class AcquireProfilingLockFlagBitsKHR : VkAcquireProfilingLockFlagsKHR
6577   {
6578   };
6579 
to_string(AcquireProfilingLockFlagBitsKHR)6580   VULKAN_HPP_INLINE std::string to_string( AcquireProfilingLockFlagBitsKHR )
6581   {
6582     return "(void)";
6583   }
6584 
6585 #if defined( VK_USE_PLATFORM_IOS_MVK )
6586   //=== VK_MVK_ios_surface ===
6587 
6588   enum class IOSSurfaceCreateFlagBitsMVK : VkIOSSurfaceCreateFlagsMVK
6589   {
6590   };
6591 
to_string(IOSSurfaceCreateFlagBitsMVK)6592   VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagBitsMVK )
6593   {
6594     return "(void)";
6595   }
6596 #endif /*VK_USE_PLATFORM_IOS_MVK*/
6597 
6598 #if defined( VK_USE_PLATFORM_MACOS_MVK )
6599   //=== VK_MVK_macos_surface ===
6600 
6601   enum class MacOSSurfaceCreateFlagBitsMVK : VkMacOSSurfaceCreateFlagsMVK
6602   {
6603   };
6604 
to_string(MacOSSurfaceCreateFlagBitsMVK)6605   VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagBitsMVK )
6606   {
6607     return "(void)";
6608   }
6609 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
6610 
6611   //=== VK_EXT_debug_utils ===
6612 
6613   enum class DebugUtilsMessageSeverityFlagBitsEXT : VkDebugUtilsMessageSeverityFlagsEXT
6614   {
6615     eVerbose = VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,
6616     eInfo    = VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,
6617     eWarning = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,
6618     eError   = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT
6619   };
6620 
to_string(DebugUtilsMessageSeverityFlagBitsEXT value)6621   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagBitsEXT value )
6622   {
6623     switch ( value )
6624     {
6625       case DebugUtilsMessageSeverityFlagBitsEXT::eVerbose: return "Verbose";
6626       case DebugUtilsMessageSeverityFlagBitsEXT::eInfo: return "Info";
6627       case DebugUtilsMessageSeverityFlagBitsEXT::eWarning: return "Warning";
6628       case DebugUtilsMessageSeverityFlagBitsEXT::eError: return "Error";
6629       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6630     }
6631   }
6632 
6633   enum class DebugUtilsMessageTypeFlagBitsEXT : VkDebugUtilsMessageTypeFlagsEXT
6634   {
6635     eGeneral     = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,
6636     eValidation  = VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,
6637     ePerformance = VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT
6638   };
6639 
to_string(DebugUtilsMessageTypeFlagBitsEXT value)6640   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagBitsEXT value )
6641   {
6642     switch ( value )
6643     {
6644       case DebugUtilsMessageTypeFlagBitsEXT::eGeneral: return "General";
6645       case DebugUtilsMessageTypeFlagBitsEXT::eValidation: return "Validation";
6646       case DebugUtilsMessageTypeFlagBitsEXT::ePerformance: return "Performance";
6647       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6648     }
6649   }
6650 
6651   enum class DebugUtilsMessengerCallbackDataFlagBitsEXT : VkDebugUtilsMessengerCallbackDataFlagsEXT
6652   {
6653   };
6654 
to_string(DebugUtilsMessengerCallbackDataFlagBitsEXT)6655   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagBitsEXT )
6656   {
6657     return "(void)";
6658   }
6659 
6660   enum class DebugUtilsMessengerCreateFlagBitsEXT : VkDebugUtilsMessengerCreateFlagsEXT
6661   {
6662   };
6663 
to_string(DebugUtilsMessengerCreateFlagBitsEXT)6664   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagBitsEXT )
6665   {
6666     return "(void)";
6667   }
6668 
6669   //=== VK_EXT_blend_operation_advanced ===
6670 
6671   enum class BlendOverlapEXT
6672   {
6673     eUncorrelated = VK_BLEND_OVERLAP_UNCORRELATED_EXT,
6674     eDisjoint     = VK_BLEND_OVERLAP_DISJOINT_EXT,
6675     eConjoint     = VK_BLEND_OVERLAP_CONJOINT_EXT
6676   };
6677 
to_string(BlendOverlapEXT value)6678   VULKAN_HPP_INLINE std::string to_string( BlendOverlapEXT value )
6679   {
6680     switch ( value )
6681     {
6682       case BlendOverlapEXT::eUncorrelated: return "Uncorrelated";
6683       case BlendOverlapEXT::eDisjoint: return "Disjoint";
6684       case BlendOverlapEXT::eConjoint: return "Conjoint";
6685       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6686     }
6687   }
6688 
6689   //=== VK_NV_fragment_coverage_to_color ===
6690 
6691   enum class PipelineCoverageToColorStateCreateFlagBitsNV : VkPipelineCoverageToColorStateCreateFlagsNV
6692   {
6693   };
6694 
to_string(PipelineCoverageToColorStateCreateFlagBitsNV)6695   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagBitsNV )
6696   {
6697     return "(void)";
6698   }
6699 
6700   //=== VK_KHR_acceleration_structure ===
6701 
6702   enum class AccelerationStructureTypeKHR
6703   {
6704     eTopLevel    = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
6705     eBottomLevel = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
6706     eGeneric     = VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
6707   };
6708   using AccelerationStructureTypeNV = AccelerationStructureTypeKHR;
6709 
to_string(AccelerationStructureTypeKHR value)6710   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureTypeKHR value )
6711   {
6712     switch ( value )
6713     {
6714       case AccelerationStructureTypeKHR::eTopLevel: return "TopLevel";
6715       case AccelerationStructureTypeKHR::eBottomLevel: return "BottomLevel";
6716       case AccelerationStructureTypeKHR::eGeneric: return "Generic";
6717       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6718     }
6719   }
6720 
6721   enum class AccelerationStructureBuildTypeKHR
6722   {
6723     eHost         = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR,
6724     eDevice       = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR,
6725     eHostOrDevice = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR
6726   };
6727 
to_string(AccelerationStructureBuildTypeKHR value)6728   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureBuildTypeKHR value )
6729   {
6730     switch ( value )
6731     {
6732       case AccelerationStructureBuildTypeKHR::eHost: return "Host";
6733       case AccelerationStructureBuildTypeKHR::eDevice: return "Device";
6734       case AccelerationStructureBuildTypeKHR::eHostOrDevice: return "HostOrDevice";
6735       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6736     }
6737   }
6738 
6739   enum class GeometryFlagBitsKHR : VkGeometryFlagsKHR
6740   {
6741     eOpaque                      = VK_GEOMETRY_OPAQUE_BIT_KHR,
6742     eNoDuplicateAnyHitInvocation = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR
6743   };
6744   using GeometryFlagBitsNV = GeometryFlagBitsKHR;
6745 
to_string(GeometryFlagBitsKHR value)6746   VULKAN_HPP_INLINE std::string to_string( GeometryFlagBitsKHR value )
6747   {
6748     switch ( value )
6749     {
6750       case GeometryFlagBitsKHR::eOpaque: return "Opaque";
6751       case GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation: return "NoDuplicateAnyHitInvocation";
6752       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6753     }
6754   }
6755 
6756   enum class GeometryInstanceFlagBitsKHR : VkGeometryInstanceFlagsKHR
6757   {
6758     eTriangleFacingCullDisable        = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
6759     eTriangleFlipFacing               = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
6760     eForceOpaque                      = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
6761     eForceNoOpaque                    = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
6762     eTriangleCullDisable              = VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV,
6763     eTriangleFrontCounterclockwiseKHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
6764     eTriangleFrontCounterclockwise    = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV
6765   };
6766   using GeometryInstanceFlagBitsNV = GeometryInstanceFlagBitsKHR;
6767 
to_string(GeometryInstanceFlagBitsKHR value)6768   VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagBitsKHR value )
6769   {
6770     switch ( value )
6771     {
6772       case GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable: return "TriangleFacingCullDisable";
6773       case GeometryInstanceFlagBitsKHR::eTriangleFlipFacing: return "TriangleFlipFacing";
6774       case GeometryInstanceFlagBitsKHR::eForceOpaque: return "ForceOpaque";
6775       case GeometryInstanceFlagBitsKHR::eForceNoOpaque: return "ForceNoOpaque";
6776       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6777     }
6778   }
6779 
6780   enum class BuildAccelerationStructureFlagBitsKHR : VkBuildAccelerationStructureFlagsKHR
6781   {
6782     eAllowUpdate     = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
6783     eAllowCompaction = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
6784     ePreferFastTrace = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
6785     ePreferFastBuild = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
6786     eLowMemory       = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
6787     eMotionNV        = VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV
6788   };
6789   using BuildAccelerationStructureFlagBitsNV = BuildAccelerationStructureFlagBitsKHR;
6790 
to_string(BuildAccelerationStructureFlagBitsKHR value)6791   VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagBitsKHR value )
6792   {
6793     switch ( value )
6794     {
6795       case BuildAccelerationStructureFlagBitsKHR::eAllowUpdate: return "AllowUpdate";
6796       case BuildAccelerationStructureFlagBitsKHR::eAllowCompaction: return "AllowCompaction";
6797       case BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace: return "PreferFastTrace";
6798       case BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild: return "PreferFastBuild";
6799       case BuildAccelerationStructureFlagBitsKHR::eLowMemory: return "LowMemory";
6800       case BuildAccelerationStructureFlagBitsKHR::eMotionNV: return "MotionNV";
6801       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6802     }
6803   }
6804 
6805   enum class CopyAccelerationStructureModeKHR
6806   {
6807     eClone       = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
6808     eCompact     = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
6809     eSerialize   = VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR,
6810     eDeserialize = VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR
6811   };
6812   using CopyAccelerationStructureModeNV = CopyAccelerationStructureModeKHR;
6813 
to_string(CopyAccelerationStructureModeKHR value)6814   VULKAN_HPP_INLINE std::string to_string( CopyAccelerationStructureModeKHR value )
6815   {
6816     switch ( value )
6817     {
6818       case CopyAccelerationStructureModeKHR::eClone: return "Clone";
6819       case CopyAccelerationStructureModeKHR::eCompact: return "Compact";
6820       case CopyAccelerationStructureModeKHR::eSerialize: return "Serialize";
6821       case CopyAccelerationStructureModeKHR::eDeserialize: return "Deserialize";
6822       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6823     }
6824   }
6825 
6826   enum class GeometryTypeKHR
6827   {
6828     eTriangles = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
6829     eAabbs     = VK_GEOMETRY_TYPE_AABBS_KHR,
6830     eInstances = VK_GEOMETRY_TYPE_INSTANCES_KHR
6831   };
6832   using GeometryTypeNV = GeometryTypeKHR;
6833 
to_string(GeometryTypeKHR value)6834   VULKAN_HPP_INLINE std::string to_string( GeometryTypeKHR value )
6835   {
6836     switch ( value )
6837     {
6838       case GeometryTypeKHR::eTriangles: return "Triangles";
6839       case GeometryTypeKHR::eAabbs: return "Aabbs";
6840       case GeometryTypeKHR::eInstances: return "Instances";
6841       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6842     }
6843   }
6844 
6845   enum class AccelerationStructureCompatibilityKHR
6846   {
6847     eCompatible   = VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR,
6848     eIncompatible = VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR
6849   };
6850 
to_string(AccelerationStructureCompatibilityKHR value)6851   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureCompatibilityKHR value )
6852   {
6853     switch ( value )
6854     {
6855       case AccelerationStructureCompatibilityKHR::eCompatible: return "Compatible";
6856       case AccelerationStructureCompatibilityKHR::eIncompatible: return "Incompatible";
6857       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6858     }
6859   }
6860 
6861   enum class AccelerationStructureCreateFlagBitsKHR : VkAccelerationStructureCreateFlagsKHR
6862   {
6863     eDeviceAddressCaptureReplay = VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,
6864     eMotionNV                   = VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV
6865   };
6866 
to_string(AccelerationStructureCreateFlagBitsKHR value)6867   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureCreateFlagBitsKHR value )
6868   {
6869     switch ( value )
6870     {
6871       case AccelerationStructureCreateFlagBitsKHR::eDeviceAddressCaptureReplay: return "DeviceAddressCaptureReplay";
6872       case AccelerationStructureCreateFlagBitsKHR::eMotionNV: return "MotionNV";
6873       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6874     }
6875   }
6876 
6877   enum class BuildAccelerationStructureModeKHR
6878   {
6879     eBuild  = VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR,
6880     eUpdate = VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR
6881   };
6882 
to_string(BuildAccelerationStructureModeKHR value)6883   VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureModeKHR value )
6884   {
6885     switch ( value )
6886     {
6887       case BuildAccelerationStructureModeKHR::eBuild: return "Build";
6888       case BuildAccelerationStructureModeKHR::eUpdate: return "Update";
6889       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6890     }
6891   }
6892 
6893   //=== VK_NV_framebuffer_mixed_samples ===
6894 
6895   enum class CoverageModulationModeNV
6896   {
6897     eNone  = VK_COVERAGE_MODULATION_MODE_NONE_NV,
6898     eRgb   = VK_COVERAGE_MODULATION_MODE_RGB_NV,
6899     eAlpha = VK_COVERAGE_MODULATION_MODE_ALPHA_NV,
6900     eRgba  = VK_COVERAGE_MODULATION_MODE_RGBA_NV
6901   };
6902 
to_string(CoverageModulationModeNV value)6903   VULKAN_HPP_INLINE std::string to_string( CoverageModulationModeNV value )
6904   {
6905     switch ( value )
6906     {
6907       case CoverageModulationModeNV::eNone: return "None";
6908       case CoverageModulationModeNV::eRgb: return "Rgb";
6909       case CoverageModulationModeNV::eAlpha: return "Alpha";
6910       case CoverageModulationModeNV::eRgba: return "Rgba";
6911       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6912     }
6913   }
6914 
6915   enum class PipelineCoverageModulationStateCreateFlagBitsNV : VkPipelineCoverageModulationStateCreateFlagsNV
6916   {
6917   };
6918 
to_string(PipelineCoverageModulationStateCreateFlagBitsNV)6919   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagBitsNV )
6920   {
6921     return "(void)";
6922   }
6923 
6924   //=== VK_EXT_validation_cache ===
6925 
6926   enum class ValidationCacheHeaderVersionEXT
6927   {
6928     eOne = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT
6929   };
6930 
to_string(ValidationCacheHeaderVersionEXT value)6931   VULKAN_HPP_INLINE std::string to_string( ValidationCacheHeaderVersionEXT value )
6932   {
6933     switch ( value )
6934     {
6935       case ValidationCacheHeaderVersionEXT::eOne: return "One";
6936       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6937     }
6938   }
6939 
6940   enum class ValidationCacheCreateFlagBitsEXT : VkValidationCacheCreateFlagsEXT
6941   {
6942   };
6943 
to_string(ValidationCacheCreateFlagBitsEXT)6944   VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagBitsEXT )
6945   {
6946     return "(void)";
6947   }
6948 
6949   //=== VK_NV_shading_rate_image ===
6950 
6951   enum class ShadingRatePaletteEntryNV
6952   {
6953     eNoInvocations           = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV,
6954     e16InvocationsPerPixel   = VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV,
6955     e8InvocationsPerPixel    = VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV,
6956     e4InvocationsPerPixel    = VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV,
6957     e2InvocationsPerPixel    = VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV,
6958     e1InvocationPerPixel     = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV,
6959     e1InvocationPer2X1Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV,
6960     e1InvocationPer1X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV,
6961     e1InvocationPer2X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV,
6962     e1InvocationPer4X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV,
6963     e1InvocationPer2X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV,
6964     e1InvocationPer4X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV
6965   };
6966 
to_string(ShadingRatePaletteEntryNV value)6967   VULKAN_HPP_INLINE std::string to_string( ShadingRatePaletteEntryNV value )
6968   {
6969     switch ( value )
6970     {
6971       case ShadingRatePaletteEntryNV::eNoInvocations: return "NoInvocations";
6972       case ShadingRatePaletteEntryNV::e16InvocationsPerPixel: return "16InvocationsPerPixel";
6973       case ShadingRatePaletteEntryNV::e8InvocationsPerPixel: return "8InvocationsPerPixel";
6974       case ShadingRatePaletteEntryNV::e4InvocationsPerPixel: return "4InvocationsPerPixel";
6975       case ShadingRatePaletteEntryNV::e2InvocationsPerPixel: return "2InvocationsPerPixel";
6976       case ShadingRatePaletteEntryNV::e1InvocationPerPixel: return "1InvocationPerPixel";
6977       case ShadingRatePaletteEntryNV::e1InvocationPer2X1Pixels: return "1InvocationPer2X1Pixels";
6978       case ShadingRatePaletteEntryNV::e1InvocationPer1X2Pixels: return "1InvocationPer1X2Pixels";
6979       case ShadingRatePaletteEntryNV::e1InvocationPer2X2Pixels: return "1InvocationPer2X2Pixels";
6980       case ShadingRatePaletteEntryNV::e1InvocationPer4X2Pixels: return "1InvocationPer4X2Pixels";
6981       case ShadingRatePaletteEntryNV::e1InvocationPer2X4Pixels: return "1InvocationPer2X4Pixels";
6982       case ShadingRatePaletteEntryNV::e1InvocationPer4X4Pixels: return "1InvocationPer4X4Pixels";
6983       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6984     }
6985   }
6986 
6987   enum class CoarseSampleOrderTypeNV
6988   {
6989     eDefault     = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV,
6990     eCustom      = VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV,
6991     ePixelMajor  = VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV,
6992     eSampleMajor = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV
6993   };
6994 
to_string(CoarseSampleOrderTypeNV value)6995   VULKAN_HPP_INLINE std::string to_string( CoarseSampleOrderTypeNV value )
6996   {
6997     switch ( value )
6998     {
6999       case CoarseSampleOrderTypeNV::eDefault: return "Default";
7000       case CoarseSampleOrderTypeNV::eCustom: return "Custom";
7001       case CoarseSampleOrderTypeNV::ePixelMajor: return "PixelMajor";
7002       case CoarseSampleOrderTypeNV::eSampleMajor: return "SampleMajor";
7003       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7004     }
7005   }
7006 
7007   //=== VK_NV_ray_tracing ===
7008 
7009   enum class AccelerationStructureMemoryRequirementsTypeNV
7010   {
7011     eObject        = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV,
7012     eBuildScratch  = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV,
7013     eUpdateScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV
7014   };
7015 
to_string(AccelerationStructureMemoryRequirementsTypeNV value)7016   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMemoryRequirementsTypeNV value )
7017   {
7018     switch ( value )
7019     {
7020       case AccelerationStructureMemoryRequirementsTypeNV::eObject: return "Object";
7021       case AccelerationStructureMemoryRequirementsTypeNV::eBuildScratch: return "BuildScratch";
7022       case AccelerationStructureMemoryRequirementsTypeNV::eUpdateScratch: return "UpdateScratch";
7023       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7024     }
7025   }
7026 
7027   //=== VK_EXT_global_priority ===
7028 
7029   enum class QueueGlobalPriorityEXT
7030   {
7031     eLow      = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT,
7032     eMedium   = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT,
7033     eHigh     = VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT,
7034     eRealtime = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT
7035   };
7036 
to_string(QueueGlobalPriorityEXT value)7037   VULKAN_HPP_INLINE std::string to_string( QueueGlobalPriorityEXT value )
7038   {
7039     switch ( value )
7040     {
7041       case QueueGlobalPriorityEXT::eLow: return "Low";
7042       case QueueGlobalPriorityEXT::eMedium: return "Medium";
7043       case QueueGlobalPriorityEXT::eHigh: return "High";
7044       case QueueGlobalPriorityEXT::eRealtime: return "Realtime";
7045       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7046     }
7047   }
7048 
7049   //=== VK_AMD_pipeline_compiler_control ===
7050 
7051   enum class PipelineCompilerControlFlagBitsAMD : VkPipelineCompilerControlFlagsAMD
7052   {
7053   };
7054 
to_string(PipelineCompilerControlFlagBitsAMD)7055   VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagBitsAMD )
7056   {
7057     return "(void)";
7058   }
7059 
7060   //=== VK_EXT_calibrated_timestamps ===
7061 
7062   enum class TimeDomainEXT
7063   {
7064     eDevice                  = VK_TIME_DOMAIN_DEVICE_EXT,
7065     eClockMonotonic          = VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT,
7066     eClockMonotonicRaw       = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT,
7067     eQueryPerformanceCounter = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT
7068   };
7069 
to_string(TimeDomainEXT value)7070   VULKAN_HPP_INLINE std::string to_string( TimeDomainEXT value )
7071   {
7072     switch ( value )
7073     {
7074       case TimeDomainEXT::eDevice: return "Device";
7075       case TimeDomainEXT::eClockMonotonic: return "ClockMonotonic";
7076       case TimeDomainEXT::eClockMonotonicRaw: return "ClockMonotonicRaw";
7077       case TimeDomainEXT::eQueryPerformanceCounter: return "QueryPerformanceCounter";
7078       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7079     }
7080   }
7081 
7082 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7083   //=== VK_EXT_video_decode_h265 ===
7084 
7085   enum class VideoDecodeH265CreateFlagBitsEXT : VkVideoDecodeH265CreateFlagsEXT
7086   {
7087   };
7088 
to_string(VideoDecodeH265CreateFlagBitsEXT)7089   VULKAN_HPP_INLINE std::string to_string( VideoDecodeH265CreateFlagBitsEXT )
7090   {
7091     return "(void)";
7092   }
7093 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7094 
7095   //=== VK_AMD_memory_overallocation_behavior ===
7096 
7097   enum class MemoryOverallocationBehaviorAMD
7098   {
7099     eDefault    = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD,
7100     eAllowed    = VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD,
7101     eDisallowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD
7102   };
7103 
to_string(MemoryOverallocationBehaviorAMD value)7104   VULKAN_HPP_INLINE std::string to_string( MemoryOverallocationBehaviorAMD value )
7105   {
7106     switch ( value )
7107     {
7108       case MemoryOverallocationBehaviorAMD::eDefault: return "Default";
7109       case MemoryOverallocationBehaviorAMD::eAllowed: return "Allowed";
7110       case MemoryOverallocationBehaviorAMD::eDisallowed: return "Disallowed";
7111       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7112     }
7113   }
7114 
7115   //=== VK_EXT_pipeline_creation_feedback ===
7116 
7117   enum class PipelineCreationFeedbackFlagBitsEXT : VkPipelineCreationFeedbackFlagsEXT
7118   {
7119     eValid                       = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT,
7120     eApplicationPipelineCacheHit = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT,
7121     eBasePipelineAcceleration    = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT
7122   };
7123 
to_string(PipelineCreationFeedbackFlagBitsEXT value)7124   VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagBitsEXT value )
7125   {
7126     switch ( value )
7127     {
7128       case PipelineCreationFeedbackFlagBitsEXT::eValid: return "Valid";
7129       case PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit: return "ApplicationPipelineCacheHit";
7130       case PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration: return "BasePipelineAcceleration";
7131       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7132     }
7133   }
7134 
7135   //=== VK_INTEL_performance_query ===
7136 
7137   enum class PerformanceConfigurationTypeINTEL
7138   {
7139     eCommandQueueMetricsDiscoveryActivated =
7140       VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL
7141   };
7142 
to_string(PerformanceConfigurationTypeINTEL value)7143   VULKAN_HPP_INLINE std::string to_string( PerformanceConfigurationTypeINTEL value )
7144   {
7145     switch ( value )
7146     {
7147       case PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated:
7148         return "CommandQueueMetricsDiscoveryActivated";
7149       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7150     }
7151   }
7152 
7153   enum class QueryPoolSamplingModeINTEL
7154   {
7155     eManual = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL
7156   };
7157 
to_string(QueryPoolSamplingModeINTEL value)7158   VULKAN_HPP_INLINE std::string to_string( QueryPoolSamplingModeINTEL value )
7159   {
7160     switch ( value )
7161     {
7162       case QueryPoolSamplingModeINTEL::eManual: return "Manual";
7163       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7164     }
7165   }
7166 
7167   enum class PerformanceOverrideTypeINTEL
7168   {
7169     eNullHardware   = VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL,
7170     eFlushGpuCaches = VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL
7171   };
7172 
to_string(PerformanceOverrideTypeINTEL value)7173   VULKAN_HPP_INLINE std::string to_string( PerformanceOverrideTypeINTEL value )
7174   {
7175     switch ( value )
7176     {
7177       case PerformanceOverrideTypeINTEL::eNullHardware: return "NullHardware";
7178       case PerformanceOverrideTypeINTEL::eFlushGpuCaches: return "FlushGpuCaches";
7179       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7180     }
7181   }
7182 
7183   enum class PerformanceParameterTypeINTEL
7184   {
7185     eHwCountersSupported   = VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL,
7186     eStreamMarkerValidBits = VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL
7187   };
7188 
to_string(PerformanceParameterTypeINTEL value)7189   VULKAN_HPP_INLINE std::string to_string( PerformanceParameterTypeINTEL value )
7190   {
7191     switch ( value )
7192     {
7193       case PerformanceParameterTypeINTEL::eHwCountersSupported: return "HwCountersSupported";
7194       case PerformanceParameterTypeINTEL::eStreamMarkerValidBits: return "StreamMarkerValidBits";
7195       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7196     }
7197   }
7198 
7199   enum class PerformanceValueTypeINTEL
7200   {
7201     eUint32 = VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL,
7202     eUint64 = VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL,
7203     eFloat  = VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL,
7204     eBool   = VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL,
7205     eString = VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL
7206   };
7207 
to_string(PerformanceValueTypeINTEL value)7208   VULKAN_HPP_INLINE std::string to_string( PerformanceValueTypeINTEL value )
7209   {
7210     switch ( value )
7211     {
7212       case PerformanceValueTypeINTEL::eUint32: return "Uint32";
7213       case PerformanceValueTypeINTEL::eUint64: return "Uint64";
7214       case PerformanceValueTypeINTEL::eFloat: return "Float";
7215       case PerformanceValueTypeINTEL::eBool: return "Bool";
7216       case PerformanceValueTypeINTEL::eString: return "String";
7217       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7218     }
7219   }
7220 
7221 #if defined( VK_USE_PLATFORM_FUCHSIA )
7222   //=== VK_FUCHSIA_imagepipe_surface ===
7223 
7224   enum class ImagePipeSurfaceCreateFlagBitsFUCHSIA : VkImagePipeSurfaceCreateFlagsFUCHSIA
7225   {
7226   };
7227 
to_string(ImagePipeSurfaceCreateFlagBitsFUCHSIA)7228   VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagBitsFUCHSIA )
7229   {
7230     return "(void)";
7231   }
7232 #endif /*VK_USE_PLATFORM_FUCHSIA*/
7233 
7234 #if defined( VK_USE_PLATFORM_METAL_EXT )
7235   //=== VK_EXT_metal_surface ===
7236 
7237   enum class MetalSurfaceCreateFlagBitsEXT : VkMetalSurfaceCreateFlagsEXT
7238   {
7239   };
7240 
to_string(MetalSurfaceCreateFlagBitsEXT)7241   VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagBitsEXT )
7242   {
7243     return "(void)";
7244   }
7245 #endif /*VK_USE_PLATFORM_METAL_EXT*/
7246 
7247   //=== VK_KHR_fragment_shading_rate ===
7248 
7249   enum class FragmentShadingRateCombinerOpKHR
7250   {
7251     eKeep    = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR,
7252     eReplace = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR,
7253     eMin     = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR,
7254     eMax     = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR,
7255     eMul     = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR
7256   };
7257 
to_string(FragmentShadingRateCombinerOpKHR value)7258   VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateCombinerOpKHR value )
7259   {
7260     switch ( value )
7261     {
7262       case FragmentShadingRateCombinerOpKHR::eKeep: return "Keep";
7263       case FragmentShadingRateCombinerOpKHR::eReplace: return "Replace";
7264       case FragmentShadingRateCombinerOpKHR::eMin: return "Min";
7265       case FragmentShadingRateCombinerOpKHR::eMax: return "Max";
7266       case FragmentShadingRateCombinerOpKHR::eMul: return "Mul";
7267       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7268     }
7269   }
7270 
7271   //=== VK_AMD_shader_core_properties2 ===
7272 
7273   enum class ShaderCorePropertiesFlagBitsAMD : VkShaderCorePropertiesFlagsAMD
7274   {
7275   };
7276 
to_string(ShaderCorePropertiesFlagBitsAMD)7277   VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagBitsAMD )
7278   {
7279     return "(void)";
7280   }
7281 
7282   //=== VK_EXT_tooling_info ===
7283 
7284   enum class ToolPurposeFlagBitsEXT : VkToolPurposeFlagsEXT
7285   {
7286     eValidation         = VK_TOOL_PURPOSE_VALIDATION_BIT_EXT,
7287     eProfiling          = VK_TOOL_PURPOSE_PROFILING_BIT_EXT,
7288     eTracing            = VK_TOOL_PURPOSE_TRACING_BIT_EXT,
7289     eAdditionalFeatures = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT,
7290     eModifyingFeatures  = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT,
7291     eDebugReporting     = VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT,
7292     eDebugMarkers       = VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT
7293   };
7294 
to_string(ToolPurposeFlagBitsEXT value)7295   VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagBitsEXT value )
7296   {
7297     switch ( value )
7298     {
7299       case ToolPurposeFlagBitsEXT::eValidation: return "Validation";
7300       case ToolPurposeFlagBitsEXT::eProfiling: return "Profiling";
7301       case ToolPurposeFlagBitsEXT::eTracing: return "Tracing";
7302       case ToolPurposeFlagBitsEXT::eAdditionalFeatures: return "AdditionalFeatures";
7303       case ToolPurposeFlagBitsEXT::eModifyingFeatures: return "ModifyingFeatures";
7304       case ToolPurposeFlagBitsEXT::eDebugReporting: return "DebugReporting";
7305       case ToolPurposeFlagBitsEXT::eDebugMarkers: return "DebugMarkers";
7306       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7307     }
7308   }
7309 
7310   //=== VK_EXT_validation_features ===
7311 
7312   enum class ValidationFeatureEnableEXT
7313   {
7314     eGpuAssisted                   = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,
7315     eGpuAssistedReserveBindingSlot = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT,
7316     eBestPractices                 = VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,
7317     eDebugPrintf                   = VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT,
7318     eSynchronizationValidation     = VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT
7319   };
7320 
to_string(ValidationFeatureEnableEXT value)7321   VULKAN_HPP_INLINE std::string to_string( ValidationFeatureEnableEXT value )
7322   {
7323     switch ( value )
7324     {
7325       case ValidationFeatureEnableEXT::eGpuAssisted: return "GpuAssisted";
7326       case ValidationFeatureEnableEXT::eGpuAssistedReserveBindingSlot: return "GpuAssistedReserveBindingSlot";
7327       case ValidationFeatureEnableEXT::eBestPractices: return "BestPractices";
7328       case ValidationFeatureEnableEXT::eDebugPrintf: return "DebugPrintf";
7329       case ValidationFeatureEnableEXT::eSynchronizationValidation: return "SynchronizationValidation";
7330       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7331     }
7332   }
7333 
7334   enum class ValidationFeatureDisableEXT
7335   {
7336     eAll                   = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT,
7337     eShaders               = VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT,
7338     eThreadSafety          = VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT,
7339     eApiParameters         = VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT,
7340     eObjectLifetimes       = VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT,
7341     eCoreChecks            = VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT,
7342     eUniqueHandles         = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT,
7343     eShaderValidationCache = VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT
7344   };
7345 
to_string(ValidationFeatureDisableEXT value)7346   VULKAN_HPP_INLINE std::string to_string( ValidationFeatureDisableEXT value )
7347   {
7348     switch ( value )
7349     {
7350       case ValidationFeatureDisableEXT::eAll: return "All";
7351       case ValidationFeatureDisableEXT::eShaders: return "Shaders";
7352       case ValidationFeatureDisableEXT::eThreadSafety: return "ThreadSafety";
7353       case ValidationFeatureDisableEXT::eApiParameters: return "ApiParameters";
7354       case ValidationFeatureDisableEXT::eObjectLifetimes: return "ObjectLifetimes";
7355       case ValidationFeatureDisableEXT::eCoreChecks: return "CoreChecks";
7356       case ValidationFeatureDisableEXT::eUniqueHandles: return "UniqueHandles";
7357       case ValidationFeatureDisableEXT::eShaderValidationCache: return "ShaderValidationCache";
7358       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7359     }
7360   }
7361 
7362   //=== VK_NV_cooperative_matrix ===
7363 
7364   enum class ScopeNV
7365   {
7366     eDevice      = VK_SCOPE_DEVICE_NV,
7367     eWorkgroup   = VK_SCOPE_WORKGROUP_NV,
7368     eSubgroup    = VK_SCOPE_SUBGROUP_NV,
7369     eQueueFamily = VK_SCOPE_QUEUE_FAMILY_NV
7370   };
7371 
to_string(ScopeNV value)7372   VULKAN_HPP_INLINE std::string to_string( ScopeNV value )
7373   {
7374     switch ( value )
7375     {
7376       case ScopeNV::eDevice: return "Device";
7377       case ScopeNV::eWorkgroup: return "Workgroup";
7378       case ScopeNV::eSubgroup: return "Subgroup";
7379       case ScopeNV::eQueueFamily: return "QueueFamily";
7380       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7381     }
7382   }
7383 
7384   enum class ComponentTypeNV
7385   {
7386     eFloat16 = VK_COMPONENT_TYPE_FLOAT16_NV,
7387     eFloat32 = VK_COMPONENT_TYPE_FLOAT32_NV,
7388     eFloat64 = VK_COMPONENT_TYPE_FLOAT64_NV,
7389     eSint8   = VK_COMPONENT_TYPE_SINT8_NV,
7390     eSint16  = VK_COMPONENT_TYPE_SINT16_NV,
7391     eSint32  = VK_COMPONENT_TYPE_SINT32_NV,
7392     eSint64  = VK_COMPONENT_TYPE_SINT64_NV,
7393     eUint8   = VK_COMPONENT_TYPE_UINT8_NV,
7394     eUint16  = VK_COMPONENT_TYPE_UINT16_NV,
7395     eUint32  = VK_COMPONENT_TYPE_UINT32_NV,
7396     eUint64  = VK_COMPONENT_TYPE_UINT64_NV
7397   };
7398 
to_string(ComponentTypeNV value)7399   VULKAN_HPP_INLINE std::string to_string( ComponentTypeNV value )
7400   {
7401     switch ( value )
7402     {
7403       case ComponentTypeNV::eFloat16: return "Float16";
7404       case ComponentTypeNV::eFloat32: return "Float32";
7405       case ComponentTypeNV::eFloat64: return "Float64";
7406       case ComponentTypeNV::eSint8: return "Sint8";
7407       case ComponentTypeNV::eSint16: return "Sint16";
7408       case ComponentTypeNV::eSint32: return "Sint32";
7409       case ComponentTypeNV::eSint64: return "Sint64";
7410       case ComponentTypeNV::eUint8: return "Uint8";
7411       case ComponentTypeNV::eUint16: return "Uint16";
7412       case ComponentTypeNV::eUint32: return "Uint32";
7413       case ComponentTypeNV::eUint64: return "Uint64";
7414       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7415     }
7416   }
7417 
7418   //=== VK_NV_coverage_reduction_mode ===
7419 
7420   enum class CoverageReductionModeNV
7421   {
7422     eMerge    = VK_COVERAGE_REDUCTION_MODE_MERGE_NV,
7423     eTruncate = VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV
7424   };
7425 
to_string(CoverageReductionModeNV value)7426   VULKAN_HPP_INLINE std::string to_string( CoverageReductionModeNV value )
7427   {
7428     switch ( value )
7429     {
7430       case CoverageReductionModeNV::eMerge: return "Merge";
7431       case CoverageReductionModeNV::eTruncate: return "Truncate";
7432       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7433     }
7434   }
7435 
7436   enum class PipelineCoverageReductionStateCreateFlagBitsNV : VkPipelineCoverageReductionStateCreateFlagsNV
7437   {
7438   };
7439 
to_string(PipelineCoverageReductionStateCreateFlagBitsNV)7440   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagBitsNV )
7441   {
7442     return "(void)";
7443   }
7444 
7445   //=== VK_EXT_provoking_vertex ===
7446 
7447   enum class ProvokingVertexModeEXT
7448   {
7449     eFirstVertex = VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT,
7450     eLastVertex  = VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT
7451   };
7452 
to_string(ProvokingVertexModeEXT value)7453   VULKAN_HPP_INLINE std::string to_string( ProvokingVertexModeEXT value )
7454   {
7455     switch ( value )
7456     {
7457       case ProvokingVertexModeEXT::eFirstVertex: return "FirstVertex";
7458       case ProvokingVertexModeEXT::eLastVertex: return "LastVertex";
7459       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7460     }
7461   }
7462 
7463 #if defined( VK_USE_PLATFORM_WIN32_KHR )
7464   //=== VK_EXT_full_screen_exclusive ===
7465 
7466   enum class FullScreenExclusiveEXT
7467   {
7468     eDefault               = VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT,
7469     eAllowed               = VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT,
7470     eDisallowed            = VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT,
7471     eApplicationControlled = VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
7472   };
7473 
to_string(FullScreenExclusiveEXT value)7474   VULKAN_HPP_INLINE std::string to_string( FullScreenExclusiveEXT value )
7475   {
7476     switch ( value )
7477     {
7478       case FullScreenExclusiveEXT::eDefault: return "Default";
7479       case FullScreenExclusiveEXT::eAllowed: return "Allowed";
7480       case FullScreenExclusiveEXT::eDisallowed: return "Disallowed";
7481       case FullScreenExclusiveEXT::eApplicationControlled: return "ApplicationControlled";
7482       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7483     }
7484   }
7485 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
7486 
7487   //=== VK_EXT_headless_surface ===
7488 
7489   enum class HeadlessSurfaceCreateFlagBitsEXT : VkHeadlessSurfaceCreateFlagsEXT
7490   {
7491   };
7492 
to_string(HeadlessSurfaceCreateFlagBitsEXT)7493   VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagBitsEXT )
7494   {
7495     return "(void)";
7496   }
7497 
7498   //=== VK_EXT_line_rasterization ===
7499 
7500   enum class LineRasterizationModeEXT
7501   {
7502     eDefault           = VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT,
7503     eRectangular       = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT,
7504     eBresenham         = VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT,
7505     eRectangularSmooth = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT
7506   };
7507 
to_string(LineRasterizationModeEXT value)7508   VULKAN_HPP_INLINE std::string to_string( LineRasterizationModeEXT value )
7509   {
7510     switch ( value )
7511     {
7512       case LineRasterizationModeEXT::eDefault: return "Default";
7513       case LineRasterizationModeEXT::eRectangular: return "Rectangular";
7514       case LineRasterizationModeEXT::eBresenham: return "Bresenham";
7515       case LineRasterizationModeEXT::eRectangularSmooth: return "RectangularSmooth";
7516       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7517     }
7518   }
7519 
7520   //=== VK_KHR_pipeline_executable_properties ===
7521 
7522   enum class PipelineExecutableStatisticFormatKHR
7523   {
7524     eBool32  = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR,
7525     eInt64   = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR,
7526     eUint64  = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR,
7527     eFloat64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR
7528   };
7529 
to_string(PipelineExecutableStatisticFormatKHR value)7530   VULKAN_HPP_INLINE std::string to_string( PipelineExecutableStatisticFormatKHR value )
7531   {
7532     switch ( value )
7533     {
7534       case PipelineExecutableStatisticFormatKHR::eBool32: return "Bool32";
7535       case PipelineExecutableStatisticFormatKHR::eInt64: return "Int64";
7536       case PipelineExecutableStatisticFormatKHR::eUint64: return "Uint64";
7537       case PipelineExecutableStatisticFormatKHR::eFloat64: return "Float64";
7538       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7539     }
7540   }
7541 
7542   //=== VK_NV_device_generated_commands ===
7543 
7544   enum class IndirectStateFlagBitsNV : VkIndirectStateFlagsNV
7545   {
7546     eFlagFrontface = VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV
7547   };
7548 
to_string(IndirectStateFlagBitsNV value)7549   VULKAN_HPP_INLINE std::string to_string( IndirectStateFlagBitsNV value )
7550   {
7551     switch ( value )
7552     {
7553       case IndirectStateFlagBitsNV::eFlagFrontface: return "FlagFrontface";
7554       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7555     }
7556   }
7557 
7558   enum class IndirectCommandsTokenTypeNV
7559   {
7560     eShaderGroup  = VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV,
7561     eStateFlags   = VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV,
7562     eIndexBuffer  = VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV,
7563     eVertexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV,
7564     ePushConstant = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV,
7565     eDrawIndexed  = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV,
7566     eDraw         = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV,
7567     eDrawTasks    = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV
7568   };
7569 
to_string(IndirectCommandsTokenTypeNV value)7570   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsTokenTypeNV value )
7571   {
7572     switch ( value )
7573     {
7574       case IndirectCommandsTokenTypeNV::eShaderGroup: return "ShaderGroup";
7575       case IndirectCommandsTokenTypeNV::eStateFlags: return "StateFlags";
7576       case IndirectCommandsTokenTypeNV::eIndexBuffer: return "IndexBuffer";
7577       case IndirectCommandsTokenTypeNV::eVertexBuffer: return "VertexBuffer";
7578       case IndirectCommandsTokenTypeNV::ePushConstant: return "PushConstant";
7579       case IndirectCommandsTokenTypeNV::eDrawIndexed: return "DrawIndexed";
7580       case IndirectCommandsTokenTypeNV::eDraw: return "Draw";
7581       case IndirectCommandsTokenTypeNV::eDrawTasks: return "DrawTasks";
7582       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7583     }
7584   }
7585 
7586   enum class IndirectCommandsLayoutUsageFlagBitsNV : VkIndirectCommandsLayoutUsageFlagsNV
7587   {
7588     eExplicitPreprocess = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV,
7589     eIndexedSequences   = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV,
7590     eUnorderedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV
7591   };
7592 
to_string(IndirectCommandsLayoutUsageFlagBitsNV value)7593   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagBitsNV value )
7594   {
7595     switch ( value )
7596     {
7597       case IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess: return "ExplicitPreprocess";
7598       case IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences: return "IndexedSequences";
7599       case IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences: return "UnorderedSequences";
7600       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7601     }
7602   }
7603 
7604   //=== VK_EXT_device_memory_report ===
7605 
7606   enum class DeviceMemoryReportEventTypeEXT
7607   {
7608     eAllocate         = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT,
7609     eFree             = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT,
7610     eImport           = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT,
7611     eUnimport         = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT,
7612     eAllocationFailed = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT
7613   };
7614 
to_string(DeviceMemoryReportEventTypeEXT value)7615   VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportEventTypeEXT value )
7616   {
7617     switch ( value )
7618     {
7619       case DeviceMemoryReportEventTypeEXT::eAllocate: return "Allocate";
7620       case DeviceMemoryReportEventTypeEXT::eFree: return "Free";
7621       case DeviceMemoryReportEventTypeEXT::eImport: return "Import";
7622       case DeviceMemoryReportEventTypeEXT::eUnimport: return "Unimport";
7623       case DeviceMemoryReportEventTypeEXT::eAllocationFailed: return "AllocationFailed";
7624       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7625     }
7626   }
7627 
7628   enum class DeviceMemoryReportFlagBitsEXT : VkDeviceMemoryReportFlagsEXT
7629   {
7630   };
7631 
to_string(DeviceMemoryReportFlagBitsEXT)7632   VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportFlagBitsEXT )
7633   {
7634     return "(void)";
7635   }
7636 
7637   //=== VK_EXT_private_data ===
7638 
7639   enum class PrivateDataSlotCreateFlagBitsEXT : VkPrivateDataSlotCreateFlagsEXT
7640   {
7641   };
7642 
to_string(PrivateDataSlotCreateFlagBitsEXT)7643   VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagBitsEXT )
7644   {
7645     return "(void)";
7646   }
7647 
7648   //=== VK_EXT_pipeline_creation_cache_control ===
7649 
7650   enum class PipelineCacheCreateFlagBits : VkPipelineCacheCreateFlags
7651   {
7652     eExternallySynchronizedEXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT
7653   };
7654 
to_string(PipelineCacheCreateFlagBits value)7655   VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlagBits value )
7656   {
7657     switch ( value )
7658     {
7659       case PipelineCacheCreateFlagBits::eExternallySynchronizedEXT: return "ExternallySynchronizedEXT";
7660       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7661     }
7662   }
7663 
7664 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7665   //=== VK_KHR_video_encode_queue ===
7666 
7667   enum class VideoEncodeFlagBitsKHR : VkVideoEncodeFlagsKHR
7668   {
7669     eDefault   = VK_VIDEO_ENCODE_DEFAULT_KHR,
7670     eReserved0 = VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR
7671   };
7672 
to_string(VideoEncodeFlagBitsKHR value)7673   VULKAN_HPP_INLINE std::string to_string( VideoEncodeFlagBitsKHR value )
7674   {
7675     switch ( value )
7676     {
7677       case VideoEncodeFlagBitsKHR::eDefault: return "Default";
7678       case VideoEncodeFlagBitsKHR::eReserved0: return "Reserved0";
7679       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7680     }
7681   }
7682 
7683   enum class VideoEncodeRateControlFlagBitsKHR : VkVideoEncodeRateControlFlagsKHR
7684   {
7685     eDefault = VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR,
7686     eReset   = VK_VIDEO_ENCODE_RATE_CONTROL_RESET_BIT_KHR
7687   };
7688 
to_string(VideoEncodeRateControlFlagBitsKHR value)7689   VULKAN_HPP_INLINE std::string to_string( VideoEncodeRateControlFlagBitsKHR value )
7690   {
7691     switch ( value )
7692     {
7693       case VideoEncodeRateControlFlagBitsKHR::eDefault: return "Default";
7694       case VideoEncodeRateControlFlagBitsKHR::eReset: return "Reset";
7695       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7696     }
7697   }
7698 
7699   enum class VideoEncodeRateControlModeFlagBitsKHR : VkVideoEncodeRateControlModeFlagsKHR
7700   {
7701     eNone = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR,
7702     eCbr  = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR,
7703     eVbr  = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR
7704   };
7705 
to_string(VideoEncodeRateControlModeFlagBitsKHR value)7706   VULKAN_HPP_INLINE std::string to_string( VideoEncodeRateControlModeFlagBitsKHR value )
7707   {
7708     switch ( value )
7709     {
7710       case VideoEncodeRateControlModeFlagBitsKHR::eNone: return "None";
7711       case VideoEncodeRateControlModeFlagBitsKHR::eCbr: return "Cbr";
7712       case VideoEncodeRateControlModeFlagBitsKHR::eVbr: return "Vbr";
7713       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7714     }
7715   }
7716 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7717 
7718   //=== VK_NV_device_diagnostics_config ===
7719 
7720   enum class DeviceDiagnosticsConfigFlagBitsNV : VkDeviceDiagnosticsConfigFlagsNV
7721   {
7722     eEnableShaderDebugInfo      = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV,
7723     eEnableResourceTracking     = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV,
7724     eEnableAutomaticCheckpoints = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV
7725   };
7726 
to_string(DeviceDiagnosticsConfigFlagBitsNV value)7727   VULKAN_HPP_INLINE std::string to_string( DeviceDiagnosticsConfigFlagBitsNV value )
7728   {
7729     switch ( value )
7730     {
7731       case DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo: return "EnableShaderDebugInfo";
7732       case DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking: return "EnableResourceTracking";
7733       case DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints: return "EnableAutomaticCheckpoints";
7734       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7735     }
7736   }
7737 
7738   //=== VK_KHR_synchronization2 ===
7739 
7740   enum class PipelineStageFlagBits2KHR : VkPipelineStageFlags2KHR
7741   {
7742     eNone                         = VK_PIPELINE_STAGE_2_NONE_KHR,
7743     eTopOfPipe                    = VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR,
7744     eDrawIndirect                 = VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR,
7745     eVertexInput                  = VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR,
7746     eVertexShader                 = VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR,
7747     eTessellationControlShader    = VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR,
7748     eTessellationEvaluationShader = VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR,
7749     eGeometryShader               = VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR,
7750     eFragmentShader               = VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR,
7751     eEarlyFragmentTests           = VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR,
7752     eLateFragmentTests            = VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR,
7753     eColorAttachmentOutput        = VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR,
7754     eComputeShader                = VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR,
7755     eAllTransfer                  = VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR,
7756     eBottomOfPipe                 = VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR,
7757     eHost                         = VK_PIPELINE_STAGE_2_HOST_BIT_KHR,
7758     eAllGraphics                  = VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR,
7759     eAllCommands                  = VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR,
7760     eCopy                         = VK_PIPELINE_STAGE_2_COPY_BIT_KHR,
7761     eResolve                      = VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR,
7762     eBlit                         = VK_PIPELINE_STAGE_2_BLIT_BIT_KHR,
7763     eClear                        = VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR,
7764     eIndexInput                   = VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR,
7765     eVertexAttributeInput         = VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR,
7766     ePreRasterizationShaders      = VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR,
7767 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7768     eVideoDecode = VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR,
7769     eVideoEncode = VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR,
7770 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7771     eTransformFeedbackEXT          = VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,
7772     eConditionalRenderingEXT       = VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT,
7773     eCommandPreprocessNV           = VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV,
7774     eFragmentShadingRateAttachment = VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
7775     eAccelerationStructureBuild    = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
7776     eRayTracingShader              = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR,
7777     eFragmentDensityProcessEXT     = VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT,
7778     eTaskShaderNV                  = VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV,
7779     eMeshShaderNV                  = VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV,
7780     eSubpassShadingHUAWEI          = VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI,
7781     eInvocationMaskHUAWEI          = VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI,
7782     eAccelerationStructureBuildNV  = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
7783     eRayTracingShaderNV            = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV,
7784     eShadingRateImageNV            = VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV,
7785     eTransfer                      = VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR
7786   };
7787 
to_string(PipelineStageFlagBits2KHR value)7788   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlagBits2KHR value )
7789   {
7790     switch ( value )
7791     {
7792       case PipelineStageFlagBits2KHR::eNone: return "None";
7793       case PipelineStageFlagBits2KHR::eTopOfPipe: return "TopOfPipe";
7794       case PipelineStageFlagBits2KHR::eDrawIndirect: return "DrawIndirect";
7795       case PipelineStageFlagBits2KHR::eVertexInput: return "VertexInput";
7796       case PipelineStageFlagBits2KHR::eVertexShader: return "VertexShader";
7797       case PipelineStageFlagBits2KHR::eTessellationControlShader: return "TessellationControlShader";
7798       case PipelineStageFlagBits2KHR::eTessellationEvaluationShader: return "TessellationEvaluationShader";
7799       case PipelineStageFlagBits2KHR::eGeometryShader: return "GeometryShader";
7800       case PipelineStageFlagBits2KHR::eFragmentShader: return "FragmentShader";
7801       case PipelineStageFlagBits2KHR::eEarlyFragmentTests: return "EarlyFragmentTests";
7802       case PipelineStageFlagBits2KHR::eLateFragmentTests: return "LateFragmentTests";
7803       case PipelineStageFlagBits2KHR::eColorAttachmentOutput: return "ColorAttachmentOutput";
7804       case PipelineStageFlagBits2KHR::eComputeShader: return "ComputeShader";
7805       case PipelineStageFlagBits2KHR::eAllTransfer: return "AllTransfer";
7806       case PipelineStageFlagBits2KHR::eBottomOfPipe: return "BottomOfPipe";
7807       case PipelineStageFlagBits2KHR::eHost: return "Host";
7808       case PipelineStageFlagBits2KHR::eAllGraphics: return "AllGraphics";
7809       case PipelineStageFlagBits2KHR::eAllCommands: return "AllCommands";
7810       case PipelineStageFlagBits2KHR::eCopy: return "Copy";
7811       case PipelineStageFlagBits2KHR::eResolve: return "Resolve";
7812       case PipelineStageFlagBits2KHR::eBlit: return "Blit";
7813       case PipelineStageFlagBits2KHR::eClear: return "Clear";
7814       case PipelineStageFlagBits2KHR::eIndexInput: return "IndexInput";
7815       case PipelineStageFlagBits2KHR::eVertexAttributeInput: return "VertexAttributeInput";
7816       case PipelineStageFlagBits2KHR::ePreRasterizationShaders: return "PreRasterizationShaders";
7817 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7818       case PipelineStageFlagBits2KHR::eVideoDecode: return "VideoDecode";
7819       case PipelineStageFlagBits2KHR::eVideoEncode: return "VideoEncode";
7820 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7821       case PipelineStageFlagBits2KHR::eTransformFeedbackEXT: return "TransformFeedbackEXT";
7822       case PipelineStageFlagBits2KHR::eConditionalRenderingEXT: return "ConditionalRenderingEXT";
7823       case PipelineStageFlagBits2KHR::eCommandPreprocessNV: return "CommandPreprocessNV";
7824       case PipelineStageFlagBits2KHR::eFragmentShadingRateAttachment: return "FragmentShadingRateAttachment";
7825       case PipelineStageFlagBits2KHR::eAccelerationStructureBuild: return "AccelerationStructureBuild";
7826       case PipelineStageFlagBits2KHR::eRayTracingShader: return "RayTracingShader";
7827       case PipelineStageFlagBits2KHR::eFragmentDensityProcessEXT: return "FragmentDensityProcessEXT";
7828       case PipelineStageFlagBits2KHR::eTaskShaderNV: return "TaskShaderNV";
7829       case PipelineStageFlagBits2KHR::eMeshShaderNV: return "MeshShaderNV";
7830       case PipelineStageFlagBits2KHR::eSubpassShadingHUAWEI: return "SubpassShadingHUAWEI";
7831       case PipelineStageFlagBits2KHR::eInvocationMaskHUAWEI: return "InvocationMaskHUAWEI";
7832       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7833     }
7834   }
7835 
7836   enum class AccessFlagBits2KHR : VkAccessFlags2KHR
7837   {
7838     eNone                        = VK_ACCESS_2_NONE_KHR,
7839     eIndirectCommandRead         = VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR,
7840     eIndexRead                   = VK_ACCESS_2_INDEX_READ_BIT_KHR,
7841     eVertexAttributeRead         = VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR,
7842     eUniformRead                 = VK_ACCESS_2_UNIFORM_READ_BIT_KHR,
7843     eInputAttachmentRead         = VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR,
7844     eShaderRead                  = VK_ACCESS_2_SHADER_READ_BIT_KHR,
7845     eShaderWrite                 = VK_ACCESS_2_SHADER_WRITE_BIT_KHR,
7846     eColorAttachmentRead         = VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR,
7847     eColorAttachmentWrite        = VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR,
7848     eDepthStencilAttachmentRead  = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR,
7849     eDepthStencilAttachmentWrite = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR,
7850     eTransferRead                = VK_ACCESS_2_TRANSFER_READ_BIT_KHR,
7851     eTransferWrite               = VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR,
7852     eHostRead                    = VK_ACCESS_2_HOST_READ_BIT_KHR,
7853     eHostWrite                   = VK_ACCESS_2_HOST_WRITE_BIT_KHR,
7854     eMemoryRead                  = VK_ACCESS_2_MEMORY_READ_BIT_KHR,
7855     eMemoryWrite                 = VK_ACCESS_2_MEMORY_WRITE_BIT_KHR,
7856     eShaderSampledRead           = VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR,
7857     eShaderStorageRead           = VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR,
7858     eShaderStorageWrite          = VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR,
7859 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7860     eVideoDecodeRead  = VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR,
7861     eVideoDecodeWrite = VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,
7862     eVideoEncodeRead  = VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,
7863     eVideoEncodeWrite = VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,
7864 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7865     eTransformFeedbackWriteEXT         = VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
7866     eTransformFeedbackCounterReadEXT   = VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,
7867     eTransformFeedbackCounterWriteEXT  = VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
7868     eConditionalRenderingReadEXT       = VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT,
7869     eCommandPreprocessReadNV           = VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV,
7870     eCommandPreprocessWriteNV          = VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV,
7871     eFragmentShadingRateAttachmentRead = VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
7872     eAccelerationStructureRead         = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,
7873     eAccelerationStructureWrite        = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
7874     eFragmentDensityMapReadEXT         = VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,
7875     eColorAttachmentReadNoncoherentEXT = VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
7876     eInvocationMaskReadHUAWEI          = VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI,
7877     eAccelerationStructureReadNV       = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV,
7878     eAccelerationStructureWriteNV      = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
7879     eShadingRateImageReadNV            = VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV
7880   };
7881 
to_string(AccessFlagBits2KHR value)7882   VULKAN_HPP_INLINE std::string to_string( AccessFlagBits2KHR value )
7883   {
7884     switch ( value )
7885     {
7886       case AccessFlagBits2KHR::eNone: return "None";
7887       case AccessFlagBits2KHR::eIndirectCommandRead: return "IndirectCommandRead";
7888       case AccessFlagBits2KHR::eIndexRead: return "IndexRead";
7889       case AccessFlagBits2KHR::eVertexAttributeRead: return "VertexAttributeRead";
7890       case AccessFlagBits2KHR::eUniformRead: return "UniformRead";
7891       case AccessFlagBits2KHR::eInputAttachmentRead: return "InputAttachmentRead";
7892       case AccessFlagBits2KHR::eShaderRead: return "ShaderRead";
7893       case AccessFlagBits2KHR::eShaderWrite: return "ShaderWrite";
7894       case AccessFlagBits2KHR::eColorAttachmentRead: return "ColorAttachmentRead";
7895       case AccessFlagBits2KHR::eColorAttachmentWrite: return "ColorAttachmentWrite";
7896       case AccessFlagBits2KHR::eDepthStencilAttachmentRead: return "DepthStencilAttachmentRead";
7897       case AccessFlagBits2KHR::eDepthStencilAttachmentWrite: return "DepthStencilAttachmentWrite";
7898       case AccessFlagBits2KHR::eTransferRead: return "TransferRead";
7899       case AccessFlagBits2KHR::eTransferWrite: return "TransferWrite";
7900       case AccessFlagBits2KHR::eHostRead: return "HostRead";
7901       case AccessFlagBits2KHR::eHostWrite: return "HostWrite";
7902       case AccessFlagBits2KHR::eMemoryRead: return "MemoryRead";
7903       case AccessFlagBits2KHR::eMemoryWrite: return "MemoryWrite";
7904       case AccessFlagBits2KHR::eShaderSampledRead: return "ShaderSampledRead";
7905       case AccessFlagBits2KHR::eShaderStorageRead: return "ShaderStorageRead";
7906       case AccessFlagBits2KHR::eShaderStorageWrite: return "ShaderStorageWrite";
7907 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7908       case AccessFlagBits2KHR::eVideoDecodeRead: return "VideoDecodeRead";
7909       case AccessFlagBits2KHR::eVideoDecodeWrite: return "VideoDecodeWrite";
7910       case AccessFlagBits2KHR::eVideoEncodeRead: return "VideoEncodeRead";
7911       case AccessFlagBits2KHR::eVideoEncodeWrite: return "VideoEncodeWrite";
7912 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7913       case AccessFlagBits2KHR::eTransformFeedbackWriteEXT: return "TransformFeedbackWriteEXT";
7914       case AccessFlagBits2KHR::eTransformFeedbackCounterReadEXT: return "TransformFeedbackCounterReadEXT";
7915       case AccessFlagBits2KHR::eTransformFeedbackCounterWriteEXT: return "TransformFeedbackCounterWriteEXT";
7916       case AccessFlagBits2KHR::eConditionalRenderingReadEXT: return "ConditionalRenderingReadEXT";
7917       case AccessFlagBits2KHR::eCommandPreprocessReadNV: return "CommandPreprocessReadNV";
7918       case AccessFlagBits2KHR::eCommandPreprocessWriteNV: return "CommandPreprocessWriteNV";
7919       case AccessFlagBits2KHR::eFragmentShadingRateAttachmentRead: return "FragmentShadingRateAttachmentRead";
7920       case AccessFlagBits2KHR::eAccelerationStructureRead: return "AccelerationStructureRead";
7921       case AccessFlagBits2KHR::eAccelerationStructureWrite: return "AccelerationStructureWrite";
7922       case AccessFlagBits2KHR::eFragmentDensityMapReadEXT: return "FragmentDensityMapReadEXT";
7923       case AccessFlagBits2KHR::eColorAttachmentReadNoncoherentEXT: return "ColorAttachmentReadNoncoherentEXT";
7924       case AccessFlagBits2KHR::eInvocationMaskReadHUAWEI: return "InvocationMaskReadHUAWEI";
7925       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7926     }
7927   }
7928 
7929   enum class SubmitFlagBitsKHR : VkSubmitFlagsKHR
7930   {
7931     eProtected = VK_SUBMIT_PROTECTED_BIT_KHR
7932   };
7933 
to_string(SubmitFlagBitsKHR value)7934   VULKAN_HPP_INLINE std::string to_string( SubmitFlagBitsKHR value )
7935   {
7936     switch ( value )
7937     {
7938       case SubmitFlagBitsKHR::eProtected: return "Protected";
7939       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7940     }
7941   }
7942 
7943   //=== VK_NV_fragment_shading_rate_enums ===
7944 
7945   enum class FragmentShadingRateNV
7946   {
7947     e1InvocationPerPixel     = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV,
7948     e1InvocationPer1X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV,
7949     e1InvocationPer2X1Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV,
7950     e1InvocationPer2X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV,
7951     e1InvocationPer2X4Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV,
7952     e1InvocationPer4X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV,
7953     e1InvocationPer4X4Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV,
7954     e2InvocationsPerPixel    = VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV,
7955     e4InvocationsPerPixel    = VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV,
7956     e8InvocationsPerPixel    = VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV,
7957     e16InvocationsPerPixel   = VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV,
7958     eNoInvocations           = VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV
7959   };
7960 
to_string(FragmentShadingRateNV value)7961   VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateNV value )
7962   {
7963     switch ( value )
7964     {
7965       case FragmentShadingRateNV::e1InvocationPerPixel: return "1InvocationPerPixel";
7966       case FragmentShadingRateNV::e1InvocationPer1X2Pixels: return "1InvocationPer1X2Pixels";
7967       case FragmentShadingRateNV::e1InvocationPer2X1Pixels: return "1InvocationPer2X1Pixels";
7968       case FragmentShadingRateNV::e1InvocationPer2X2Pixels: return "1InvocationPer2X2Pixels";
7969       case FragmentShadingRateNV::e1InvocationPer2X4Pixels: return "1InvocationPer2X4Pixels";
7970       case FragmentShadingRateNV::e1InvocationPer4X2Pixels: return "1InvocationPer4X2Pixels";
7971       case FragmentShadingRateNV::e1InvocationPer4X4Pixels: return "1InvocationPer4X4Pixels";
7972       case FragmentShadingRateNV::e2InvocationsPerPixel: return "2InvocationsPerPixel";
7973       case FragmentShadingRateNV::e4InvocationsPerPixel: return "4InvocationsPerPixel";
7974       case FragmentShadingRateNV::e8InvocationsPerPixel: return "8InvocationsPerPixel";
7975       case FragmentShadingRateNV::e16InvocationsPerPixel: return "16InvocationsPerPixel";
7976       case FragmentShadingRateNV::eNoInvocations: return "NoInvocations";
7977       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7978     }
7979   }
7980 
7981   enum class FragmentShadingRateTypeNV
7982   {
7983     eFragmentSize = VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV,
7984     eEnums        = VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV
7985   };
7986 
to_string(FragmentShadingRateTypeNV value)7987   VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateTypeNV value )
7988   {
7989     switch ( value )
7990     {
7991       case FragmentShadingRateTypeNV::eFragmentSize: return "FragmentSize";
7992       case FragmentShadingRateTypeNV::eEnums: return "Enums";
7993       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7994     }
7995   }
7996 
7997   //=== VK_NV_ray_tracing_motion_blur ===
7998 
7999   enum class AccelerationStructureMotionInstanceTypeNV
8000   {
8001     eStatic       = VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV,
8002     eMatrixMotion = VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV,
8003     eSrtMotion    = VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV
8004   };
8005 
to_string(AccelerationStructureMotionInstanceTypeNV value)8006   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMotionInstanceTypeNV value )
8007   {
8008     switch ( value )
8009     {
8010       case AccelerationStructureMotionInstanceTypeNV::eStatic: return "Static";
8011       case AccelerationStructureMotionInstanceTypeNV::eMatrixMotion: return "MatrixMotion";
8012       case AccelerationStructureMotionInstanceTypeNV::eSrtMotion: return "SrtMotion";
8013       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8014     }
8015   }
8016 
8017   enum class AccelerationStructureMotionInfoFlagBitsNV : VkAccelerationStructureMotionInfoFlagsNV
8018   {
8019   };
8020 
to_string(AccelerationStructureMotionInfoFlagBitsNV)8021   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMotionInfoFlagBitsNV )
8022   {
8023     return "(void)";
8024   }
8025 
8026   enum class AccelerationStructureMotionInstanceFlagBitsNV : VkAccelerationStructureMotionInstanceFlagsNV
8027   {
8028   };
8029 
to_string(AccelerationStructureMotionInstanceFlagBitsNV)8030   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMotionInstanceFlagBitsNV )
8031   {
8032     return "(void)";
8033   }
8034 
8035 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
8036   //=== VK_EXT_directfb_surface ===
8037 
8038   enum class DirectFBSurfaceCreateFlagBitsEXT : VkDirectFBSurfaceCreateFlagsEXT
8039   {
8040   };
8041 
to_string(DirectFBSurfaceCreateFlagBitsEXT)8042   VULKAN_HPP_INLINE std::string to_string( DirectFBSurfaceCreateFlagBitsEXT )
8043   {
8044     return "(void)";
8045   }
8046 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
8047 
8048   //=== VK_KHR_ray_tracing_pipeline ===
8049 
8050   enum class RayTracingShaderGroupTypeKHR
8051   {
8052     eGeneral            = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
8053     eTrianglesHitGroup  = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
8054     eProceduralHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR
8055   };
8056   using RayTracingShaderGroupTypeNV = RayTracingShaderGroupTypeKHR;
8057 
to_string(RayTracingShaderGroupTypeKHR value)8058   VULKAN_HPP_INLINE std::string to_string( RayTracingShaderGroupTypeKHR value )
8059   {
8060     switch ( value )
8061     {
8062       case RayTracingShaderGroupTypeKHR::eGeneral: return "General";
8063       case RayTracingShaderGroupTypeKHR::eTrianglesHitGroup: return "TrianglesHitGroup";
8064       case RayTracingShaderGroupTypeKHR::eProceduralHitGroup: return "ProceduralHitGroup";
8065       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8066     }
8067   }
8068 
8069   enum class ShaderGroupShaderKHR
8070   {
8071     eGeneral      = VK_SHADER_GROUP_SHADER_GENERAL_KHR,
8072     eClosestHit   = VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR,
8073     eAnyHit       = VK_SHADER_GROUP_SHADER_ANY_HIT_KHR,
8074     eIntersection = VK_SHADER_GROUP_SHADER_INTERSECTION_KHR
8075   };
8076 
to_string(ShaderGroupShaderKHR value)8077   VULKAN_HPP_INLINE std::string to_string( ShaderGroupShaderKHR value )
8078   {
8079     switch ( value )
8080     {
8081       case ShaderGroupShaderKHR::eGeneral: return "General";
8082       case ShaderGroupShaderKHR::eClosestHit: return "ClosestHit";
8083       case ShaderGroupShaderKHR::eAnyHit: return "AnyHit";
8084       case ShaderGroupShaderKHR::eIntersection: return "Intersection";
8085       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8086     }
8087   }
8088 
8089   //=== VK_KHR_format_feature_flags2 ===
8090 
8091   enum class FormatFeatureFlagBits2KHR : VkFormatFeatureFlags2KHR
8092   {
8093     eSampledImage                            = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR,
8094     eStorageImage                            = VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR,
8095     eStorageImageAtomic                      = VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR,
8096     eUniformTexelBuffer                      = VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR,
8097     eStorageTexelBuffer                      = VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR,
8098     eStorageTexelBufferAtomic                = VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR,
8099     eVertexBuffer                            = VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR,
8100     eColorAttachment                         = VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR,
8101     eColorAttachmentBlend                    = VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR,
8102     eDepthStencilAttachment                  = VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR,
8103     eBlitSrc                                 = VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR,
8104     eBlitDst                                 = VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR,
8105     eSampledImageFilterLinear                = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR,
8106     eSampledImageFilterCubicEXT              = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
8107     eTransferSrc                             = VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR,
8108     eTransferDst                             = VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR,
8109     eSampledImageFilterMinmax                = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR,
8110     eMidpointChromaSamples                   = VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR,
8111     eSampledImageYcbcrConversionLinearFilter = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR,
8112     eSampledImageYcbcrConversionSeparateReconstructionFilter =
8113       VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR,
8114     eSampledImageYcbcrConversionChromaReconstructionExplicit =
8115       VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR,
8116     eSampledImageYcbcrConversionChromaReconstructionExplicitForceable =
8117       VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR,
8118     eDisjoint                    = VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR,
8119     eCositedChromaSamples        = VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR,
8120     eStorageReadWithoutFormat    = VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR,
8121     eStorageWriteWithoutFormat   = VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR,
8122     eSampledImageDepthComparison = VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR,
8123 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8124     eVideoDecodeOutput = VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR,
8125     eVideoDecodeDpb    = VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR,
8126 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8127     eAccelerationStructureVertexBuffer = VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,
8128     eFragmentDensityMapEXT             = VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT,
8129     eFragmentShadingRateAttachment     = VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
8130 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8131     eVideoEncodeInput = VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR,
8132     eVideoEncodeDpb   = VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR
8133 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8134   };
8135 
to_string(FormatFeatureFlagBits2KHR value)8136   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlagBits2KHR value )
8137   {
8138     switch ( value )
8139     {
8140       case FormatFeatureFlagBits2KHR::eSampledImage: return "SampledImage";
8141       case FormatFeatureFlagBits2KHR::eStorageImage: return "StorageImage";
8142       case FormatFeatureFlagBits2KHR::eStorageImageAtomic: return "StorageImageAtomic";
8143       case FormatFeatureFlagBits2KHR::eUniformTexelBuffer: return "UniformTexelBuffer";
8144       case FormatFeatureFlagBits2KHR::eStorageTexelBuffer: return "StorageTexelBuffer";
8145       case FormatFeatureFlagBits2KHR::eStorageTexelBufferAtomic: return "StorageTexelBufferAtomic";
8146       case FormatFeatureFlagBits2KHR::eVertexBuffer: return "VertexBuffer";
8147       case FormatFeatureFlagBits2KHR::eColorAttachment: return "ColorAttachment";
8148       case FormatFeatureFlagBits2KHR::eColorAttachmentBlend: return "ColorAttachmentBlend";
8149       case FormatFeatureFlagBits2KHR::eDepthStencilAttachment: return "DepthStencilAttachment";
8150       case FormatFeatureFlagBits2KHR::eBlitSrc: return "BlitSrc";
8151       case FormatFeatureFlagBits2KHR::eBlitDst: return "BlitDst";
8152       case FormatFeatureFlagBits2KHR::eSampledImageFilterLinear: return "SampledImageFilterLinear";
8153       case FormatFeatureFlagBits2KHR::eSampledImageFilterCubicEXT: return "SampledImageFilterCubicEXT";
8154       case FormatFeatureFlagBits2KHR::eTransferSrc: return "TransferSrc";
8155       case FormatFeatureFlagBits2KHR::eTransferDst: return "TransferDst";
8156       case FormatFeatureFlagBits2KHR::eSampledImageFilterMinmax: return "SampledImageFilterMinmax";
8157       case FormatFeatureFlagBits2KHR::eMidpointChromaSamples: return "MidpointChromaSamples";
8158       case FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionLinearFilter:
8159         return "SampledImageYcbcrConversionLinearFilter";
8160       case FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionSeparateReconstructionFilter:
8161         return "SampledImageYcbcrConversionSeparateReconstructionFilter";
8162       case FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionChromaReconstructionExplicit:
8163         return "SampledImageYcbcrConversionChromaReconstructionExplicit";
8164       case FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable:
8165         return "SampledImageYcbcrConversionChromaReconstructionExplicitForceable";
8166       case FormatFeatureFlagBits2KHR::eDisjoint: return "Disjoint";
8167       case FormatFeatureFlagBits2KHR::eCositedChromaSamples: return "CositedChromaSamples";
8168       case FormatFeatureFlagBits2KHR::eStorageReadWithoutFormat: return "StorageReadWithoutFormat";
8169       case FormatFeatureFlagBits2KHR::eStorageWriteWithoutFormat: return "StorageWriteWithoutFormat";
8170       case FormatFeatureFlagBits2KHR::eSampledImageDepthComparison: return "SampledImageDepthComparison";
8171 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8172       case FormatFeatureFlagBits2KHR::eVideoDecodeOutput: return "VideoDecodeOutput";
8173       case FormatFeatureFlagBits2KHR::eVideoDecodeDpb: return "VideoDecodeDpb";
8174 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8175       case FormatFeatureFlagBits2KHR::eAccelerationStructureVertexBuffer: return "AccelerationStructureVertexBuffer";
8176       case FormatFeatureFlagBits2KHR::eFragmentDensityMapEXT: return "FragmentDensityMapEXT";
8177       case FormatFeatureFlagBits2KHR::eFragmentShadingRateAttachment: return "FragmentShadingRateAttachment";
8178 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8179       case FormatFeatureFlagBits2KHR::eVideoEncodeInput: return "VideoEncodeInput";
8180       case FormatFeatureFlagBits2KHR::eVideoEncodeDpb: return "VideoEncodeDpb";
8181 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8182       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8183     }
8184   }
8185 
8186 #if defined( VK_USE_PLATFORM_FUCHSIA )
8187   //=== VK_FUCHSIA_buffer_collection ===
8188 
8189   enum class ImageConstraintsInfoFlagBitsFUCHSIA : VkImageConstraintsInfoFlagsFUCHSIA
8190   {
8191     eCpuReadRarely     = VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA,
8192     eCpuReadOften      = VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA,
8193     eCpuWriteRarely    = VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA,
8194     eCpuWriteOften     = VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA,
8195     eProtectedOptional = VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA
8196   };
8197 
to_string(ImageConstraintsInfoFlagBitsFUCHSIA value)8198   VULKAN_HPP_INLINE std::string to_string( ImageConstraintsInfoFlagBitsFUCHSIA value )
8199   {
8200     switch ( value )
8201     {
8202       case ImageConstraintsInfoFlagBitsFUCHSIA::eCpuReadRarely: return "CpuReadRarely";
8203       case ImageConstraintsInfoFlagBitsFUCHSIA::eCpuReadOften: return "CpuReadOften";
8204       case ImageConstraintsInfoFlagBitsFUCHSIA::eCpuWriteRarely: return "CpuWriteRarely";
8205       case ImageConstraintsInfoFlagBitsFUCHSIA::eCpuWriteOften: return "CpuWriteOften";
8206       case ImageConstraintsInfoFlagBitsFUCHSIA::eProtectedOptional: return "ProtectedOptional";
8207       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
8208     }
8209   }
8210 
8211   enum class ImageFormatConstraintsFlagBitsFUCHSIA : VkImageFormatConstraintsFlagsFUCHSIA
8212   {
8213   };
8214 
to_string(ImageFormatConstraintsFlagBitsFUCHSIA)8215   VULKAN_HPP_INLINE std::string to_string( ImageFormatConstraintsFlagBitsFUCHSIA )
8216   {
8217     return "(void)";
8218   }
8219 #endif /*VK_USE_PLATFORM_FUCHSIA*/
8220 
8221 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
8222   //=== VK_QNX_screen_surface ===
8223 
8224   enum class ScreenSurfaceCreateFlagBitsQNX : VkScreenSurfaceCreateFlagsQNX
8225   {
8226   };
8227 
to_string(ScreenSurfaceCreateFlagBitsQNX)8228   VULKAN_HPP_INLINE std::string to_string( ScreenSurfaceCreateFlagBitsQNX )
8229   {
8230     return "(void)";
8231   }
8232 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
8233 
8234   template <ObjectType value>
8235   struct cpp_type
8236   {};
8237 
8238   template <typename T>
8239   struct IndexTypeValue
8240   {};
8241 
8242   template <>
8243   struct IndexTypeValue<uint16_t>
8244   {
8245     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint16;
8246   };
8247 
8248   template <>
8249   struct CppType<IndexType, IndexType::eUint16>
8250   {
8251     using Type = uint16_t;
8252   };
8253 
8254   template <>
8255   struct IndexTypeValue<uint32_t>
8256   {
8257     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint32;
8258   };
8259 
8260   template <>
8261   struct CppType<IndexType, IndexType::eUint32>
8262   {
8263     using Type = uint32_t;
8264   };
8265 
8266   template <>
8267   struct IndexTypeValue<uint8_t>
8268   {
8269     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint8EXT;
8270   };
8271 
8272   template <>
8273   struct CppType<IndexType, IndexType::eUint8EXT>
8274   {
8275     using Type = uint8_t;
8276   };
8277 
8278   //================
8279   //=== BITMASKs ===
8280   //================
8281 
8282   //=== VK_VERSION_1_0 ===
8283 
8284   using FormatFeatureFlags = Flags<FormatFeatureFlagBits>;
8285 
8286   template <>
8287   struct FlagTraits<FormatFeatureFlagBits>
8288   {
8289     enum : VkFlags
8290     {
8291       allFlags =
8292         VkFlags( FormatFeatureFlagBits::eSampledImage ) | VkFlags( FormatFeatureFlagBits::eStorageImage ) |
8293         VkFlags( FormatFeatureFlagBits::eStorageImageAtomic ) | VkFlags( FormatFeatureFlagBits::eUniformTexelBuffer ) |
8294         VkFlags( FormatFeatureFlagBits::eStorageTexelBuffer ) |
8295         VkFlags( FormatFeatureFlagBits::eStorageTexelBufferAtomic ) | VkFlags( FormatFeatureFlagBits::eVertexBuffer ) |
8296         VkFlags( FormatFeatureFlagBits::eColorAttachment ) | VkFlags( FormatFeatureFlagBits::eColorAttachmentBlend ) |
8297         VkFlags( FormatFeatureFlagBits::eDepthStencilAttachment ) | VkFlags( FormatFeatureFlagBits::eBlitSrc ) |
8298         VkFlags( FormatFeatureFlagBits::eBlitDst ) | VkFlags( FormatFeatureFlagBits::eSampledImageFilterLinear ) |
8299         VkFlags( FormatFeatureFlagBits::eTransferSrc ) | VkFlags( FormatFeatureFlagBits::eTransferDst ) |
8300         VkFlags( FormatFeatureFlagBits::eMidpointChromaSamples ) |
8301         VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter ) |
8302         VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter ) |
8303         VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit ) |
8304         VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable ) |
8305         VkFlags( FormatFeatureFlagBits::eDisjoint ) | VkFlags( FormatFeatureFlagBits::eCositedChromaSamples ) |
8306         VkFlags( FormatFeatureFlagBits::eSampledImageFilterMinmax ) |
8307         VkFlags( FormatFeatureFlagBits::eSampledImageFilterCubicIMG )
8308 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8309         | VkFlags( FormatFeatureFlagBits::eVideoDecodeOutputKHR ) | VkFlags( FormatFeatureFlagBits::eVideoDecodeDpbKHR )
8310 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8311         | VkFlags( FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR ) |
8312         VkFlags( FormatFeatureFlagBits::eFragmentDensityMapEXT ) |
8313         VkFlags( FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR )
8314 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8315         | VkFlags( FormatFeatureFlagBits::eVideoEncodeInputKHR ) | VkFlags( FormatFeatureFlagBits::eVideoEncodeDpbKHR )
8316 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8317     };
8318   };
8319 
operator |(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)8320   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator|( FormatFeatureFlagBits bit0,
8321                                                                        FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8322   {
8323     return FormatFeatureFlags( bit0 ) | bit1;
8324   }
8325 
operator &(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)8326   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator&( FormatFeatureFlagBits bit0,
8327                                                                        FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8328   {
8329     return FormatFeatureFlags( bit0 ) & bit1;
8330   }
8331 
operator ^(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)8332   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator^( FormatFeatureFlagBits bit0,
8333                                                                        FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8334   {
8335     return FormatFeatureFlags( bit0 ) ^ bit1;
8336   }
8337 
operator ~(FormatFeatureFlagBits bits)8338   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator~( FormatFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
8339   {
8340     return ~( FormatFeatureFlags( bits ) );
8341   }
8342 
to_string(FormatFeatureFlags value)8343   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlags value )
8344   {
8345     if ( !value )
8346       return "{}";
8347 
8348     std::string result;
8349     if ( value & FormatFeatureFlagBits::eSampledImage )
8350       result += "SampledImage | ";
8351     if ( value & FormatFeatureFlagBits::eStorageImage )
8352       result += "StorageImage | ";
8353     if ( value & FormatFeatureFlagBits::eStorageImageAtomic )
8354       result += "StorageImageAtomic | ";
8355     if ( value & FormatFeatureFlagBits::eUniformTexelBuffer )
8356       result += "UniformTexelBuffer | ";
8357     if ( value & FormatFeatureFlagBits::eStorageTexelBuffer )
8358       result += "StorageTexelBuffer | ";
8359     if ( value & FormatFeatureFlagBits::eStorageTexelBufferAtomic )
8360       result += "StorageTexelBufferAtomic | ";
8361     if ( value & FormatFeatureFlagBits::eVertexBuffer )
8362       result += "VertexBuffer | ";
8363     if ( value & FormatFeatureFlagBits::eColorAttachment )
8364       result += "ColorAttachment | ";
8365     if ( value & FormatFeatureFlagBits::eColorAttachmentBlend )
8366       result += "ColorAttachmentBlend | ";
8367     if ( value & FormatFeatureFlagBits::eDepthStencilAttachment )
8368       result += "DepthStencilAttachment | ";
8369     if ( value & FormatFeatureFlagBits::eBlitSrc )
8370       result += "BlitSrc | ";
8371     if ( value & FormatFeatureFlagBits::eBlitDst )
8372       result += "BlitDst | ";
8373     if ( value & FormatFeatureFlagBits::eSampledImageFilterLinear )
8374       result += "SampledImageFilterLinear | ";
8375     if ( value & FormatFeatureFlagBits::eTransferSrc )
8376       result += "TransferSrc | ";
8377     if ( value & FormatFeatureFlagBits::eTransferDst )
8378       result += "TransferDst | ";
8379     if ( value & FormatFeatureFlagBits::eMidpointChromaSamples )
8380       result += "MidpointChromaSamples | ";
8381     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter )
8382       result += "SampledImageYcbcrConversionLinearFilter | ";
8383     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter )
8384       result += "SampledImageYcbcrConversionSeparateReconstructionFilter | ";
8385     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit )
8386       result += "SampledImageYcbcrConversionChromaReconstructionExplicit | ";
8387     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable )
8388       result += "SampledImageYcbcrConversionChromaReconstructionExplicitForceable | ";
8389     if ( value & FormatFeatureFlagBits::eDisjoint )
8390       result += "Disjoint | ";
8391     if ( value & FormatFeatureFlagBits::eCositedChromaSamples )
8392       result += "CositedChromaSamples | ";
8393     if ( value & FormatFeatureFlagBits::eSampledImageFilterMinmax )
8394       result += "SampledImageFilterMinmax | ";
8395     if ( value & FormatFeatureFlagBits::eSampledImageFilterCubicIMG )
8396       result += "SampledImageFilterCubicIMG | ";
8397 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8398     if ( value & FormatFeatureFlagBits::eVideoDecodeOutputKHR )
8399       result += "VideoDecodeOutputKHR | ";
8400     if ( value & FormatFeatureFlagBits::eVideoDecodeDpbKHR )
8401       result += "VideoDecodeDpbKHR | ";
8402 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8403     if ( value & FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR )
8404       result += "AccelerationStructureVertexBufferKHR | ";
8405     if ( value & FormatFeatureFlagBits::eFragmentDensityMapEXT )
8406       result += "FragmentDensityMapEXT | ";
8407     if ( value & FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR )
8408       result += "FragmentShadingRateAttachmentKHR | ";
8409 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8410     if ( value & FormatFeatureFlagBits::eVideoEncodeInputKHR )
8411       result += "VideoEncodeInputKHR | ";
8412     if ( value & FormatFeatureFlagBits::eVideoEncodeDpbKHR )
8413       result += "VideoEncodeDpbKHR | ";
8414 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8415 
8416     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8417   }
8418 
8419   using ImageCreateFlags = Flags<ImageCreateFlagBits>;
8420 
8421   template <>
8422   struct FlagTraits<ImageCreateFlagBits>
8423   {
8424     enum : VkFlags
8425     {
8426       allFlags = VkFlags( ImageCreateFlagBits::eSparseBinding ) | VkFlags( ImageCreateFlagBits::eSparseResidency ) |
8427                  VkFlags( ImageCreateFlagBits::eSparseAliased ) | VkFlags( ImageCreateFlagBits::eMutableFormat ) |
8428                  VkFlags( ImageCreateFlagBits::eCubeCompatible ) | VkFlags( ImageCreateFlagBits::eAlias ) |
8429                  VkFlags( ImageCreateFlagBits::eSplitInstanceBindRegions ) |
8430                  VkFlags( ImageCreateFlagBits::e2DArrayCompatible ) |
8431                  VkFlags( ImageCreateFlagBits::eBlockTexelViewCompatible ) |
8432                  VkFlags( ImageCreateFlagBits::eExtendedUsage ) | VkFlags( ImageCreateFlagBits::eProtected ) |
8433                  VkFlags( ImageCreateFlagBits::eDisjoint ) | VkFlags( ImageCreateFlagBits::eCornerSampledNV ) |
8434                  VkFlags( ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT ) |
8435                  VkFlags( ImageCreateFlagBits::eSubsampledEXT )
8436     };
8437   };
8438 
operator |(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)8439   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator|( ImageCreateFlagBits bit0,
8440                                                                      ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8441   {
8442     return ImageCreateFlags( bit0 ) | bit1;
8443   }
8444 
operator &(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)8445   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator&( ImageCreateFlagBits bit0,
8446                                                                      ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8447   {
8448     return ImageCreateFlags( bit0 ) & bit1;
8449   }
8450 
operator ^(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)8451   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator^( ImageCreateFlagBits bit0,
8452                                                                      ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8453   {
8454     return ImageCreateFlags( bit0 ) ^ bit1;
8455   }
8456 
operator ~(ImageCreateFlagBits bits)8457   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator~( ImageCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
8458   {
8459     return ~( ImageCreateFlags( bits ) );
8460   }
8461 
to_string(ImageCreateFlags value)8462   VULKAN_HPP_INLINE std::string to_string( ImageCreateFlags value )
8463   {
8464     if ( !value )
8465       return "{}";
8466 
8467     std::string result;
8468     if ( value & ImageCreateFlagBits::eSparseBinding )
8469       result += "SparseBinding | ";
8470     if ( value & ImageCreateFlagBits::eSparseResidency )
8471       result += "SparseResidency | ";
8472     if ( value & ImageCreateFlagBits::eSparseAliased )
8473       result += "SparseAliased | ";
8474     if ( value & ImageCreateFlagBits::eMutableFormat )
8475       result += "MutableFormat | ";
8476     if ( value & ImageCreateFlagBits::eCubeCompatible )
8477       result += "CubeCompatible | ";
8478     if ( value & ImageCreateFlagBits::eAlias )
8479       result += "Alias | ";
8480     if ( value & ImageCreateFlagBits::eSplitInstanceBindRegions )
8481       result += "SplitInstanceBindRegions | ";
8482     if ( value & ImageCreateFlagBits::e2DArrayCompatible )
8483       result += "2DArrayCompatible | ";
8484     if ( value & ImageCreateFlagBits::eBlockTexelViewCompatible )
8485       result += "BlockTexelViewCompatible | ";
8486     if ( value & ImageCreateFlagBits::eExtendedUsage )
8487       result += "ExtendedUsage | ";
8488     if ( value & ImageCreateFlagBits::eProtected )
8489       result += "Protected | ";
8490     if ( value & ImageCreateFlagBits::eDisjoint )
8491       result += "Disjoint | ";
8492     if ( value & ImageCreateFlagBits::eCornerSampledNV )
8493       result += "CornerSampledNV | ";
8494     if ( value & ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT )
8495       result += "SampleLocationsCompatibleDepthEXT | ";
8496     if ( value & ImageCreateFlagBits::eSubsampledEXT )
8497       result += "SubsampledEXT | ";
8498 
8499     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8500   }
8501 
8502   using ImageUsageFlags = Flags<ImageUsageFlagBits>;
8503 
8504   template <>
8505   struct FlagTraits<ImageUsageFlagBits>
8506   {
8507     enum : VkFlags
8508     {
8509       allFlags = VkFlags( ImageUsageFlagBits::eTransferSrc ) | VkFlags( ImageUsageFlagBits::eTransferDst ) |
8510                  VkFlags( ImageUsageFlagBits::eSampled ) | VkFlags( ImageUsageFlagBits::eStorage ) |
8511                  VkFlags( ImageUsageFlagBits::eColorAttachment ) |
8512                  VkFlags( ImageUsageFlagBits::eDepthStencilAttachment ) |
8513                  VkFlags( ImageUsageFlagBits::eTransientAttachment ) | VkFlags( ImageUsageFlagBits::eInputAttachment )
8514 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8515                  | VkFlags( ImageUsageFlagBits::eVideoDecodeDstKHR ) |
8516                  VkFlags( ImageUsageFlagBits::eVideoDecodeSrcKHR ) | VkFlags( ImageUsageFlagBits::eVideoDecodeDpbKHR )
8517 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8518                  | VkFlags( ImageUsageFlagBits::eFragmentDensityMapEXT ) |
8519                  VkFlags( ImageUsageFlagBits::eFragmentShadingRateAttachmentKHR )
8520 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8521                  | VkFlags( ImageUsageFlagBits::eVideoEncodeDstKHR ) |
8522                  VkFlags( ImageUsageFlagBits::eVideoEncodeSrcKHR ) | VkFlags( ImageUsageFlagBits::eVideoEncodeDpbKHR )
8523 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8524                  | VkFlags( ImageUsageFlagBits::eInvocationMaskHUAWEI )
8525     };
8526   };
8527 
operator |(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)8528   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator|( ImageUsageFlagBits bit0,
8529                                                                     ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8530   {
8531     return ImageUsageFlags( bit0 ) | bit1;
8532   }
8533 
operator &(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)8534   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator&( ImageUsageFlagBits bit0,
8535                                                                     ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8536   {
8537     return ImageUsageFlags( bit0 ) & bit1;
8538   }
8539 
operator ^(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)8540   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator^( ImageUsageFlagBits bit0,
8541                                                                     ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8542   {
8543     return ImageUsageFlags( bit0 ) ^ bit1;
8544   }
8545 
operator ~(ImageUsageFlagBits bits)8546   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator~( ImageUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT
8547   {
8548     return ~( ImageUsageFlags( bits ) );
8549   }
8550 
to_string(ImageUsageFlags value)8551   VULKAN_HPP_INLINE std::string to_string( ImageUsageFlags value )
8552   {
8553     if ( !value )
8554       return "{}";
8555 
8556     std::string result;
8557     if ( value & ImageUsageFlagBits::eTransferSrc )
8558       result += "TransferSrc | ";
8559     if ( value & ImageUsageFlagBits::eTransferDst )
8560       result += "TransferDst | ";
8561     if ( value & ImageUsageFlagBits::eSampled )
8562       result += "Sampled | ";
8563     if ( value & ImageUsageFlagBits::eStorage )
8564       result += "Storage | ";
8565     if ( value & ImageUsageFlagBits::eColorAttachment )
8566       result += "ColorAttachment | ";
8567     if ( value & ImageUsageFlagBits::eDepthStencilAttachment )
8568       result += "DepthStencilAttachment | ";
8569     if ( value & ImageUsageFlagBits::eTransientAttachment )
8570       result += "TransientAttachment | ";
8571     if ( value & ImageUsageFlagBits::eInputAttachment )
8572       result += "InputAttachment | ";
8573 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8574     if ( value & ImageUsageFlagBits::eVideoDecodeDstKHR )
8575       result += "VideoDecodeDstKHR | ";
8576     if ( value & ImageUsageFlagBits::eVideoDecodeSrcKHR )
8577       result += "VideoDecodeSrcKHR | ";
8578     if ( value & ImageUsageFlagBits::eVideoDecodeDpbKHR )
8579       result += "VideoDecodeDpbKHR | ";
8580 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8581     if ( value & ImageUsageFlagBits::eFragmentDensityMapEXT )
8582       result += "FragmentDensityMapEXT | ";
8583     if ( value & ImageUsageFlagBits::eFragmentShadingRateAttachmentKHR )
8584       result += "FragmentShadingRateAttachmentKHR | ";
8585 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8586     if ( value & ImageUsageFlagBits::eVideoEncodeDstKHR )
8587       result += "VideoEncodeDstKHR | ";
8588     if ( value & ImageUsageFlagBits::eVideoEncodeSrcKHR )
8589       result += "VideoEncodeSrcKHR | ";
8590     if ( value & ImageUsageFlagBits::eVideoEncodeDpbKHR )
8591       result += "VideoEncodeDpbKHR | ";
8592 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8593     if ( value & ImageUsageFlagBits::eInvocationMaskHUAWEI )
8594       result += "InvocationMaskHUAWEI | ";
8595 
8596     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8597   }
8598 
8599   using InstanceCreateFlags = Flags<InstanceCreateFlagBits>;
8600 
to_string(InstanceCreateFlags)8601   VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlags )
8602   {
8603     return "{}";
8604   }
8605 
8606   using MemoryHeapFlags = Flags<MemoryHeapFlagBits>;
8607 
8608   template <>
8609   struct FlagTraits<MemoryHeapFlagBits>
8610   {
8611     enum : VkFlags
8612     {
8613       allFlags = VkFlags( MemoryHeapFlagBits::eDeviceLocal ) | VkFlags( MemoryHeapFlagBits::eMultiInstance )
8614     };
8615   };
8616 
operator |(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)8617   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator|( MemoryHeapFlagBits bit0,
8618                                                                     MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8619   {
8620     return MemoryHeapFlags( bit0 ) | bit1;
8621   }
8622 
operator &(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)8623   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator&( MemoryHeapFlagBits bit0,
8624                                                                     MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8625   {
8626     return MemoryHeapFlags( bit0 ) & bit1;
8627   }
8628 
operator ^(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)8629   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator^( MemoryHeapFlagBits bit0,
8630                                                                     MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8631   {
8632     return MemoryHeapFlags( bit0 ) ^ bit1;
8633   }
8634 
operator ~(MemoryHeapFlagBits bits)8635   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator~( MemoryHeapFlagBits bits ) VULKAN_HPP_NOEXCEPT
8636   {
8637     return ~( MemoryHeapFlags( bits ) );
8638   }
8639 
to_string(MemoryHeapFlags value)8640   VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlags value )
8641   {
8642     if ( !value )
8643       return "{}";
8644 
8645     std::string result;
8646     if ( value & MemoryHeapFlagBits::eDeviceLocal )
8647       result += "DeviceLocal | ";
8648     if ( value & MemoryHeapFlagBits::eMultiInstance )
8649       result += "MultiInstance | ";
8650 
8651     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8652   }
8653 
8654   using MemoryPropertyFlags = Flags<MemoryPropertyFlagBits>;
8655 
8656   template <>
8657   struct FlagTraits<MemoryPropertyFlagBits>
8658   {
8659     enum : VkFlags
8660     {
8661       allFlags = VkFlags( MemoryPropertyFlagBits::eDeviceLocal ) | VkFlags( MemoryPropertyFlagBits::eHostVisible ) |
8662                  VkFlags( MemoryPropertyFlagBits::eHostCoherent ) | VkFlags( MemoryPropertyFlagBits::eHostCached ) |
8663                  VkFlags( MemoryPropertyFlagBits::eLazilyAllocated ) | VkFlags( MemoryPropertyFlagBits::eProtected ) |
8664                  VkFlags( MemoryPropertyFlagBits::eDeviceCoherentAMD ) |
8665                  VkFlags( MemoryPropertyFlagBits::eDeviceUncachedAMD ) |
8666                  VkFlags( MemoryPropertyFlagBits::eRdmaCapableNV )
8667     };
8668   };
8669 
8670   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags
operator |(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)8671     operator|( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8672   {
8673     return MemoryPropertyFlags( bit0 ) | bit1;
8674   }
8675 
8676   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags
operator &(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)8677     operator&( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8678   {
8679     return MemoryPropertyFlags( bit0 ) & bit1;
8680   }
8681 
8682   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags
operator ^(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)8683     operator^( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8684   {
8685     return MemoryPropertyFlags( bit0 ) ^ bit1;
8686   }
8687 
operator ~(MemoryPropertyFlagBits bits)8688   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator~( MemoryPropertyFlagBits bits )
8689     VULKAN_HPP_NOEXCEPT
8690   {
8691     return ~( MemoryPropertyFlags( bits ) );
8692   }
8693 
to_string(MemoryPropertyFlags value)8694   VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlags value )
8695   {
8696     if ( !value )
8697       return "{}";
8698 
8699     std::string result;
8700     if ( value & MemoryPropertyFlagBits::eDeviceLocal )
8701       result += "DeviceLocal | ";
8702     if ( value & MemoryPropertyFlagBits::eHostVisible )
8703       result += "HostVisible | ";
8704     if ( value & MemoryPropertyFlagBits::eHostCoherent )
8705       result += "HostCoherent | ";
8706     if ( value & MemoryPropertyFlagBits::eHostCached )
8707       result += "HostCached | ";
8708     if ( value & MemoryPropertyFlagBits::eLazilyAllocated )
8709       result += "LazilyAllocated | ";
8710     if ( value & MemoryPropertyFlagBits::eProtected )
8711       result += "Protected | ";
8712     if ( value & MemoryPropertyFlagBits::eDeviceCoherentAMD )
8713       result += "DeviceCoherentAMD | ";
8714     if ( value & MemoryPropertyFlagBits::eDeviceUncachedAMD )
8715       result += "DeviceUncachedAMD | ";
8716     if ( value & MemoryPropertyFlagBits::eRdmaCapableNV )
8717       result += "RdmaCapableNV | ";
8718 
8719     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8720   }
8721 
8722   using QueueFlags = Flags<QueueFlagBits>;
8723 
8724   template <>
8725   struct FlagTraits<QueueFlagBits>
8726   {
8727     enum : VkFlags
8728     {
8729       allFlags = VkFlags( QueueFlagBits::eGraphics ) | VkFlags( QueueFlagBits::eCompute ) |
8730                  VkFlags( QueueFlagBits::eTransfer ) | VkFlags( QueueFlagBits::eSparseBinding ) |
8731                  VkFlags( QueueFlagBits::eProtected )
8732 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8733                  | VkFlags( QueueFlagBits::eVideoDecodeKHR ) | VkFlags( QueueFlagBits::eVideoEncodeKHR )
8734 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8735     };
8736   };
8737 
operator |(QueueFlagBits bit0,QueueFlagBits bit1)8738   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator|( QueueFlagBits bit0,
8739                                                                QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8740   {
8741     return QueueFlags( bit0 ) | bit1;
8742   }
8743 
operator &(QueueFlagBits bit0,QueueFlagBits bit1)8744   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator&( QueueFlagBits bit0,
8745                                                                QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8746   {
8747     return QueueFlags( bit0 ) & bit1;
8748   }
8749 
operator ^(QueueFlagBits bit0,QueueFlagBits bit1)8750   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator^( QueueFlagBits bit0,
8751                                                                QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8752   {
8753     return QueueFlags( bit0 ) ^ bit1;
8754   }
8755 
operator ~(QueueFlagBits bits)8756   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator~( QueueFlagBits bits ) VULKAN_HPP_NOEXCEPT
8757   {
8758     return ~( QueueFlags( bits ) );
8759   }
8760 
to_string(QueueFlags value)8761   VULKAN_HPP_INLINE std::string to_string( QueueFlags value )
8762   {
8763     if ( !value )
8764       return "{}";
8765 
8766     std::string result;
8767     if ( value & QueueFlagBits::eGraphics )
8768       result += "Graphics | ";
8769     if ( value & QueueFlagBits::eCompute )
8770       result += "Compute | ";
8771     if ( value & QueueFlagBits::eTransfer )
8772       result += "Transfer | ";
8773     if ( value & QueueFlagBits::eSparseBinding )
8774       result += "SparseBinding | ";
8775     if ( value & QueueFlagBits::eProtected )
8776       result += "Protected | ";
8777 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8778     if ( value & QueueFlagBits::eVideoDecodeKHR )
8779       result += "VideoDecodeKHR | ";
8780     if ( value & QueueFlagBits::eVideoEncodeKHR )
8781       result += "VideoEncodeKHR | ";
8782 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8783 
8784     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8785   }
8786 
8787   using SampleCountFlags = Flags<SampleCountFlagBits>;
8788 
8789   template <>
8790   struct FlagTraits<SampleCountFlagBits>
8791   {
8792     enum : VkFlags
8793     {
8794       allFlags = VkFlags( SampleCountFlagBits::e1 ) | VkFlags( SampleCountFlagBits::e2 ) |
8795                  VkFlags( SampleCountFlagBits::e4 ) | VkFlags( SampleCountFlagBits::e8 ) |
8796                  VkFlags( SampleCountFlagBits::e16 ) | VkFlags( SampleCountFlagBits::e32 ) |
8797                  VkFlags( SampleCountFlagBits::e64 )
8798     };
8799   };
8800 
operator |(SampleCountFlagBits bit0,SampleCountFlagBits bit1)8801   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator|( SampleCountFlagBits bit0,
8802                                                                      SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8803   {
8804     return SampleCountFlags( bit0 ) | bit1;
8805   }
8806 
operator &(SampleCountFlagBits bit0,SampleCountFlagBits bit1)8807   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator&( SampleCountFlagBits bit0,
8808                                                                      SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8809   {
8810     return SampleCountFlags( bit0 ) & bit1;
8811   }
8812 
operator ^(SampleCountFlagBits bit0,SampleCountFlagBits bit1)8813   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator^( SampleCountFlagBits bit0,
8814                                                                      SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8815   {
8816     return SampleCountFlags( bit0 ) ^ bit1;
8817   }
8818 
operator ~(SampleCountFlagBits bits)8819   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator~( SampleCountFlagBits bits ) VULKAN_HPP_NOEXCEPT
8820   {
8821     return ~( SampleCountFlags( bits ) );
8822   }
8823 
to_string(SampleCountFlags value)8824   VULKAN_HPP_INLINE std::string to_string( SampleCountFlags value )
8825   {
8826     if ( !value )
8827       return "{}";
8828 
8829     std::string result;
8830     if ( value & SampleCountFlagBits::e1 )
8831       result += "1 | ";
8832     if ( value & SampleCountFlagBits::e2 )
8833       result += "2 | ";
8834     if ( value & SampleCountFlagBits::e4 )
8835       result += "4 | ";
8836     if ( value & SampleCountFlagBits::e8 )
8837       result += "8 | ";
8838     if ( value & SampleCountFlagBits::e16 )
8839       result += "16 | ";
8840     if ( value & SampleCountFlagBits::e32 )
8841       result += "32 | ";
8842     if ( value & SampleCountFlagBits::e64 )
8843       result += "64 | ";
8844 
8845     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8846   }
8847 
8848   using DeviceCreateFlags = Flags<DeviceCreateFlagBits>;
8849 
to_string(DeviceCreateFlags)8850   VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlags )
8851   {
8852     return "{}";
8853   }
8854 
8855   using DeviceQueueCreateFlags = Flags<DeviceQueueCreateFlagBits>;
8856 
8857   template <>
8858   struct FlagTraits<DeviceQueueCreateFlagBits>
8859   {
8860     enum : VkFlags
8861     {
8862       allFlags = VkFlags( DeviceQueueCreateFlagBits::eProtected )
8863     };
8864   };
8865 
8866   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags
operator |(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)8867     operator|( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8868   {
8869     return DeviceQueueCreateFlags( bit0 ) | bit1;
8870   }
8871 
8872   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags
operator &(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)8873     operator&( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8874   {
8875     return DeviceQueueCreateFlags( bit0 ) & bit1;
8876   }
8877 
8878   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags
operator ^(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)8879     operator^( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8880   {
8881     return DeviceQueueCreateFlags( bit0 ) ^ bit1;
8882   }
8883 
operator ~(DeviceQueueCreateFlagBits bits)8884   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator~( DeviceQueueCreateFlagBits bits )
8885     VULKAN_HPP_NOEXCEPT
8886   {
8887     return ~( DeviceQueueCreateFlags( bits ) );
8888   }
8889 
to_string(DeviceQueueCreateFlags value)8890   VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlags value )
8891   {
8892     if ( !value )
8893       return "{}";
8894 
8895     std::string result;
8896     if ( value & DeviceQueueCreateFlagBits::eProtected )
8897       result += "Protected | ";
8898 
8899     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8900   }
8901 
8902   using PipelineStageFlags = Flags<PipelineStageFlagBits>;
8903 
8904   template <>
8905   struct FlagTraits<PipelineStageFlagBits>
8906   {
8907     enum : VkFlags
8908     {
8909       allFlags =
8910         VkFlags( PipelineStageFlagBits::eTopOfPipe ) | VkFlags( PipelineStageFlagBits::eDrawIndirect ) |
8911         VkFlags( PipelineStageFlagBits::eVertexInput ) | VkFlags( PipelineStageFlagBits::eVertexShader ) |
8912         VkFlags( PipelineStageFlagBits::eTessellationControlShader ) |
8913         VkFlags( PipelineStageFlagBits::eTessellationEvaluationShader ) |
8914         VkFlags( PipelineStageFlagBits::eGeometryShader ) | VkFlags( PipelineStageFlagBits::eFragmentShader ) |
8915         VkFlags( PipelineStageFlagBits::eEarlyFragmentTests ) | VkFlags( PipelineStageFlagBits::eLateFragmentTests ) |
8916         VkFlags( PipelineStageFlagBits::eColorAttachmentOutput ) | VkFlags( PipelineStageFlagBits::eComputeShader ) |
8917         VkFlags( PipelineStageFlagBits::eTransfer ) | VkFlags( PipelineStageFlagBits::eBottomOfPipe ) |
8918         VkFlags( PipelineStageFlagBits::eHost ) | VkFlags( PipelineStageFlagBits::eAllGraphics ) |
8919         VkFlags( PipelineStageFlagBits::eAllCommands ) | VkFlags( PipelineStageFlagBits::eTransformFeedbackEXT ) |
8920         VkFlags( PipelineStageFlagBits::eConditionalRenderingEXT ) |
8921         VkFlags( PipelineStageFlagBits::eAccelerationStructureBuildKHR ) |
8922         VkFlags( PipelineStageFlagBits::eRayTracingShaderKHR ) | VkFlags( PipelineStageFlagBits::eTaskShaderNV ) |
8923         VkFlags( PipelineStageFlagBits::eMeshShaderNV ) | VkFlags( PipelineStageFlagBits::eFragmentDensityProcessEXT ) |
8924         VkFlags( PipelineStageFlagBits::eFragmentShadingRateAttachmentKHR ) |
8925         VkFlags( PipelineStageFlagBits::eCommandPreprocessNV ) | VkFlags( PipelineStageFlagBits::eNoneKHR )
8926     };
8927   };
8928 
operator |(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)8929   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator|( PipelineStageFlagBits bit0,
8930                                                                        PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8931   {
8932     return PipelineStageFlags( bit0 ) | bit1;
8933   }
8934 
operator &(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)8935   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator&( PipelineStageFlagBits bit0,
8936                                                                        PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8937   {
8938     return PipelineStageFlags( bit0 ) & bit1;
8939   }
8940 
operator ^(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)8941   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator^( PipelineStageFlagBits bit0,
8942                                                                        PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8943   {
8944     return PipelineStageFlags( bit0 ) ^ bit1;
8945   }
8946 
operator ~(PipelineStageFlagBits bits)8947   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator~( PipelineStageFlagBits bits ) VULKAN_HPP_NOEXCEPT
8948   {
8949     return ~( PipelineStageFlags( bits ) );
8950   }
8951 
to_string(PipelineStageFlags value)8952   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlags value )
8953   {
8954     if ( !value )
8955       return "{}";
8956 
8957     std::string result;
8958     if ( value & PipelineStageFlagBits::eTopOfPipe )
8959       result += "TopOfPipe | ";
8960     if ( value & PipelineStageFlagBits::eDrawIndirect )
8961       result += "DrawIndirect | ";
8962     if ( value & PipelineStageFlagBits::eVertexInput )
8963       result += "VertexInput | ";
8964     if ( value & PipelineStageFlagBits::eVertexShader )
8965       result += "VertexShader | ";
8966     if ( value & PipelineStageFlagBits::eTessellationControlShader )
8967       result += "TessellationControlShader | ";
8968     if ( value & PipelineStageFlagBits::eTessellationEvaluationShader )
8969       result += "TessellationEvaluationShader | ";
8970     if ( value & PipelineStageFlagBits::eGeometryShader )
8971       result += "GeometryShader | ";
8972     if ( value & PipelineStageFlagBits::eFragmentShader )
8973       result += "FragmentShader | ";
8974     if ( value & PipelineStageFlagBits::eEarlyFragmentTests )
8975       result += "EarlyFragmentTests | ";
8976     if ( value & PipelineStageFlagBits::eLateFragmentTests )
8977       result += "LateFragmentTests | ";
8978     if ( value & PipelineStageFlagBits::eColorAttachmentOutput )
8979       result += "ColorAttachmentOutput | ";
8980     if ( value & PipelineStageFlagBits::eComputeShader )
8981       result += "ComputeShader | ";
8982     if ( value & PipelineStageFlagBits::eTransfer )
8983       result += "Transfer | ";
8984     if ( value & PipelineStageFlagBits::eBottomOfPipe )
8985       result += "BottomOfPipe | ";
8986     if ( value & PipelineStageFlagBits::eHost )
8987       result += "Host | ";
8988     if ( value & PipelineStageFlagBits::eAllGraphics )
8989       result += "AllGraphics | ";
8990     if ( value & PipelineStageFlagBits::eAllCommands )
8991       result += "AllCommands | ";
8992     if ( value & PipelineStageFlagBits::eTransformFeedbackEXT )
8993       result += "TransformFeedbackEXT | ";
8994     if ( value & PipelineStageFlagBits::eConditionalRenderingEXT )
8995       result += "ConditionalRenderingEXT | ";
8996     if ( value & PipelineStageFlagBits::eAccelerationStructureBuildKHR )
8997       result += "AccelerationStructureBuildKHR | ";
8998     if ( value & PipelineStageFlagBits::eRayTracingShaderKHR )
8999       result += "RayTracingShaderKHR | ";
9000     if ( value & PipelineStageFlagBits::eTaskShaderNV )
9001       result += "TaskShaderNV | ";
9002     if ( value & PipelineStageFlagBits::eMeshShaderNV )
9003       result += "MeshShaderNV | ";
9004     if ( value & PipelineStageFlagBits::eFragmentDensityProcessEXT )
9005       result += "FragmentDensityProcessEXT | ";
9006     if ( value & PipelineStageFlagBits::eFragmentShadingRateAttachmentKHR )
9007       result += "FragmentShadingRateAttachmentKHR | ";
9008     if ( value & PipelineStageFlagBits::eCommandPreprocessNV )
9009       result += "CommandPreprocessNV | ";
9010 
9011     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9012   }
9013 
9014   using MemoryMapFlags = Flags<MemoryMapFlagBits>;
9015 
to_string(MemoryMapFlags)9016   VULKAN_HPP_INLINE std::string to_string( MemoryMapFlags )
9017   {
9018     return "{}";
9019   }
9020 
9021   using ImageAspectFlags = Flags<ImageAspectFlagBits>;
9022 
9023   template <>
9024   struct FlagTraits<ImageAspectFlagBits>
9025   {
9026     enum : VkFlags
9027     {
9028       allFlags = VkFlags( ImageAspectFlagBits::eColor ) | VkFlags( ImageAspectFlagBits::eDepth ) |
9029                  VkFlags( ImageAspectFlagBits::eStencil ) | VkFlags( ImageAspectFlagBits::eMetadata ) |
9030                  VkFlags( ImageAspectFlagBits::ePlane0 ) | VkFlags( ImageAspectFlagBits::ePlane1 ) |
9031                  VkFlags( ImageAspectFlagBits::ePlane2 ) | VkFlags( ImageAspectFlagBits::eMemoryPlane0EXT ) |
9032                  VkFlags( ImageAspectFlagBits::eMemoryPlane1EXT ) | VkFlags( ImageAspectFlagBits::eMemoryPlane2EXT ) |
9033                  VkFlags( ImageAspectFlagBits::eMemoryPlane3EXT )
9034     };
9035   };
9036 
operator |(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)9037   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator|( ImageAspectFlagBits bit0,
9038                                                                      ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9039   {
9040     return ImageAspectFlags( bit0 ) | bit1;
9041   }
9042 
operator &(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)9043   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator&( ImageAspectFlagBits bit0,
9044                                                                      ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9045   {
9046     return ImageAspectFlags( bit0 ) & bit1;
9047   }
9048 
operator ^(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)9049   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator^( ImageAspectFlagBits bit0,
9050                                                                      ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9051   {
9052     return ImageAspectFlags( bit0 ) ^ bit1;
9053   }
9054 
operator ~(ImageAspectFlagBits bits)9055   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator~( ImageAspectFlagBits bits ) VULKAN_HPP_NOEXCEPT
9056   {
9057     return ~( ImageAspectFlags( bits ) );
9058   }
9059 
to_string(ImageAspectFlags value)9060   VULKAN_HPP_INLINE std::string to_string( ImageAspectFlags value )
9061   {
9062     if ( !value )
9063       return "{}";
9064 
9065     std::string result;
9066     if ( value & ImageAspectFlagBits::eColor )
9067       result += "Color | ";
9068     if ( value & ImageAspectFlagBits::eDepth )
9069       result += "Depth | ";
9070     if ( value & ImageAspectFlagBits::eStencil )
9071       result += "Stencil | ";
9072     if ( value & ImageAspectFlagBits::eMetadata )
9073       result += "Metadata | ";
9074     if ( value & ImageAspectFlagBits::ePlane0 )
9075       result += "Plane0 | ";
9076     if ( value & ImageAspectFlagBits::ePlane1 )
9077       result += "Plane1 | ";
9078     if ( value & ImageAspectFlagBits::ePlane2 )
9079       result += "Plane2 | ";
9080     if ( value & ImageAspectFlagBits::eMemoryPlane0EXT )
9081       result += "MemoryPlane0EXT | ";
9082     if ( value & ImageAspectFlagBits::eMemoryPlane1EXT )
9083       result += "MemoryPlane1EXT | ";
9084     if ( value & ImageAspectFlagBits::eMemoryPlane2EXT )
9085       result += "MemoryPlane2EXT | ";
9086     if ( value & ImageAspectFlagBits::eMemoryPlane3EXT )
9087       result += "MemoryPlane3EXT | ";
9088 
9089     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9090   }
9091 
9092   using SparseImageFormatFlags = Flags<SparseImageFormatFlagBits>;
9093 
9094   template <>
9095   struct FlagTraits<SparseImageFormatFlagBits>
9096   {
9097     enum : VkFlags
9098     {
9099       allFlags = VkFlags( SparseImageFormatFlagBits::eSingleMiptail ) |
9100                  VkFlags( SparseImageFormatFlagBits::eAlignedMipSize ) |
9101                  VkFlags( SparseImageFormatFlagBits::eNonstandardBlockSize )
9102     };
9103   };
9104 
9105   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags
operator |(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)9106     operator|( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9107   {
9108     return SparseImageFormatFlags( bit0 ) | bit1;
9109   }
9110 
9111   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags
operator &(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)9112     operator&( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9113   {
9114     return SparseImageFormatFlags( bit0 ) & bit1;
9115   }
9116 
9117   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags
operator ^(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)9118     operator^( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9119   {
9120     return SparseImageFormatFlags( bit0 ) ^ bit1;
9121   }
9122 
operator ~(SparseImageFormatFlagBits bits)9123   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator~( SparseImageFormatFlagBits bits )
9124     VULKAN_HPP_NOEXCEPT
9125   {
9126     return ~( SparseImageFormatFlags( bits ) );
9127   }
9128 
to_string(SparseImageFormatFlags value)9129   VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlags value )
9130   {
9131     if ( !value )
9132       return "{}";
9133 
9134     std::string result;
9135     if ( value & SparseImageFormatFlagBits::eSingleMiptail )
9136       result += "SingleMiptail | ";
9137     if ( value & SparseImageFormatFlagBits::eAlignedMipSize )
9138       result += "AlignedMipSize | ";
9139     if ( value & SparseImageFormatFlagBits::eNonstandardBlockSize )
9140       result += "NonstandardBlockSize | ";
9141 
9142     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9143   }
9144 
9145   using SparseMemoryBindFlags = Flags<SparseMemoryBindFlagBits>;
9146 
9147   template <>
9148   struct FlagTraits<SparseMemoryBindFlagBits>
9149   {
9150     enum : VkFlags
9151     {
9152       allFlags = VkFlags( SparseMemoryBindFlagBits::eMetadata )
9153     };
9154   };
9155 
9156   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags
operator |(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)9157     operator|( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9158   {
9159     return SparseMemoryBindFlags( bit0 ) | bit1;
9160   }
9161 
9162   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags
operator &(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)9163     operator&( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9164   {
9165     return SparseMemoryBindFlags( bit0 ) & bit1;
9166   }
9167 
9168   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags
operator ^(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)9169     operator^( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9170   {
9171     return SparseMemoryBindFlags( bit0 ) ^ bit1;
9172   }
9173 
operator ~(SparseMemoryBindFlagBits bits)9174   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator~( SparseMemoryBindFlagBits bits )
9175     VULKAN_HPP_NOEXCEPT
9176   {
9177     return ~( SparseMemoryBindFlags( bits ) );
9178   }
9179 
to_string(SparseMemoryBindFlags value)9180   VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlags value )
9181   {
9182     if ( !value )
9183       return "{}";
9184 
9185     std::string result;
9186     if ( value & SparseMemoryBindFlagBits::eMetadata )
9187       result += "Metadata | ";
9188 
9189     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9190   }
9191 
9192   using FenceCreateFlags = Flags<FenceCreateFlagBits>;
9193 
9194   template <>
9195   struct FlagTraits<FenceCreateFlagBits>
9196   {
9197     enum : VkFlags
9198     {
9199       allFlags = VkFlags( FenceCreateFlagBits::eSignaled )
9200     };
9201   };
9202 
operator |(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)9203   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator|( FenceCreateFlagBits bit0,
9204                                                                      FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9205   {
9206     return FenceCreateFlags( bit0 ) | bit1;
9207   }
9208 
operator &(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)9209   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator&( FenceCreateFlagBits bit0,
9210                                                                      FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9211   {
9212     return FenceCreateFlags( bit0 ) & bit1;
9213   }
9214 
operator ^(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)9215   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator^( FenceCreateFlagBits bit0,
9216                                                                      FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9217   {
9218     return FenceCreateFlags( bit0 ) ^ bit1;
9219   }
9220 
operator ~(FenceCreateFlagBits bits)9221   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator~( FenceCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
9222   {
9223     return ~( FenceCreateFlags( bits ) );
9224   }
9225 
to_string(FenceCreateFlags value)9226   VULKAN_HPP_INLINE std::string to_string( FenceCreateFlags value )
9227   {
9228     if ( !value )
9229       return "{}";
9230 
9231     std::string result;
9232     if ( value & FenceCreateFlagBits::eSignaled )
9233       result += "Signaled | ";
9234 
9235     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9236   }
9237 
9238   using SemaphoreCreateFlags = Flags<SemaphoreCreateFlagBits>;
9239 
to_string(SemaphoreCreateFlags)9240   VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlags )
9241   {
9242     return "{}";
9243   }
9244 
9245   using EventCreateFlags = Flags<EventCreateFlagBits>;
9246 
9247   template <>
9248   struct FlagTraits<EventCreateFlagBits>
9249   {
9250     enum : VkFlags
9251     {
9252       allFlags = VkFlags( EventCreateFlagBits::eDeviceOnlyKHR )
9253     };
9254   };
9255 
operator |(EventCreateFlagBits bit0,EventCreateFlagBits bit1)9256   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator|( EventCreateFlagBits bit0,
9257                                                                      EventCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9258   {
9259     return EventCreateFlags( bit0 ) | bit1;
9260   }
9261 
operator &(EventCreateFlagBits bit0,EventCreateFlagBits bit1)9262   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator&( EventCreateFlagBits bit0,
9263                                                                      EventCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9264   {
9265     return EventCreateFlags( bit0 ) & bit1;
9266   }
9267 
operator ^(EventCreateFlagBits bit0,EventCreateFlagBits bit1)9268   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator^( EventCreateFlagBits bit0,
9269                                                                      EventCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9270   {
9271     return EventCreateFlags( bit0 ) ^ bit1;
9272   }
9273 
operator ~(EventCreateFlagBits bits)9274   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator~( EventCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
9275   {
9276     return ~( EventCreateFlags( bits ) );
9277   }
9278 
to_string(EventCreateFlags value)9279   VULKAN_HPP_INLINE std::string to_string( EventCreateFlags value )
9280   {
9281     if ( !value )
9282       return "{}";
9283 
9284     std::string result;
9285     if ( value & EventCreateFlagBits::eDeviceOnlyKHR )
9286       result += "DeviceOnlyKHR | ";
9287 
9288     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9289   }
9290 
9291   using QueryPipelineStatisticFlags = Flags<QueryPipelineStatisticFlagBits>;
9292 
9293   template <>
9294   struct FlagTraits<QueryPipelineStatisticFlagBits>
9295   {
9296     enum : VkFlags
9297     {
9298       allFlags = VkFlags( QueryPipelineStatisticFlagBits::eInputAssemblyVertices ) |
9299                  VkFlags( QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives ) |
9300                  VkFlags( QueryPipelineStatisticFlagBits::eVertexShaderInvocations ) |
9301                  VkFlags( QueryPipelineStatisticFlagBits::eGeometryShaderInvocations ) |
9302                  VkFlags( QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives ) |
9303                  VkFlags( QueryPipelineStatisticFlagBits::eClippingInvocations ) |
9304                  VkFlags( QueryPipelineStatisticFlagBits::eClippingPrimitives ) |
9305                  VkFlags( QueryPipelineStatisticFlagBits::eFragmentShaderInvocations ) |
9306                  VkFlags( QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches ) |
9307                  VkFlags( QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations ) |
9308                  VkFlags( QueryPipelineStatisticFlagBits::eComputeShaderInvocations )
9309     };
9310   };
9311 
9312   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags
operator |(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)9313     operator|( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9314   {
9315     return QueryPipelineStatisticFlags( bit0 ) | bit1;
9316   }
9317 
9318   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags
operator &(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)9319     operator&( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9320   {
9321     return QueryPipelineStatisticFlags( bit0 ) & bit1;
9322   }
9323 
9324   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags
operator ^(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)9325     operator^( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9326   {
9327     return QueryPipelineStatisticFlags( bit0 ) ^ bit1;
9328   }
9329 
operator ~(QueryPipelineStatisticFlagBits bits)9330   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator~( QueryPipelineStatisticFlagBits bits )
9331     VULKAN_HPP_NOEXCEPT
9332   {
9333     return ~( QueryPipelineStatisticFlags( bits ) );
9334   }
9335 
to_string(QueryPipelineStatisticFlags value)9336   VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlags value )
9337   {
9338     if ( !value )
9339       return "{}";
9340 
9341     std::string result;
9342     if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyVertices )
9343       result += "InputAssemblyVertices | ";
9344     if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives )
9345       result += "InputAssemblyPrimitives | ";
9346     if ( value & QueryPipelineStatisticFlagBits::eVertexShaderInvocations )
9347       result += "VertexShaderInvocations | ";
9348     if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderInvocations )
9349       result += "GeometryShaderInvocations | ";
9350     if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives )
9351       result += "GeometryShaderPrimitives | ";
9352     if ( value & QueryPipelineStatisticFlagBits::eClippingInvocations )
9353       result += "ClippingInvocations | ";
9354     if ( value & QueryPipelineStatisticFlagBits::eClippingPrimitives )
9355       result += "ClippingPrimitives | ";
9356     if ( value & QueryPipelineStatisticFlagBits::eFragmentShaderInvocations )
9357       result += "FragmentShaderInvocations | ";
9358     if ( value & QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches )
9359       result += "TessellationControlShaderPatches | ";
9360     if ( value & QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations )
9361       result += "TessellationEvaluationShaderInvocations | ";
9362     if ( value & QueryPipelineStatisticFlagBits::eComputeShaderInvocations )
9363       result += "ComputeShaderInvocations | ";
9364 
9365     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9366   }
9367 
9368   using QueryPoolCreateFlags = Flags<QueryPoolCreateFlagBits>;
9369 
to_string(QueryPoolCreateFlags)9370   VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlags )
9371   {
9372     return "{}";
9373   }
9374 
9375   using QueryResultFlags = Flags<QueryResultFlagBits>;
9376 
9377   template <>
9378   struct FlagTraits<QueryResultFlagBits>
9379   {
9380     enum : VkFlags
9381     {
9382       allFlags = VkFlags( QueryResultFlagBits::e64 ) | VkFlags( QueryResultFlagBits::eWait ) |
9383                  VkFlags( QueryResultFlagBits::eWithAvailability ) | VkFlags( QueryResultFlagBits::ePartial )
9384 #if defined( VK_ENABLE_BETA_EXTENSIONS )
9385                  | VkFlags( QueryResultFlagBits::eWithStatusKHR )
9386 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
9387     };
9388   };
9389 
operator |(QueryResultFlagBits bit0,QueryResultFlagBits bit1)9390   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator|( QueryResultFlagBits bit0,
9391                                                                      QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9392   {
9393     return QueryResultFlags( bit0 ) | bit1;
9394   }
9395 
operator &(QueryResultFlagBits bit0,QueryResultFlagBits bit1)9396   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator&( QueryResultFlagBits bit0,
9397                                                                      QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9398   {
9399     return QueryResultFlags( bit0 ) & bit1;
9400   }
9401 
operator ^(QueryResultFlagBits bit0,QueryResultFlagBits bit1)9402   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator^( QueryResultFlagBits bit0,
9403                                                                      QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9404   {
9405     return QueryResultFlags( bit0 ) ^ bit1;
9406   }
9407 
operator ~(QueryResultFlagBits bits)9408   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator~( QueryResultFlagBits bits ) VULKAN_HPP_NOEXCEPT
9409   {
9410     return ~( QueryResultFlags( bits ) );
9411   }
9412 
to_string(QueryResultFlags value)9413   VULKAN_HPP_INLINE std::string to_string( QueryResultFlags value )
9414   {
9415     if ( !value )
9416       return "{}";
9417 
9418     std::string result;
9419     if ( value & QueryResultFlagBits::e64 )
9420       result += "64 | ";
9421     if ( value & QueryResultFlagBits::eWait )
9422       result += "Wait | ";
9423     if ( value & QueryResultFlagBits::eWithAvailability )
9424       result += "WithAvailability | ";
9425     if ( value & QueryResultFlagBits::ePartial )
9426       result += "Partial | ";
9427 #if defined( VK_ENABLE_BETA_EXTENSIONS )
9428     if ( value & QueryResultFlagBits::eWithStatusKHR )
9429       result += "WithStatusKHR | ";
9430 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
9431 
9432     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9433   }
9434 
9435   using BufferCreateFlags = Flags<BufferCreateFlagBits>;
9436 
9437   template <>
9438   struct FlagTraits<BufferCreateFlagBits>
9439   {
9440     enum : VkFlags
9441     {
9442       allFlags = VkFlags( BufferCreateFlagBits::eSparseBinding ) | VkFlags( BufferCreateFlagBits::eSparseResidency ) |
9443                  VkFlags( BufferCreateFlagBits::eSparseAliased ) | VkFlags( BufferCreateFlagBits::eProtected ) |
9444                  VkFlags( BufferCreateFlagBits::eDeviceAddressCaptureReplay )
9445     };
9446   };
9447 
operator |(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)9448   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator|( BufferCreateFlagBits bit0,
9449                                                                       BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9450   {
9451     return BufferCreateFlags( bit0 ) | bit1;
9452   }
9453 
operator &(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)9454   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator&( BufferCreateFlagBits bit0,
9455                                                                       BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9456   {
9457     return BufferCreateFlags( bit0 ) & bit1;
9458   }
9459 
operator ^(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)9460   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator^( BufferCreateFlagBits bit0,
9461                                                                       BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9462   {
9463     return BufferCreateFlags( bit0 ) ^ bit1;
9464   }
9465 
operator ~(BufferCreateFlagBits bits)9466   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator~( BufferCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
9467   {
9468     return ~( BufferCreateFlags( bits ) );
9469   }
9470 
to_string(BufferCreateFlags value)9471   VULKAN_HPP_INLINE std::string to_string( BufferCreateFlags value )
9472   {
9473     if ( !value )
9474       return "{}";
9475 
9476     std::string result;
9477     if ( value & BufferCreateFlagBits::eSparseBinding )
9478       result += "SparseBinding | ";
9479     if ( value & BufferCreateFlagBits::eSparseResidency )
9480       result += "SparseResidency | ";
9481     if ( value & BufferCreateFlagBits::eSparseAliased )
9482       result += "SparseAliased | ";
9483     if ( value & BufferCreateFlagBits::eProtected )
9484       result += "Protected | ";
9485     if ( value & BufferCreateFlagBits::eDeviceAddressCaptureReplay )
9486       result += "DeviceAddressCaptureReplay | ";
9487 
9488     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9489   }
9490 
9491   using BufferUsageFlags = Flags<BufferUsageFlagBits>;
9492 
9493   template <>
9494   struct FlagTraits<BufferUsageFlagBits>
9495   {
9496     enum : VkFlags
9497     {
9498       allFlags =
9499         VkFlags( BufferUsageFlagBits::eTransferSrc ) | VkFlags( BufferUsageFlagBits::eTransferDst ) |
9500         VkFlags( BufferUsageFlagBits::eUniformTexelBuffer ) | VkFlags( BufferUsageFlagBits::eStorageTexelBuffer ) |
9501         VkFlags( BufferUsageFlagBits::eUniformBuffer ) | VkFlags( BufferUsageFlagBits::eStorageBuffer ) |
9502         VkFlags( BufferUsageFlagBits::eIndexBuffer ) | VkFlags( BufferUsageFlagBits::eVertexBuffer ) |
9503         VkFlags( BufferUsageFlagBits::eIndirectBuffer ) | VkFlags( BufferUsageFlagBits::eShaderDeviceAddress )
9504 #if defined( VK_ENABLE_BETA_EXTENSIONS )
9505         | VkFlags( BufferUsageFlagBits::eVideoDecodeSrcKHR ) | VkFlags( BufferUsageFlagBits::eVideoDecodeDstKHR )
9506 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
9507         | VkFlags( BufferUsageFlagBits::eTransformFeedbackBufferEXT ) |
9508         VkFlags( BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT ) |
9509         VkFlags( BufferUsageFlagBits::eConditionalRenderingEXT ) |
9510         VkFlags( BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR ) |
9511         VkFlags( BufferUsageFlagBits::eAccelerationStructureStorageKHR ) |
9512         VkFlags( BufferUsageFlagBits::eShaderBindingTableKHR )
9513 #if defined( VK_ENABLE_BETA_EXTENSIONS )
9514         | VkFlags( BufferUsageFlagBits::eVideoEncodeDstKHR ) | VkFlags( BufferUsageFlagBits::eVideoEncodeSrcKHR )
9515 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
9516     };
9517   };
9518 
operator |(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)9519   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator|( BufferUsageFlagBits bit0,
9520                                                                      BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9521   {
9522     return BufferUsageFlags( bit0 ) | bit1;
9523   }
9524 
operator &(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)9525   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator&( BufferUsageFlagBits bit0,
9526                                                                      BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9527   {
9528     return BufferUsageFlags( bit0 ) & bit1;
9529   }
9530 
operator ^(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)9531   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator^( BufferUsageFlagBits bit0,
9532                                                                      BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9533   {
9534     return BufferUsageFlags( bit0 ) ^ bit1;
9535   }
9536 
operator ~(BufferUsageFlagBits bits)9537   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator~( BufferUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT
9538   {
9539     return ~( BufferUsageFlags( bits ) );
9540   }
9541 
to_string(BufferUsageFlags value)9542   VULKAN_HPP_INLINE std::string to_string( BufferUsageFlags value )
9543   {
9544     if ( !value )
9545       return "{}";
9546 
9547     std::string result;
9548     if ( value & BufferUsageFlagBits::eTransferSrc )
9549       result += "TransferSrc | ";
9550     if ( value & BufferUsageFlagBits::eTransferDst )
9551       result += "TransferDst | ";
9552     if ( value & BufferUsageFlagBits::eUniformTexelBuffer )
9553       result += "UniformTexelBuffer | ";
9554     if ( value & BufferUsageFlagBits::eStorageTexelBuffer )
9555       result += "StorageTexelBuffer | ";
9556     if ( value & BufferUsageFlagBits::eUniformBuffer )
9557       result += "UniformBuffer | ";
9558     if ( value & BufferUsageFlagBits::eStorageBuffer )
9559       result += "StorageBuffer | ";
9560     if ( value & BufferUsageFlagBits::eIndexBuffer )
9561       result += "IndexBuffer | ";
9562     if ( value & BufferUsageFlagBits::eVertexBuffer )
9563       result += "VertexBuffer | ";
9564     if ( value & BufferUsageFlagBits::eIndirectBuffer )
9565       result += "IndirectBuffer | ";
9566     if ( value & BufferUsageFlagBits::eShaderDeviceAddress )
9567       result += "ShaderDeviceAddress | ";
9568 #if defined( VK_ENABLE_BETA_EXTENSIONS )
9569     if ( value & BufferUsageFlagBits::eVideoDecodeSrcKHR )
9570       result += "VideoDecodeSrcKHR | ";
9571     if ( value & BufferUsageFlagBits::eVideoDecodeDstKHR )
9572       result += "VideoDecodeDstKHR | ";
9573 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
9574     if ( value & BufferUsageFlagBits::eTransformFeedbackBufferEXT )
9575       result += "TransformFeedbackBufferEXT | ";
9576     if ( value & BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT )
9577       result += "TransformFeedbackCounterBufferEXT | ";
9578     if ( value & BufferUsageFlagBits::eConditionalRenderingEXT )
9579       result += "ConditionalRenderingEXT | ";
9580     if ( value & BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR )
9581       result += "AccelerationStructureBuildInputReadOnlyKHR | ";
9582     if ( value & BufferUsageFlagBits::eAccelerationStructureStorageKHR )
9583       result += "AccelerationStructureStorageKHR | ";
9584     if ( value & BufferUsageFlagBits::eShaderBindingTableKHR )
9585       result += "ShaderBindingTableKHR | ";
9586 #if defined( VK_ENABLE_BETA_EXTENSIONS )
9587     if ( value & BufferUsageFlagBits::eVideoEncodeDstKHR )
9588       result += "VideoEncodeDstKHR | ";
9589     if ( value & BufferUsageFlagBits::eVideoEncodeSrcKHR )
9590       result += "VideoEncodeSrcKHR | ";
9591 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
9592 
9593     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9594   }
9595 
9596   using BufferViewCreateFlags = Flags<BufferViewCreateFlagBits>;
9597 
to_string(BufferViewCreateFlags)9598   VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlags )
9599   {
9600     return "{}";
9601   }
9602 
9603   using ImageViewCreateFlags = Flags<ImageViewCreateFlagBits>;
9604 
9605   template <>
9606   struct FlagTraits<ImageViewCreateFlagBits>
9607   {
9608     enum : VkFlags
9609     {
9610       allFlags = VkFlags( ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT ) |
9611                  VkFlags( ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT )
9612     };
9613   };
9614 
9615   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags
operator |(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)9616     operator|( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9617   {
9618     return ImageViewCreateFlags( bit0 ) | bit1;
9619   }
9620 
9621   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags
operator &(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)9622     operator&( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9623   {
9624     return ImageViewCreateFlags( bit0 ) & bit1;
9625   }
9626 
9627   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags
operator ^(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)9628     operator^( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9629   {
9630     return ImageViewCreateFlags( bit0 ) ^ bit1;
9631   }
9632 
operator ~(ImageViewCreateFlagBits bits)9633   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator~( ImageViewCreateFlagBits bits )
9634     VULKAN_HPP_NOEXCEPT
9635   {
9636     return ~( ImageViewCreateFlags( bits ) );
9637   }
9638 
to_string(ImageViewCreateFlags value)9639   VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlags value )
9640   {
9641     if ( !value )
9642       return "{}";
9643 
9644     std::string result;
9645     if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT )
9646       result += "FragmentDensityMapDynamicEXT | ";
9647     if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT )
9648       result += "FragmentDensityMapDeferredEXT | ";
9649 
9650     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9651   }
9652 
9653   using ShaderModuleCreateFlags = Flags<ShaderModuleCreateFlagBits>;
9654 
to_string(ShaderModuleCreateFlags)9655   VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlags )
9656   {
9657     return "{}";
9658   }
9659 
9660   using PipelineCacheCreateFlags = Flags<PipelineCacheCreateFlagBits>;
9661 
9662   template <>
9663   struct FlagTraits<PipelineCacheCreateFlagBits>
9664   {
9665     enum : VkFlags
9666     {
9667       allFlags = VkFlags( PipelineCacheCreateFlagBits::eExternallySynchronizedEXT )
9668     };
9669   };
9670 
9671   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags
operator |(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)9672     operator|( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9673   {
9674     return PipelineCacheCreateFlags( bit0 ) | bit1;
9675   }
9676 
9677   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags
operator &(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)9678     operator&( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9679   {
9680     return PipelineCacheCreateFlags( bit0 ) & bit1;
9681   }
9682 
9683   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags
operator ^(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)9684     operator^( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9685   {
9686     return PipelineCacheCreateFlags( bit0 ) ^ bit1;
9687   }
9688 
operator ~(PipelineCacheCreateFlagBits bits)9689   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator~( PipelineCacheCreateFlagBits bits )
9690     VULKAN_HPP_NOEXCEPT
9691   {
9692     return ~( PipelineCacheCreateFlags( bits ) );
9693   }
9694 
to_string(PipelineCacheCreateFlags value)9695   VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlags value )
9696   {
9697     if ( !value )
9698       return "{}";
9699 
9700     std::string result;
9701     if ( value & PipelineCacheCreateFlagBits::eExternallySynchronizedEXT )
9702       result += "ExternallySynchronizedEXT | ";
9703 
9704     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9705   }
9706 
9707   using ColorComponentFlags = Flags<ColorComponentFlagBits>;
9708 
9709   template <>
9710   struct FlagTraits<ColorComponentFlagBits>
9711   {
9712     enum : VkFlags
9713     {
9714       allFlags = VkFlags( ColorComponentFlagBits::eR ) | VkFlags( ColorComponentFlagBits::eG ) |
9715                  VkFlags( ColorComponentFlagBits::eB ) | VkFlags( ColorComponentFlagBits::eA )
9716     };
9717   };
9718 
9719   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags
operator |(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)9720     operator|( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9721   {
9722     return ColorComponentFlags( bit0 ) | bit1;
9723   }
9724 
9725   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags
operator &(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)9726     operator&( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9727   {
9728     return ColorComponentFlags( bit0 ) & bit1;
9729   }
9730 
9731   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags
operator ^(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)9732     operator^( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9733   {
9734     return ColorComponentFlags( bit0 ) ^ bit1;
9735   }
9736 
operator ~(ColorComponentFlagBits bits)9737   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator~( ColorComponentFlagBits bits )
9738     VULKAN_HPP_NOEXCEPT
9739   {
9740     return ~( ColorComponentFlags( bits ) );
9741   }
9742 
to_string(ColorComponentFlags value)9743   VULKAN_HPP_INLINE std::string to_string( ColorComponentFlags value )
9744   {
9745     if ( !value )
9746       return "{}";
9747 
9748     std::string result;
9749     if ( value & ColorComponentFlagBits::eR )
9750       result += "R | ";
9751     if ( value & ColorComponentFlagBits::eG )
9752       result += "G | ";
9753     if ( value & ColorComponentFlagBits::eB )
9754       result += "B | ";
9755     if ( value & ColorComponentFlagBits::eA )
9756       result += "A | ";
9757 
9758     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9759   }
9760 
9761   using CullModeFlags = Flags<CullModeFlagBits>;
9762 
9763   template <>
9764   struct FlagTraits<CullModeFlagBits>
9765   {
9766     enum : VkFlags
9767     {
9768       allFlags = VkFlags( CullModeFlagBits::eNone ) | VkFlags( CullModeFlagBits::eFront ) |
9769                  VkFlags( CullModeFlagBits::eBack ) | VkFlags( CullModeFlagBits::eFrontAndBack )
9770     };
9771   };
9772 
operator |(CullModeFlagBits bit0,CullModeFlagBits bit1)9773   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator|( CullModeFlagBits bit0,
9774                                                                   CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9775   {
9776     return CullModeFlags( bit0 ) | bit1;
9777   }
9778 
operator &(CullModeFlagBits bit0,CullModeFlagBits bit1)9779   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator&( CullModeFlagBits bit0,
9780                                                                   CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9781   {
9782     return CullModeFlags( bit0 ) & bit1;
9783   }
9784 
operator ^(CullModeFlagBits bit0,CullModeFlagBits bit1)9785   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator^( CullModeFlagBits bit0,
9786                                                                   CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9787   {
9788     return CullModeFlags( bit0 ) ^ bit1;
9789   }
9790 
operator ~(CullModeFlagBits bits)9791   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator~( CullModeFlagBits bits ) VULKAN_HPP_NOEXCEPT
9792   {
9793     return ~( CullModeFlags( bits ) );
9794   }
9795 
to_string(CullModeFlags value)9796   VULKAN_HPP_INLINE std::string to_string( CullModeFlags value )
9797   {
9798     if ( !value )
9799       return "{}";
9800 
9801     std::string result;
9802     if ( value & CullModeFlagBits::eFront )
9803       result += "Front | ";
9804     if ( value & CullModeFlagBits::eBack )
9805       result += "Back | ";
9806 
9807     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9808   }
9809 
9810   using PipelineColorBlendStateCreateFlags = Flags<PipelineColorBlendStateCreateFlagBits>;
9811 
to_string(PipelineColorBlendStateCreateFlags)9812   VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlags )
9813   {
9814     return "{}";
9815   }
9816 
9817   using PipelineCreateFlags = Flags<PipelineCreateFlagBits>;
9818 
9819   template <>
9820   struct FlagTraits<PipelineCreateFlagBits>
9821   {
9822     enum : VkFlags
9823     {
9824       allFlags =
9825         VkFlags( PipelineCreateFlagBits::eDisableOptimization ) | VkFlags( PipelineCreateFlagBits::eAllowDerivatives ) |
9826         VkFlags( PipelineCreateFlagBits::eDerivative ) | VkFlags( PipelineCreateFlagBits::eViewIndexFromDeviceIndex ) |
9827         VkFlags( PipelineCreateFlagBits::eDispatchBase ) |
9828         VkFlags( PipelineCreateFlagBits::eVkPipelineRasterizationStateCreateFragmentShadingRateAttachmentKHR ) |
9829         VkFlags( PipelineCreateFlagBits::eVkPipelineRasterizationStateCreateFragmentDensityMapAttachmentEXT ) |
9830         VkFlags( PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR ) |
9831         VkFlags( PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR ) |
9832         VkFlags( PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR ) |
9833         VkFlags( PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR ) |
9834         VkFlags( PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR ) |
9835         VkFlags( PipelineCreateFlagBits::eRayTracingSkipAabbsKHR ) |
9836         VkFlags( PipelineCreateFlagBits::eRayTracingShaderGroupHandleCaptureReplayKHR ) |
9837         VkFlags( PipelineCreateFlagBits::eDeferCompileNV ) | VkFlags( PipelineCreateFlagBits::eCaptureStatisticsKHR ) |
9838         VkFlags( PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR ) |
9839         VkFlags( PipelineCreateFlagBits::eIndirectBindableNV ) | VkFlags( PipelineCreateFlagBits::eLibraryKHR ) |
9840         VkFlags( PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT ) |
9841         VkFlags( PipelineCreateFlagBits::eEarlyReturnOnFailureEXT ) |
9842         VkFlags( PipelineCreateFlagBits::eRayTracingAllowMotionNV )
9843     };
9844   };
9845 
9846   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags
operator |(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)9847     operator|( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9848   {
9849     return PipelineCreateFlags( bit0 ) | bit1;
9850   }
9851 
9852   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags
operator &(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)9853     operator&( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9854   {
9855     return PipelineCreateFlags( bit0 ) & bit1;
9856   }
9857 
9858   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags
operator ^(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)9859     operator^( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9860   {
9861     return PipelineCreateFlags( bit0 ) ^ bit1;
9862   }
9863 
operator ~(PipelineCreateFlagBits bits)9864   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator~( PipelineCreateFlagBits bits )
9865     VULKAN_HPP_NOEXCEPT
9866   {
9867     return ~( PipelineCreateFlags( bits ) );
9868   }
9869 
to_string(PipelineCreateFlags value)9870   VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlags value )
9871   {
9872     if ( !value )
9873       return "{}";
9874 
9875     std::string result;
9876     if ( value & PipelineCreateFlagBits::eDisableOptimization )
9877       result += "DisableOptimization | ";
9878     if ( value & PipelineCreateFlagBits::eAllowDerivatives )
9879       result += "AllowDerivatives | ";
9880     if ( value & PipelineCreateFlagBits::eDerivative )
9881       result += "Derivative | ";
9882     if ( value & PipelineCreateFlagBits::eViewIndexFromDeviceIndex )
9883       result += "ViewIndexFromDeviceIndex | ";
9884     if ( value & PipelineCreateFlagBits::eDispatchBase )
9885       result += "DispatchBase | ";
9886     if ( value & PipelineCreateFlagBits::eVkPipelineRasterizationStateCreateFragmentShadingRateAttachmentKHR )
9887       result += "VkPipelineRasterizationStateCreateFragmentShadingRateAttachmentKHR | ";
9888     if ( value & PipelineCreateFlagBits::eVkPipelineRasterizationStateCreateFragmentDensityMapAttachmentEXT )
9889       result += "VkPipelineRasterizationStateCreateFragmentDensityMapAttachmentEXT | ";
9890     if ( value & PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR )
9891       result += "RayTracingNoNullAnyHitShadersKHR | ";
9892     if ( value & PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR )
9893       result += "RayTracingNoNullClosestHitShadersKHR | ";
9894     if ( value & PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR )
9895       result += "RayTracingNoNullMissShadersKHR | ";
9896     if ( value & PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR )
9897       result += "RayTracingNoNullIntersectionShadersKHR | ";
9898     if ( value & PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR )
9899       result += "RayTracingSkipTrianglesKHR | ";
9900     if ( value & PipelineCreateFlagBits::eRayTracingSkipAabbsKHR )
9901       result += "RayTracingSkipAabbsKHR | ";
9902     if ( value & PipelineCreateFlagBits::eRayTracingShaderGroupHandleCaptureReplayKHR )
9903       result += "RayTracingShaderGroupHandleCaptureReplayKHR | ";
9904     if ( value & PipelineCreateFlagBits::eDeferCompileNV )
9905       result += "DeferCompileNV | ";
9906     if ( value & PipelineCreateFlagBits::eCaptureStatisticsKHR )
9907       result += "CaptureStatisticsKHR | ";
9908     if ( value & PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR )
9909       result += "CaptureInternalRepresentationsKHR | ";
9910     if ( value & PipelineCreateFlagBits::eIndirectBindableNV )
9911       result += "IndirectBindableNV | ";
9912     if ( value & PipelineCreateFlagBits::eLibraryKHR )
9913       result += "LibraryKHR | ";
9914     if ( value & PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT )
9915       result += "FailOnPipelineCompileRequiredEXT | ";
9916     if ( value & PipelineCreateFlagBits::eEarlyReturnOnFailureEXT )
9917       result += "EarlyReturnOnFailureEXT | ";
9918     if ( value & PipelineCreateFlagBits::eRayTracingAllowMotionNV )
9919       result += "RayTracingAllowMotionNV | ";
9920 
9921     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9922   }
9923 
9924   using PipelineDepthStencilStateCreateFlags = Flags<PipelineDepthStencilStateCreateFlagBits>;
9925 
to_string(PipelineDepthStencilStateCreateFlags)9926   VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlags )
9927   {
9928     return "{}";
9929   }
9930 
9931   using PipelineDynamicStateCreateFlags = Flags<PipelineDynamicStateCreateFlagBits>;
9932 
to_string(PipelineDynamicStateCreateFlags)9933   VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlags )
9934   {
9935     return "{}";
9936   }
9937 
9938   using PipelineInputAssemblyStateCreateFlags = Flags<PipelineInputAssemblyStateCreateFlagBits>;
9939 
to_string(PipelineInputAssemblyStateCreateFlags)9940   VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlags )
9941   {
9942     return "{}";
9943   }
9944 
9945   using PipelineLayoutCreateFlags = Flags<PipelineLayoutCreateFlagBits>;
9946 
to_string(PipelineLayoutCreateFlags)9947   VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlags )
9948   {
9949     return "{}";
9950   }
9951 
9952   using PipelineMultisampleStateCreateFlags = Flags<PipelineMultisampleStateCreateFlagBits>;
9953 
to_string(PipelineMultisampleStateCreateFlags)9954   VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlags )
9955   {
9956     return "{}";
9957   }
9958 
9959   using PipelineRasterizationStateCreateFlags = Flags<PipelineRasterizationStateCreateFlagBits>;
9960 
to_string(PipelineRasterizationStateCreateFlags)9961   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlags )
9962   {
9963     return "{}";
9964   }
9965 
9966   using PipelineShaderStageCreateFlags = Flags<PipelineShaderStageCreateFlagBits>;
9967 
9968   template <>
9969   struct FlagTraits<PipelineShaderStageCreateFlagBits>
9970   {
9971     enum : VkFlags
9972     {
9973       allFlags = VkFlags( PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT ) |
9974                  VkFlags( PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT )
9975     };
9976   };
9977 
9978   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags
operator |(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)9979     operator|( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9980   {
9981     return PipelineShaderStageCreateFlags( bit0 ) | bit1;
9982   }
9983 
9984   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags
operator &(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)9985     operator&( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9986   {
9987     return PipelineShaderStageCreateFlags( bit0 ) & bit1;
9988   }
9989 
9990   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags
operator ^(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)9991     operator^( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9992   {
9993     return PipelineShaderStageCreateFlags( bit0 ) ^ bit1;
9994   }
9995 
9996   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags
operator ~(PipelineShaderStageCreateFlagBits bits)9997     operator~( PipelineShaderStageCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
9998   {
9999     return ~( PipelineShaderStageCreateFlags( bits ) );
10000   }
10001 
to_string(PipelineShaderStageCreateFlags value)10002   VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlags value )
10003   {
10004     if ( !value )
10005       return "{}";
10006 
10007     std::string result;
10008     if ( value & PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT )
10009       result += "AllowVaryingSubgroupSizeEXT | ";
10010     if ( value & PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT )
10011       result += "RequireFullSubgroupsEXT | ";
10012 
10013     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10014   }
10015 
10016   using PipelineTessellationStateCreateFlags = Flags<PipelineTessellationStateCreateFlagBits>;
10017 
to_string(PipelineTessellationStateCreateFlags)10018   VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlags )
10019   {
10020     return "{}";
10021   }
10022 
10023   using PipelineVertexInputStateCreateFlags = Flags<PipelineVertexInputStateCreateFlagBits>;
10024 
to_string(PipelineVertexInputStateCreateFlags)10025   VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlags )
10026   {
10027     return "{}";
10028   }
10029 
10030   using PipelineViewportStateCreateFlags = Flags<PipelineViewportStateCreateFlagBits>;
10031 
to_string(PipelineViewportStateCreateFlags)10032   VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlags )
10033   {
10034     return "{}";
10035   }
10036 
10037   using ShaderStageFlags = Flags<ShaderStageFlagBits>;
10038 
10039   template <>
10040   struct FlagTraits<ShaderStageFlagBits>
10041   {
10042     enum : VkFlags
10043     {
10044       allFlags = VkFlags( ShaderStageFlagBits::eVertex ) | VkFlags( ShaderStageFlagBits::eTessellationControl ) |
10045                  VkFlags( ShaderStageFlagBits::eTessellationEvaluation ) | VkFlags( ShaderStageFlagBits::eGeometry ) |
10046                  VkFlags( ShaderStageFlagBits::eFragment ) | VkFlags( ShaderStageFlagBits::eCompute ) |
10047                  VkFlags( ShaderStageFlagBits::eAllGraphics ) | VkFlags( ShaderStageFlagBits::eAll ) |
10048                  VkFlags( ShaderStageFlagBits::eRaygenKHR ) | VkFlags( ShaderStageFlagBits::eAnyHitKHR ) |
10049                  VkFlags( ShaderStageFlagBits::eClosestHitKHR ) | VkFlags( ShaderStageFlagBits::eMissKHR ) |
10050                  VkFlags( ShaderStageFlagBits::eIntersectionKHR ) | VkFlags( ShaderStageFlagBits::eCallableKHR ) |
10051                  VkFlags( ShaderStageFlagBits::eTaskNV ) | VkFlags( ShaderStageFlagBits::eMeshNV ) |
10052                  VkFlags( ShaderStageFlagBits::eSubpassShadingHUAWEI )
10053     };
10054   };
10055 
operator |(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)10056   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator|( ShaderStageFlagBits bit0,
10057                                                                      ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10058   {
10059     return ShaderStageFlags( bit0 ) | bit1;
10060   }
10061 
operator &(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)10062   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator&( ShaderStageFlagBits bit0,
10063                                                                      ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10064   {
10065     return ShaderStageFlags( bit0 ) & bit1;
10066   }
10067 
operator ^(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)10068   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator^( ShaderStageFlagBits bit0,
10069                                                                      ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10070   {
10071     return ShaderStageFlags( bit0 ) ^ bit1;
10072   }
10073 
operator ~(ShaderStageFlagBits bits)10074   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator~( ShaderStageFlagBits bits ) VULKAN_HPP_NOEXCEPT
10075   {
10076     return ~( ShaderStageFlags( bits ) );
10077   }
10078 
to_string(ShaderStageFlags value)10079   VULKAN_HPP_INLINE std::string to_string( ShaderStageFlags value )
10080   {
10081     if ( !value )
10082       return "{}";
10083 
10084     std::string result;
10085     if ( value & ShaderStageFlagBits::eVertex )
10086       result += "Vertex | ";
10087     if ( value & ShaderStageFlagBits::eTessellationControl )
10088       result += "TessellationControl | ";
10089     if ( value & ShaderStageFlagBits::eTessellationEvaluation )
10090       result += "TessellationEvaluation | ";
10091     if ( value & ShaderStageFlagBits::eGeometry )
10092       result += "Geometry | ";
10093     if ( value & ShaderStageFlagBits::eFragment )
10094       result += "Fragment | ";
10095     if ( value & ShaderStageFlagBits::eCompute )
10096       result += "Compute | ";
10097     if ( value & ShaderStageFlagBits::eRaygenKHR )
10098       result += "RaygenKHR | ";
10099     if ( value & ShaderStageFlagBits::eAnyHitKHR )
10100       result += "AnyHitKHR | ";
10101     if ( value & ShaderStageFlagBits::eClosestHitKHR )
10102       result += "ClosestHitKHR | ";
10103     if ( value & ShaderStageFlagBits::eMissKHR )
10104       result += "MissKHR | ";
10105     if ( value & ShaderStageFlagBits::eIntersectionKHR )
10106       result += "IntersectionKHR | ";
10107     if ( value & ShaderStageFlagBits::eCallableKHR )
10108       result += "CallableKHR | ";
10109     if ( value & ShaderStageFlagBits::eTaskNV )
10110       result += "TaskNV | ";
10111     if ( value & ShaderStageFlagBits::eMeshNV )
10112       result += "MeshNV | ";
10113     if ( value & ShaderStageFlagBits::eSubpassShadingHUAWEI )
10114       result += "SubpassShadingHUAWEI | ";
10115 
10116     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10117   }
10118 
10119   using SamplerCreateFlags = Flags<SamplerCreateFlagBits>;
10120 
10121   template <>
10122   struct FlagTraits<SamplerCreateFlagBits>
10123   {
10124     enum : VkFlags
10125     {
10126       allFlags = VkFlags( SamplerCreateFlagBits::eSubsampledEXT ) |
10127                  VkFlags( SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT )
10128     };
10129   };
10130 
operator |(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)10131   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator|( SamplerCreateFlagBits bit0,
10132                                                                        SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10133   {
10134     return SamplerCreateFlags( bit0 ) | bit1;
10135   }
10136 
operator &(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)10137   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator&( SamplerCreateFlagBits bit0,
10138                                                                        SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10139   {
10140     return SamplerCreateFlags( bit0 ) & bit1;
10141   }
10142 
operator ^(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)10143   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator^( SamplerCreateFlagBits bit0,
10144                                                                        SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10145   {
10146     return SamplerCreateFlags( bit0 ) ^ bit1;
10147   }
10148 
operator ~(SamplerCreateFlagBits bits)10149   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator~( SamplerCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
10150   {
10151     return ~( SamplerCreateFlags( bits ) );
10152   }
10153 
to_string(SamplerCreateFlags value)10154   VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlags value )
10155   {
10156     if ( !value )
10157       return "{}";
10158 
10159     std::string result;
10160     if ( value & SamplerCreateFlagBits::eSubsampledEXT )
10161       result += "SubsampledEXT | ";
10162     if ( value & SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT )
10163       result += "SubsampledCoarseReconstructionEXT | ";
10164 
10165     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10166   }
10167 
10168   using DescriptorPoolCreateFlags = Flags<DescriptorPoolCreateFlagBits>;
10169 
10170   template <>
10171   struct FlagTraits<DescriptorPoolCreateFlagBits>
10172   {
10173     enum : VkFlags
10174     {
10175       allFlags = VkFlags( DescriptorPoolCreateFlagBits::eFreeDescriptorSet ) |
10176                  VkFlags( DescriptorPoolCreateFlagBits::eUpdateAfterBind ) |
10177                  VkFlags( DescriptorPoolCreateFlagBits::eHostOnlyVALVE )
10178     };
10179   };
10180 
10181   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags
operator |(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)10182     operator|( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10183   {
10184     return DescriptorPoolCreateFlags( bit0 ) | bit1;
10185   }
10186 
10187   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags
operator &(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)10188     operator&( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10189   {
10190     return DescriptorPoolCreateFlags( bit0 ) & bit1;
10191   }
10192 
10193   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags
operator ^(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)10194     operator^( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10195   {
10196     return DescriptorPoolCreateFlags( bit0 ) ^ bit1;
10197   }
10198 
operator ~(DescriptorPoolCreateFlagBits bits)10199   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator~( DescriptorPoolCreateFlagBits bits )
10200     VULKAN_HPP_NOEXCEPT
10201   {
10202     return ~( DescriptorPoolCreateFlags( bits ) );
10203   }
10204 
to_string(DescriptorPoolCreateFlags value)10205   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlags value )
10206   {
10207     if ( !value )
10208       return "{}";
10209 
10210     std::string result;
10211     if ( value & DescriptorPoolCreateFlagBits::eFreeDescriptorSet )
10212       result += "FreeDescriptorSet | ";
10213     if ( value & DescriptorPoolCreateFlagBits::eUpdateAfterBind )
10214       result += "UpdateAfterBind | ";
10215     if ( value & DescriptorPoolCreateFlagBits::eHostOnlyVALVE )
10216       result += "HostOnlyVALVE | ";
10217 
10218     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10219   }
10220 
10221   using DescriptorPoolResetFlags = Flags<DescriptorPoolResetFlagBits>;
10222 
to_string(DescriptorPoolResetFlags)10223   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlags )
10224   {
10225     return "{}";
10226   }
10227 
10228   using DescriptorSetLayoutCreateFlags = Flags<DescriptorSetLayoutCreateFlagBits>;
10229 
10230   template <>
10231   struct FlagTraits<DescriptorSetLayoutCreateFlagBits>
10232   {
10233     enum : VkFlags
10234     {
10235       allFlags = VkFlags( DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool ) |
10236                  VkFlags( DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR ) |
10237                  VkFlags( DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolVALVE )
10238     };
10239   };
10240 
10241   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags
operator |(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)10242     operator|( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10243   {
10244     return DescriptorSetLayoutCreateFlags( bit0 ) | bit1;
10245   }
10246 
10247   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags
operator &(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)10248     operator&( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10249   {
10250     return DescriptorSetLayoutCreateFlags( bit0 ) & bit1;
10251   }
10252 
10253   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags
operator ^(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)10254     operator^( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10255   {
10256     return DescriptorSetLayoutCreateFlags( bit0 ) ^ bit1;
10257   }
10258 
10259   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags
operator ~(DescriptorSetLayoutCreateFlagBits bits)10260     operator~( DescriptorSetLayoutCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
10261   {
10262     return ~( DescriptorSetLayoutCreateFlags( bits ) );
10263   }
10264 
to_string(DescriptorSetLayoutCreateFlags value)10265   VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlags value )
10266   {
10267     if ( !value )
10268       return "{}";
10269 
10270     std::string result;
10271     if ( value & DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool )
10272       result += "UpdateAfterBindPool | ";
10273     if ( value & DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR )
10274       result += "PushDescriptorKHR | ";
10275     if ( value & DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolVALVE )
10276       result += "HostOnlyPoolVALVE | ";
10277 
10278     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10279   }
10280 
10281   using AccessFlags = Flags<AccessFlagBits>;
10282 
10283   template <>
10284   struct FlagTraits<AccessFlagBits>
10285   {
10286     enum : VkFlags
10287     {
10288       allFlags = VkFlags( AccessFlagBits::eIndirectCommandRead ) | VkFlags( AccessFlagBits::eIndexRead ) |
10289                  VkFlags( AccessFlagBits::eVertexAttributeRead ) | VkFlags( AccessFlagBits::eUniformRead ) |
10290                  VkFlags( AccessFlagBits::eInputAttachmentRead ) | VkFlags( AccessFlagBits::eShaderRead ) |
10291                  VkFlags( AccessFlagBits::eShaderWrite ) | VkFlags( AccessFlagBits::eColorAttachmentRead ) |
10292                  VkFlags( AccessFlagBits::eColorAttachmentWrite ) |
10293                  VkFlags( AccessFlagBits::eDepthStencilAttachmentRead ) |
10294                  VkFlags( AccessFlagBits::eDepthStencilAttachmentWrite ) | VkFlags( AccessFlagBits::eTransferRead ) |
10295                  VkFlags( AccessFlagBits::eTransferWrite ) | VkFlags( AccessFlagBits::eHostRead ) |
10296                  VkFlags( AccessFlagBits::eHostWrite ) | VkFlags( AccessFlagBits::eMemoryRead ) |
10297                  VkFlags( AccessFlagBits::eMemoryWrite ) | VkFlags( AccessFlagBits::eTransformFeedbackWriteEXT ) |
10298                  VkFlags( AccessFlagBits::eTransformFeedbackCounterReadEXT ) |
10299                  VkFlags( AccessFlagBits::eTransformFeedbackCounterWriteEXT ) |
10300                  VkFlags( AccessFlagBits::eConditionalRenderingReadEXT ) |
10301                  VkFlags( AccessFlagBits::eColorAttachmentReadNoncoherentEXT ) |
10302                  VkFlags( AccessFlagBits::eAccelerationStructureReadKHR ) |
10303                  VkFlags( AccessFlagBits::eAccelerationStructureWriteKHR ) |
10304                  VkFlags( AccessFlagBits::eFragmentDensityMapReadEXT ) |
10305                  VkFlags( AccessFlagBits::eFragmentShadingRateAttachmentReadKHR ) |
10306                  VkFlags( AccessFlagBits::eCommandPreprocessReadNV ) |
10307                  VkFlags( AccessFlagBits::eCommandPreprocessWriteNV ) | VkFlags( AccessFlagBits::eNoneKHR )
10308     };
10309   };
10310 
operator |(AccessFlagBits bit0,AccessFlagBits bit1)10311   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator|( AccessFlagBits bit0,
10312                                                                 AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10313   {
10314     return AccessFlags( bit0 ) | bit1;
10315   }
10316 
operator &(AccessFlagBits bit0,AccessFlagBits bit1)10317   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator&( AccessFlagBits bit0,
10318                                                                 AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10319   {
10320     return AccessFlags( bit0 ) & bit1;
10321   }
10322 
operator ^(AccessFlagBits bit0,AccessFlagBits bit1)10323   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator^( AccessFlagBits bit0,
10324                                                                 AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10325   {
10326     return AccessFlags( bit0 ) ^ bit1;
10327   }
10328 
operator ~(AccessFlagBits bits)10329   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator~( AccessFlagBits bits ) VULKAN_HPP_NOEXCEPT
10330   {
10331     return ~( AccessFlags( bits ) );
10332   }
10333 
to_string(AccessFlags value)10334   VULKAN_HPP_INLINE std::string to_string( AccessFlags value )
10335   {
10336     if ( !value )
10337       return "{}";
10338 
10339     std::string result;
10340     if ( value & AccessFlagBits::eIndirectCommandRead )
10341       result += "IndirectCommandRead | ";
10342     if ( value & AccessFlagBits::eIndexRead )
10343       result += "IndexRead | ";
10344     if ( value & AccessFlagBits::eVertexAttributeRead )
10345       result += "VertexAttributeRead | ";
10346     if ( value & AccessFlagBits::eUniformRead )
10347       result += "UniformRead | ";
10348     if ( value & AccessFlagBits::eInputAttachmentRead )
10349       result += "InputAttachmentRead | ";
10350     if ( value & AccessFlagBits::eShaderRead )
10351       result += "ShaderRead | ";
10352     if ( value & AccessFlagBits::eShaderWrite )
10353       result += "ShaderWrite | ";
10354     if ( value & AccessFlagBits::eColorAttachmentRead )
10355       result += "ColorAttachmentRead | ";
10356     if ( value & AccessFlagBits::eColorAttachmentWrite )
10357       result += "ColorAttachmentWrite | ";
10358     if ( value & AccessFlagBits::eDepthStencilAttachmentRead )
10359       result += "DepthStencilAttachmentRead | ";
10360     if ( value & AccessFlagBits::eDepthStencilAttachmentWrite )
10361       result += "DepthStencilAttachmentWrite | ";
10362     if ( value & AccessFlagBits::eTransferRead )
10363       result += "TransferRead | ";
10364     if ( value & AccessFlagBits::eTransferWrite )
10365       result += "TransferWrite | ";
10366     if ( value & AccessFlagBits::eHostRead )
10367       result += "HostRead | ";
10368     if ( value & AccessFlagBits::eHostWrite )
10369       result += "HostWrite | ";
10370     if ( value & AccessFlagBits::eMemoryRead )
10371       result += "MemoryRead | ";
10372     if ( value & AccessFlagBits::eMemoryWrite )
10373       result += "MemoryWrite | ";
10374     if ( value & AccessFlagBits::eTransformFeedbackWriteEXT )
10375       result += "TransformFeedbackWriteEXT | ";
10376     if ( value & AccessFlagBits::eTransformFeedbackCounterReadEXT )
10377       result += "TransformFeedbackCounterReadEXT | ";
10378     if ( value & AccessFlagBits::eTransformFeedbackCounterWriteEXT )
10379       result += "TransformFeedbackCounterWriteEXT | ";
10380     if ( value & AccessFlagBits::eConditionalRenderingReadEXT )
10381       result += "ConditionalRenderingReadEXT | ";
10382     if ( value & AccessFlagBits::eColorAttachmentReadNoncoherentEXT )
10383       result += "ColorAttachmentReadNoncoherentEXT | ";
10384     if ( value & AccessFlagBits::eAccelerationStructureReadKHR )
10385       result += "AccelerationStructureReadKHR | ";
10386     if ( value & AccessFlagBits::eAccelerationStructureWriteKHR )
10387       result += "AccelerationStructureWriteKHR | ";
10388     if ( value & AccessFlagBits::eFragmentDensityMapReadEXT )
10389       result += "FragmentDensityMapReadEXT | ";
10390     if ( value & AccessFlagBits::eFragmentShadingRateAttachmentReadKHR )
10391       result += "FragmentShadingRateAttachmentReadKHR | ";
10392     if ( value & AccessFlagBits::eCommandPreprocessReadNV )
10393       result += "CommandPreprocessReadNV | ";
10394     if ( value & AccessFlagBits::eCommandPreprocessWriteNV )
10395       result += "CommandPreprocessWriteNV | ";
10396 
10397     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10398   }
10399 
10400   using AttachmentDescriptionFlags = Flags<AttachmentDescriptionFlagBits>;
10401 
10402   template <>
10403   struct FlagTraits<AttachmentDescriptionFlagBits>
10404   {
10405     enum : VkFlags
10406     {
10407       allFlags = VkFlags( AttachmentDescriptionFlagBits::eMayAlias )
10408     };
10409   };
10410 
10411   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags
operator |(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)10412     operator|( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10413   {
10414     return AttachmentDescriptionFlags( bit0 ) | bit1;
10415   }
10416 
10417   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags
operator &(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)10418     operator&( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10419   {
10420     return AttachmentDescriptionFlags( bit0 ) & bit1;
10421   }
10422 
10423   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags
operator ^(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)10424     operator^( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10425   {
10426     return AttachmentDescriptionFlags( bit0 ) ^ bit1;
10427   }
10428 
operator ~(AttachmentDescriptionFlagBits bits)10429   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator~( AttachmentDescriptionFlagBits bits )
10430     VULKAN_HPP_NOEXCEPT
10431   {
10432     return ~( AttachmentDescriptionFlags( bits ) );
10433   }
10434 
to_string(AttachmentDescriptionFlags value)10435   VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlags value )
10436   {
10437     if ( !value )
10438       return "{}";
10439 
10440     std::string result;
10441     if ( value & AttachmentDescriptionFlagBits::eMayAlias )
10442       result += "MayAlias | ";
10443 
10444     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10445   }
10446 
10447   using DependencyFlags = Flags<DependencyFlagBits>;
10448 
10449   template <>
10450   struct FlagTraits<DependencyFlagBits>
10451   {
10452     enum : VkFlags
10453     {
10454       allFlags = VkFlags( DependencyFlagBits::eByRegion ) | VkFlags( DependencyFlagBits::eDeviceGroup ) |
10455                  VkFlags( DependencyFlagBits::eViewLocal )
10456     };
10457   };
10458 
operator |(DependencyFlagBits bit0,DependencyFlagBits bit1)10459   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator|( DependencyFlagBits bit0,
10460                                                                     DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10461   {
10462     return DependencyFlags( bit0 ) | bit1;
10463   }
10464 
operator &(DependencyFlagBits bit0,DependencyFlagBits bit1)10465   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator&( DependencyFlagBits bit0,
10466                                                                     DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10467   {
10468     return DependencyFlags( bit0 ) & bit1;
10469   }
10470 
operator ^(DependencyFlagBits bit0,DependencyFlagBits bit1)10471   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator^( DependencyFlagBits bit0,
10472                                                                     DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10473   {
10474     return DependencyFlags( bit0 ) ^ bit1;
10475   }
10476 
operator ~(DependencyFlagBits bits)10477   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator~( DependencyFlagBits bits ) VULKAN_HPP_NOEXCEPT
10478   {
10479     return ~( DependencyFlags( bits ) );
10480   }
10481 
to_string(DependencyFlags value)10482   VULKAN_HPP_INLINE std::string to_string( DependencyFlags value )
10483   {
10484     if ( !value )
10485       return "{}";
10486 
10487     std::string result;
10488     if ( value & DependencyFlagBits::eByRegion )
10489       result += "ByRegion | ";
10490     if ( value & DependencyFlagBits::eDeviceGroup )
10491       result += "DeviceGroup | ";
10492     if ( value & DependencyFlagBits::eViewLocal )
10493       result += "ViewLocal | ";
10494 
10495     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10496   }
10497 
10498   using FramebufferCreateFlags = Flags<FramebufferCreateFlagBits>;
10499 
10500   template <>
10501   struct FlagTraits<FramebufferCreateFlagBits>
10502   {
10503     enum : VkFlags
10504     {
10505       allFlags = VkFlags( FramebufferCreateFlagBits::eImageless )
10506     };
10507   };
10508 
10509   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags
operator |(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)10510     operator|( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10511   {
10512     return FramebufferCreateFlags( bit0 ) | bit1;
10513   }
10514 
10515   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags
operator &(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)10516     operator&( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10517   {
10518     return FramebufferCreateFlags( bit0 ) & bit1;
10519   }
10520 
10521   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags
operator ^(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)10522     operator^( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10523   {
10524     return FramebufferCreateFlags( bit0 ) ^ bit1;
10525   }
10526 
operator ~(FramebufferCreateFlagBits bits)10527   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator~( FramebufferCreateFlagBits bits )
10528     VULKAN_HPP_NOEXCEPT
10529   {
10530     return ~( FramebufferCreateFlags( bits ) );
10531   }
10532 
to_string(FramebufferCreateFlags value)10533   VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlags value )
10534   {
10535     if ( !value )
10536       return "{}";
10537 
10538     std::string result;
10539     if ( value & FramebufferCreateFlagBits::eImageless )
10540       result += "Imageless | ";
10541 
10542     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10543   }
10544 
10545   using RenderPassCreateFlags = Flags<RenderPassCreateFlagBits>;
10546 
10547   template <>
10548   struct FlagTraits<RenderPassCreateFlagBits>
10549   {
10550     enum : VkFlags
10551     {
10552       allFlags = VkFlags( RenderPassCreateFlagBits::eTransformQCOM )
10553     };
10554   };
10555 
10556   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags
operator |(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)10557     operator|( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10558   {
10559     return RenderPassCreateFlags( bit0 ) | bit1;
10560   }
10561 
10562   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags
operator &(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)10563     operator&( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10564   {
10565     return RenderPassCreateFlags( bit0 ) & bit1;
10566   }
10567 
10568   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags
operator ^(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)10569     operator^( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10570   {
10571     return RenderPassCreateFlags( bit0 ) ^ bit1;
10572   }
10573 
operator ~(RenderPassCreateFlagBits bits)10574   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator~( RenderPassCreateFlagBits bits )
10575     VULKAN_HPP_NOEXCEPT
10576   {
10577     return ~( RenderPassCreateFlags( bits ) );
10578   }
10579 
to_string(RenderPassCreateFlags value)10580   VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlags value )
10581   {
10582     if ( !value )
10583       return "{}";
10584 
10585     std::string result;
10586     if ( value & RenderPassCreateFlagBits::eTransformQCOM )
10587       result += "TransformQCOM | ";
10588 
10589     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10590   }
10591 
10592   using SubpassDescriptionFlags = Flags<SubpassDescriptionFlagBits>;
10593 
10594   template <>
10595   struct FlagTraits<SubpassDescriptionFlagBits>
10596   {
10597     enum : VkFlags
10598     {
10599       allFlags = VkFlags( SubpassDescriptionFlagBits::ePerViewAttributesNVX ) |
10600                  VkFlags( SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX ) |
10601                  VkFlags( SubpassDescriptionFlagBits::eFragmentRegionQCOM ) |
10602                  VkFlags( SubpassDescriptionFlagBits::eShaderResolveQCOM )
10603     };
10604   };
10605 
10606   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags
operator |(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)10607     operator|( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10608   {
10609     return SubpassDescriptionFlags( bit0 ) | bit1;
10610   }
10611 
10612   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags
operator &(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)10613     operator&( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10614   {
10615     return SubpassDescriptionFlags( bit0 ) & bit1;
10616   }
10617 
10618   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags
operator ^(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)10619     operator^( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10620   {
10621     return SubpassDescriptionFlags( bit0 ) ^ bit1;
10622   }
10623 
operator ~(SubpassDescriptionFlagBits bits)10624   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator~( SubpassDescriptionFlagBits bits )
10625     VULKAN_HPP_NOEXCEPT
10626   {
10627     return ~( SubpassDescriptionFlags( bits ) );
10628   }
10629 
to_string(SubpassDescriptionFlags value)10630   VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlags value )
10631   {
10632     if ( !value )
10633       return "{}";
10634 
10635     std::string result;
10636     if ( value & SubpassDescriptionFlagBits::ePerViewAttributesNVX )
10637       result += "PerViewAttributesNVX | ";
10638     if ( value & SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX )
10639       result += "PerViewPositionXOnlyNVX | ";
10640     if ( value & SubpassDescriptionFlagBits::eFragmentRegionQCOM )
10641       result += "FragmentRegionQCOM | ";
10642     if ( value & SubpassDescriptionFlagBits::eShaderResolveQCOM )
10643       result += "ShaderResolveQCOM | ";
10644 
10645     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10646   }
10647 
10648   using CommandPoolCreateFlags = Flags<CommandPoolCreateFlagBits>;
10649 
10650   template <>
10651   struct FlagTraits<CommandPoolCreateFlagBits>
10652   {
10653     enum : VkFlags
10654     {
10655       allFlags = VkFlags( CommandPoolCreateFlagBits::eTransient ) |
10656                  VkFlags( CommandPoolCreateFlagBits::eResetCommandBuffer ) |
10657                  VkFlags( CommandPoolCreateFlagBits::eProtected )
10658     };
10659   };
10660 
10661   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags
operator |(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)10662     operator|( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10663   {
10664     return CommandPoolCreateFlags( bit0 ) | bit1;
10665   }
10666 
10667   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags
operator &(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)10668     operator&( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10669   {
10670     return CommandPoolCreateFlags( bit0 ) & bit1;
10671   }
10672 
10673   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags
operator ^(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)10674     operator^( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10675   {
10676     return CommandPoolCreateFlags( bit0 ) ^ bit1;
10677   }
10678 
operator ~(CommandPoolCreateFlagBits bits)10679   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator~( CommandPoolCreateFlagBits bits )
10680     VULKAN_HPP_NOEXCEPT
10681   {
10682     return ~( CommandPoolCreateFlags( bits ) );
10683   }
10684 
to_string(CommandPoolCreateFlags value)10685   VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlags value )
10686   {
10687     if ( !value )
10688       return "{}";
10689 
10690     std::string result;
10691     if ( value & CommandPoolCreateFlagBits::eTransient )
10692       result += "Transient | ";
10693     if ( value & CommandPoolCreateFlagBits::eResetCommandBuffer )
10694       result += "ResetCommandBuffer | ";
10695     if ( value & CommandPoolCreateFlagBits::eProtected )
10696       result += "Protected | ";
10697 
10698     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10699   }
10700 
10701   using CommandPoolResetFlags = Flags<CommandPoolResetFlagBits>;
10702 
10703   template <>
10704   struct FlagTraits<CommandPoolResetFlagBits>
10705   {
10706     enum : VkFlags
10707     {
10708       allFlags = VkFlags( CommandPoolResetFlagBits::eReleaseResources )
10709     };
10710   };
10711 
10712   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags
operator |(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)10713     operator|( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10714   {
10715     return CommandPoolResetFlags( bit0 ) | bit1;
10716   }
10717 
10718   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags
operator &(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)10719     operator&( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10720   {
10721     return CommandPoolResetFlags( bit0 ) & bit1;
10722   }
10723 
10724   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags
operator ^(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)10725     operator^( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10726   {
10727     return CommandPoolResetFlags( bit0 ) ^ bit1;
10728   }
10729 
operator ~(CommandPoolResetFlagBits bits)10730   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator~( CommandPoolResetFlagBits bits )
10731     VULKAN_HPP_NOEXCEPT
10732   {
10733     return ~( CommandPoolResetFlags( bits ) );
10734   }
10735 
to_string(CommandPoolResetFlags value)10736   VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlags value )
10737   {
10738     if ( !value )
10739       return "{}";
10740 
10741     std::string result;
10742     if ( value & CommandPoolResetFlagBits::eReleaseResources )
10743       result += "ReleaseResources | ";
10744 
10745     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10746   }
10747 
10748   using CommandBufferResetFlags = Flags<CommandBufferResetFlagBits>;
10749 
10750   template <>
10751   struct FlagTraits<CommandBufferResetFlagBits>
10752   {
10753     enum : VkFlags
10754     {
10755       allFlags = VkFlags( CommandBufferResetFlagBits::eReleaseResources )
10756     };
10757   };
10758 
10759   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags
operator |(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)10760     operator|( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10761   {
10762     return CommandBufferResetFlags( bit0 ) | bit1;
10763   }
10764 
10765   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags
operator &(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)10766     operator&( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10767   {
10768     return CommandBufferResetFlags( bit0 ) & bit1;
10769   }
10770 
10771   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags
operator ^(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)10772     operator^( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10773   {
10774     return CommandBufferResetFlags( bit0 ) ^ bit1;
10775   }
10776 
operator ~(CommandBufferResetFlagBits bits)10777   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator~( CommandBufferResetFlagBits bits )
10778     VULKAN_HPP_NOEXCEPT
10779   {
10780     return ~( CommandBufferResetFlags( bits ) );
10781   }
10782 
to_string(CommandBufferResetFlags value)10783   VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlags value )
10784   {
10785     if ( !value )
10786       return "{}";
10787 
10788     std::string result;
10789     if ( value & CommandBufferResetFlagBits::eReleaseResources )
10790       result += "ReleaseResources | ";
10791 
10792     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10793   }
10794 
10795   using CommandBufferUsageFlags = Flags<CommandBufferUsageFlagBits>;
10796 
10797   template <>
10798   struct FlagTraits<CommandBufferUsageFlagBits>
10799   {
10800     enum : VkFlags
10801     {
10802       allFlags = VkFlags( CommandBufferUsageFlagBits::eOneTimeSubmit ) |
10803                  VkFlags( CommandBufferUsageFlagBits::eRenderPassContinue ) |
10804                  VkFlags( CommandBufferUsageFlagBits::eSimultaneousUse )
10805     };
10806   };
10807 
10808   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags
operator |(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)10809     operator|( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10810   {
10811     return CommandBufferUsageFlags( bit0 ) | bit1;
10812   }
10813 
10814   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags
operator &(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)10815     operator&( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10816   {
10817     return CommandBufferUsageFlags( bit0 ) & bit1;
10818   }
10819 
10820   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags
operator ^(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)10821     operator^( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10822   {
10823     return CommandBufferUsageFlags( bit0 ) ^ bit1;
10824   }
10825 
operator ~(CommandBufferUsageFlagBits bits)10826   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator~( CommandBufferUsageFlagBits bits )
10827     VULKAN_HPP_NOEXCEPT
10828   {
10829     return ~( CommandBufferUsageFlags( bits ) );
10830   }
10831 
to_string(CommandBufferUsageFlags value)10832   VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlags value )
10833   {
10834     if ( !value )
10835       return "{}";
10836 
10837     std::string result;
10838     if ( value & CommandBufferUsageFlagBits::eOneTimeSubmit )
10839       result += "OneTimeSubmit | ";
10840     if ( value & CommandBufferUsageFlagBits::eRenderPassContinue )
10841       result += "RenderPassContinue | ";
10842     if ( value & CommandBufferUsageFlagBits::eSimultaneousUse )
10843       result += "SimultaneousUse | ";
10844 
10845     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10846   }
10847 
10848   using QueryControlFlags = Flags<QueryControlFlagBits>;
10849 
10850   template <>
10851   struct FlagTraits<QueryControlFlagBits>
10852   {
10853     enum : VkFlags
10854     {
10855       allFlags = VkFlags( QueryControlFlagBits::ePrecise )
10856     };
10857   };
10858 
operator |(QueryControlFlagBits bit0,QueryControlFlagBits bit1)10859   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator|( QueryControlFlagBits bit0,
10860                                                                       QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10861   {
10862     return QueryControlFlags( bit0 ) | bit1;
10863   }
10864 
operator &(QueryControlFlagBits bit0,QueryControlFlagBits bit1)10865   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator&( QueryControlFlagBits bit0,
10866                                                                       QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10867   {
10868     return QueryControlFlags( bit0 ) & bit1;
10869   }
10870 
operator ^(QueryControlFlagBits bit0,QueryControlFlagBits bit1)10871   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator^( QueryControlFlagBits bit0,
10872                                                                       QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10873   {
10874     return QueryControlFlags( bit0 ) ^ bit1;
10875   }
10876 
operator ~(QueryControlFlagBits bits)10877   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator~( QueryControlFlagBits bits ) VULKAN_HPP_NOEXCEPT
10878   {
10879     return ~( QueryControlFlags( bits ) );
10880   }
10881 
to_string(QueryControlFlags value)10882   VULKAN_HPP_INLINE std::string to_string( QueryControlFlags value )
10883   {
10884     if ( !value )
10885       return "{}";
10886 
10887     std::string result;
10888     if ( value & QueryControlFlagBits::ePrecise )
10889       result += "Precise | ";
10890 
10891     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10892   }
10893 
10894   using StencilFaceFlags = Flags<StencilFaceFlagBits>;
10895 
10896   template <>
10897   struct FlagTraits<StencilFaceFlagBits>
10898   {
10899     enum : VkFlags
10900     {
10901       allFlags = VkFlags( StencilFaceFlagBits::eFront ) | VkFlags( StencilFaceFlagBits::eBack ) |
10902                  VkFlags( StencilFaceFlagBits::eFrontAndBack )
10903     };
10904   };
10905 
operator |(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)10906   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator|( StencilFaceFlagBits bit0,
10907                                                                      StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10908   {
10909     return StencilFaceFlags( bit0 ) | bit1;
10910   }
10911 
operator &(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)10912   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator&( StencilFaceFlagBits bit0,
10913                                                                      StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10914   {
10915     return StencilFaceFlags( bit0 ) & bit1;
10916   }
10917 
operator ^(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)10918   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator^( StencilFaceFlagBits bit0,
10919                                                                      StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10920   {
10921     return StencilFaceFlags( bit0 ) ^ bit1;
10922   }
10923 
operator ~(StencilFaceFlagBits bits)10924   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator~( StencilFaceFlagBits bits ) VULKAN_HPP_NOEXCEPT
10925   {
10926     return ~( StencilFaceFlags( bits ) );
10927   }
10928 
to_string(StencilFaceFlags value)10929   VULKAN_HPP_INLINE std::string to_string( StencilFaceFlags value )
10930   {
10931     if ( !value )
10932       return "{}";
10933 
10934     std::string result;
10935     if ( value & StencilFaceFlagBits::eFront )
10936       result += "Front | ";
10937     if ( value & StencilFaceFlagBits::eBack )
10938       result += "Back | ";
10939 
10940     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10941   }
10942 
10943   //=== VK_VERSION_1_1 ===
10944 
10945   using SubgroupFeatureFlags = Flags<SubgroupFeatureFlagBits>;
10946 
10947   template <>
10948   struct FlagTraits<SubgroupFeatureFlagBits>
10949   {
10950     enum : VkFlags
10951     {
10952       allFlags = VkFlags( SubgroupFeatureFlagBits::eBasic ) | VkFlags( SubgroupFeatureFlagBits::eVote ) |
10953                  VkFlags( SubgroupFeatureFlagBits::eArithmetic ) | VkFlags( SubgroupFeatureFlagBits::eBallot ) |
10954                  VkFlags( SubgroupFeatureFlagBits::eShuffle ) | VkFlags( SubgroupFeatureFlagBits::eShuffleRelative ) |
10955                  VkFlags( SubgroupFeatureFlagBits::eClustered ) | VkFlags( SubgroupFeatureFlagBits::eQuad ) |
10956                  VkFlags( SubgroupFeatureFlagBits::ePartitionedNV )
10957     };
10958   };
10959 
10960   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags
operator |(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)10961     operator|( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10962   {
10963     return SubgroupFeatureFlags( bit0 ) | bit1;
10964   }
10965 
10966   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags
operator &(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)10967     operator&( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10968   {
10969     return SubgroupFeatureFlags( bit0 ) & bit1;
10970   }
10971 
10972   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags
operator ^(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)10973     operator^( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10974   {
10975     return SubgroupFeatureFlags( bit0 ) ^ bit1;
10976   }
10977 
operator ~(SubgroupFeatureFlagBits bits)10978   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator~( SubgroupFeatureFlagBits bits )
10979     VULKAN_HPP_NOEXCEPT
10980   {
10981     return ~( SubgroupFeatureFlags( bits ) );
10982   }
10983 
to_string(SubgroupFeatureFlags value)10984   VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlags value )
10985   {
10986     if ( !value )
10987       return "{}";
10988 
10989     std::string result;
10990     if ( value & SubgroupFeatureFlagBits::eBasic )
10991       result += "Basic | ";
10992     if ( value & SubgroupFeatureFlagBits::eVote )
10993       result += "Vote | ";
10994     if ( value & SubgroupFeatureFlagBits::eArithmetic )
10995       result += "Arithmetic | ";
10996     if ( value & SubgroupFeatureFlagBits::eBallot )
10997       result += "Ballot | ";
10998     if ( value & SubgroupFeatureFlagBits::eShuffle )
10999       result += "Shuffle | ";
11000     if ( value & SubgroupFeatureFlagBits::eShuffleRelative )
11001       result += "ShuffleRelative | ";
11002     if ( value & SubgroupFeatureFlagBits::eClustered )
11003       result += "Clustered | ";
11004     if ( value & SubgroupFeatureFlagBits::eQuad )
11005       result += "Quad | ";
11006     if ( value & SubgroupFeatureFlagBits::ePartitionedNV )
11007       result += "PartitionedNV | ";
11008 
11009     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11010   }
11011 
11012   using PeerMemoryFeatureFlags = Flags<PeerMemoryFeatureFlagBits>;
11013 
11014   template <>
11015   struct FlagTraits<PeerMemoryFeatureFlagBits>
11016   {
11017     enum : VkFlags
11018     {
11019       allFlags = VkFlags( PeerMemoryFeatureFlagBits::eCopySrc ) | VkFlags( PeerMemoryFeatureFlagBits::eCopyDst ) |
11020                  VkFlags( PeerMemoryFeatureFlagBits::eGenericSrc ) | VkFlags( PeerMemoryFeatureFlagBits::eGenericDst )
11021     };
11022   };
11023 
11024   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags
operator |(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)11025     operator|( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11026   {
11027     return PeerMemoryFeatureFlags( bit0 ) | bit1;
11028   }
11029 
11030   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags
operator &(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)11031     operator&( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11032   {
11033     return PeerMemoryFeatureFlags( bit0 ) & bit1;
11034   }
11035 
11036   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags
operator ^(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)11037     operator^( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11038   {
11039     return PeerMemoryFeatureFlags( bit0 ) ^ bit1;
11040   }
11041 
operator ~(PeerMemoryFeatureFlagBits bits)11042   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator~( PeerMemoryFeatureFlagBits bits )
11043     VULKAN_HPP_NOEXCEPT
11044   {
11045     return ~( PeerMemoryFeatureFlags( bits ) );
11046   }
11047 
11048   using PeerMemoryFeatureFlagsKHR = PeerMemoryFeatureFlags;
11049 
to_string(PeerMemoryFeatureFlags value)11050   VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlags value )
11051   {
11052     if ( !value )
11053       return "{}";
11054 
11055     std::string result;
11056     if ( value & PeerMemoryFeatureFlagBits::eCopySrc )
11057       result += "CopySrc | ";
11058     if ( value & PeerMemoryFeatureFlagBits::eCopyDst )
11059       result += "CopyDst | ";
11060     if ( value & PeerMemoryFeatureFlagBits::eGenericSrc )
11061       result += "GenericSrc | ";
11062     if ( value & PeerMemoryFeatureFlagBits::eGenericDst )
11063       result += "GenericDst | ";
11064 
11065     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11066   }
11067 
11068   using MemoryAllocateFlags = Flags<MemoryAllocateFlagBits>;
11069 
11070   template <>
11071   struct FlagTraits<MemoryAllocateFlagBits>
11072   {
11073     enum : VkFlags
11074     {
11075       allFlags = VkFlags( MemoryAllocateFlagBits::eDeviceMask ) | VkFlags( MemoryAllocateFlagBits::eDeviceAddress ) |
11076                  VkFlags( MemoryAllocateFlagBits::eDeviceAddressCaptureReplay )
11077     };
11078   };
11079 
11080   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags
operator |(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)11081     operator|( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11082   {
11083     return MemoryAllocateFlags( bit0 ) | bit1;
11084   }
11085 
11086   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags
operator &(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)11087     operator&( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11088   {
11089     return MemoryAllocateFlags( bit0 ) & bit1;
11090   }
11091 
11092   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags
operator ^(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)11093     operator^( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11094   {
11095     return MemoryAllocateFlags( bit0 ) ^ bit1;
11096   }
11097 
operator ~(MemoryAllocateFlagBits bits)11098   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator~( MemoryAllocateFlagBits bits )
11099     VULKAN_HPP_NOEXCEPT
11100   {
11101     return ~( MemoryAllocateFlags( bits ) );
11102   }
11103 
11104   using MemoryAllocateFlagsKHR = MemoryAllocateFlags;
11105 
to_string(MemoryAllocateFlags value)11106   VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlags value )
11107   {
11108     if ( !value )
11109       return "{}";
11110 
11111     std::string result;
11112     if ( value & MemoryAllocateFlagBits::eDeviceMask )
11113       result += "DeviceMask | ";
11114     if ( value & MemoryAllocateFlagBits::eDeviceAddress )
11115       result += "DeviceAddress | ";
11116     if ( value & MemoryAllocateFlagBits::eDeviceAddressCaptureReplay )
11117       result += "DeviceAddressCaptureReplay | ";
11118 
11119     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11120   }
11121 
11122   using CommandPoolTrimFlags = Flags<CommandPoolTrimFlagBits>;
11123 
11124   using CommandPoolTrimFlagsKHR = CommandPoolTrimFlags;
11125 
to_string(CommandPoolTrimFlags)11126   VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlags )
11127   {
11128     return "{}";
11129   }
11130 
11131   using DescriptorUpdateTemplateCreateFlags = Flags<DescriptorUpdateTemplateCreateFlagBits>;
11132 
11133   using DescriptorUpdateTemplateCreateFlagsKHR = DescriptorUpdateTemplateCreateFlags;
11134 
to_string(DescriptorUpdateTemplateCreateFlags)11135   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlags )
11136   {
11137     return "{}";
11138   }
11139 
11140   using ExternalMemoryHandleTypeFlags = Flags<ExternalMemoryHandleTypeFlagBits>;
11141 
11142   template <>
11143   struct FlagTraits<ExternalMemoryHandleTypeFlagBits>
11144   {
11145     enum : VkFlags
11146     {
11147       allFlags = VkFlags( ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) |
11148                  VkFlags( ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 ) |
11149                  VkFlags( ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt ) |
11150                  VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D11Texture ) |
11151                  VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt ) |
11152                  VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D12Heap ) |
11153                  VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D12Resource ) |
11154                  VkFlags( ExternalMemoryHandleTypeFlagBits::eDmaBufEXT )
11155 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
11156                  | VkFlags( ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID )
11157 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
11158                  | VkFlags( ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT ) |
11159                  VkFlags( ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT )
11160 #if defined( VK_USE_PLATFORM_FUCHSIA )
11161                  | VkFlags( ExternalMemoryHandleTypeFlagBits::eZirconVmoFUCHSIA )
11162 #endif /*VK_USE_PLATFORM_FUCHSIA*/
11163                  | VkFlags( ExternalMemoryHandleTypeFlagBits::eRdmaAddressNV )
11164     };
11165   };
11166 
11167   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags
operator |(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)11168     operator|( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11169   {
11170     return ExternalMemoryHandleTypeFlags( bit0 ) | bit1;
11171   }
11172 
11173   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags
operator &(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)11174     operator&( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11175   {
11176     return ExternalMemoryHandleTypeFlags( bit0 ) & bit1;
11177   }
11178 
11179   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags
operator ^(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)11180     operator^( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11181   {
11182     return ExternalMemoryHandleTypeFlags( bit0 ) ^ bit1;
11183   }
11184 
11185   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags
operator ~(ExternalMemoryHandleTypeFlagBits bits)11186     operator~( ExternalMemoryHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT
11187   {
11188     return ~( ExternalMemoryHandleTypeFlags( bits ) );
11189   }
11190 
11191   using ExternalMemoryHandleTypeFlagsKHR = ExternalMemoryHandleTypeFlags;
11192 
to_string(ExternalMemoryHandleTypeFlags value)11193   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlags value )
11194   {
11195     if ( !value )
11196       return "{}";
11197 
11198     std::string result;
11199     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueFd )
11200       result += "OpaqueFd | ";
11201     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 )
11202       result += "OpaqueWin32 | ";
11203     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt )
11204       result += "OpaqueWin32Kmt | ";
11205     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11Texture )
11206       result += "D3D11Texture | ";
11207     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt )
11208       result += "D3D11TextureKmt | ";
11209     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Heap )
11210       result += "D3D12Heap | ";
11211     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Resource )
11212       result += "D3D12Resource | ";
11213     if ( value & ExternalMemoryHandleTypeFlagBits::eDmaBufEXT )
11214       result += "DmaBufEXT | ";
11215 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
11216     if ( value & ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID )
11217       result += "AndroidHardwareBufferANDROID | ";
11218 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
11219     if ( value & ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT )
11220       result += "HostAllocationEXT | ";
11221     if ( value & ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT )
11222       result += "HostMappedForeignMemoryEXT | ";
11223 #if defined( VK_USE_PLATFORM_FUCHSIA )
11224     if ( value & ExternalMemoryHandleTypeFlagBits::eZirconVmoFUCHSIA )
11225       result += "ZirconVmoFUCHSIA | ";
11226 #endif /*VK_USE_PLATFORM_FUCHSIA*/
11227     if ( value & ExternalMemoryHandleTypeFlagBits::eRdmaAddressNV )
11228       result += "RdmaAddressNV | ";
11229 
11230     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11231   }
11232 
11233   using ExternalMemoryFeatureFlags = Flags<ExternalMemoryFeatureFlagBits>;
11234 
11235   template <>
11236   struct FlagTraits<ExternalMemoryFeatureFlagBits>
11237   {
11238     enum : VkFlags
11239     {
11240       allFlags = VkFlags( ExternalMemoryFeatureFlagBits::eDedicatedOnly ) |
11241                  VkFlags( ExternalMemoryFeatureFlagBits::eExportable ) |
11242                  VkFlags( ExternalMemoryFeatureFlagBits::eImportable )
11243     };
11244   };
11245 
11246   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags
operator |(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)11247     operator|( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11248   {
11249     return ExternalMemoryFeatureFlags( bit0 ) | bit1;
11250   }
11251 
11252   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags
operator &(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)11253     operator&( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11254   {
11255     return ExternalMemoryFeatureFlags( bit0 ) & bit1;
11256   }
11257 
11258   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags
operator ^(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)11259     operator^( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11260   {
11261     return ExternalMemoryFeatureFlags( bit0 ) ^ bit1;
11262   }
11263 
operator ~(ExternalMemoryFeatureFlagBits bits)11264   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator~( ExternalMemoryFeatureFlagBits bits )
11265     VULKAN_HPP_NOEXCEPT
11266   {
11267     return ~( ExternalMemoryFeatureFlags( bits ) );
11268   }
11269 
11270   using ExternalMemoryFeatureFlagsKHR = ExternalMemoryFeatureFlags;
11271 
to_string(ExternalMemoryFeatureFlags value)11272   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlags value )
11273   {
11274     if ( !value )
11275       return "{}";
11276 
11277     std::string result;
11278     if ( value & ExternalMemoryFeatureFlagBits::eDedicatedOnly )
11279       result += "DedicatedOnly | ";
11280     if ( value & ExternalMemoryFeatureFlagBits::eExportable )
11281       result += "Exportable | ";
11282     if ( value & ExternalMemoryFeatureFlagBits::eImportable )
11283       result += "Importable | ";
11284 
11285     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11286   }
11287 
11288   using ExternalFenceHandleTypeFlags = Flags<ExternalFenceHandleTypeFlagBits>;
11289 
11290   template <>
11291   struct FlagTraits<ExternalFenceHandleTypeFlagBits>
11292   {
11293     enum : VkFlags
11294     {
11295       allFlags = VkFlags( ExternalFenceHandleTypeFlagBits::eOpaqueFd ) |
11296                  VkFlags( ExternalFenceHandleTypeFlagBits::eOpaqueWin32 ) |
11297                  VkFlags( ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt ) |
11298                  VkFlags( ExternalFenceHandleTypeFlagBits::eSyncFd )
11299     };
11300   };
11301 
11302   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags
operator |(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)11303     operator|( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11304   {
11305     return ExternalFenceHandleTypeFlags( bit0 ) | bit1;
11306   }
11307 
11308   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags
operator &(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)11309     operator&( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11310   {
11311     return ExternalFenceHandleTypeFlags( bit0 ) & bit1;
11312   }
11313 
11314   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags
operator ^(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)11315     operator^( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11316   {
11317     return ExternalFenceHandleTypeFlags( bit0 ) ^ bit1;
11318   }
11319 
operator ~(ExternalFenceHandleTypeFlagBits bits)11320   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator~( ExternalFenceHandleTypeFlagBits bits )
11321     VULKAN_HPP_NOEXCEPT
11322   {
11323     return ~( ExternalFenceHandleTypeFlags( bits ) );
11324   }
11325 
11326   using ExternalFenceHandleTypeFlagsKHR = ExternalFenceHandleTypeFlags;
11327 
to_string(ExternalFenceHandleTypeFlags value)11328   VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlags value )
11329   {
11330     if ( !value )
11331       return "{}";
11332 
11333     std::string result;
11334     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueFd )
11335       result += "OpaqueFd | ";
11336     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32 )
11337       result += "OpaqueWin32 | ";
11338     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt )
11339       result += "OpaqueWin32Kmt | ";
11340     if ( value & ExternalFenceHandleTypeFlagBits::eSyncFd )
11341       result += "SyncFd | ";
11342 
11343     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11344   }
11345 
11346   using ExternalFenceFeatureFlags = Flags<ExternalFenceFeatureFlagBits>;
11347 
11348   template <>
11349   struct FlagTraits<ExternalFenceFeatureFlagBits>
11350   {
11351     enum : VkFlags
11352     {
11353       allFlags =
11354         VkFlags( ExternalFenceFeatureFlagBits::eExportable ) | VkFlags( ExternalFenceFeatureFlagBits::eImportable )
11355     };
11356   };
11357 
11358   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags
operator |(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)11359     operator|( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11360   {
11361     return ExternalFenceFeatureFlags( bit0 ) | bit1;
11362   }
11363 
11364   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags
operator &(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)11365     operator&( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11366   {
11367     return ExternalFenceFeatureFlags( bit0 ) & bit1;
11368   }
11369 
11370   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags
operator ^(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)11371     operator^( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11372   {
11373     return ExternalFenceFeatureFlags( bit0 ) ^ bit1;
11374   }
11375 
operator ~(ExternalFenceFeatureFlagBits bits)11376   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator~( ExternalFenceFeatureFlagBits bits )
11377     VULKAN_HPP_NOEXCEPT
11378   {
11379     return ~( ExternalFenceFeatureFlags( bits ) );
11380   }
11381 
11382   using ExternalFenceFeatureFlagsKHR = ExternalFenceFeatureFlags;
11383 
to_string(ExternalFenceFeatureFlags value)11384   VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlags value )
11385   {
11386     if ( !value )
11387       return "{}";
11388 
11389     std::string result;
11390     if ( value & ExternalFenceFeatureFlagBits::eExportable )
11391       result += "Exportable | ";
11392     if ( value & ExternalFenceFeatureFlagBits::eImportable )
11393       result += "Importable | ";
11394 
11395     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11396   }
11397 
11398   using FenceImportFlags = Flags<FenceImportFlagBits>;
11399 
11400   template <>
11401   struct FlagTraits<FenceImportFlagBits>
11402   {
11403     enum : VkFlags
11404     {
11405       allFlags = VkFlags( FenceImportFlagBits::eTemporary )
11406     };
11407   };
11408 
operator |(FenceImportFlagBits bit0,FenceImportFlagBits bit1)11409   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator|( FenceImportFlagBits bit0,
11410                                                                      FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11411   {
11412     return FenceImportFlags( bit0 ) | bit1;
11413   }
11414 
operator &(FenceImportFlagBits bit0,FenceImportFlagBits bit1)11415   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator&( FenceImportFlagBits bit0,
11416                                                                      FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11417   {
11418     return FenceImportFlags( bit0 ) & bit1;
11419   }
11420 
operator ^(FenceImportFlagBits bit0,FenceImportFlagBits bit1)11421   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator^( FenceImportFlagBits bit0,
11422                                                                      FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11423   {
11424     return FenceImportFlags( bit0 ) ^ bit1;
11425   }
11426 
operator ~(FenceImportFlagBits bits)11427   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator~( FenceImportFlagBits bits ) VULKAN_HPP_NOEXCEPT
11428   {
11429     return ~( FenceImportFlags( bits ) );
11430   }
11431 
11432   using FenceImportFlagsKHR = FenceImportFlags;
11433 
to_string(FenceImportFlags value)11434   VULKAN_HPP_INLINE std::string to_string( FenceImportFlags value )
11435   {
11436     if ( !value )
11437       return "{}";
11438 
11439     std::string result;
11440     if ( value & FenceImportFlagBits::eTemporary )
11441       result += "Temporary | ";
11442 
11443     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11444   }
11445 
11446   using SemaphoreImportFlags = Flags<SemaphoreImportFlagBits>;
11447 
11448   template <>
11449   struct FlagTraits<SemaphoreImportFlagBits>
11450   {
11451     enum : VkFlags
11452     {
11453       allFlags = VkFlags( SemaphoreImportFlagBits::eTemporary )
11454     };
11455   };
11456 
11457   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags
operator |(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)11458     operator|( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11459   {
11460     return SemaphoreImportFlags( bit0 ) | bit1;
11461   }
11462 
11463   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags
operator &(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)11464     operator&( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11465   {
11466     return SemaphoreImportFlags( bit0 ) & bit1;
11467   }
11468 
11469   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags
operator ^(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)11470     operator^( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11471   {
11472     return SemaphoreImportFlags( bit0 ) ^ bit1;
11473   }
11474 
operator ~(SemaphoreImportFlagBits bits)11475   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator~( SemaphoreImportFlagBits bits )
11476     VULKAN_HPP_NOEXCEPT
11477   {
11478     return ~( SemaphoreImportFlags( bits ) );
11479   }
11480 
11481   using SemaphoreImportFlagsKHR = SemaphoreImportFlags;
11482 
to_string(SemaphoreImportFlags value)11483   VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlags value )
11484   {
11485     if ( !value )
11486       return "{}";
11487 
11488     std::string result;
11489     if ( value & SemaphoreImportFlagBits::eTemporary )
11490       result += "Temporary | ";
11491 
11492     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11493   }
11494 
11495   using ExternalSemaphoreHandleTypeFlags = Flags<ExternalSemaphoreHandleTypeFlagBits>;
11496 
11497   template <>
11498   struct FlagTraits<ExternalSemaphoreHandleTypeFlagBits>
11499   {
11500     enum : VkFlags
11501     {
11502       allFlags = VkFlags( ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) |
11503                  VkFlags( ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 ) |
11504                  VkFlags( ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt ) |
11505                  VkFlags( ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence ) |
11506                  VkFlags( ExternalSemaphoreHandleTypeFlagBits::eSyncFd )
11507 #if defined( VK_USE_PLATFORM_FUCHSIA )
11508                  | VkFlags( ExternalSemaphoreHandleTypeFlagBits::eZirconEventFUCHSIA )
11509 #endif /*VK_USE_PLATFORM_FUCHSIA*/
11510     };
11511   };
11512 
11513   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags
operator |(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)11514     operator|( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11515   {
11516     return ExternalSemaphoreHandleTypeFlags( bit0 ) | bit1;
11517   }
11518 
11519   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags
operator &(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)11520     operator&( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11521   {
11522     return ExternalSemaphoreHandleTypeFlags( bit0 ) & bit1;
11523   }
11524 
11525   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags
operator ^(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)11526     operator^( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11527   {
11528     return ExternalSemaphoreHandleTypeFlags( bit0 ) ^ bit1;
11529   }
11530 
11531   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags
operator ~(ExternalSemaphoreHandleTypeFlagBits bits)11532     operator~( ExternalSemaphoreHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT
11533   {
11534     return ~( ExternalSemaphoreHandleTypeFlags( bits ) );
11535   }
11536 
11537   using ExternalSemaphoreHandleTypeFlagsKHR = ExternalSemaphoreHandleTypeFlags;
11538 
to_string(ExternalSemaphoreHandleTypeFlags value)11539   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlags value )
11540   {
11541     if ( !value )
11542       return "{}";
11543 
11544     std::string result;
11545     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd )
11546       result += "OpaqueFd | ";
11547     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 )
11548       result += "OpaqueWin32 | ";
11549     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt )
11550       result += "OpaqueWin32Kmt | ";
11551     if ( value & ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence )
11552       result += "D3D12Fence | ";
11553     if ( value & ExternalSemaphoreHandleTypeFlagBits::eSyncFd )
11554       result += "SyncFd | ";
11555 #if defined( VK_USE_PLATFORM_FUCHSIA )
11556     if ( value & ExternalSemaphoreHandleTypeFlagBits::eZirconEventFUCHSIA )
11557       result += "ZirconEventFUCHSIA | ";
11558 #endif /*VK_USE_PLATFORM_FUCHSIA*/
11559 
11560     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11561   }
11562 
11563   using ExternalSemaphoreFeatureFlags = Flags<ExternalSemaphoreFeatureFlagBits>;
11564 
11565   template <>
11566   struct FlagTraits<ExternalSemaphoreFeatureFlagBits>
11567   {
11568     enum : VkFlags
11569     {
11570       allFlags = VkFlags( ExternalSemaphoreFeatureFlagBits::eExportable ) |
11571                  VkFlags( ExternalSemaphoreFeatureFlagBits::eImportable )
11572     };
11573   };
11574 
11575   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags
operator |(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)11576     operator|( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11577   {
11578     return ExternalSemaphoreFeatureFlags( bit0 ) | bit1;
11579   }
11580 
11581   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags
operator &(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)11582     operator&( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11583   {
11584     return ExternalSemaphoreFeatureFlags( bit0 ) & bit1;
11585   }
11586 
11587   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags
operator ^(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)11588     operator^( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11589   {
11590     return ExternalSemaphoreFeatureFlags( bit0 ) ^ bit1;
11591   }
11592 
11593   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags
operator ~(ExternalSemaphoreFeatureFlagBits bits)11594     operator~( ExternalSemaphoreFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
11595   {
11596     return ~( ExternalSemaphoreFeatureFlags( bits ) );
11597   }
11598 
11599   using ExternalSemaphoreFeatureFlagsKHR = ExternalSemaphoreFeatureFlags;
11600 
to_string(ExternalSemaphoreFeatureFlags value)11601   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlags value )
11602   {
11603     if ( !value )
11604       return "{}";
11605 
11606     std::string result;
11607     if ( value & ExternalSemaphoreFeatureFlagBits::eExportable )
11608       result += "Exportable | ";
11609     if ( value & ExternalSemaphoreFeatureFlagBits::eImportable )
11610       result += "Importable | ";
11611 
11612     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11613   }
11614 
11615   //=== VK_VERSION_1_2 ===
11616 
11617   using DescriptorBindingFlags = Flags<DescriptorBindingFlagBits>;
11618 
11619   template <>
11620   struct FlagTraits<DescriptorBindingFlagBits>
11621   {
11622     enum : VkFlags
11623     {
11624       allFlags = VkFlags( DescriptorBindingFlagBits::eUpdateAfterBind ) |
11625                  VkFlags( DescriptorBindingFlagBits::eUpdateUnusedWhilePending ) |
11626                  VkFlags( DescriptorBindingFlagBits::ePartiallyBound ) |
11627                  VkFlags( DescriptorBindingFlagBits::eVariableDescriptorCount )
11628     };
11629   };
11630 
11631   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags
operator |(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)11632     operator|( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11633   {
11634     return DescriptorBindingFlags( bit0 ) | bit1;
11635   }
11636 
11637   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags
operator &(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)11638     operator&( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11639   {
11640     return DescriptorBindingFlags( bit0 ) & bit1;
11641   }
11642 
11643   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags
operator ^(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)11644     operator^( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11645   {
11646     return DescriptorBindingFlags( bit0 ) ^ bit1;
11647   }
11648 
operator ~(DescriptorBindingFlagBits bits)11649   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator~( DescriptorBindingFlagBits bits )
11650     VULKAN_HPP_NOEXCEPT
11651   {
11652     return ~( DescriptorBindingFlags( bits ) );
11653   }
11654 
11655   using DescriptorBindingFlagsEXT = DescriptorBindingFlags;
11656 
to_string(DescriptorBindingFlags value)11657   VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlags value )
11658   {
11659     if ( !value )
11660       return "{}";
11661 
11662     std::string result;
11663     if ( value & DescriptorBindingFlagBits::eUpdateAfterBind )
11664       result += "UpdateAfterBind | ";
11665     if ( value & DescriptorBindingFlagBits::eUpdateUnusedWhilePending )
11666       result += "UpdateUnusedWhilePending | ";
11667     if ( value & DescriptorBindingFlagBits::ePartiallyBound )
11668       result += "PartiallyBound | ";
11669     if ( value & DescriptorBindingFlagBits::eVariableDescriptorCount )
11670       result += "VariableDescriptorCount | ";
11671 
11672     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11673   }
11674 
11675   using ResolveModeFlags = Flags<ResolveModeFlagBits>;
11676 
11677   template <>
11678   struct FlagTraits<ResolveModeFlagBits>
11679   {
11680     enum : VkFlags
11681     {
11682       allFlags = VkFlags( ResolveModeFlagBits::eNone ) | VkFlags( ResolveModeFlagBits::eSampleZero ) |
11683                  VkFlags( ResolveModeFlagBits::eAverage ) | VkFlags( ResolveModeFlagBits::eMin ) |
11684                  VkFlags( ResolveModeFlagBits::eMax )
11685     };
11686   };
11687 
operator |(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)11688   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator|( ResolveModeFlagBits bit0,
11689                                                                      ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11690   {
11691     return ResolveModeFlags( bit0 ) | bit1;
11692   }
11693 
operator &(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)11694   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator&( ResolveModeFlagBits bit0,
11695                                                                      ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11696   {
11697     return ResolveModeFlags( bit0 ) & bit1;
11698   }
11699 
operator ^(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)11700   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator^( ResolveModeFlagBits bit0,
11701                                                                      ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11702   {
11703     return ResolveModeFlags( bit0 ) ^ bit1;
11704   }
11705 
operator ~(ResolveModeFlagBits bits)11706   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator~( ResolveModeFlagBits bits ) VULKAN_HPP_NOEXCEPT
11707   {
11708     return ~( ResolveModeFlags( bits ) );
11709   }
11710 
11711   using ResolveModeFlagsKHR = ResolveModeFlags;
11712 
to_string(ResolveModeFlags value)11713   VULKAN_HPP_INLINE std::string to_string( ResolveModeFlags value )
11714   {
11715     if ( !value )
11716       return "{}";
11717 
11718     std::string result;
11719     if ( value & ResolveModeFlagBits::eSampleZero )
11720       result += "SampleZero | ";
11721     if ( value & ResolveModeFlagBits::eAverage )
11722       result += "Average | ";
11723     if ( value & ResolveModeFlagBits::eMin )
11724       result += "Min | ";
11725     if ( value & ResolveModeFlagBits::eMax )
11726       result += "Max | ";
11727 
11728     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11729   }
11730 
11731   using SemaphoreWaitFlags = Flags<SemaphoreWaitFlagBits>;
11732 
11733   template <>
11734   struct FlagTraits<SemaphoreWaitFlagBits>
11735   {
11736     enum : VkFlags
11737     {
11738       allFlags = VkFlags( SemaphoreWaitFlagBits::eAny )
11739     };
11740   };
11741 
operator |(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)11742   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator|( SemaphoreWaitFlagBits bit0,
11743                                                                        SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11744   {
11745     return SemaphoreWaitFlags( bit0 ) | bit1;
11746   }
11747 
operator &(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)11748   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator&( SemaphoreWaitFlagBits bit0,
11749                                                                        SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11750   {
11751     return SemaphoreWaitFlags( bit0 ) & bit1;
11752   }
11753 
operator ^(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)11754   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator^( SemaphoreWaitFlagBits bit0,
11755                                                                        SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11756   {
11757     return SemaphoreWaitFlags( bit0 ) ^ bit1;
11758   }
11759 
operator ~(SemaphoreWaitFlagBits bits)11760   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator~( SemaphoreWaitFlagBits bits ) VULKAN_HPP_NOEXCEPT
11761   {
11762     return ~( SemaphoreWaitFlags( bits ) );
11763   }
11764 
11765   using SemaphoreWaitFlagsKHR = SemaphoreWaitFlags;
11766 
to_string(SemaphoreWaitFlags value)11767   VULKAN_HPP_INLINE std::string to_string( SemaphoreWaitFlags value )
11768   {
11769     if ( !value )
11770       return "{}";
11771 
11772     std::string result;
11773     if ( value & SemaphoreWaitFlagBits::eAny )
11774       result += "Any | ";
11775 
11776     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11777   }
11778 
11779   //=== VK_KHR_surface ===
11780 
11781   using CompositeAlphaFlagsKHR = Flags<CompositeAlphaFlagBitsKHR>;
11782 
11783   template <>
11784   struct FlagTraits<CompositeAlphaFlagBitsKHR>
11785   {
11786     enum : VkFlags
11787     {
11788       allFlags = VkFlags( CompositeAlphaFlagBitsKHR::eOpaque ) | VkFlags( CompositeAlphaFlagBitsKHR::ePreMultiplied ) |
11789                  VkFlags( CompositeAlphaFlagBitsKHR::ePostMultiplied ) | VkFlags( CompositeAlphaFlagBitsKHR::eInherit )
11790     };
11791   };
11792 
11793   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR
operator |(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)11794     operator|( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11795   {
11796     return CompositeAlphaFlagsKHR( bit0 ) | bit1;
11797   }
11798 
11799   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR
operator &(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)11800     operator&( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11801   {
11802     return CompositeAlphaFlagsKHR( bit0 ) & bit1;
11803   }
11804 
11805   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR
operator ^(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)11806     operator^( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11807   {
11808     return CompositeAlphaFlagsKHR( bit0 ) ^ bit1;
11809   }
11810 
operator ~(CompositeAlphaFlagBitsKHR bits)11811   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator~( CompositeAlphaFlagBitsKHR bits )
11812     VULKAN_HPP_NOEXCEPT
11813   {
11814     return ~( CompositeAlphaFlagsKHR( bits ) );
11815   }
11816 
to_string(CompositeAlphaFlagsKHR value)11817   VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagsKHR value )
11818   {
11819     if ( !value )
11820       return "{}";
11821 
11822     std::string result;
11823     if ( value & CompositeAlphaFlagBitsKHR::eOpaque )
11824       result += "Opaque | ";
11825     if ( value & CompositeAlphaFlagBitsKHR::ePreMultiplied )
11826       result += "PreMultiplied | ";
11827     if ( value & CompositeAlphaFlagBitsKHR::ePostMultiplied )
11828       result += "PostMultiplied | ";
11829     if ( value & CompositeAlphaFlagBitsKHR::eInherit )
11830       result += "Inherit | ";
11831 
11832     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11833   }
11834 
11835   //=== VK_KHR_swapchain ===
11836 
11837   using SwapchainCreateFlagsKHR = Flags<SwapchainCreateFlagBitsKHR>;
11838 
11839   template <>
11840   struct FlagTraits<SwapchainCreateFlagBitsKHR>
11841   {
11842     enum : VkFlags
11843     {
11844       allFlags = VkFlags( SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions ) |
11845                  VkFlags( SwapchainCreateFlagBitsKHR::eProtected ) |
11846                  VkFlags( SwapchainCreateFlagBitsKHR::eMutableFormat )
11847     };
11848   };
11849 
11850   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR
operator |(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)11851     operator|( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11852   {
11853     return SwapchainCreateFlagsKHR( bit0 ) | bit1;
11854   }
11855 
11856   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR
operator &(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)11857     operator&( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11858   {
11859     return SwapchainCreateFlagsKHR( bit0 ) & bit1;
11860   }
11861 
11862   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR
operator ^(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)11863     operator^( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11864   {
11865     return SwapchainCreateFlagsKHR( bit0 ) ^ bit1;
11866   }
11867 
operator ~(SwapchainCreateFlagBitsKHR bits)11868   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator~( SwapchainCreateFlagBitsKHR bits )
11869     VULKAN_HPP_NOEXCEPT
11870   {
11871     return ~( SwapchainCreateFlagsKHR( bits ) );
11872   }
11873 
to_string(SwapchainCreateFlagsKHR value)11874   VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagsKHR value )
11875   {
11876     if ( !value )
11877       return "{}";
11878 
11879     std::string result;
11880     if ( value & SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions )
11881       result += "SplitInstanceBindRegions | ";
11882     if ( value & SwapchainCreateFlagBitsKHR::eProtected )
11883       result += "Protected | ";
11884     if ( value & SwapchainCreateFlagBitsKHR::eMutableFormat )
11885       result += "MutableFormat | ";
11886 
11887     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11888   }
11889 
11890   using DeviceGroupPresentModeFlagsKHR = Flags<DeviceGroupPresentModeFlagBitsKHR>;
11891 
11892   template <>
11893   struct FlagTraits<DeviceGroupPresentModeFlagBitsKHR>
11894   {
11895     enum : VkFlags
11896     {
11897       allFlags = VkFlags( DeviceGroupPresentModeFlagBitsKHR::eLocal ) |
11898                  VkFlags( DeviceGroupPresentModeFlagBitsKHR::eRemote ) |
11899                  VkFlags( DeviceGroupPresentModeFlagBitsKHR::eSum ) |
11900                  VkFlags( DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice )
11901     };
11902   };
11903 
11904   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR
operator |(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)11905     operator|( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11906   {
11907     return DeviceGroupPresentModeFlagsKHR( bit0 ) | bit1;
11908   }
11909 
11910   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR
operator &(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)11911     operator&( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11912   {
11913     return DeviceGroupPresentModeFlagsKHR( bit0 ) & bit1;
11914   }
11915 
11916   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR
operator ^(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)11917     operator^( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11918   {
11919     return DeviceGroupPresentModeFlagsKHR( bit0 ) ^ bit1;
11920   }
11921 
11922   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR
operator ~(DeviceGroupPresentModeFlagBitsKHR bits)11923     operator~( DeviceGroupPresentModeFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
11924   {
11925     return ~( DeviceGroupPresentModeFlagsKHR( bits ) );
11926   }
11927 
to_string(DeviceGroupPresentModeFlagsKHR value)11928   VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagsKHR value )
11929   {
11930     if ( !value )
11931       return "{}";
11932 
11933     std::string result;
11934     if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocal )
11935       result += "Local | ";
11936     if ( value & DeviceGroupPresentModeFlagBitsKHR::eRemote )
11937       result += "Remote | ";
11938     if ( value & DeviceGroupPresentModeFlagBitsKHR::eSum )
11939       result += "Sum | ";
11940     if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice )
11941       result += "LocalMultiDevice | ";
11942 
11943     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11944   }
11945 
11946   //=== VK_KHR_display ===
11947 
11948   using DisplayModeCreateFlagsKHR = Flags<DisplayModeCreateFlagBitsKHR>;
11949 
to_string(DisplayModeCreateFlagsKHR)11950   VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagsKHR )
11951   {
11952     return "{}";
11953   }
11954 
11955   using DisplayPlaneAlphaFlagsKHR = Flags<DisplayPlaneAlphaFlagBitsKHR>;
11956 
11957   template <>
11958   struct FlagTraits<DisplayPlaneAlphaFlagBitsKHR>
11959   {
11960     enum : VkFlags
11961     {
11962       allFlags = VkFlags( DisplayPlaneAlphaFlagBitsKHR::eOpaque ) | VkFlags( DisplayPlaneAlphaFlagBitsKHR::eGlobal ) |
11963                  VkFlags( DisplayPlaneAlphaFlagBitsKHR::ePerPixel ) |
11964                  VkFlags( DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied )
11965     };
11966   };
11967 
11968   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR
operator |(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)11969     operator|( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11970   {
11971     return DisplayPlaneAlphaFlagsKHR( bit0 ) | bit1;
11972   }
11973 
11974   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR
operator &(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)11975     operator&( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11976   {
11977     return DisplayPlaneAlphaFlagsKHR( bit0 ) & bit1;
11978   }
11979 
11980   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR
operator ^(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)11981     operator^( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11982   {
11983     return DisplayPlaneAlphaFlagsKHR( bit0 ) ^ bit1;
11984   }
11985 
operator ~(DisplayPlaneAlphaFlagBitsKHR bits)11986   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator~( DisplayPlaneAlphaFlagBitsKHR bits )
11987     VULKAN_HPP_NOEXCEPT
11988   {
11989     return ~( DisplayPlaneAlphaFlagsKHR( bits ) );
11990   }
11991 
to_string(DisplayPlaneAlphaFlagsKHR value)11992   VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagsKHR value )
11993   {
11994     if ( !value )
11995       return "{}";
11996 
11997     std::string result;
11998     if ( value & DisplayPlaneAlphaFlagBitsKHR::eOpaque )
11999       result += "Opaque | ";
12000     if ( value & DisplayPlaneAlphaFlagBitsKHR::eGlobal )
12001       result += "Global | ";
12002     if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixel )
12003       result += "PerPixel | ";
12004     if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied )
12005       result += "PerPixelPremultiplied | ";
12006 
12007     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12008   }
12009 
12010   using DisplaySurfaceCreateFlagsKHR = Flags<DisplaySurfaceCreateFlagBitsKHR>;
12011 
to_string(DisplaySurfaceCreateFlagsKHR)12012   VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagsKHR )
12013   {
12014     return "{}";
12015   }
12016 
12017   using SurfaceTransformFlagsKHR = Flags<SurfaceTransformFlagBitsKHR>;
12018 
12019   template <>
12020   struct FlagTraits<SurfaceTransformFlagBitsKHR>
12021   {
12022     enum : VkFlags
12023     {
12024       allFlags = VkFlags( SurfaceTransformFlagBitsKHR::eIdentity ) | VkFlags( SurfaceTransformFlagBitsKHR::eRotate90 ) |
12025                  VkFlags( SurfaceTransformFlagBitsKHR::eRotate180 ) |
12026                  VkFlags( SurfaceTransformFlagBitsKHR::eRotate270 ) |
12027                  VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirror ) |
12028                  VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 ) |
12029                  VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 ) |
12030                  VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 ) |
12031                  VkFlags( SurfaceTransformFlagBitsKHR::eInherit )
12032     };
12033   };
12034 
12035   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR
operator |(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)12036     operator|( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12037   {
12038     return SurfaceTransformFlagsKHR( bit0 ) | bit1;
12039   }
12040 
12041   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR
operator &(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)12042     operator&( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12043   {
12044     return SurfaceTransformFlagsKHR( bit0 ) & bit1;
12045   }
12046 
12047   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR
operator ^(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)12048     operator^( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12049   {
12050     return SurfaceTransformFlagsKHR( bit0 ) ^ bit1;
12051   }
12052 
operator ~(SurfaceTransformFlagBitsKHR bits)12053   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator~( SurfaceTransformFlagBitsKHR bits )
12054     VULKAN_HPP_NOEXCEPT
12055   {
12056     return ~( SurfaceTransformFlagsKHR( bits ) );
12057   }
12058 
to_string(SurfaceTransformFlagsKHR value)12059   VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagsKHR value )
12060   {
12061     if ( !value )
12062       return "{}";
12063 
12064     std::string result;
12065     if ( value & SurfaceTransformFlagBitsKHR::eIdentity )
12066       result += "Identity | ";
12067     if ( value & SurfaceTransformFlagBitsKHR::eRotate90 )
12068       result += "Rotate90 | ";
12069     if ( value & SurfaceTransformFlagBitsKHR::eRotate180 )
12070       result += "Rotate180 | ";
12071     if ( value & SurfaceTransformFlagBitsKHR::eRotate270 )
12072       result += "Rotate270 | ";
12073     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirror )
12074       result += "HorizontalMirror | ";
12075     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 )
12076       result += "HorizontalMirrorRotate90 | ";
12077     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 )
12078       result += "HorizontalMirrorRotate180 | ";
12079     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 )
12080       result += "HorizontalMirrorRotate270 | ";
12081     if ( value & SurfaceTransformFlagBitsKHR::eInherit )
12082       result += "Inherit | ";
12083 
12084     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12085   }
12086 
12087 #if defined( VK_USE_PLATFORM_XLIB_KHR )
12088   //=== VK_KHR_xlib_surface ===
12089 
12090   using XlibSurfaceCreateFlagsKHR = Flags<XlibSurfaceCreateFlagBitsKHR>;
12091 
to_string(XlibSurfaceCreateFlagsKHR)12092   VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagsKHR )
12093   {
12094     return "{}";
12095   }
12096 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
12097 
12098 #if defined( VK_USE_PLATFORM_XCB_KHR )
12099   //=== VK_KHR_xcb_surface ===
12100 
12101   using XcbSurfaceCreateFlagsKHR = Flags<XcbSurfaceCreateFlagBitsKHR>;
12102 
to_string(XcbSurfaceCreateFlagsKHR)12103   VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagsKHR )
12104   {
12105     return "{}";
12106   }
12107 #endif /*VK_USE_PLATFORM_XCB_KHR*/
12108 
12109 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
12110   //=== VK_KHR_wayland_surface ===
12111 
12112   using WaylandSurfaceCreateFlagsKHR = Flags<WaylandSurfaceCreateFlagBitsKHR>;
12113 
to_string(WaylandSurfaceCreateFlagsKHR)12114   VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagsKHR )
12115   {
12116     return "{}";
12117   }
12118 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
12119 
12120 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
12121   //=== VK_KHR_android_surface ===
12122 
12123   using AndroidSurfaceCreateFlagsKHR = Flags<AndroidSurfaceCreateFlagBitsKHR>;
12124 
to_string(AndroidSurfaceCreateFlagsKHR)12125   VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagsKHR )
12126   {
12127     return "{}";
12128   }
12129 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
12130 
12131 #if defined( VK_USE_PLATFORM_WIN32_KHR )
12132   //=== VK_KHR_win32_surface ===
12133 
12134   using Win32SurfaceCreateFlagsKHR = Flags<Win32SurfaceCreateFlagBitsKHR>;
12135 
to_string(Win32SurfaceCreateFlagsKHR)12136   VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagsKHR )
12137   {
12138     return "{}";
12139   }
12140 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
12141 
12142   //=== VK_EXT_debug_report ===
12143 
12144   using DebugReportFlagsEXT = Flags<DebugReportFlagBitsEXT>;
12145 
12146   template <>
12147   struct FlagTraits<DebugReportFlagBitsEXT>
12148   {
12149     enum : VkFlags
12150     {
12151       allFlags = VkFlags( DebugReportFlagBitsEXT::eInformation ) | VkFlags( DebugReportFlagBitsEXT::eWarning ) |
12152                  VkFlags( DebugReportFlagBitsEXT::ePerformanceWarning ) | VkFlags( DebugReportFlagBitsEXT::eError ) |
12153                  VkFlags( DebugReportFlagBitsEXT::eDebug )
12154     };
12155   };
12156 
12157   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT
operator |(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)12158     operator|( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12159   {
12160     return DebugReportFlagsEXT( bit0 ) | bit1;
12161   }
12162 
12163   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT
operator &(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)12164     operator&( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12165   {
12166     return DebugReportFlagsEXT( bit0 ) & bit1;
12167   }
12168 
12169   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT
operator ^(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)12170     operator^( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12171   {
12172     return DebugReportFlagsEXT( bit0 ) ^ bit1;
12173   }
12174 
operator ~(DebugReportFlagBitsEXT bits)12175   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator~( DebugReportFlagBitsEXT bits )
12176     VULKAN_HPP_NOEXCEPT
12177   {
12178     return ~( DebugReportFlagsEXT( bits ) );
12179   }
12180 
to_string(DebugReportFlagsEXT value)12181   VULKAN_HPP_INLINE std::string to_string( DebugReportFlagsEXT value )
12182   {
12183     if ( !value )
12184       return "{}";
12185 
12186     std::string result;
12187     if ( value & DebugReportFlagBitsEXT::eInformation )
12188       result += "Information | ";
12189     if ( value & DebugReportFlagBitsEXT::eWarning )
12190       result += "Warning | ";
12191     if ( value & DebugReportFlagBitsEXT::ePerformanceWarning )
12192       result += "PerformanceWarning | ";
12193     if ( value & DebugReportFlagBitsEXT::eError )
12194       result += "Error | ";
12195     if ( value & DebugReportFlagBitsEXT::eDebug )
12196       result += "Debug | ";
12197 
12198     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12199   }
12200 
12201 #if defined( VK_ENABLE_BETA_EXTENSIONS )
12202   //=== VK_KHR_video_queue ===
12203 
12204   using VideoCodecOperationFlagsKHR = Flags<VideoCodecOperationFlagBitsKHR>;
12205 
12206   template <>
12207   struct FlagTraits<VideoCodecOperationFlagBitsKHR>
12208   {
12209     enum : VkFlags
12210     {
12211       allFlags = VkFlags( VideoCodecOperationFlagBitsKHR::eInvalid )
12212 #  if defined( VK_ENABLE_BETA_EXTENSIONS )
12213                  | VkFlags( VideoCodecOperationFlagBitsKHR::eEncodeH264EXT ) |
12214                  VkFlags( VideoCodecOperationFlagBitsKHR::eEncodeH265EXT ) |
12215                  VkFlags( VideoCodecOperationFlagBitsKHR::eDecodeH264EXT ) |
12216                  VkFlags( VideoCodecOperationFlagBitsKHR::eDecodeH265EXT )
12217 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
12218     };
12219   };
12220 
12221   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodecOperationFlagsKHR
operator |(VideoCodecOperationFlagBitsKHR bit0,VideoCodecOperationFlagBitsKHR bit1)12222     operator|( VideoCodecOperationFlagBitsKHR bit0, VideoCodecOperationFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12223   {
12224     return VideoCodecOperationFlagsKHR( bit0 ) | bit1;
12225   }
12226 
12227   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodecOperationFlagsKHR
operator &(VideoCodecOperationFlagBitsKHR bit0,VideoCodecOperationFlagBitsKHR bit1)12228     operator&( VideoCodecOperationFlagBitsKHR bit0, VideoCodecOperationFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12229   {
12230     return VideoCodecOperationFlagsKHR( bit0 ) & bit1;
12231   }
12232 
12233   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodecOperationFlagsKHR
operator ^(VideoCodecOperationFlagBitsKHR bit0,VideoCodecOperationFlagBitsKHR bit1)12234     operator^( VideoCodecOperationFlagBitsKHR bit0, VideoCodecOperationFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12235   {
12236     return VideoCodecOperationFlagsKHR( bit0 ) ^ bit1;
12237   }
12238 
operator ~(VideoCodecOperationFlagBitsKHR bits)12239   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodecOperationFlagsKHR operator~( VideoCodecOperationFlagBitsKHR bits )
12240     VULKAN_HPP_NOEXCEPT
12241   {
12242     return ~( VideoCodecOperationFlagsKHR( bits ) );
12243   }
12244 
to_string(VideoCodecOperationFlagsKHR value)12245   VULKAN_HPP_INLINE std::string to_string( VideoCodecOperationFlagsKHR value )
12246   {
12247     if ( !value )
12248       return "{}";
12249 
12250     std::string result;
12251 #  if defined( VK_ENABLE_BETA_EXTENSIONS )
12252     if ( value & VideoCodecOperationFlagBitsKHR::eEncodeH264EXT )
12253       result += "EncodeH264EXT | ";
12254     if ( value & VideoCodecOperationFlagBitsKHR::eEncodeH265EXT )
12255       result += "EncodeH265EXT | ";
12256     if ( value & VideoCodecOperationFlagBitsKHR::eDecodeH264EXT )
12257       result += "DecodeH264EXT | ";
12258     if ( value & VideoCodecOperationFlagBitsKHR::eDecodeH265EXT )
12259       result += "DecodeH265EXT | ";
12260 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
12261 
12262     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12263   }
12264 
12265   using VideoChromaSubsamplingFlagsKHR = Flags<VideoChromaSubsamplingFlagBitsKHR>;
12266 
12267   template <>
12268   struct FlagTraits<VideoChromaSubsamplingFlagBitsKHR>
12269   {
12270     enum : VkFlags
12271     {
12272       allFlags = VkFlags( VideoChromaSubsamplingFlagBitsKHR::eInvalid ) |
12273                  VkFlags( VideoChromaSubsamplingFlagBitsKHR::eMonochrome ) |
12274                  VkFlags( VideoChromaSubsamplingFlagBitsKHR::e420 ) |
12275                  VkFlags( VideoChromaSubsamplingFlagBitsKHR::e422 ) | VkFlags( VideoChromaSubsamplingFlagBitsKHR::e444 )
12276     };
12277   };
12278 
12279   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoChromaSubsamplingFlagsKHR
operator |(VideoChromaSubsamplingFlagBitsKHR bit0,VideoChromaSubsamplingFlagBitsKHR bit1)12280     operator|( VideoChromaSubsamplingFlagBitsKHR bit0, VideoChromaSubsamplingFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12281   {
12282     return VideoChromaSubsamplingFlagsKHR( bit0 ) | bit1;
12283   }
12284 
12285   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoChromaSubsamplingFlagsKHR
operator &(VideoChromaSubsamplingFlagBitsKHR bit0,VideoChromaSubsamplingFlagBitsKHR bit1)12286     operator&( VideoChromaSubsamplingFlagBitsKHR bit0, VideoChromaSubsamplingFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12287   {
12288     return VideoChromaSubsamplingFlagsKHR( bit0 ) & bit1;
12289   }
12290 
12291   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoChromaSubsamplingFlagsKHR
operator ^(VideoChromaSubsamplingFlagBitsKHR bit0,VideoChromaSubsamplingFlagBitsKHR bit1)12292     operator^( VideoChromaSubsamplingFlagBitsKHR bit0, VideoChromaSubsamplingFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12293   {
12294     return VideoChromaSubsamplingFlagsKHR( bit0 ) ^ bit1;
12295   }
12296 
12297   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoChromaSubsamplingFlagsKHR
operator ~(VideoChromaSubsamplingFlagBitsKHR bits)12298     operator~( VideoChromaSubsamplingFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
12299   {
12300     return ~( VideoChromaSubsamplingFlagsKHR( bits ) );
12301   }
12302 
to_string(VideoChromaSubsamplingFlagsKHR value)12303   VULKAN_HPP_INLINE std::string to_string( VideoChromaSubsamplingFlagsKHR value )
12304   {
12305     if ( !value )
12306       return "{}";
12307 
12308     std::string result;
12309     if ( value & VideoChromaSubsamplingFlagBitsKHR::eMonochrome )
12310       result += "Monochrome | ";
12311     if ( value & VideoChromaSubsamplingFlagBitsKHR::e420 )
12312       result += "420 | ";
12313     if ( value & VideoChromaSubsamplingFlagBitsKHR::e422 )
12314       result += "422 | ";
12315     if ( value & VideoChromaSubsamplingFlagBitsKHR::e444 )
12316       result += "444 | ";
12317 
12318     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12319   }
12320 
12321   using VideoComponentBitDepthFlagsKHR = Flags<VideoComponentBitDepthFlagBitsKHR>;
12322 
12323   template <>
12324   struct FlagTraits<VideoComponentBitDepthFlagBitsKHR>
12325   {
12326     enum : VkFlags
12327     {
12328       allFlags = VkFlags( VideoComponentBitDepthFlagBitsKHR::eInvalid ) |
12329                  VkFlags( VideoComponentBitDepthFlagBitsKHR::e8 ) | VkFlags( VideoComponentBitDepthFlagBitsKHR::e10 ) |
12330                  VkFlags( VideoComponentBitDepthFlagBitsKHR::e12 )
12331     };
12332   };
12333 
12334   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoComponentBitDepthFlagsKHR
operator |(VideoComponentBitDepthFlagBitsKHR bit0,VideoComponentBitDepthFlagBitsKHR bit1)12335     operator|( VideoComponentBitDepthFlagBitsKHR bit0, VideoComponentBitDepthFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12336   {
12337     return VideoComponentBitDepthFlagsKHR( bit0 ) | bit1;
12338   }
12339 
12340   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoComponentBitDepthFlagsKHR
operator &(VideoComponentBitDepthFlagBitsKHR bit0,VideoComponentBitDepthFlagBitsKHR bit1)12341     operator&( VideoComponentBitDepthFlagBitsKHR bit0, VideoComponentBitDepthFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12342   {
12343     return VideoComponentBitDepthFlagsKHR( bit0 ) & bit1;
12344   }
12345 
12346   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoComponentBitDepthFlagsKHR
operator ^(VideoComponentBitDepthFlagBitsKHR bit0,VideoComponentBitDepthFlagBitsKHR bit1)12347     operator^( VideoComponentBitDepthFlagBitsKHR bit0, VideoComponentBitDepthFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12348   {
12349     return VideoComponentBitDepthFlagsKHR( bit0 ) ^ bit1;
12350   }
12351 
12352   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoComponentBitDepthFlagsKHR
operator ~(VideoComponentBitDepthFlagBitsKHR bits)12353     operator~( VideoComponentBitDepthFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
12354   {
12355     return ~( VideoComponentBitDepthFlagsKHR( bits ) );
12356   }
12357 
to_string(VideoComponentBitDepthFlagsKHR value)12358   VULKAN_HPP_INLINE std::string to_string( VideoComponentBitDepthFlagsKHR value )
12359   {
12360     if ( !value )
12361       return "{}";
12362 
12363     std::string result;
12364     if ( value & VideoComponentBitDepthFlagBitsKHR::e8 )
12365       result += "8 | ";
12366     if ( value & VideoComponentBitDepthFlagBitsKHR::e10 )
12367       result += "10 | ";
12368     if ( value & VideoComponentBitDepthFlagBitsKHR::e12 )
12369       result += "12 | ";
12370 
12371     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12372   }
12373 
12374   using VideoCapabilityFlagsKHR = Flags<VideoCapabilityFlagBitsKHR>;
12375 
12376   template <>
12377   struct FlagTraits<VideoCapabilityFlagBitsKHR>
12378   {
12379     enum : VkFlags
12380     {
12381       allFlags = VkFlags( VideoCapabilityFlagBitsKHR::eProtectedContent ) |
12382                  VkFlags( VideoCapabilityFlagBitsKHR::eSeparateReferenceImages )
12383     };
12384   };
12385 
12386   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilityFlagsKHR
operator |(VideoCapabilityFlagBitsKHR bit0,VideoCapabilityFlagBitsKHR bit1)12387     operator|( VideoCapabilityFlagBitsKHR bit0, VideoCapabilityFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12388   {
12389     return VideoCapabilityFlagsKHR( bit0 ) | bit1;
12390   }
12391 
12392   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilityFlagsKHR
operator &(VideoCapabilityFlagBitsKHR bit0,VideoCapabilityFlagBitsKHR bit1)12393     operator&( VideoCapabilityFlagBitsKHR bit0, VideoCapabilityFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12394   {
12395     return VideoCapabilityFlagsKHR( bit0 ) & bit1;
12396   }
12397 
12398   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilityFlagsKHR
operator ^(VideoCapabilityFlagBitsKHR bit0,VideoCapabilityFlagBitsKHR bit1)12399     operator^( VideoCapabilityFlagBitsKHR bit0, VideoCapabilityFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12400   {
12401     return VideoCapabilityFlagsKHR( bit0 ) ^ bit1;
12402   }
12403 
operator ~(VideoCapabilityFlagBitsKHR bits)12404   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilityFlagsKHR operator~( VideoCapabilityFlagBitsKHR bits )
12405     VULKAN_HPP_NOEXCEPT
12406   {
12407     return ~( VideoCapabilityFlagsKHR( bits ) );
12408   }
12409 
to_string(VideoCapabilityFlagsKHR value)12410   VULKAN_HPP_INLINE std::string to_string( VideoCapabilityFlagsKHR value )
12411   {
12412     if ( !value )
12413       return "{}";
12414 
12415     std::string result;
12416     if ( value & VideoCapabilityFlagBitsKHR::eProtectedContent )
12417       result += "ProtectedContent | ";
12418     if ( value & VideoCapabilityFlagBitsKHR::eSeparateReferenceImages )
12419       result += "SeparateReferenceImages | ";
12420 
12421     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12422   }
12423 
12424   using VideoSessionCreateFlagsKHR = Flags<VideoSessionCreateFlagBitsKHR>;
12425 
12426   template <>
12427   struct FlagTraits<VideoSessionCreateFlagBitsKHR>
12428   {
12429     enum : VkFlags
12430     {
12431       allFlags =
12432         VkFlags( VideoSessionCreateFlagBitsKHR::eDefault ) | VkFlags( VideoSessionCreateFlagBitsKHR::eProtectedContent )
12433     };
12434   };
12435 
12436   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoSessionCreateFlagsKHR
operator |(VideoSessionCreateFlagBitsKHR bit0,VideoSessionCreateFlagBitsKHR bit1)12437     operator|( VideoSessionCreateFlagBitsKHR bit0, VideoSessionCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12438   {
12439     return VideoSessionCreateFlagsKHR( bit0 ) | bit1;
12440   }
12441 
12442   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoSessionCreateFlagsKHR
operator &(VideoSessionCreateFlagBitsKHR bit0,VideoSessionCreateFlagBitsKHR bit1)12443     operator&( VideoSessionCreateFlagBitsKHR bit0, VideoSessionCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12444   {
12445     return VideoSessionCreateFlagsKHR( bit0 ) & bit1;
12446   }
12447 
12448   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoSessionCreateFlagsKHR
operator ^(VideoSessionCreateFlagBitsKHR bit0,VideoSessionCreateFlagBitsKHR bit1)12449     operator^( VideoSessionCreateFlagBitsKHR bit0, VideoSessionCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12450   {
12451     return VideoSessionCreateFlagsKHR( bit0 ) ^ bit1;
12452   }
12453 
operator ~(VideoSessionCreateFlagBitsKHR bits)12454   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoSessionCreateFlagsKHR operator~( VideoSessionCreateFlagBitsKHR bits )
12455     VULKAN_HPP_NOEXCEPT
12456   {
12457     return ~( VideoSessionCreateFlagsKHR( bits ) );
12458   }
12459 
to_string(VideoSessionCreateFlagsKHR value)12460   VULKAN_HPP_INLINE std::string to_string( VideoSessionCreateFlagsKHR value )
12461   {
12462     if ( !value )
12463       return "{}";
12464 
12465     std::string result;
12466     if ( value & VideoSessionCreateFlagBitsKHR::eProtectedContent )
12467       result += "ProtectedContent | ";
12468 
12469     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12470   }
12471 
12472   using VideoBeginCodingFlagsKHR = Flags<VideoBeginCodingFlagBitsKHR>;
12473 
to_string(VideoBeginCodingFlagsKHR)12474   VULKAN_HPP_INLINE std::string to_string( VideoBeginCodingFlagsKHR )
12475   {
12476     return "{}";
12477   }
12478 
12479   using VideoEndCodingFlagsKHR = Flags<VideoEndCodingFlagBitsKHR>;
12480 
to_string(VideoEndCodingFlagsKHR)12481   VULKAN_HPP_INLINE std::string to_string( VideoEndCodingFlagsKHR )
12482   {
12483     return "{}";
12484   }
12485 
12486   using VideoCodingControlFlagsKHR = Flags<VideoCodingControlFlagBitsKHR>;
12487 
12488   template <>
12489   struct FlagTraits<VideoCodingControlFlagBitsKHR>
12490   {
12491     enum : VkFlags
12492     {
12493       allFlags = VkFlags( VideoCodingControlFlagBitsKHR::eDefault ) | VkFlags( VideoCodingControlFlagBitsKHR::eReset )
12494     };
12495   };
12496 
12497   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingControlFlagsKHR
operator |(VideoCodingControlFlagBitsKHR bit0,VideoCodingControlFlagBitsKHR bit1)12498     operator|( VideoCodingControlFlagBitsKHR bit0, VideoCodingControlFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12499   {
12500     return VideoCodingControlFlagsKHR( bit0 ) | bit1;
12501   }
12502 
12503   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingControlFlagsKHR
operator &(VideoCodingControlFlagBitsKHR bit0,VideoCodingControlFlagBitsKHR bit1)12504     operator&( VideoCodingControlFlagBitsKHR bit0, VideoCodingControlFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12505   {
12506     return VideoCodingControlFlagsKHR( bit0 ) & bit1;
12507   }
12508 
12509   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingControlFlagsKHR
operator ^(VideoCodingControlFlagBitsKHR bit0,VideoCodingControlFlagBitsKHR bit1)12510     operator^( VideoCodingControlFlagBitsKHR bit0, VideoCodingControlFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12511   {
12512     return VideoCodingControlFlagsKHR( bit0 ) ^ bit1;
12513   }
12514 
operator ~(VideoCodingControlFlagBitsKHR bits)12515   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingControlFlagsKHR operator~( VideoCodingControlFlagBitsKHR bits )
12516     VULKAN_HPP_NOEXCEPT
12517   {
12518     return ~( VideoCodingControlFlagsKHR( bits ) );
12519   }
12520 
to_string(VideoCodingControlFlagsKHR value)12521   VULKAN_HPP_INLINE std::string to_string( VideoCodingControlFlagsKHR value )
12522   {
12523     if ( !value )
12524       return "{}";
12525 
12526     std::string result;
12527     if ( value & VideoCodingControlFlagBitsKHR::eReset )
12528       result += "Reset | ";
12529 
12530     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12531   }
12532 
12533   using VideoCodingQualityPresetFlagsKHR = Flags<VideoCodingQualityPresetFlagBitsKHR>;
12534 
12535   template <>
12536   struct FlagTraits<VideoCodingQualityPresetFlagBitsKHR>
12537   {
12538     enum : VkFlags
12539     {
12540       allFlags = VkFlags( VideoCodingQualityPresetFlagBitsKHR::eNormal ) |
12541                  VkFlags( VideoCodingQualityPresetFlagBitsKHR::ePower ) |
12542                  VkFlags( VideoCodingQualityPresetFlagBitsKHR::eQuality )
12543     };
12544   };
12545 
12546   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingQualityPresetFlagsKHR
operator |(VideoCodingQualityPresetFlagBitsKHR bit0,VideoCodingQualityPresetFlagBitsKHR bit1)12547     operator|( VideoCodingQualityPresetFlagBitsKHR bit0, VideoCodingQualityPresetFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12548   {
12549     return VideoCodingQualityPresetFlagsKHR( bit0 ) | bit1;
12550   }
12551 
12552   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingQualityPresetFlagsKHR
operator &(VideoCodingQualityPresetFlagBitsKHR bit0,VideoCodingQualityPresetFlagBitsKHR bit1)12553     operator&( VideoCodingQualityPresetFlagBitsKHR bit0, VideoCodingQualityPresetFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12554   {
12555     return VideoCodingQualityPresetFlagsKHR( bit0 ) & bit1;
12556   }
12557 
12558   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingQualityPresetFlagsKHR
operator ^(VideoCodingQualityPresetFlagBitsKHR bit0,VideoCodingQualityPresetFlagBitsKHR bit1)12559     operator^( VideoCodingQualityPresetFlagBitsKHR bit0, VideoCodingQualityPresetFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12560   {
12561     return VideoCodingQualityPresetFlagsKHR( bit0 ) ^ bit1;
12562   }
12563 
12564   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingQualityPresetFlagsKHR
operator ~(VideoCodingQualityPresetFlagBitsKHR bits)12565     operator~( VideoCodingQualityPresetFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
12566   {
12567     return ~( VideoCodingQualityPresetFlagsKHR( bits ) );
12568   }
12569 
to_string(VideoCodingQualityPresetFlagsKHR value)12570   VULKAN_HPP_INLINE std::string to_string( VideoCodingQualityPresetFlagsKHR value )
12571   {
12572     if ( !value )
12573       return "{}";
12574 
12575     std::string result;
12576     if ( value & VideoCodingQualityPresetFlagBitsKHR::eNormal )
12577       result += "Normal | ";
12578     if ( value & VideoCodingQualityPresetFlagBitsKHR::ePower )
12579       result += "Power | ";
12580     if ( value & VideoCodingQualityPresetFlagBitsKHR::eQuality )
12581       result += "Quality | ";
12582 
12583     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12584   }
12585 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
12586 
12587 #if defined( VK_ENABLE_BETA_EXTENSIONS )
12588   //=== VK_KHR_video_decode_queue ===
12589 
12590   using VideoDecodeFlagsKHR = Flags<VideoDecodeFlagBitsKHR>;
12591 
12592   template <>
12593   struct FlagTraits<VideoDecodeFlagBitsKHR>
12594   {
12595     enum : VkFlags
12596     {
12597       allFlags = VkFlags( VideoDecodeFlagBitsKHR::eDefault ) | VkFlags( VideoDecodeFlagBitsKHR::eReserved0 )
12598     };
12599   };
12600 
12601   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeFlagsKHR
operator |(VideoDecodeFlagBitsKHR bit0,VideoDecodeFlagBitsKHR bit1)12602     operator|( VideoDecodeFlagBitsKHR bit0, VideoDecodeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12603   {
12604     return VideoDecodeFlagsKHR( bit0 ) | bit1;
12605   }
12606 
12607   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeFlagsKHR
operator &(VideoDecodeFlagBitsKHR bit0,VideoDecodeFlagBitsKHR bit1)12608     operator&( VideoDecodeFlagBitsKHR bit0, VideoDecodeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12609   {
12610     return VideoDecodeFlagsKHR( bit0 ) & bit1;
12611   }
12612 
12613   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeFlagsKHR
operator ^(VideoDecodeFlagBitsKHR bit0,VideoDecodeFlagBitsKHR bit1)12614     operator^( VideoDecodeFlagBitsKHR bit0, VideoDecodeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12615   {
12616     return VideoDecodeFlagsKHR( bit0 ) ^ bit1;
12617   }
12618 
operator ~(VideoDecodeFlagBitsKHR bits)12619   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeFlagsKHR operator~( VideoDecodeFlagBitsKHR bits )
12620     VULKAN_HPP_NOEXCEPT
12621   {
12622     return ~( VideoDecodeFlagsKHR( bits ) );
12623   }
12624 
to_string(VideoDecodeFlagsKHR value)12625   VULKAN_HPP_INLINE std::string to_string( VideoDecodeFlagsKHR value )
12626   {
12627     if ( !value )
12628       return "{}";
12629 
12630     std::string result;
12631     if ( value & VideoDecodeFlagBitsKHR::eReserved0 )
12632       result += "Reserved0 | ";
12633 
12634     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12635   }
12636 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
12637 
12638   //=== VK_EXT_transform_feedback ===
12639 
12640   using PipelineRasterizationStateStreamCreateFlagsEXT = Flags<PipelineRasterizationStateStreamCreateFlagBitsEXT>;
12641 
to_string(PipelineRasterizationStateStreamCreateFlagsEXT)12642   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagsEXT )
12643   {
12644     return "{}";
12645   }
12646 
12647 #if defined( VK_ENABLE_BETA_EXTENSIONS )
12648   //=== VK_EXT_video_encode_h264 ===
12649 
12650   using VideoEncodeH264CapabilityFlagsEXT = Flags<VideoEncodeH264CapabilityFlagBitsEXT>;
12651 
12652   template <>
12653   struct FlagTraits<VideoEncodeH264CapabilityFlagBitsEXT>
12654   {
12655     enum : VkFlags
12656     {
12657       allFlags = VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eCabac ) |
12658                  VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eCavlc ) |
12659                  VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eWeightedBiPredImplicit ) |
12660                  VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eTransform8X8 ) |
12661                  VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eChromaQpOffset ) |
12662                  VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eSecondChromaQpOffset ) |
12663                  VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterDisabled ) |
12664                  VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterEnabled ) |
12665                  VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterPartial ) |
12666                  VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eMultipleSlicePerFrame ) |
12667                  VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eEvenlyDistributedSliceSize )
12668     };
12669   };
12670 
operator |(VideoEncodeH264CapabilityFlagBitsEXT bit0,VideoEncodeH264CapabilityFlagBitsEXT bit1)12671   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilityFlagsEXT operator|(
12672     VideoEncodeH264CapabilityFlagBitsEXT bit0, VideoEncodeH264CapabilityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12673   {
12674     return VideoEncodeH264CapabilityFlagsEXT( bit0 ) | bit1;
12675   }
12676 
operator &(VideoEncodeH264CapabilityFlagBitsEXT bit0,VideoEncodeH264CapabilityFlagBitsEXT bit1)12677   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilityFlagsEXT operator&(
12678     VideoEncodeH264CapabilityFlagBitsEXT bit0, VideoEncodeH264CapabilityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12679   {
12680     return VideoEncodeH264CapabilityFlagsEXT( bit0 ) & bit1;
12681   }
12682 
operator ^(VideoEncodeH264CapabilityFlagBitsEXT bit0,VideoEncodeH264CapabilityFlagBitsEXT bit1)12683   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilityFlagsEXT operator^(
12684     VideoEncodeH264CapabilityFlagBitsEXT bit0, VideoEncodeH264CapabilityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12685   {
12686     return VideoEncodeH264CapabilityFlagsEXT( bit0 ) ^ bit1;
12687   }
12688 
12689   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilityFlagsEXT
operator ~(VideoEncodeH264CapabilityFlagBitsEXT bits)12690     operator~( VideoEncodeH264CapabilityFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12691   {
12692     return ~( VideoEncodeH264CapabilityFlagsEXT( bits ) );
12693   }
12694 
to_string(VideoEncodeH264CapabilityFlagsEXT value)12695   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CapabilityFlagsEXT value )
12696   {
12697     if ( !value )
12698       return "{}";
12699 
12700     std::string result;
12701     if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eCabac )
12702       result += "Cabac | ";
12703     if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eCavlc )
12704       result += "Cavlc | ";
12705     if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eWeightedBiPredImplicit )
12706       result += "WeightedBiPredImplicit | ";
12707     if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eTransform8X8 )
12708       result += "Transform8X8 | ";
12709     if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eChromaQpOffset )
12710       result += "ChromaQpOffset | ";
12711     if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eSecondChromaQpOffset )
12712       result += "SecondChromaQpOffset | ";
12713     if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterDisabled )
12714       result += "DeblockingFilterDisabled | ";
12715     if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterEnabled )
12716       result += "DeblockingFilterEnabled | ";
12717     if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterPartial )
12718       result += "DeblockingFilterPartial | ";
12719     if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eMultipleSlicePerFrame )
12720       result += "MultipleSlicePerFrame | ";
12721     if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eEvenlyDistributedSliceSize )
12722       result += "EvenlyDistributedSliceSize | ";
12723 
12724     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12725   }
12726 
12727   using VideoEncodeH264InputModeFlagsEXT = Flags<VideoEncodeH264InputModeFlagBitsEXT>;
12728 
12729   template <>
12730   struct FlagTraits<VideoEncodeH264InputModeFlagBitsEXT>
12731   {
12732     enum : VkFlags
12733     {
12734       allFlags = VkFlags( VideoEncodeH264InputModeFlagBitsEXT::eFrame ) |
12735                  VkFlags( VideoEncodeH264InputModeFlagBitsEXT::eSlice ) |
12736                  VkFlags( VideoEncodeH264InputModeFlagBitsEXT::eNonVcl )
12737     };
12738   };
12739 
12740   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264InputModeFlagsEXT
operator |(VideoEncodeH264InputModeFlagBitsEXT bit0,VideoEncodeH264InputModeFlagBitsEXT bit1)12741     operator|( VideoEncodeH264InputModeFlagBitsEXT bit0, VideoEncodeH264InputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12742   {
12743     return VideoEncodeH264InputModeFlagsEXT( bit0 ) | bit1;
12744   }
12745 
12746   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264InputModeFlagsEXT
operator &(VideoEncodeH264InputModeFlagBitsEXT bit0,VideoEncodeH264InputModeFlagBitsEXT bit1)12747     operator&( VideoEncodeH264InputModeFlagBitsEXT bit0, VideoEncodeH264InputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12748   {
12749     return VideoEncodeH264InputModeFlagsEXT( bit0 ) & bit1;
12750   }
12751 
12752   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264InputModeFlagsEXT
operator ^(VideoEncodeH264InputModeFlagBitsEXT bit0,VideoEncodeH264InputModeFlagBitsEXT bit1)12753     operator^( VideoEncodeH264InputModeFlagBitsEXT bit0, VideoEncodeH264InputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12754   {
12755     return VideoEncodeH264InputModeFlagsEXT( bit0 ) ^ bit1;
12756   }
12757 
12758   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264InputModeFlagsEXT
operator ~(VideoEncodeH264InputModeFlagBitsEXT bits)12759     operator~( VideoEncodeH264InputModeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12760   {
12761     return ~( VideoEncodeH264InputModeFlagsEXT( bits ) );
12762   }
12763 
to_string(VideoEncodeH264InputModeFlagsEXT value)12764   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264InputModeFlagsEXT value )
12765   {
12766     if ( !value )
12767       return "{}";
12768 
12769     std::string result;
12770     if ( value & VideoEncodeH264InputModeFlagBitsEXT::eFrame )
12771       result += "Frame | ";
12772     if ( value & VideoEncodeH264InputModeFlagBitsEXT::eSlice )
12773       result += "Slice | ";
12774     if ( value & VideoEncodeH264InputModeFlagBitsEXT::eNonVcl )
12775       result += "NonVcl | ";
12776 
12777     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12778   }
12779 
12780   using VideoEncodeH264OutputModeFlagsEXT = Flags<VideoEncodeH264OutputModeFlagBitsEXT>;
12781 
12782   template <>
12783   struct FlagTraits<VideoEncodeH264OutputModeFlagBitsEXT>
12784   {
12785     enum : VkFlags
12786     {
12787       allFlags = VkFlags( VideoEncodeH264OutputModeFlagBitsEXT::eFrame ) |
12788                  VkFlags( VideoEncodeH264OutputModeFlagBitsEXT::eSlice ) |
12789                  VkFlags( VideoEncodeH264OutputModeFlagBitsEXT::eNonVcl )
12790     };
12791   };
12792 
operator |(VideoEncodeH264OutputModeFlagBitsEXT bit0,VideoEncodeH264OutputModeFlagBitsEXT bit1)12793   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264OutputModeFlagsEXT operator|(
12794     VideoEncodeH264OutputModeFlagBitsEXT bit0, VideoEncodeH264OutputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12795   {
12796     return VideoEncodeH264OutputModeFlagsEXT( bit0 ) | bit1;
12797   }
12798 
operator &(VideoEncodeH264OutputModeFlagBitsEXT bit0,VideoEncodeH264OutputModeFlagBitsEXT bit1)12799   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264OutputModeFlagsEXT operator&(
12800     VideoEncodeH264OutputModeFlagBitsEXT bit0, VideoEncodeH264OutputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12801   {
12802     return VideoEncodeH264OutputModeFlagsEXT( bit0 ) & bit1;
12803   }
12804 
operator ^(VideoEncodeH264OutputModeFlagBitsEXT bit0,VideoEncodeH264OutputModeFlagBitsEXT bit1)12805   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264OutputModeFlagsEXT operator^(
12806     VideoEncodeH264OutputModeFlagBitsEXT bit0, VideoEncodeH264OutputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12807   {
12808     return VideoEncodeH264OutputModeFlagsEXT( bit0 ) ^ bit1;
12809   }
12810 
12811   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264OutputModeFlagsEXT
operator ~(VideoEncodeH264OutputModeFlagBitsEXT bits)12812     operator~( VideoEncodeH264OutputModeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12813   {
12814     return ~( VideoEncodeH264OutputModeFlagsEXT( bits ) );
12815   }
12816 
to_string(VideoEncodeH264OutputModeFlagsEXT value)12817   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264OutputModeFlagsEXT value )
12818   {
12819     if ( !value )
12820       return "{}";
12821 
12822     std::string result;
12823     if ( value & VideoEncodeH264OutputModeFlagBitsEXT::eFrame )
12824       result += "Frame | ";
12825     if ( value & VideoEncodeH264OutputModeFlagBitsEXT::eSlice )
12826       result += "Slice | ";
12827     if ( value & VideoEncodeH264OutputModeFlagBitsEXT::eNonVcl )
12828       result += "NonVcl | ";
12829 
12830     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12831   }
12832 
12833   using VideoEncodeH264CreateFlagsEXT = Flags<VideoEncodeH264CreateFlagBitsEXT>;
12834 
12835   template <>
12836   struct FlagTraits<VideoEncodeH264CreateFlagBitsEXT>
12837   {
12838     enum : VkFlags
12839     {
12840       allFlags =
12841         VkFlags( VideoEncodeH264CreateFlagBitsEXT::eDefault ) | VkFlags( VideoEncodeH264CreateFlagBitsEXT::eReserved0 )
12842     };
12843   };
12844 
12845   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CreateFlagsEXT
operator |(VideoEncodeH264CreateFlagBitsEXT bit0,VideoEncodeH264CreateFlagBitsEXT bit1)12846     operator|( VideoEncodeH264CreateFlagBitsEXT bit0, VideoEncodeH264CreateFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12847   {
12848     return VideoEncodeH264CreateFlagsEXT( bit0 ) | bit1;
12849   }
12850 
12851   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CreateFlagsEXT
operator &(VideoEncodeH264CreateFlagBitsEXT bit0,VideoEncodeH264CreateFlagBitsEXT bit1)12852     operator&( VideoEncodeH264CreateFlagBitsEXT bit0, VideoEncodeH264CreateFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12853   {
12854     return VideoEncodeH264CreateFlagsEXT( bit0 ) & bit1;
12855   }
12856 
12857   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CreateFlagsEXT
operator ^(VideoEncodeH264CreateFlagBitsEXT bit0,VideoEncodeH264CreateFlagBitsEXT bit1)12858     operator^( VideoEncodeH264CreateFlagBitsEXT bit0, VideoEncodeH264CreateFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12859   {
12860     return VideoEncodeH264CreateFlagsEXT( bit0 ) ^ bit1;
12861   }
12862 
12863   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CreateFlagsEXT
operator ~(VideoEncodeH264CreateFlagBitsEXT bits)12864     operator~( VideoEncodeH264CreateFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12865   {
12866     return ~( VideoEncodeH264CreateFlagsEXT( bits ) );
12867   }
12868 
to_string(VideoEncodeH264CreateFlagsEXT value)12869   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CreateFlagsEXT value )
12870   {
12871     if ( !value )
12872       return "{}";
12873 
12874     std::string result;
12875     if ( value & VideoEncodeH264CreateFlagBitsEXT::eReserved0 )
12876       result += "Reserved0 | ";
12877 
12878     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12879   }
12880 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
12881 
12882 #if defined( VK_ENABLE_BETA_EXTENSIONS )
12883   //=== VK_EXT_video_encode_h265 ===
12884 
12885   using VideoEncodeH265CapabilityFlagsEXT = Flags<VideoEncodeH265CapabilityFlagBitsEXT>;
12886 
to_string(VideoEncodeH265CapabilityFlagsEXT)12887   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CapabilityFlagsEXT )
12888   {
12889     return "{}";
12890   }
12891 
12892   using VideoEncodeH265InputModeFlagsEXT = Flags<VideoEncodeH265InputModeFlagBitsEXT>;
12893 
12894   template <>
12895   struct FlagTraits<VideoEncodeH265InputModeFlagBitsEXT>
12896   {
12897     enum : VkFlags
12898     {
12899       allFlags = VkFlags( VideoEncodeH265InputModeFlagBitsEXT::eFrame ) |
12900                  VkFlags( VideoEncodeH265InputModeFlagBitsEXT::eSlice ) |
12901                  VkFlags( VideoEncodeH265InputModeFlagBitsEXT::eNonVcl )
12902     };
12903   };
12904 
12905   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265InputModeFlagsEXT
operator |(VideoEncodeH265InputModeFlagBitsEXT bit0,VideoEncodeH265InputModeFlagBitsEXT bit1)12906     operator|( VideoEncodeH265InputModeFlagBitsEXT bit0, VideoEncodeH265InputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12907   {
12908     return VideoEncodeH265InputModeFlagsEXT( bit0 ) | bit1;
12909   }
12910 
12911   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265InputModeFlagsEXT
operator &(VideoEncodeH265InputModeFlagBitsEXT bit0,VideoEncodeH265InputModeFlagBitsEXT bit1)12912     operator&( VideoEncodeH265InputModeFlagBitsEXT bit0, VideoEncodeH265InputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12913   {
12914     return VideoEncodeH265InputModeFlagsEXT( bit0 ) & bit1;
12915   }
12916 
12917   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265InputModeFlagsEXT
operator ^(VideoEncodeH265InputModeFlagBitsEXT bit0,VideoEncodeH265InputModeFlagBitsEXT bit1)12918     operator^( VideoEncodeH265InputModeFlagBitsEXT bit0, VideoEncodeH265InputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12919   {
12920     return VideoEncodeH265InputModeFlagsEXT( bit0 ) ^ bit1;
12921   }
12922 
12923   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265InputModeFlagsEXT
operator ~(VideoEncodeH265InputModeFlagBitsEXT bits)12924     operator~( VideoEncodeH265InputModeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12925   {
12926     return ~( VideoEncodeH265InputModeFlagsEXT( bits ) );
12927   }
12928 
to_string(VideoEncodeH265InputModeFlagsEXT value)12929   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265InputModeFlagsEXT value )
12930   {
12931     if ( !value )
12932       return "{}";
12933 
12934     std::string result;
12935     if ( value & VideoEncodeH265InputModeFlagBitsEXT::eFrame )
12936       result += "Frame | ";
12937     if ( value & VideoEncodeH265InputModeFlagBitsEXT::eSlice )
12938       result += "Slice | ";
12939     if ( value & VideoEncodeH265InputModeFlagBitsEXT::eNonVcl )
12940       result += "NonVcl | ";
12941 
12942     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12943   }
12944 
12945   using VideoEncodeH265OutputModeFlagsEXT = Flags<VideoEncodeH265OutputModeFlagBitsEXT>;
12946 
12947   template <>
12948   struct FlagTraits<VideoEncodeH265OutputModeFlagBitsEXT>
12949   {
12950     enum : VkFlags
12951     {
12952       allFlags = VkFlags( VideoEncodeH265OutputModeFlagBitsEXT::eFrame ) |
12953                  VkFlags( VideoEncodeH265OutputModeFlagBitsEXT::eSlice ) |
12954                  VkFlags( VideoEncodeH265OutputModeFlagBitsEXT::eNonVcl )
12955     };
12956   };
12957 
operator |(VideoEncodeH265OutputModeFlagBitsEXT bit0,VideoEncodeH265OutputModeFlagBitsEXT bit1)12958   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265OutputModeFlagsEXT operator|(
12959     VideoEncodeH265OutputModeFlagBitsEXT bit0, VideoEncodeH265OutputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12960   {
12961     return VideoEncodeH265OutputModeFlagsEXT( bit0 ) | bit1;
12962   }
12963 
operator &(VideoEncodeH265OutputModeFlagBitsEXT bit0,VideoEncodeH265OutputModeFlagBitsEXT bit1)12964   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265OutputModeFlagsEXT operator&(
12965     VideoEncodeH265OutputModeFlagBitsEXT bit0, VideoEncodeH265OutputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12966   {
12967     return VideoEncodeH265OutputModeFlagsEXT( bit0 ) & bit1;
12968   }
12969 
operator ^(VideoEncodeH265OutputModeFlagBitsEXT bit0,VideoEncodeH265OutputModeFlagBitsEXT bit1)12970   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265OutputModeFlagsEXT operator^(
12971     VideoEncodeH265OutputModeFlagBitsEXT bit0, VideoEncodeH265OutputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12972   {
12973     return VideoEncodeH265OutputModeFlagsEXT( bit0 ) ^ bit1;
12974   }
12975 
12976   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265OutputModeFlagsEXT
operator ~(VideoEncodeH265OutputModeFlagBitsEXT bits)12977     operator~( VideoEncodeH265OutputModeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12978   {
12979     return ~( VideoEncodeH265OutputModeFlagsEXT( bits ) );
12980   }
12981 
to_string(VideoEncodeH265OutputModeFlagsEXT value)12982   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265OutputModeFlagsEXT value )
12983   {
12984     if ( !value )
12985       return "{}";
12986 
12987     std::string result;
12988     if ( value & VideoEncodeH265OutputModeFlagBitsEXT::eFrame )
12989       result += "Frame | ";
12990     if ( value & VideoEncodeH265OutputModeFlagBitsEXT::eSlice )
12991       result += "Slice | ";
12992     if ( value & VideoEncodeH265OutputModeFlagBitsEXT::eNonVcl )
12993       result += "NonVcl | ";
12994 
12995     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12996   }
12997 
12998   using VideoEncodeH265CreateFlagsEXT = Flags<VideoEncodeH265CreateFlagBitsEXT>;
12999 
to_string(VideoEncodeH265CreateFlagsEXT)13000   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CreateFlagsEXT )
13001   {
13002     return "{}";
13003   }
13004 
13005   using VideoEncodeH265CtbSizeFlagsEXT = Flags<VideoEncodeH265CtbSizeFlagBitsEXT>;
13006 
13007   template <>
13008   struct FlagTraits<VideoEncodeH265CtbSizeFlagBitsEXT>
13009   {
13010     enum : VkFlags
13011     {
13012       allFlags = VkFlags( VideoEncodeH265CtbSizeFlagBitsEXT::e8 ) | VkFlags( VideoEncodeH265CtbSizeFlagBitsEXT::e16 ) |
13013                  VkFlags( VideoEncodeH265CtbSizeFlagBitsEXT::e32 ) | VkFlags( VideoEncodeH265CtbSizeFlagBitsEXT::e64 )
13014     };
13015   };
13016 
13017   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265CtbSizeFlagsEXT
operator |(VideoEncodeH265CtbSizeFlagBitsEXT bit0,VideoEncodeH265CtbSizeFlagBitsEXT bit1)13018     operator|( VideoEncodeH265CtbSizeFlagBitsEXT bit0, VideoEncodeH265CtbSizeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13019   {
13020     return VideoEncodeH265CtbSizeFlagsEXT( bit0 ) | bit1;
13021   }
13022 
13023   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265CtbSizeFlagsEXT
operator &(VideoEncodeH265CtbSizeFlagBitsEXT bit0,VideoEncodeH265CtbSizeFlagBitsEXT bit1)13024     operator&( VideoEncodeH265CtbSizeFlagBitsEXT bit0, VideoEncodeH265CtbSizeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13025   {
13026     return VideoEncodeH265CtbSizeFlagsEXT( bit0 ) & bit1;
13027   }
13028 
13029   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265CtbSizeFlagsEXT
operator ^(VideoEncodeH265CtbSizeFlagBitsEXT bit0,VideoEncodeH265CtbSizeFlagBitsEXT bit1)13030     operator^( VideoEncodeH265CtbSizeFlagBitsEXT bit0, VideoEncodeH265CtbSizeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13031   {
13032     return VideoEncodeH265CtbSizeFlagsEXT( bit0 ) ^ bit1;
13033   }
13034 
13035   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265CtbSizeFlagsEXT
operator ~(VideoEncodeH265CtbSizeFlagBitsEXT bits)13036     operator~( VideoEncodeH265CtbSizeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
13037   {
13038     return ~( VideoEncodeH265CtbSizeFlagsEXT( bits ) );
13039   }
13040 
to_string(VideoEncodeH265CtbSizeFlagsEXT value)13041   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CtbSizeFlagsEXT value )
13042   {
13043     if ( !value )
13044       return "{}";
13045 
13046     std::string result;
13047     if ( value & VideoEncodeH265CtbSizeFlagBitsEXT::e8 )
13048       result += "8 | ";
13049     if ( value & VideoEncodeH265CtbSizeFlagBitsEXT::e16 )
13050       result += "16 | ";
13051     if ( value & VideoEncodeH265CtbSizeFlagBitsEXT::e32 )
13052       result += "32 | ";
13053     if ( value & VideoEncodeH265CtbSizeFlagBitsEXT::e64 )
13054       result += "64 | ";
13055 
13056     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13057   }
13058 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13059 
13060 #if defined( VK_ENABLE_BETA_EXTENSIONS )
13061   //=== VK_EXT_video_decode_h264 ===
13062 
13063   using VideoDecodeH264PictureLayoutFlagsEXT = Flags<VideoDecodeH264PictureLayoutFlagBitsEXT>;
13064 
13065   template <>
13066   struct FlagTraits<VideoDecodeH264PictureLayoutFlagBitsEXT>
13067   {
13068     enum : VkFlags
13069     {
13070       allFlags = VkFlags( VideoDecodeH264PictureLayoutFlagBitsEXT::eProgressive ) |
13071                  VkFlags( VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedInterleavedLines ) |
13072                  VkFlags( VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedSeparatePlanes )
13073     };
13074   };
13075 
operator |(VideoDecodeH264PictureLayoutFlagBitsEXT bit0,VideoDecodeH264PictureLayoutFlagBitsEXT bit1)13076   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264PictureLayoutFlagsEXT operator|(
13077     VideoDecodeH264PictureLayoutFlagBitsEXT bit0, VideoDecodeH264PictureLayoutFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13078   {
13079     return VideoDecodeH264PictureLayoutFlagsEXT( bit0 ) | bit1;
13080   }
13081 
operator &(VideoDecodeH264PictureLayoutFlagBitsEXT bit0,VideoDecodeH264PictureLayoutFlagBitsEXT bit1)13082   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264PictureLayoutFlagsEXT operator&(
13083     VideoDecodeH264PictureLayoutFlagBitsEXT bit0, VideoDecodeH264PictureLayoutFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13084   {
13085     return VideoDecodeH264PictureLayoutFlagsEXT( bit0 ) & bit1;
13086   }
13087 
operator ^(VideoDecodeH264PictureLayoutFlagBitsEXT bit0,VideoDecodeH264PictureLayoutFlagBitsEXT bit1)13088   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264PictureLayoutFlagsEXT operator^(
13089     VideoDecodeH264PictureLayoutFlagBitsEXT bit0, VideoDecodeH264PictureLayoutFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13090   {
13091     return VideoDecodeH264PictureLayoutFlagsEXT( bit0 ) ^ bit1;
13092   }
13093 
13094   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264PictureLayoutFlagsEXT
operator ~(VideoDecodeH264PictureLayoutFlagBitsEXT bits)13095     operator~( VideoDecodeH264PictureLayoutFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
13096   {
13097     return ~( VideoDecodeH264PictureLayoutFlagsEXT( bits ) );
13098   }
13099 
to_string(VideoDecodeH264PictureLayoutFlagsEXT value)13100   VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264PictureLayoutFlagsEXT value )
13101   {
13102     if ( !value )
13103       return "{}";
13104 
13105     std::string result;
13106     if ( value & VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedInterleavedLines )
13107       result += "InterlacedInterleavedLines | ";
13108     if ( value & VideoDecodeH264PictureLayoutFlagBitsEXT::eInterlacedSeparatePlanes )
13109       result += "InterlacedSeparatePlanes | ";
13110 
13111     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13112   }
13113 
13114   using VideoDecodeH264CreateFlagsEXT = Flags<VideoDecodeH264CreateFlagBitsEXT>;
13115 
to_string(VideoDecodeH264CreateFlagsEXT)13116   VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264CreateFlagsEXT )
13117   {
13118     return "{}";
13119   }
13120 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13121 
13122   //=== VK_KHR_dynamic_rendering ===
13123 
13124   using RenderingFlagsKHR = Flags<RenderingFlagBitsKHR>;
13125 
13126   template <>
13127   struct FlagTraits<RenderingFlagBitsKHR>
13128   {
13129     enum : VkFlags
13130     {
13131       allFlags = VkFlags( RenderingFlagBitsKHR::eContentsSecondaryCommandBuffers ) |
13132                  VkFlags( RenderingFlagBitsKHR::eSuspending ) | VkFlags( RenderingFlagBitsKHR::eResuming )
13133     };
13134   };
13135 
operator |(RenderingFlagBitsKHR bit0,RenderingFlagBitsKHR bit1)13136   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderingFlagsKHR operator|( RenderingFlagBitsKHR bit0,
13137                                                                       RenderingFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13138   {
13139     return RenderingFlagsKHR( bit0 ) | bit1;
13140   }
13141 
operator &(RenderingFlagBitsKHR bit0,RenderingFlagBitsKHR bit1)13142   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderingFlagsKHR operator&( RenderingFlagBitsKHR bit0,
13143                                                                       RenderingFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13144   {
13145     return RenderingFlagsKHR( bit0 ) & bit1;
13146   }
13147 
operator ^(RenderingFlagBitsKHR bit0,RenderingFlagBitsKHR bit1)13148   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderingFlagsKHR operator^( RenderingFlagBitsKHR bit0,
13149                                                                       RenderingFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13150   {
13151     return RenderingFlagsKHR( bit0 ) ^ bit1;
13152   }
13153 
operator ~(RenderingFlagBitsKHR bits)13154   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderingFlagsKHR operator~( RenderingFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
13155   {
13156     return ~( RenderingFlagsKHR( bits ) );
13157   }
13158 
to_string(RenderingFlagsKHR value)13159   VULKAN_HPP_INLINE std::string to_string( RenderingFlagsKHR value )
13160   {
13161     if ( !value )
13162       return "{}";
13163 
13164     std::string result;
13165     if ( value & RenderingFlagBitsKHR::eContentsSecondaryCommandBuffers )
13166       result += "ContentsSecondaryCommandBuffers | ";
13167     if ( value & RenderingFlagBitsKHR::eSuspending )
13168       result += "Suspending | ";
13169     if ( value & RenderingFlagBitsKHR::eResuming )
13170       result += "Resuming | ";
13171 
13172     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13173   }
13174 
13175 #if defined( VK_USE_PLATFORM_GGP )
13176   //=== VK_GGP_stream_descriptor_surface ===
13177 
13178   using StreamDescriptorSurfaceCreateFlagsGGP = Flags<StreamDescriptorSurfaceCreateFlagBitsGGP>;
13179 
to_string(StreamDescriptorSurfaceCreateFlagsGGP)13180   VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagsGGP )
13181   {
13182     return "{}";
13183   }
13184 #endif /*VK_USE_PLATFORM_GGP*/
13185 
13186   //=== VK_NV_external_memory_capabilities ===
13187 
13188   using ExternalMemoryHandleTypeFlagsNV = Flags<ExternalMemoryHandleTypeFlagBitsNV>;
13189 
13190   template <>
13191   struct FlagTraits<ExternalMemoryHandleTypeFlagBitsNV>
13192   {
13193     enum : VkFlags
13194     {
13195       allFlags = VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 ) |
13196                  VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt ) |
13197                  VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image ) |
13198                  VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt )
13199     };
13200   };
13201 
13202   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV
operator |(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)13203     operator|( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
13204   {
13205     return ExternalMemoryHandleTypeFlagsNV( bit0 ) | bit1;
13206   }
13207 
13208   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV
operator &(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)13209     operator&( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
13210   {
13211     return ExternalMemoryHandleTypeFlagsNV( bit0 ) & bit1;
13212   }
13213 
13214   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV
operator ^(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)13215     operator^( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
13216   {
13217     return ExternalMemoryHandleTypeFlagsNV( bit0 ) ^ bit1;
13218   }
13219 
13220   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV
operator ~(ExternalMemoryHandleTypeFlagBitsNV bits)13221     operator~( ExternalMemoryHandleTypeFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
13222   {
13223     return ~( ExternalMemoryHandleTypeFlagsNV( bits ) );
13224   }
13225 
to_string(ExternalMemoryHandleTypeFlagsNV value)13226   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagsNV value )
13227   {
13228     if ( !value )
13229       return "{}";
13230 
13231     std::string result;
13232     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 )
13233       result += "OpaqueWin32 | ";
13234     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt )
13235       result += "OpaqueWin32Kmt | ";
13236     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image )
13237       result += "D3D11Image | ";
13238     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt )
13239       result += "D3D11ImageKmt | ";
13240 
13241     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13242   }
13243 
13244   using ExternalMemoryFeatureFlagsNV = Flags<ExternalMemoryFeatureFlagBitsNV>;
13245 
13246   template <>
13247   struct FlagTraits<ExternalMemoryFeatureFlagBitsNV>
13248   {
13249     enum : VkFlags
13250     {
13251       allFlags = VkFlags( ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly ) |
13252                  VkFlags( ExternalMemoryFeatureFlagBitsNV::eExportable ) |
13253                  VkFlags( ExternalMemoryFeatureFlagBitsNV::eImportable )
13254     };
13255   };
13256 
13257   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV
operator |(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)13258     operator|( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
13259   {
13260     return ExternalMemoryFeatureFlagsNV( bit0 ) | bit1;
13261   }
13262 
13263   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV
operator &(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)13264     operator&( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
13265   {
13266     return ExternalMemoryFeatureFlagsNV( bit0 ) & bit1;
13267   }
13268 
13269   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV
operator ^(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)13270     operator^( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
13271   {
13272     return ExternalMemoryFeatureFlagsNV( bit0 ) ^ bit1;
13273   }
13274 
operator ~(ExternalMemoryFeatureFlagBitsNV bits)13275   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator~( ExternalMemoryFeatureFlagBitsNV bits )
13276     VULKAN_HPP_NOEXCEPT
13277   {
13278     return ~( ExternalMemoryFeatureFlagsNV( bits ) );
13279   }
13280 
to_string(ExternalMemoryFeatureFlagsNV value)13281   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagsNV value )
13282   {
13283     if ( !value )
13284       return "{}";
13285 
13286     std::string result;
13287     if ( value & ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly )
13288       result += "DedicatedOnly | ";
13289     if ( value & ExternalMemoryFeatureFlagBitsNV::eExportable )
13290       result += "Exportable | ";
13291     if ( value & ExternalMemoryFeatureFlagBitsNV::eImportable )
13292       result += "Importable | ";
13293 
13294     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13295   }
13296 
13297 #if defined( VK_USE_PLATFORM_VI_NN )
13298   //=== VK_NN_vi_surface ===
13299 
13300   using ViSurfaceCreateFlagsNN = Flags<ViSurfaceCreateFlagBitsNN>;
13301 
to_string(ViSurfaceCreateFlagsNN)13302   VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagsNN )
13303   {
13304     return "{}";
13305   }
13306 #endif /*VK_USE_PLATFORM_VI_NN*/
13307 
13308   //=== VK_EXT_conditional_rendering ===
13309 
13310   using ConditionalRenderingFlagsEXT = Flags<ConditionalRenderingFlagBitsEXT>;
13311 
13312   template <>
13313   struct FlagTraits<ConditionalRenderingFlagBitsEXT>
13314   {
13315     enum : VkFlags
13316     {
13317       allFlags = VkFlags( ConditionalRenderingFlagBitsEXT::eInverted )
13318     };
13319   };
13320 
13321   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT
operator |(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)13322     operator|( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13323   {
13324     return ConditionalRenderingFlagsEXT( bit0 ) | bit1;
13325   }
13326 
13327   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT
operator &(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)13328     operator&( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13329   {
13330     return ConditionalRenderingFlagsEXT( bit0 ) & bit1;
13331   }
13332 
13333   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT
operator ^(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)13334     operator^( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13335   {
13336     return ConditionalRenderingFlagsEXT( bit0 ) ^ bit1;
13337   }
13338 
operator ~(ConditionalRenderingFlagBitsEXT bits)13339   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator~( ConditionalRenderingFlagBitsEXT bits )
13340     VULKAN_HPP_NOEXCEPT
13341   {
13342     return ~( ConditionalRenderingFlagsEXT( bits ) );
13343   }
13344 
to_string(ConditionalRenderingFlagsEXT value)13345   VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagsEXT value )
13346   {
13347     if ( !value )
13348       return "{}";
13349 
13350     std::string result;
13351     if ( value & ConditionalRenderingFlagBitsEXT::eInverted )
13352       result += "Inverted | ";
13353 
13354     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13355   }
13356 
13357   //=== VK_EXT_display_surface_counter ===
13358 
13359   using SurfaceCounterFlagsEXT = Flags<SurfaceCounterFlagBitsEXT>;
13360 
13361   template <>
13362   struct FlagTraits<SurfaceCounterFlagBitsEXT>
13363   {
13364     enum : VkFlags
13365     {
13366       allFlags = VkFlags( SurfaceCounterFlagBitsEXT::eVblank )
13367     };
13368   };
13369 
13370   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT
operator |(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)13371     operator|( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13372   {
13373     return SurfaceCounterFlagsEXT( bit0 ) | bit1;
13374   }
13375 
13376   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT
operator &(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)13377     operator&( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13378   {
13379     return SurfaceCounterFlagsEXT( bit0 ) & bit1;
13380   }
13381 
13382   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT
operator ^(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)13383     operator^( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13384   {
13385     return SurfaceCounterFlagsEXT( bit0 ) ^ bit1;
13386   }
13387 
operator ~(SurfaceCounterFlagBitsEXT bits)13388   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator~( SurfaceCounterFlagBitsEXT bits )
13389     VULKAN_HPP_NOEXCEPT
13390   {
13391     return ~( SurfaceCounterFlagsEXT( bits ) );
13392   }
13393 
to_string(SurfaceCounterFlagsEXT value)13394   VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagsEXT value )
13395   {
13396     if ( !value )
13397       return "{}";
13398 
13399     std::string result;
13400     if ( value & SurfaceCounterFlagBitsEXT::eVblank )
13401       result += "Vblank | ";
13402 
13403     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13404   }
13405 
13406   //=== VK_NV_viewport_swizzle ===
13407 
13408   using PipelineViewportSwizzleStateCreateFlagsNV = Flags<PipelineViewportSwizzleStateCreateFlagBitsNV>;
13409 
to_string(PipelineViewportSwizzleStateCreateFlagsNV)13410   VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagsNV )
13411   {
13412     return "{}";
13413   }
13414 
13415   //=== VK_EXT_discard_rectangles ===
13416 
13417   using PipelineDiscardRectangleStateCreateFlagsEXT = Flags<PipelineDiscardRectangleStateCreateFlagBitsEXT>;
13418 
to_string(PipelineDiscardRectangleStateCreateFlagsEXT)13419   VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagsEXT )
13420   {
13421     return "{}";
13422   }
13423 
13424   //=== VK_EXT_conservative_rasterization ===
13425 
13426   using PipelineRasterizationConservativeStateCreateFlagsEXT =
13427     Flags<PipelineRasterizationConservativeStateCreateFlagBitsEXT>;
13428 
to_string(PipelineRasterizationConservativeStateCreateFlagsEXT)13429   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagsEXT )
13430   {
13431     return "{}";
13432   }
13433 
13434   //=== VK_EXT_depth_clip_enable ===
13435 
13436   using PipelineRasterizationDepthClipStateCreateFlagsEXT = Flags<PipelineRasterizationDepthClipStateCreateFlagBitsEXT>;
13437 
to_string(PipelineRasterizationDepthClipStateCreateFlagsEXT)13438   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagsEXT )
13439   {
13440     return "{}";
13441   }
13442 
13443   //=== VK_KHR_performance_query ===
13444 
13445   using PerformanceCounterDescriptionFlagsKHR = Flags<PerformanceCounterDescriptionFlagBitsKHR>;
13446 
13447   template <>
13448   struct FlagTraits<PerformanceCounterDescriptionFlagBitsKHR>
13449   {
13450     enum : VkFlags
13451     {
13452       allFlags = VkFlags( PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting ) |
13453                  VkFlags( PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted )
13454     };
13455   };
13456 
operator |(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)13457   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator|(
13458     PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13459   {
13460     return PerformanceCounterDescriptionFlagsKHR( bit0 ) | bit1;
13461   }
13462 
operator &(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)13463   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator&(
13464     PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13465   {
13466     return PerformanceCounterDescriptionFlagsKHR( bit0 ) & bit1;
13467   }
13468 
operator ^(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)13469   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator^(
13470     PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13471   {
13472     return PerformanceCounterDescriptionFlagsKHR( bit0 ) ^ bit1;
13473   }
13474 
13475   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR
operator ~(PerformanceCounterDescriptionFlagBitsKHR bits)13476     operator~( PerformanceCounterDescriptionFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
13477   {
13478     return ~( PerformanceCounterDescriptionFlagsKHR( bits ) );
13479   }
13480 
to_string(PerformanceCounterDescriptionFlagsKHR value)13481   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterDescriptionFlagsKHR value )
13482   {
13483     if ( !value )
13484       return "{}";
13485 
13486     std::string result;
13487     if ( value & PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting )
13488       result += "PerformanceImpacting | ";
13489     if ( value & PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted )
13490       result += "ConcurrentlyImpacted | ";
13491 
13492     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13493   }
13494 
13495   using AcquireProfilingLockFlagsKHR = Flags<AcquireProfilingLockFlagBitsKHR>;
13496 
to_string(AcquireProfilingLockFlagsKHR)13497   VULKAN_HPP_INLINE std::string to_string( AcquireProfilingLockFlagsKHR )
13498   {
13499     return "{}";
13500   }
13501 
13502 #if defined( VK_USE_PLATFORM_IOS_MVK )
13503   //=== VK_MVK_ios_surface ===
13504 
13505   using IOSSurfaceCreateFlagsMVK = Flags<IOSSurfaceCreateFlagBitsMVK>;
13506 
to_string(IOSSurfaceCreateFlagsMVK)13507   VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagsMVK )
13508   {
13509     return "{}";
13510   }
13511 #endif /*VK_USE_PLATFORM_IOS_MVK*/
13512 
13513 #if defined( VK_USE_PLATFORM_MACOS_MVK )
13514   //=== VK_MVK_macos_surface ===
13515 
13516   using MacOSSurfaceCreateFlagsMVK = Flags<MacOSSurfaceCreateFlagBitsMVK>;
13517 
to_string(MacOSSurfaceCreateFlagsMVK)13518   VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagsMVK )
13519   {
13520     return "{}";
13521   }
13522 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
13523 
13524   //=== VK_EXT_debug_utils ===
13525 
13526   using DebugUtilsMessageSeverityFlagsEXT = Flags<DebugUtilsMessageSeverityFlagBitsEXT>;
13527 
13528   template <>
13529   struct FlagTraits<DebugUtilsMessageSeverityFlagBitsEXT>
13530   {
13531     enum : VkFlags
13532     {
13533       allFlags = VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eVerbose ) |
13534                  VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eInfo ) |
13535                  VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eWarning ) |
13536                  VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eError )
13537     };
13538   };
13539 
operator |(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)13540   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator|(
13541     DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13542   {
13543     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) | bit1;
13544   }
13545 
operator &(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)13546   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator&(
13547     DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13548   {
13549     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) & bit1;
13550   }
13551 
operator ^(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)13552   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator^(
13553     DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13554   {
13555     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) ^ bit1;
13556   }
13557 
13558   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT
operator ~(DebugUtilsMessageSeverityFlagBitsEXT bits)13559     operator~( DebugUtilsMessageSeverityFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
13560   {
13561     return ~( DebugUtilsMessageSeverityFlagsEXT( bits ) );
13562   }
13563 
to_string(DebugUtilsMessageSeverityFlagsEXT value)13564   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagsEXT value )
13565   {
13566     if ( !value )
13567       return "{}";
13568 
13569     std::string result;
13570     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eVerbose )
13571       result += "Verbose | ";
13572     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eInfo )
13573       result += "Info | ";
13574     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eWarning )
13575       result += "Warning | ";
13576     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eError )
13577       result += "Error | ";
13578 
13579     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13580   }
13581 
13582   using DebugUtilsMessageTypeFlagsEXT = Flags<DebugUtilsMessageTypeFlagBitsEXT>;
13583 
13584   template <>
13585   struct FlagTraits<DebugUtilsMessageTypeFlagBitsEXT>
13586   {
13587     enum : VkFlags
13588     {
13589       allFlags = VkFlags( DebugUtilsMessageTypeFlagBitsEXT::eGeneral ) |
13590                  VkFlags( DebugUtilsMessageTypeFlagBitsEXT::eValidation ) |
13591                  VkFlags( DebugUtilsMessageTypeFlagBitsEXT::ePerformance )
13592     };
13593   };
13594 
13595   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT
operator |(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)13596     operator|( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13597   {
13598     return DebugUtilsMessageTypeFlagsEXT( bit0 ) | bit1;
13599   }
13600 
13601   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT
operator &(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)13602     operator&( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13603   {
13604     return DebugUtilsMessageTypeFlagsEXT( bit0 ) & bit1;
13605   }
13606 
13607   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT
operator ^(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)13608     operator^( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13609   {
13610     return DebugUtilsMessageTypeFlagsEXT( bit0 ) ^ bit1;
13611   }
13612 
13613   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT
operator ~(DebugUtilsMessageTypeFlagBitsEXT bits)13614     operator~( DebugUtilsMessageTypeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
13615   {
13616     return ~( DebugUtilsMessageTypeFlagsEXT( bits ) );
13617   }
13618 
to_string(DebugUtilsMessageTypeFlagsEXT value)13619   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagsEXT value )
13620   {
13621     if ( !value )
13622       return "{}";
13623 
13624     std::string result;
13625     if ( value & DebugUtilsMessageTypeFlagBitsEXT::eGeneral )
13626       result += "General | ";
13627     if ( value & DebugUtilsMessageTypeFlagBitsEXT::eValidation )
13628       result += "Validation | ";
13629     if ( value & DebugUtilsMessageTypeFlagBitsEXT::ePerformance )
13630       result += "Performance | ";
13631 
13632     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13633   }
13634 
13635   using DebugUtilsMessengerCallbackDataFlagsEXT = Flags<DebugUtilsMessengerCallbackDataFlagBitsEXT>;
13636 
to_string(DebugUtilsMessengerCallbackDataFlagsEXT)13637   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagsEXT )
13638   {
13639     return "{}";
13640   }
13641 
13642   using DebugUtilsMessengerCreateFlagsEXT = Flags<DebugUtilsMessengerCreateFlagBitsEXT>;
13643 
to_string(DebugUtilsMessengerCreateFlagsEXT)13644   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagsEXT )
13645   {
13646     return "{}";
13647   }
13648 
13649   //=== VK_NV_fragment_coverage_to_color ===
13650 
13651   using PipelineCoverageToColorStateCreateFlagsNV = Flags<PipelineCoverageToColorStateCreateFlagBitsNV>;
13652 
to_string(PipelineCoverageToColorStateCreateFlagsNV)13653   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagsNV )
13654   {
13655     return "{}";
13656   }
13657 
13658   //=== VK_KHR_acceleration_structure ===
13659 
13660   using GeometryFlagsKHR = Flags<GeometryFlagBitsKHR>;
13661 
13662   template <>
13663   struct FlagTraits<GeometryFlagBitsKHR>
13664   {
13665     enum : VkFlags
13666     {
13667       allFlags = VkFlags( GeometryFlagBitsKHR::eOpaque ) | VkFlags( GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation )
13668     };
13669   };
13670 
operator |(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)13671   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator|( GeometryFlagBitsKHR bit0,
13672                                                                      GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13673   {
13674     return GeometryFlagsKHR( bit0 ) | bit1;
13675   }
13676 
operator &(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)13677   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator&( GeometryFlagBitsKHR bit0,
13678                                                                      GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13679   {
13680     return GeometryFlagsKHR( bit0 ) & bit1;
13681   }
13682 
operator ^(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)13683   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator^( GeometryFlagBitsKHR bit0,
13684                                                                      GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13685   {
13686     return GeometryFlagsKHR( bit0 ) ^ bit1;
13687   }
13688 
operator ~(GeometryFlagBitsKHR bits)13689   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator~( GeometryFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
13690   {
13691     return ~( GeometryFlagsKHR( bits ) );
13692   }
13693 
13694   using GeometryFlagsNV = GeometryFlagsKHR;
13695 
to_string(GeometryFlagsKHR value)13696   VULKAN_HPP_INLINE std::string to_string( GeometryFlagsKHR value )
13697   {
13698     if ( !value )
13699       return "{}";
13700 
13701     std::string result;
13702     if ( value & GeometryFlagBitsKHR::eOpaque )
13703       result += "Opaque | ";
13704     if ( value & GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation )
13705       result += "NoDuplicateAnyHitInvocation | ";
13706 
13707     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13708   }
13709 
13710   using GeometryInstanceFlagsKHR = Flags<GeometryInstanceFlagBitsKHR>;
13711 
13712   template <>
13713   struct FlagTraits<GeometryInstanceFlagBitsKHR>
13714   {
13715     enum : VkFlags
13716     {
13717       allFlags = VkFlags( GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable ) |
13718                  VkFlags( GeometryInstanceFlagBitsKHR::eTriangleFlipFacing ) |
13719                  VkFlags( GeometryInstanceFlagBitsKHR::eForceOpaque ) |
13720                  VkFlags( GeometryInstanceFlagBitsKHR::eForceNoOpaque )
13721     };
13722   };
13723 
13724   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR
operator |(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)13725     operator|( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13726   {
13727     return GeometryInstanceFlagsKHR( bit0 ) | bit1;
13728   }
13729 
13730   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR
operator &(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)13731     operator&( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13732   {
13733     return GeometryInstanceFlagsKHR( bit0 ) & bit1;
13734   }
13735 
13736   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR
operator ^(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)13737     operator^( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13738   {
13739     return GeometryInstanceFlagsKHR( bit0 ) ^ bit1;
13740   }
13741 
operator ~(GeometryInstanceFlagBitsKHR bits)13742   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator~( GeometryInstanceFlagBitsKHR bits )
13743     VULKAN_HPP_NOEXCEPT
13744   {
13745     return ~( GeometryInstanceFlagsKHR( bits ) );
13746   }
13747 
13748   using GeometryInstanceFlagsNV = GeometryInstanceFlagsKHR;
13749 
to_string(GeometryInstanceFlagsKHR value)13750   VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagsKHR value )
13751   {
13752     if ( !value )
13753       return "{}";
13754 
13755     std::string result;
13756     if ( value & GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable )
13757       result += "TriangleFacingCullDisable | ";
13758     if ( value & GeometryInstanceFlagBitsKHR::eTriangleFlipFacing )
13759       result += "TriangleFlipFacing | ";
13760     if ( value & GeometryInstanceFlagBitsKHR::eForceOpaque )
13761       result += "ForceOpaque | ";
13762     if ( value & GeometryInstanceFlagBitsKHR::eForceNoOpaque )
13763       result += "ForceNoOpaque | ";
13764 
13765     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13766   }
13767 
13768   using BuildAccelerationStructureFlagsKHR = Flags<BuildAccelerationStructureFlagBitsKHR>;
13769 
13770   template <>
13771   struct FlagTraits<BuildAccelerationStructureFlagBitsKHR>
13772   {
13773     enum : VkFlags
13774     {
13775       allFlags = VkFlags( BuildAccelerationStructureFlagBitsKHR::eAllowUpdate ) |
13776                  VkFlags( BuildAccelerationStructureFlagBitsKHR::eAllowCompaction ) |
13777                  VkFlags( BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace ) |
13778                  VkFlags( BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild ) |
13779                  VkFlags( BuildAccelerationStructureFlagBitsKHR::eLowMemory ) |
13780                  VkFlags( BuildAccelerationStructureFlagBitsKHR::eMotionNV )
13781     };
13782   };
13783 
operator |(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)13784   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator|(
13785     BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13786   {
13787     return BuildAccelerationStructureFlagsKHR( bit0 ) | bit1;
13788   }
13789 
operator &(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)13790   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator&(
13791     BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13792   {
13793     return BuildAccelerationStructureFlagsKHR( bit0 ) & bit1;
13794   }
13795 
operator ^(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)13796   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator^(
13797     BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13798   {
13799     return BuildAccelerationStructureFlagsKHR( bit0 ) ^ bit1;
13800   }
13801 
13802   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR
operator ~(BuildAccelerationStructureFlagBitsKHR bits)13803     operator~( BuildAccelerationStructureFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
13804   {
13805     return ~( BuildAccelerationStructureFlagsKHR( bits ) );
13806   }
13807 
13808   using BuildAccelerationStructureFlagsNV = BuildAccelerationStructureFlagsKHR;
13809 
to_string(BuildAccelerationStructureFlagsKHR value)13810   VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagsKHR value )
13811   {
13812     if ( !value )
13813       return "{}";
13814 
13815     std::string result;
13816     if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowUpdate )
13817       result += "AllowUpdate | ";
13818     if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowCompaction )
13819       result += "AllowCompaction | ";
13820     if ( value & BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace )
13821       result += "PreferFastTrace | ";
13822     if ( value & BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild )
13823       result += "PreferFastBuild | ";
13824     if ( value & BuildAccelerationStructureFlagBitsKHR::eLowMemory )
13825       result += "LowMemory | ";
13826     if ( value & BuildAccelerationStructureFlagBitsKHR::eMotionNV )
13827       result += "MotionNV | ";
13828 
13829     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13830   }
13831 
13832   using AccelerationStructureCreateFlagsKHR = Flags<AccelerationStructureCreateFlagBitsKHR>;
13833 
13834   template <>
13835   struct FlagTraits<AccelerationStructureCreateFlagBitsKHR>
13836   {
13837     enum : VkFlags
13838     {
13839       allFlags = VkFlags( AccelerationStructureCreateFlagBitsKHR::eDeviceAddressCaptureReplay ) |
13840                  VkFlags( AccelerationStructureCreateFlagBitsKHR::eMotionNV )
13841     };
13842   };
13843 
operator |(AccelerationStructureCreateFlagBitsKHR bit0,AccelerationStructureCreateFlagBitsKHR bit1)13844   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator|(
13845     AccelerationStructureCreateFlagBitsKHR bit0, AccelerationStructureCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13846   {
13847     return AccelerationStructureCreateFlagsKHR( bit0 ) | bit1;
13848   }
13849 
operator &(AccelerationStructureCreateFlagBitsKHR bit0,AccelerationStructureCreateFlagBitsKHR bit1)13850   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator&(
13851     AccelerationStructureCreateFlagBitsKHR bit0, AccelerationStructureCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13852   {
13853     return AccelerationStructureCreateFlagsKHR( bit0 ) & bit1;
13854   }
13855 
operator ^(AccelerationStructureCreateFlagBitsKHR bit0,AccelerationStructureCreateFlagBitsKHR bit1)13856   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator^(
13857     AccelerationStructureCreateFlagBitsKHR bit0, AccelerationStructureCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13858   {
13859     return AccelerationStructureCreateFlagsKHR( bit0 ) ^ bit1;
13860   }
13861 
13862   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR
operator ~(AccelerationStructureCreateFlagBitsKHR bits)13863     operator~( AccelerationStructureCreateFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
13864   {
13865     return ~( AccelerationStructureCreateFlagsKHR( bits ) );
13866   }
13867 
to_string(AccelerationStructureCreateFlagsKHR value)13868   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureCreateFlagsKHR value )
13869   {
13870     if ( !value )
13871       return "{}";
13872 
13873     std::string result;
13874     if ( value & AccelerationStructureCreateFlagBitsKHR::eDeviceAddressCaptureReplay )
13875       result += "DeviceAddressCaptureReplay | ";
13876     if ( value & AccelerationStructureCreateFlagBitsKHR::eMotionNV )
13877       result += "MotionNV | ";
13878 
13879     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13880   }
13881 
13882   //=== VK_NV_framebuffer_mixed_samples ===
13883 
13884   using PipelineCoverageModulationStateCreateFlagsNV = Flags<PipelineCoverageModulationStateCreateFlagBitsNV>;
13885 
to_string(PipelineCoverageModulationStateCreateFlagsNV)13886   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagsNV )
13887   {
13888     return "{}";
13889   }
13890 
13891   //=== VK_EXT_validation_cache ===
13892 
13893   using ValidationCacheCreateFlagsEXT = Flags<ValidationCacheCreateFlagBitsEXT>;
13894 
to_string(ValidationCacheCreateFlagsEXT)13895   VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagsEXT )
13896   {
13897     return "{}";
13898   }
13899 
13900   //=== VK_AMD_pipeline_compiler_control ===
13901 
13902   using PipelineCompilerControlFlagsAMD = Flags<PipelineCompilerControlFlagBitsAMD>;
13903 
to_string(PipelineCompilerControlFlagsAMD)13904   VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagsAMD )
13905   {
13906     return "{}";
13907   }
13908 
13909 #if defined( VK_ENABLE_BETA_EXTENSIONS )
13910   //=== VK_EXT_video_decode_h265 ===
13911 
13912   using VideoDecodeH265CreateFlagsEXT = Flags<VideoDecodeH265CreateFlagBitsEXT>;
13913 
to_string(VideoDecodeH265CreateFlagsEXT)13914   VULKAN_HPP_INLINE std::string to_string( VideoDecodeH265CreateFlagsEXT )
13915   {
13916     return "{}";
13917   }
13918 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13919 
13920   //=== VK_EXT_pipeline_creation_feedback ===
13921 
13922   using PipelineCreationFeedbackFlagsEXT = Flags<PipelineCreationFeedbackFlagBitsEXT>;
13923 
13924   template <>
13925   struct FlagTraits<PipelineCreationFeedbackFlagBitsEXT>
13926   {
13927     enum : VkFlags
13928     {
13929       allFlags = VkFlags( PipelineCreationFeedbackFlagBitsEXT::eValid ) |
13930                  VkFlags( PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit ) |
13931                  VkFlags( PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration )
13932     };
13933   };
13934 
13935   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT
operator |(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)13936     operator|( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13937   {
13938     return PipelineCreationFeedbackFlagsEXT( bit0 ) | bit1;
13939   }
13940 
13941   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT
operator &(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)13942     operator&( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13943   {
13944     return PipelineCreationFeedbackFlagsEXT( bit0 ) & bit1;
13945   }
13946 
13947   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT
operator ^(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)13948     operator^( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13949   {
13950     return PipelineCreationFeedbackFlagsEXT( bit0 ) ^ bit1;
13951   }
13952 
13953   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT
operator ~(PipelineCreationFeedbackFlagBitsEXT bits)13954     operator~( PipelineCreationFeedbackFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
13955   {
13956     return ~( PipelineCreationFeedbackFlagsEXT( bits ) );
13957   }
13958 
to_string(PipelineCreationFeedbackFlagsEXT value)13959   VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagsEXT value )
13960   {
13961     if ( !value )
13962       return "{}";
13963 
13964     std::string result;
13965     if ( value & PipelineCreationFeedbackFlagBitsEXT::eValid )
13966       result += "Valid | ";
13967     if ( value & PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit )
13968       result += "ApplicationPipelineCacheHit | ";
13969     if ( value & PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration )
13970       result += "BasePipelineAcceleration | ";
13971 
13972     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13973   }
13974 
13975 #if defined( VK_USE_PLATFORM_FUCHSIA )
13976   //=== VK_FUCHSIA_imagepipe_surface ===
13977 
13978   using ImagePipeSurfaceCreateFlagsFUCHSIA = Flags<ImagePipeSurfaceCreateFlagBitsFUCHSIA>;
13979 
to_string(ImagePipeSurfaceCreateFlagsFUCHSIA)13980   VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagsFUCHSIA )
13981   {
13982     return "{}";
13983   }
13984 #endif /*VK_USE_PLATFORM_FUCHSIA*/
13985 
13986 #if defined( VK_USE_PLATFORM_METAL_EXT )
13987   //=== VK_EXT_metal_surface ===
13988 
13989   using MetalSurfaceCreateFlagsEXT = Flags<MetalSurfaceCreateFlagBitsEXT>;
13990 
to_string(MetalSurfaceCreateFlagsEXT)13991   VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagsEXT )
13992   {
13993     return "{}";
13994   }
13995 #endif /*VK_USE_PLATFORM_METAL_EXT*/
13996 
13997   //=== VK_AMD_shader_core_properties2 ===
13998 
13999   using ShaderCorePropertiesFlagsAMD = Flags<ShaderCorePropertiesFlagBitsAMD>;
14000 
to_string(ShaderCorePropertiesFlagsAMD)14001   VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagsAMD )
14002   {
14003     return "{}";
14004   }
14005 
14006   //=== VK_EXT_tooling_info ===
14007 
14008   using ToolPurposeFlagsEXT = Flags<ToolPurposeFlagBitsEXT>;
14009 
14010   template <>
14011   struct FlagTraits<ToolPurposeFlagBitsEXT>
14012   {
14013     enum : VkFlags
14014     {
14015       allFlags = VkFlags( ToolPurposeFlagBitsEXT::eValidation ) | VkFlags( ToolPurposeFlagBitsEXT::eProfiling ) |
14016                  VkFlags( ToolPurposeFlagBitsEXT::eTracing ) | VkFlags( ToolPurposeFlagBitsEXT::eAdditionalFeatures ) |
14017                  VkFlags( ToolPurposeFlagBitsEXT::eModifyingFeatures ) |
14018                  VkFlags( ToolPurposeFlagBitsEXT::eDebugReporting ) | VkFlags( ToolPurposeFlagBitsEXT::eDebugMarkers )
14019     };
14020   };
14021 
14022   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT
operator |(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)14023     operator|( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
14024   {
14025     return ToolPurposeFlagsEXT( bit0 ) | bit1;
14026   }
14027 
14028   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT
operator &(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)14029     operator&( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
14030   {
14031     return ToolPurposeFlagsEXT( bit0 ) & bit1;
14032   }
14033 
14034   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT
operator ^(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)14035     operator^( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
14036   {
14037     return ToolPurposeFlagsEXT( bit0 ) ^ bit1;
14038   }
14039 
operator ~(ToolPurposeFlagBitsEXT bits)14040   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator~( ToolPurposeFlagBitsEXT bits )
14041     VULKAN_HPP_NOEXCEPT
14042   {
14043     return ~( ToolPurposeFlagsEXT( bits ) );
14044   }
14045 
to_string(ToolPurposeFlagsEXT value)14046   VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagsEXT value )
14047   {
14048     if ( !value )
14049       return "{}";
14050 
14051     std::string result;
14052     if ( value & ToolPurposeFlagBitsEXT::eValidation )
14053       result += "Validation | ";
14054     if ( value & ToolPurposeFlagBitsEXT::eProfiling )
14055       result += "Profiling | ";
14056     if ( value & ToolPurposeFlagBitsEXT::eTracing )
14057       result += "Tracing | ";
14058     if ( value & ToolPurposeFlagBitsEXT::eAdditionalFeatures )
14059       result += "AdditionalFeatures | ";
14060     if ( value & ToolPurposeFlagBitsEXT::eModifyingFeatures )
14061       result += "ModifyingFeatures | ";
14062     if ( value & ToolPurposeFlagBitsEXT::eDebugReporting )
14063       result += "DebugReporting | ";
14064     if ( value & ToolPurposeFlagBitsEXT::eDebugMarkers )
14065       result += "DebugMarkers | ";
14066 
14067     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14068   }
14069 
14070   //=== VK_NV_coverage_reduction_mode ===
14071 
14072   using PipelineCoverageReductionStateCreateFlagsNV = Flags<PipelineCoverageReductionStateCreateFlagBitsNV>;
14073 
to_string(PipelineCoverageReductionStateCreateFlagsNV)14074   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagsNV )
14075   {
14076     return "{}";
14077   }
14078 
14079   //=== VK_EXT_headless_surface ===
14080 
14081   using HeadlessSurfaceCreateFlagsEXT = Flags<HeadlessSurfaceCreateFlagBitsEXT>;
14082 
to_string(HeadlessSurfaceCreateFlagsEXT)14083   VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagsEXT )
14084   {
14085     return "{}";
14086   }
14087 
14088   //=== VK_NV_device_generated_commands ===
14089 
14090   using IndirectStateFlagsNV = Flags<IndirectStateFlagBitsNV>;
14091 
14092   template <>
14093   struct FlagTraits<IndirectStateFlagBitsNV>
14094   {
14095     enum : VkFlags
14096     {
14097       allFlags = VkFlags( IndirectStateFlagBitsNV::eFlagFrontface )
14098     };
14099   };
14100 
14101   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV
operator |(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)14102     operator|( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
14103   {
14104     return IndirectStateFlagsNV( bit0 ) | bit1;
14105   }
14106 
14107   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV
operator &(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)14108     operator&( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
14109   {
14110     return IndirectStateFlagsNV( bit0 ) & bit1;
14111   }
14112 
14113   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV
operator ^(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)14114     operator^( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
14115   {
14116     return IndirectStateFlagsNV( bit0 ) ^ bit1;
14117   }
14118 
operator ~(IndirectStateFlagBitsNV bits)14119   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator~( IndirectStateFlagBitsNV bits )
14120     VULKAN_HPP_NOEXCEPT
14121   {
14122     return ~( IndirectStateFlagsNV( bits ) );
14123   }
14124 
to_string(IndirectStateFlagsNV value)14125   VULKAN_HPP_INLINE std::string to_string( IndirectStateFlagsNV value )
14126   {
14127     if ( !value )
14128       return "{}";
14129 
14130     std::string result;
14131     if ( value & IndirectStateFlagBitsNV::eFlagFrontface )
14132       result += "FlagFrontface | ";
14133 
14134     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14135   }
14136 
14137   using IndirectCommandsLayoutUsageFlagsNV = Flags<IndirectCommandsLayoutUsageFlagBitsNV>;
14138 
14139   template <>
14140   struct FlagTraits<IndirectCommandsLayoutUsageFlagBitsNV>
14141   {
14142     enum : VkFlags
14143     {
14144       allFlags = VkFlags( IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess ) |
14145                  VkFlags( IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences ) |
14146                  VkFlags( IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences )
14147     };
14148   };
14149 
operator |(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)14150   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator|(
14151     IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
14152   {
14153     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) | bit1;
14154   }
14155 
operator &(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)14156   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator&(
14157     IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
14158   {
14159     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) & bit1;
14160   }
14161 
operator ^(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)14162   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator^(
14163     IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
14164   {
14165     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) ^ bit1;
14166   }
14167 
14168   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV
operator ~(IndirectCommandsLayoutUsageFlagBitsNV bits)14169     operator~( IndirectCommandsLayoutUsageFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
14170   {
14171     return ~( IndirectCommandsLayoutUsageFlagsNV( bits ) );
14172   }
14173 
to_string(IndirectCommandsLayoutUsageFlagsNV value)14174   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagsNV value )
14175   {
14176     if ( !value )
14177       return "{}";
14178 
14179     std::string result;
14180     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess )
14181       result += "ExplicitPreprocess | ";
14182     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences )
14183       result += "IndexedSequences | ";
14184     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences )
14185       result += "UnorderedSequences | ";
14186 
14187     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14188   }
14189 
14190   //=== VK_EXT_device_memory_report ===
14191 
14192   using DeviceMemoryReportFlagsEXT = Flags<DeviceMemoryReportFlagBitsEXT>;
14193 
to_string(DeviceMemoryReportFlagsEXT)14194   VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportFlagsEXT )
14195   {
14196     return "{}";
14197   }
14198 
14199   //=== VK_EXT_private_data ===
14200 
14201   using PrivateDataSlotCreateFlagsEXT = Flags<PrivateDataSlotCreateFlagBitsEXT>;
14202 
to_string(PrivateDataSlotCreateFlagsEXT)14203   VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagsEXT )
14204   {
14205     return "{}";
14206   }
14207 
14208 #if defined( VK_ENABLE_BETA_EXTENSIONS )
14209   //=== VK_KHR_video_encode_queue ===
14210 
14211   using VideoEncodeFlagsKHR = Flags<VideoEncodeFlagBitsKHR>;
14212 
14213   template <>
14214   struct FlagTraits<VideoEncodeFlagBitsKHR>
14215   {
14216     enum : VkFlags
14217     {
14218       allFlags = VkFlags( VideoEncodeFlagBitsKHR::eDefault ) | VkFlags( VideoEncodeFlagBitsKHR::eReserved0 )
14219     };
14220   };
14221 
14222   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeFlagsKHR
operator |(VideoEncodeFlagBitsKHR bit0,VideoEncodeFlagBitsKHR bit1)14223     operator|( VideoEncodeFlagBitsKHR bit0, VideoEncodeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14224   {
14225     return VideoEncodeFlagsKHR( bit0 ) | bit1;
14226   }
14227 
14228   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeFlagsKHR
operator &(VideoEncodeFlagBitsKHR bit0,VideoEncodeFlagBitsKHR bit1)14229     operator&( VideoEncodeFlagBitsKHR bit0, VideoEncodeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14230   {
14231     return VideoEncodeFlagsKHR( bit0 ) & bit1;
14232   }
14233 
14234   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeFlagsKHR
operator ^(VideoEncodeFlagBitsKHR bit0,VideoEncodeFlagBitsKHR bit1)14235     operator^( VideoEncodeFlagBitsKHR bit0, VideoEncodeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14236   {
14237     return VideoEncodeFlagsKHR( bit0 ) ^ bit1;
14238   }
14239 
operator ~(VideoEncodeFlagBitsKHR bits)14240   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeFlagsKHR operator~( VideoEncodeFlagBitsKHR bits )
14241     VULKAN_HPP_NOEXCEPT
14242   {
14243     return ~( VideoEncodeFlagsKHR( bits ) );
14244   }
14245 
to_string(VideoEncodeFlagsKHR value)14246   VULKAN_HPP_INLINE std::string to_string( VideoEncodeFlagsKHR value )
14247   {
14248     if ( !value )
14249       return "{}";
14250 
14251     std::string result;
14252     if ( value & VideoEncodeFlagBitsKHR::eReserved0 )
14253       result += "Reserved0 | ";
14254 
14255     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14256   }
14257 
14258   using VideoEncodeRateControlFlagsKHR = Flags<VideoEncodeRateControlFlagBitsKHR>;
14259 
14260   template <>
14261   struct FlagTraits<VideoEncodeRateControlFlagBitsKHR>
14262   {
14263     enum : VkFlags
14264     {
14265       allFlags =
14266         VkFlags( VideoEncodeRateControlFlagBitsKHR::eDefault ) | VkFlags( VideoEncodeRateControlFlagBitsKHR::eReset )
14267     };
14268   };
14269 
14270   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlFlagsKHR
operator |(VideoEncodeRateControlFlagBitsKHR bit0,VideoEncodeRateControlFlagBitsKHR bit1)14271     operator|( VideoEncodeRateControlFlagBitsKHR bit0, VideoEncodeRateControlFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14272   {
14273     return VideoEncodeRateControlFlagsKHR( bit0 ) | bit1;
14274   }
14275 
14276   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlFlagsKHR
operator &(VideoEncodeRateControlFlagBitsKHR bit0,VideoEncodeRateControlFlagBitsKHR bit1)14277     operator&( VideoEncodeRateControlFlagBitsKHR bit0, VideoEncodeRateControlFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14278   {
14279     return VideoEncodeRateControlFlagsKHR( bit0 ) & bit1;
14280   }
14281 
14282   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlFlagsKHR
operator ^(VideoEncodeRateControlFlagBitsKHR bit0,VideoEncodeRateControlFlagBitsKHR bit1)14283     operator^( VideoEncodeRateControlFlagBitsKHR bit0, VideoEncodeRateControlFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14284   {
14285     return VideoEncodeRateControlFlagsKHR( bit0 ) ^ bit1;
14286   }
14287 
14288   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlFlagsKHR
operator ~(VideoEncodeRateControlFlagBitsKHR bits)14289     operator~( VideoEncodeRateControlFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
14290   {
14291     return ~( VideoEncodeRateControlFlagsKHR( bits ) );
14292   }
14293 
to_string(VideoEncodeRateControlFlagsKHR value)14294   VULKAN_HPP_INLINE std::string to_string( VideoEncodeRateControlFlagsKHR value )
14295   {
14296     if ( !value )
14297       return "{}";
14298 
14299     std::string result;
14300     if ( value & VideoEncodeRateControlFlagBitsKHR::eReset )
14301       result += "Reset | ";
14302 
14303     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14304   }
14305 
14306   using VideoEncodeRateControlModeFlagsKHR = Flags<VideoEncodeRateControlModeFlagBitsKHR>;
14307 
14308   template <>
14309   struct FlagTraits<VideoEncodeRateControlModeFlagBitsKHR>
14310   {
14311     enum : VkFlags
14312     {
14313       allFlags = VkFlags( VideoEncodeRateControlModeFlagBitsKHR::eNone ) |
14314                  VkFlags( VideoEncodeRateControlModeFlagBitsKHR::eCbr ) |
14315                  VkFlags( VideoEncodeRateControlModeFlagBitsKHR::eVbr )
14316     };
14317   };
14318 
operator |(VideoEncodeRateControlModeFlagBitsKHR bit0,VideoEncodeRateControlModeFlagBitsKHR bit1)14319   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlModeFlagsKHR operator|(
14320     VideoEncodeRateControlModeFlagBitsKHR bit0, VideoEncodeRateControlModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14321   {
14322     return VideoEncodeRateControlModeFlagsKHR( bit0 ) | bit1;
14323   }
14324 
operator &(VideoEncodeRateControlModeFlagBitsKHR bit0,VideoEncodeRateControlModeFlagBitsKHR bit1)14325   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlModeFlagsKHR operator&(
14326     VideoEncodeRateControlModeFlagBitsKHR bit0, VideoEncodeRateControlModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14327   {
14328     return VideoEncodeRateControlModeFlagsKHR( bit0 ) & bit1;
14329   }
14330 
operator ^(VideoEncodeRateControlModeFlagBitsKHR bit0,VideoEncodeRateControlModeFlagBitsKHR bit1)14331   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlModeFlagsKHR operator^(
14332     VideoEncodeRateControlModeFlagBitsKHR bit0, VideoEncodeRateControlModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14333   {
14334     return VideoEncodeRateControlModeFlagsKHR( bit0 ) ^ bit1;
14335   }
14336 
14337   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlModeFlagsKHR
operator ~(VideoEncodeRateControlModeFlagBitsKHR bits)14338     operator~( VideoEncodeRateControlModeFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
14339   {
14340     return ~( VideoEncodeRateControlModeFlagsKHR( bits ) );
14341   }
14342 
to_string(VideoEncodeRateControlModeFlagsKHR value)14343   VULKAN_HPP_INLINE std::string to_string( VideoEncodeRateControlModeFlagsKHR value )
14344   {
14345     if ( !value )
14346       return "{}";
14347 
14348     std::string result;
14349 
14350     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14351   }
14352 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14353 
14354   //=== VK_NV_device_diagnostics_config ===
14355 
14356   using DeviceDiagnosticsConfigFlagsNV = Flags<DeviceDiagnosticsConfigFlagBitsNV>;
14357 
14358   template <>
14359   struct FlagTraits<DeviceDiagnosticsConfigFlagBitsNV>
14360   {
14361     enum : VkFlags
14362     {
14363       allFlags = VkFlags( DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo ) |
14364                  VkFlags( DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking ) |
14365                  VkFlags( DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints )
14366     };
14367   };
14368 
14369   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV
operator |(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)14370     operator|( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
14371   {
14372     return DeviceDiagnosticsConfigFlagsNV( bit0 ) | bit1;
14373   }
14374 
14375   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV
operator &(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)14376     operator&( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
14377   {
14378     return DeviceDiagnosticsConfigFlagsNV( bit0 ) & bit1;
14379   }
14380 
14381   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV
operator ^(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)14382     operator^( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
14383   {
14384     return DeviceDiagnosticsConfigFlagsNV( bit0 ) ^ bit1;
14385   }
14386 
14387   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV
operator ~(DeviceDiagnosticsConfigFlagBitsNV bits)14388     operator~( DeviceDiagnosticsConfigFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
14389   {
14390     return ~( DeviceDiagnosticsConfigFlagsNV( bits ) );
14391   }
14392 
to_string(DeviceDiagnosticsConfigFlagsNV value)14393   VULKAN_HPP_INLINE std::string to_string( DeviceDiagnosticsConfigFlagsNV value )
14394   {
14395     if ( !value )
14396       return "{}";
14397 
14398     std::string result;
14399     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo )
14400       result += "EnableShaderDebugInfo | ";
14401     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking )
14402       result += "EnableResourceTracking | ";
14403     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints )
14404       result += "EnableAutomaticCheckpoints | ";
14405 
14406     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14407   }
14408 
14409   //=== VK_KHR_synchronization2 ===
14410 
14411   using PipelineStageFlags2KHR = Flags<PipelineStageFlagBits2KHR>;
14412 
14413   template <>
14414   struct FlagTraits<PipelineStageFlagBits2KHR>
14415   {
14416     enum : VkFlags64
14417     {
14418       allFlags =
14419         VkFlags64( PipelineStageFlagBits2KHR::eNone ) | VkFlags64( PipelineStageFlagBits2KHR::eTopOfPipe ) |
14420         VkFlags64( PipelineStageFlagBits2KHR::eDrawIndirect ) | VkFlags64( PipelineStageFlagBits2KHR::eVertexInput ) |
14421         VkFlags64( PipelineStageFlagBits2KHR::eVertexShader ) |
14422         VkFlags64( PipelineStageFlagBits2KHR::eTessellationControlShader ) |
14423         VkFlags64( PipelineStageFlagBits2KHR::eTessellationEvaluationShader ) |
14424         VkFlags64( PipelineStageFlagBits2KHR::eGeometryShader ) |
14425         VkFlags64( PipelineStageFlagBits2KHR::eFragmentShader ) |
14426         VkFlags64( PipelineStageFlagBits2KHR::eEarlyFragmentTests ) |
14427         VkFlags64( PipelineStageFlagBits2KHR::eLateFragmentTests ) |
14428         VkFlags64( PipelineStageFlagBits2KHR::eColorAttachmentOutput ) |
14429         VkFlags64( PipelineStageFlagBits2KHR::eComputeShader ) | VkFlags64( PipelineStageFlagBits2KHR::eAllTransfer ) |
14430         VkFlags64( PipelineStageFlagBits2KHR::eBottomOfPipe ) | VkFlags64( PipelineStageFlagBits2KHR::eHost ) |
14431         VkFlags64( PipelineStageFlagBits2KHR::eAllGraphics ) | VkFlags64( PipelineStageFlagBits2KHR::eAllCommands ) |
14432         VkFlags64( PipelineStageFlagBits2KHR::eCopy ) | VkFlags64( PipelineStageFlagBits2KHR::eResolve ) |
14433         VkFlags64( PipelineStageFlagBits2KHR::eBlit ) | VkFlags64( PipelineStageFlagBits2KHR::eClear ) |
14434         VkFlags64( PipelineStageFlagBits2KHR::eIndexInput ) |
14435         VkFlags64( PipelineStageFlagBits2KHR::eVertexAttributeInput ) |
14436         VkFlags64( PipelineStageFlagBits2KHR::ePreRasterizationShaders )
14437 #if defined( VK_ENABLE_BETA_EXTENSIONS )
14438         | VkFlags64( PipelineStageFlagBits2KHR::eVideoDecode ) | VkFlags64( PipelineStageFlagBits2KHR::eVideoEncode )
14439 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14440         | VkFlags64( PipelineStageFlagBits2KHR::eTransformFeedbackEXT ) |
14441         VkFlags64( PipelineStageFlagBits2KHR::eConditionalRenderingEXT ) |
14442         VkFlags64( PipelineStageFlagBits2KHR::eCommandPreprocessNV ) |
14443         VkFlags64( PipelineStageFlagBits2KHR::eFragmentShadingRateAttachment ) |
14444         VkFlags64( PipelineStageFlagBits2KHR::eAccelerationStructureBuild ) |
14445         VkFlags64( PipelineStageFlagBits2KHR::eRayTracingShader ) |
14446         VkFlags64( PipelineStageFlagBits2KHR::eFragmentDensityProcessEXT ) |
14447         VkFlags64( PipelineStageFlagBits2KHR::eTaskShaderNV ) | VkFlags64( PipelineStageFlagBits2KHR::eMeshShaderNV ) |
14448         VkFlags64( PipelineStageFlagBits2KHR::eSubpassShadingHUAWEI ) |
14449         VkFlags64( PipelineStageFlagBits2KHR::eInvocationMaskHUAWEI )
14450     };
14451   };
14452 
14453   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR
operator |(PipelineStageFlagBits2KHR bit0,PipelineStageFlagBits2KHR bit1)14454     operator|( PipelineStageFlagBits2KHR bit0, PipelineStageFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
14455   {
14456     return PipelineStageFlags2KHR( bit0 ) | bit1;
14457   }
14458 
14459   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR
operator &(PipelineStageFlagBits2KHR bit0,PipelineStageFlagBits2KHR bit1)14460     operator&( PipelineStageFlagBits2KHR bit0, PipelineStageFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
14461   {
14462     return PipelineStageFlags2KHR( bit0 ) & bit1;
14463   }
14464 
14465   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR
operator ^(PipelineStageFlagBits2KHR bit0,PipelineStageFlagBits2KHR bit1)14466     operator^( PipelineStageFlagBits2KHR bit0, PipelineStageFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
14467   {
14468     return PipelineStageFlags2KHR( bit0 ) ^ bit1;
14469   }
14470 
operator ~(PipelineStageFlagBits2KHR bits)14471   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR operator~( PipelineStageFlagBits2KHR bits )
14472     VULKAN_HPP_NOEXCEPT
14473   {
14474     return ~( PipelineStageFlags2KHR( bits ) );
14475   }
14476 
to_string(PipelineStageFlags2KHR value)14477   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlags2KHR value )
14478   {
14479     if ( !value )
14480       return "{}";
14481 
14482     std::string result;
14483     if ( value & PipelineStageFlagBits2KHR::eTopOfPipe )
14484       result += "TopOfPipe | ";
14485     if ( value & PipelineStageFlagBits2KHR::eDrawIndirect )
14486       result += "DrawIndirect | ";
14487     if ( value & PipelineStageFlagBits2KHR::eVertexInput )
14488       result += "VertexInput | ";
14489     if ( value & PipelineStageFlagBits2KHR::eVertexShader )
14490       result += "VertexShader | ";
14491     if ( value & PipelineStageFlagBits2KHR::eTessellationControlShader )
14492       result += "TessellationControlShader | ";
14493     if ( value & PipelineStageFlagBits2KHR::eTessellationEvaluationShader )
14494       result += "TessellationEvaluationShader | ";
14495     if ( value & PipelineStageFlagBits2KHR::eGeometryShader )
14496       result += "GeometryShader | ";
14497     if ( value & PipelineStageFlagBits2KHR::eFragmentShader )
14498       result += "FragmentShader | ";
14499     if ( value & PipelineStageFlagBits2KHR::eEarlyFragmentTests )
14500       result += "EarlyFragmentTests | ";
14501     if ( value & PipelineStageFlagBits2KHR::eLateFragmentTests )
14502       result += "LateFragmentTests | ";
14503     if ( value & PipelineStageFlagBits2KHR::eColorAttachmentOutput )
14504       result += "ColorAttachmentOutput | ";
14505     if ( value & PipelineStageFlagBits2KHR::eComputeShader )
14506       result += "ComputeShader | ";
14507     if ( value & PipelineStageFlagBits2KHR::eAllTransfer )
14508       result += "AllTransfer | ";
14509     if ( value & PipelineStageFlagBits2KHR::eBottomOfPipe )
14510       result += "BottomOfPipe | ";
14511     if ( value & PipelineStageFlagBits2KHR::eHost )
14512       result += "Host | ";
14513     if ( value & PipelineStageFlagBits2KHR::eAllGraphics )
14514       result += "AllGraphics | ";
14515     if ( value & PipelineStageFlagBits2KHR::eAllCommands )
14516       result += "AllCommands | ";
14517     if ( value & PipelineStageFlagBits2KHR::eCopy )
14518       result += "Copy | ";
14519     if ( value & PipelineStageFlagBits2KHR::eResolve )
14520       result += "Resolve | ";
14521     if ( value & PipelineStageFlagBits2KHR::eBlit )
14522       result += "Blit | ";
14523     if ( value & PipelineStageFlagBits2KHR::eClear )
14524       result += "Clear | ";
14525     if ( value & PipelineStageFlagBits2KHR::eIndexInput )
14526       result += "IndexInput | ";
14527     if ( value & PipelineStageFlagBits2KHR::eVertexAttributeInput )
14528       result += "VertexAttributeInput | ";
14529     if ( value & PipelineStageFlagBits2KHR::ePreRasterizationShaders )
14530       result += "PreRasterizationShaders | ";
14531 #if defined( VK_ENABLE_BETA_EXTENSIONS )
14532     if ( value & PipelineStageFlagBits2KHR::eVideoDecode )
14533       result += "VideoDecode | ";
14534     if ( value & PipelineStageFlagBits2KHR::eVideoEncode )
14535       result += "VideoEncode | ";
14536 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14537     if ( value & PipelineStageFlagBits2KHR::eTransformFeedbackEXT )
14538       result += "TransformFeedbackEXT | ";
14539     if ( value & PipelineStageFlagBits2KHR::eConditionalRenderingEXT )
14540       result += "ConditionalRenderingEXT | ";
14541     if ( value & PipelineStageFlagBits2KHR::eCommandPreprocessNV )
14542       result += "CommandPreprocessNV | ";
14543     if ( value & PipelineStageFlagBits2KHR::eFragmentShadingRateAttachment )
14544       result += "FragmentShadingRateAttachment | ";
14545     if ( value & PipelineStageFlagBits2KHR::eAccelerationStructureBuild )
14546       result += "AccelerationStructureBuild | ";
14547     if ( value & PipelineStageFlagBits2KHR::eRayTracingShader )
14548       result += "RayTracingShader | ";
14549     if ( value & PipelineStageFlagBits2KHR::eFragmentDensityProcessEXT )
14550       result += "FragmentDensityProcessEXT | ";
14551     if ( value & PipelineStageFlagBits2KHR::eTaskShaderNV )
14552       result += "TaskShaderNV | ";
14553     if ( value & PipelineStageFlagBits2KHR::eMeshShaderNV )
14554       result += "MeshShaderNV | ";
14555     if ( value & PipelineStageFlagBits2KHR::eSubpassShadingHUAWEI )
14556       result += "SubpassShadingHUAWEI | ";
14557     if ( value & PipelineStageFlagBits2KHR::eInvocationMaskHUAWEI )
14558       result += "InvocationMaskHUAWEI | ";
14559 
14560     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14561   }
14562 
14563   using AccessFlags2KHR = Flags<AccessFlagBits2KHR>;
14564 
14565   template <>
14566   struct FlagTraits<AccessFlagBits2KHR>
14567   {
14568     enum : VkFlags64
14569     {
14570       allFlags =
14571         VkFlags64( AccessFlagBits2KHR::eNone ) | VkFlags64( AccessFlagBits2KHR::eIndirectCommandRead ) |
14572         VkFlags64( AccessFlagBits2KHR::eIndexRead ) | VkFlags64( AccessFlagBits2KHR::eVertexAttributeRead ) |
14573         VkFlags64( AccessFlagBits2KHR::eUniformRead ) | VkFlags64( AccessFlagBits2KHR::eInputAttachmentRead ) |
14574         VkFlags64( AccessFlagBits2KHR::eShaderRead ) | VkFlags64( AccessFlagBits2KHR::eShaderWrite ) |
14575         VkFlags64( AccessFlagBits2KHR::eColorAttachmentRead ) | VkFlags64( AccessFlagBits2KHR::eColorAttachmentWrite ) |
14576         VkFlags64( AccessFlagBits2KHR::eDepthStencilAttachmentRead ) |
14577         VkFlags64( AccessFlagBits2KHR::eDepthStencilAttachmentWrite ) | VkFlags64( AccessFlagBits2KHR::eTransferRead ) |
14578         VkFlags64( AccessFlagBits2KHR::eTransferWrite ) | VkFlags64( AccessFlagBits2KHR::eHostRead ) |
14579         VkFlags64( AccessFlagBits2KHR::eHostWrite ) | VkFlags64( AccessFlagBits2KHR::eMemoryRead ) |
14580         VkFlags64( AccessFlagBits2KHR::eMemoryWrite ) | VkFlags64( AccessFlagBits2KHR::eShaderSampledRead ) |
14581         VkFlags64( AccessFlagBits2KHR::eShaderStorageRead ) | VkFlags64( AccessFlagBits2KHR::eShaderStorageWrite )
14582 #if defined( VK_ENABLE_BETA_EXTENSIONS )
14583         | VkFlags64( AccessFlagBits2KHR::eVideoDecodeRead ) | VkFlags64( AccessFlagBits2KHR::eVideoDecodeWrite ) |
14584         VkFlags64( AccessFlagBits2KHR::eVideoEncodeRead ) | VkFlags64( AccessFlagBits2KHR::eVideoEncodeWrite )
14585 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14586         | VkFlags64( AccessFlagBits2KHR::eTransformFeedbackWriteEXT ) |
14587         VkFlags64( AccessFlagBits2KHR::eTransformFeedbackCounterReadEXT ) |
14588         VkFlags64( AccessFlagBits2KHR::eTransformFeedbackCounterWriteEXT ) |
14589         VkFlags64( AccessFlagBits2KHR::eConditionalRenderingReadEXT ) |
14590         VkFlags64( AccessFlagBits2KHR::eCommandPreprocessReadNV ) |
14591         VkFlags64( AccessFlagBits2KHR::eCommandPreprocessWriteNV ) |
14592         VkFlags64( AccessFlagBits2KHR::eFragmentShadingRateAttachmentRead ) |
14593         VkFlags64( AccessFlagBits2KHR::eAccelerationStructureRead ) |
14594         VkFlags64( AccessFlagBits2KHR::eAccelerationStructureWrite ) |
14595         VkFlags64( AccessFlagBits2KHR::eFragmentDensityMapReadEXT ) |
14596         VkFlags64( AccessFlagBits2KHR::eColorAttachmentReadNoncoherentEXT ) |
14597         VkFlags64( AccessFlagBits2KHR::eInvocationMaskReadHUAWEI )
14598     };
14599   };
14600 
operator |(AccessFlagBits2KHR bit0,AccessFlagBits2KHR bit1)14601   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator|( AccessFlagBits2KHR bit0,
14602                                                                     AccessFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
14603   {
14604     return AccessFlags2KHR( bit0 ) | bit1;
14605   }
14606 
operator &(AccessFlagBits2KHR bit0,AccessFlagBits2KHR bit1)14607   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator&( AccessFlagBits2KHR bit0,
14608                                                                     AccessFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
14609   {
14610     return AccessFlags2KHR( bit0 ) & bit1;
14611   }
14612 
operator ^(AccessFlagBits2KHR bit0,AccessFlagBits2KHR bit1)14613   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator^( AccessFlagBits2KHR bit0,
14614                                                                     AccessFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
14615   {
14616     return AccessFlags2KHR( bit0 ) ^ bit1;
14617   }
14618 
operator ~(AccessFlagBits2KHR bits)14619   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator~( AccessFlagBits2KHR bits ) VULKAN_HPP_NOEXCEPT
14620   {
14621     return ~( AccessFlags2KHR( bits ) );
14622   }
14623 
to_string(AccessFlags2KHR value)14624   VULKAN_HPP_INLINE std::string to_string( AccessFlags2KHR value )
14625   {
14626     if ( !value )
14627       return "{}";
14628 
14629     std::string result;
14630     if ( value & AccessFlagBits2KHR::eIndirectCommandRead )
14631       result += "IndirectCommandRead | ";
14632     if ( value & AccessFlagBits2KHR::eIndexRead )
14633       result += "IndexRead | ";
14634     if ( value & AccessFlagBits2KHR::eVertexAttributeRead )
14635       result += "VertexAttributeRead | ";
14636     if ( value & AccessFlagBits2KHR::eUniformRead )
14637       result += "UniformRead | ";
14638     if ( value & AccessFlagBits2KHR::eInputAttachmentRead )
14639       result += "InputAttachmentRead | ";
14640     if ( value & AccessFlagBits2KHR::eShaderRead )
14641       result += "ShaderRead | ";
14642     if ( value & AccessFlagBits2KHR::eShaderWrite )
14643       result += "ShaderWrite | ";
14644     if ( value & AccessFlagBits2KHR::eColorAttachmentRead )
14645       result += "ColorAttachmentRead | ";
14646     if ( value & AccessFlagBits2KHR::eColorAttachmentWrite )
14647       result += "ColorAttachmentWrite | ";
14648     if ( value & AccessFlagBits2KHR::eDepthStencilAttachmentRead )
14649       result += "DepthStencilAttachmentRead | ";
14650     if ( value & AccessFlagBits2KHR::eDepthStencilAttachmentWrite )
14651       result += "DepthStencilAttachmentWrite | ";
14652     if ( value & AccessFlagBits2KHR::eTransferRead )
14653       result += "TransferRead | ";
14654     if ( value & AccessFlagBits2KHR::eTransferWrite )
14655       result += "TransferWrite | ";
14656     if ( value & AccessFlagBits2KHR::eHostRead )
14657       result += "HostRead | ";
14658     if ( value & AccessFlagBits2KHR::eHostWrite )
14659       result += "HostWrite | ";
14660     if ( value & AccessFlagBits2KHR::eMemoryRead )
14661       result += "MemoryRead | ";
14662     if ( value & AccessFlagBits2KHR::eMemoryWrite )
14663       result += "MemoryWrite | ";
14664     if ( value & AccessFlagBits2KHR::eShaderSampledRead )
14665       result += "ShaderSampledRead | ";
14666     if ( value & AccessFlagBits2KHR::eShaderStorageRead )
14667       result += "ShaderStorageRead | ";
14668     if ( value & AccessFlagBits2KHR::eShaderStorageWrite )
14669       result += "ShaderStorageWrite | ";
14670 #if defined( VK_ENABLE_BETA_EXTENSIONS )
14671     if ( value & AccessFlagBits2KHR::eVideoDecodeRead )
14672       result += "VideoDecodeRead | ";
14673     if ( value & AccessFlagBits2KHR::eVideoDecodeWrite )
14674       result += "VideoDecodeWrite | ";
14675     if ( value & AccessFlagBits2KHR::eVideoEncodeRead )
14676       result += "VideoEncodeRead | ";
14677     if ( value & AccessFlagBits2KHR::eVideoEncodeWrite )
14678       result += "VideoEncodeWrite | ";
14679 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14680     if ( value & AccessFlagBits2KHR::eTransformFeedbackWriteEXT )
14681       result += "TransformFeedbackWriteEXT | ";
14682     if ( value & AccessFlagBits2KHR::eTransformFeedbackCounterReadEXT )
14683       result += "TransformFeedbackCounterReadEXT | ";
14684     if ( value & AccessFlagBits2KHR::eTransformFeedbackCounterWriteEXT )
14685       result += "TransformFeedbackCounterWriteEXT | ";
14686     if ( value & AccessFlagBits2KHR::eConditionalRenderingReadEXT )
14687       result += "ConditionalRenderingReadEXT | ";
14688     if ( value & AccessFlagBits2KHR::eCommandPreprocessReadNV )
14689       result += "CommandPreprocessReadNV | ";
14690     if ( value & AccessFlagBits2KHR::eCommandPreprocessWriteNV )
14691       result += "CommandPreprocessWriteNV | ";
14692     if ( value & AccessFlagBits2KHR::eFragmentShadingRateAttachmentRead )
14693       result += "FragmentShadingRateAttachmentRead | ";
14694     if ( value & AccessFlagBits2KHR::eAccelerationStructureRead )
14695       result += "AccelerationStructureRead | ";
14696     if ( value & AccessFlagBits2KHR::eAccelerationStructureWrite )
14697       result += "AccelerationStructureWrite | ";
14698     if ( value & AccessFlagBits2KHR::eFragmentDensityMapReadEXT )
14699       result += "FragmentDensityMapReadEXT | ";
14700     if ( value & AccessFlagBits2KHR::eColorAttachmentReadNoncoherentEXT )
14701       result += "ColorAttachmentReadNoncoherentEXT | ";
14702     if ( value & AccessFlagBits2KHR::eInvocationMaskReadHUAWEI )
14703       result += "InvocationMaskReadHUAWEI | ";
14704 
14705     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14706   }
14707 
14708   using SubmitFlagsKHR = Flags<SubmitFlagBitsKHR>;
14709 
14710   template <>
14711   struct FlagTraits<SubmitFlagBitsKHR>
14712   {
14713     enum : VkFlags
14714     {
14715       allFlags = VkFlags( SubmitFlagBitsKHR::eProtected )
14716     };
14717   };
14718 
operator |(SubmitFlagBitsKHR bit0,SubmitFlagBitsKHR bit1)14719   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator|( SubmitFlagBitsKHR bit0,
14720                                                                    SubmitFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14721   {
14722     return SubmitFlagsKHR( bit0 ) | bit1;
14723   }
14724 
operator &(SubmitFlagBitsKHR bit0,SubmitFlagBitsKHR bit1)14725   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator&( SubmitFlagBitsKHR bit0,
14726                                                                    SubmitFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14727   {
14728     return SubmitFlagsKHR( bit0 ) & bit1;
14729   }
14730 
operator ^(SubmitFlagBitsKHR bit0,SubmitFlagBitsKHR bit1)14731   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator^( SubmitFlagBitsKHR bit0,
14732                                                                    SubmitFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14733   {
14734     return SubmitFlagsKHR( bit0 ) ^ bit1;
14735   }
14736 
operator ~(SubmitFlagBitsKHR bits)14737   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator~( SubmitFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
14738   {
14739     return ~( SubmitFlagsKHR( bits ) );
14740   }
14741 
to_string(SubmitFlagsKHR value)14742   VULKAN_HPP_INLINE std::string to_string( SubmitFlagsKHR value )
14743   {
14744     if ( !value )
14745       return "{}";
14746 
14747     std::string result;
14748     if ( value & SubmitFlagBitsKHR::eProtected )
14749       result += "Protected | ";
14750 
14751     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14752   }
14753 
14754   //=== VK_NV_ray_tracing_motion_blur ===
14755 
14756   using AccelerationStructureMotionInfoFlagsNV = Flags<AccelerationStructureMotionInfoFlagBitsNV>;
14757 
to_string(AccelerationStructureMotionInfoFlagsNV)14758   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMotionInfoFlagsNV )
14759   {
14760     return "{}";
14761   }
14762 
14763   using AccelerationStructureMotionInstanceFlagsNV = Flags<AccelerationStructureMotionInstanceFlagBitsNV>;
14764 
to_string(AccelerationStructureMotionInstanceFlagsNV)14765   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMotionInstanceFlagsNV )
14766   {
14767     return "{}";
14768   }
14769 
14770 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
14771   //=== VK_EXT_directfb_surface ===
14772 
14773   using DirectFBSurfaceCreateFlagsEXT = Flags<DirectFBSurfaceCreateFlagBitsEXT>;
14774 
to_string(DirectFBSurfaceCreateFlagsEXT)14775   VULKAN_HPP_INLINE std::string to_string( DirectFBSurfaceCreateFlagsEXT )
14776   {
14777     return "{}";
14778   }
14779 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
14780 
14781   //=== VK_KHR_format_feature_flags2 ===
14782 
14783   using FormatFeatureFlags2KHR = Flags<FormatFeatureFlagBits2KHR>;
14784 
14785   template <>
14786   struct FlagTraits<FormatFeatureFlagBits2KHR>
14787   {
14788     enum : VkFlags64
14789     {
14790       allFlags =
14791         VkFlags64( FormatFeatureFlagBits2KHR::eSampledImage ) | VkFlags64( FormatFeatureFlagBits2KHR::eStorageImage ) |
14792         VkFlags64( FormatFeatureFlagBits2KHR::eStorageImageAtomic ) |
14793         VkFlags64( FormatFeatureFlagBits2KHR::eUniformTexelBuffer ) |
14794         VkFlags64( FormatFeatureFlagBits2KHR::eStorageTexelBuffer ) |
14795         VkFlags64( FormatFeatureFlagBits2KHR::eStorageTexelBufferAtomic ) |
14796         VkFlags64( FormatFeatureFlagBits2KHR::eVertexBuffer ) |
14797         VkFlags64( FormatFeatureFlagBits2KHR::eColorAttachment ) |
14798         VkFlags64( FormatFeatureFlagBits2KHR::eColorAttachmentBlend ) |
14799         VkFlags64( FormatFeatureFlagBits2KHR::eDepthStencilAttachment ) |
14800         VkFlags64( FormatFeatureFlagBits2KHR::eBlitSrc ) | VkFlags64( FormatFeatureFlagBits2KHR::eBlitDst ) |
14801         VkFlags64( FormatFeatureFlagBits2KHR::eSampledImageFilterLinear ) |
14802         VkFlags64( FormatFeatureFlagBits2KHR::eSampledImageFilterCubicEXT ) |
14803         VkFlags64( FormatFeatureFlagBits2KHR::eTransferSrc ) | VkFlags64( FormatFeatureFlagBits2KHR::eTransferDst ) |
14804         VkFlags64( FormatFeatureFlagBits2KHR::eSampledImageFilterMinmax ) |
14805         VkFlags64( FormatFeatureFlagBits2KHR::eMidpointChromaSamples ) |
14806         VkFlags64( FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionLinearFilter ) |
14807         VkFlags64( FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionSeparateReconstructionFilter ) |
14808         VkFlags64( FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionChromaReconstructionExplicit ) |
14809         VkFlags64( FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable ) |
14810         VkFlags64( FormatFeatureFlagBits2KHR::eDisjoint ) |
14811         VkFlags64( FormatFeatureFlagBits2KHR::eCositedChromaSamples ) |
14812         VkFlags64( FormatFeatureFlagBits2KHR::eStorageReadWithoutFormat ) |
14813         VkFlags64( FormatFeatureFlagBits2KHR::eStorageWriteWithoutFormat ) |
14814         VkFlags64( FormatFeatureFlagBits2KHR::eSampledImageDepthComparison )
14815 #if defined( VK_ENABLE_BETA_EXTENSIONS )
14816         | VkFlags64( FormatFeatureFlagBits2KHR::eVideoDecodeOutput ) |
14817         VkFlags64( FormatFeatureFlagBits2KHR::eVideoDecodeDpb )
14818 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14819         | VkFlags64( FormatFeatureFlagBits2KHR::eAccelerationStructureVertexBuffer ) |
14820         VkFlags64( FormatFeatureFlagBits2KHR::eFragmentDensityMapEXT ) |
14821         VkFlags64( FormatFeatureFlagBits2KHR::eFragmentShadingRateAttachment )
14822 #if defined( VK_ENABLE_BETA_EXTENSIONS )
14823         | VkFlags64( FormatFeatureFlagBits2KHR::eVideoEncodeInput ) |
14824         VkFlags64( FormatFeatureFlagBits2KHR::eVideoEncodeDpb )
14825 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14826     };
14827   };
14828 
14829   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags2KHR
operator |(FormatFeatureFlagBits2KHR bit0,FormatFeatureFlagBits2KHR bit1)14830     operator|( FormatFeatureFlagBits2KHR bit0, FormatFeatureFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
14831   {
14832     return FormatFeatureFlags2KHR( bit0 ) | bit1;
14833   }
14834 
14835   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags2KHR
operator &(FormatFeatureFlagBits2KHR bit0,FormatFeatureFlagBits2KHR bit1)14836     operator&( FormatFeatureFlagBits2KHR bit0, FormatFeatureFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
14837   {
14838     return FormatFeatureFlags2KHR( bit0 ) & bit1;
14839   }
14840 
14841   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags2KHR
operator ^(FormatFeatureFlagBits2KHR bit0,FormatFeatureFlagBits2KHR bit1)14842     operator^( FormatFeatureFlagBits2KHR bit0, FormatFeatureFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
14843   {
14844     return FormatFeatureFlags2KHR( bit0 ) ^ bit1;
14845   }
14846 
operator ~(FormatFeatureFlagBits2KHR bits)14847   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags2KHR operator~( FormatFeatureFlagBits2KHR bits )
14848     VULKAN_HPP_NOEXCEPT
14849   {
14850     return ~( FormatFeatureFlags2KHR( bits ) );
14851   }
14852 
to_string(FormatFeatureFlags2KHR value)14853   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlags2KHR value )
14854   {
14855     if ( !value )
14856       return "{}";
14857 
14858     std::string result;
14859     if ( value & FormatFeatureFlagBits2KHR::eSampledImage )
14860       result += "SampledImage | ";
14861     if ( value & FormatFeatureFlagBits2KHR::eStorageImage )
14862       result += "StorageImage | ";
14863     if ( value & FormatFeatureFlagBits2KHR::eStorageImageAtomic )
14864       result += "StorageImageAtomic | ";
14865     if ( value & FormatFeatureFlagBits2KHR::eUniformTexelBuffer )
14866       result += "UniformTexelBuffer | ";
14867     if ( value & FormatFeatureFlagBits2KHR::eStorageTexelBuffer )
14868       result += "StorageTexelBuffer | ";
14869     if ( value & FormatFeatureFlagBits2KHR::eStorageTexelBufferAtomic )
14870       result += "StorageTexelBufferAtomic | ";
14871     if ( value & FormatFeatureFlagBits2KHR::eVertexBuffer )
14872       result += "VertexBuffer | ";
14873     if ( value & FormatFeatureFlagBits2KHR::eColorAttachment )
14874       result += "ColorAttachment | ";
14875     if ( value & FormatFeatureFlagBits2KHR::eColorAttachmentBlend )
14876       result += "ColorAttachmentBlend | ";
14877     if ( value & FormatFeatureFlagBits2KHR::eDepthStencilAttachment )
14878       result += "DepthStencilAttachment | ";
14879     if ( value & FormatFeatureFlagBits2KHR::eBlitSrc )
14880       result += "BlitSrc | ";
14881     if ( value & FormatFeatureFlagBits2KHR::eBlitDst )
14882       result += "BlitDst | ";
14883     if ( value & FormatFeatureFlagBits2KHR::eSampledImageFilterLinear )
14884       result += "SampledImageFilterLinear | ";
14885     if ( value & FormatFeatureFlagBits2KHR::eSampledImageFilterCubicEXT )
14886       result += "SampledImageFilterCubicEXT | ";
14887     if ( value & FormatFeatureFlagBits2KHR::eTransferSrc )
14888       result += "TransferSrc | ";
14889     if ( value & FormatFeatureFlagBits2KHR::eTransferDst )
14890       result += "TransferDst | ";
14891     if ( value & FormatFeatureFlagBits2KHR::eSampledImageFilterMinmax )
14892       result += "SampledImageFilterMinmax | ";
14893     if ( value & FormatFeatureFlagBits2KHR::eMidpointChromaSamples )
14894       result += "MidpointChromaSamples | ";
14895     if ( value & FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionLinearFilter )
14896       result += "SampledImageYcbcrConversionLinearFilter | ";
14897     if ( value & FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionSeparateReconstructionFilter )
14898       result += "SampledImageYcbcrConversionSeparateReconstructionFilter | ";
14899     if ( value & FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionChromaReconstructionExplicit )
14900       result += "SampledImageYcbcrConversionChromaReconstructionExplicit | ";
14901     if ( value & FormatFeatureFlagBits2KHR::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable )
14902       result += "SampledImageYcbcrConversionChromaReconstructionExplicitForceable | ";
14903     if ( value & FormatFeatureFlagBits2KHR::eDisjoint )
14904       result += "Disjoint | ";
14905     if ( value & FormatFeatureFlagBits2KHR::eCositedChromaSamples )
14906       result += "CositedChromaSamples | ";
14907     if ( value & FormatFeatureFlagBits2KHR::eStorageReadWithoutFormat )
14908       result += "StorageReadWithoutFormat | ";
14909     if ( value & FormatFeatureFlagBits2KHR::eStorageWriteWithoutFormat )
14910       result += "StorageWriteWithoutFormat | ";
14911     if ( value & FormatFeatureFlagBits2KHR::eSampledImageDepthComparison )
14912       result += "SampledImageDepthComparison | ";
14913 #if defined( VK_ENABLE_BETA_EXTENSIONS )
14914     if ( value & FormatFeatureFlagBits2KHR::eVideoDecodeOutput )
14915       result += "VideoDecodeOutput | ";
14916     if ( value & FormatFeatureFlagBits2KHR::eVideoDecodeDpb )
14917       result += "VideoDecodeDpb | ";
14918 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14919     if ( value & FormatFeatureFlagBits2KHR::eAccelerationStructureVertexBuffer )
14920       result += "AccelerationStructureVertexBuffer | ";
14921     if ( value & FormatFeatureFlagBits2KHR::eFragmentDensityMapEXT )
14922       result += "FragmentDensityMapEXT | ";
14923     if ( value & FormatFeatureFlagBits2KHR::eFragmentShadingRateAttachment )
14924       result += "FragmentShadingRateAttachment | ";
14925 #if defined( VK_ENABLE_BETA_EXTENSIONS )
14926     if ( value & FormatFeatureFlagBits2KHR::eVideoEncodeInput )
14927       result += "VideoEncodeInput | ";
14928     if ( value & FormatFeatureFlagBits2KHR::eVideoEncodeDpb )
14929       result += "VideoEncodeDpb | ";
14930 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
14931 
14932     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14933   }
14934 
14935 #if defined( VK_USE_PLATFORM_FUCHSIA )
14936   //=== VK_FUCHSIA_buffer_collection ===
14937 
14938   using ImageFormatConstraintsFlagsFUCHSIA = Flags<ImageFormatConstraintsFlagBitsFUCHSIA>;
14939 
to_string(ImageFormatConstraintsFlagsFUCHSIA)14940   VULKAN_HPP_INLINE std::string to_string( ImageFormatConstraintsFlagsFUCHSIA )
14941   {
14942     return "{}";
14943   }
14944 
14945   using ImageConstraintsInfoFlagsFUCHSIA = Flags<ImageConstraintsInfoFlagBitsFUCHSIA>;
14946 
14947   template <>
14948   struct FlagTraits<ImageConstraintsInfoFlagBitsFUCHSIA>
14949   {
14950     enum : VkFlags
14951     {
14952       allFlags = VkFlags( ImageConstraintsInfoFlagBitsFUCHSIA::eCpuReadRarely ) |
14953                  VkFlags( ImageConstraintsInfoFlagBitsFUCHSIA::eCpuReadOften ) |
14954                  VkFlags( ImageConstraintsInfoFlagBitsFUCHSIA::eCpuWriteRarely ) |
14955                  VkFlags( ImageConstraintsInfoFlagBitsFUCHSIA::eCpuWriteOften ) |
14956                  VkFlags( ImageConstraintsInfoFlagBitsFUCHSIA::eProtectedOptional )
14957     };
14958   };
14959 
14960   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageConstraintsInfoFlagsFUCHSIA
operator |(ImageConstraintsInfoFlagBitsFUCHSIA bit0,ImageConstraintsInfoFlagBitsFUCHSIA bit1)14961     operator|( ImageConstraintsInfoFlagBitsFUCHSIA bit0, ImageConstraintsInfoFlagBitsFUCHSIA bit1 ) VULKAN_HPP_NOEXCEPT
14962   {
14963     return ImageConstraintsInfoFlagsFUCHSIA( bit0 ) | bit1;
14964   }
14965 
14966   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageConstraintsInfoFlagsFUCHSIA
operator &(ImageConstraintsInfoFlagBitsFUCHSIA bit0,ImageConstraintsInfoFlagBitsFUCHSIA bit1)14967     operator&( ImageConstraintsInfoFlagBitsFUCHSIA bit0, ImageConstraintsInfoFlagBitsFUCHSIA bit1 ) VULKAN_HPP_NOEXCEPT
14968   {
14969     return ImageConstraintsInfoFlagsFUCHSIA( bit0 ) & bit1;
14970   }
14971 
14972   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageConstraintsInfoFlagsFUCHSIA
operator ^(ImageConstraintsInfoFlagBitsFUCHSIA bit0,ImageConstraintsInfoFlagBitsFUCHSIA bit1)14973     operator^( ImageConstraintsInfoFlagBitsFUCHSIA bit0, ImageConstraintsInfoFlagBitsFUCHSIA bit1 ) VULKAN_HPP_NOEXCEPT
14974   {
14975     return ImageConstraintsInfoFlagsFUCHSIA( bit0 ) ^ bit1;
14976   }
14977 
14978   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageConstraintsInfoFlagsFUCHSIA
operator ~(ImageConstraintsInfoFlagBitsFUCHSIA bits)14979     operator~( ImageConstraintsInfoFlagBitsFUCHSIA bits ) VULKAN_HPP_NOEXCEPT
14980   {
14981     return ~( ImageConstraintsInfoFlagsFUCHSIA( bits ) );
14982   }
14983 
to_string(ImageConstraintsInfoFlagsFUCHSIA value)14984   VULKAN_HPP_INLINE std::string to_string( ImageConstraintsInfoFlagsFUCHSIA value )
14985   {
14986     if ( !value )
14987       return "{}";
14988 
14989     std::string result;
14990     if ( value & ImageConstraintsInfoFlagBitsFUCHSIA::eCpuReadRarely )
14991       result += "CpuReadRarely | ";
14992     if ( value & ImageConstraintsInfoFlagBitsFUCHSIA::eCpuReadOften )
14993       result += "CpuReadOften | ";
14994     if ( value & ImageConstraintsInfoFlagBitsFUCHSIA::eCpuWriteRarely )
14995       result += "CpuWriteRarely | ";
14996     if ( value & ImageConstraintsInfoFlagBitsFUCHSIA::eCpuWriteOften )
14997       result += "CpuWriteOften | ";
14998     if ( value & ImageConstraintsInfoFlagBitsFUCHSIA::eProtectedOptional )
14999       result += "ProtectedOptional | ";
15000 
15001     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
15002   }
15003 #endif /*VK_USE_PLATFORM_FUCHSIA*/
15004 
15005 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
15006   //=== VK_QNX_screen_surface ===
15007 
15008   using ScreenSurfaceCreateFlagsQNX = Flags<ScreenSurfaceCreateFlagBitsQNX>;
15009 
to_string(ScreenSurfaceCreateFlagsQNX)15010   VULKAN_HPP_INLINE std::string to_string( ScreenSurfaceCreateFlagsQNX )
15011   {
15012     return "{}";
15013   }
15014 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
15015 
15016 }  // namespace VULKAN_HPP_NAMESPACE
15017 #endif
15018