• 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     eVideoDecodeH264CapabilitiesEXT             = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT,
381     eVideoDecodeH264SessionCreateInfoEXT        = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT,
382     eVideoDecodeH264PictureInfoEXT              = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT,
383     eVideoDecodeH264MvcEXT                      = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT,
384     eVideoDecodeH264ProfileEXT                  = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT,
385     eVideoDecodeH264SessionParametersCreateInfoEXT =
386       VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT,
387     eVideoDecodeH264SessionParametersAddInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT,
388     eVideoDecodeH264DpbSlotInfoEXT              = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT,
389 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
390     eTextureLodGatherFormatPropertiesAMD = VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD,
391 #if defined( VK_USE_PLATFORM_GGP )
392     eStreamDescriptorSurfaceCreateInfoGGP = VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP,
393 #endif /*VK_USE_PLATFORM_GGP*/
394     ePhysicalDeviceCornerSampledImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV,
395     eExternalMemoryImageCreateInfoNV            = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV,
396     eExportMemoryAllocateInfoNV                 = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV,
397 #if defined( VK_USE_PLATFORM_WIN32_KHR )
398     eImportMemoryWin32HandleInfoNV       = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV,
399     eExportMemoryWin32HandleInfoNV       = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV,
400     eWin32KeyedMutexAcquireReleaseInfoNV = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV,
401 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
402     eValidationFlagsEXT = VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT,
403 #if defined( VK_USE_PLATFORM_VI_NN )
404     eViSurfaceCreateInfoNN = VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN,
405 #endif /*VK_USE_PLATFORM_VI_NN*/
406     ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT =
407       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT,
408     eImageViewAstcDecodeModeEXT          = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT,
409     ePhysicalDeviceAstcDecodeFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT,
410 #if defined( VK_USE_PLATFORM_WIN32_KHR )
411     eImportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
412     eExportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
413     eMemoryWin32HandlePropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR,
414     eMemoryGetWin32HandleInfoKHR    = VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR,
415 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
416     eImportMemoryFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR,
417     eMemoryFdPropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR,
418     eMemoryGetFdInfoKHR    = VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR,
419 #if defined( VK_USE_PLATFORM_WIN32_KHR )
420     eWin32KeyedMutexAcquireReleaseInfoKHR = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR,
421     eImportSemaphoreWin32HandleInfoKHR    = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
422     eExportSemaphoreWin32HandleInfoKHR    = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
423     eD3D12FenceSubmitInfoKHR              = VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR,
424     eSemaphoreGetWin32HandleInfoKHR       = VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR,
425 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
426     eImportSemaphoreFdInfoKHR                  = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR,
427     eSemaphoreGetFdInfoKHR                     = VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR,
428     ePhysicalDevicePushDescriptorPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR,
429     eCommandBufferInheritanceConditionalRenderingInfoEXT =
430       VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT,
431     ePhysicalDeviceConditionalRenderingFeaturesEXT =
432       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT,
433     eConditionalRenderingBeginInfoEXT          = VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT,
434     ePresentRegionsKHR                         = VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR,
435     ePipelineViewportWScalingStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV,
436     eSurfaceCapabilities2EXT                   = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
437     eDisplayPowerInfoEXT                       = VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT,
438     eDeviceEventInfoEXT                        = VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT,
439     eDisplayEventInfoEXT                       = VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT,
440     eSwapchainCounterCreateInfoEXT             = VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT,
441     ePresentTimesInfoGOOGLE                    = VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE,
442     ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX =
443       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX,
444     ePipelineViewportSwizzleStateCreateInfoNV    = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV,
445     ePhysicalDeviceDiscardRectanglePropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT,
446     ePipelineDiscardRectangleStateCreateInfoEXT  = VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT,
447     ePhysicalDeviceConservativeRasterizationPropertiesEXT =
448       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT,
449     ePipelineRasterizationConservativeStateCreateInfoEXT =
450       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT,
451     ePhysicalDeviceDepthClipEnableFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT,
452     ePipelineRasterizationDepthClipStateCreateInfoEXT =
453       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT,
454     eHdrMetadataEXT                      = VK_STRUCTURE_TYPE_HDR_METADATA_EXT,
455     eSharedPresentSurfaceCapabilitiesKHR = VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR,
456 #if defined( VK_USE_PLATFORM_WIN32_KHR )
457     eImportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR,
458     eExportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR,
459     eFenceGetWin32HandleInfoKHR    = VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR,
460 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
461     eImportFenceFdInfoKHR                        = VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR,
462     eFenceGetFdInfoKHR                           = VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR,
463     ePhysicalDevicePerformanceQueryFeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR,
464     ePhysicalDevicePerformanceQueryPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR,
465     eQueryPoolPerformanceCreateInfoKHR           = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR,
466     ePerformanceQuerySubmitInfoKHR               = VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR,
467     eAcquireProfilingLockInfoKHR                 = VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR,
468     ePerformanceCounterKHR                       = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR,
469     ePerformanceCounterDescriptionKHR            = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR,
470     ePhysicalDeviceSurfaceInfo2KHR               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR,
471     eSurfaceCapabilities2KHR                     = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR,
472     eSurfaceFormat2KHR                           = VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR,
473     eDisplayProperties2KHR                       = VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR,
474     eDisplayPlaneProperties2KHR                  = VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR,
475     eDisplayModeProperties2KHR                   = VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR,
476     eDisplayPlaneInfo2KHR                        = VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR,
477     eDisplayPlaneCapabilities2KHR                = VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR,
478 #if defined( VK_USE_PLATFORM_IOS_MVK )
479     eIosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK,
480 #endif /*VK_USE_PLATFORM_IOS_MVK*/
481 #if defined( VK_USE_PLATFORM_MACOS_MVK )
482     eMacosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK,
483 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
484     eDebugUtilsObjectNameInfoEXT        = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT,
485     eDebugUtilsObjectTagInfoEXT         = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT,
486     eDebugUtilsLabelEXT                 = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
487     eDebugUtilsMessengerCallbackDataEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT,
488     eDebugUtilsMessengerCreateInfoEXT   = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
489 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
490     eAndroidHardwareBufferUsageANDROID            = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID,
491     eAndroidHardwareBufferPropertiesANDROID       = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID,
492     eAndroidHardwareBufferFormatPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID,
493     eImportAndroidHardwareBufferInfoANDROID       = VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
494     eMemoryGetAndroidHardwareBufferInfoANDROID    = VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
495     eExternalFormatANDROID                        = VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID,
496 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
497     ePhysicalDeviceInlineUniformBlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT,
498     ePhysicalDeviceInlineUniformBlockPropertiesEXT =
499       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT,
500     eWriteDescriptorSetInlineUniformBlockEXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT,
501     eDescriptorPoolInlineUniformBlockCreateInfoEXT =
502       VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT,
503     eSampleLocationsInfoEXT                     = VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT,
504     eRenderPassSampleLocationsBeginInfoEXT      = VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT,
505     ePipelineSampleLocationsStateCreateInfoEXT  = VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT,
506     ePhysicalDeviceSampleLocationsPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT,
507     eMultisamplePropertiesEXT                   = VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT,
508     ePhysicalDeviceBlendOperationAdvancedFeaturesEXT =
509       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT,
510     ePhysicalDeviceBlendOperationAdvancedPropertiesEXT =
511       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT,
512     ePipelineColorBlendAdvancedStateCreateInfoEXT =
513       VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT,
514     ePipelineCoverageToColorStateCreateInfoNV   = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV,
515     eWriteDescriptorSetAccelerationStructureKHR = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR,
516     eAccelerationStructureBuildGeometryInfoKHR  = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,
517     eAccelerationStructureDeviceAddressInfoKHR  = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR,
518     eAccelerationStructureGeometryAabbsDataKHR  = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR,
519     eAccelerationStructureGeometryInstancesDataKHR =
520       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR,
521     eAccelerationStructureGeometryTrianglesDataKHR =
522       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR,
523     eAccelerationStructureGeometryKHR         = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR,
524     eAccelerationStructureVersionInfoKHR      = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR,
525     eCopyAccelerationStructureInfoKHR         = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR,
526     eCopyAccelerationStructureToMemoryInfoKHR = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR,
527     eCopyMemoryToAccelerationStructureInfoKHR = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR,
528     ePhysicalDeviceAccelerationStructureFeaturesKHR =
529       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR,
530     ePhysicalDeviceAccelerationStructurePropertiesKHR =
531       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR,
532     eAccelerationStructureCreateInfoKHR          = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR,
533     eAccelerationStructureBuildSizesInfoKHR      = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR,
534     ePhysicalDeviceRayTracingPipelineFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR,
535     ePhysicalDeviceRayTracingPipelinePropertiesKHR =
536       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR,
537     eRayTracingPipelineCreateInfoKHR             = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR,
538     eRayTracingShaderGroupCreateInfoKHR          = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR,
539     eRayTracingPipelineInterfaceCreateInfoKHR    = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR,
540     ePhysicalDeviceRayQueryFeaturesKHR           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR,
541     ePipelineCoverageModulationStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV,
542     ePhysicalDeviceShaderSmBuiltinsFeaturesNV    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV,
543     ePhysicalDeviceShaderSmBuiltinsPropertiesNV  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV,
544     eDrmFormatModifierPropertiesListEXT          = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT,
545     ePhysicalDeviceImageDrmFormatModifierInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT,
546     eImageDrmFormatModifierListCreateInfoEXT     = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT,
547     eImageDrmFormatModifierExplicitCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,
548     eImageDrmFormatModifierPropertiesEXT         = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,
549     eValidationCacheCreateInfoEXT                = VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT,
550     eShaderModuleValidationCacheCreateInfoEXT    = VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT,
551 #if defined( VK_ENABLE_BETA_EXTENSIONS )
552     ePhysicalDevicePortabilitySubsetFeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR,
553     ePhysicalDevicePortabilitySubsetPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR,
554 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
555     ePipelineViewportShadingRateImageStateCreateInfoNV =
556       VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV,
557     ePhysicalDeviceShadingRateImageFeaturesNV   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV,
558     ePhysicalDeviceShadingRateImagePropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV,
559     ePipelineViewportCoarseSampleOrderStateCreateInfoNV =
560       VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV,
561     eRayTracingPipelineCreateInfoNV            = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV,
562     eAccelerationStructureCreateInfoNV         = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV,
563     eGeometryNV                                = VK_STRUCTURE_TYPE_GEOMETRY_NV,
564     eGeometryTrianglesNV                       = VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV,
565     eGeometryAabbNV                            = VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV,
566     eBindAccelerationStructureMemoryInfoNV     = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV,
567     eWriteDescriptorSetAccelerationStructureNV = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV,
568     eAccelerationStructureMemoryRequirementsInfoNV =
569       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV,
570     ePhysicalDeviceRayTracingPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV,
571     eRayTracingShaderGroupCreateInfoNV    = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV,
572     eAccelerationStructureInfoNV          = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV,
573     ePhysicalDeviceRepresentativeFragmentTestFeaturesNV =
574       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV,
575     ePipelineRepresentativeFragmentTestStateCreateInfoNV =
576       VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV,
577     ePhysicalDeviceImageViewImageFormatInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT,
578     eFilterCubicImageViewImageFormatPropertiesEXT =
579       VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT,
580     eDeviceQueueGlobalPriorityCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT,
581     eImportMemoryHostPointerInfoEXT         = VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT,
582     eMemoryHostPointerPropertiesEXT         = VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT,
583     ePhysicalDeviceExternalMemoryHostPropertiesEXT =
584       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT,
585     ePhysicalDeviceShaderClockFeaturesKHR  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR,
586     ePipelineCompilerControlCreateInfoAMD  = VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD,
587     eCalibratedTimestampInfoEXT            = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT,
588     ePhysicalDeviceShaderCorePropertiesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD,
589 #if defined( VK_ENABLE_BETA_EXTENSIONS )
590     eVideoDecodeH265CapabilitiesEXT      = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT,
591     eVideoDecodeH265SessionCreateInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT,
592     eVideoDecodeH265SessionParametersCreateInfoEXT =
593       VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT,
594     eVideoDecodeH265SessionParametersAddInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT,
595     eVideoDecodeH265ProfileEXT                  = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT,
596     eVideoDecodeH265PictureInfoEXT              = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT,
597     eVideoDecodeH265DpbSlotInfoEXT              = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT,
598 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
599     eDeviceMemoryOverallocationCreateInfoAMD = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD,
600     ePhysicalDeviceVertexAttributeDivisorPropertiesEXT =
601       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT,
602     ePipelineVertexInputDivisorStateCreateInfoEXT =
603       VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT,
604     ePhysicalDeviceVertexAttributeDivisorFeaturesEXT =
605       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT,
606 #if defined( VK_USE_PLATFORM_GGP )
607     ePresentFrameTokenGGP = VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP,
608 #endif /*VK_USE_PLATFORM_GGP*/
609     ePipelineCreationFeedbackCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT,
610     ePhysicalDeviceComputeShaderDerivativesFeaturesNV =
611       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV,
612     ePhysicalDeviceMeshShaderFeaturesNV   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV,
613     ePhysicalDeviceMeshShaderPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV,
614     ePhysicalDeviceFragmentShaderBarycentricFeaturesNV =
615       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV,
616     ePhysicalDeviceShaderImageFootprintFeaturesNV =
617       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV,
618     ePipelineViewportExclusiveScissorStateCreateInfoNV =
619       VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV,
620     ePhysicalDeviceExclusiveScissorFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV,
621     eCheckpointDataNV                         = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV,
622     eQueueFamilyCheckpointPropertiesNV        = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV,
623     ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL =
624       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL,
625     eQueryPoolPerformanceQueryCreateInfoINTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
626     eInitializePerformanceApiInfoINTEL        = VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL,
627     ePerformanceMarkerInfoINTEL               = VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL,
628     ePerformanceStreamMarkerInfoINTEL         = VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL,
629     ePerformanceOverrideInfoINTEL             = VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL,
630     ePerformanceConfigurationAcquireInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL,
631     ePhysicalDevicePciBusInfoPropertiesEXT    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT,
632     eDisplayNativeHdrSurfaceCapabilitiesAMD   = VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD,
633     eSwapchainDisplayNativeHdrCreateInfoAMD   = VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD,
634 #if defined( VK_USE_PLATFORM_FUCHSIA )
635     eImagepipeSurfaceCreateInfoFUCHSIA = VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA,
636 #endif /*VK_USE_PLATFORM_FUCHSIA*/
637     ePhysicalDeviceShaderTerminateInvocationFeaturesKHR =
638       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR,
639 #if defined( VK_USE_PLATFORM_METAL_EXT )
640     eMetalSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT,
641 #endif /*VK_USE_PLATFORM_METAL_EXT*/
642     ePhysicalDeviceFragmentDensityMapFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT,
643     ePhysicalDeviceFragmentDensityMapPropertiesEXT =
644       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT,
645     eRenderPassFragmentDensityMapCreateInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT,
646     ePhysicalDeviceSubgroupSizeControlPropertiesEXT =
647       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT,
648     ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT =
649       VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
650     ePhysicalDeviceSubgroupSizeControlFeaturesEXT =
651       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT,
652     eFragmentShadingRateAttachmentInfoKHR = VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,
653     ePipelineFragmentShadingRateStateCreateInfoKHR =
654       VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR,
655     ePhysicalDeviceFragmentShadingRatePropertiesKHR =
656       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR,
657     ePhysicalDeviceFragmentShadingRateFeaturesKHR =
658       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR,
659     ePhysicalDeviceFragmentShadingRateKHR    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR,
660     ePhysicalDeviceShaderCoreProperties2AMD  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD,
661     ePhysicalDeviceCoherentMemoryFeaturesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD,
662     ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT =
663       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT,
664     ePhysicalDeviceMemoryBudgetPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT,
665     ePhysicalDeviceMemoryPriorityFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT,
666     eMemoryPriorityAllocateInfoEXT           = VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT,
667     eSurfaceProtectedCapabilitiesKHR         = VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR,
668     ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV =
669       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV,
670     ePhysicalDeviceBufferDeviceAddressFeaturesEXT =
671       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
672     eBufferDeviceAddressCreateInfoEXT            = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT,
673     ePhysicalDeviceToolPropertiesEXT             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT,
674     eValidationFeaturesEXT                       = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT,
675     ePhysicalDeviceCooperativeMatrixFeaturesNV   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV,
676     eCooperativeMatrixPropertiesNV               = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV,
677     ePhysicalDeviceCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV,
678     ePhysicalDeviceCoverageReductionModeFeaturesNV =
679       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV,
680     ePipelineCoverageReductionStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV,
681     eFramebufferMixedSamplesCombinationNV       = VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV,
682     ePhysicalDeviceFragmentShaderInterlockFeaturesEXT =
683       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT,
684     ePhysicalDeviceYcbcrImageArraysFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT,
685     ePhysicalDeviceProvokingVertexFeaturesEXT  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT,
686     ePipelineRasterizationProvokingVertexStateCreateInfoEXT =
687       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT,
688     ePhysicalDeviceProvokingVertexPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT,
689 #if defined( VK_USE_PLATFORM_WIN32_KHR )
690     eSurfaceFullScreenExclusiveInfoEXT         = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT,
691     eSurfaceCapabilitiesFullScreenExclusiveEXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT,
692     eSurfaceFullScreenExclusiveWin32InfoEXT    = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT,
693 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
694     eHeadlessSurfaceCreateInfoEXT                 = VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT,
695     ePhysicalDeviceLineRasterizationFeaturesEXT   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT,
696     ePipelineRasterizationLineStateCreateInfoEXT  = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT,
697     ePhysicalDeviceLineRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT,
698     ePhysicalDeviceShaderAtomicFloatFeaturesEXT   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT,
699     ePhysicalDeviceIndexTypeUint8FeaturesEXT      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT,
700     ePhysicalDeviceExtendedDynamicStateFeaturesEXT =
701       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT,
702     ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR =
703       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR,
704     ePipelineInfoKHR                             = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
705     ePipelineExecutablePropertiesKHR             = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR,
706     ePipelineExecutableInfoKHR                   = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR,
707     ePipelineExecutableStatisticKHR              = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR,
708     ePipelineExecutableInternalRepresentationKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR,
709     ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT =
710       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT,
711     ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV =
712       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV,
713     eGraphicsShaderGroupCreateInfoNV           = VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV,
714     eGraphicsPipelineShaderGroupsCreateInfoNV  = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV,
715     eIndirectCommandsLayoutTokenNV             = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV,
716     eIndirectCommandsLayoutCreateInfoNV        = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV,
717     eGeneratedCommandsInfoNV                   = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV,
718     eGeneratedCommandsMemoryRequirementsInfoNV = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV,
719     ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV =
720       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV,
721     ePhysicalDeviceInheritedViewportScissorFeaturesNV =
722       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV,
723     eCommandBufferInheritanceViewportScissorInfoNV =
724       VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV,
725     ePhysicalDeviceTexelBufferAlignmentFeaturesEXT =
726       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT,
727     ePhysicalDeviceTexelBufferAlignmentPropertiesEXT =
728       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT,
729     eCommandBufferInheritanceRenderPassTransformInfoQCOM =
730       VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM,
731     eRenderPassTransformBeginInfoQCOM            = VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM,
732     ePhysicalDeviceDeviceMemoryReportFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT,
733     eDeviceDeviceMemoryReportCreateInfoEXT       = VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT,
734     eDeviceMemoryReportCallbackDataEXT           = VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT,
735     ePhysicalDeviceRobustness2FeaturesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT,
736     ePhysicalDeviceRobustness2PropertiesEXT      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT,
737     eSamplerCustomBorderColorCreateInfoEXT       = VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT,
738     ePhysicalDeviceCustomBorderColorPropertiesEXT =
739       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT,
740     ePhysicalDeviceCustomBorderColorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT,
741     ePipelineLibraryCreateInfoKHR               = VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR,
742     ePhysicalDevicePrivateDataFeaturesEXT       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT,
743     eDevicePrivateDataCreateInfoEXT             = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT,
744     ePrivateDataSlotCreateInfoEXT               = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT,
745     ePhysicalDevicePipelineCreationCacheControlFeaturesEXT =
746       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT,
747 #if defined( VK_ENABLE_BETA_EXTENSIONS )
748     eVideoEncodeInfoKHR            = VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR,
749     eVideoEncodeRateControlInfoKHR = VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR,
750 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
751     ePhysicalDeviceDiagnosticsConfigFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV,
752     eDeviceDiagnosticsConfigCreateInfoNV       = VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV,
753     eMemoryBarrier2KHR                         = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR,
754     eBufferMemoryBarrier2KHR                   = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR,
755     eImageMemoryBarrier2KHR                    = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR,
756     eDependencyInfoKHR                         = VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR,
757     eSubmitInfo2KHR                            = VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR,
758     eSemaphoreSubmitInfoKHR                    = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR,
759     eCommandBufferSubmitInfoKHR                = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR,
760     ePhysicalDeviceSynchronization2FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR,
761     eQueueFamilyCheckpointProperties2NV        = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV,
762     eCheckpointData2NV                         = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV,
763     ePhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR =
764       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR,
765     ePhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR =
766       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR,
767     ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV =
768       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV,
769     ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV =
770       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV,
771     ePipelineFragmentShadingRateEnumStateCreateInfoNV =
772       VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV,
773     eAccelerationStructureGeometryMotionTrianglesDataNV =
774       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV,
775     ePhysicalDeviceRayTracingMotionBlurFeaturesNV =
776       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV,
777     eAccelerationStructureMotionInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV,
778     ePhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT =
779       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT,
780     ePhysicalDeviceFragmentDensityMap2FeaturesEXT =
781       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT,
782     ePhysicalDeviceFragmentDensityMap2PropertiesEXT =
783       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT,
784     eCopyCommandTransformInfoQCOM             = VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM,
785     ePhysicalDeviceImageRobustnessFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT,
786     ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR =
787       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR,
788     eCopyBufferInfo2KHR                   = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR,
789     eCopyImageInfo2KHR                    = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR,
790     eCopyBufferToImageInfo2KHR            = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR,
791     eCopyImageToBufferInfo2KHR            = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR,
792     eBlitImageInfo2KHR                    = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR,
793     eResolveImageInfo2KHR                 = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR,
794     eBufferCopy2KHR                       = VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR,
795     eImageCopy2KHR                        = VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR,
796     eImageBlit2KHR                        = VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR,
797     eBufferImageCopy2KHR                  = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR,
798     eImageResolve2KHR                     = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR,
799     ePhysicalDevice4444FormatsFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT,
800 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
801     eDirectfbSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT,
802 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
803     ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE =
804       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE,
805     eMutableDescriptorTypeCreateInfoVALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE,
806     ePhysicalDeviceVertexInputDynamicStateFeaturesEXT =
807       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT,
808     eVertexInputBindingDescription2EXT   = VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT,
809     eVertexInputAttributeDescription2EXT = VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT,
810     ePhysicalDeviceDrmPropertiesEXT      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT,
811 #if defined( VK_USE_PLATFORM_FUCHSIA )
812     eImportMemoryZirconHandleInfoFUCHSIA    = VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA,
813     eMemoryZirconHandlePropertiesFUCHSIA    = VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA,
814     eMemoryGetZirconHandleInfoFUCHSIA       = VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA,
815     eImportSemaphoreZirconHandleInfoFUCHSIA = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA,
816     eSemaphoreGetZirconHandleInfoFUCHSIA    = VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA,
817 #endif /*VK_USE_PLATFORM_FUCHSIA*/
818     eSubpassShadingPipelineCreateInfoHUAWEI       = VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI,
819     ePhysicalDeviceSubpassShadingFeaturesHUAWEI   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI,
820     ePhysicalDeviceSubpassShadingPropertiesHUAWEI = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI,
821     eMemoryGetRemoteAddressInfoNV                 = VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV,
822     ePhysicalDeviceExternalMemoryRdmaFeaturesNV   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV,
823     ePhysicalDeviceExtendedDynamicState2FeaturesEXT =
824       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT,
825 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
826     eScreenSurfaceCreateInfoQNX = VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX,
827 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
828     ePhysicalDeviceColorWriteEnableFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT,
829     ePipelineColorWriteCreateInfoEXT           = VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT,
830     ePhysicalDeviceGlobalPriorityQueryFeaturesEXT =
831       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT,
832     eQueueFamilyGlobalPriorityPropertiesEXT  = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT,
833     ePhysicalDeviceMultiDrawFeaturesEXT      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT,
834     ePhysicalDeviceMultiDrawPropertiesEXT    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT,
835     eAttachmentDescription2KHR               = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR,
836     eAttachmentDescriptionStencilLayoutKHR   = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR,
837     eAttachmentReference2KHR                 = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR,
838     eAttachmentReferenceStencilLayoutKHR     = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR,
839     eBindBufferMemoryDeviceGroupInfoKHR      = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR,
840     eBindBufferMemoryInfoKHR                 = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR,
841     eBindImageMemoryDeviceGroupInfoKHR       = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR,
842     eBindImageMemoryInfoKHR                  = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR,
843     eBindImagePlaneMemoryInfoKHR             = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR,
844     eBufferDeviceAddressInfoEXT              = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT,
845     eBufferDeviceAddressInfoKHR              = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR,
846     eBufferMemoryRequirementsInfo2KHR        = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR,
847     eBufferOpaqueCaptureAddressCreateInfoKHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR,
848     eDebugReportCreateInfoEXT                = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT,
849     eDescriptorSetLayoutBindingFlagsCreateInfoEXT =
850       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT,
851     eDescriptorSetLayoutSupportKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR,
852     eDescriptorSetVariableDescriptorCountAllocateInfoEXT =
853       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT,
854     eDescriptorSetVariableDescriptorCountLayoutSupportEXT =
855       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT,
856     eDescriptorUpdateTemplateCreateInfoKHR     = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR,
857     eDeviceGroupBindSparseInfoKHR              = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR,
858     eDeviceGroupCommandBufferBeginInfoKHR      = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR,
859     eDeviceGroupDeviceCreateInfoKHR            = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR,
860     eDeviceGroupRenderPassBeginInfoKHR         = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR,
861     eDeviceGroupSubmitInfoKHR                  = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR,
862     eDeviceMemoryOpaqueCaptureAddressInfoKHR   = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR,
863     eExportFenceCreateInfoKHR                  = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR,
864     eExportMemoryAllocateInfoKHR               = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR,
865     eExportSemaphoreCreateInfoKHR              = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR,
866     eExternalBufferPropertiesKHR               = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR,
867     eExternalFencePropertiesKHR                = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR,
868     eExternalImageFormatPropertiesKHR          = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR,
869     eExternalMemoryBufferCreateInfoKHR         = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR,
870     eExternalMemoryImageCreateInfoKHR          = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR,
871     eExternalSemaphorePropertiesKHR            = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR,
872     eFormatProperties2KHR                      = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR,
873     eFramebufferAttachmentsCreateInfoKHR       = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR,
874     eFramebufferAttachmentImageInfoKHR         = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR,
875     eImageFormatListCreateInfoKHR              = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR,
876     eImageFormatProperties2KHR                 = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR,
877     eImageMemoryRequirementsInfo2KHR           = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR,
878     eImagePlaneMemoryRequirementsInfoKHR       = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR,
879     eImageSparseMemoryRequirementsInfo2KHR     = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR,
880     eImageStencilUsageCreateInfoEXT            = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT,
881     eImageViewUsageCreateInfoKHR               = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR,
882     eMemoryAllocateFlagsInfoKHR                = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR,
883     eMemoryDedicatedAllocateInfoKHR            = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR,
884     eMemoryDedicatedRequirementsKHR            = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR,
885     eMemoryOpaqueCaptureAddressAllocateInfoKHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR,
886     eMemoryRequirements2KHR                    = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR,
887     ePhysicalDevice16BitStorageFeaturesKHR     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR,
888     ePhysicalDevice8BitStorageFeaturesKHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR,
889     ePhysicalDeviceBufferAddressFeaturesEXT    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT,
890     ePhysicalDeviceBufferDeviceAddressFeaturesKHR =
891       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR,
892     ePhysicalDeviceDepthStencilResolvePropertiesKHR =
893       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR,
894     ePhysicalDeviceDescriptorIndexingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT,
895     ePhysicalDeviceDescriptorIndexingPropertiesEXT =
896       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT,
897     ePhysicalDeviceDriverPropertiesKHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR,
898     ePhysicalDeviceExternalBufferInfoKHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR,
899     ePhysicalDeviceExternalFenceInfoKHR       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR,
900     ePhysicalDeviceExternalImageFormatInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR,
901     ePhysicalDeviceExternalSemaphoreInfoKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR,
902     ePhysicalDeviceFeatures2KHR               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR,
903     ePhysicalDeviceFloat16Int8FeaturesKHR     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR,
904     ePhysicalDeviceFloatControlsPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR,
905     ePhysicalDeviceGroupPropertiesKHR         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR,
906     ePhysicalDeviceHostQueryResetFeaturesEXT  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT,
907     ePhysicalDeviceIdPropertiesKHR            = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR,
908     ePhysicalDeviceImagelessFramebufferFeaturesKHR =
909       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR,
910     ePhysicalDeviceImageFormatInfo2KHR        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR,
911     ePhysicalDeviceMaintenance3PropertiesKHR  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR,
912     ePhysicalDeviceMemoryProperties2KHR       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR,
913     ePhysicalDeviceMultiviewFeaturesKHR       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR,
914     ePhysicalDeviceMultiviewPropertiesKHR     = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR,
915     ePhysicalDevicePointClippingPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR,
916     ePhysicalDeviceProperties2KHR             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR,
917     ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT =
918       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT,
919     ePhysicalDeviceSamplerYcbcrConversionFeaturesKHR =
920       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR,
921     ePhysicalDeviceScalarBlockLayoutFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT,
922     ePhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR =
923       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR,
924     ePhysicalDeviceShaderAtomicInt64FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR,
925     ePhysicalDeviceShaderDrawParameterFeatures  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES,
926     ePhysicalDeviceShaderFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR,
927     ePhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR =
928       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR,
929     ePhysicalDeviceSparseImageFormatInfo2KHR      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR,
930     ePhysicalDeviceTimelineSemaphoreFeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR,
931     ePhysicalDeviceTimelineSemaphorePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR,
932     ePhysicalDeviceUniformBufferStandardLayoutFeaturesKHR =
933       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR,
934     ePhysicalDeviceVariablePointersFeaturesKHR  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
935     ePhysicalDeviceVariablePointerFeatures      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
936     ePhysicalDeviceVariablePointerFeaturesKHR   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR,
937     ePhysicalDeviceVulkanMemoryModelFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR,
938     ePipelineTessellationDomainOriginStateCreateInfoKHR =
939       VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR,
940     eQueryPoolCreateInfoINTEL         = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL,
941     eQueueFamilyProperties2KHR        = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR,
942     eRenderPassAttachmentBeginInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR,
943     eRenderPassCreateInfo2KHR         = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR,
944     eRenderPassInputAttachmentAspectCreateInfoKHR =
945       VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR,
946     eRenderPassMultiviewCreateInfoKHR    = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR,
947     eSamplerReductionModeCreateInfoEXT   = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT,
948     eSamplerYcbcrConversionCreateInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR,
949     eSamplerYcbcrConversionImageFormatPropertiesKHR =
950       VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR,
951     eSamplerYcbcrConversionInfoKHR            = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR,
952     eSemaphoreSignalInfoKHR                   = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR,
953     eSemaphoreTypeCreateInfoKHR               = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR,
954     eSemaphoreWaitInfoKHR                     = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR,
955     eSparseImageFormatProperties2KHR          = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR,
956     eSparseImageMemoryRequirements2KHR        = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR,
957     eSubpassBeginInfoKHR                      = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR,
958     eSubpassDependency2KHR                    = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR,
959     eSubpassDescription2KHR                   = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR,
960     eSubpassDescriptionDepthStencilResolveKHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR,
961     eSubpassEndInfoKHR                        = VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR,
962     eTimelineSemaphoreSubmitInfoKHR           = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR
963   };
964 
to_string(StructureType value)965   VULKAN_HPP_INLINE std::string to_string( StructureType value )
966   {
967     switch ( value )
968     {
969       case StructureType::eApplicationInfo: return "ApplicationInfo";
970       case StructureType::eInstanceCreateInfo: return "InstanceCreateInfo";
971       case StructureType::eDeviceQueueCreateInfo: return "DeviceQueueCreateInfo";
972       case StructureType::eDeviceCreateInfo: return "DeviceCreateInfo";
973       case StructureType::eSubmitInfo: return "SubmitInfo";
974       case StructureType::eMemoryAllocateInfo: return "MemoryAllocateInfo";
975       case StructureType::eMappedMemoryRange: return "MappedMemoryRange";
976       case StructureType::eBindSparseInfo: return "BindSparseInfo";
977       case StructureType::eFenceCreateInfo: return "FenceCreateInfo";
978       case StructureType::eSemaphoreCreateInfo: return "SemaphoreCreateInfo";
979       case StructureType::eEventCreateInfo: return "EventCreateInfo";
980       case StructureType::eQueryPoolCreateInfo: return "QueryPoolCreateInfo";
981       case StructureType::eBufferCreateInfo: return "BufferCreateInfo";
982       case StructureType::eBufferViewCreateInfo: return "BufferViewCreateInfo";
983       case StructureType::eImageCreateInfo: return "ImageCreateInfo";
984       case StructureType::eImageViewCreateInfo: return "ImageViewCreateInfo";
985       case StructureType::eShaderModuleCreateInfo: return "ShaderModuleCreateInfo";
986       case StructureType::ePipelineCacheCreateInfo: return "PipelineCacheCreateInfo";
987       case StructureType::ePipelineShaderStageCreateInfo: return "PipelineShaderStageCreateInfo";
988       case StructureType::ePipelineVertexInputStateCreateInfo: return "PipelineVertexInputStateCreateInfo";
989       case StructureType::ePipelineInputAssemblyStateCreateInfo: return "PipelineInputAssemblyStateCreateInfo";
990       case StructureType::ePipelineTessellationStateCreateInfo: return "PipelineTessellationStateCreateInfo";
991       case StructureType::ePipelineViewportStateCreateInfo: return "PipelineViewportStateCreateInfo";
992       case StructureType::ePipelineRasterizationStateCreateInfo: return "PipelineRasterizationStateCreateInfo";
993       case StructureType::ePipelineMultisampleStateCreateInfo: return "PipelineMultisampleStateCreateInfo";
994       case StructureType::ePipelineDepthStencilStateCreateInfo: return "PipelineDepthStencilStateCreateInfo";
995       case StructureType::ePipelineColorBlendStateCreateInfo: return "PipelineColorBlendStateCreateInfo";
996       case StructureType::ePipelineDynamicStateCreateInfo: return "PipelineDynamicStateCreateInfo";
997       case StructureType::eGraphicsPipelineCreateInfo: return "GraphicsPipelineCreateInfo";
998       case StructureType::eComputePipelineCreateInfo: return "ComputePipelineCreateInfo";
999       case StructureType::ePipelineLayoutCreateInfo: return "PipelineLayoutCreateInfo";
1000       case StructureType::eSamplerCreateInfo: return "SamplerCreateInfo";
1001       case StructureType::eDescriptorSetLayoutCreateInfo: return "DescriptorSetLayoutCreateInfo";
1002       case StructureType::eDescriptorPoolCreateInfo: return "DescriptorPoolCreateInfo";
1003       case StructureType::eDescriptorSetAllocateInfo: return "DescriptorSetAllocateInfo";
1004       case StructureType::eWriteDescriptorSet: return "WriteDescriptorSet";
1005       case StructureType::eCopyDescriptorSet: return "CopyDescriptorSet";
1006       case StructureType::eFramebufferCreateInfo: return "FramebufferCreateInfo";
1007       case StructureType::eRenderPassCreateInfo: return "RenderPassCreateInfo";
1008       case StructureType::eCommandPoolCreateInfo: return "CommandPoolCreateInfo";
1009       case StructureType::eCommandBufferAllocateInfo: return "CommandBufferAllocateInfo";
1010       case StructureType::eCommandBufferInheritanceInfo: return "CommandBufferInheritanceInfo";
1011       case StructureType::eCommandBufferBeginInfo: return "CommandBufferBeginInfo";
1012       case StructureType::eRenderPassBeginInfo: return "RenderPassBeginInfo";
1013       case StructureType::eBufferMemoryBarrier: return "BufferMemoryBarrier";
1014       case StructureType::eImageMemoryBarrier: return "ImageMemoryBarrier";
1015       case StructureType::eMemoryBarrier: return "MemoryBarrier";
1016       case StructureType::eLoaderInstanceCreateInfo: return "LoaderInstanceCreateInfo";
1017       case StructureType::eLoaderDeviceCreateInfo: return "LoaderDeviceCreateInfo";
1018       case StructureType::ePhysicalDeviceSubgroupProperties: return "PhysicalDeviceSubgroupProperties";
1019       case StructureType::eBindBufferMemoryInfo: return "BindBufferMemoryInfo";
1020       case StructureType::eBindImageMemoryInfo: return "BindImageMemoryInfo";
1021       case StructureType::ePhysicalDevice16BitStorageFeatures: return "PhysicalDevice16BitStorageFeatures";
1022       case StructureType::eMemoryDedicatedRequirements: return "MemoryDedicatedRequirements";
1023       case StructureType::eMemoryDedicatedAllocateInfo: return "MemoryDedicatedAllocateInfo";
1024       case StructureType::eMemoryAllocateFlagsInfo: return "MemoryAllocateFlagsInfo";
1025       case StructureType::eDeviceGroupRenderPassBeginInfo: return "DeviceGroupRenderPassBeginInfo";
1026       case StructureType::eDeviceGroupCommandBufferBeginInfo: return "DeviceGroupCommandBufferBeginInfo";
1027       case StructureType::eDeviceGroupSubmitInfo: return "DeviceGroupSubmitInfo";
1028       case StructureType::eDeviceGroupBindSparseInfo: return "DeviceGroupBindSparseInfo";
1029       case StructureType::eBindBufferMemoryDeviceGroupInfo: return "BindBufferMemoryDeviceGroupInfo";
1030       case StructureType::eBindImageMemoryDeviceGroupInfo: return "BindImageMemoryDeviceGroupInfo";
1031       case StructureType::ePhysicalDeviceGroupProperties: return "PhysicalDeviceGroupProperties";
1032       case StructureType::eDeviceGroupDeviceCreateInfo: return "DeviceGroupDeviceCreateInfo";
1033       case StructureType::eBufferMemoryRequirementsInfo2: return "BufferMemoryRequirementsInfo2";
1034       case StructureType::eImageMemoryRequirementsInfo2: return "ImageMemoryRequirementsInfo2";
1035       case StructureType::eImageSparseMemoryRequirementsInfo2: return "ImageSparseMemoryRequirementsInfo2";
1036       case StructureType::eMemoryRequirements2: return "MemoryRequirements2";
1037       case StructureType::eSparseImageMemoryRequirements2: return "SparseImageMemoryRequirements2";
1038       case StructureType::ePhysicalDeviceFeatures2: return "PhysicalDeviceFeatures2";
1039       case StructureType::ePhysicalDeviceProperties2: return "PhysicalDeviceProperties2";
1040       case StructureType::eFormatProperties2: return "FormatProperties2";
1041       case StructureType::eImageFormatProperties2: return "ImageFormatProperties2";
1042       case StructureType::ePhysicalDeviceImageFormatInfo2: return "PhysicalDeviceImageFormatInfo2";
1043       case StructureType::eQueueFamilyProperties2: return "QueueFamilyProperties2";
1044       case StructureType::ePhysicalDeviceMemoryProperties2: return "PhysicalDeviceMemoryProperties2";
1045       case StructureType::eSparseImageFormatProperties2: return "SparseImageFormatProperties2";
1046       case StructureType::ePhysicalDeviceSparseImageFormatInfo2: return "PhysicalDeviceSparseImageFormatInfo2";
1047       case StructureType::ePhysicalDevicePointClippingProperties: return "PhysicalDevicePointClippingProperties";
1048       case StructureType::eRenderPassInputAttachmentAspectCreateInfo:
1049         return "RenderPassInputAttachmentAspectCreateInfo";
1050       case StructureType::eImageViewUsageCreateInfo: return "ImageViewUsageCreateInfo";
1051       case StructureType::ePipelineTessellationDomainOriginStateCreateInfo:
1052         return "PipelineTessellationDomainOriginStateCreateInfo";
1053       case StructureType::eRenderPassMultiviewCreateInfo: return "RenderPassMultiviewCreateInfo";
1054       case StructureType::ePhysicalDeviceMultiviewFeatures: return "PhysicalDeviceMultiviewFeatures";
1055       case StructureType::ePhysicalDeviceMultiviewProperties: return "PhysicalDeviceMultiviewProperties";
1056       case StructureType::ePhysicalDeviceVariablePointersFeatures: return "PhysicalDeviceVariablePointersFeatures";
1057       case StructureType::eProtectedSubmitInfo: return "ProtectedSubmitInfo";
1058       case StructureType::ePhysicalDeviceProtectedMemoryFeatures: return "PhysicalDeviceProtectedMemoryFeatures";
1059       case StructureType::ePhysicalDeviceProtectedMemoryProperties: return "PhysicalDeviceProtectedMemoryProperties";
1060       case StructureType::eDeviceQueueInfo2: return "DeviceQueueInfo2";
1061       case StructureType::eSamplerYcbcrConversionCreateInfo: return "SamplerYcbcrConversionCreateInfo";
1062       case StructureType::eSamplerYcbcrConversionInfo: return "SamplerYcbcrConversionInfo";
1063       case StructureType::eBindImagePlaneMemoryInfo: return "BindImagePlaneMemoryInfo";
1064       case StructureType::eImagePlaneMemoryRequirementsInfo: return "ImagePlaneMemoryRequirementsInfo";
1065       case StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures:
1066         return "PhysicalDeviceSamplerYcbcrConversionFeatures";
1067       case StructureType::eSamplerYcbcrConversionImageFormatProperties:
1068         return "SamplerYcbcrConversionImageFormatProperties";
1069       case StructureType::eDescriptorUpdateTemplateCreateInfo: return "DescriptorUpdateTemplateCreateInfo";
1070       case StructureType::ePhysicalDeviceExternalImageFormatInfo: return "PhysicalDeviceExternalImageFormatInfo";
1071       case StructureType::eExternalImageFormatProperties: return "ExternalImageFormatProperties";
1072       case StructureType::ePhysicalDeviceExternalBufferInfo: return "PhysicalDeviceExternalBufferInfo";
1073       case StructureType::eExternalBufferProperties: return "ExternalBufferProperties";
1074       case StructureType::ePhysicalDeviceIdProperties: return "PhysicalDeviceIdProperties";
1075       case StructureType::eExternalMemoryBufferCreateInfo: return "ExternalMemoryBufferCreateInfo";
1076       case StructureType::eExternalMemoryImageCreateInfo: return "ExternalMemoryImageCreateInfo";
1077       case StructureType::eExportMemoryAllocateInfo: return "ExportMemoryAllocateInfo";
1078       case StructureType::ePhysicalDeviceExternalFenceInfo: return "PhysicalDeviceExternalFenceInfo";
1079       case StructureType::eExternalFenceProperties: return "ExternalFenceProperties";
1080       case StructureType::eExportFenceCreateInfo: return "ExportFenceCreateInfo";
1081       case StructureType::eExportSemaphoreCreateInfo: return "ExportSemaphoreCreateInfo";
1082       case StructureType::ePhysicalDeviceExternalSemaphoreInfo: return "PhysicalDeviceExternalSemaphoreInfo";
1083       case StructureType::eExternalSemaphoreProperties: return "ExternalSemaphoreProperties";
1084       case StructureType::ePhysicalDeviceMaintenance3Properties: return "PhysicalDeviceMaintenance3Properties";
1085       case StructureType::eDescriptorSetLayoutSupport: return "DescriptorSetLayoutSupport";
1086       case StructureType::ePhysicalDeviceShaderDrawParametersFeatures:
1087         return "PhysicalDeviceShaderDrawParametersFeatures";
1088       case StructureType::ePhysicalDeviceVulkan11Features: return "PhysicalDeviceVulkan11Features";
1089       case StructureType::ePhysicalDeviceVulkan11Properties: return "PhysicalDeviceVulkan11Properties";
1090       case StructureType::ePhysicalDeviceVulkan12Features: return "PhysicalDeviceVulkan12Features";
1091       case StructureType::ePhysicalDeviceVulkan12Properties: return "PhysicalDeviceVulkan12Properties";
1092       case StructureType::eImageFormatListCreateInfo: return "ImageFormatListCreateInfo";
1093       case StructureType::eAttachmentDescription2: return "AttachmentDescription2";
1094       case StructureType::eAttachmentReference2: return "AttachmentReference2";
1095       case StructureType::eSubpassDescription2: return "SubpassDescription2";
1096       case StructureType::eSubpassDependency2: return "SubpassDependency2";
1097       case StructureType::eRenderPassCreateInfo2: return "RenderPassCreateInfo2";
1098       case StructureType::eSubpassBeginInfo: return "SubpassBeginInfo";
1099       case StructureType::eSubpassEndInfo: return "SubpassEndInfo";
1100       case StructureType::ePhysicalDevice8BitStorageFeatures: return "PhysicalDevice8BitStorageFeatures";
1101       case StructureType::ePhysicalDeviceDriverProperties: return "PhysicalDeviceDriverProperties";
1102       case StructureType::ePhysicalDeviceShaderAtomicInt64Features: return "PhysicalDeviceShaderAtomicInt64Features";
1103       case StructureType::ePhysicalDeviceShaderFloat16Int8Features: return "PhysicalDeviceShaderFloat16Int8Features";
1104       case StructureType::ePhysicalDeviceFloatControlsProperties: return "PhysicalDeviceFloatControlsProperties";
1105       case StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo:
1106         return "DescriptorSetLayoutBindingFlagsCreateInfo";
1107       case StructureType::ePhysicalDeviceDescriptorIndexingFeatures: return "PhysicalDeviceDescriptorIndexingFeatures";
1108       case StructureType::ePhysicalDeviceDescriptorIndexingProperties:
1109         return "PhysicalDeviceDescriptorIndexingProperties";
1110       case StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo:
1111         return "DescriptorSetVariableDescriptorCountAllocateInfo";
1112       case StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport:
1113         return "DescriptorSetVariableDescriptorCountLayoutSupport";
1114       case StructureType::ePhysicalDeviceDepthStencilResolveProperties:
1115         return "PhysicalDeviceDepthStencilResolveProperties";
1116       case StructureType::eSubpassDescriptionDepthStencilResolve: return "SubpassDescriptionDepthStencilResolve";
1117       case StructureType::ePhysicalDeviceScalarBlockLayoutFeatures: return "PhysicalDeviceScalarBlockLayoutFeatures";
1118       case StructureType::eImageStencilUsageCreateInfo: return "ImageStencilUsageCreateInfo";
1119       case StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties:
1120         return "PhysicalDeviceSamplerFilterMinmaxProperties";
1121       case StructureType::eSamplerReductionModeCreateInfo: return "SamplerReductionModeCreateInfo";
1122       case StructureType::ePhysicalDeviceVulkanMemoryModelFeatures: return "PhysicalDeviceVulkanMemoryModelFeatures";
1123       case StructureType::ePhysicalDeviceImagelessFramebufferFeatures:
1124         return "PhysicalDeviceImagelessFramebufferFeatures";
1125       case StructureType::eFramebufferAttachmentsCreateInfo: return "FramebufferAttachmentsCreateInfo";
1126       case StructureType::eFramebufferAttachmentImageInfo: return "FramebufferAttachmentImageInfo";
1127       case StructureType::eRenderPassAttachmentBeginInfo: return "RenderPassAttachmentBeginInfo";
1128       case StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures:
1129         return "PhysicalDeviceUniformBufferStandardLayoutFeatures";
1130       case StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures:
1131         return "PhysicalDeviceShaderSubgroupExtendedTypesFeatures";
1132       case StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures:
1133         return "PhysicalDeviceSeparateDepthStencilLayoutsFeatures";
1134       case StructureType::eAttachmentReferenceStencilLayout: return "AttachmentReferenceStencilLayout";
1135       case StructureType::eAttachmentDescriptionStencilLayout: return "AttachmentDescriptionStencilLayout";
1136       case StructureType::ePhysicalDeviceHostQueryResetFeatures: return "PhysicalDeviceHostQueryResetFeatures";
1137       case StructureType::ePhysicalDeviceTimelineSemaphoreFeatures: return "PhysicalDeviceTimelineSemaphoreFeatures";
1138       case StructureType::ePhysicalDeviceTimelineSemaphoreProperties:
1139         return "PhysicalDeviceTimelineSemaphoreProperties";
1140       case StructureType::eSemaphoreTypeCreateInfo: return "SemaphoreTypeCreateInfo";
1141       case StructureType::eTimelineSemaphoreSubmitInfo: return "TimelineSemaphoreSubmitInfo";
1142       case StructureType::eSemaphoreWaitInfo: return "SemaphoreWaitInfo";
1143       case StructureType::eSemaphoreSignalInfo: return "SemaphoreSignalInfo";
1144       case StructureType::ePhysicalDeviceBufferDeviceAddressFeatures:
1145         return "PhysicalDeviceBufferDeviceAddressFeatures";
1146       case StructureType::eBufferDeviceAddressInfo: return "BufferDeviceAddressInfo";
1147       case StructureType::eBufferOpaqueCaptureAddressCreateInfo: return "BufferOpaqueCaptureAddressCreateInfo";
1148       case StructureType::eMemoryOpaqueCaptureAddressAllocateInfo: return "MemoryOpaqueCaptureAddressAllocateInfo";
1149       case StructureType::eDeviceMemoryOpaqueCaptureAddressInfo: return "DeviceMemoryOpaqueCaptureAddressInfo";
1150       case StructureType::eSwapchainCreateInfoKHR: return "SwapchainCreateInfoKHR";
1151       case StructureType::ePresentInfoKHR: return "PresentInfoKHR";
1152       case StructureType::eDeviceGroupPresentCapabilitiesKHR: return "DeviceGroupPresentCapabilitiesKHR";
1153       case StructureType::eImageSwapchainCreateInfoKHR: return "ImageSwapchainCreateInfoKHR";
1154       case StructureType::eBindImageMemorySwapchainInfoKHR: return "BindImageMemorySwapchainInfoKHR";
1155       case StructureType::eAcquireNextImageInfoKHR: return "AcquireNextImageInfoKHR";
1156       case StructureType::eDeviceGroupPresentInfoKHR: return "DeviceGroupPresentInfoKHR";
1157       case StructureType::eDeviceGroupSwapchainCreateInfoKHR: return "DeviceGroupSwapchainCreateInfoKHR";
1158       case StructureType::eDisplayModeCreateInfoKHR: return "DisplayModeCreateInfoKHR";
1159       case StructureType::eDisplaySurfaceCreateInfoKHR: return "DisplaySurfaceCreateInfoKHR";
1160       case StructureType::eDisplayPresentInfoKHR: return "DisplayPresentInfoKHR";
1161 #if defined( VK_USE_PLATFORM_XLIB_KHR )
1162       case StructureType::eXlibSurfaceCreateInfoKHR: return "XlibSurfaceCreateInfoKHR";
1163 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
1164 #if defined( VK_USE_PLATFORM_XCB_KHR )
1165       case StructureType::eXcbSurfaceCreateInfoKHR: return "XcbSurfaceCreateInfoKHR";
1166 #endif /*VK_USE_PLATFORM_XCB_KHR*/
1167 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
1168       case StructureType::eWaylandSurfaceCreateInfoKHR: return "WaylandSurfaceCreateInfoKHR";
1169 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
1170 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
1171       case StructureType::eAndroidSurfaceCreateInfoKHR: return "AndroidSurfaceCreateInfoKHR";
1172 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
1173 #if defined( VK_USE_PLATFORM_WIN32_KHR )
1174       case StructureType::eWin32SurfaceCreateInfoKHR: return "Win32SurfaceCreateInfoKHR";
1175 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1176       case StructureType::eDebugReportCallbackCreateInfoEXT: return "DebugReportCallbackCreateInfoEXT";
1177       case StructureType::ePipelineRasterizationStateRasterizationOrderAMD:
1178         return "PipelineRasterizationStateRasterizationOrderAMD";
1179       case StructureType::eDebugMarkerObjectNameInfoEXT: return "DebugMarkerObjectNameInfoEXT";
1180       case StructureType::eDebugMarkerObjectTagInfoEXT: return "DebugMarkerObjectTagInfoEXT";
1181       case StructureType::eDebugMarkerMarkerInfoEXT: return "DebugMarkerMarkerInfoEXT";
1182 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1183       case StructureType::eVideoProfileKHR: return "VideoProfileKHR";
1184       case StructureType::eVideoCapabilitiesKHR: return "VideoCapabilitiesKHR";
1185       case StructureType::eVideoPictureResourceKHR: return "VideoPictureResourceKHR";
1186       case StructureType::eVideoGetMemoryPropertiesKHR: return "VideoGetMemoryPropertiesKHR";
1187       case StructureType::eVideoBindMemoryKHR: return "VideoBindMemoryKHR";
1188       case StructureType::eVideoSessionCreateInfoKHR: return "VideoSessionCreateInfoKHR";
1189       case StructureType::eVideoSessionParametersCreateInfoKHR: return "VideoSessionParametersCreateInfoKHR";
1190       case StructureType::eVideoSessionParametersUpdateInfoKHR: return "VideoSessionParametersUpdateInfoKHR";
1191       case StructureType::eVideoBeginCodingInfoKHR: return "VideoBeginCodingInfoKHR";
1192       case StructureType::eVideoEndCodingInfoKHR: return "VideoEndCodingInfoKHR";
1193       case StructureType::eVideoCodingControlInfoKHR: return "VideoCodingControlInfoKHR";
1194       case StructureType::eVideoReferenceSlotKHR: return "VideoReferenceSlotKHR";
1195       case StructureType::eVideoQueueFamilyProperties2KHR: return "VideoQueueFamilyProperties2KHR";
1196       case StructureType::eVideoProfilesKHR: return "VideoProfilesKHR";
1197       case StructureType::ePhysicalDeviceVideoFormatInfoKHR: return "PhysicalDeviceVideoFormatInfoKHR";
1198       case StructureType::eVideoFormatPropertiesKHR: return "VideoFormatPropertiesKHR";
1199       case StructureType::eVideoDecodeInfoKHR: return "VideoDecodeInfoKHR";
1200 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1201       case StructureType::eDedicatedAllocationImageCreateInfoNV: return "DedicatedAllocationImageCreateInfoNV";
1202       case StructureType::eDedicatedAllocationBufferCreateInfoNV: return "DedicatedAllocationBufferCreateInfoNV";
1203       case StructureType::eDedicatedAllocationMemoryAllocateInfoNV: return "DedicatedAllocationMemoryAllocateInfoNV";
1204       case StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT:
1205         return "PhysicalDeviceTransformFeedbackFeaturesEXT";
1206       case StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT:
1207         return "PhysicalDeviceTransformFeedbackPropertiesEXT";
1208       case StructureType::ePipelineRasterizationStateStreamCreateInfoEXT:
1209         return "PipelineRasterizationStateStreamCreateInfoEXT";
1210       case StructureType::eCuModuleCreateInfoNVX: return "CuModuleCreateInfoNVX";
1211       case StructureType::eCuFunctionCreateInfoNVX: return "CuFunctionCreateInfoNVX";
1212       case StructureType::eCuLaunchInfoNVX: return "CuLaunchInfoNVX";
1213       case StructureType::eImageViewHandleInfoNVX: return "ImageViewHandleInfoNVX";
1214       case StructureType::eImageViewAddressPropertiesNVX: return "ImageViewAddressPropertiesNVX";
1215 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1216       case StructureType::eVideoEncodeH264CapabilitiesEXT: return "VideoEncodeH264CapabilitiesEXT";
1217       case StructureType::eVideoEncodeH264SessionCreateInfoEXT: return "VideoEncodeH264SessionCreateInfoEXT";
1218       case StructureType::eVideoEncodeH264SessionParametersCreateInfoEXT:
1219         return "VideoEncodeH264SessionParametersCreateInfoEXT";
1220       case StructureType::eVideoEncodeH264SessionParametersAddInfoEXT:
1221         return "VideoEncodeH264SessionParametersAddInfoEXT";
1222       case StructureType::eVideoEncodeH264VclFrameInfoEXT: return "VideoEncodeH264VclFrameInfoEXT";
1223       case StructureType::eVideoEncodeH264DpbSlotInfoEXT: return "VideoEncodeH264DpbSlotInfoEXT";
1224       case StructureType::eVideoEncodeH264NaluSliceEXT: return "VideoEncodeH264NaluSliceEXT";
1225       case StructureType::eVideoEncodeH264EmitPictureParametersEXT: return "VideoEncodeH264EmitPictureParametersEXT";
1226       case StructureType::eVideoEncodeH264ProfileEXT: return "VideoEncodeH264ProfileEXT";
1227       case StructureType::eVideoDecodeH264CapabilitiesEXT: return "VideoDecodeH264CapabilitiesEXT";
1228       case StructureType::eVideoDecodeH264SessionCreateInfoEXT: return "VideoDecodeH264SessionCreateInfoEXT";
1229       case StructureType::eVideoDecodeH264PictureInfoEXT: return "VideoDecodeH264PictureInfoEXT";
1230       case StructureType::eVideoDecodeH264MvcEXT: return "VideoDecodeH264MvcEXT";
1231       case StructureType::eVideoDecodeH264ProfileEXT: return "VideoDecodeH264ProfileEXT";
1232       case StructureType::eVideoDecodeH264SessionParametersCreateInfoEXT:
1233         return "VideoDecodeH264SessionParametersCreateInfoEXT";
1234       case StructureType::eVideoDecodeH264SessionParametersAddInfoEXT:
1235         return "VideoDecodeH264SessionParametersAddInfoEXT";
1236       case StructureType::eVideoDecodeH264DpbSlotInfoEXT: return "VideoDecodeH264DpbSlotInfoEXT";
1237 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1238       case StructureType::eTextureLodGatherFormatPropertiesAMD: return "TextureLodGatherFormatPropertiesAMD";
1239 #if defined( VK_USE_PLATFORM_GGP )
1240       case StructureType::eStreamDescriptorSurfaceCreateInfoGGP: return "StreamDescriptorSurfaceCreateInfoGGP";
1241 #endif /*VK_USE_PLATFORM_GGP*/
1242       case StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV:
1243         return "PhysicalDeviceCornerSampledImageFeaturesNV";
1244       case StructureType::eExternalMemoryImageCreateInfoNV: return "ExternalMemoryImageCreateInfoNV";
1245       case StructureType::eExportMemoryAllocateInfoNV: return "ExportMemoryAllocateInfoNV";
1246 #if defined( VK_USE_PLATFORM_WIN32_KHR )
1247       case StructureType::eImportMemoryWin32HandleInfoNV: return "ImportMemoryWin32HandleInfoNV";
1248       case StructureType::eExportMemoryWin32HandleInfoNV: return "ExportMemoryWin32HandleInfoNV";
1249       case StructureType::eWin32KeyedMutexAcquireReleaseInfoNV: return "Win32KeyedMutexAcquireReleaseInfoNV";
1250 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1251       case StructureType::eValidationFlagsEXT: return "ValidationFlagsEXT";
1252 #if defined( VK_USE_PLATFORM_VI_NN )
1253       case StructureType::eViSurfaceCreateInfoNN: return "ViSurfaceCreateInfoNN";
1254 #endif /*VK_USE_PLATFORM_VI_NN*/
1255       case StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT:
1256         return "PhysicalDeviceTextureCompressionAstcHdrFeaturesEXT";
1257       case StructureType::eImageViewAstcDecodeModeEXT: return "ImageViewAstcDecodeModeEXT";
1258       case StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT: return "PhysicalDeviceAstcDecodeFeaturesEXT";
1259 #if defined( VK_USE_PLATFORM_WIN32_KHR )
1260       case StructureType::eImportMemoryWin32HandleInfoKHR: return "ImportMemoryWin32HandleInfoKHR";
1261       case StructureType::eExportMemoryWin32HandleInfoKHR: return "ExportMemoryWin32HandleInfoKHR";
1262       case StructureType::eMemoryWin32HandlePropertiesKHR: return "MemoryWin32HandlePropertiesKHR";
1263       case StructureType::eMemoryGetWin32HandleInfoKHR: return "MemoryGetWin32HandleInfoKHR";
1264 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1265       case StructureType::eImportMemoryFdInfoKHR: return "ImportMemoryFdInfoKHR";
1266       case StructureType::eMemoryFdPropertiesKHR: return "MemoryFdPropertiesKHR";
1267       case StructureType::eMemoryGetFdInfoKHR: return "MemoryGetFdInfoKHR";
1268 #if defined( VK_USE_PLATFORM_WIN32_KHR )
1269       case StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR: return "Win32KeyedMutexAcquireReleaseInfoKHR";
1270       case StructureType::eImportSemaphoreWin32HandleInfoKHR: return "ImportSemaphoreWin32HandleInfoKHR";
1271       case StructureType::eExportSemaphoreWin32HandleInfoKHR: return "ExportSemaphoreWin32HandleInfoKHR";
1272       case StructureType::eD3D12FenceSubmitInfoKHR: return "D3D12FenceSubmitInfoKHR";
1273       case StructureType::eSemaphoreGetWin32HandleInfoKHR: return "SemaphoreGetWin32HandleInfoKHR";
1274 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1275       case StructureType::eImportSemaphoreFdInfoKHR: return "ImportSemaphoreFdInfoKHR";
1276       case StructureType::eSemaphoreGetFdInfoKHR: return "SemaphoreGetFdInfoKHR";
1277       case StructureType::ePhysicalDevicePushDescriptorPropertiesKHR:
1278         return "PhysicalDevicePushDescriptorPropertiesKHR";
1279       case StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT:
1280         return "CommandBufferInheritanceConditionalRenderingInfoEXT";
1281       case StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT:
1282         return "PhysicalDeviceConditionalRenderingFeaturesEXT";
1283       case StructureType::eConditionalRenderingBeginInfoEXT: return "ConditionalRenderingBeginInfoEXT";
1284       case StructureType::ePresentRegionsKHR: return "PresentRegionsKHR";
1285       case StructureType::ePipelineViewportWScalingStateCreateInfoNV:
1286         return "PipelineViewportWScalingStateCreateInfoNV";
1287       case StructureType::eSurfaceCapabilities2EXT: return "SurfaceCapabilities2EXT";
1288       case StructureType::eDisplayPowerInfoEXT: return "DisplayPowerInfoEXT";
1289       case StructureType::eDeviceEventInfoEXT: return "DeviceEventInfoEXT";
1290       case StructureType::eDisplayEventInfoEXT: return "DisplayEventInfoEXT";
1291       case StructureType::eSwapchainCounterCreateInfoEXT: return "SwapchainCounterCreateInfoEXT";
1292       case StructureType::ePresentTimesInfoGOOGLE: return "PresentTimesInfoGOOGLE";
1293       case StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX:
1294         return "PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX";
1295       case StructureType::ePipelineViewportSwizzleStateCreateInfoNV: return "PipelineViewportSwizzleStateCreateInfoNV";
1296       case StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT:
1297         return "PhysicalDeviceDiscardRectanglePropertiesEXT";
1298       case StructureType::ePipelineDiscardRectangleStateCreateInfoEXT:
1299         return "PipelineDiscardRectangleStateCreateInfoEXT";
1300       case StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT:
1301         return "PhysicalDeviceConservativeRasterizationPropertiesEXT";
1302       case StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT:
1303         return "PipelineRasterizationConservativeStateCreateInfoEXT";
1304       case StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT: return "PhysicalDeviceDepthClipEnableFeaturesEXT";
1305       case StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT:
1306         return "PipelineRasterizationDepthClipStateCreateInfoEXT";
1307       case StructureType::eHdrMetadataEXT: return "HdrMetadataEXT";
1308       case StructureType::eSharedPresentSurfaceCapabilitiesKHR: return "SharedPresentSurfaceCapabilitiesKHR";
1309 #if defined( VK_USE_PLATFORM_WIN32_KHR )
1310       case StructureType::eImportFenceWin32HandleInfoKHR: return "ImportFenceWin32HandleInfoKHR";
1311       case StructureType::eExportFenceWin32HandleInfoKHR: return "ExportFenceWin32HandleInfoKHR";
1312       case StructureType::eFenceGetWin32HandleInfoKHR: return "FenceGetWin32HandleInfoKHR";
1313 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1314       case StructureType::eImportFenceFdInfoKHR: return "ImportFenceFdInfoKHR";
1315       case StructureType::eFenceGetFdInfoKHR: return "FenceGetFdInfoKHR";
1316       case StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR:
1317         return "PhysicalDevicePerformanceQueryFeaturesKHR";
1318       case StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR:
1319         return "PhysicalDevicePerformanceQueryPropertiesKHR";
1320       case StructureType::eQueryPoolPerformanceCreateInfoKHR: return "QueryPoolPerformanceCreateInfoKHR";
1321       case StructureType::ePerformanceQuerySubmitInfoKHR: return "PerformanceQuerySubmitInfoKHR";
1322       case StructureType::eAcquireProfilingLockInfoKHR: return "AcquireProfilingLockInfoKHR";
1323       case StructureType::ePerformanceCounterKHR: return "PerformanceCounterKHR";
1324       case StructureType::ePerformanceCounterDescriptionKHR: return "PerformanceCounterDescriptionKHR";
1325       case StructureType::ePhysicalDeviceSurfaceInfo2KHR: return "PhysicalDeviceSurfaceInfo2KHR";
1326       case StructureType::eSurfaceCapabilities2KHR: return "SurfaceCapabilities2KHR";
1327       case StructureType::eSurfaceFormat2KHR: return "SurfaceFormat2KHR";
1328       case StructureType::eDisplayProperties2KHR: return "DisplayProperties2KHR";
1329       case StructureType::eDisplayPlaneProperties2KHR: return "DisplayPlaneProperties2KHR";
1330       case StructureType::eDisplayModeProperties2KHR: return "DisplayModeProperties2KHR";
1331       case StructureType::eDisplayPlaneInfo2KHR: return "DisplayPlaneInfo2KHR";
1332       case StructureType::eDisplayPlaneCapabilities2KHR: return "DisplayPlaneCapabilities2KHR";
1333 #if defined( VK_USE_PLATFORM_IOS_MVK )
1334       case StructureType::eIosSurfaceCreateInfoMVK: return "IosSurfaceCreateInfoMVK";
1335 #endif /*VK_USE_PLATFORM_IOS_MVK*/
1336 #if defined( VK_USE_PLATFORM_MACOS_MVK )
1337       case StructureType::eMacosSurfaceCreateInfoMVK: return "MacosSurfaceCreateInfoMVK";
1338 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
1339       case StructureType::eDebugUtilsObjectNameInfoEXT: return "DebugUtilsObjectNameInfoEXT";
1340       case StructureType::eDebugUtilsObjectTagInfoEXT: return "DebugUtilsObjectTagInfoEXT";
1341       case StructureType::eDebugUtilsLabelEXT: return "DebugUtilsLabelEXT";
1342       case StructureType::eDebugUtilsMessengerCallbackDataEXT: return "DebugUtilsMessengerCallbackDataEXT";
1343       case StructureType::eDebugUtilsMessengerCreateInfoEXT: return "DebugUtilsMessengerCreateInfoEXT";
1344 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
1345       case StructureType::eAndroidHardwareBufferUsageANDROID: return "AndroidHardwareBufferUsageANDROID";
1346       case StructureType::eAndroidHardwareBufferPropertiesANDROID: return "AndroidHardwareBufferPropertiesANDROID";
1347       case StructureType::eAndroidHardwareBufferFormatPropertiesANDROID:
1348         return "AndroidHardwareBufferFormatPropertiesANDROID";
1349       case StructureType::eImportAndroidHardwareBufferInfoANDROID: return "ImportAndroidHardwareBufferInfoANDROID";
1350       case StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID:
1351         return "MemoryGetAndroidHardwareBufferInfoANDROID";
1352       case StructureType::eExternalFormatANDROID: return "ExternalFormatANDROID";
1353 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
1354       case StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT:
1355         return "PhysicalDeviceInlineUniformBlockFeaturesEXT";
1356       case StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT:
1357         return "PhysicalDeviceInlineUniformBlockPropertiesEXT";
1358       case StructureType::eWriteDescriptorSetInlineUniformBlockEXT: return "WriteDescriptorSetInlineUniformBlockEXT";
1359       case StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT:
1360         return "DescriptorPoolInlineUniformBlockCreateInfoEXT";
1361       case StructureType::eSampleLocationsInfoEXT: return "SampleLocationsInfoEXT";
1362       case StructureType::eRenderPassSampleLocationsBeginInfoEXT: return "RenderPassSampleLocationsBeginInfoEXT";
1363       case StructureType::ePipelineSampleLocationsStateCreateInfoEXT:
1364         return "PipelineSampleLocationsStateCreateInfoEXT";
1365       case StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT:
1366         return "PhysicalDeviceSampleLocationsPropertiesEXT";
1367       case StructureType::eMultisamplePropertiesEXT: return "MultisamplePropertiesEXT";
1368       case StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT:
1369         return "PhysicalDeviceBlendOperationAdvancedFeaturesEXT";
1370       case StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT:
1371         return "PhysicalDeviceBlendOperationAdvancedPropertiesEXT";
1372       case StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT:
1373         return "PipelineColorBlendAdvancedStateCreateInfoEXT";
1374       case StructureType::ePipelineCoverageToColorStateCreateInfoNV: return "PipelineCoverageToColorStateCreateInfoNV";
1375       case StructureType::eWriteDescriptorSetAccelerationStructureKHR:
1376         return "WriteDescriptorSetAccelerationStructureKHR";
1377       case StructureType::eAccelerationStructureBuildGeometryInfoKHR:
1378         return "AccelerationStructureBuildGeometryInfoKHR";
1379       case StructureType::eAccelerationStructureDeviceAddressInfoKHR:
1380         return "AccelerationStructureDeviceAddressInfoKHR";
1381       case StructureType::eAccelerationStructureGeometryAabbsDataKHR:
1382         return "AccelerationStructureGeometryAabbsDataKHR";
1383       case StructureType::eAccelerationStructureGeometryInstancesDataKHR:
1384         return "AccelerationStructureGeometryInstancesDataKHR";
1385       case StructureType::eAccelerationStructureGeometryTrianglesDataKHR:
1386         return "AccelerationStructureGeometryTrianglesDataKHR";
1387       case StructureType::eAccelerationStructureGeometryKHR: return "AccelerationStructureGeometryKHR";
1388       case StructureType::eAccelerationStructureVersionInfoKHR: return "AccelerationStructureVersionInfoKHR";
1389       case StructureType::eCopyAccelerationStructureInfoKHR: return "CopyAccelerationStructureInfoKHR";
1390       case StructureType::eCopyAccelerationStructureToMemoryInfoKHR: return "CopyAccelerationStructureToMemoryInfoKHR";
1391       case StructureType::eCopyMemoryToAccelerationStructureInfoKHR: return "CopyMemoryToAccelerationStructureInfoKHR";
1392       case StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR:
1393         return "PhysicalDeviceAccelerationStructureFeaturesKHR";
1394       case StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR:
1395         return "PhysicalDeviceAccelerationStructurePropertiesKHR";
1396       case StructureType::eAccelerationStructureCreateInfoKHR: return "AccelerationStructureCreateInfoKHR";
1397       case StructureType::eAccelerationStructureBuildSizesInfoKHR: return "AccelerationStructureBuildSizesInfoKHR";
1398       case StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR:
1399         return "PhysicalDeviceRayTracingPipelineFeaturesKHR";
1400       case StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR:
1401         return "PhysicalDeviceRayTracingPipelinePropertiesKHR";
1402       case StructureType::eRayTracingPipelineCreateInfoKHR: return "RayTracingPipelineCreateInfoKHR";
1403       case StructureType::eRayTracingShaderGroupCreateInfoKHR: return "RayTracingShaderGroupCreateInfoKHR";
1404       case StructureType::eRayTracingPipelineInterfaceCreateInfoKHR: return "RayTracingPipelineInterfaceCreateInfoKHR";
1405       case StructureType::ePhysicalDeviceRayQueryFeaturesKHR: return "PhysicalDeviceRayQueryFeaturesKHR";
1406       case StructureType::ePipelineCoverageModulationStateCreateInfoNV:
1407         return "PipelineCoverageModulationStateCreateInfoNV";
1408       case StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV: return "PhysicalDeviceShaderSmBuiltinsFeaturesNV";
1409       case StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV:
1410         return "PhysicalDeviceShaderSmBuiltinsPropertiesNV";
1411       case StructureType::eDrmFormatModifierPropertiesListEXT: return "DrmFormatModifierPropertiesListEXT";
1412       case StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT:
1413         return "PhysicalDeviceImageDrmFormatModifierInfoEXT";
1414       case StructureType::eImageDrmFormatModifierListCreateInfoEXT: return "ImageDrmFormatModifierListCreateInfoEXT";
1415       case StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT:
1416         return "ImageDrmFormatModifierExplicitCreateInfoEXT";
1417       case StructureType::eImageDrmFormatModifierPropertiesEXT: return "ImageDrmFormatModifierPropertiesEXT";
1418       case StructureType::eValidationCacheCreateInfoEXT: return "ValidationCacheCreateInfoEXT";
1419       case StructureType::eShaderModuleValidationCacheCreateInfoEXT: return "ShaderModuleValidationCacheCreateInfoEXT";
1420 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1421       case StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR:
1422         return "PhysicalDevicePortabilitySubsetFeaturesKHR";
1423       case StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR:
1424         return "PhysicalDevicePortabilitySubsetPropertiesKHR";
1425 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1426       case StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV:
1427         return "PipelineViewportShadingRateImageStateCreateInfoNV";
1428       case StructureType::ePhysicalDeviceShadingRateImageFeaturesNV: return "PhysicalDeviceShadingRateImageFeaturesNV";
1429       case StructureType::ePhysicalDeviceShadingRateImagePropertiesNV:
1430         return "PhysicalDeviceShadingRateImagePropertiesNV";
1431       case StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV:
1432         return "PipelineViewportCoarseSampleOrderStateCreateInfoNV";
1433       case StructureType::eRayTracingPipelineCreateInfoNV: return "RayTracingPipelineCreateInfoNV";
1434       case StructureType::eAccelerationStructureCreateInfoNV: return "AccelerationStructureCreateInfoNV";
1435       case StructureType::eGeometryNV: return "GeometryNV";
1436       case StructureType::eGeometryTrianglesNV: return "GeometryTrianglesNV";
1437       case StructureType::eGeometryAabbNV: return "GeometryAabbNV";
1438       case StructureType::eBindAccelerationStructureMemoryInfoNV: return "BindAccelerationStructureMemoryInfoNV";
1439       case StructureType::eWriteDescriptorSetAccelerationStructureNV:
1440         return "WriteDescriptorSetAccelerationStructureNV";
1441       case StructureType::eAccelerationStructureMemoryRequirementsInfoNV:
1442         return "AccelerationStructureMemoryRequirementsInfoNV";
1443       case StructureType::ePhysicalDeviceRayTracingPropertiesNV: return "PhysicalDeviceRayTracingPropertiesNV";
1444       case StructureType::eRayTracingShaderGroupCreateInfoNV: return "RayTracingShaderGroupCreateInfoNV";
1445       case StructureType::eAccelerationStructureInfoNV: return "AccelerationStructureInfoNV";
1446       case StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV:
1447         return "PhysicalDeviceRepresentativeFragmentTestFeaturesNV";
1448       case StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV:
1449         return "PipelineRepresentativeFragmentTestStateCreateInfoNV";
1450       case StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT:
1451         return "PhysicalDeviceImageViewImageFormatInfoEXT";
1452       case StructureType::eFilterCubicImageViewImageFormatPropertiesEXT:
1453         return "FilterCubicImageViewImageFormatPropertiesEXT";
1454       case StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT: return "DeviceQueueGlobalPriorityCreateInfoEXT";
1455       case StructureType::eImportMemoryHostPointerInfoEXT: return "ImportMemoryHostPointerInfoEXT";
1456       case StructureType::eMemoryHostPointerPropertiesEXT: return "MemoryHostPointerPropertiesEXT";
1457       case StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT:
1458         return "PhysicalDeviceExternalMemoryHostPropertiesEXT";
1459       case StructureType::ePhysicalDeviceShaderClockFeaturesKHR: return "PhysicalDeviceShaderClockFeaturesKHR";
1460       case StructureType::ePipelineCompilerControlCreateInfoAMD: return "PipelineCompilerControlCreateInfoAMD";
1461       case StructureType::eCalibratedTimestampInfoEXT: return "CalibratedTimestampInfoEXT";
1462       case StructureType::ePhysicalDeviceShaderCorePropertiesAMD: return "PhysicalDeviceShaderCorePropertiesAMD";
1463 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1464       case StructureType::eVideoDecodeH265CapabilitiesEXT: return "VideoDecodeH265CapabilitiesEXT";
1465       case StructureType::eVideoDecodeH265SessionCreateInfoEXT: return "VideoDecodeH265SessionCreateInfoEXT";
1466       case StructureType::eVideoDecodeH265SessionParametersCreateInfoEXT:
1467         return "VideoDecodeH265SessionParametersCreateInfoEXT";
1468       case StructureType::eVideoDecodeH265SessionParametersAddInfoEXT:
1469         return "VideoDecodeH265SessionParametersAddInfoEXT";
1470       case StructureType::eVideoDecodeH265ProfileEXT: return "VideoDecodeH265ProfileEXT";
1471       case StructureType::eVideoDecodeH265PictureInfoEXT: return "VideoDecodeH265PictureInfoEXT";
1472       case StructureType::eVideoDecodeH265DpbSlotInfoEXT: return "VideoDecodeH265DpbSlotInfoEXT";
1473 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1474       case StructureType::eDeviceMemoryOverallocationCreateInfoAMD: return "DeviceMemoryOverallocationCreateInfoAMD";
1475       case StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT:
1476         return "PhysicalDeviceVertexAttributeDivisorPropertiesEXT";
1477       case StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT:
1478         return "PipelineVertexInputDivisorStateCreateInfoEXT";
1479       case StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT:
1480         return "PhysicalDeviceVertexAttributeDivisorFeaturesEXT";
1481 #if defined( VK_USE_PLATFORM_GGP )
1482       case StructureType::ePresentFrameTokenGGP: return "PresentFrameTokenGGP";
1483 #endif /*VK_USE_PLATFORM_GGP*/
1484       case StructureType::ePipelineCreationFeedbackCreateInfoEXT: return "PipelineCreationFeedbackCreateInfoEXT";
1485       case StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV:
1486         return "PhysicalDeviceComputeShaderDerivativesFeaturesNV";
1487       case StructureType::ePhysicalDeviceMeshShaderFeaturesNV: return "PhysicalDeviceMeshShaderFeaturesNV";
1488       case StructureType::ePhysicalDeviceMeshShaderPropertiesNV: return "PhysicalDeviceMeshShaderPropertiesNV";
1489       case StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV:
1490         return "PhysicalDeviceFragmentShaderBarycentricFeaturesNV";
1491       case StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV:
1492         return "PhysicalDeviceShaderImageFootprintFeaturesNV";
1493       case StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV:
1494         return "PipelineViewportExclusiveScissorStateCreateInfoNV";
1495       case StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV: return "PhysicalDeviceExclusiveScissorFeaturesNV";
1496       case StructureType::eCheckpointDataNV: return "CheckpointDataNV";
1497       case StructureType::eQueueFamilyCheckpointPropertiesNV: return "QueueFamilyCheckpointPropertiesNV";
1498       case StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL:
1499         return "PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL";
1500       case StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL: return "QueryPoolPerformanceQueryCreateInfoINTEL";
1501       case StructureType::eInitializePerformanceApiInfoINTEL: return "InitializePerformanceApiInfoINTEL";
1502       case StructureType::ePerformanceMarkerInfoINTEL: return "PerformanceMarkerInfoINTEL";
1503       case StructureType::ePerformanceStreamMarkerInfoINTEL: return "PerformanceStreamMarkerInfoINTEL";
1504       case StructureType::ePerformanceOverrideInfoINTEL: return "PerformanceOverrideInfoINTEL";
1505       case StructureType::ePerformanceConfigurationAcquireInfoINTEL: return "PerformanceConfigurationAcquireInfoINTEL";
1506       case StructureType::ePhysicalDevicePciBusInfoPropertiesEXT: return "PhysicalDevicePciBusInfoPropertiesEXT";
1507       case StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD: return "DisplayNativeHdrSurfaceCapabilitiesAMD";
1508       case StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD: return "SwapchainDisplayNativeHdrCreateInfoAMD";
1509 #if defined( VK_USE_PLATFORM_FUCHSIA )
1510       case StructureType::eImagepipeSurfaceCreateInfoFUCHSIA: return "ImagepipeSurfaceCreateInfoFUCHSIA";
1511 #endif /*VK_USE_PLATFORM_FUCHSIA*/
1512       case StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR:
1513         return "PhysicalDeviceShaderTerminateInvocationFeaturesKHR";
1514 #if defined( VK_USE_PLATFORM_METAL_EXT )
1515       case StructureType::eMetalSurfaceCreateInfoEXT: return "MetalSurfaceCreateInfoEXT";
1516 #endif /*VK_USE_PLATFORM_METAL_EXT*/
1517       case StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT:
1518         return "PhysicalDeviceFragmentDensityMapFeaturesEXT";
1519       case StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT:
1520         return "PhysicalDeviceFragmentDensityMapPropertiesEXT";
1521       case StructureType::eRenderPassFragmentDensityMapCreateInfoEXT:
1522         return "RenderPassFragmentDensityMapCreateInfoEXT";
1523       case StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT:
1524         return "PhysicalDeviceSubgroupSizeControlPropertiesEXT";
1525       case StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT:
1526         return "PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT";
1527       case StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT:
1528         return "PhysicalDeviceSubgroupSizeControlFeaturesEXT";
1529       case StructureType::eFragmentShadingRateAttachmentInfoKHR: return "FragmentShadingRateAttachmentInfoKHR";
1530       case StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR:
1531         return "PipelineFragmentShadingRateStateCreateInfoKHR";
1532       case StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR:
1533         return "PhysicalDeviceFragmentShadingRatePropertiesKHR";
1534       case StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR:
1535         return "PhysicalDeviceFragmentShadingRateFeaturesKHR";
1536       case StructureType::ePhysicalDeviceFragmentShadingRateKHR: return "PhysicalDeviceFragmentShadingRateKHR";
1537       case StructureType::ePhysicalDeviceShaderCoreProperties2AMD: return "PhysicalDeviceShaderCoreProperties2AMD";
1538       case StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD: return "PhysicalDeviceCoherentMemoryFeaturesAMD";
1539       case StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT:
1540         return "PhysicalDeviceShaderImageAtomicInt64FeaturesEXT";
1541       case StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT: return "PhysicalDeviceMemoryBudgetPropertiesEXT";
1542       case StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT: return "PhysicalDeviceMemoryPriorityFeaturesEXT";
1543       case StructureType::eMemoryPriorityAllocateInfoEXT: return "MemoryPriorityAllocateInfoEXT";
1544       case StructureType::eSurfaceProtectedCapabilitiesKHR: return "SurfaceProtectedCapabilitiesKHR";
1545       case StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV:
1546         return "PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV";
1547       case StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT:
1548         return "PhysicalDeviceBufferDeviceAddressFeaturesEXT";
1549       case StructureType::eBufferDeviceAddressCreateInfoEXT: return "BufferDeviceAddressCreateInfoEXT";
1550       case StructureType::ePhysicalDeviceToolPropertiesEXT: return "PhysicalDeviceToolPropertiesEXT";
1551       case StructureType::eValidationFeaturesEXT: return "ValidationFeaturesEXT";
1552       case StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV:
1553         return "PhysicalDeviceCooperativeMatrixFeaturesNV";
1554       case StructureType::eCooperativeMatrixPropertiesNV: return "CooperativeMatrixPropertiesNV";
1555       case StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV:
1556         return "PhysicalDeviceCooperativeMatrixPropertiesNV";
1557       case StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV:
1558         return "PhysicalDeviceCoverageReductionModeFeaturesNV";
1559       case StructureType::ePipelineCoverageReductionStateCreateInfoNV:
1560         return "PipelineCoverageReductionStateCreateInfoNV";
1561       case StructureType::eFramebufferMixedSamplesCombinationNV: return "FramebufferMixedSamplesCombinationNV";
1562       case StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT:
1563         return "PhysicalDeviceFragmentShaderInterlockFeaturesEXT";
1564       case StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT:
1565         return "PhysicalDeviceYcbcrImageArraysFeaturesEXT";
1566       case StructureType::ePhysicalDeviceProvokingVertexFeaturesEXT: return "PhysicalDeviceProvokingVertexFeaturesEXT";
1567       case StructureType::ePipelineRasterizationProvokingVertexStateCreateInfoEXT:
1568         return "PipelineRasterizationProvokingVertexStateCreateInfoEXT";
1569       case StructureType::ePhysicalDeviceProvokingVertexPropertiesEXT:
1570         return "PhysicalDeviceProvokingVertexPropertiesEXT";
1571 #if defined( VK_USE_PLATFORM_WIN32_KHR )
1572       case StructureType::eSurfaceFullScreenExclusiveInfoEXT: return "SurfaceFullScreenExclusiveInfoEXT";
1573       case StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT:
1574         return "SurfaceCapabilitiesFullScreenExclusiveEXT";
1575       case StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT: return "SurfaceFullScreenExclusiveWin32InfoEXT";
1576 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
1577       case StructureType::eHeadlessSurfaceCreateInfoEXT: return "HeadlessSurfaceCreateInfoEXT";
1578       case StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT:
1579         return "PhysicalDeviceLineRasterizationFeaturesEXT";
1580       case StructureType::ePipelineRasterizationLineStateCreateInfoEXT:
1581         return "PipelineRasterizationLineStateCreateInfoEXT";
1582       case StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT:
1583         return "PhysicalDeviceLineRasterizationPropertiesEXT";
1584       case StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT:
1585         return "PhysicalDeviceShaderAtomicFloatFeaturesEXT";
1586       case StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT: return "PhysicalDeviceIndexTypeUint8FeaturesEXT";
1587       case StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT:
1588         return "PhysicalDeviceExtendedDynamicStateFeaturesEXT";
1589       case StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR:
1590         return "PhysicalDevicePipelineExecutablePropertiesFeaturesKHR";
1591       case StructureType::ePipelineInfoKHR: return "PipelineInfoKHR";
1592       case StructureType::ePipelineExecutablePropertiesKHR: return "PipelineExecutablePropertiesKHR";
1593       case StructureType::ePipelineExecutableInfoKHR: return "PipelineExecutableInfoKHR";
1594       case StructureType::ePipelineExecutableStatisticKHR: return "PipelineExecutableStatisticKHR";
1595       case StructureType::ePipelineExecutableInternalRepresentationKHR:
1596         return "PipelineExecutableInternalRepresentationKHR";
1597       case StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT:
1598         return "PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT";
1599       case StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV:
1600         return "PhysicalDeviceDeviceGeneratedCommandsPropertiesNV";
1601       case StructureType::eGraphicsShaderGroupCreateInfoNV: return "GraphicsShaderGroupCreateInfoNV";
1602       case StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV: return "GraphicsPipelineShaderGroupsCreateInfoNV";
1603       case StructureType::eIndirectCommandsLayoutTokenNV: return "IndirectCommandsLayoutTokenNV";
1604       case StructureType::eIndirectCommandsLayoutCreateInfoNV: return "IndirectCommandsLayoutCreateInfoNV";
1605       case StructureType::eGeneratedCommandsInfoNV: return "GeneratedCommandsInfoNV";
1606       case StructureType::eGeneratedCommandsMemoryRequirementsInfoNV:
1607         return "GeneratedCommandsMemoryRequirementsInfoNV";
1608       case StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV:
1609         return "PhysicalDeviceDeviceGeneratedCommandsFeaturesNV";
1610       case StructureType::ePhysicalDeviceInheritedViewportScissorFeaturesNV:
1611         return "PhysicalDeviceInheritedViewportScissorFeaturesNV";
1612       case StructureType::eCommandBufferInheritanceViewportScissorInfoNV:
1613         return "CommandBufferInheritanceViewportScissorInfoNV";
1614       case StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT:
1615         return "PhysicalDeviceTexelBufferAlignmentFeaturesEXT";
1616       case StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT:
1617         return "PhysicalDeviceTexelBufferAlignmentPropertiesEXT";
1618       case StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM:
1619         return "CommandBufferInheritanceRenderPassTransformInfoQCOM";
1620       case StructureType::eRenderPassTransformBeginInfoQCOM: return "RenderPassTransformBeginInfoQCOM";
1621       case StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT:
1622         return "PhysicalDeviceDeviceMemoryReportFeaturesEXT";
1623       case StructureType::eDeviceDeviceMemoryReportCreateInfoEXT: return "DeviceDeviceMemoryReportCreateInfoEXT";
1624       case StructureType::eDeviceMemoryReportCallbackDataEXT: return "DeviceMemoryReportCallbackDataEXT";
1625       case StructureType::ePhysicalDeviceRobustness2FeaturesEXT: return "PhysicalDeviceRobustness2FeaturesEXT";
1626       case StructureType::ePhysicalDeviceRobustness2PropertiesEXT: return "PhysicalDeviceRobustness2PropertiesEXT";
1627       case StructureType::eSamplerCustomBorderColorCreateInfoEXT: return "SamplerCustomBorderColorCreateInfoEXT";
1628       case StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT:
1629         return "PhysicalDeviceCustomBorderColorPropertiesEXT";
1630       case StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT:
1631         return "PhysicalDeviceCustomBorderColorFeaturesEXT";
1632       case StructureType::ePipelineLibraryCreateInfoKHR: return "PipelineLibraryCreateInfoKHR";
1633       case StructureType::ePhysicalDevicePrivateDataFeaturesEXT: return "PhysicalDevicePrivateDataFeaturesEXT";
1634       case StructureType::eDevicePrivateDataCreateInfoEXT: return "DevicePrivateDataCreateInfoEXT";
1635       case StructureType::ePrivateDataSlotCreateInfoEXT: return "PrivateDataSlotCreateInfoEXT";
1636       case StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT:
1637         return "PhysicalDevicePipelineCreationCacheControlFeaturesEXT";
1638 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1639       case StructureType::eVideoEncodeInfoKHR: return "VideoEncodeInfoKHR";
1640       case StructureType::eVideoEncodeRateControlInfoKHR: return "VideoEncodeRateControlInfoKHR";
1641 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1642       case StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV:
1643         return "PhysicalDeviceDiagnosticsConfigFeaturesNV";
1644       case StructureType::eDeviceDiagnosticsConfigCreateInfoNV: return "DeviceDiagnosticsConfigCreateInfoNV";
1645       case StructureType::eMemoryBarrier2KHR: return "MemoryBarrier2KHR";
1646       case StructureType::eBufferMemoryBarrier2KHR: return "BufferMemoryBarrier2KHR";
1647       case StructureType::eImageMemoryBarrier2KHR: return "ImageMemoryBarrier2KHR";
1648       case StructureType::eDependencyInfoKHR: return "DependencyInfoKHR";
1649       case StructureType::eSubmitInfo2KHR: return "SubmitInfo2KHR";
1650       case StructureType::eSemaphoreSubmitInfoKHR: return "SemaphoreSubmitInfoKHR";
1651       case StructureType::eCommandBufferSubmitInfoKHR: return "CommandBufferSubmitInfoKHR";
1652       case StructureType::ePhysicalDeviceSynchronization2FeaturesKHR:
1653         return "PhysicalDeviceSynchronization2FeaturesKHR";
1654       case StructureType::eQueueFamilyCheckpointProperties2NV: return "QueueFamilyCheckpointProperties2NV";
1655       case StructureType::eCheckpointData2NV: return "CheckpointData2NV";
1656       case StructureType::ePhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR:
1657         return "PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR";
1658       case StructureType::ePhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR:
1659         return "PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR";
1660       case StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV:
1661         return "PhysicalDeviceFragmentShadingRateEnumsPropertiesNV";
1662       case StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV:
1663         return "PhysicalDeviceFragmentShadingRateEnumsFeaturesNV";
1664       case StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV:
1665         return "PipelineFragmentShadingRateEnumStateCreateInfoNV";
1666       case StructureType::eAccelerationStructureGeometryMotionTrianglesDataNV:
1667         return "AccelerationStructureGeometryMotionTrianglesDataNV";
1668       case StructureType::ePhysicalDeviceRayTracingMotionBlurFeaturesNV:
1669         return "PhysicalDeviceRayTracingMotionBlurFeaturesNV";
1670       case StructureType::eAccelerationStructureMotionInfoNV: return "AccelerationStructureMotionInfoNV";
1671       case StructureType::ePhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT:
1672         return "PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT";
1673       case StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT:
1674         return "PhysicalDeviceFragmentDensityMap2FeaturesEXT";
1675       case StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT:
1676         return "PhysicalDeviceFragmentDensityMap2PropertiesEXT";
1677       case StructureType::eCopyCommandTransformInfoQCOM: return "CopyCommandTransformInfoQCOM";
1678       case StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT: return "PhysicalDeviceImageRobustnessFeaturesEXT";
1679       case StructureType::ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR:
1680         return "PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR";
1681       case StructureType::eCopyBufferInfo2KHR: return "CopyBufferInfo2KHR";
1682       case StructureType::eCopyImageInfo2KHR: return "CopyImageInfo2KHR";
1683       case StructureType::eCopyBufferToImageInfo2KHR: return "CopyBufferToImageInfo2KHR";
1684       case StructureType::eCopyImageToBufferInfo2KHR: return "CopyImageToBufferInfo2KHR";
1685       case StructureType::eBlitImageInfo2KHR: return "BlitImageInfo2KHR";
1686       case StructureType::eResolveImageInfo2KHR: return "ResolveImageInfo2KHR";
1687       case StructureType::eBufferCopy2KHR: return "BufferCopy2KHR";
1688       case StructureType::eImageCopy2KHR: return "ImageCopy2KHR";
1689       case StructureType::eImageBlit2KHR: return "ImageBlit2KHR";
1690       case StructureType::eBufferImageCopy2KHR: return "BufferImageCopy2KHR";
1691       case StructureType::eImageResolve2KHR: return "ImageResolve2KHR";
1692       case StructureType::ePhysicalDevice4444FormatsFeaturesEXT: return "PhysicalDevice4444FormatsFeaturesEXT";
1693 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
1694       case StructureType::eDirectfbSurfaceCreateInfoEXT: return "DirectfbSurfaceCreateInfoEXT";
1695 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
1696       case StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE:
1697         return "PhysicalDeviceMutableDescriptorTypeFeaturesVALVE";
1698       case StructureType::eMutableDescriptorTypeCreateInfoVALVE: return "MutableDescriptorTypeCreateInfoVALVE";
1699       case StructureType::ePhysicalDeviceVertexInputDynamicStateFeaturesEXT:
1700         return "PhysicalDeviceVertexInputDynamicStateFeaturesEXT";
1701       case StructureType::eVertexInputBindingDescription2EXT: return "VertexInputBindingDescription2EXT";
1702       case StructureType::eVertexInputAttributeDescription2EXT: return "VertexInputAttributeDescription2EXT";
1703       case StructureType::ePhysicalDeviceDrmPropertiesEXT: return "PhysicalDeviceDrmPropertiesEXT";
1704 #if defined( VK_USE_PLATFORM_FUCHSIA )
1705       case StructureType::eImportMemoryZirconHandleInfoFUCHSIA: return "ImportMemoryZirconHandleInfoFUCHSIA";
1706       case StructureType::eMemoryZirconHandlePropertiesFUCHSIA: return "MemoryZirconHandlePropertiesFUCHSIA";
1707       case StructureType::eMemoryGetZirconHandleInfoFUCHSIA: return "MemoryGetZirconHandleInfoFUCHSIA";
1708       case StructureType::eImportSemaphoreZirconHandleInfoFUCHSIA: return "ImportSemaphoreZirconHandleInfoFUCHSIA";
1709       case StructureType::eSemaphoreGetZirconHandleInfoFUCHSIA: return "SemaphoreGetZirconHandleInfoFUCHSIA";
1710 #endif /*VK_USE_PLATFORM_FUCHSIA*/
1711       case StructureType::eSubpassShadingPipelineCreateInfoHUAWEI: return "SubpassShadingPipelineCreateInfoHUAWEI";
1712       case StructureType::ePhysicalDeviceSubpassShadingFeaturesHUAWEI:
1713         return "PhysicalDeviceSubpassShadingFeaturesHUAWEI";
1714       case StructureType::ePhysicalDeviceSubpassShadingPropertiesHUAWEI:
1715         return "PhysicalDeviceSubpassShadingPropertiesHUAWEI";
1716       case StructureType::eMemoryGetRemoteAddressInfoNV: return "MemoryGetRemoteAddressInfoNV";
1717       case StructureType::ePhysicalDeviceExternalMemoryRdmaFeaturesNV:
1718         return "PhysicalDeviceExternalMemoryRdmaFeaturesNV";
1719       case StructureType::ePhysicalDeviceExtendedDynamicState2FeaturesEXT:
1720         return "PhysicalDeviceExtendedDynamicState2FeaturesEXT";
1721 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
1722       case StructureType::eScreenSurfaceCreateInfoQNX: return "ScreenSurfaceCreateInfoQNX";
1723 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
1724       case StructureType::ePhysicalDeviceColorWriteEnableFeaturesEXT:
1725         return "PhysicalDeviceColorWriteEnableFeaturesEXT";
1726       case StructureType::ePipelineColorWriteCreateInfoEXT: return "PipelineColorWriteCreateInfoEXT";
1727       case StructureType::ePhysicalDeviceGlobalPriorityQueryFeaturesEXT:
1728         return "PhysicalDeviceGlobalPriorityQueryFeaturesEXT";
1729       case StructureType::eQueueFamilyGlobalPriorityPropertiesEXT: return "QueueFamilyGlobalPriorityPropertiesEXT";
1730       case StructureType::ePhysicalDeviceMultiDrawFeaturesEXT: return "PhysicalDeviceMultiDrawFeaturesEXT";
1731       case StructureType::ePhysicalDeviceMultiDrawPropertiesEXT: return "PhysicalDeviceMultiDrawPropertiesEXT";
1732       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
1733     }
1734   }
1735 
1736   enum class ObjectType
1737   {
1738     eUnknown                  = VK_OBJECT_TYPE_UNKNOWN,
1739     eInstance                 = VK_OBJECT_TYPE_INSTANCE,
1740     ePhysicalDevice           = VK_OBJECT_TYPE_PHYSICAL_DEVICE,
1741     eDevice                   = VK_OBJECT_TYPE_DEVICE,
1742     eQueue                    = VK_OBJECT_TYPE_QUEUE,
1743     eSemaphore                = VK_OBJECT_TYPE_SEMAPHORE,
1744     eCommandBuffer            = VK_OBJECT_TYPE_COMMAND_BUFFER,
1745     eFence                    = VK_OBJECT_TYPE_FENCE,
1746     eDeviceMemory             = VK_OBJECT_TYPE_DEVICE_MEMORY,
1747     eBuffer                   = VK_OBJECT_TYPE_BUFFER,
1748     eImage                    = VK_OBJECT_TYPE_IMAGE,
1749     eEvent                    = VK_OBJECT_TYPE_EVENT,
1750     eQueryPool                = VK_OBJECT_TYPE_QUERY_POOL,
1751     eBufferView               = VK_OBJECT_TYPE_BUFFER_VIEW,
1752     eImageView                = VK_OBJECT_TYPE_IMAGE_VIEW,
1753     eShaderModule             = VK_OBJECT_TYPE_SHADER_MODULE,
1754     ePipelineCache            = VK_OBJECT_TYPE_PIPELINE_CACHE,
1755     ePipelineLayout           = VK_OBJECT_TYPE_PIPELINE_LAYOUT,
1756     eRenderPass               = VK_OBJECT_TYPE_RENDER_PASS,
1757     ePipeline                 = VK_OBJECT_TYPE_PIPELINE,
1758     eDescriptorSetLayout      = VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT,
1759     eSampler                  = VK_OBJECT_TYPE_SAMPLER,
1760     eDescriptorPool           = VK_OBJECT_TYPE_DESCRIPTOR_POOL,
1761     eDescriptorSet            = VK_OBJECT_TYPE_DESCRIPTOR_SET,
1762     eFramebuffer              = VK_OBJECT_TYPE_FRAMEBUFFER,
1763     eCommandPool              = VK_OBJECT_TYPE_COMMAND_POOL,
1764     eSamplerYcbcrConversion   = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
1765     eDescriptorUpdateTemplate = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
1766     eSurfaceKHR               = VK_OBJECT_TYPE_SURFACE_KHR,
1767     eSwapchainKHR             = VK_OBJECT_TYPE_SWAPCHAIN_KHR,
1768     eDisplayKHR               = VK_OBJECT_TYPE_DISPLAY_KHR,
1769     eDisplayModeKHR           = VK_OBJECT_TYPE_DISPLAY_MODE_KHR,
1770     eDebugReportCallbackEXT   = VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT,
1771 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1772     eVideoSessionKHR           = VK_OBJECT_TYPE_VIDEO_SESSION_KHR,
1773     eVideoSessionParametersKHR = VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR,
1774 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1775     eCuModuleNVX                   = VK_OBJECT_TYPE_CU_MODULE_NVX,
1776     eCuFunctionNVX                 = VK_OBJECT_TYPE_CU_FUNCTION_NVX,
1777     eDebugUtilsMessengerEXT        = VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT,
1778     eAccelerationStructureKHR      = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR,
1779     eValidationCacheEXT            = VK_OBJECT_TYPE_VALIDATION_CACHE_EXT,
1780     eAccelerationStructureNV       = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV,
1781     ePerformanceConfigurationINTEL = VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL,
1782     eDeferredOperationKHR          = VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR,
1783     eIndirectCommandsLayoutNV      = VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV,
1784     ePrivateDataSlotEXT            = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT,
1785     eDescriptorUpdateTemplateKHR   = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR,
1786     eSamplerYcbcrConversionKHR     = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR
1787   };
1788 
to_string(ObjectType value)1789   VULKAN_HPP_INLINE std::string to_string( ObjectType value )
1790   {
1791     switch ( value )
1792     {
1793       case ObjectType::eUnknown: return "Unknown";
1794       case ObjectType::eInstance: return "Instance";
1795       case ObjectType::ePhysicalDevice: return "PhysicalDevice";
1796       case ObjectType::eDevice: return "Device";
1797       case ObjectType::eQueue: return "Queue";
1798       case ObjectType::eSemaphore: return "Semaphore";
1799       case ObjectType::eCommandBuffer: return "CommandBuffer";
1800       case ObjectType::eFence: return "Fence";
1801       case ObjectType::eDeviceMemory: return "DeviceMemory";
1802       case ObjectType::eBuffer: return "Buffer";
1803       case ObjectType::eImage: return "Image";
1804       case ObjectType::eEvent: return "Event";
1805       case ObjectType::eQueryPool: return "QueryPool";
1806       case ObjectType::eBufferView: return "BufferView";
1807       case ObjectType::eImageView: return "ImageView";
1808       case ObjectType::eShaderModule: return "ShaderModule";
1809       case ObjectType::ePipelineCache: return "PipelineCache";
1810       case ObjectType::ePipelineLayout: return "PipelineLayout";
1811       case ObjectType::eRenderPass: return "RenderPass";
1812       case ObjectType::ePipeline: return "Pipeline";
1813       case ObjectType::eDescriptorSetLayout: return "DescriptorSetLayout";
1814       case ObjectType::eSampler: return "Sampler";
1815       case ObjectType::eDescriptorPool: return "DescriptorPool";
1816       case ObjectType::eDescriptorSet: return "DescriptorSet";
1817       case ObjectType::eFramebuffer: return "Framebuffer";
1818       case ObjectType::eCommandPool: return "CommandPool";
1819       case ObjectType::eSamplerYcbcrConversion: return "SamplerYcbcrConversion";
1820       case ObjectType::eDescriptorUpdateTemplate: return "DescriptorUpdateTemplate";
1821       case ObjectType::eSurfaceKHR: return "SurfaceKHR";
1822       case ObjectType::eSwapchainKHR: return "SwapchainKHR";
1823       case ObjectType::eDisplayKHR: return "DisplayKHR";
1824       case ObjectType::eDisplayModeKHR: return "DisplayModeKHR";
1825       case ObjectType::eDebugReportCallbackEXT: return "DebugReportCallbackEXT";
1826 #if defined( VK_ENABLE_BETA_EXTENSIONS )
1827       case ObjectType::eVideoSessionKHR: return "VideoSessionKHR";
1828       case ObjectType::eVideoSessionParametersKHR: return "VideoSessionParametersKHR";
1829 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
1830       case ObjectType::eCuModuleNVX: return "CuModuleNVX";
1831       case ObjectType::eCuFunctionNVX: return "CuFunctionNVX";
1832       case ObjectType::eDebugUtilsMessengerEXT: return "DebugUtilsMessengerEXT";
1833       case ObjectType::eAccelerationStructureKHR: return "AccelerationStructureKHR";
1834       case ObjectType::eValidationCacheEXT: return "ValidationCacheEXT";
1835       case ObjectType::eAccelerationStructureNV: return "AccelerationStructureNV";
1836       case ObjectType::ePerformanceConfigurationINTEL: return "PerformanceConfigurationINTEL";
1837       case ObjectType::eDeferredOperationKHR: return "DeferredOperationKHR";
1838       case ObjectType::eIndirectCommandsLayoutNV: return "IndirectCommandsLayoutNV";
1839       case ObjectType::ePrivateDataSlotEXT: return "PrivateDataSlotEXT";
1840       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
1841     }
1842   }
1843 
1844   enum class VendorId
1845   {
1846     eVIV      = VK_VENDOR_ID_VIV,
1847     eVSI      = VK_VENDOR_ID_VSI,
1848     eKazan    = VK_VENDOR_ID_KAZAN,
1849     eCodeplay = VK_VENDOR_ID_CODEPLAY,
1850     eMESA     = VK_VENDOR_ID_MESA,
1851     ePocl     = VK_VENDOR_ID_POCL
1852   };
1853 
to_string(VendorId value)1854   VULKAN_HPP_INLINE std::string to_string( VendorId value )
1855   {
1856     switch ( value )
1857     {
1858       case VendorId::eVIV: return "VIV";
1859       case VendorId::eVSI: return "VSI";
1860       case VendorId::eKazan: return "Kazan";
1861       case VendorId::eCodeplay: return "Codeplay";
1862       case VendorId::eMESA: return "MESA";
1863       case VendorId::ePocl: return "Pocl";
1864       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
1865     }
1866   }
1867 
1868   enum class PipelineCacheHeaderVersion
1869   {
1870     eOne = VK_PIPELINE_CACHE_HEADER_VERSION_ONE
1871   };
1872 
to_string(PipelineCacheHeaderVersion value)1873   VULKAN_HPP_INLINE std::string to_string( PipelineCacheHeaderVersion value )
1874   {
1875     switch ( value )
1876     {
1877       case PipelineCacheHeaderVersion::eOne: return "One";
1878       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
1879     }
1880   }
1881 
1882   enum class Format
1883   {
1884     eUndefined                               = VK_FORMAT_UNDEFINED,
1885     eR4G4UnormPack8                          = VK_FORMAT_R4G4_UNORM_PACK8,
1886     eR4G4B4A4UnormPack16                     = VK_FORMAT_R4G4B4A4_UNORM_PACK16,
1887     eB4G4R4A4UnormPack16                     = VK_FORMAT_B4G4R4A4_UNORM_PACK16,
1888     eR5G6B5UnormPack16                       = VK_FORMAT_R5G6B5_UNORM_PACK16,
1889     eB5G6R5UnormPack16                       = VK_FORMAT_B5G6R5_UNORM_PACK16,
1890     eR5G5B5A1UnormPack16                     = VK_FORMAT_R5G5B5A1_UNORM_PACK16,
1891     eB5G5R5A1UnormPack16                     = VK_FORMAT_B5G5R5A1_UNORM_PACK16,
1892     eA1R5G5B5UnormPack16                     = VK_FORMAT_A1R5G5B5_UNORM_PACK16,
1893     eR8Unorm                                 = VK_FORMAT_R8_UNORM,
1894     eR8Snorm                                 = VK_FORMAT_R8_SNORM,
1895     eR8Uscaled                               = VK_FORMAT_R8_USCALED,
1896     eR8Sscaled                               = VK_FORMAT_R8_SSCALED,
1897     eR8Uint                                  = VK_FORMAT_R8_UINT,
1898     eR8Sint                                  = VK_FORMAT_R8_SINT,
1899     eR8Srgb                                  = VK_FORMAT_R8_SRGB,
1900     eR8G8Unorm                               = VK_FORMAT_R8G8_UNORM,
1901     eR8G8Snorm                               = VK_FORMAT_R8G8_SNORM,
1902     eR8G8Uscaled                             = VK_FORMAT_R8G8_USCALED,
1903     eR8G8Sscaled                             = VK_FORMAT_R8G8_SSCALED,
1904     eR8G8Uint                                = VK_FORMAT_R8G8_UINT,
1905     eR8G8Sint                                = VK_FORMAT_R8G8_SINT,
1906     eR8G8Srgb                                = VK_FORMAT_R8G8_SRGB,
1907     eR8G8B8Unorm                             = VK_FORMAT_R8G8B8_UNORM,
1908     eR8G8B8Snorm                             = VK_FORMAT_R8G8B8_SNORM,
1909     eR8G8B8Uscaled                           = VK_FORMAT_R8G8B8_USCALED,
1910     eR8G8B8Sscaled                           = VK_FORMAT_R8G8B8_SSCALED,
1911     eR8G8B8Uint                              = VK_FORMAT_R8G8B8_UINT,
1912     eR8G8B8Sint                              = VK_FORMAT_R8G8B8_SINT,
1913     eR8G8B8Srgb                              = VK_FORMAT_R8G8B8_SRGB,
1914     eB8G8R8Unorm                             = VK_FORMAT_B8G8R8_UNORM,
1915     eB8G8R8Snorm                             = VK_FORMAT_B8G8R8_SNORM,
1916     eB8G8R8Uscaled                           = VK_FORMAT_B8G8R8_USCALED,
1917     eB8G8R8Sscaled                           = VK_FORMAT_B8G8R8_SSCALED,
1918     eB8G8R8Uint                              = VK_FORMAT_B8G8R8_UINT,
1919     eB8G8R8Sint                              = VK_FORMAT_B8G8R8_SINT,
1920     eB8G8R8Srgb                              = VK_FORMAT_B8G8R8_SRGB,
1921     eR8G8B8A8Unorm                           = VK_FORMAT_R8G8B8A8_UNORM,
1922     eR8G8B8A8Snorm                           = VK_FORMAT_R8G8B8A8_SNORM,
1923     eR8G8B8A8Uscaled                         = VK_FORMAT_R8G8B8A8_USCALED,
1924     eR8G8B8A8Sscaled                         = VK_FORMAT_R8G8B8A8_SSCALED,
1925     eR8G8B8A8Uint                            = VK_FORMAT_R8G8B8A8_UINT,
1926     eR8G8B8A8Sint                            = VK_FORMAT_R8G8B8A8_SINT,
1927     eR8G8B8A8Srgb                            = VK_FORMAT_R8G8B8A8_SRGB,
1928     eB8G8R8A8Unorm                           = VK_FORMAT_B8G8R8A8_UNORM,
1929     eB8G8R8A8Snorm                           = VK_FORMAT_B8G8R8A8_SNORM,
1930     eB8G8R8A8Uscaled                         = VK_FORMAT_B8G8R8A8_USCALED,
1931     eB8G8R8A8Sscaled                         = VK_FORMAT_B8G8R8A8_SSCALED,
1932     eB8G8R8A8Uint                            = VK_FORMAT_B8G8R8A8_UINT,
1933     eB8G8R8A8Sint                            = VK_FORMAT_B8G8R8A8_SINT,
1934     eB8G8R8A8Srgb                            = VK_FORMAT_B8G8R8A8_SRGB,
1935     eA8B8G8R8UnormPack32                     = VK_FORMAT_A8B8G8R8_UNORM_PACK32,
1936     eA8B8G8R8SnormPack32                     = VK_FORMAT_A8B8G8R8_SNORM_PACK32,
1937     eA8B8G8R8UscaledPack32                   = VK_FORMAT_A8B8G8R8_USCALED_PACK32,
1938     eA8B8G8R8SscaledPack32                   = VK_FORMAT_A8B8G8R8_SSCALED_PACK32,
1939     eA8B8G8R8UintPack32                      = VK_FORMAT_A8B8G8R8_UINT_PACK32,
1940     eA8B8G8R8SintPack32                      = VK_FORMAT_A8B8G8R8_SINT_PACK32,
1941     eA8B8G8R8SrgbPack32                      = VK_FORMAT_A8B8G8R8_SRGB_PACK32,
1942     eA2R10G10B10UnormPack32                  = VK_FORMAT_A2R10G10B10_UNORM_PACK32,
1943     eA2R10G10B10SnormPack32                  = VK_FORMAT_A2R10G10B10_SNORM_PACK32,
1944     eA2R10G10B10UscaledPack32                = VK_FORMAT_A2R10G10B10_USCALED_PACK32,
1945     eA2R10G10B10SscaledPack32                = VK_FORMAT_A2R10G10B10_SSCALED_PACK32,
1946     eA2R10G10B10UintPack32                   = VK_FORMAT_A2R10G10B10_UINT_PACK32,
1947     eA2R10G10B10SintPack32                   = VK_FORMAT_A2R10G10B10_SINT_PACK32,
1948     eA2B10G10R10UnormPack32                  = VK_FORMAT_A2B10G10R10_UNORM_PACK32,
1949     eA2B10G10R10SnormPack32                  = VK_FORMAT_A2B10G10R10_SNORM_PACK32,
1950     eA2B10G10R10UscaledPack32                = VK_FORMAT_A2B10G10R10_USCALED_PACK32,
1951     eA2B10G10R10SscaledPack32                = VK_FORMAT_A2B10G10R10_SSCALED_PACK32,
1952     eA2B10G10R10UintPack32                   = VK_FORMAT_A2B10G10R10_UINT_PACK32,
1953     eA2B10G10R10SintPack32                   = VK_FORMAT_A2B10G10R10_SINT_PACK32,
1954     eR16Unorm                                = VK_FORMAT_R16_UNORM,
1955     eR16Snorm                                = VK_FORMAT_R16_SNORM,
1956     eR16Uscaled                              = VK_FORMAT_R16_USCALED,
1957     eR16Sscaled                              = VK_FORMAT_R16_SSCALED,
1958     eR16Uint                                 = VK_FORMAT_R16_UINT,
1959     eR16Sint                                 = VK_FORMAT_R16_SINT,
1960     eR16Sfloat                               = VK_FORMAT_R16_SFLOAT,
1961     eR16G16Unorm                             = VK_FORMAT_R16G16_UNORM,
1962     eR16G16Snorm                             = VK_FORMAT_R16G16_SNORM,
1963     eR16G16Uscaled                           = VK_FORMAT_R16G16_USCALED,
1964     eR16G16Sscaled                           = VK_FORMAT_R16G16_SSCALED,
1965     eR16G16Uint                              = VK_FORMAT_R16G16_UINT,
1966     eR16G16Sint                              = VK_FORMAT_R16G16_SINT,
1967     eR16G16Sfloat                            = VK_FORMAT_R16G16_SFLOAT,
1968     eR16G16B16Unorm                          = VK_FORMAT_R16G16B16_UNORM,
1969     eR16G16B16Snorm                          = VK_FORMAT_R16G16B16_SNORM,
1970     eR16G16B16Uscaled                        = VK_FORMAT_R16G16B16_USCALED,
1971     eR16G16B16Sscaled                        = VK_FORMAT_R16G16B16_SSCALED,
1972     eR16G16B16Uint                           = VK_FORMAT_R16G16B16_UINT,
1973     eR16G16B16Sint                           = VK_FORMAT_R16G16B16_SINT,
1974     eR16G16B16Sfloat                         = VK_FORMAT_R16G16B16_SFLOAT,
1975     eR16G16B16A16Unorm                       = VK_FORMAT_R16G16B16A16_UNORM,
1976     eR16G16B16A16Snorm                       = VK_FORMAT_R16G16B16A16_SNORM,
1977     eR16G16B16A16Uscaled                     = VK_FORMAT_R16G16B16A16_USCALED,
1978     eR16G16B16A16Sscaled                     = VK_FORMAT_R16G16B16A16_SSCALED,
1979     eR16G16B16A16Uint                        = VK_FORMAT_R16G16B16A16_UINT,
1980     eR16G16B16A16Sint                        = VK_FORMAT_R16G16B16A16_SINT,
1981     eR16G16B16A16Sfloat                      = VK_FORMAT_R16G16B16A16_SFLOAT,
1982     eR32Uint                                 = VK_FORMAT_R32_UINT,
1983     eR32Sint                                 = VK_FORMAT_R32_SINT,
1984     eR32Sfloat                               = VK_FORMAT_R32_SFLOAT,
1985     eR32G32Uint                              = VK_FORMAT_R32G32_UINT,
1986     eR32G32Sint                              = VK_FORMAT_R32G32_SINT,
1987     eR32G32Sfloat                            = VK_FORMAT_R32G32_SFLOAT,
1988     eR32G32B32Uint                           = VK_FORMAT_R32G32B32_UINT,
1989     eR32G32B32Sint                           = VK_FORMAT_R32G32B32_SINT,
1990     eR32G32B32Sfloat                         = VK_FORMAT_R32G32B32_SFLOAT,
1991     eR32G32B32A32Uint                        = VK_FORMAT_R32G32B32A32_UINT,
1992     eR32G32B32A32Sint                        = VK_FORMAT_R32G32B32A32_SINT,
1993     eR32G32B32A32Sfloat                      = VK_FORMAT_R32G32B32A32_SFLOAT,
1994     eR64Uint                                 = VK_FORMAT_R64_UINT,
1995     eR64Sint                                 = VK_FORMAT_R64_SINT,
1996     eR64Sfloat                               = VK_FORMAT_R64_SFLOAT,
1997     eR64G64Uint                              = VK_FORMAT_R64G64_UINT,
1998     eR64G64Sint                              = VK_FORMAT_R64G64_SINT,
1999     eR64G64Sfloat                            = VK_FORMAT_R64G64_SFLOAT,
2000     eR64G64B64Uint                           = VK_FORMAT_R64G64B64_UINT,
2001     eR64G64B64Sint                           = VK_FORMAT_R64G64B64_SINT,
2002     eR64G64B64Sfloat                         = VK_FORMAT_R64G64B64_SFLOAT,
2003     eR64G64B64A64Uint                        = VK_FORMAT_R64G64B64A64_UINT,
2004     eR64G64B64A64Sint                        = VK_FORMAT_R64G64B64A64_SINT,
2005     eR64G64B64A64Sfloat                      = VK_FORMAT_R64G64B64A64_SFLOAT,
2006     eB10G11R11UfloatPack32                   = VK_FORMAT_B10G11R11_UFLOAT_PACK32,
2007     eE5B9G9R9UfloatPack32                    = VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,
2008     eD16Unorm                                = VK_FORMAT_D16_UNORM,
2009     eX8D24UnormPack32                        = VK_FORMAT_X8_D24_UNORM_PACK32,
2010     eD32Sfloat                               = VK_FORMAT_D32_SFLOAT,
2011     eS8Uint                                  = VK_FORMAT_S8_UINT,
2012     eD16UnormS8Uint                          = VK_FORMAT_D16_UNORM_S8_UINT,
2013     eD24UnormS8Uint                          = VK_FORMAT_D24_UNORM_S8_UINT,
2014     eD32SfloatS8Uint                         = VK_FORMAT_D32_SFLOAT_S8_UINT,
2015     eBc1RgbUnormBlock                        = VK_FORMAT_BC1_RGB_UNORM_BLOCK,
2016     eBc1RgbSrgbBlock                         = VK_FORMAT_BC1_RGB_SRGB_BLOCK,
2017     eBc1RgbaUnormBlock                       = VK_FORMAT_BC1_RGBA_UNORM_BLOCK,
2018     eBc1RgbaSrgbBlock                        = VK_FORMAT_BC1_RGBA_SRGB_BLOCK,
2019     eBc2UnormBlock                           = VK_FORMAT_BC2_UNORM_BLOCK,
2020     eBc2SrgbBlock                            = VK_FORMAT_BC2_SRGB_BLOCK,
2021     eBc3UnormBlock                           = VK_FORMAT_BC3_UNORM_BLOCK,
2022     eBc3SrgbBlock                            = VK_FORMAT_BC3_SRGB_BLOCK,
2023     eBc4UnormBlock                           = VK_FORMAT_BC4_UNORM_BLOCK,
2024     eBc4SnormBlock                           = VK_FORMAT_BC4_SNORM_BLOCK,
2025     eBc5UnormBlock                           = VK_FORMAT_BC5_UNORM_BLOCK,
2026     eBc5SnormBlock                           = VK_FORMAT_BC5_SNORM_BLOCK,
2027     eBc6HUfloatBlock                         = VK_FORMAT_BC6H_UFLOAT_BLOCK,
2028     eBc6HSfloatBlock                         = VK_FORMAT_BC6H_SFLOAT_BLOCK,
2029     eBc7UnormBlock                           = VK_FORMAT_BC7_UNORM_BLOCK,
2030     eBc7SrgbBlock                            = VK_FORMAT_BC7_SRGB_BLOCK,
2031     eEtc2R8G8B8UnormBlock                    = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK,
2032     eEtc2R8G8B8SrgbBlock                     = VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK,
2033     eEtc2R8G8B8A1UnormBlock                  = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK,
2034     eEtc2R8G8B8A1SrgbBlock                   = VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK,
2035     eEtc2R8G8B8A8UnormBlock                  = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK,
2036     eEtc2R8G8B8A8SrgbBlock                   = VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK,
2037     eEacR11UnormBlock                        = VK_FORMAT_EAC_R11_UNORM_BLOCK,
2038     eEacR11SnormBlock                        = VK_FORMAT_EAC_R11_SNORM_BLOCK,
2039     eEacR11G11UnormBlock                     = VK_FORMAT_EAC_R11G11_UNORM_BLOCK,
2040     eEacR11G11SnormBlock                     = VK_FORMAT_EAC_R11G11_SNORM_BLOCK,
2041     eAstc4x4UnormBlock                       = VK_FORMAT_ASTC_4x4_UNORM_BLOCK,
2042     eAstc4x4SrgbBlock                        = VK_FORMAT_ASTC_4x4_SRGB_BLOCK,
2043     eAstc5x4UnormBlock                       = VK_FORMAT_ASTC_5x4_UNORM_BLOCK,
2044     eAstc5x4SrgbBlock                        = VK_FORMAT_ASTC_5x4_SRGB_BLOCK,
2045     eAstc5x5UnormBlock                       = VK_FORMAT_ASTC_5x5_UNORM_BLOCK,
2046     eAstc5x5SrgbBlock                        = VK_FORMAT_ASTC_5x5_SRGB_BLOCK,
2047     eAstc6x5UnormBlock                       = VK_FORMAT_ASTC_6x5_UNORM_BLOCK,
2048     eAstc6x5SrgbBlock                        = VK_FORMAT_ASTC_6x5_SRGB_BLOCK,
2049     eAstc6x6UnormBlock                       = VK_FORMAT_ASTC_6x6_UNORM_BLOCK,
2050     eAstc6x6SrgbBlock                        = VK_FORMAT_ASTC_6x6_SRGB_BLOCK,
2051     eAstc8x5UnormBlock                       = VK_FORMAT_ASTC_8x5_UNORM_BLOCK,
2052     eAstc8x5SrgbBlock                        = VK_FORMAT_ASTC_8x5_SRGB_BLOCK,
2053     eAstc8x6UnormBlock                       = VK_FORMAT_ASTC_8x6_UNORM_BLOCK,
2054     eAstc8x6SrgbBlock                        = VK_FORMAT_ASTC_8x6_SRGB_BLOCK,
2055     eAstc8x8UnormBlock                       = VK_FORMAT_ASTC_8x8_UNORM_BLOCK,
2056     eAstc8x8SrgbBlock                        = VK_FORMAT_ASTC_8x8_SRGB_BLOCK,
2057     eAstc10x5UnormBlock                      = VK_FORMAT_ASTC_10x5_UNORM_BLOCK,
2058     eAstc10x5SrgbBlock                       = VK_FORMAT_ASTC_10x5_SRGB_BLOCK,
2059     eAstc10x6UnormBlock                      = VK_FORMAT_ASTC_10x6_UNORM_BLOCK,
2060     eAstc10x6SrgbBlock                       = VK_FORMAT_ASTC_10x6_SRGB_BLOCK,
2061     eAstc10x8UnormBlock                      = VK_FORMAT_ASTC_10x8_UNORM_BLOCK,
2062     eAstc10x8SrgbBlock                       = VK_FORMAT_ASTC_10x8_SRGB_BLOCK,
2063     eAstc10x10UnormBlock                     = VK_FORMAT_ASTC_10x10_UNORM_BLOCK,
2064     eAstc10x10SrgbBlock                      = VK_FORMAT_ASTC_10x10_SRGB_BLOCK,
2065     eAstc12x10UnormBlock                     = VK_FORMAT_ASTC_12x10_UNORM_BLOCK,
2066     eAstc12x10SrgbBlock                      = VK_FORMAT_ASTC_12x10_SRGB_BLOCK,
2067     eAstc12x12UnormBlock                     = VK_FORMAT_ASTC_12x12_UNORM_BLOCK,
2068     eAstc12x12SrgbBlock                      = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
2069     eG8B8G8R8422Unorm                        = VK_FORMAT_G8B8G8R8_422_UNORM,
2070     eB8G8R8G8422Unorm                        = VK_FORMAT_B8G8R8G8_422_UNORM,
2071     eG8B8R83Plane420Unorm                    = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
2072     eG8B8R82Plane420Unorm                    = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
2073     eG8B8R83Plane422Unorm                    = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
2074     eG8B8R82Plane422Unorm                    = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
2075     eG8B8R83Plane444Unorm                    = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
2076     eR10X6UnormPack16                        = VK_FORMAT_R10X6_UNORM_PACK16,
2077     eR10X6G10X6Unorm2Pack16                  = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
2078     eR10X6G10X6B10X6A10X6Unorm4Pack16        = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
2079     eG10X6B10X6G10X6R10X6422Unorm4Pack16     = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
2080     eB10X6G10X6R10X6G10X6422Unorm4Pack16     = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
2081     eG10X6B10X6R10X63Plane420Unorm3Pack16    = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
2082     eG10X6B10X6R10X62Plane420Unorm3Pack16    = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
2083     eG10X6B10X6R10X63Plane422Unorm3Pack16    = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
2084     eG10X6B10X6R10X62Plane422Unorm3Pack16    = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
2085     eG10X6B10X6R10X63Plane444Unorm3Pack16    = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
2086     eR12X4UnormPack16                        = VK_FORMAT_R12X4_UNORM_PACK16,
2087     eR12X4G12X4Unorm2Pack16                  = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
2088     eR12X4G12X4B12X4A12X4Unorm4Pack16        = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
2089     eG12X4B12X4G12X4R12X4422Unorm4Pack16     = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
2090     eB12X4G12X4R12X4G12X4422Unorm4Pack16     = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
2091     eG12X4B12X4R12X43Plane420Unorm3Pack16    = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
2092     eG12X4B12X4R12X42Plane420Unorm3Pack16    = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
2093     eG12X4B12X4R12X43Plane422Unorm3Pack16    = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
2094     eG12X4B12X4R12X42Plane422Unorm3Pack16    = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
2095     eG12X4B12X4R12X43Plane444Unorm3Pack16    = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
2096     eG16B16G16R16422Unorm                    = VK_FORMAT_G16B16G16R16_422_UNORM,
2097     eB16G16R16G16422Unorm                    = VK_FORMAT_B16G16R16G16_422_UNORM,
2098     eG16B16R163Plane420Unorm                 = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
2099     eG16B16R162Plane420Unorm                 = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
2100     eG16B16R163Plane422Unorm                 = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
2101     eG16B16R162Plane422Unorm                 = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
2102     eG16B16R163Plane444Unorm                 = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
2103     ePvrtc12BppUnormBlockIMG                 = VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG,
2104     ePvrtc14BppUnormBlockIMG                 = VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG,
2105     ePvrtc22BppUnormBlockIMG                 = VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG,
2106     ePvrtc24BppUnormBlockIMG                 = VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG,
2107     ePvrtc12BppSrgbBlockIMG                  = VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG,
2108     ePvrtc14BppSrgbBlockIMG                  = VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG,
2109     ePvrtc22BppSrgbBlockIMG                  = VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG,
2110     ePvrtc24BppSrgbBlockIMG                  = VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG,
2111     eAstc4x4SfloatBlockEXT                   = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT,
2112     eAstc5x4SfloatBlockEXT                   = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT,
2113     eAstc5x5SfloatBlockEXT                   = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT,
2114     eAstc6x5SfloatBlockEXT                   = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT,
2115     eAstc6x6SfloatBlockEXT                   = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT,
2116     eAstc8x5SfloatBlockEXT                   = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT,
2117     eAstc8x6SfloatBlockEXT                   = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT,
2118     eAstc8x8SfloatBlockEXT                   = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT,
2119     eAstc10x5SfloatBlockEXT                  = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT,
2120     eAstc10x6SfloatBlockEXT                  = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT,
2121     eAstc10x8SfloatBlockEXT                  = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT,
2122     eAstc10x10SfloatBlockEXT                 = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT,
2123     eAstc12x10SfloatBlockEXT                 = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT,
2124     eAstc12x12SfloatBlockEXT                 = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT,
2125     eG8B8R82Plane444UnormEXT                 = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT,
2126     eG10X6B10X6R10X62Plane444Unorm3Pack16EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT,
2127     eG12X4B12X4R12X42Plane444Unorm3Pack16EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT,
2128     eG16B16R162Plane444UnormEXT              = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT,
2129     eA4R4G4B4UnormPack16EXT                  = VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT,
2130     eA4B4G4R4UnormPack16EXT                  = VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT,
2131     eB10X6G10X6R10X6G10X6422Unorm4Pack16KHR  = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR,
2132     eB12X4G12X4R12X4G12X4422Unorm4Pack16KHR  = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR,
2133     eB16G16R16G16422UnormKHR                 = VK_FORMAT_B16G16R16G16_422_UNORM_KHR,
2134     eB8G8R8G8422UnormKHR                     = VK_FORMAT_B8G8R8G8_422_UNORM_KHR,
2135     eG10X6B10X6G10X6R10X6422Unorm4Pack16KHR  = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR,
2136     eG10X6B10X6R10X62Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR,
2137     eG10X6B10X6R10X62Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR,
2138     eG10X6B10X6R10X63Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR,
2139     eG10X6B10X6R10X63Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR,
2140     eG10X6B10X6R10X63Plane444Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR,
2141     eG12X4B12X4G12X4R12X4422Unorm4Pack16KHR  = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR,
2142     eG12X4B12X4R12X42Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR,
2143     eG12X4B12X4R12X42Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR,
2144     eG12X4B12X4R12X43Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR,
2145     eG12X4B12X4R12X43Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR,
2146     eG12X4B12X4R12X43Plane444Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR,
2147     eG16B16G16R16422UnormKHR                 = VK_FORMAT_G16B16G16R16_422_UNORM_KHR,
2148     eG16B16R162Plane420UnormKHR              = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR,
2149     eG16B16R162Plane422UnormKHR              = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR,
2150     eG16B16R163Plane420UnormKHR              = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR,
2151     eG16B16R163Plane422UnormKHR              = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR,
2152     eG16B16R163Plane444UnormKHR              = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR,
2153     eG8B8G8R8422UnormKHR                     = VK_FORMAT_G8B8G8R8_422_UNORM_KHR,
2154     eG8B8R82Plane420UnormKHR                 = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR,
2155     eG8B8R82Plane422UnormKHR                 = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR,
2156     eG8B8R83Plane420UnormKHR                 = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR,
2157     eG8B8R83Plane422UnormKHR                 = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR,
2158     eG8B8R83Plane444UnormKHR                 = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR,
2159     eR10X6G10X6B10X6A10X6Unorm4Pack16KHR     = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR,
2160     eR10X6G10X6Unorm2Pack16KHR               = VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR,
2161     eR10X6UnormPack16KHR                     = VK_FORMAT_R10X6_UNORM_PACK16_KHR,
2162     eR12X4G12X4B12X4A12X4Unorm4Pack16KHR     = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR,
2163     eR12X4G12X4Unorm2Pack16KHR               = VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR,
2164     eR12X4UnormPack16KHR                     = VK_FORMAT_R12X4_UNORM_PACK16_KHR
2165   };
2166 
to_string(Format value)2167   VULKAN_HPP_INLINE std::string to_string( Format value )
2168   {
2169     switch ( value )
2170     {
2171       case Format::eUndefined: return "Undefined";
2172       case Format::eR4G4UnormPack8: return "R4G4UnormPack8";
2173       case Format::eR4G4B4A4UnormPack16: return "R4G4B4A4UnormPack16";
2174       case Format::eB4G4R4A4UnormPack16: return "B4G4R4A4UnormPack16";
2175       case Format::eR5G6B5UnormPack16: return "R5G6B5UnormPack16";
2176       case Format::eB5G6R5UnormPack16: return "B5G6R5UnormPack16";
2177       case Format::eR5G5B5A1UnormPack16: return "R5G5B5A1UnormPack16";
2178       case Format::eB5G5R5A1UnormPack16: return "B5G5R5A1UnormPack16";
2179       case Format::eA1R5G5B5UnormPack16: return "A1R5G5B5UnormPack16";
2180       case Format::eR8Unorm: return "R8Unorm";
2181       case Format::eR8Snorm: return "R8Snorm";
2182       case Format::eR8Uscaled: return "R8Uscaled";
2183       case Format::eR8Sscaled: return "R8Sscaled";
2184       case Format::eR8Uint: return "R8Uint";
2185       case Format::eR8Sint: return "R8Sint";
2186       case Format::eR8Srgb: return "R8Srgb";
2187       case Format::eR8G8Unorm: return "R8G8Unorm";
2188       case Format::eR8G8Snorm: return "R8G8Snorm";
2189       case Format::eR8G8Uscaled: return "R8G8Uscaled";
2190       case Format::eR8G8Sscaled: return "R8G8Sscaled";
2191       case Format::eR8G8Uint: return "R8G8Uint";
2192       case Format::eR8G8Sint: return "R8G8Sint";
2193       case Format::eR8G8Srgb: return "R8G8Srgb";
2194       case Format::eR8G8B8Unorm: return "R8G8B8Unorm";
2195       case Format::eR8G8B8Snorm: return "R8G8B8Snorm";
2196       case Format::eR8G8B8Uscaled: return "R8G8B8Uscaled";
2197       case Format::eR8G8B8Sscaled: return "R8G8B8Sscaled";
2198       case Format::eR8G8B8Uint: return "R8G8B8Uint";
2199       case Format::eR8G8B8Sint: return "R8G8B8Sint";
2200       case Format::eR8G8B8Srgb: return "R8G8B8Srgb";
2201       case Format::eB8G8R8Unorm: return "B8G8R8Unorm";
2202       case Format::eB8G8R8Snorm: return "B8G8R8Snorm";
2203       case Format::eB8G8R8Uscaled: return "B8G8R8Uscaled";
2204       case Format::eB8G8R8Sscaled: return "B8G8R8Sscaled";
2205       case Format::eB8G8R8Uint: return "B8G8R8Uint";
2206       case Format::eB8G8R8Sint: return "B8G8R8Sint";
2207       case Format::eB8G8R8Srgb: return "B8G8R8Srgb";
2208       case Format::eR8G8B8A8Unorm: return "R8G8B8A8Unorm";
2209       case Format::eR8G8B8A8Snorm: return "R8G8B8A8Snorm";
2210       case Format::eR8G8B8A8Uscaled: return "R8G8B8A8Uscaled";
2211       case Format::eR8G8B8A8Sscaled: return "R8G8B8A8Sscaled";
2212       case Format::eR8G8B8A8Uint: return "R8G8B8A8Uint";
2213       case Format::eR8G8B8A8Sint: return "R8G8B8A8Sint";
2214       case Format::eR8G8B8A8Srgb: return "R8G8B8A8Srgb";
2215       case Format::eB8G8R8A8Unorm: return "B8G8R8A8Unorm";
2216       case Format::eB8G8R8A8Snorm: return "B8G8R8A8Snorm";
2217       case Format::eB8G8R8A8Uscaled: return "B8G8R8A8Uscaled";
2218       case Format::eB8G8R8A8Sscaled: return "B8G8R8A8Sscaled";
2219       case Format::eB8G8R8A8Uint: return "B8G8R8A8Uint";
2220       case Format::eB8G8R8A8Sint: return "B8G8R8A8Sint";
2221       case Format::eB8G8R8A8Srgb: return "B8G8R8A8Srgb";
2222       case Format::eA8B8G8R8UnormPack32: return "A8B8G8R8UnormPack32";
2223       case Format::eA8B8G8R8SnormPack32: return "A8B8G8R8SnormPack32";
2224       case Format::eA8B8G8R8UscaledPack32: return "A8B8G8R8UscaledPack32";
2225       case Format::eA8B8G8R8SscaledPack32: return "A8B8G8R8SscaledPack32";
2226       case Format::eA8B8G8R8UintPack32: return "A8B8G8R8UintPack32";
2227       case Format::eA8B8G8R8SintPack32: return "A8B8G8R8SintPack32";
2228       case Format::eA8B8G8R8SrgbPack32: return "A8B8G8R8SrgbPack32";
2229       case Format::eA2R10G10B10UnormPack32: return "A2R10G10B10UnormPack32";
2230       case Format::eA2R10G10B10SnormPack32: return "A2R10G10B10SnormPack32";
2231       case Format::eA2R10G10B10UscaledPack32: return "A2R10G10B10UscaledPack32";
2232       case Format::eA2R10G10B10SscaledPack32: return "A2R10G10B10SscaledPack32";
2233       case Format::eA2R10G10B10UintPack32: return "A2R10G10B10UintPack32";
2234       case Format::eA2R10G10B10SintPack32: return "A2R10G10B10SintPack32";
2235       case Format::eA2B10G10R10UnormPack32: return "A2B10G10R10UnormPack32";
2236       case Format::eA2B10G10R10SnormPack32: return "A2B10G10R10SnormPack32";
2237       case Format::eA2B10G10R10UscaledPack32: return "A2B10G10R10UscaledPack32";
2238       case Format::eA2B10G10R10SscaledPack32: return "A2B10G10R10SscaledPack32";
2239       case Format::eA2B10G10R10UintPack32: return "A2B10G10R10UintPack32";
2240       case Format::eA2B10G10R10SintPack32: return "A2B10G10R10SintPack32";
2241       case Format::eR16Unorm: return "R16Unorm";
2242       case Format::eR16Snorm: return "R16Snorm";
2243       case Format::eR16Uscaled: return "R16Uscaled";
2244       case Format::eR16Sscaled: return "R16Sscaled";
2245       case Format::eR16Uint: return "R16Uint";
2246       case Format::eR16Sint: return "R16Sint";
2247       case Format::eR16Sfloat: return "R16Sfloat";
2248       case Format::eR16G16Unorm: return "R16G16Unorm";
2249       case Format::eR16G16Snorm: return "R16G16Snorm";
2250       case Format::eR16G16Uscaled: return "R16G16Uscaled";
2251       case Format::eR16G16Sscaled: return "R16G16Sscaled";
2252       case Format::eR16G16Uint: return "R16G16Uint";
2253       case Format::eR16G16Sint: return "R16G16Sint";
2254       case Format::eR16G16Sfloat: return "R16G16Sfloat";
2255       case Format::eR16G16B16Unorm: return "R16G16B16Unorm";
2256       case Format::eR16G16B16Snorm: return "R16G16B16Snorm";
2257       case Format::eR16G16B16Uscaled: return "R16G16B16Uscaled";
2258       case Format::eR16G16B16Sscaled: return "R16G16B16Sscaled";
2259       case Format::eR16G16B16Uint: return "R16G16B16Uint";
2260       case Format::eR16G16B16Sint: return "R16G16B16Sint";
2261       case Format::eR16G16B16Sfloat: return "R16G16B16Sfloat";
2262       case Format::eR16G16B16A16Unorm: return "R16G16B16A16Unorm";
2263       case Format::eR16G16B16A16Snorm: return "R16G16B16A16Snorm";
2264       case Format::eR16G16B16A16Uscaled: return "R16G16B16A16Uscaled";
2265       case Format::eR16G16B16A16Sscaled: return "R16G16B16A16Sscaled";
2266       case Format::eR16G16B16A16Uint: return "R16G16B16A16Uint";
2267       case Format::eR16G16B16A16Sint: return "R16G16B16A16Sint";
2268       case Format::eR16G16B16A16Sfloat: return "R16G16B16A16Sfloat";
2269       case Format::eR32Uint: return "R32Uint";
2270       case Format::eR32Sint: return "R32Sint";
2271       case Format::eR32Sfloat: return "R32Sfloat";
2272       case Format::eR32G32Uint: return "R32G32Uint";
2273       case Format::eR32G32Sint: return "R32G32Sint";
2274       case Format::eR32G32Sfloat: return "R32G32Sfloat";
2275       case Format::eR32G32B32Uint: return "R32G32B32Uint";
2276       case Format::eR32G32B32Sint: return "R32G32B32Sint";
2277       case Format::eR32G32B32Sfloat: return "R32G32B32Sfloat";
2278       case Format::eR32G32B32A32Uint: return "R32G32B32A32Uint";
2279       case Format::eR32G32B32A32Sint: return "R32G32B32A32Sint";
2280       case Format::eR32G32B32A32Sfloat: return "R32G32B32A32Sfloat";
2281       case Format::eR64Uint: return "R64Uint";
2282       case Format::eR64Sint: return "R64Sint";
2283       case Format::eR64Sfloat: return "R64Sfloat";
2284       case Format::eR64G64Uint: return "R64G64Uint";
2285       case Format::eR64G64Sint: return "R64G64Sint";
2286       case Format::eR64G64Sfloat: return "R64G64Sfloat";
2287       case Format::eR64G64B64Uint: return "R64G64B64Uint";
2288       case Format::eR64G64B64Sint: return "R64G64B64Sint";
2289       case Format::eR64G64B64Sfloat: return "R64G64B64Sfloat";
2290       case Format::eR64G64B64A64Uint: return "R64G64B64A64Uint";
2291       case Format::eR64G64B64A64Sint: return "R64G64B64A64Sint";
2292       case Format::eR64G64B64A64Sfloat: return "R64G64B64A64Sfloat";
2293       case Format::eB10G11R11UfloatPack32: return "B10G11R11UfloatPack32";
2294       case Format::eE5B9G9R9UfloatPack32: return "E5B9G9R9UfloatPack32";
2295       case Format::eD16Unorm: return "D16Unorm";
2296       case Format::eX8D24UnormPack32: return "X8D24UnormPack32";
2297       case Format::eD32Sfloat: return "D32Sfloat";
2298       case Format::eS8Uint: return "S8Uint";
2299       case Format::eD16UnormS8Uint: return "D16UnormS8Uint";
2300       case Format::eD24UnormS8Uint: return "D24UnormS8Uint";
2301       case Format::eD32SfloatS8Uint: return "D32SfloatS8Uint";
2302       case Format::eBc1RgbUnormBlock: return "Bc1RgbUnormBlock";
2303       case Format::eBc1RgbSrgbBlock: return "Bc1RgbSrgbBlock";
2304       case Format::eBc1RgbaUnormBlock: return "Bc1RgbaUnormBlock";
2305       case Format::eBc1RgbaSrgbBlock: return "Bc1RgbaSrgbBlock";
2306       case Format::eBc2UnormBlock: return "Bc2UnormBlock";
2307       case Format::eBc2SrgbBlock: return "Bc2SrgbBlock";
2308       case Format::eBc3UnormBlock: return "Bc3UnormBlock";
2309       case Format::eBc3SrgbBlock: return "Bc3SrgbBlock";
2310       case Format::eBc4UnormBlock: return "Bc4UnormBlock";
2311       case Format::eBc4SnormBlock: return "Bc4SnormBlock";
2312       case Format::eBc5UnormBlock: return "Bc5UnormBlock";
2313       case Format::eBc5SnormBlock: return "Bc5SnormBlock";
2314       case Format::eBc6HUfloatBlock: return "Bc6HUfloatBlock";
2315       case Format::eBc6HSfloatBlock: return "Bc6HSfloatBlock";
2316       case Format::eBc7UnormBlock: return "Bc7UnormBlock";
2317       case Format::eBc7SrgbBlock: return "Bc7SrgbBlock";
2318       case Format::eEtc2R8G8B8UnormBlock: return "Etc2R8G8B8UnormBlock";
2319       case Format::eEtc2R8G8B8SrgbBlock: return "Etc2R8G8B8SrgbBlock";
2320       case Format::eEtc2R8G8B8A1UnormBlock: return "Etc2R8G8B8A1UnormBlock";
2321       case Format::eEtc2R8G8B8A1SrgbBlock: return "Etc2R8G8B8A1SrgbBlock";
2322       case Format::eEtc2R8G8B8A8UnormBlock: return "Etc2R8G8B8A8UnormBlock";
2323       case Format::eEtc2R8G8B8A8SrgbBlock: return "Etc2R8G8B8A8SrgbBlock";
2324       case Format::eEacR11UnormBlock: return "EacR11UnormBlock";
2325       case Format::eEacR11SnormBlock: return "EacR11SnormBlock";
2326       case Format::eEacR11G11UnormBlock: return "EacR11G11UnormBlock";
2327       case Format::eEacR11G11SnormBlock: return "EacR11G11SnormBlock";
2328       case Format::eAstc4x4UnormBlock: return "Astc4x4UnormBlock";
2329       case Format::eAstc4x4SrgbBlock: return "Astc4x4SrgbBlock";
2330       case Format::eAstc5x4UnormBlock: return "Astc5x4UnormBlock";
2331       case Format::eAstc5x4SrgbBlock: return "Astc5x4SrgbBlock";
2332       case Format::eAstc5x5UnormBlock: return "Astc5x5UnormBlock";
2333       case Format::eAstc5x5SrgbBlock: return "Astc5x5SrgbBlock";
2334       case Format::eAstc6x5UnormBlock: return "Astc6x5UnormBlock";
2335       case Format::eAstc6x5SrgbBlock: return "Astc6x5SrgbBlock";
2336       case Format::eAstc6x6UnormBlock: return "Astc6x6UnormBlock";
2337       case Format::eAstc6x6SrgbBlock: return "Astc6x6SrgbBlock";
2338       case Format::eAstc8x5UnormBlock: return "Astc8x5UnormBlock";
2339       case Format::eAstc8x5SrgbBlock: return "Astc8x5SrgbBlock";
2340       case Format::eAstc8x6UnormBlock: return "Astc8x6UnormBlock";
2341       case Format::eAstc8x6SrgbBlock: return "Astc8x6SrgbBlock";
2342       case Format::eAstc8x8UnormBlock: return "Astc8x8UnormBlock";
2343       case Format::eAstc8x8SrgbBlock: return "Astc8x8SrgbBlock";
2344       case Format::eAstc10x5UnormBlock: return "Astc10x5UnormBlock";
2345       case Format::eAstc10x5SrgbBlock: return "Astc10x5SrgbBlock";
2346       case Format::eAstc10x6UnormBlock: return "Astc10x6UnormBlock";
2347       case Format::eAstc10x6SrgbBlock: return "Astc10x6SrgbBlock";
2348       case Format::eAstc10x8UnormBlock: return "Astc10x8UnormBlock";
2349       case Format::eAstc10x8SrgbBlock: return "Astc10x8SrgbBlock";
2350       case Format::eAstc10x10UnormBlock: return "Astc10x10UnormBlock";
2351       case Format::eAstc10x10SrgbBlock: return "Astc10x10SrgbBlock";
2352       case Format::eAstc12x10UnormBlock: return "Astc12x10UnormBlock";
2353       case Format::eAstc12x10SrgbBlock: return "Astc12x10SrgbBlock";
2354       case Format::eAstc12x12UnormBlock: return "Astc12x12UnormBlock";
2355       case Format::eAstc12x12SrgbBlock: return "Astc12x12SrgbBlock";
2356       case Format::eG8B8G8R8422Unorm: return "G8B8G8R8422Unorm";
2357       case Format::eB8G8R8G8422Unorm: return "B8G8R8G8422Unorm";
2358       case Format::eG8B8R83Plane420Unorm: return "G8B8R83Plane420Unorm";
2359       case Format::eG8B8R82Plane420Unorm: return "G8B8R82Plane420Unorm";
2360       case Format::eG8B8R83Plane422Unorm: return "G8B8R83Plane422Unorm";
2361       case Format::eG8B8R82Plane422Unorm: return "G8B8R82Plane422Unorm";
2362       case Format::eG8B8R83Plane444Unorm: return "G8B8R83Plane444Unorm";
2363       case Format::eR10X6UnormPack16: return "R10X6UnormPack16";
2364       case Format::eR10X6G10X6Unorm2Pack16: return "R10X6G10X6Unorm2Pack16";
2365       case Format::eR10X6G10X6B10X6A10X6Unorm4Pack16: return "R10X6G10X6B10X6A10X6Unorm4Pack16";
2366       case Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16: return "G10X6B10X6G10X6R10X6422Unorm4Pack16";
2367       case Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16: return "B10X6G10X6R10X6G10X6422Unorm4Pack16";
2368       case Format::eG10X6B10X6R10X63Plane420Unorm3Pack16: return "G10X6B10X6R10X63Plane420Unorm3Pack16";
2369       case Format::eG10X6B10X6R10X62Plane420Unorm3Pack16: return "G10X6B10X6R10X62Plane420Unorm3Pack16";
2370       case Format::eG10X6B10X6R10X63Plane422Unorm3Pack16: return "G10X6B10X6R10X63Plane422Unorm3Pack16";
2371       case Format::eG10X6B10X6R10X62Plane422Unorm3Pack16: return "G10X6B10X6R10X62Plane422Unorm3Pack16";
2372       case Format::eG10X6B10X6R10X63Plane444Unorm3Pack16: return "G10X6B10X6R10X63Plane444Unorm3Pack16";
2373       case Format::eR12X4UnormPack16: return "R12X4UnormPack16";
2374       case Format::eR12X4G12X4Unorm2Pack16: return "R12X4G12X4Unorm2Pack16";
2375       case Format::eR12X4G12X4B12X4A12X4Unorm4Pack16: return "R12X4G12X4B12X4A12X4Unorm4Pack16";
2376       case Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16: return "G12X4B12X4G12X4R12X4422Unorm4Pack16";
2377       case Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16: return "B12X4G12X4R12X4G12X4422Unorm4Pack16";
2378       case Format::eG12X4B12X4R12X43Plane420Unorm3Pack16: return "G12X4B12X4R12X43Plane420Unorm3Pack16";
2379       case Format::eG12X4B12X4R12X42Plane420Unorm3Pack16: return "G12X4B12X4R12X42Plane420Unorm3Pack16";
2380       case Format::eG12X4B12X4R12X43Plane422Unorm3Pack16: return "G12X4B12X4R12X43Plane422Unorm3Pack16";
2381       case Format::eG12X4B12X4R12X42Plane422Unorm3Pack16: return "G12X4B12X4R12X42Plane422Unorm3Pack16";
2382       case Format::eG12X4B12X4R12X43Plane444Unorm3Pack16: return "G12X4B12X4R12X43Plane444Unorm3Pack16";
2383       case Format::eG16B16G16R16422Unorm: return "G16B16G16R16422Unorm";
2384       case Format::eB16G16R16G16422Unorm: return "B16G16R16G16422Unorm";
2385       case Format::eG16B16R163Plane420Unorm: return "G16B16R163Plane420Unorm";
2386       case Format::eG16B16R162Plane420Unorm: return "G16B16R162Plane420Unorm";
2387       case Format::eG16B16R163Plane422Unorm: return "G16B16R163Plane422Unorm";
2388       case Format::eG16B16R162Plane422Unorm: return "G16B16R162Plane422Unorm";
2389       case Format::eG16B16R163Plane444Unorm: return "G16B16R163Plane444Unorm";
2390       case Format::ePvrtc12BppUnormBlockIMG: return "Pvrtc12BppUnormBlockIMG";
2391       case Format::ePvrtc14BppUnormBlockIMG: return "Pvrtc14BppUnormBlockIMG";
2392       case Format::ePvrtc22BppUnormBlockIMG: return "Pvrtc22BppUnormBlockIMG";
2393       case Format::ePvrtc24BppUnormBlockIMG: return "Pvrtc24BppUnormBlockIMG";
2394       case Format::ePvrtc12BppSrgbBlockIMG: return "Pvrtc12BppSrgbBlockIMG";
2395       case Format::ePvrtc14BppSrgbBlockIMG: return "Pvrtc14BppSrgbBlockIMG";
2396       case Format::ePvrtc22BppSrgbBlockIMG: return "Pvrtc22BppSrgbBlockIMG";
2397       case Format::ePvrtc24BppSrgbBlockIMG: return "Pvrtc24BppSrgbBlockIMG";
2398       case Format::eAstc4x4SfloatBlockEXT: return "Astc4x4SfloatBlockEXT";
2399       case Format::eAstc5x4SfloatBlockEXT: return "Astc5x4SfloatBlockEXT";
2400       case Format::eAstc5x5SfloatBlockEXT: return "Astc5x5SfloatBlockEXT";
2401       case Format::eAstc6x5SfloatBlockEXT: return "Astc6x5SfloatBlockEXT";
2402       case Format::eAstc6x6SfloatBlockEXT: return "Astc6x6SfloatBlockEXT";
2403       case Format::eAstc8x5SfloatBlockEXT: return "Astc8x5SfloatBlockEXT";
2404       case Format::eAstc8x6SfloatBlockEXT: return "Astc8x6SfloatBlockEXT";
2405       case Format::eAstc8x8SfloatBlockEXT: return "Astc8x8SfloatBlockEXT";
2406       case Format::eAstc10x5SfloatBlockEXT: return "Astc10x5SfloatBlockEXT";
2407       case Format::eAstc10x6SfloatBlockEXT: return "Astc10x6SfloatBlockEXT";
2408       case Format::eAstc10x8SfloatBlockEXT: return "Astc10x8SfloatBlockEXT";
2409       case Format::eAstc10x10SfloatBlockEXT: return "Astc10x10SfloatBlockEXT";
2410       case Format::eAstc12x10SfloatBlockEXT: return "Astc12x10SfloatBlockEXT";
2411       case Format::eAstc12x12SfloatBlockEXT: return "Astc12x12SfloatBlockEXT";
2412       case Format::eG8B8R82Plane444UnormEXT: return "G8B8R82Plane444UnormEXT";
2413       case Format::eG10X6B10X6R10X62Plane444Unorm3Pack16EXT: return "G10X6B10X6R10X62Plane444Unorm3Pack16EXT";
2414       case Format::eG12X4B12X4R12X42Plane444Unorm3Pack16EXT: return "G12X4B12X4R12X42Plane444Unorm3Pack16EXT";
2415       case Format::eG16B16R162Plane444UnormEXT: return "G16B16R162Plane444UnormEXT";
2416       case Format::eA4R4G4B4UnormPack16EXT: return "A4R4G4B4UnormPack16EXT";
2417       case Format::eA4B4G4R4UnormPack16EXT: return "A4B4G4R4UnormPack16EXT";
2418       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2419     }
2420   }
2421 
2422   enum class FormatFeatureFlagBits : VkFormatFeatureFlags
2423   {
2424     eSampledImage                            = VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
2425     eStorageImage                            = VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,
2426     eStorageImageAtomic                      = VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,
2427     eUniformTexelBuffer                      = VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,
2428     eStorageTexelBuffer                      = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,
2429     eStorageTexelBufferAtomic                = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,
2430     eVertexBuffer                            = VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,
2431     eColorAttachment                         = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,
2432     eColorAttachmentBlend                    = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,
2433     eDepthStencilAttachment                  = VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,
2434     eBlitSrc                                 = VK_FORMAT_FEATURE_BLIT_SRC_BIT,
2435     eBlitDst                                 = VK_FORMAT_FEATURE_BLIT_DST_BIT,
2436     eSampledImageFilterLinear                = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT,
2437     eTransferSrc                             = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
2438     eTransferDst                             = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
2439     eMidpointChromaSamples                   = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
2440     eSampledImageYcbcrConversionLinearFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
2441     eSampledImageYcbcrConversionSeparateReconstructionFilter =
2442       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
2443     eSampledImageYcbcrConversionChromaReconstructionExplicit =
2444       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
2445     eSampledImageYcbcrConversionChromaReconstructionExplicitForceable =
2446       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
2447     eDisjoint                   = VK_FORMAT_FEATURE_DISJOINT_BIT,
2448     eCositedChromaSamples       = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
2449     eSampledImageFilterMinmax   = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
2450     eSampledImageFilterCubicIMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,
2451 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2452     eVideoDecodeOutputKHR = VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR,
2453     eVideoDecodeDpbKHR    = VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR,
2454 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2455     eAccelerationStructureVertexBufferKHR = VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,
2456     eFragmentDensityMapEXT                = VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,
2457     eFragmentShadingRateAttachmentKHR     = VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2458 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2459     eVideoEncodeInputKHR = VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR,
2460     eVideoEncodeDpbKHR   = VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR,
2461 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2462     eCositedChromaSamplesKHR     = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR,
2463     eDisjointKHR                 = VK_FORMAT_FEATURE_DISJOINT_BIT_KHR,
2464     eMidpointChromaSamplesKHR    = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR,
2465     eSampledImageFilterCubicEXT  = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
2466     eSampledImageFilterMinmaxEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT,
2467     eSampledImageYcbcrConversionChromaReconstructionExplicitKHR =
2468       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR,
2469     eSampledImageYcbcrConversionChromaReconstructionExplicitForceableKHR =
2470       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR,
2471     eSampledImageYcbcrConversionLinearFilterKHR =
2472       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR,
2473     eSampledImageYcbcrConversionSeparateReconstructionFilterKHR =
2474       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR,
2475     eTransferDstKHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR,
2476     eTransferSrcKHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
2477   };
2478 
to_string(FormatFeatureFlagBits value)2479   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlagBits value )
2480   {
2481     switch ( value )
2482     {
2483       case FormatFeatureFlagBits::eSampledImage: return "SampledImage";
2484       case FormatFeatureFlagBits::eStorageImage: return "StorageImage";
2485       case FormatFeatureFlagBits::eStorageImageAtomic: return "StorageImageAtomic";
2486       case FormatFeatureFlagBits::eUniformTexelBuffer: return "UniformTexelBuffer";
2487       case FormatFeatureFlagBits::eStorageTexelBuffer: return "StorageTexelBuffer";
2488       case FormatFeatureFlagBits::eStorageTexelBufferAtomic: return "StorageTexelBufferAtomic";
2489       case FormatFeatureFlagBits::eVertexBuffer: return "VertexBuffer";
2490       case FormatFeatureFlagBits::eColorAttachment: return "ColorAttachment";
2491       case FormatFeatureFlagBits::eColorAttachmentBlend: return "ColorAttachmentBlend";
2492       case FormatFeatureFlagBits::eDepthStencilAttachment: return "DepthStencilAttachment";
2493       case FormatFeatureFlagBits::eBlitSrc: return "BlitSrc";
2494       case FormatFeatureFlagBits::eBlitDst: return "BlitDst";
2495       case FormatFeatureFlagBits::eSampledImageFilterLinear: return "SampledImageFilterLinear";
2496       case FormatFeatureFlagBits::eTransferSrc: return "TransferSrc";
2497       case FormatFeatureFlagBits::eTransferDst: return "TransferDst";
2498       case FormatFeatureFlagBits::eMidpointChromaSamples: return "MidpointChromaSamples";
2499       case FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter:
2500         return "SampledImageYcbcrConversionLinearFilter";
2501       case FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter:
2502         return "SampledImageYcbcrConversionSeparateReconstructionFilter";
2503       case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit:
2504         return "SampledImageYcbcrConversionChromaReconstructionExplicit";
2505       case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable:
2506         return "SampledImageYcbcrConversionChromaReconstructionExplicitForceable";
2507       case FormatFeatureFlagBits::eDisjoint: return "Disjoint";
2508       case FormatFeatureFlagBits::eCositedChromaSamples: return "CositedChromaSamples";
2509       case FormatFeatureFlagBits::eSampledImageFilterMinmax: return "SampledImageFilterMinmax";
2510       case FormatFeatureFlagBits::eSampledImageFilterCubicIMG: return "SampledImageFilterCubicIMG";
2511 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2512       case FormatFeatureFlagBits::eVideoDecodeOutputKHR: return "VideoDecodeOutputKHR";
2513       case FormatFeatureFlagBits::eVideoDecodeDpbKHR: return "VideoDecodeDpbKHR";
2514 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2515       case FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR: return "AccelerationStructureVertexBufferKHR";
2516       case FormatFeatureFlagBits::eFragmentDensityMapEXT: return "FragmentDensityMapEXT";
2517       case FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR: return "FragmentShadingRateAttachmentKHR";
2518 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2519       case FormatFeatureFlagBits::eVideoEncodeInputKHR: return "VideoEncodeInputKHR";
2520       case FormatFeatureFlagBits::eVideoEncodeDpbKHR: return "VideoEncodeDpbKHR";
2521 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2522       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2523     }
2524   }
2525 
2526   enum class ImageCreateFlagBits : VkImageCreateFlags
2527   {
2528     eSparseBinding                     = VK_IMAGE_CREATE_SPARSE_BINDING_BIT,
2529     eSparseResidency                   = VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,
2530     eSparseAliased                     = VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,
2531     eMutableFormat                     = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,
2532     eCubeCompatible                    = VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,
2533     eAlias                             = VK_IMAGE_CREATE_ALIAS_BIT,
2534     eSplitInstanceBindRegions          = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
2535     e2DArrayCompatible                 = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
2536     eBlockTexelViewCompatible          = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
2537     eExtendedUsage                     = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
2538     eProtected                         = VK_IMAGE_CREATE_PROTECTED_BIT,
2539     eDisjoint                          = VK_IMAGE_CREATE_DISJOINT_BIT,
2540     eCornerSampledNV                   = VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,
2541     eSampleLocationsCompatibleDepthEXT = VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT,
2542     eSubsampledEXT                     = VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,
2543     e2DArrayCompatibleKHR              = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR,
2544     eAliasKHR                          = VK_IMAGE_CREATE_ALIAS_BIT_KHR,
2545     eBlockTexelViewCompatibleKHR       = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR,
2546     eDisjointKHR                       = VK_IMAGE_CREATE_DISJOINT_BIT_KHR,
2547     eExtendedUsageKHR                  = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR,
2548     eSplitInstanceBindRegionsKHR       = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
2549   };
2550 
to_string(ImageCreateFlagBits value)2551   VULKAN_HPP_INLINE std::string to_string( ImageCreateFlagBits value )
2552   {
2553     switch ( value )
2554     {
2555       case ImageCreateFlagBits::eSparseBinding: return "SparseBinding";
2556       case ImageCreateFlagBits::eSparseResidency: return "SparseResidency";
2557       case ImageCreateFlagBits::eSparseAliased: return "SparseAliased";
2558       case ImageCreateFlagBits::eMutableFormat: return "MutableFormat";
2559       case ImageCreateFlagBits::eCubeCompatible: return "CubeCompatible";
2560       case ImageCreateFlagBits::eAlias: return "Alias";
2561       case ImageCreateFlagBits::eSplitInstanceBindRegions: return "SplitInstanceBindRegions";
2562       case ImageCreateFlagBits::e2DArrayCompatible: return "2DArrayCompatible";
2563       case ImageCreateFlagBits::eBlockTexelViewCompatible: return "BlockTexelViewCompatible";
2564       case ImageCreateFlagBits::eExtendedUsage: return "ExtendedUsage";
2565       case ImageCreateFlagBits::eProtected: return "Protected";
2566       case ImageCreateFlagBits::eDisjoint: return "Disjoint";
2567       case ImageCreateFlagBits::eCornerSampledNV: return "CornerSampledNV";
2568       case ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT: return "SampleLocationsCompatibleDepthEXT";
2569       case ImageCreateFlagBits::eSubsampledEXT: return "SubsampledEXT";
2570       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2571     }
2572   }
2573 
2574   enum class ImageTiling
2575   {
2576     eOptimal              = VK_IMAGE_TILING_OPTIMAL,
2577     eLinear               = VK_IMAGE_TILING_LINEAR,
2578     eDrmFormatModifierEXT = VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
2579   };
2580 
to_string(ImageTiling value)2581   VULKAN_HPP_INLINE std::string to_string( ImageTiling value )
2582   {
2583     switch ( value )
2584     {
2585       case ImageTiling::eOptimal: return "Optimal";
2586       case ImageTiling::eLinear: return "Linear";
2587       case ImageTiling::eDrmFormatModifierEXT: return "DrmFormatModifierEXT";
2588       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2589     }
2590   }
2591 
2592   enum class ImageType
2593   {
2594     e1D = VK_IMAGE_TYPE_1D,
2595     e2D = VK_IMAGE_TYPE_2D,
2596     e3D = VK_IMAGE_TYPE_3D
2597   };
2598 
to_string(ImageType value)2599   VULKAN_HPP_INLINE std::string to_string( ImageType value )
2600   {
2601     switch ( value )
2602     {
2603       case ImageType::e1D: return "1D";
2604       case ImageType::e2D: return "2D";
2605       case ImageType::e3D: return "3D";
2606       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2607     }
2608   }
2609 
2610   enum class ImageUsageFlagBits : VkImageUsageFlags
2611   {
2612     eTransferSrc            = VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
2613     eTransferDst            = VK_IMAGE_USAGE_TRANSFER_DST_BIT,
2614     eSampled                = VK_IMAGE_USAGE_SAMPLED_BIT,
2615     eStorage                = VK_IMAGE_USAGE_STORAGE_BIT,
2616     eColorAttachment        = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,
2617     eDepthStencilAttachment = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
2618     eTransientAttachment    = VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,
2619     eInputAttachment        = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,
2620 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2621     eVideoDecodeDstKHR = VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR,
2622     eVideoDecodeSrcKHR = VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR,
2623     eVideoDecodeDpbKHR = VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR,
2624 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2625     eFragmentDensityMapEXT            = VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,
2626     eFragmentShadingRateAttachmentKHR = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2627 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2628     eVideoEncodeDstKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR,
2629     eVideoEncodeSrcKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,
2630     eVideoEncodeDpbKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR,
2631 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2632     eShadingRateImageNV = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV
2633   };
2634 
to_string(ImageUsageFlagBits value)2635   VULKAN_HPP_INLINE std::string to_string( ImageUsageFlagBits value )
2636   {
2637     switch ( value )
2638     {
2639       case ImageUsageFlagBits::eTransferSrc: return "TransferSrc";
2640       case ImageUsageFlagBits::eTransferDst: return "TransferDst";
2641       case ImageUsageFlagBits::eSampled: return "Sampled";
2642       case ImageUsageFlagBits::eStorage: return "Storage";
2643       case ImageUsageFlagBits::eColorAttachment: return "ColorAttachment";
2644       case ImageUsageFlagBits::eDepthStencilAttachment: return "DepthStencilAttachment";
2645       case ImageUsageFlagBits::eTransientAttachment: return "TransientAttachment";
2646       case ImageUsageFlagBits::eInputAttachment: return "InputAttachment";
2647 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2648       case ImageUsageFlagBits::eVideoDecodeDstKHR: return "VideoDecodeDstKHR";
2649       case ImageUsageFlagBits::eVideoDecodeSrcKHR: return "VideoDecodeSrcKHR";
2650       case ImageUsageFlagBits::eVideoDecodeDpbKHR: return "VideoDecodeDpbKHR";
2651 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2652       case ImageUsageFlagBits::eFragmentDensityMapEXT: return "FragmentDensityMapEXT";
2653       case ImageUsageFlagBits::eFragmentShadingRateAttachmentKHR: return "FragmentShadingRateAttachmentKHR";
2654 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2655       case ImageUsageFlagBits::eVideoEncodeDstKHR: return "VideoEncodeDstKHR";
2656       case ImageUsageFlagBits::eVideoEncodeSrcKHR: return "VideoEncodeSrcKHR";
2657       case ImageUsageFlagBits::eVideoEncodeDpbKHR: return "VideoEncodeDpbKHR";
2658 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2659       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2660     }
2661   }
2662 
2663   enum class InternalAllocationType
2664   {
2665     eExecutable = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE
2666   };
2667 
to_string(InternalAllocationType value)2668   VULKAN_HPP_INLINE std::string to_string( InternalAllocationType value )
2669   {
2670     switch ( value )
2671     {
2672       case InternalAllocationType::eExecutable: return "Executable";
2673       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2674     }
2675   }
2676 
2677   enum class MemoryHeapFlagBits : VkMemoryHeapFlags
2678   {
2679     eDeviceLocal      = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,
2680     eMultiInstance    = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
2681     eMultiInstanceKHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR
2682   };
2683 
to_string(MemoryHeapFlagBits value)2684   VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlagBits value )
2685   {
2686     switch ( value )
2687     {
2688       case MemoryHeapFlagBits::eDeviceLocal: return "DeviceLocal";
2689       case MemoryHeapFlagBits::eMultiInstance: return "MultiInstance";
2690       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2691     }
2692   }
2693 
2694   enum class MemoryPropertyFlagBits : VkMemoryPropertyFlags
2695   {
2696     eDeviceLocal       = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
2697     eHostVisible       = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
2698     eHostCoherent      = VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
2699     eHostCached        = VK_MEMORY_PROPERTY_HOST_CACHED_BIT,
2700     eLazilyAllocated   = VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,
2701     eProtected         = VK_MEMORY_PROPERTY_PROTECTED_BIT,
2702     eDeviceCoherentAMD = VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,
2703     eDeviceUncachedAMD = VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD,
2704     eRdmaCapableNV     = VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV
2705   };
2706 
to_string(MemoryPropertyFlagBits value)2707   VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlagBits value )
2708   {
2709     switch ( value )
2710     {
2711       case MemoryPropertyFlagBits::eDeviceLocal: return "DeviceLocal";
2712       case MemoryPropertyFlagBits::eHostVisible: return "HostVisible";
2713       case MemoryPropertyFlagBits::eHostCoherent: return "HostCoherent";
2714       case MemoryPropertyFlagBits::eHostCached: return "HostCached";
2715       case MemoryPropertyFlagBits::eLazilyAllocated: return "LazilyAllocated";
2716       case MemoryPropertyFlagBits::eProtected: return "Protected";
2717       case MemoryPropertyFlagBits::eDeviceCoherentAMD: return "DeviceCoherentAMD";
2718       case MemoryPropertyFlagBits::eDeviceUncachedAMD: return "DeviceUncachedAMD";
2719       case MemoryPropertyFlagBits::eRdmaCapableNV: return "RdmaCapableNV";
2720       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2721     }
2722   }
2723 
2724   enum class PhysicalDeviceType
2725   {
2726     eOther         = VK_PHYSICAL_DEVICE_TYPE_OTHER,
2727     eIntegratedGpu = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU,
2728     eDiscreteGpu   = VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
2729     eVirtualGpu    = VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU,
2730     eCpu           = VK_PHYSICAL_DEVICE_TYPE_CPU
2731   };
2732 
to_string(PhysicalDeviceType value)2733   VULKAN_HPP_INLINE std::string to_string( PhysicalDeviceType value )
2734   {
2735     switch ( value )
2736     {
2737       case PhysicalDeviceType::eOther: return "Other";
2738       case PhysicalDeviceType::eIntegratedGpu: return "IntegratedGpu";
2739       case PhysicalDeviceType::eDiscreteGpu: return "DiscreteGpu";
2740       case PhysicalDeviceType::eVirtualGpu: return "VirtualGpu";
2741       case PhysicalDeviceType::eCpu: return "Cpu";
2742       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2743     }
2744   }
2745 
2746   enum class QueueFlagBits : VkQueueFlags
2747   {
2748     eGraphics      = VK_QUEUE_GRAPHICS_BIT,
2749     eCompute       = VK_QUEUE_COMPUTE_BIT,
2750     eTransfer      = VK_QUEUE_TRANSFER_BIT,
2751     eSparseBinding = VK_QUEUE_SPARSE_BINDING_BIT,
2752     eProtected     = VK_QUEUE_PROTECTED_BIT,
2753 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2754     eVideoDecodeKHR = VK_QUEUE_VIDEO_DECODE_BIT_KHR,
2755     eVideoEncodeKHR = VK_QUEUE_VIDEO_ENCODE_BIT_KHR
2756 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2757   };
2758 
to_string(QueueFlagBits value)2759   VULKAN_HPP_INLINE std::string to_string( QueueFlagBits value )
2760   {
2761     switch ( value )
2762     {
2763       case QueueFlagBits::eGraphics: return "Graphics";
2764       case QueueFlagBits::eCompute: return "Compute";
2765       case QueueFlagBits::eTransfer: return "Transfer";
2766       case QueueFlagBits::eSparseBinding: return "SparseBinding";
2767       case QueueFlagBits::eProtected: return "Protected";
2768 #if defined( VK_ENABLE_BETA_EXTENSIONS )
2769       case QueueFlagBits::eVideoDecodeKHR: return "VideoDecodeKHR";
2770       case QueueFlagBits::eVideoEncodeKHR: return "VideoEncodeKHR";
2771 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
2772       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2773     }
2774   }
2775 
2776   enum class SampleCountFlagBits : VkSampleCountFlags
2777   {
2778     e1  = VK_SAMPLE_COUNT_1_BIT,
2779     e2  = VK_SAMPLE_COUNT_2_BIT,
2780     e4  = VK_SAMPLE_COUNT_4_BIT,
2781     e8  = VK_SAMPLE_COUNT_8_BIT,
2782     e16 = VK_SAMPLE_COUNT_16_BIT,
2783     e32 = VK_SAMPLE_COUNT_32_BIT,
2784     e64 = VK_SAMPLE_COUNT_64_BIT
2785   };
2786 
to_string(SampleCountFlagBits value)2787   VULKAN_HPP_INLINE std::string to_string( SampleCountFlagBits value )
2788   {
2789     switch ( value )
2790     {
2791       case SampleCountFlagBits::e1: return "1";
2792       case SampleCountFlagBits::e2: return "2";
2793       case SampleCountFlagBits::e4: return "4";
2794       case SampleCountFlagBits::e8: return "8";
2795       case SampleCountFlagBits::e16: return "16";
2796       case SampleCountFlagBits::e32: return "32";
2797       case SampleCountFlagBits::e64: return "64";
2798       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2799     }
2800   }
2801 
2802   enum class SystemAllocationScope
2803   {
2804     eCommand  = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
2805     eObject   = VK_SYSTEM_ALLOCATION_SCOPE_OBJECT,
2806     eCache    = VK_SYSTEM_ALLOCATION_SCOPE_CACHE,
2807     eDevice   = VK_SYSTEM_ALLOCATION_SCOPE_DEVICE,
2808     eInstance = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE
2809   };
2810 
to_string(SystemAllocationScope value)2811   VULKAN_HPP_INLINE std::string to_string( SystemAllocationScope value )
2812   {
2813     switch ( value )
2814     {
2815       case SystemAllocationScope::eCommand: return "Command";
2816       case SystemAllocationScope::eObject: return "Object";
2817       case SystemAllocationScope::eCache: return "Cache";
2818       case SystemAllocationScope::eDevice: return "Device";
2819       case SystemAllocationScope::eInstance: return "Instance";
2820       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2821     }
2822   }
2823 
2824   enum class DeviceQueueCreateFlagBits : VkDeviceQueueCreateFlags
2825   {
2826     eProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT
2827   };
2828 
to_string(DeviceQueueCreateFlagBits value)2829   VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlagBits value )
2830   {
2831     switch ( value )
2832     {
2833       case DeviceQueueCreateFlagBits::eProtected: return "Protected";
2834       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2835     }
2836   }
2837 
2838   enum class PipelineStageFlagBits : VkPipelineStageFlags
2839   {
2840     eTopOfPipe                        = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
2841     eDrawIndirect                     = VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,
2842     eVertexInput                      = VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,
2843     eVertexShader                     = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,
2844     eTessellationControlShader        = VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,
2845     eTessellationEvaluationShader     = VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,
2846     eGeometryShader                   = VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,
2847     eFragmentShader                   = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
2848     eEarlyFragmentTests               = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,
2849     eLateFragmentTests                = VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
2850     eColorAttachmentOutput            = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
2851     eComputeShader                    = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
2852     eTransfer                         = VK_PIPELINE_STAGE_TRANSFER_BIT,
2853     eBottomOfPipe                     = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
2854     eHost                             = VK_PIPELINE_STAGE_HOST_BIT,
2855     eAllGraphics                      = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,
2856     eAllCommands                      = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,
2857     eTransformFeedbackEXT             = VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,
2858     eConditionalRenderingEXT          = VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,
2859     eAccelerationStructureBuildKHR    = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
2860     eRayTracingShaderKHR              = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
2861     eTaskShaderNV                     = VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV,
2862     eMeshShaderNV                     = VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV,
2863     eFragmentDensityProcessEXT        = VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,
2864     eFragmentShadingRateAttachmentKHR = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2865     eCommandPreprocessNV              = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,
2866     eNoneKHR                          = VK_PIPELINE_STAGE_NONE_KHR,
2867     eAccelerationStructureBuildNV     = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
2868     eRayTracingShaderNV               = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV,
2869     eShadingRateImageNV               = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV
2870   };
2871 
to_string(PipelineStageFlagBits value)2872   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlagBits value )
2873   {
2874     switch ( value )
2875     {
2876       case PipelineStageFlagBits::eTopOfPipe: return "TopOfPipe";
2877       case PipelineStageFlagBits::eDrawIndirect: return "DrawIndirect";
2878       case PipelineStageFlagBits::eVertexInput: return "VertexInput";
2879       case PipelineStageFlagBits::eVertexShader: return "VertexShader";
2880       case PipelineStageFlagBits::eTessellationControlShader: return "TessellationControlShader";
2881       case PipelineStageFlagBits::eTessellationEvaluationShader: return "TessellationEvaluationShader";
2882       case PipelineStageFlagBits::eGeometryShader: return "GeometryShader";
2883       case PipelineStageFlagBits::eFragmentShader: return "FragmentShader";
2884       case PipelineStageFlagBits::eEarlyFragmentTests: return "EarlyFragmentTests";
2885       case PipelineStageFlagBits::eLateFragmentTests: return "LateFragmentTests";
2886       case PipelineStageFlagBits::eColorAttachmentOutput: return "ColorAttachmentOutput";
2887       case PipelineStageFlagBits::eComputeShader: return "ComputeShader";
2888       case PipelineStageFlagBits::eTransfer: return "Transfer";
2889       case PipelineStageFlagBits::eBottomOfPipe: return "BottomOfPipe";
2890       case PipelineStageFlagBits::eHost: return "Host";
2891       case PipelineStageFlagBits::eAllGraphics: return "AllGraphics";
2892       case PipelineStageFlagBits::eAllCommands: return "AllCommands";
2893       case PipelineStageFlagBits::eTransformFeedbackEXT: return "TransformFeedbackEXT";
2894       case PipelineStageFlagBits::eConditionalRenderingEXT: return "ConditionalRenderingEXT";
2895       case PipelineStageFlagBits::eAccelerationStructureBuildKHR: return "AccelerationStructureBuildKHR";
2896       case PipelineStageFlagBits::eRayTracingShaderKHR: return "RayTracingShaderKHR";
2897       case PipelineStageFlagBits::eTaskShaderNV: return "TaskShaderNV";
2898       case PipelineStageFlagBits::eMeshShaderNV: return "MeshShaderNV";
2899       case PipelineStageFlagBits::eFragmentDensityProcessEXT: return "FragmentDensityProcessEXT";
2900       case PipelineStageFlagBits::eFragmentShadingRateAttachmentKHR: return "FragmentShadingRateAttachmentKHR";
2901       case PipelineStageFlagBits::eCommandPreprocessNV: return "CommandPreprocessNV";
2902       case PipelineStageFlagBits::eNoneKHR: return "NoneKHR";
2903       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2904     }
2905   }
2906 
2907   enum class ImageAspectFlagBits : VkImageAspectFlags
2908   {
2909     eColor           = VK_IMAGE_ASPECT_COLOR_BIT,
2910     eDepth           = VK_IMAGE_ASPECT_DEPTH_BIT,
2911     eStencil         = VK_IMAGE_ASPECT_STENCIL_BIT,
2912     eMetadata        = VK_IMAGE_ASPECT_METADATA_BIT,
2913     ePlane0          = VK_IMAGE_ASPECT_PLANE_0_BIT,
2914     ePlane1          = VK_IMAGE_ASPECT_PLANE_1_BIT,
2915     ePlane2          = VK_IMAGE_ASPECT_PLANE_2_BIT,
2916     eMemoryPlane0EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,
2917     eMemoryPlane1EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,
2918     eMemoryPlane2EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,
2919     eMemoryPlane3EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,
2920     ePlane0KHR       = VK_IMAGE_ASPECT_PLANE_0_BIT_KHR,
2921     ePlane1KHR       = VK_IMAGE_ASPECT_PLANE_1_BIT_KHR,
2922     ePlane2KHR       = VK_IMAGE_ASPECT_PLANE_2_BIT_KHR
2923   };
2924 
to_string(ImageAspectFlagBits value)2925   VULKAN_HPP_INLINE std::string to_string( ImageAspectFlagBits value )
2926   {
2927     switch ( value )
2928     {
2929       case ImageAspectFlagBits::eColor: return "Color";
2930       case ImageAspectFlagBits::eDepth: return "Depth";
2931       case ImageAspectFlagBits::eStencil: return "Stencil";
2932       case ImageAspectFlagBits::eMetadata: return "Metadata";
2933       case ImageAspectFlagBits::ePlane0: return "Plane0";
2934       case ImageAspectFlagBits::ePlane1: return "Plane1";
2935       case ImageAspectFlagBits::ePlane2: return "Plane2";
2936       case ImageAspectFlagBits::eMemoryPlane0EXT: return "MemoryPlane0EXT";
2937       case ImageAspectFlagBits::eMemoryPlane1EXT: return "MemoryPlane1EXT";
2938       case ImageAspectFlagBits::eMemoryPlane2EXT: return "MemoryPlane2EXT";
2939       case ImageAspectFlagBits::eMemoryPlane3EXT: return "MemoryPlane3EXT";
2940       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2941     }
2942   }
2943 
2944   enum class SparseImageFormatFlagBits : VkSparseImageFormatFlags
2945   {
2946     eSingleMiptail        = VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,
2947     eAlignedMipSize       = VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,
2948     eNonstandardBlockSize = VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT
2949   };
2950 
to_string(SparseImageFormatFlagBits value)2951   VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlagBits value )
2952   {
2953     switch ( value )
2954     {
2955       case SparseImageFormatFlagBits::eSingleMiptail: return "SingleMiptail";
2956       case SparseImageFormatFlagBits::eAlignedMipSize: return "AlignedMipSize";
2957       case SparseImageFormatFlagBits::eNonstandardBlockSize: return "NonstandardBlockSize";
2958       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2959     }
2960   }
2961 
2962   enum class SparseMemoryBindFlagBits : VkSparseMemoryBindFlags
2963   {
2964     eMetadata = VK_SPARSE_MEMORY_BIND_METADATA_BIT
2965   };
2966 
to_string(SparseMemoryBindFlagBits value)2967   VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlagBits value )
2968   {
2969     switch ( value )
2970     {
2971       case SparseMemoryBindFlagBits::eMetadata: return "Metadata";
2972       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2973     }
2974   }
2975 
2976   enum class FenceCreateFlagBits : VkFenceCreateFlags
2977   {
2978     eSignaled = VK_FENCE_CREATE_SIGNALED_BIT
2979   };
2980 
to_string(FenceCreateFlagBits value)2981   VULKAN_HPP_INLINE std::string to_string( FenceCreateFlagBits value )
2982   {
2983     switch ( value )
2984     {
2985       case FenceCreateFlagBits::eSignaled: return "Signaled";
2986       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
2987     }
2988   }
2989 
2990   enum class EventCreateFlagBits : VkEventCreateFlags
2991   {
2992     eDeviceOnlyKHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR
2993   };
2994 
to_string(EventCreateFlagBits value)2995   VULKAN_HPP_INLINE std::string to_string( EventCreateFlagBits value )
2996   {
2997     switch ( value )
2998     {
2999       case EventCreateFlagBits::eDeviceOnlyKHR: return "DeviceOnlyKHR";
3000       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3001     }
3002   }
3003 
3004   enum class QueryPipelineStatisticFlagBits : VkQueryPipelineStatisticFlags
3005   {
3006     eInputAssemblyVertices            = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,
3007     eInputAssemblyPrimitives          = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,
3008     eVertexShaderInvocations          = VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,
3009     eGeometryShaderInvocations        = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,
3010     eGeometryShaderPrimitives         = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,
3011     eClippingInvocations              = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,
3012     eClippingPrimitives               = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,
3013     eFragmentShaderInvocations        = VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,
3014     eTessellationControlShaderPatches = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,
3015     eTessellationEvaluationShaderInvocations =
3016       VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,
3017     eComputeShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT
3018   };
3019 
to_string(QueryPipelineStatisticFlagBits value)3020   VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlagBits value )
3021   {
3022     switch ( value )
3023     {
3024       case QueryPipelineStatisticFlagBits::eInputAssemblyVertices: return "InputAssemblyVertices";
3025       case QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives: return "InputAssemblyPrimitives";
3026       case QueryPipelineStatisticFlagBits::eVertexShaderInvocations: return "VertexShaderInvocations";
3027       case QueryPipelineStatisticFlagBits::eGeometryShaderInvocations: return "GeometryShaderInvocations";
3028       case QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives: return "GeometryShaderPrimitives";
3029       case QueryPipelineStatisticFlagBits::eClippingInvocations: return "ClippingInvocations";
3030       case QueryPipelineStatisticFlagBits::eClippingPrimitives: return "ClippingPrimitives";
3031       case QueryPipelineStatisticFlagBits::eFragmentShaderInvocations: return "FragmentShaderInvocations";
3032       case QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches: return "TessellationControlShaderPatches";
3033       case QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations:
3034         return "TessellationEvaluationShaderInvocations";
3035       case QueryPipelineStatisticFlagBits::eComputeShaderInvocations: return "ComputeShaderInvocations";
3036       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3037     }
3038   }
3039 
3040   enum class QueryResultFlagBits : VkQueryResultFlags
3041   {
3042     e64               = VK_QUERY_RESULT_64_BIT,
3043     eWait             = VK_QUERY_RESULT_WAIT_BIT,
3044     eWithAvailability = VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,
3045     ePartial          = VK_QUERY_RESULT_PARTIAL_BIT,
3046 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3047     eWithStatusKHR = VK_QUERY_RESULT_WITH_STATUS_BIT_KHR
3048 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3049   };
3050 
to_string(QueryResultFlagBits value)3051   VULKAN_HPP_INLINE std::string to_string( QueryResultFlagBits value )
3052   {
3053     switch ( value )
3054     {
3055       case QueryResultFlagBits::e64: return "64";
3056       case QueryResultFlagBits::eWait: return "Wait";
3057       case QueryResultFlagBits::eWithAvailability: return "WithAvailability";
3058       case QueryResultFlagBits::ePartial: return "Partial";
3059 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3060       case QueryResultFlagBits::eWithStatusKHR: return "WithStatusKHR";
3061 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3062       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3063     }
3064   }
3065 
3066   enum class QueryType
3067   {
3068     eOcclusion          = VK_QUERY_TYPE_OCCLUSION,
3069     ePipelineStatistics = VK_QUERY_TYPE_PIPELINE_STATISTICS,
3070     eTimestamp          = VK_QUERY_TYPE_TIMESTAMP,
3071 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3072     eResultStatusOnlyKHR = VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR,
3073 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3074     eTransformFeedbackStreamEXT                = VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT,
3075     ePerformanceQueryKHR                       = VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR,
3076     eAccelerationStructureCompactedSizeKHR     = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR,
3077     eAccelerationStructureSerializationSizeKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR,
3078     eAccelerationStructureCompactedSizeNV      = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV,
3079     ePerformanceQueryINTEL                     = VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL,
3080 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3081     eVideoEncodeBitstreamBufferRangeKHR = VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR
3082 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3083   };
3084 
to_string(QueryType value)3085   VULKAN_HPP_INLINE std::string to_string( QueryType value )
3086   {
3087     switch ( value )
3088     {
3089       case QueryType::eOcclusion: return "Occlusion";
3090       case QueryType::ePipelineStatistics: return "PipelineStatistics";
3091       case QueryType::eTimestamp: return "Timestamp";
3092 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3093       case QueryType::eResultStatusOnlyKHR: return "ResultStatusOnlyKHR";
3094 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3095       case QueryType::eTransformFeedbackStreamEXT: return "TransformFeedbackStreamEXT";
3096       case QueryType::ePerformanceQueryKHR: return "PerformanceQueryKHR";
3097       case QueryType::eAccelerationStructureCompactedSizeKHR: return "AccelerationStructureCompactedSizeKHR";
3098       case QueryType::eAccelerationStructureSerializationSizeKHR: return "AccelerationStructureSerializationSizeKHR";
3099       case QueryType::eAccelerationStructureCompactedSizeNV: return "AccelerationStructureCompactedSizeNV";
3100       case QueryType::ePerformanceQueryINTEL: return "PerformanceQueryINTEL";
3101 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3102       case QueryType::eVideoEncodeBitstreamBufferRangeKHR: return "VideoEncodeBitstreamBufferRangeKHR";
3103 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3104       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3105     }
3106   }
3107 
3108   enum class BufferCreateFlagBits : VkBufferCreateFlags
3109   {
3110     eSparseBinding                 = VK_BUFFER_CREATE_SPARSE_BINDING_BIT,
3111     eSparseResidency               = VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,
3112     eSparseAliased                 = VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,
3113     eProtected                     = VK_BUFFER_CREATE_PROTECTED_BIT,
3114     eDeviceAddressCaptureReplay    = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
3115     eDeviceAddressCaptureReplayEXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT,
3116     eDeviceAddressCaptureReplayKHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR
3117   };
3118 
to_string(BufferCreateFlagBits value)3119   VULKAN_HPP_INLINE std::string to_string( BufferCreateFlagBits value )
3120   {
3121     switch ( value )
3122     {
3123       case BufferCreateFlagBits::eSparseBinding: return "SparseBinding";
3124       case BufferCreateFlagBits::eSparseResidency: return "SparseResidency";
3125       case BufferCreateFlagBits::eSparseAliased: return "SparseAliased";
3126       case BufferCreateFlagBits::eProtected: return "Protected";
3127       case BufferCreateFlagBits::eDeviceAddressCaptureReplay: return "DeviceAddressCaptureReplay";
3128       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3129     }
3130   }
3131 
3132   enum class BufferUsageFlagBits : VkBufferUsageFlags
3133   {
3134     eTransferSrc         = VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
3135     eTransferDst         = VK_BUFFER_USAGE_TRANSFER_DST_BIT,
3136     eUniformTexelBuffer  = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,
3137     eStorageTexelBuffer  = VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,
3138     eUniformBuffer       = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
3139     eStorageBuffer       = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
3140     eIndexBuffer         = VK_BUFFER_USAGE_INDEX_BUFFER_BIT,
3141     eVertexBuffer        = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
3142     eIndirectBuffer      = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,
3143     eShaderDeviceAddress = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
3144 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3145     eVideoDecodeSrcKHR = VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR,
3146     eVideoDecodeDstKHR = VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR,
3147 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3148     eTransformFeedbackBufferEXT                 = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,
3149     eTransformFeedbackCounterBufferEXT          = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,
3150     eConditionalRenderingEXT                    = VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,
3151     eAccelerationStructureBuildInputReadOnlyKHR = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR,
3152     eAccelerationStructureStorageKHR            = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,
3153     eShaderBindingTableKHR                      = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
3154 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3155     eVideoEncodeDstKHR = VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR,
3156     eVideoEncodeSrcKHR = VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,
3157 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3158     eRayTracingNV           = VK_BUFFER_USAGE_RAY_TRACING_BIT_NV,
3159     eShaderDeviceAddressEXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT,
3160     eShaderDeviceAddressKHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR
3161   };
3162 
to_string(BufferUsageFlagBits value)3163   VULKAN_HPP_INLINE std::string to_string( BufferUsageFlagBits value )
3164   {
3165     switch ( value )
3166     {
3167       case BufferUsageFlagBits::eTransferSrc: return "TransferSrc";
3168       case BufferUsageFlagBits::eTransferDst: return "TransferDst";
3169       case BufferUsageFlagBits::eUniformTexelBuffer: return "UniformTexelBuffer";
3170       case BufferUsageFlagBits::eStorageTexelBuffer: return "StorageTexelBuffer";
3171       case BufferUsageFlagBits::eUniformBuffer: return "UniformBuffer";
3172       case BufferUsageFlagBits::eStorageBuffer: return "StorageBuffer";
3173       case BufferUsageFlagBits::eIndexBuffer: return "IndexBuffer";
3174       case BufferUsageFlagBits::eVertexBuffer: return "VertexBuffer";
3175       case BufferUsageFlagBits::eIndirectBuffer: return "IndirectBuffer";
3176       case BufferUsageFlagBits::eShaderDeviceAddress: return "ShaderDeviceAddress";
3177 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3178       case BufferUsageFlagBits::eVideoDecodeSrcKHR: return "VideoDecodeSrcKHR";
3179       case BufferUsageFlagBits::eVideoDecodeDstKHR: return "VideoDecodeDstKHR";
3180 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3181       case BufferUsageFlagBits::eTransformFeedbackBufferEXT: return "TransformFeedbackBufferEXT";
3182       case BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT: return "TransformFeedbackCounterBufferEXT";
3183       case BufferUsageFlagBits::eConditionalRenderingEXT: return "ConditionalRenderingEXT";
3184       case BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR:
3185         return "AccelerationStructureBuildInputReadOnlyKHR";
3186       case BufferUsageFlagBits::eAccelerationStructureStorageKHR: return "AccelerationStructureStorageKHR";
3187       case BufferUsageFlagBits::eShaderBindingTableKHR: return "ShaderBindingTableKHR";
3188 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3189       case BufferUsageFlagBits::eVideoEncodeDstKHR: return "VideoEncodeDstKHR";
3190       case BufferUsageFlagBits::eVideoEncodeSrcKHR: return "VideoEncodeSrcKHR";
3191 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3192       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3193     }
3194   }
3195 
3196   enum class SharingMode
3197   {
3198     eExclusive  = VK_SHARING_MODE_EXCLUSIVE,
3199     eConcurrent = VK_SHARING_MODE_CONCURRENT
3200   };
3201 
to_string(SharingMode value)3202   VULKAN_HPP_INLINE std::string to_string( SharingMode value )
3203   {
3204     switch ( value )
3205     {
3206       case SharingMode::eExclusive: return "Exclusive";
3207       case SharingMode::eConcurrent: return "Concurrent";
3208       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3209     }
3210   }
3211 
3212   enum class ImageLayout
3213   {
3214     eUndefined                             = VK_IMAGE_LAYOUT_UNDEFINED,
3215     eGeneral                               = VK_IMAGE_LAYOUT_GENERAL,
3216     eColorAttachmentOptimal                = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
3217     eDepthStencilAttachmentOptimal         = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
3218     eDepthStencilReadOnlyOptimal           = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,
3219     eShaderReadOnlyOptimal                 = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
3220     eTransferSrcOptimal                    = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
3221     eTransferDstOptimal                    = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
3222     ePreinitialized                        = VK_IMAGE_LAYOUT_PREINITIALIZED,
3223     eDepthReadOnlyStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
3224     eDepthAttachmentStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
3225     eDepthAttachmentOptimal                = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
3226     eDepthReadOnlyOptimal                  = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
3227     eStencilAttachmentOptimal              = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
3228     eStencilReadOnlyOptimal                = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
3229     ePresentSrcKHR                         = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR,
3230 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3231     eVideoDecodeDstKHR = VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR,
3232     eVideoDecodeSrcKHR = VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR,
3233     eVideoDecodeDpbKHR = VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR,
3234 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3235     eSharedPresentKHR                        = VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
3236     eFragmentDensityMapOptimalEXT            = VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT,
3237     eFragmentShadingRateAttachmentOptimalKHR = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
3238 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3239     eVideoEncodeDstKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR,
3240     eVideoEncodeSrcKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR,
3241     eVideoEncodeDpbKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR,
3242 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3243     eReadOnlyOptimalKHR                       = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR,
3244     eAttachmentOptimalKHR                     = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR,
3245     eDepthAttachmentOptimalKHR                = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR,
3246     eDepthAttachmentStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR,
3247     eDepthReadOnlyOptimalKHR                  = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR,
3248     eDepthReadOnlyStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR,
3249     eShadingRateOptimalNV                     = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV,
3250     eStencilAttachmentOptimalKHR              = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR,
3251     eStencilReadOnlyOptimalKHR                = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR
3252   };
3253 
to_string(ImageLayout value)3254   VULKAN_HPP_INLINE std::string to_string( ImageLayout value )
3255   {
3256     switch ( value )
3257     {
3258       case ImageLayout::eUndefined: return "Undefined";
3259       case ImageLayout::eGeneral: return "General";
3260       case ImageLayout::eColorAttachmentOptimal: return "ColorAttachmentOptimal";
3261       case ImageLayout::eDepthStencilAttachmentOptimal: return "DepthStencilAttachmentOptimal";
3262       case ImageLayout::eDepthStencilReadOnlyOptimal: return "DepthStencilReadOnlyOptimal";
3263       case ImageLayout::eShaderReadOnlyOptimal: return "ShaderReadOnlyOptimal";
3264       case ImageLayout::eTransferSrcOptimal: return "TransferSrcOptimal";
3265       case ImageLayout::eTransferDstOptimal: return "TransferDstOptimal";
3266       case ImageLayout::ePreinitialized: return "Preinitialized";
3267       case ImageLayout::eDepthReadOnlyStencilAttachmentOptimal: return "DepthReadOnlyStencilAttachmentOptimal";
3268       case ImageLayout::eDepthAttachmentStencilReadOnlyOptimal: return "DepthAttachmentStencilReadOnlyOptimal";
3269       case ImageLayout::eDepthAttachmentOptimal: return "DepthAttachmentOptimal";
3270       case ImageLayout::eDepthReadOnlyOptimal: return "DepthReadOnlyOptimal";
3271       case ImageLayout::eStencilAttachmentOptimal: return "StencilAttachmentOptimal";
3272       case ImageLayout::eStencilReadOnlyOptimal: return "StencilReadOnlyOptimal";
3273       case ImageLayout::ePresentSrcKHR: return "PresentSrcKHR";
3274 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3275       case ImageLayout::eVideoDecodeDstKHR: return "VideoDecodeDstKHR";
3276       case ImageLayout::eVideoDecodeSrcKHR: return "VideoDecodeSrcKHR";
3277       case ImageLayout::eVideoDecodeDpbKHR: return "VideoDecodeDpbKHR";
3278 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3279       case ImageLayout::eSharedPresentKHR: return "SharedPresentKHR";
3280       case ImageLayout::eFragmentDensityMapOptimalEXT: return "FragmentDensityMapOptimalEXT";
3281       case ImageLayout::eFragmentShadingRateAttachmentOptimalKHR: return "FragmentShadingRateAttachmentOptimalKHR";
3282 #if defined( VK_ENABLE_BETA_EXTENSIONS )
3283       case ImageLayout::eVideoEncodeDstKHR: return "VideoEncodeDstKHR";
3284       case ImageLayout::eVideoEncodeSrcKHR: return "VideoEncodeSrcKHR";
3285       case ImageLayout::eVideoEncodeDpbKHR: return "VideoEncodeDpbKHR";
3286 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
3287       case ImageLayout::eReadOnlyOptimalKHR: return "ReadOnlyOptimalKHR";
3288       case ImageLayout::eAttachmentOptimalKHR: return "AttachmentOptimalKHR";
3289       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3290     }
3291   }
3292 
3293   enum class ComponentSwizzle
3294   {
3295     eIdentity = VK_COMPONENT_SWIZZLE_IDENTITY,
3296     eZero     = VK_COMPONENT_SWIZZLE_ZERO,
3297     eOne      = VK_COMPONENT_SWIZZLE_ONE,
3298     eR        = VK_COMPONENT_SWIZZLE_R,
3299     eG        = VK_COMPONENT_SWIZZLE_G,
3300     eB        = VK_COMPONENT_SWIZZLE_B,
3301     eA        = VK_COMPONENT_SWIZZLE_A
3302   };
3303 
to_string(ComponentSwizzle value)3304   VULKAN_HPP_INLINE std::string to_string( ComponentSwizzle value )
3305   {
3306     switch ( value )
3307     {
3308       case ComponentSwizzle::eIdentity: return "Identity";
3309       case ComponentSwizzle::eZero: return "Zero";
3310       case ComponentSwizzle::eOne: return "One";
3311       case ComponentSwizzle::eR: return "R";
3312       case ComponentSwizzle::eG: return "G";
3313       case ComponentSwizzle::eB: return "B";
3314       case ComponentSwizzle::eA: return "A";
3315       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3316     }
3317   }
3318 
3319   enum class ImageViewCreateFlagBits : VkImageViewCreateFlags
3320   {
3321     eFragmentDensityMapDynamicEXT  = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT,
3322     eFragmentDensityMapDeferredEXT = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT
3323   };
3324 
to_string(ImageViewCreateFlagBits value)3325   VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlagBits value )
3326   {
3327     switch ( value )
3328     {
3329       case ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT: return "FragmentDensityMapDynamicEXT";
3330       case ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT: return "FragmentDensityMapDeferredEXT";
3331       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3332     }
3333   }
3334 
3335   enum class ImageViewType
3336   {
3337     e1D        = VK_IMAGE_VIEW_TYPE_1D,
3338     e2D        = VK_IMAGE_VIEW_TYPE_2D,
3339     e3D        = VK_IMAGE_VIEW_TYPE_3D,
3340     eCube      = VK_IMAGE_VIEW_TYPE_CUBE,
3341     e1DArray   = VK_IMAGE_VIEW_TYPE_1D_ARRAY,
3342     e2DArray   = VK_IMAGE_VIEW_TYPE_2D_ARRAY,
3343     eCubeArray = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
3344   };
3345 
to_string(ImageViewType value)3346   VULKAN_HPP_INLINE std::string to_string( ImageViewType value )
3347   {
3348     switch ( value )
3349     {
3350       case ImageViewType::e1D: return "1D";
3351       case ImageViewType::e2D: return "2D";
3352       case ImageViewType::e3D: return "3D";
3353       case ImageViewType::eCube: return "Cube";
3354       case ImageViewType::e1DArray: return "1DArray";
3355       case ImageViewType::e2DArray: return "2DArray";
3356       case ImageViewType::eCubeArray: return "CubeArray";
3357       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3358     }
3359   }
3360 
3361   enum class ShaderModuleCreateFlagBits : VkShaderModuleCreateFlags
3362   {
3363   };
3364 
to_string(ShaderModuleCreateFlagBits)3365   VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlagBits )
3366   {
3367     return "(void)";
3368   }
3369 
3370   enum class PipelineCacheCreateFlagBits : VkPipelineCacheCreateFlags
3371   {
3372     eExternallySynchronizedEXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT
3373   };
3374 
to_string(PipelineCacheCreateFlagBits value)3375   VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlagBits value )
3376   {
3377     switch ( value )
3378     {
3379       case PipelineCacheCreateFlagBits::eExternallySynchronizedEXT: return "ExternallySynchronizedEXT";
3380       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3381     }
3382   }
3383 
3384   enum class BlendFactor
3385   {
3386     eZero                  = VK_BLEND_FACTOR_ZERO,
3387     eOne                   = VK_BLEND_FACTOR_ONE,
3388     eSrcColor              = VK_BLEND_FACTOR_SRC_COLOR,
3389     eOneMinusSrcColor      = VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR,
3390     eDstColor              = VK_BLEND_FACTOR_DST_COLOR,
3391     eOneMinusDstColor      = VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR,
3392     eSrcAlpha              = VK_BLEND_FACTOR_SRC_ALPHA,
3393     eOneMinusSrcAlpha      = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA,
3394     eDstAlpha              = VK_BLEND_FACTOR_DST_ALPHA,
3395     eOneMinusDstAlpha      = VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA,
3396     eConstantColor         = VK_BLEND_FACTOR_CONSTANT_COLOR,
3397     eOneMinusConstantColor = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,
3398     eConstantAlpha         = VK_BLEND_FACTOR_CONSTANT_ALPHA,
3399     eOneMinusConstantAlpha = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,
3400     eSrcAlphaSaturate      = VK_BLEND_FACTOR_SRC_ALPHA_SATURATE,
3401     eSrc1Color             = VK_BLEND_FACTOR_SRC1_COLOR,
3402     eOneMinusSrc1Color     = VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,
3403     eSrc1Alpha             = VK_BLEND_FACTOR_SRC1_ALPHA,
3404     eOneMinusSrc1Alpha     = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
3405   };
3406 
to_string(BlendFactor value)3407   VULKAN_HPP_INLINE std::string to_string( BlendFactor value )
3408   {
3409     switch ( value )
3410     {
3411       case BlendFactor::eZero: return "Zero";
3412       case BlendFactor::eOne: return "One";
3413       case BlendFactor::eSrcColor: return "SrcColor";
3414       case BlendFactor::eOneMinusSrcColor: return "OneMinusSrcColor";
3415       case BlendFactor::eDstColor: return "DstColor";
3416       case BlendFactor::eOneMinusDstColor: return "OneMinusDstColor";
3417       case BlendFactor::eSrcAlpha: return "SrcAlpha";
3418       case BlendFactor::eOneMinusSrcAlpha: return "OneMinusSrcAlpha";
3419       case BlendFactor::eDstAlpha: return "DstAlpha";
3420       case BlendFactor::eOneMinusDstAlpha: return "OneMinusDstAlpha";
3421       case BlendFactor::eConstantColor: return "ConstantColor";
3422       case BlendFactor::eOneMinusConstantColor: return "OneMinusConstantColor";
3423       case BlendFactor::eConstantAlpha: return "ConstantAlpha";
3424       case BlendFactor::eOneMinusConstantAlpha: return "OneMinusConstantAlpha";
3425       case BlendFactor::eSrcAlphaSaturate: return "SrcAlphaSaturate";
3426       case BlendFactor::eSrc1Color: return "Src1Color";
3427       case BlendFactor::eOneMinusSrc1Color: return "OneMinusSrc1Color";
3428       case BlendFactor::eSrc1Alpha: return "Src1Alpha";
3429       case BlendFactor::eOneMinusSrc1Alpha: return "OneMinusSrc1Alpha";
3430       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3431     }
3432   }
3433 
3434   enum class BlendOp
3435   {
3436     eAdd                 = VK_BLEND_OP_ADD,
3437     eSubtract            = VK_BLEND_OP_SUBTRACT,
3438     eReverseSubtract     = VK_BLEND_OP_REVERSE_SUBTRACT,
3439     eMin                 = VK_BLEND_OP_MIN,
3440     eMax                 = VK_BLEND_OP_MAX,
3441     eZeroEXT             = VK_BLEND_OP_ZERO_EXT,
3442     eSrcEXT              = VK_BLEND_OP_SRC_EXT,
3443     eDstEXT              = VK_BLEND_OP_DST_EXT,
3444     eSrcOverEXT          = VK_BLEND_OP_SRC_OVER_EXT,
3445     eDstOverEXT          = VK_BLEND_OP_DST_OVER_EXT,
3446     eSrcInEXT            = VK_BLEND_OP_SRC_IN_EXT,
3447     eDstInEXT            = VK_BLEND_OP_DST_IN_EXT,
3448     eSrcOutEXT           = VK_BLEND_OP_SRC_OUT_EXT,
3449     eDstOutEXT           = VK_BLEND_OP_DST_OUT_EXT,
3450     eSrcAtopEXT          = VK_BLEND_OP_SRC_ATOP_EXT,
3451     eDstAtopEXT          = VK_BLEND_OP_DST_ATOP_EXT,
3452     eXorEXT              = VK_BLEND_OP_XOR_EXT,
3453     eMultiplyEXT         = VK_BLEND_OP_MULTIPLY_EXT,
3454     eScreenEXT           = VK_BLEND_OP_SCREEN_EXT,
3455     eOverlayEXT          = VK_BLEND_OP_OVERLAY_EXT,
3456     eDarkenEXT           = VK_BLEND_OP_DARKEN_EXT,
3457     eLightenEXT          = VK_BLEND_OP_LIGHTEN_EXT,
3458     eColordodgeEXT       = VK_BLEND_OP_COLORDODGE_EXT,
3459     eColorburnEXT        = VK_BLEND_OP_COLORBURN_EXT,
3460     eHardlightEXT        = VK_BLEND_OP_HARDLIGHT_EXT,
3461     eSoftlightEXT        = VK_BLEND_OP_SOFTLIGHT_EXT,
3462     eDifferenceEXT       = VK_BLEND_OP_DIFFERENCE_EXT,
3463     eExclusionEXT        = VK_BLEND_OP_EXCLUSION_EXT,
3464     eInvertEXT           = VK_BLEND_OP_INVERT_EXT,
3465     eInvertRgbEXT        = VK_BLEND_OP_INVERT_RGB_EXT,
3466     eLineardodgeEXT      = VK_BLEND_OP_LINEARDODGE_EXT,
3467     eLinearburnEXT       = VK_BLEND_OP_LINEARBURN_EXT,
3468     eVividlightEXT       = VK_BLEND_OP_VIVIDLIGHT_EXT,
3469     eLinearlightEXT      = VK_BLEND_OP_LINEARLIGHT_EXT,
3470     ePinlightEXT         = VK_BLEND_OP_PINLIGHT_EXT,
3471     eHardmixEXT          = VK_BLEND_OP_HARDMIX_EXT,
3472     eHslHueEXT           = VK_BLEND_OP_HSL_HUE_EXT,
3473     eHslSaturationEXT    = VK_BLEND_OP_HSL_SATURATION_EXT,
3474     eHslColorEXT         = VK_BLEND_OP_HSL_COLOR_EXT,
3475     eHslLuminosityEXT    = VK_BLEND_OP_HSL_LUMINOSITY_EXT,
3476     ePlusEXT             = VK_BLEND_OP_PLUS_EXT,
3477     ePlusClampedEXT      = VK_BLEND_OP_PLUS_CLAMPED_EXT,
3478     ePlusClampedAlphaEXT = VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT,
3479     ePlusDarkerEXT       = VK_BLEND_OP_PLUS_DARKER_EXT,
3480     eMinusEXT            = VK_BLEND_OP_MINUS_EXT,
3481     eMinusClampedEXT     = VK_BLEND_OP_MINUS_CLAMPED_EXT,
3482     eContrastEXT         = VK_BLEND_OP_CONTRAST_EXT,
3483     eInvertOvgEXT        = VK_BLEND_OP_INVERT_OVG_EXT,
3484     eRedEXT              = VK_BLEND_OP_RED_EXT,
3485     eGreenEXT            = VK_BLEND_OP_GREEN_EXT,
3486     eBlueEXT             = VK_BLEND_OP_BLUE_EXT
3487   };
3488 
to_string(BlendOp value)3489   VULKAN_HPP_INLINE std::string to_string( BlendOp value )
3490   {
3491     switch ( value )
3492     {
3493       case BlendOp::eAdd: return "Add";
3494       case BlendOp::eSubtract: return "Subtract";
3495       case BlendOp::eReverseSubtract: return "ReverseSubtract";
3496       case BlendOp::eMin: return "Min";
3497       case BlendOp::eMax: return "Max";
3498       case BlendOp::eZeroEXT: return "ZeroEXT";
3499       case BlendOp::eSrcEXT: return "SrcEXT";
3500       case BlendOp::eDstEXT: return "DstEXT";
3501       case BlendOp::eSrcOverEXT: return "SrcOverEXT";
3502       case BlendOp::eDstOverEXT: return "DstOverEXT";
3503       case BlendOp::eSrcInEXT: return "SrcInEXT";
3504       case BlendOp::eDstInEXT: return "DstInEXT";
3505       case BlendOp::eSrcOutEXT: return "SrcOutEXT";
3506       case BlendOp::eDstOutEXT: return "DstOutEXT";
3507       case BlendOp::eSrcAtopEXT: return "SrcAtopEXT";
3508       case BlendOp::eDstAtopEXT: return "DstAtopEXT";
3509       case BlendOp::eXorEXT: return "XorEXT";
3510       case BlendOp::eMultiplyEXT: return "MultiplyEXT";
3511       case BlendOp::eScreenEXT: return "ScreenEXT";
3512       case BlendOp::eOverlayEXT: return "OverlayEXT";
3513       case BlendOp::eDarkenEXT: return "DarkenEXT";
3514       case BlendOp::eLightenEXT: return "LightenEXT";
3515       case BlendOp::eColordodgeEXT: return "ColordodgeEXT";
3516       case BlendOp::eColorburnEXT: return "ColorburnEXT";
3517       case BlendOp::eHardlightEXT: return "HardlightEXT";
3518       case BlendOp::eSoftlightEXT: return "SoftlightEXT";
3519       case BlendOp::eDifferenceEXT: return "DifferenceEXT";
3520       case BlendOp::eExclusionEXT: return "ExclusionEXT";
3521       case BlendOp::eInvertEXT: return "InvertEXT";
3522       case BlendOp::eInvertRgbEXT: return "InvertRgbEXT";
3523       case BlendOp::eLineardodgeEXT: return "LineardodgeEXT";
3524       case BlendOp::eLinearburnEXT: return "LinearburnEXT";
3525       case BlendOp::eVividlightEXT: return "VividlightEXT";
3526       case BlendOp::eLinearlightEXT: return "LinearlightEXT";
3527       case BlendOp::ePinlightEXT: return "PinlightEXT";
3528       case BlendOp::eHardmixEXT: return "HardmixEXT";
3529       case BlendOp::eHslHueEXT: return "HslHueEXT";
3530       case BlendOp::eHslSaturationEXT: return "HslSaturationEXT";
3531       case BlendOp::eHslColorEXT: return "HslColorEXT";
3532       case BlendOp::eHslLuminosityEXT: return "HslLuminosityEXT";
3533       case BlendOp::ePlusEXT: return "PlusEXT";
3534       case BlendOp::ePlusClampedEXT: return "PlusClampedEXT";
3535       case BlendOp::ePlusClampedAlphaEXT: return "PlusClampedAlphaEXT";
3536       case BlendOp::ePlusDarkerEXT: return "PlusDarkerEXT";
3537       case BlendOp::eMinusEXT: return "MinusEXT";
3538       case BlendOp::eMinusClampedEXT: return "MinusClampedEXT";
3539       case BlendOp::eContrastEXT: return "ContrastEXT";
3540       case BlendOp::eInvertOvgEXT: return "InvertOvgEXT";
3541       case BlendOp::eRedEXT: return "RedEXT";
3542       case BlendOp::eGreenEXT: return "GreenEXT";
3543       case BlendOp::eBlueEXT: return "BlueEXT";
3544       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3545     }
3546   }
3547 
3548   enum class ColorComponentFlagBits : VkColorComponentFlags
3549   {
3550     eR = VK_COLOR_COMPONENT_R_BIT,
3551     eG = VK_COLOR_COMPONENT_G_BIT,
3552     eB = VK_COLOR_COMPONENT_B_BIT,
3553     eA = VK_COLOR_COMPONENT_A_BIT
3554   };
3555 
to_string(ColorComponentFlagBits value)3556   VULKAN_HPP_INLINE std::string to_string( ColorComponentFlagBits value )
3557   {
3558     switch ( value )
3559     {
3560       case ColorComponentFlagBits::eR: return "R";
3561       case ColorComponentFlagBits::eG: return "G";
3562       case ColorComponentFlagBits::eB: return "B";
3563       case ColorComponentFlagBits::eA: return "A";
3564       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3565     }
3566   }
3567 
3568   enum class CompareOp
3569   {
3570     eNever          = VK_COMPARE_OP_NEVER,
3571     eLess           = VK_COMPARE_OP_LESS,
3572     eEqual          = VK_COMPARE_OP_EQUAL,
3573     eLessOrEqual    = VK_COMPARE_OP_LESS_OR_EQUAL,
3574     eGreater        = VK_COMPARE_OP_GREATER,
3575     eNotEqual       = VK_COMPARE_OP_NOT_EQUAL,
3576     eGreaterOrEqual = VK_COMPARE_OP_GREATER_OR_EQUAL,
3577     eAlways         = VK_COMPARE_OP_ALWAYS
3578   };
3579 
to_string(CompareOp value)3580   VULKAN_HPP_INLINE std::string to_string( CompareOp value )
3581   {
3582     switch ( value )
3583     {
3584       case CompareOp::eNever: return "Never";
3585       case CompareOp::eLess: return "Less";
3586       case CompareOp::eEqual: return "Equal";
3587       case CompareOp::eLessOrEqual: return "LessOrEqual";
3588       case CompareOp::eGreater: return "Greater";
3589       case CompareOp::eNotEqual: return "NotEqual";
3590       case CompareOp::eGreaterOrEqual: return "GreaterOrEqual";
3591       case CompareOp::eAlways: return "Always";
3592       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3593     }
3594   }
3595 
3596   enum class CullModeFlagBits : VkCullModeFlags
3597   {
3598     eNone         = VK_CULL_MODE_NONE,
3599     eFront        = VK_CULL_MODE_FRONT_BIT,
3600     eBack         = VK_CULL_MODE_BACK_BIT,
3601     eFrontAndBack = VK_CULL_MODE_FRONT_AND_BACK
3602   };
3603 
to_string(CullModeFlagBits value)3604   VULKAN_HPP_INLINE std::string to_string( CullModeFlagBits value )
3605   {
3606     switch ( value )
3607     {
3608       case CullModeFlagBits::eNone: return "None";
3609       case CullModeFlagBits::eFront: return "Front";
3610       case CullModeFlagBits::eBack: return "Back";
3611       case CullModeFlagBits::eFrontAndBack: return "FrontAndBack";
3612       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3613     }
3614   }
3615 
3616   enum class DynamicState
3617   {
3618     eViewport                       = VK_DYNAMIC_STATE_VIEWPORT,
3619     eScissor                        = VK_DYNAMIC_STATE_SCISSOR,
3620     eLineWidth                      = VK_DYNAMIC_STATE_LINE_WIDTH,
3621     eDepthBias                      = VK_DYNAMIC_STATE_DEPTH_BIAS,
3622     eBlendConstants                 = VK_DYNAMIC_STATE_BLEND_CONSTANTS,
3623     eDepthBounds                    = VK_DYNAMIC_STATE_DEPTH_BOUNDS,
3624     eStencilCompareMask             = VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK,
3625     eStencilWriteMask               = VK_DYNAMIC_STATE_STENCIL_WRITE_MASK,
3626     eStencilReference               = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
3627     eViewportWScalingNV             = VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV,
3628     eDiscardRectangleEXT            = VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT,
3629     eSampleLocationsEXT             = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT,
3630     eRayTracingPipelineStackSizeKHR = VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR,
3631     eViewportShadingRatePaletteNV   = VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV,
3632     eViewportCoarseSampleOrderNV    = VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV,
3633     eExclusiveScissorNV             = VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV,
3634     eFragmentShadingRateKHR         = VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR,
3635     eLineStippleEXT                 = VK_DYNAMIC_STATE_LINE_STIPPLE_EXT,
3636     eCullModeEXT                    = VK_DYNAMIC_STATE_CULL_MODE_EXT,
3637     eFrontFaceEXT                   = VK_DYNAMIC_STATE_FRONT_FACE_EXT,
3638     ePrimitiveTopologyEXT           = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT,
3639     eViewportWithCountEXT           = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT,
3640     eScissorWithCountEXT            = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT,
3641     eVertexInputBindingStrideEXT    = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT,
3642     eDepthTestEnableEXT             = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT,
3643     eDepthWriteEnableEXT            = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT,
3644     eDepthCompareOpEXT              = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT,
3645     eDepthBoundsTestEnableEXT       = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT,
3646     eStencilTestEnableEXT           = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT,
3647     eStencilOpEXT                   = VK_DYNAMIC_STATE_STENCIL_OP_EXT,
3648     eVertexInputEXT                 = VK_DYNAMIC_STATE_VERTEX_INPUT_EXT,
3649     ePatchControlPointsEXT          = VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT,
3650     eRasterizerDiscardEnableEXT     = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT,
3651     eDepthBiasEnableEXT             = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT,
3652     eLogicOpEXT                     = VK_DYNAMIC_STATE_LOGIC_OP_EXT,
3653     ePrimitiveRestartEnableEXT      = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT,
3654     eColorWriteEnableEXT            = VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT
3655   };
3656 
to_string(DynamicState value)3657   VULKAN_HPP_INLINE std::string to_string( DynamicState value )
3658   {
3659     switch ( value )
3660     {
3661       case DynamicState::eViewport: return "Viewport";
3662       case DynamicState::eScissor: return "Scissor";
3663       case DynamicState::eLineWidth: return "LineWidth";
3664       case DynamicState::eDepthBias: return "DepthBias";
3665       case DynamicState::eBlendConstants: return "BlendConstants";
3666       case DynamicState::eDepthBounds: return "DepthBounds";
3667       case DynamicState::eStencilCompareMask: return "StencilCompareMask";
3668       case DynamicState::eStencilWriteMask: return "StencilWriteMask";
3669       case DynamicState::eStencilReference: return "StencilReference";
3670       case DynamicState::eViewportWScalingNV: return "ViewportWScalingNV";
3671       case DynamicState::eDiscardRectangleEXT: return "DiscardRectangleEXT";
3672       case DynamicState::eSampleLocationsEXT: return "SampleLocationsEXT";
3673       case DynamicState::eRayTracingPipelineStackSizeKHR: return "RayTracingPipelineStackSizeKHR";
3674       case DynamicState::eViewportShadingRatePaletteNV: return "ViewportShadingRatePaletteNV";
3675       case DynamicState::eViewportCoarseSampleOrderNV: return "ViewportCoarseSampleOrderNV";
3676       case DynamicState::eExclusiveScissorNV: return "ExclusiveScissorNV";
3677       case DynamicState::eFragmentShadingRateKHR: return "FragmentShadingRateKHR";
3678       case DynamicState::eLineStippleEXT: return "LineStippleEXT";
3679       case DynamicState::eCullModeEXT: return "CullModeEXT";
3680       case DynamicState::eFrontFaceEXT: return "FrontFaceEXT";
3681       case DynamicState::ePrimitiveTopologyEXT: return "PrimitiveTopologyEXT";
3682       case DynamicState::eViewportWithCountEXT: return "ViewportWithCountEXT";
3683       case DynamicState::eScissorWithCountEXT: return "ScissorWithCountEXT";
3684       case DynamicState::eVertexInputBindingStrideEXT: return "VertexInputBindingStrideEXT";
3685       case DynamicState::eDepthTestEnableEXT: return "DepthTestEnableEXT";
3686       case DynamicState::eDepthWriteEnableEXT: return "DepthWriteEnableEXT";
3687       case DynamicState::eDepthCompareOpEXT: return "DepthCompareOpEXT";
3688       case DynamicState::eDepthBoundsTestEnableEXT: return "DepthBoundsTestEnableEXT";
3689       case DynamicState::eStencilTestEnableEXT: return "StencilTestEnableEXT";
3690       case DynamicState::eStencilOpEXT: return "StencilOpEXT";
3691       case DynamicState::eVertexInputEXT: return "VertexInputEXT";
3692       case DynamicState::ePatchControlPointsEXT: return "PatchControlPointsEXT";
3693       case DynamicState::eRasterizerDiscardEnableEXT: return "RasterizerDiscardEnableEXT";
3694       case DynamicState::eDepthBiasEnableEXT: return "DepthBiasEnableEXT";
3695       case DynamicState::eLogicOpEXT: return "LogicOpEXT";
3696       case DynamicState::ePrimitiveRestartEnableEXT: return "PrimitiveRestartEnableEXT";
3697       case DynamicState::eColorWriteEnableEXT: return "ColorWriteEnableEXT";
3698       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3699     }
3700   }
3701 
3702   enum class FrontFace
3703   {
3704     eCounterClockwise = VK_FRONT_FACE_COUNTER_CLOCKWISE,
3705     eClockwise        = VK_FRONT_FACE_CLOCKWISE
3706   };
3707 
to_string(FrontFace value)3708   VULKAN_HPP_INLINE std::string to_string( FrontFace value )
3709   {
3710     switch ( value )
3711     {
3712       case FrontFace::eCounterClockwise: return "CounterClockwise";
3713       case FrontFace::eClockwise: return "Clockwise";
3714       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3715     }
3716   }
3717 
3718   enum class LogicOp
3719   {
3720     eClear        = VK_LOGIC_OP_CLEAR,
3721     eAnd          = VK_LOGIC_OP_AND,
3722     eAndReverse   = VK_LOGIC_OP_AND_REVERSE,
3723     eCopy         = VK_LOGIC_OP_COPY,
3724     eAndInverted  = VK_LOGIC_OP_AND_INVERTED,
3725     eNoOp         = VK_LOGIC_OP_NO_OP,
3726     eXor          = VK_LOGIC_OP_XOR,
3727     eOr           = VK_LOGIC_OP_OR,
3728     eNor          = VK_LOGIC_OP_NOR,
3729     eEquivalent   = VK_LOGIC_OP_EQUIVALENT,
3730     eInvert       = VK_LOGIC_OP_INVERT,
3731     eOrReverse    = VK_LOGIC_OP_OR_REVERSE,
3732     eCopyInverted = VK_LOGIC_OP_COPY_INVERTED,
3733     eOrInverted   = VK_LOGIC_OP_OR_INVERTED,
3734     eNand         = VK_LOGIC_OP_NAND,
3735     eSet          = VK_LOGIC_OP_SET
3736   };
3737 
to_string(LogicOp value)3738   VULKAN_HPP_INLINE std::string to_string( LogicOp value )
3739   {
3740     switch ( value )
3741     {
3742       case LogicOp::eClear: return "Clear";
3743       case LogicOp::eAnd: return "And";
3744       case LogicOp::eAndReverse: return "AndReverse";
3745       case LogicOp::eCopy: return "Copy";
3746       case LogicOp::eAndInverted: return "AndInverted";
3747       case LogicOp::eNoOp: return "NoOp";
3748       case LogicOp::eXor: return "Xor";
3749       case LogicOp::eOr: return "Or";
3750       case LogicOp::eNor: return "Nor";
3751       case LogicOp::eEquivalent: return "Equivalent";
3752       case LogicOp::eInvert: return "Invert";
3753       case LogicOp::eOrReverse: return "OrReverse";
3754       case LogicOp::eCopyInverted: return "CopyInverted";
3755       case LogicOp::eOrInverted: return "OrInverted";
3756       case LogicOp::eNand: return "Nand";
3757       case LogicOp::eSet: return "Set";
3758       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3759     }
3760   }
3761 
3762   enum class PipelineCreateFlagBits : VkPipelineCreateFlags
3763   {
3764     eDisableOptimization                    = VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,
3765     eAllowDerivatives                       = VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,
3766     eDerivative                             = VK_PIPELINE_CREATE_DERIVATIVE_BIT,
3767     eViewIndexFromDeviceIndex               = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
3768     eDispatchBase                           = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
3769     eRayTracingNoNullAnyHitShadersKHR       = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR,
3770     eRayTracingNoNullClosestHitShadersKHR   = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR,
3771     eRayTracingNoNullMissShadersKHR         = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR,
3772     eRayTracingNoNullIntersectionShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR,
3773     eRayTracingSkipTrianglesKHR             = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,
3774     eRayTracingSkipAabbsKHR                 = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR,
3775     eRayTracingShaderGroupHandleCaptureReplayKHR =
3776       VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR,
3777     eDeferCompileNV                    = VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,
3778     eCaptureStatisticsKHR              = VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,
3779     eCaptureInternalRepresentationsKHR = VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,
3780     eIndirectBindableNV                = VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV,
3781     eLibraryKHR                        = VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,
3782     eFailOnPipelineCompileRequiredEXT  = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT,
3783     eEarlyReturnOnFailureEXT           = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT,
3784     eRayTracingAllowMotionNV           = VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV,
3785     eDispatchBaseKHR                   = VK_PIPELINE_CREATE_DISPATCH_BASE_KHR,
3786     eViewIndexFromDeviceIndexKHR       = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR
3787   };
3788 
to_string(PipelineCreateFlagBits value)3789   VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlagBits value )
3790   {
3791     switch ( value )
3792     {
3793       case PipelineCreateFlagBits::eDisableOptimization: return "DisableOptimization";
3794       case PipelineCreateFlagBits::eAllowDerivatives: return "AllowDerivatives";
3795       case PipelineCreateFlagBits::eDerivative: return "Derivative";
3796       case PipelineCreateFlagBits::eViewIndexFromDeviceIndex: return "ViewIndexFromDeviceIndex";
3797       case PipelineCreateFlagBits::eDispatchBase: return "DispatchBase";
3798       case PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR: return "RayTracingNoNullAnyHitShadersKHR";
3799       case PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR: return "RayTracingNoNullClosestHitShadersKHR";
3800       case PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR: return "RayTracingNoNullMissShadersKHR";
3801       case PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR:
3802         return "RayTracingNoNullIntersectionShadersKHR";
3803       case PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR: return "RayTracingSkipTrianglesKHR";
3804       case PipelineCreateFlagBits::eRayTracingSkipAabbsKHR: return "RayTracingSkipAabbsKHR";
3805       case PipelineCreateFlagBits::eRayTracingShaderGroupHandleCaptureReplayKHR:
3806         return "RayTracingShaderGroupHandleCaptureReplayKHR";
3807       case PipelineCreateFlagBits::eDeferCompileNV: return "DeferCompileNV";
3808       case PipelineCreateFlagBits::eCaptureStatisticsKHR: return "CaptureStatisticsKHR";
3809       case PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR: return "CaptureInternalRepresentationsKHR";
3810       case PipelineCreateFlagBits::eIndirectBindableNV: return "IndirectBindableNV";
3811       case PipelineCreateFlagBits::eLibraryKHR: return "LibraryKHR";
3812       case PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT: return "FailOnPipelineCompileRequiredEXT";
3813       case PipelineCreateFlagBits::eEarlyReturnOnFailureEXT: return "EarlyReturnOnFailureEXT";
3814       case PipelineCreateFlagBits::eRayTracingAllowMotionNV: return "RayTracingAllowMotionNV";
3815       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3816     }
3817   }
3818 
3819   enum class PipelineShaderStageCreateFlagBits : VkPipelineShaderStageCreateFlags
3820   {
3821     eAllowVaryingSubgroupSizeEXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT,
3822     eRequireFullSubgroupsEXT     = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
3823   };
3824 
to_string(PipelineShaderStageCreateFlagBits value)3825   VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlagBits value )
3826   {
3827     switch ( value )
3828     {
3829       case PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT: return "AllowVaryingSubgroupSizeEXT";
3830       case PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT: return "RequireFullSubgroupsEXT";
3831       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3832     }
3833   }
3834 
3835   enum class PolygonMode
3836   {
3837     eFill            = VK_POLYGON_MODE_FILL,
3838     eLine            = VK_POLYGON_MODE_LINE,
3839     ePoint           = VK_POLYGON_MODE_POINT,
3840     eFillRectangleNV = VK_POLYGON_MODE_FILL_RECTANGLE_NV
3841   };
3842 
to_string(PolygonMode value)3843   VULKAN_HPP_INLINE std::string to_string( PolygonMode value )
3844   {
3845     switch ( value )
3846     {
3847       case PolygonMode::eFill: return "Fill";
3848       case PolygonMode::eLine: return "Line";
3849       case PolygonMode::ePoint: return "Point";
3850       case PolygonMode::eFillRectangleNV: return "FillRectangleNV";
3851       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3852     }
3853   }
3854 
3855   enum class PrimitiveTopology
3856   {
3857     ePointList                  = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
3858     eLineList                   = VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
3859     eLineStrip                  = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,
3860     eTriangleList               = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
3861     eTriangleStrip              = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
3862     eTriangleFan                = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN,
3863     eLineListWithAdjacency      = VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY,
3864     eLineStripWithAdjacency     = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY,
3865     eTriangleListWithAdjacency  = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,
3866     eTriangleStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY,
3867     ePatchList                  = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
3868   };
3869 
to_string(PrimitiveTopology value)3870   VULKAN_HPP_INLINE std::string to_string( PrimitiveTopology value )
3871   {
3872     switch ( value )
3873     {
3874       case PrimitiveTopology::ePointList: return "PointList";
3875       case PrimitiveTopology::eLineList: return "LineList";
3876       case PrimitiveTopology::eLineStrip: return "LineStrip";
3877       case PrimitiveTopology::eTriangleList: return "TriangleList";
3878       case PrimitiveTopology::eTriangleStrip: return "TriangleStrip";
3879       case PrimitiveTopology::eTriangleFan: return "TriangleFan";
3880       case PrimitiveTopology::eLineListWithAdjacency: return "LineListWithAdjacency";
3881       case PrimitiveTopology::eLineStripWithAdjacency: return "LineStripWithAdjacency";
3882       case PrimitiveTopology::eTriangleListWithAdjacency: return "TriangleListWithAdjacency";
3883       case PrimitiveTopology::eTriangleStripWithAdjacency: return "TriangleStripWithAdjacency";
3884       case PrimitiveTopology::ePatchList: return "PatchList";
3885       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3886     }
3887   }
3888 
3889   enum class ShaderStageFlagBits : VkShaderStageFlags
3890   {
3891     eVertex                 = VK_SHADER_STAGE_VERTEX_BIT,
3892     eTessellationControl    = VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
3893     eTessellationEvaluation = VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
3894     eGeometry               = VK_SHADER_STAGE_GEOMETRY_BIT,
3895     eFragment               = VK_SHADER_STAGE_FRAGMENT_BIT,
3896     eCompute                = VK_SHADER_STAGE_COMPUTE_BIT,
3897     eAllGraphics            = VK_SHADER_STAGE_ALL_GRAPHICS,
3898     eAll                    = VK_SHADER_STAGE_ALL,
3899     eRaygenKHR              = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
3900     eAnyHitKHR              = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
3901     eClosestHitKHR          = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
3902     eMissKHR                = VK_SHADER_STAGE_MISS_BIT_KHR,
3903     eIntersectionKHR        = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
3904     eCallableKHR            = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
3905     eTaskNV                 = VK_SHADER_STAGE_TASK_BIT_NV,
3906     eMeshNV                 = VK_SHADER_STAGE_MESH_BIT_NV,
3907     eSubpassShadingHUAWEI   = VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI,
3908     eAnyHitNV               = VK_SHADER_STAGE_ANY_HIT_BIT_NV,
3909     eCallableNV             = VK_SHADER_STAGE_CALLABLE_BIT_NV,
3910     eClosestHitNV           = VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV,
3911     eIntersectionNV         = VK_SHADER_STAGE_INTERSECTION_BIT_NV,
3912     eMissNV                 = VK_SHADER_STAGE_MISS_BIT_NV,
3913     eRaygenNV               = VK_SHADER_STAGE_RAYGEN_BIT_NV
3914   };
3915 
to_string(ShaderStageFlagBits value)3916   VULKAN_HPP_INLINE std::string to_string( ShaderStageFlagBits value )
3917   {
3918     switch ( value )
3919     {
3920       case ShaderStageFlagBits::eVertex: return "Vertex";
3921       case ShaderStageFlagBits::eTessellationControl: return "TessellationControl";
3922       case ShaderStageFlagBits::eTessellationEvaluation: return "TessellationEvaluation";
3923       case ShaderStageFlagBits::eGeometry: return "Geometry";
3924       case ShaderStageFlagBits::eFragment: return "Fragment";
3925       case ShaderStageFlagBits::eCompute: return "Compute";
3926       case ShaderStageFlagBits::eAllGraphics: return "AllGraphics";
3927       case ShaderStageFlagBits::eAll: return "All";
3928       case ShaderStageFlagBits::eRaygenKHR: return "RaygenKHR";
3929       case ShaderStageFlagBits::eAnyHitKHR: return "AnyHitKHR";
3930       case ShaderStageFlagBits::eClosestHitKHR: return "ClosestHitKHR";
3931       case ShaderStageFlagBits::eMissKHR: return "MissKHR";
3932       case ShaderStageFlagBits::eIntersectionKHR: return "IntersectionKHR";
3933       case ShaderStageFlagBits::eCallableKHR: return "CallableKHR";
3934       case ShaderStageFlagBits::eTaskNV: return "TaskNV";
3935       case ShaderStageFlagBits::eMeshNV: return "MeshNV";
3936       case ShaderStageFlagBits::eSubpassShadingHUAWEI: return "SubpassShadingHUAWEI";
3937       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3938     }
3939   }
3940 
3941   enum class StencilOp
3942   {
3943     eKeep              = VK_STENCIL_OP_KEEP,
3944     eZero              = VK_STENCIL_OP_ZERO,
3945     eReplace           = VK_STENCIL_OP_REPLACE,
3946     eIncrementAndClamp = VK_STENCIL_OP_INCREMENT_AND_CLAMP,
3947     eDecrementAndClamp = VK_STENCIL_OP_DECREMENT_AND_CLAMP,
3948     eInvert            = VK_STENCIL_OP_INVERT,
3949     eIncrementAndWrap  = VK_STENCIL_OP_INCREMENT_AND_WRAP,
3950     eDecrementAndWrap  = VK_STENCIL_OP_DECREMENT_AND_WRAP
3951   };
3952 
to_string(StencilOp value)3953   VULKAN_HPP_INLINE std::string to_string( StencilOp value )
3954   {
3955     switch ( value )
3956     {
3957       case StencilOp::eKeep: return "Keep";
3958       case StencilOp::eZero: return "Zero";
3959       case StencilOp::eReplace: return "Replace";
3960       case StencilOp::eIncrementAndClamp: return "IncrementAndClamp";
3961       case StencilOp::eDecrementAndClamp: return "DecrementAndClamp";
3962       case StencilOp::eInvert: return "Invert";
3963       case StencilOp::eIncrementAndWrap: return "IncrementAndWrap";
3964       case StencilOp::eDecrementAndWrap: return "DecrementAndWrap";
3965       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3966     }
3967   }
3968 
3969   enum class VertexInputRate
3970   {
3971     eVertex   = VK_VERTEX_INPUT_RATE_VERTEX,
3972     eInstance = VK_VERTEX_INPUT_RATE_INSTANCE
3973   };
3974 
to_string(VertexInputRate value)3975   VULKAN_HPP_INLINE std::string to_string( VertexInputRate value )
3976   {
3977     switch ( value )
3978     {
3979       case VertexInputRate::eVertex: return "Vertex";
3980       case VertexInputRate::eInstance: return "Instance";
3981       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
3982     }
3983   }
3984 
3985   enum class BorderColor
3986   {
3987     eFloatTransparentBlack = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
3988     eIntTransparentBlack   = VK_BORDER_COLOR_INT_TRANSPARENT_BLACK,
3989     eFloatOpaqueBlack      = VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK,
3990     eIntOpaqueBlack        = VK_BORDER_COLOR_INT_OPAQUE_BLACK,
3991     eFloatOpaqueWhite      = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE,
3992     eIntOpaqueWhite        = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
3993     eFloatCustomEXT        = VK_BORDER_COLOR_FLOAT_CUSTOM_EXT,
3994     eIntCustomEXT          = VK_BORDER_COLOR_INT_CUSTOM_EXT
3995   };
3996 
to_string(BorderColor value)3997   VULKAN_HPP_INLINE std::string to_string( BorderColor value )
3998   {
3999     switch ( value )
4000     {
4001       case BorderColor::eFloatTransparentBlack: return "FloatTransparentBlack";
4002       case BorderColor::eIntTransparentBlack: return "IntTransparentBlack";
4003       case BorderColor::eFloatOpaqueBlack: return "FloatOpaqueBlack";
4004       case BorderColor::eIntOpaqueBlack: return "IntOpaqueBlack";
4005       case BorderColor::eFloatOpaqueWhite: return "FloatOpaqueWhite";
4006       case BorderColor::eIntOpaqueWhite: return "IntOpaqueWhite";
4007       case BorderColor::eFloatCustomEXT: return "FloatCustomEXT";
4008       case BorderColor::eIntCustomEXT: return "IntCustomEXT";
4009       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4010     }
4011   }
4012 
4013   enum class Filter
4014   {
4015     eNearest  = VK_FILTER_NEAREST,
4016     eLinear   = VK_FILTER_LINEAR,
4017     eCubicIMG = VK_FILTER_CUBIC_IMG,
4018     eCubicEXT = VK_FILTER_CUBIC_EXT
4019   };
4020 
to_string(Filter value)4021   VULKAN_HPP_INLINE std::string to_string( Filter value )
4022   {
4023     switch ( value )
4024     {
4025       case Filter::eNearest: return "Nearest";
4026       case Filter::eLinear: return "Linear";
4027       case Filter::eCubicIMG: return "CubicIMG";
4028       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4029     }
4030   }
4031 
4032   enum class SamplerAddressMode
4033   {
4034     eRepeat               = VK_SAMPLER_ADDRESS_MODE_REPEAT,
4035     eMirroredRepeat       = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT,
4036     eClampToEdge          = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
4037     eClampToBorder        = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
4038     eMirrorClampToEdge    = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
4039     eMirrorClampToEdgeKHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR
4040   };
4041 
to_string(SamplerAddressMode value)4042   VULKAN_HPP_INLINE std::string to_string( SamplerAddressMode value )
4043   {
4044     switch ( value )
4045     {
4046       case SamplerAddressMode::eRepeat: return "Repeat";
4047       case SamplerAddressMode::eMirroredRepeat: return "MirroredRepeat";
4048       case SamplerAddressMode::eClampToEdge: return "ClampToEdge";
4049       case SamplerAddressMode::eClampToBorder: return "ClampToBorder";
4050       case SamplerAddressMode::eMirrorClampToEdge: return "MirrorClampToEdge";
4051       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4052     }
4053   }
4054 
4055   enum class SamplerCreateFlagBits : VkSamplerCreateFlags
4056   {
4057     eSubsampledEXT                     = VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT,
4058     eSubsampledCoarseReconstructionEXT = VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT
4059   };
4060 
to_string(SamplerCreateFlagBits value)4061   VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlagBits value )
4062   {
4063     switch ( value )
4064     {
4065       case SamplerCreateFlagBits::eSubsampledEXT: return "SubsampledEXT";
4066       case SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT: return "SubsampledCoarseReconstructionEXT";
4067       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4068     }
4069   }
4070 
4071   enum class SamplerMipmapMode
4072   {
4073     eNearest = VK_SAMPLER_MIPMAP_MODE_NEAREST,
4074     eLinear  = VK_SAMPLER_MIPMAP_MODE_LINEAR
4075   };
4076 
to_string(SamplerMipmapMode value)4077   VULKAN_HPP_INLINE std::string to_string( SamplerMipmapMode value )
4078   {
4079     switch ( value )
4080     {
4081       case SamplerMipmapMode::eNearest: return "Nearest";
4082       case SamplerMipmapMode::eLinear: return "Linear";
4083       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4084     }
4085   }
4086 
4087   enum class DescriptorPoolCreateFlagBits : VkDescriptorPoolCreateFlags
4088   {
4089     eFreeDescriptorSet  = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,
4090     eUpdateAfterBind    = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
4091     eHostOnlyVALVE      = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE,
4092     eUpdateAfterBindEXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT
4093   };
4094 
to_string(DescriptorPoolCreateFlagBits value)4095   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlagBits value )
4096   {
4097     switch ( value )
4098     {
4099       case DescriptorPoolCreateFlagBits::eFreeDescriptorSet: return "FreeDescriptorSet";
4100       case DescriptorPoolCreateFlagBits::eUpdateAfterBind: return "UpdateAfterBind";
4101       case DescriptorPoolCreateFlagBits::eHostOnlyVALVE: return "HostOnlyVALVE";
4102       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4103     }
4104   }
4105 
4106   enum class DescriptorSetLayoutCreateFlagBits : VkDescriptorSetLayoutCreateFlags
4107   {
4108     eUpdateAfterBindPool    = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
4109     ePushDescriptorKHR      = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,
4110     eHostOnlyPoolVALVE      = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE,
4111     eUpdateAfterBindPoolEXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
4112   };
4113 
to_string(DescriptorSetLayoutCreateFlagBits value)4114   VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlagBits value )
4115   {
4116     switch ( value )
4117     {
4118       case DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool: return "UpdateAfterBindPool";
4119       case DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR: return "PushDescriptorKHR";
4120       case DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolVALVE: return "HostOnlyPoolVALVE";
4121       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4122     }
4123   }
4124 
4125   enum class DescriptorType
4126   {
4127     eSampler                  = VK_DESCRIPTOR_TYPE_SAMPLER,
4128     eCombinedImageSampler     = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
4129     eSampledImage             = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
4130     eStorageImage             = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
4131     eUniformTexelBuffer       = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,
4132     eStorageTexelBuffer       = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,
4133     eUniformBuffer            = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
4134     eStorageBuffer            = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
4135     eUniformBufferDynamic     = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
4136     eStorageBufferDynamic     = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC,
4137     eInputAttachment          = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
4138     eInlineUniformBlockEXT    = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT,
4139     eAccelerationStructureKHR = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,
4140     eAccelerationStructureNV  = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV,
4141     eMutableVALVE             = VK_DESCRIPTOR_TYPE_MUTABLE_VALVE
4142   };
4143 
to_string(DescriptorType value)4144   VULKAN_HPP_INLINE std::string to_string( DescriptorType value )
4145   {
4146     switch ( value )
4147     {
4148       case DescriptorType::eSampler: return "Sampler";
4149       case DescriptorType::eCombinedImageSampler: return "CombinedImageSampler";
4150       case DescriptorType::eSampledImage: return "SampledImage";
4151       case DescriptorType::eStorageImage: return "StorageImage";
4152       case DescriptorType::eUniformTexelBuffer: return "UniformTexelBuffer";
4153       case DescriptorType::eStorageTexelBuffer: return "StorageTexelBuffer";
4154       case DescriptorType::eUniformBuffer: return "UniformBuffer";
4155       case DescriptorType::eStorageBuffer: return "StorageBuffer";
4156       case DescriptorType::eUniformBufferDynamic: return "UniformBufferDynamic";
4157       case DescriptorType::eStorageBufferDynamic: return "StorageBufferDynamic";
4158       case DescriptorType::eInputAttachment: return "InputAttachment";
4159       case DescriptorType::eInlineUniformBlockEXT: return "InlineUniformBlockEXT";
4160       case DescriptorType::eAccelerationStructureKHR: return "AccelerationStructureKHR";
4161       case DescriptorType::eAccelerationStructureNV: return "AccelerationStructureNV";
4162       case DescriptorType::eMutableVALVE: return "MutableVALVE";
4163       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4164     }
4165   }
4166 
4167   enum class AccessFlagBits : VkAccessFlags
4168   {
4169     eIndirectCommandRead                  = VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
4170     eIndexRead                            = VK_ACCESS_INDEX_READ_BIT,
4171     eVertexAttributeRead                  = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,
4172     eUniformRead                          = VK_ACCESS_UNIFORM_READ_BIT,
4173     eInputAttachmentRead                  = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
4174     eShaderRead                           = VK_ACCESS_SHADER_READ_BIT,
4175     eShaderWrite                          = VK_ACCESS_SHADER_WRITE_BIT,
4176     eColorAttachmentRead                  = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,
4177     eColorAttachmentWrite                 = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
4178     eDepthStencilAttachmentRead           = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
4179     eDepthStencilAttachmentWrite          = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
4180     eTransferRead                         = VK_ACCESS_TRANSFER_READ_BIT,
4181     eTransferWrite                        = VK_ACCESS_TRANSFER_WRITE_BIT,
4182     eHostRead                             = VK_ACCESS_HOST_READ_BIT,
4183     eHostWrite                            = VK_ACCESS_HOST_WRITE_BIT,
4184     eMemoryRead                           = VK_ACCESS_MEMORY_READ_BIT,
4185     eMemoryWrite                          = VK_ACCESS_MEMORY_WRITE_BIT,
4186     eTransformFeedbackWriteEXT            = VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
4187     eTransformFeedbackCounterReadEXT      = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,
4188     eTransformFeedbackCounterWriteEXT     = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
4189     eConditionalRenderingReadEXT          = VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,
4190     eColorAttachmentReadNoncoherentEXT    = VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
4191     eAccelerationStructureReadKHR         = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
4192     eAccelerationStructureWriteKHR        = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
4193     eFragmentDensityMapReadEXT            = VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,
4194     eFragmentShadingRateAttachmentReadKHR = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
4195     eCommandPreprocessReadNV              = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,
4196     eCommandPreprocessWriteNV             = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,
4197     eNoneKHR                              = VK_ACCESS_NONE_KHR,
4198     eAccelerationStructureReadNV          = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV,
4199     eAccelerationStructureWriteNV         = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
4200     eShadingRateImageReadNV               = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV
4201   };
4202 
to_string(AccessFlagBits value)4203   VULKAN_HPP_INLINE std::string to_string( AccessFlagBits value )
4204   {
4205     switch ( value )
4206     {
4207       case AccessFlagBits::eIndirectCommandRead: return "IndirectCommandRead";
4208       case AccessFlagBits::eIndexRead: return "IndexRead";
4209       case AccessFlagBits::eVertexAttributeRead: return "VertexAttributeRead";
4210       case AccessFlagBits::eUniformRead: return "UniformRead";
4211       case AccessFlagBits::eInputAttachmentRead: return "InputAttachmentRead";
4212       case AccessFlagBits::eShaderRead: return "ShaderRead";
4213       case AccessFlagBits::eShaderWrite: return "ShaderWrite";
4214       case AccessFlagBits::eColorAttachmentRead: return "ColorAttachmentRead";
4215       case AccessFlagBits::eColorAttachmentWrite: return "ColorAttachmentWrite";
4216       case AccessFlagBits::eDepthStencilAttachmentRead: return "DepthStencilAttachmentRead";
4217       case AccessFlagBits::eDepthStencilAttachmentWrite: return "DepthStencilAttachmentWrite";
4218       case AccessFlagBits::eTransferRead: return "TransferRead";
4219       case AccessFlagBits::eTransferWrite: return "TransferWrite";
4220       case AccessFlagBits::eHostRead: return "HostRead";
4221       case AccessFlagBits::eHostWrite: return "HostWrite";
4222       case AccessFlagBits::eMemoryRead: return "MemoryRead";
4223       case AccessFlagBits::eMemoryWrite: return "MemoryWrite";
4224       case AccessFlagBits::eTransformFeedbackWriteEXT: return "TransformFeedbackWriteEXT";
4225       case AccessFlagBits::eTransformFeedbackCounterReadEXT: return "TransformFeedbackCounterReadEXT";
4226       case AccessFlagBits::eTransformFeedbackCounterWriteEXT: return "TransformFeedbackCounterWriteEXT";
4227       case AccessFlagBits::eConditionalRenderingReadEXT: return "ConditionalRenderingReadEXT";
4228       case AccessFlagBits::eColorAttachmentReadNoncoherentEXT: return "ColorAttachmentReadNoncoherentEXT";
4229       case AccessFlagBits::eAccelerationStructureReadKHR: return "AccelerationStructureReadKHR";
4230       case AccessFlagBits::eAccelerationStructureWriteKHR: return "AccelerationStructureWriteKHR";
4231       case AccessFlagBits::eFragmentDensityMapReadEXT: return "FragmentDensityMapReadEXT";
4232       case AccessFlagBits::eFragmentShadingRateAttachmentReadKHR: return "FragmentShadingRateAttachmentReadKHR";
4233       case AccessFlagBits::eCommandPreprocessReadNV: return "CommandPreprocessReadNV";
4234       case AccessFlagBits::eCommandPreprocessWriteNV: return "CommandPreprocessWriteNV";
4235       case AccessFlagBits::eNoneKHR: return "NoneKHR";
4236       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4237     }
4238   }
4239 
4240   enum class AttachmentDescriptionFlagBits : VkAttachmentDescriptionFlags
4241   {
4242     eMayAlias = VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT
4243   };
4244 
to_string(AttachmentDescriptionFlagBits value)4245   VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlagBits value )
4246   {
4247     switch ( value )
4248     {
4249       case AttachmentDescriptionFlagBits::eMayAlias: return "MayAlias";
4250       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4251     }
4252   }
4253 
4254   enum class AttachmentLoadOp
4255   {
4256     eLoad     = VK_ATTACHMENT_LOAD_OP_LOAD,
4257     eClear    = VK_ATTACHMENT_LOAD_OP_CLEAR,
4258     eDontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE
4259   };
4260 
to_string(AttachmentLoadOp value)4261   VULKAN_HPP_INLINE std::string to_string( AttachmentLoadOp value )
4262   {
4263     switch ( value )
4264     {
4265       case AttachmentLoadOp::eLoad: return "Load";
4266       case AttachmentLoadOp::eClear: return "Clear";
4267       case AttachmentLoadOp::eDontCare: return "DontCare";
4268       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4269     }
4270   }
4271 
4272   enum class AttachmentStoreOp
4273   {
4274     eStore    = VK_ATTACHMENT_STORE_OP_STORE,
4275     eDontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE,
4276     eNoneQCOM = VK_ATTACHMENT_STORE_OP_NONE_QCOM
4277   };
4278 
to_string(AttachmentStoreOp value)4279   VULKAN_HPP_INLINE std::string to_string( AttachmentStoreOp value )
4280   {
4281     switch ( value )
4282     {
4283       case AttachmentStoreOp::eStore: return "Store";
4284       case AttachmentStoreOp::eDontCare: return "DontCare";
4285       case AttachmentStoreOp::eNoneQCOM: return "NoneQCOM";
4286       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4287     }
4288   }
4289 
4290   enum class DependencyFlagBits : VkDependencyFlags
4291   {
4292     eByRegion       = VK_DEPENDENCY_BY_REGION_BIT,
4293     eDeviceGroup    = VK_DEPENDENCY_DEVICE_GROUP_BIT,
4294     eViewLocal      = VK_DEPENDENCY_VIEW_LOCAL_BIT,
4295     eDeviceGroupKHR = VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR,
4296     eViewLocalKHR   = VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR
4297   };
4298 
to_string(DependencyFlagBits value)4299   VULKAN_HPP_INLINE std::string to_string( DependencyFlagBits value )
4300   {
4301     switch ( value )
4302     {
4303       case DependencyFlagBits::eByRegion: return "ByRegion";
4304       case DependencyFlagBits::eDeviceGroup: return "DeviceGroup";
4305       case DependencyFlagBits::eViewLocal: return "ViewLocal";
4306       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4307     }
4308   }
4309 
4310   enum class FramebufferCreateFlagBits : VkFramebufferCreateFlags
4311   {
4312     eImageless    = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
4313     eImagelessKHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR
4314   };
4315 
to_string(FramebufferCreateFlagBits value)4316   VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlagBits value )
4317   {
4318     switch ( value )
4319     {
4320       case FramebufferCreateFlagBits::eImageless: return "Imageless";
4321       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4322     }
4323   }
4324 
4325   enum class PipelineBindPoint
4326   {
4327     eGraphics             = VK_PIPELINE_BIND_POINT_GRAPHICS,
4328     eCompute              = VK_PIPELINE_BIND_POINT_COMPUTE,
4329     eRayTracingKHR        = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
4330     eSubpassShadingHUAWEI = VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI,
4331     eRayTracingNV         = VK_PIPELINE_BIND_POINT_RAY_TRACING_NV
4332   };
4333 
to_string(PipelineBindPoint value)4334   VULKAN_HPP_INLINE std::string to_string( PipelineBindPoint value )
4335   {
4336     switch ( value )
4337     {
4338       case PipelineBindPoint::eGraphics: return "Graphics";
4339       case PipelineBindPoint::eCompute: return "Compute";
4340       case PipelineBindPoint::eRayTracingKHR: return "RayTracingKHR";
4341       case PipelineBindPoint::eSubpassShadingHUAWEI: return "SubpassShadingHUAWEI";
4342       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4343     }
4344   }
4345 
4346   enum class RenderPassCreateFlagBits : VkRenderPassCreateFlags
4347   {
4348     eTransformQCOM = VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM
4349   };
4350 
to_string(RenderPassCreateFlagBits value)4351   VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlagBits value )
4352   {
4353     switch ( value )
4354     {
4355       case RenderPassCreateFlagBits::eTransformQCOM: return "TransformQCOM";
4356       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4357     }
4358   }
4359 
4360   enum class SubpassDescriptionFlagBits : VkSubpassDescriptionFlags
4361   {
4362     ePerViewAttributesNVX    = VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,
4363     ePerViewPositionXOnlyNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX,
4364     eFragmentRegionQCOM      = VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM,
4365     eShaderResolveQCOM       = VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM
4366   };
4367 
to_string(SubpassDescriptionFlagBits value)4368   VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlagBits value )
4369   {
4370     switch ( value )
4371     {
4372       case SubpassDescriptionFlagBits::ePerViewAttributesNVX: return "PerViewAttributesNVX";
4373       case SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX: return "PerViewPositionXOnlyNVX";
4374       case SubpassDescriptionFlagBits::eFragmentRegionQCOM: return "FragmentRegionQCOM";
4375       case SubpassDescriptionFlagBits::eShaderResolveQCOM: return "ShaderResolveQCOM";
4376       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4377     }
4378   }
4379 
4380   enum class CommandPoolCreateFlagBits : VkCommandPoolCreateFlags
4381   {
4382     eTransient          = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,
4383     eResetCommandBuffer = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,
4384     eProtected          = VK_COMMAND_POOL_CREATE_PROTECTED_BIT
4385   };
4386 
to_string(CommandPoolCreateFlagBits value)4387   VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlagBits value )
4388   {
4389     switch ( value )
4390     {
4391       case CommandPoolCreateFlagBits::eTransient: return "Transient";
4392       case CommandPoolCreateFlagBits::eResetCommandBuffer: return "ResetCommandBuffer";
4393       case CommandPoolCreateFlagBits::eProtected: return "Protected";
4394       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4395     }
4396   }
4397 
4398   enum class CommandPoolResetFlagBits : VkCommandPoolResetFlags
4399   {
4400     eReleaseResources = VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT
4401   };
4402 
to_string(CommandPoolResetFlagBits value)4403   VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlagBits value )
4404   {
4405     switch ( value )
4406     {
4407       case CommandPoolResetFlagBits::eReleaseResources: return "ReleaseResources";
4408       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4409     }
4410   }
4411 
4412   enum class CommandBufferLevel
4413   {
4414     ePrimary   = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
4415     eSecondary = VK_COMMAND_BUFFER_LEVEL_SECONDARY
4416   };
4417 
to_string(CommandBufferLevel value)4418   VULKAN_HPP_INLINE std::string to_string( CommandBufferLevel value )
4419   {
4420     switch ( value )
4421     {
4422       case CommandBufferLevel::ePrimary: return "Primary";
4423       case CommandBufferLevel::eSecondary: return "Secondary";
4424       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4425     }
4426   }
4427 
4428   enum class CommandBufferResetFlagBits : VkCommandBufferResetFlags
4429   {
4430     eReleaseResources = VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT
4431   };
4432 
to_string(CommandBufferResetFlagBits value)4433   VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlagBits value )
4434   {
4435     switch ( value )
4436     {
4437       case CommandBufferResetFlagBits::eReleaseResources: return "ReleaseResources";
4438       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4439     }
4440   }
4441 
4442   enum class CommandBufferUsageFlagBits : VkCommandBufferUsageFlags
4443   {
4444     eOneTimeSubmit      = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
4445     eRenderPassContinue = VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,
4446     eSimultaneousUse    = VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
4447   };
4448 
to_string(CommandBufferUsageFlagBits value)4449   VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlagBits value )
4450   {
4451     switch ( value )
4452     {
4453       case CommandBufferUsageFlagBits::eOneTimeSubmit: return "OneTimeSubmit";
4454       case CommandBufferUsageFlagBits::eRenderPassContinue: return "RenderPassContinue";
4455       case CommandBufferUsageFlagBits::eSimultaneousUse: return "SimultaneousUse";
4456       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4457     }
4458   }
4459 
4460   enum class QueryControlFlagBits : VkQueryControlFlags
4461   {
4462     ePrecise = VK_QUERY_CONTROL_PRECISE_BIT
4463   };
4464 
to_string(QueryControlFlagBits value)4465   VULKAN_HPP_INLINE std::string to_string( QueryControlFlagBits value )
4466   {
4467     switch ( value )
4468     {
4469       case QueryControlFlagBits::ePrecise: return "Precise";
4470       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4471     }
4472   }
4473 
4474   enum class IndexType
4475   {
4476     eUint16   = VK_INDEX_TYPE_UINT16,
4477     eUint32   = VK_INDEX_TYPE_UINT32,
4478     eNoneKHR  = VK_INDEX_TYPE_NONE_KHR,
4479     eUint8EXT = VK_INDEX_TYPE_UINT8_EXT,
4480     eNoneNV   = VK_INDEX_TYPE_NONE_NV
4481   };
4482 
to_string(IndexType value)4483   VULKAN_HPP_INLINE std::string to_string( IndexType value )
4484   {
4485     switch ( value )
4486     {
4487       case IndexType::eUint16: return "Uint16";
4488       case IndexType::eUint32: return "Uint32";
4489       case IndexType::eNoneKHR: return "NoneKHR";
4490       case IndexType::eUint8EXT: return "Uint8EXT";
4491       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4492     }
4493   }
4494 
4495   enum class StencilFaceFlagBits : VkStencilFaceFlags
4496   {
4497     eFront                 = VK_STENCIL_FACE_FRONT_BIT,
4498     eBack                  = VK_STENCIL_FACE_BACK_BIT,
4499     eFrontAndBack          = VK_STENCIL_FACE_FRONT_AND_BACK,
4500     eVkStencilFrontAndBack = VK_STENCIL_FRONT_AND_BACK
4501   };
4502 
to_string(StencilFaceFlagBits value)4503   VULKAN_HPP_INLINE std::string to_string( StencilFaceFlagBits value )
4504   {
4505     switch ( value )
4506     {
4507       case StencilFaceFlagBits::eFront: return "Front";
4508       case StencilFaceFlagBits::eBack: return "Back";
4509       case StencilFaceFlagBits::eFrontAndBack: return "FrontAndBack";
4510       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4511     }
4512   }
4513 
4514   enum class SubpassContents
4515   {
4516     eInline                  = VK_SUBPASS_CONTENTS_INLINE,
4517     eSecondaryCommandBuffers = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
4518   };
4519 
to_string(SubpassContents value)4520   VULKAN_HPP_INLINE std::string to_string( SubpassContents value )
4521   {
4522     switch ( value )
4523     {
4524       case SubpassContents::eInline: return "Inline";
4525       case SubpassContents::eSecondaryCommandBuffers: return "SecondaryCommandBuffers";
4526       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4527     }
4528   }
4529 
4530   enum class InstanceCreateFlagBits
4531   {
4532   };
4533 
to_string(InstanceCreateFlagBits)4534   VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlagBits )
4535   {
4536     return "(void)";
4537   }
4538 
4539   enum class DeviceCreateFlagBits
4540   {
4541   };
4542 
to_string(DeviceCreateFlagBits)4543   VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlagBits )
4544   {
4545     return "(void)";
4546   }
4547 
4548   enum class MemoryMapFlagBits : VkMemoryMapFlags
4549   {
4550   };
4551 
to_string(MemoryMapFlagBits)4552   VULKAN_HPP_INLINE std::string to_string( MemoryMapFlagBits )
4553   {
4554     return "(void)";
4555   }
4556 
4557   enum class SemaphoreCreateFlagBits : VkSemaphoreCreateFlags
4558   {
4559   };
4560 
to_string(SemaphoreCreateFlagBits)4561   VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlagBits )
4562   {
4563     return "(void)";
4564   }
4565 
4566   enum class QueryPoolCreateFlagBits
4567   {
4568   };
4569 
to_string(QueryPoolCreateFlagBits)4570   VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlagBits )
4571   {
4572     return "(void)";
4573   }
4574 
4575   enum class BufferViewCreateFlagBits : VkBufferViewCreateFlags
4576   {
4577   };
4578 
to_string(BufferViewCreateFlagBits)4579   VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlagBits )
4580   {
4581     return "(void)";
4582   }
4583 
4584   enum class PipelineColorBlendStateCreateFlagBits : VkPipelineColorBlendStateCreateFlags
4585   {
4586   };
4587 
to_string(PipelineColorBlendStateCreateFlagBits)4588   VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlagBits )
4589   {
4590     return "(void)";
4591   }
4592 
4593   enum class PipelineDepthStencilStateCreateFlagBits : VkPipelineDepthStencilStateCreateFlags
4594   {
4595   };
4596 
to_string(PipelineDepthStencilStateCreateFlagBits)4597   VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlagBits )
4598   {
4599     return "(void)";
4600   }
4601 
4602   enum class PipelineDynamicStateCreateFlagBits : VkPipelineDynamicStateCreateFlags
4603   {
4604   };
4605 
to_string(PipelineDynamicStateCreateFlagBits)4606   VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlagBits )
4607   {
4608     return "(void)";
4609   }
4610 
4611   enum class PipelineInputAssemblyStateCreateFlagBits : VkPipelineInputAssemblyStateCreateFlags
4612   {
4613   };
4614 
to_string(PipelineInputAssemblyStateCreateFlagBits)4615   VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlagBits )
4616   {
4617     return "(void)";
4618   }
4619 
4620   enum class PipelineLayoutCreateFlagBits : VkPipelineLayoutCreateFlags
4621   {
4622   };
4623 
to_string(PipelineLayoutCreateFlagBits)4624   VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlagBits )
4625   {
4626     return "(void)";
4627   }
4628 
4629   enum class PipelineMultisampleStateCreateFlagBits : VkPipelineMultisampleStateCreateFlags
4630   {
4631   };
4632 
to_string(PipelineMultisampleStateCreateFlagBits)4633   VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlagBits )
4634   {
4635     return "(void)";
4636   }
4637 
4638   enum class PipelineRasterizationStateCreateFlagBits : VkPipelineRasterizationStateCreateFlags
4639   {
4640   };
4641 
to_string(PipelineRasterizationStateCreateFlagBits)4642   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlagBits )
4643   {
4644     return "(void)";
4645   }
4646 
4647   enum class PipelineTessellationStateCreateFlagBits : VkPipelineTessellationStateCreateFlags
4648   {
4649   };
4650 
to_string(PipelineTessellationStateCreateFlagBits)4651   VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlagBits )
4652   {
4653     return "(void)";
4654   }
4655 
4656   enum class PipelineVertexInputStateCreateFlagBits : VkPipelineVertexInputStateCreateFlags
4657   {
4658   };
4659 
to_string(PipelineVertexInputStateCreateFlagBits)4660   VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlagBits )
4661   {
4662     return "(void)";
4663   }
4664 
4665   enum class PipelineViewportStateCreateFlagBits : VkPipelineViewportStateCreateFlags
4666   {
4667   };
4668 
to_string(PipelineViewportStateCreateFlagBits)4669   VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlagBits )
4670   {
4671     return "(void)";
4672   }
4673 
4674   enum class DescriptorPoolResetFlagBits : VkDescriptorPoolResetFlags
4675   {
4676   };
4677 
to_string(DescriptorPoolResetFlagBits)4678   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlagBits )
4679   {
4680     return "(void)";
4681   }
4682 
4683   //=== VK_VERSION_1_1 ===
4684 
4685   enum class SubgroupFeatureFlagBits : VkSubgroupFeatureFlags
4686   {
4687     eBasic           = VK_SUBGROUP_FEATURE_BASIC_BIT,
4688     eVote            = VK_SUBGROUP_FEATURE_VOTE_BIT,
4689     eArithmetic      = VK_SUBGROUP_FEATURE_ARITHMETIC_BIT,
4690     eBallot          = VK_SUBGROUP_FEATURE_BALLOT_BIT,
4691     eShuffle         = VK_SUBGROUP_FEATURE_SHUFFLE_BIT,
4692     eShuffleRelative = VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,
4693     eClustered       = VK_SUBGROUP_FEATURE_CLUSTERED_BIT,
4694     eQuad            = VK_SUBGROUP_FEATURE_QUAD_BIT,
4695     ePartitionedNV   = VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV
4696   };
4697 
to_string(SubgroupFeatureFlagBits value)4698   VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlagBits value )
4699   {
4700     switch ( value )
4701     {
4702       case SubgroupFeatureFlagBits::eBasic: return "Basic";
4703       case SubgroupFeatureFlagBits::eVote: return "Vote";
4704       case SubgroupFeatureFlagBits::eArithmetic: return "Arithmetic";
4705       case SubgroupFeatureFlagBits::eBallot: return "Ballot";
4706       case SubgroupFeatureFlagBits::eShuffle: return "Shuffle";
4707       case SubgroupFeatureFlagBits::eShuffleRelative: return "ShuffleRelative";
4708       case SubgroupFeatureFlagBits::eClustered: return "Clustered";
4709       case SubgroupFeatureFlagBits::eQuad: return "Quad";
4710       case SubgroupFeatureFlagBits::ePartitionedNV: return "PartitionedNV";
4711       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4712     }
4713   }
4714 
4715   enum class PeerMemoryFeatureFlagBits : VkPeerMemoryFeatureFlags
4716   {
4717     eCopySrc    = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
4718     eCopyDst    = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
4719     eGenericSrc = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
4720     eGenericDst = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT
4721   };
4722   using PeerMemoryFeatureFlagBitsKHR = PeerMemoryFeatureFlagBits;
4723 
to_string(PeerMemoryFeatureFlagBits value)4724   VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlagBits value )
4725   {
4726     switch ( value )
4727     {
4728       case PeerMemoryFeatureFlagBits::eCopySrc: return "CopySrc";
4729       case PeerMemoryFeatureFlagBits::eCopyDst: return "CopyDst";
4730       case PeerMemoryFeatureFlagBits::eGenericSrc: return "GenericSrc";
4731       case PeerMemoryFeatureFlagBits::eGenericDst: return "GenericDst";
4732       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4733     }
4734   }
4735 
4736   enum class MemoryAllocateFlagBits : VkMemoryAllocateFlags
4737   {
4738     eDeviceMask                 = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
4739     eDeviceAddress              = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
4740     eDeviceAddressCaptureReplay = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
4741   };
4742   using MemoryAllocateFlagBitsKHR = MemoryAllocateFlagBits;
4743 
to_string(MemoryAllocateFlagBits value)4744   VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlagBits value )
4745   {
4746     switch ( value )
4747     {
4748       case MemoryAllocateFlagBits::eDeviceMask: return "DeviceMask";
4749       case MemoryAllocateFlagBits::eDeviceAddress: return "DeviceAddress";
4750       case MemoryAllocateFlagBits::eDeviceAddressCaptureReplay: return "DeviceAddressCaptureReplay";
4751       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4752     }
4753   }
4754 
4755   enum class PointClippingBehavior
4756   {
4757     eAllClipPlanes      = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
4758     eUserClipPlanesOnly = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
4759   };
4760   using PointClippingBehaviorKHR = PointClippingBehavior;
4761 
to_string(PointClippingBehavior value)4762   VULKAN_HPP_INLINE std::string to_string( PointClippingBehavior value )
4763   {
4764     switch ( value )
4765     {
4766       case PointClippingBehavior::eAllClipPlanes: return "AllClipPlanes";
4767       case PointClippingBehavior::eUserClipPlanesOnly: return "UserClipPlanesOnly";
4768       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4769     }
4770   }
4771 
4772   enum class TessellationDomainOrigin
4773   {
4774     eUpperLeft = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
4775     eLowerLeft = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT
4776   };
4777   using TessellationDomainOriginKHR = TessellationDomainOrigin;
4778 
to_string(TessellationDomainOrigin value)4779   VULKAN_HPP_INLINE std::string to_string( TessellationDomainOrigin value )
4780   {
4781     switch ( value )
4782     {
4783       case TessellationDomainOrigin::eUpperLeft: return "UpperLeft";
4784       case TessellationDomainOrigin::eLowerLeft: return "LowerLeft";
4785       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4786     }
4787   }
4788 
4789   enum class SamplerYcbcrModelConversion
4790   {
4791     eRgbIdentity   = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
4792     eYcbcrIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
4793     eYcbcr709      = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
4794     eYcbcr601      = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
4795     eYcbcr2020     = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020
4796   };
4797   using SamplerYcbcrModelConversionKHR = SamplerYcbcrModelConversion;
4798 
to_string(SamplerYcbcrModelConversion value)4799   VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrModelConversion value )
4800   {
4801     switch ( value )
4802     {
4803       case SamplerYcbcrModelConversion::eRgbIdentity: return "RgbIdentity";
4804       case SamplerYcbcrModelConversion::eYcbcrIdentity: return "YcbcrIdentity";
4805       case SamplerYcbcrModelConversion::eYcbcr709: return "Ycbcr709";
4806       case SamplerYcbcrModelConversion::eYcbcr601: return "Ycbcr601";
4807       case SamplerYcbcrModelConversion::eYcbcr2020: return "Ycbcr2020";
4808       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4809     }
4810   }
4811 
4812   enum class SamplerYcbcrRange
4813   {
4814     eItuFull   = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
4815     eItuNarrow = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW
4816   };
4817   using SamplerYcbcrRangeKHR = SamplerYcbcrRange;
4818 
to_string(SamplerYcbcrRange value)4819   VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrRange value )
4820   {
4821     switch ( value )
4822     {
4823       case SamplerYcbcrRange::eItuFull: return "ItuFull";
4824       case SamplerYcbcrRange::eItuNarrow: return "ItuNarrow";
4825       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4826     }
4827   }
4828 
4829   enum class ChromaLocation
4830   {
4831     eCositedEven = VK_CHROMA_LOCATION_COSITED_EVEN,
4832     eMidpoint    = VK_CHROMA_LOCATION_MIDPOINT
4833   };
4834   using ChromaLocationKHR = ChromaLocation;
4835 
to_string(ChromaLocation value)4836   VULKAN_HPP_INLINE std::string to_string( ChromaLocation value )
4837   {
4838     switch ( value )
4839     {
4840       case ChromaLocation::eCositedEven: return "CositedEven";
4841       case ChromaLocation::eMidpoint: return "Midpoint";
4842       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4843     }
4844   }
4845 
4846   enum class DescriptorUpdateTemplateType
4847   {
4848     eDescriptorSet      = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
4849     ePushDescriptorsKHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
4850   };
4851   using DescriptorUpdateTemplateTypeKHR = DescriptorUpdateTemplateType;
4852 
to_string(DescriptorUpdateTemplateType value)4853   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateType value )
4854   {
4855     switch ( value )
4856     {
4857       case DescriptorUpdateTemplateType::eDescriptorSet: return "DescriptorSet";
4858       case DescriptorUpdateTemplateType::ePushDescriptorsKHR: return "PushDescriptorsKHR";
4859       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4860     }
4861   }
4862 
4863   enum class ExternalMemoryHandleTypeFlagBits : VkExternalMemoryHandleTypeFlags
4864   {
4865     eOpaqueFd        = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
4866     eOpaqueWin32     = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
4867     eOpaqueWin32Kmt  = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
4868     eD3D11Texture    = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
4869     eD3D11TextureKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
4870     eD3D12Heap       = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
4871     eD3D12Resource   = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
4872     eDmaBufEXT       = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,
4873 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
4874     eAndroidHardwareBufferANDROID = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,
4875 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
4876     eHostAllocationEXT          = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,
4877     eHostMappedForeignMemoryEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT,
4878 #if defined( VK_USE_PLATFORM_FUCHSIA )
4879     eZirconVmoFUCHSIA = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA,
4880 #endif /*VK_USE_PLATFORM_FUCHSIA*/
4881     eRdmaAddressNV = VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV
4882   };
4883   using ExternalMemoryHandleTypeFlagBitsKHR = ExternalMemoryHandleTypeFlagBits;
4884 
to_string(ExternalMemoryHandleTypeFlagBits value)4885   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBits value )
4886   {
4887     switch ( value )
4888     {
4889       case ExternalMemoryHandleTypeFlagBits::eOpaqueFd: return "OpaqueFd";
4890       case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32: return "OpaqueWin32";
4891       case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt: return "OpaqueWin32Kmt";
4892       case ExternalMemoryHandleTypeFlagBits::eD3D11Texture: return "D3D11Texture";
4893       case ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt: return "D3D11TextureKmt";
4894       case ExternalMemoryHandleTypeFlagBits::eD3D12Heap: return "D3D12Heap";
4895       case ExternalMemoryHandleTypeFlagBits::eD3D12Resource: return "D3D12Resource";
4896       case ExternalMemoryHandleTypeFlagBits::eDmaBufEXT: return "DmaBufEXT";
4897 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
4898       case ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID: return "AndroidHardwareBufferANDROID";
4899 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
4900       case ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT: return "HostAllocationEXT";
4901       case ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT: return "HostMappedForeignMemoryEXT";
4902 #if defined( VK_USE_PLATFORM_FUCHSIA )
4903       case ExternalMemoryHandleTypeFlagBits::eZirconVmoFUCHSIA: return "ZirconVmoFUCHSIA";
4904 #endif /*VK_USE_PLATFORM_FUCHSIA*/
4905       case ExternalMemoryHandleTypeFlagBits::eRdmaAddressNV: return "RdmaAddressNV";
4906       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4907     }
4908   }
4909 
4910   enum class ExternalMemoryFeatureFlagBits : VkExternalMemoryFeatureFlags
4911   {
4912     eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
4913     eExportable    = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
4914     eImportable    = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT
4915   };
4916   using ExternalMemoryFeatureFlagBitsKHR = ExternalMemoryFeatureFlagBits;
4917 
to_string(ExternalMemoryFeatureFlagBits value)4918   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBits value )
4919   {
4920     switch ( value )
4921     {
4922       case ExternalMemoryFeatureFlagBits::eDedicatedOnly: return "DedicatedOnly";
4923       case ExternalMemoryFeatureFlagBits::eExportable: return "Exportable";
4924       case ExternalMemoryFeatureFlagBits::eImportable: return "Importable";
4925       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4926     }
4927   }
4928 
4929   enum class ExternalFenceHandleTypeFlagBits : VkExternalFenceHandleTypeFlags
4930   {
4931     eOpaqueFd       = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
4932     eOpaqueWin32    = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
4933     eOpaqueWin32Kmt = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
4934     eSyncFd         = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT
4935   };
4936   using ExternalFenceHandleTypeFlagBitsKHR = ExternalFenceHandleTypeFlagBits;
4937 
to_string(ExternalFenceHandleTypeFlagBits value)4938   VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlagBits value )
4939   {
4940     switch ( value )
4941     {
4942       case ExternalFenceHandleTypeFlagBits::eOpaqueFd: return "OpaqueFd";
4943       case ExternalFenceHandleTypeFlagBits::eOpaqueWin32: return "OpaqueWin32";
4944       case ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt: return "OpaqueWin32Kmt";
4945       case ExternalFenceHandleTypeFlagBits::eSyncFd: return "SyncFd";
4946       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4947     }
4948   }
4949 
4950   enum class ExternalFenceFeatureFlagBits : VkExternalFenceFeatureFlags
4951   {
4952     eExportable = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
4953     eImportable = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT
4954   };
4955   using ExternalFenceFeatureFlagBitsKHR = ExternalFenceFeatureFlagBits;
4956 
to_string(ExternalFenceFeatureFlagBits value)4957   VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlagBits value )
4958   {
4959     switch ( value )
4960     {
4961       case ExternalFenceFeatureFlagBits::eExportable: return "Exportable";
4962       case ExternalFenceFeatureFlagBits::eImportable: return "Importable";
4963       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4964     }
4965   }
4966 
4967   enum class FenceImportFlagBits : VkFenceImportFlags
4968   {
4969     eTemporary = VK_FENCE_IMPORT_TEMPORARY_BIT
4970   };
4971   using FenceImportFlagBitsKHR = FenceImportFlagBits;
4972 
to_string(FenceImportFlagBits value)4973   VULKAN_HPP_INLINE std::string to_string( FenceImportFlagBits value )
4974   {
4975     switch ( value )
4976     {
4977       case FenceImportFlagBits::eTemporary: return "Temporary";
4978       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4979     }
4980   }
4981 
4982   enum class SemaphoreImportFlagBits : VkSemaphoreImportFlags
4983   {
4984     eTemporary = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT
4985   };
4986   using SemaphoreImportFlagBitsKHR = SemaphoreImportFlagBits;
4987 
to_string(SemaphoreImportFlagBits value)4988   VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlagBits value )
4989   {
4990     switch ( value )
4991     {
4992       case SemaphoreImportFlagBits::eTemporary: return "Temporary";
4993       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
4994     }
4995   }
4996 
4997   enum class ExternalSemaphoreHandleTypeFlagBits : VkExternalSemaphoreHandleTypeFlags
4998   {
4999     eOpaqueFd       = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
5000     eOpaqueWin32    = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5001     eOpaqueWin32Kmt = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5002     eD3D12Fence     = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5003     eSyncFd         = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
5004 #if defined( VK_USE_PLATFORM_FUCHSIA )
5005     eZirconEventFUCHSIA = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA,
5006 #endif /*VK_USE_PLATFORM_FUCHSIA*/
5007     eD3D11Fence = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT
5008   };
5009   using ExternalSemaphoreHandleTypeFlagBitsKHR = ExternalSemaphoreHandleTypeFlagBits;
5010 
to_string(ExternalSemaphoreHandleTypeFlagBits value)5011   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlagBits value )
5012   {
5013     switch ( value )
5014     {
5015       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd: return "OpaqueFd";
5016       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32: return "OpaqueWin32";
5017       case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt: return "OpaqueWin32Kmt";
5018       case ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence: return "D3D12Fence";
5019       case ExternalSemaphoreHandleTypeFlagBits::eSyncFd: return "SyncFd";
5020 #if defined( VK_USE_PLATFORM_FUCHSIA )
5021       case ExternalSemaphoreHandleTypeFlagBits::eZirconEventFUCHSIA: return "ZirconEventFUCHSIA";
5022 #endif /*VK_USE_PLATFORM_FUCHSIA*/
5023       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5024     }
5025   }
5026 
5027   enum class ExternalSemaphoreFeatureFlagBits : VkExternalSemaphoreFeatureFlags
5028   {
5029     eExportable = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
5030     eImportable = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT
5031   };
5032   using ExternalSemaphoreFeatureFlagBitsKHR = ExternalSemaphoreFeatureFlagBits;
5033 
to_string(ExternalSemaphoreFeatureFlagBits value)5034   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlagBits value )
5035   {
5036     switch ( value )
5037     {
5038       case ExternalSemaphoreFeatureFlagBits::eExportable: return "Exportable";
5039       case ExternalSemaphoreFeatureFlagBits::eImportable: return "Importable";
5040       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5041     }
5042   }
5043 
5044   enum class CommandPoolTrimFlagBits : VkCommandPoolTrimFlags
5045   {
5046   };
5047 
to_string(CommandPoolTrimFlagBits)5048   VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlagBits )
5049   {
5050     return "(void)";
5051   }
5052 
5053   enum class DescriptorUpdateTemplateCreateFlagBits : VkDescriptorUpdateTemplateCreateFlags
5054   {
5055   };
5056 
to_string(DescriptorUpdateTemplateCreateFlagBits)5057   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlagBits )
5058   {
5059     return "(void)";
5060   }
5061 
5062   //=== VK_VERSION_1_2 ===
5063 
5064   enum class DriverId
5065   {
5066     eAmdProprietary          = VK_DRIVER_ID_AMD_PROPRIETARY,
5067     eAmdOpenSource           = VK_DRIVER_ID_AMD_OPEN_SOURCE,
5068     eMesaRadv                = VK_DRIVER_ID_MESA_RADV,
5069     eNvidiaProprietary       = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
5070     eIntelProprietaryWindows = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
5071     eIntelOpenSourceMESA     = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
5072     eImaginationProprietary  = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
5073     eQualcommProprietary     = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
5074     eArmProprietary          = VK_DRIVER_ID_ARM_PROPRIETARY,
5075     eGoogleSwiftshader       = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
5076     eGgpProprietary          = VK_DRIVER_ID_GGP_PROPRIETARY,
5077     eBroadcomProprietary     = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
5078     eMesaLlvmpipe            = VK_DRIVER_ID_MESA_LLVMPIPE,
5079     eMoltenvk                = VK_DRIVER_ID_MOLTENVK,
5080     eCoreaviProprietary      = VK_DRIVER_ID_COREAVI_PROPRIETARY,
5081     eJuiceProprietary        = VK_DRIVER_ID_JUICE_PROPRIETARY
5082   };
5083   using DriverIdKHR = DriverId;
5084 
to_string(DriverId value)5085   VULKAN_HPP_INLINE std::string to_string( DriverId value )
5086   {
5087     switch ( value )
5088     {
5089       case DriverId::eAmdProprietary: return "AmdProprietary";
5090       case DriverId::eAmdOpenSource: return "AmdOpenSource";
5091       case DriverId::eMesaRadv: return "MesaRadv";
5092       case DriverId::eNvidiaProprietary: return "NvidiaProprietary";
5093       case DriverId::eIntelProprietaryWindows: return "IntelProprietaryWindows";
5094       case DriverId::eIntelOpenSourceMESA: return "IntelOpenSourceMESA";
5095       case DriverId::eImaginationProprietary: return "ImaginationProprietary";
5096       case DriverId::eQualcommProprietary: return "QualcommProprietary";
5097       case DriverId::eArmProprietary: return "ArmProprietary";
5098       case DriverId::eGoogleSwiftshader: return "GoogleSwiftshader";
5099       case DriverId::eGgpProprietary: return "GgpProprietary";
5100       case DriverId::eBroadcomProprietary: return "BroadcomProprietary";
5101       case DriverId::eMesaLlvmpipe: return "MesaLlvmpipe";
5102       case DriverId::eMoltenvk: return "Moltenvk";
5103       case DriverId::eCoreaviProprietary: return "CoreaviProprietary";
5104       case DriverId::eJuiceProprietary: return "JuiceProprietary";
5105       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5106     }
5107   }
5108 
5109   enum class ShaderFloatControlsIndependence
5110   {
5111     e32BitOnly = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
5112     eAll       = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
5113     eNone      = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
5114   };
5115   using ShaderFloatControlsIndependenceKHR = ShaderFloatControlsIndependence;
5116 
to_string(ShaderFloatControlsIndependence value)5117   VULKAN_HPP_INLINE std::string to_string( ShaderFloatControlsIndependence value )
5118   {
5119     switch ( value )
5120     {
5121       case ShaderFloatControlsIndependence::e32BitOnly: return "32BitOnly";
5122       case ShaderFloatControlsIndependence::eAll: return "All";
5123       case ShaderFloatControlsIndependence::eNone: return "None";
5124       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5125     }
5126   }
5127 
5128   enum class DescriptorBindingFlagBits : VkDescriptorBindingFlags
5129   {
5130     eUpdateAfterBind          = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
5131     eUpdateUnusedWhilePending = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
5132     ePartiallyBound           = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
5133     eVariableDescriptorCount  = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
5134   };
5135   using DescriptorBindingFlagBitsEXT = DescriptorBindingFlagBits;
5136 
to_string(DescriptorBindingFlagBits value)5137   VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlagBits value )
5138   {
5139     switch ( value )
5140     {
5141       case DescriptorBindingFlagBits::eUpdateAfterBind: return "UpdateAfterBind";
5142       case DescriptorBindingFlagBits::eUpdateUnusedWhilePending: return "UpdateUnusedWhilePending";
5143       case DescriptorBindingFlagBits::ePartiallyBound: return "PartiallyBound";
5144       case DescriptorBindingFlagBits::eVariableDescriptorCount: return "VariableDescriptorCount";
5145       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5146     }
5147   }
5148 
5149   enum class ResolveModeFlagBits : VkResolveModeFlags
5150   {
5151     eNone       = VK_RESOLVE_MODE_NONE,
5152     eSampleZero = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
5153     eAverage    = VK_RESOLVE_MODE_AVERAGE_BIT,
5154     eMin        = VK_RESOLVE_MODE_MIN_BIT,
5155     eMax        = VK_RESOLVE_MODE_MAX_BIT
5156   };
5157   using ResolveModeFlagBitsKHR = ResolveModeFlagBits;
5158 
to_string(ResolveModeFlagBits value)5159   VULKAN_HPP_INLINE std::string to_string( ResolveModeFlagBits value )
5160   {
5161     switch ( value )
5162     {
5163       case ResolveModeFlagBits::eNone: return "None";
5164       case ResolveModeFlagBits::eSampleZero: return "SampleZero";
5165       case ResolveModeFlagBits::eAverage: return "Average";
5166       case ResolveModeFlagBits::eMin: return "Min";
5167       case ResolveModeFlagBits::eMax: return "Max";
5168       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5169     }
5170   }
5171 
5172   enum class SamplerReductionMode
5173   {
5174     eWeightedAverage = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
5175     eMin             = VK_SAMPLER_REDUCTION_MODE_MIN,
5176     eMax             = VK_SAMPLER_REDUCTION_MODE_MAX
5177   };
5178   using SamplerReductionModeEXT = SamplerReductionMode;
5179 
to_string(SamplerReductionMode value)5180   VULKAN_HPP_INLINE std::string to_string( SamplerReductionMode value )
5181   {
5182     switch ( value )
5183     {
5184       case SamplerReductionMode::eWeightedAverage: return "WeightedAverage";
5185       case SamplerReductionMode::eMin: return "Min";
5186       case SamplerReductionMode::eMax: return "Max";
5187       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5188     }
5189   }
5190 
5191   enum class SemaphoreType
5192   {
5193     eBinary   = VK_SEMAPHORE_TYPE_BINARY,
5194     eTimeline = VK_SEMAPHORE_TYPE_TIMELINE
5195   };
5196   using SemaphoreTypeKHR = SemaphoreType;
5197 
to_string(SemaphoreType value)5198   VULKAN_HPP_INLINE std::string to_string( SemaphoreType value )
5199   {
5200     switch ( value )
5201     {
5202       case SemaphoreType::eBinary: return "Binary";
5203       case SemaphoreType::eTimeline: return "Timeline";
5204       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5205     }
5206   }
5207 
5208   enum class SemaphoreWaitFlagBits : VkSemaphoreWaitFlags
5209   {
5210     eAny = VK_SEMAPHORE_WAIT_ANY_BIT
5211   };
5212   using SemaphoreWaitFlagBitsKHR = SemaphoreWaitFlagBits;
5213 
to_string(SemaphoreWaitFlagBits value)5214   VULKAN_HPP_INLINE std::string to_string( SemaphoreWaitFlagBits value )
5215   {
5216     switch ( value )
5217     {
5218       case SemaphoreWaitFlagBits::eAny: return "Any";
5219       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5220     }
5221   }
5222 
5223   //=== VK_KHR_surface ===
5224 
5225   enum class SurfaceTransformFlagBitsKHR : VkSurfaceTransformFlagsKHR
5226   {
5227     eIdentity                  = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,
5228     eRotate90                  = VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,
5229     eRotate180                 = VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,
5230     eRotate270                 = VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,
5231     eHorizontalMirror          = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,
5232     eHorizontalMirrorRotate90  = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,
5233     eHorizontalMirrorRotate180 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR,
5234     eHorizontalMirrorRotate270 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR,
5235     eInherit                   = VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR
5236   };
5237 
to_string(SurfaceTransformFlagBitsKHR value)5238   VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagBitsKHR value )
5239   {
5240     switch ( value )
5241     {
5242       case SurfaceTransformFlagBitsKHR::eIdentity: return "Identity";
5243       case SurfaceTransformFlagBitsKHR::eRotate90: return "Rotate90";
5244       case SurfaceTransformFlagBitsKHR::eRotate180: return "Rotate180";
5245       case SurfaceTransformFlagBitsKHR::eRotate270: return "Rotate270";
5246       case SurfaceTransformFlagBitsKHR::eHorizontalMirror: return "HorizontalMirror";
5247       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90: return "HorizontalMirrorRotate90";
5248       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180: return "HorizontalMirrorRotate180";
5249       case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270: return "HorizontalMirrorRotate270";
5250       case SurfaceTransformFlagBitsKHR::eInherit: return "Inherit";
5251       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5252     }
5253   }
5254 
5255   enum class PresentModeKHR
5256   {
5257     eImmediate               = VK_PRESENT_MODE_IMMEDIATE_KHR,
5258     eMailbox                 = VK_PRESENT_MODE_MAILBOX_KHR,
5259     eFifo                    = VK_PRESENT_MODE_FIFO_KHR,
5260     eFifoRelaxed             = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
5261     eSharedDemandRefresh     = VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR,
5262     eSharedContinuousRefresh = VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR
5263   };
5264 
to_string(PresentModeKHR value)5265   VULKAN_HPP_INLINE std::string to_string( PresentModeKHR value )
5266   {
5267     switch ( value )
5268     {
5269       case PresentModeKHR::eImmediate: return "Immediate";
5270       case PresentModeKHR::eMailbox: return "Mailbox";
5271       case PresentModeKHR::eFifo: return "Fifo";
5272       case PresentModeKHR::eFifoRelaxed: return "FifoRelaxed";
5273       case PresentModeKHR::eSharedDemandRefresh: return "SharedDemandRefresh";
5274       case PresentModeKHR::eSharedContinuousRefresh: return "SharedContinuousRefresh";
5275       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5276     }
5277   }
5278 
5279   enum class ColorSpaceKHR
5280   {
5281     eSrgbNonlinear             = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
5282     eDisplayP3NonlinearEXT     = VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT,
5283     eExtendedSrgbLinearEXT     = VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT,
5284     eDisplayP3LinearEXT        = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
5285     eDciP3NonlinearEXT         = VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT,
5286     eBt709LinearEXT            = VK_COLOR_SPACE_BT709_LINEAR_EXT,
5287     eBt709NonlinearEXT         = VK_COLOR_SPACE_BT709_NONLINEAR_EXT,
5288     eBt2020LinearEXT           = VK_COLOR_SPACE_BT2020_LINEAR_EXT,
5289     eHdr10St2084EXT            = VK_COLOR_SPACE_HDR10_ST2084_EXT,
5290     eDolbyvisionEXT            = VK_COLOR_SPACE_DOLBYVISION_EXT,
5291     eHdr10HlgEXT               = VK_COLOR_SPACE_HDR10_HLG_EXT,
5292     eAdobergbLinearEXT         = VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT,
5293     eAdobergbNonlinearEXT      = VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT,
5294     ePassThroughEXT            = VK_COLOR_SPACE_PASS_THROUGH_EXT,
5295     eExtendedSrgbNonlinearEXT  = VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT,
5296     eDisplayNativeAMD          = VK_COLOR_SPACE_DISPLAY_NATIVE_AMD,
5297     eVkColorspaceSrgbNonlinear = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
5298     eDciP3LinearEXT            = VK_COLOR_SPACE_DCI_P3_LINEAR_EXT
5299   };
5300 
to_string(ColorSpaceKHR value)5301   VULKAN_HPP_INLINE std::string to_string( ColorSpaceKHR value )
5302   {
5303     switch ( value )
5304     {
5305       case ColorSpaceKHR::eSrgbNonlinear: return "SrgbNonlinear";
5306       case ColorSpaceKHR::eDisplayP3NonlinearEXT: return "DisplayP3NonlinearEXT";
5307       case ColorSpaceKHR::eExtendedSrgbLinearEXT: return "ExtendedSrgbLinearEXT";
5308       case ColorSpaceKHR::eDisplayP3LinearEXT: return "DisplayP3LinearEXT";
5309       case ColorSpaceKHR::eDciP3NonlinearEXT: return "DciP3NonlinearEXT";
5310       case ColorSpaceKHR::eBt709LinearEXT: return "Bt709LinearEXT";
5311       case ColorSpaceKHR::eBt709NonlinearEXT: return "Bt709NonlinearEXT";
5312       case ColorSpaceKHR::eBt2020LinearEXT: return "Bt2020LinearEXT";
5313       case ColorSpaceKHR::eHdr10St2084EXT: return "Hdr10St2084EXT";
5314       case ColorSpaceKHR::eDolbyvisionEXT: return "DolbyvisionEXT";
5315       case ColorSpaceKHR::eHdr10HlgEXT: return "Hdr10HlgEXT";
5316       case ColorSpaceKHR::eAdobergbLinearEXT: return "AdobergbLinearEXT";
5317       case ColorSpaceKHR::eAdobergbNonlinearEXT: return "AdobergbNonlinearEXT";
5318       case ColorSpaceKHR::ePassThroughEXT: return "PassThroughEXT";
5319       case ColorSpaceKHR::eExtendedSrgbNonlinearEXT: return "ExtendedSrgbNonlinearEXT";
5320       case ColorSpaceKHR::eDisplayNativeAMD: return "DisplayNativeAMD";
5321       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5322     }
5323   }
5324 
5325   enum class CompositeAlphaFlagBitsKHR : VkCompositeAlphaFlagsKHR
5326   {
5327     eOpaque         = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,
5328     ePreMultiplied  = VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,
5329     ePostMultiplied = VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,
5330     eInherit        = VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR
5331   };
5332 
to_string(CompositeAlphaFlagBitsKHR value)5333   VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagBitsKHR value )
5334   {
5335     switch ( value )
5336     {
5337       case CompositeAlphaFlagBitsKHR::eOpaque: return "Opaque";
5338       case CompositeAlphaFlagBitsKHR::ePreMultiplied: return "PreMultiplied";
5339       case CompositeAlphaFlagBitsKHR::ePostMultiplied: return "PostMultiplied";
5340       case CompositeAlphaFlagBitsKHR::eInherit: return "Inherit";
5341       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5342     }
5343   }
5344 
5345   //=== VK_KHR_swapchain ===
5346 
5347   enum class SwapchainCreateFlagBitsKHR : VkSwapchainCreateFlagsKHR
5348   {
5349     eSplitInstanceBindRegions = VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
5350     eProtected                = VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,
5351     eMutableFormat            = VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR
5352   };
5353 
to_string(SwapchainCreateFlagBitsKHR value)5354   VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagBitsKHR value )
5355   {
5356     switch ( value )
5357     {
5358       case SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions: return "SplitInstanceBindRegions";
5359       case SwapchainCreateFlagBitsKHR::eProtected: return "Protected";
5360       case SwapchainCreateFlagBitsKHR::eMutableFormat: return "MutableFormat";
5361       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5362     }
5363   }
5364 
5365   enum class DeviceGroupPresentModeFlagBitsKHR : VkDeviceGroupPresentModeFlagsKHR
5366   {
5367     eLocal            = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,
5368     eRemote           = VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,
5369     eSum              = VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,
5370     eLocalMultiDevice = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR
5371   };
5372 
to_string(DeviceGroupPresentModeFlagBitsKHR value)5373   VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagBitsKHR value )
5374   {
5375     switch ( value )
5376     {
5377       case DeviceGroupPresentModeFlagBitsKHR::eLocal: return "Local";
5378       case DeviceGroupPresentModeFlagBitsKHR::eRemote: return "Remote";
5379       case DeviceGroupPresentModeFlagBitsKHR::eSum: return "Sum";
5380       case DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice: return "LocalMultiDevice";
5381       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5382     }
5383   }
5384 
5385   //=== VK_KHR_display ===
5386 
5387   enum class DisplayPlaneAlphaFlagBitsKHR : VkDisplayPlaneAlphaFlagsKHR
5388   {
5389     eOpaque                = VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,
5390     eGlobal                = VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,
5391     ePerPixel              = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,
5392     ePerPixelPremultiplied = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR
5393   };
5394 
to_string(DisplayPlaneAlphaFlagBitsKHR value)5395   VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagBitsKHR value )
5396   {
5397     switch ( value )
5398     {
5399       case DisplayPlaneAlphaFlagBitsKHR::eOpaque: return "Opaque";
5400       case DisplayPlaneAlphaFlagBitsKHR::eGlobal: return "Global";
5401       case DisplayPlaneAlphaFlagBitsKHR::ePerPixel: return "PerPixel";
5402       case DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied: return "PerPixelPremultiplied";
5403       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5404     }
5405   }
5406 
5407   enum class DisplayModeCreateFlagBitsKHR : VkDisplayModeCreateFlagsKHR
5408   {
5409   };
5410 
to_string(DisplayModeCreateFlagBitsKHR)5411   VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagBitsKHR )
5412   {
5413     return "(void)";
5414   }
5415 
5416   enum class DisplaySurfaceCreateFlagBitsKHR : VkDisplaySurfaceCreateFlagsKHR
5417   {
5418   };
5419 
to_string(DisplaySurfaceCreateFlagBitsKHR)5420   VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagBitsKHR )
5421   {
5422     return "(void)";
5423   }
5424 
5425 #if defined( VK_USE_PLATFORM_XLIB_KHR )
5426   //=== VK_KHR_xlib_surface ===
5427 
5428   enum class XlibSurfaceCreateFlagBitsKHR : VkXlibSurfaceCreateFlagsKHR
5429   {
5430   };
5431 
to_string(XlibSurfaceCreateFlagBitsKHR)5432   VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagBitsKHR )
5433   {
5434     return "(void)";
5435   }
5436 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
5437 
5438 #if defined( VK_USE_PLATFORM_XCB_KHR )
5439   //=== VK_KHR_xcb_surface ===
5440 
5441   enum class XcbSurfaceCreateFlagBitsKHR : VkXcbSurfaceCreateFlagsKHR
5442   {
5443   };
5444 
to_string(XcbSurfaceCreateFlagBitsKHR)5445   VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagBitsKHR )
5446   {
5447     return "(void)";
5448   }
5449 #endif /*VK_USE_PLATFORM_XCB_KHR*/
5450 
5451 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
5452   //=== VK_KHR_wayland_surface ===
5453 
5454   enum class WaylandSurfaceCreateFlagBitsKHR : VkWaylandSurfaceCreateFlagsKHR
5455   {
5456   };
5457 
to_string(WaylandSurfaceCreateFlagBitsKHR)5458   VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagBitsKHR )
5459   {
5460     return "(void)";
5461   }
5462 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
5463 
5464 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
5465   //=== VK_KHR_android_surface ===
5466 
5467   enum class AndroidSurfaceCreateFlagBitsKHR : VkAndroidSurfaceCreateFlagsKHR
5468   {
5469   };
5470 
to_string(AndroidSurfaceCreateFlagBitsKHR)5471   VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagBitsKHR )
5472   {
5473     return "(void)";
5474   }
5475 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
5476 
5477 #if defined( VK_USE_PLATFORM_WIN32_KHR )
5478   //=== VK_KHR_win32_surface ===
5479 
5480   enum class Win32SurfaceCreateFlagBitsKHR : VkWin32SurfaceCreateFlagsKHR
5481   {
5482   };
5483 
to_string(Win32SurfaceCreateFlagBitsKHR)5484   VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagBitsKHR )
5485   {
5486     return "(void)";
5487   }
5488 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
5489 
5490   //=== VK_EXT_debug_report ===
5491 
5492   enum class DebugReportFlagBitsEXT : VkDebugReportFlagsEXT
5493   {
5494     eInformation        = VK_DEBUG_REPORT_INFORMATION_BIT_EXT,
5495     eWarning            = VK_DEBUG_REPORT_WARNING_BIT_EXT,
5496     ePerformanceWarning = VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,
5497     eError              = VK_DEBUG_REPORT_ERROR_BIT_EXT,
5498     eDebug              = VK_DEBUG_REPORT_DEBUG_BIT_EXT
5499   };
5500 
to_string(DebugReportFlagBitsEXT value)5501   VULKAN_HPP_INLINE std::string to_string( DebugReportFlagBitsEXT value )
5502   {
5503     switch ( value )
5504     {
5505       case DebugReportFlagBitsEXT::eInformation: return "Information";
5506       case DebugReportFlagBitsEXT::eWarning: return "Warning";
5507       case DebugReportFlagBitsEXT::ePerformanceWarning: return "PerformanceWarning";
5508       case DebugReportFlagBitsEXT::eError: return "Error";
5509       case DebugReportFlagBitsEXT::eDebug: return "Debug";
5510       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5511     }
5512   }
5513 
5514   enum class DebugReportObjectTypeEXT
5515   {
5516     eUnknown                     = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
5517     eInstance                    = VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
5518     ePhysicalDevice              = VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
5519     eDevice                      = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
5520     eQueue                       = VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT,
5521     eSemaphore                   = VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT,
5522     eCommandBuffer               = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
5523     eFence                       = VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT,
5524     eDeviceMemory                = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT,
5525     eBuffer                      = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT,
5526     eImage                       = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,
5527     eEvent                       = VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT,
5528     eQueryPool                   = VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT,
5529     eBufferView                  = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT,
5530     eImageView                   = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT,
5531     eShaderModule                = VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT,
5532     ePipelineCache               = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT,
5533     ePipelineLayout              = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT,
5534     eRenderPass                  = VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT,
5535     ePipeline                    = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT,
5536     eDescriptorSetLayout         = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT,
5537     eSampler                     = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT,
5538     eDescriptorPool              = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT,
5539     eDescriptorSet               = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT,
5540     eFramebuffer                 = VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT,
5541     eCommandPool                 = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT,
5542     eSurfaceKHR                  = VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT,
5543     eSwapchainKHR                = VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT,
5544     eDebugReportCallbackEXT      = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
5545     eDisplayKHR                  = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT,
5546     eDisplayModeKHR              = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT,
5547     eValidationCacheEXT          = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
5548     eSamplerYcbcrConversion      = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
5549     eDescriptorUpdateTemplate    = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
5550     eCuModuleNVX                 = VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT,
5551     eCuFunctionNVX               = VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT,
5552     eAccelerationStructureKHR    = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT,
5553     eAccelerationStructureNV     = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT,
5554     eDebugReport                 = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT,
5555     eDescriptorUpdateTemplateKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT,
5556     eSamplerYcbcrConversionKHR   = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT,
5557     eValidationCache             = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT
5558   };
5559 
to_string(DebugReportObjectTypeEXT value)5560   VULKAN_HPP_INLINE std::string to_string( DebugReportObjectTypeEXT value )
5561   {
5562     switch ( value )
5563     {
5564       case DebugReportObjectTypeEXT::eUnknown: return "Unknown";
5565       case DebugReportObjectTypeEXT::eInstance: return "Instance";
5566       case DebugReportObjectTypeEXT::ePhysicalDevice: return "PhysicalDevice";
5567       case DebugReportObjectTypeEXT::eDevice: return "Device";
5568       case DebugReportObjectTypeEXT::eQueue: return "Queue";
5569       case DebugReportObjectTypeEXT::eSemaphore: return "Semaphore";
5570       case DebugReportObjectTypeEXT::eCommandBuffer: return "CommandBuffer";
5571       case DebugReportObjectTypeEXT::eFence: return "Fence";
5572       case DebugReportObjectTypeEXT::eDeviceMemory: return "DeviceMemory";
5573       case DebugReportObjectTypeEXT::eBuffer: return "Buffer";
5574       case DebugReportObjectTypeEXT::eImage: return "Image";
5575       case DebugReportObjectTypeEXT::eEvent: return "Event";
5576       case DebugReportObjectTypeEXT::eQueryPool: return "QueryPool";
5577       case DebugReportObjectTypeEXT::eBufferView: return "BufferView";
5578       case DebugReportObjectTypeEXT::eImageView: return "ImageView";
5579       case DebugReportObjectTypeEXT::eShaderModule: return "ShaderModule";
5580       case DebugReportObjectTypeEXT::ePipelineCache: return "PipelineCache";
5581       case DebugReportObjectTypeEXT::ePipelineLayout: return "PipelineLayout";
5582       case DebugReportObjectTypeEXT::eRenderPass: return "RenderPass";
5583       case DebugReportObjectTypeEXT::ePipeline: return "Pipeline";
5584       case DebugReportObjectTypeEXT::eDescriptorSetLayout: return "DescriptorSetLayout";
5585       case DebugReportObjectTypeEXT::eSampler: return "Sampler";
5586       case DebugReportObjectTypeEXT::eDescriptorPool: return "DescriptorPool";
5587       case DebugReportObjectTypeEXT::eDescriptorSet: return "DescriptorSet";
5588       case DebugReportObjectTypeEXT::eFramebuffer: return "Framebuffer";
5589       case DebugReportObjectTypeEXT::eCommandPool: return "CommandPool";
5590       case DebugReportObjectTypeEXT::eSurfaceKHR: return "SurfaceKHR";
5591       case DebugReportObjectTypeEXT::eSwapchainKHR: return "SwapchainKHR";
5592       case DebugReportObjectTypeEXT::eDebugReportCallbackEXT: return "DebugReportCallbackEXT";
5593       case DebugReportObjectTypeEXT::eDisplayKHR: return "DisplayKHR";
5594       case DebugReportObjectTypeEXT::eDisplayModeKHR: return "DisplayModeKHR";
5595       case DebugReportObjectTypeEXT::eValidationCacheEXT: return "ValidationCacheEXT";
5596       case DebugReportObjectTypeEXT::eSamplerYcbcrConversion: return "SamplerYcbcrConversion";
5597       case DebugReportObjectTypeEXT::eDescriptorUpdateTemplate: return "DescriptorUpdateTemplate";
5598       case DebugReportObjectTypeEXT::eCuModuleNVX: return "CuModuleNVX";
5599       case DebugReportObjectTypeEXT::eCuFunctionNVX: return "CuFunctionNVX";
5600       case DebugReportObjectTypeEXT::eAccelerationStructureKHR: return "AccelerationStructureKHR";
5601       case DebugReportObjectTypeEXT::eAccelerationStructureNV: return "AccelerationStructureNV";
5602       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5603     }
5604   }
5605 
5606   //=== VK_AMD_rasterization_order ===
5607 
5608   enum class RasterizationOrderAMD
5609   {
5610     eStrict  = VK_RASTERIZATION_ORDER_STRICT_AMD,
5611     eRelaxed = VK_RASTERIZATION_ORDER_RELAXED_AMD
5612   };
5613 
to_string(RasterizationOrderAMD value)5614   VULKAN_HPP_INLINE std::string to_string( RasterizationOrderAMD value )
5615   {
5616     switch ( value )
5617     {
5618       case RasterizationOrderAMD::eStrict: return "Strict";
5619       case RasterizationOrderAMD::eRelaxed: return "Relaxed";
5620       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5621     }
5622   }
5623 
5624 #if defined( VK_ENABLE_BETA_EXTENSIONS )
5625   //=== VK_KHR_video_queue ===
5626 
5627   enum class VideoCodecOperationFlagBitsKHR : VkVideoCodecOperationFlagsKHR
5628   {
5629     eInvalid = VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR,
5630 #  if defined( VK_ENABLE_BETA_EXTENSIONS )
5631     eEncodeH264EXT = VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT,
5632     eDecodeH264EXT = VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT,
5633     eDecodeH265EXT = VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT
5634 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
5635   };
5636 
to_string(VideoCodecOperationFlagBitsKHR value)5637   VULKAN_HPP_INLINE std::string to_string( VideoCodecOperationFlagBitsKHR value )
5638   {
5639     switch ( value )
5640     {
5641       case VideoCodecOperationFlagBitsKHR::eInvalid: return "Invalid";
5642 #  if defined( VK_ENABLE_BETA_EXTENSIONS )
5643       case VideoCodecOperationFlagBitsKHR::eEncodeH264EXT: return "EncodeH264EXT";
5644       case VideoCodecOperationFlagBitsKHR::eDecodeH264EXT: return "DecodeH264EXT";
5645       case VideoCodecOperationFlagBitsKHR::eDecodeH265EXT: return "DecodeH265EXT";
5646 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
5647       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5648     }
5649   }
5650 
5651   enum class VideoChromaSubsamplingFlagBitsKHR : VkVideoChromaSubsamplingFlagsKHR
5652   {
5653     eInvalid    = VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR,
5654     eMonochrome = VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR,
5655     e420        = VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,
5656     e422        = VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR,
5657     e444        = VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR
5658   };
5659 
to_string(VideoChromaSubsamplingFlagBitsKHR value)5660   VULKAN_HPP_INLINE std::string to_string( VideoChromaSubsamplingFlagBitsKHR value )
5661   {
5662     switch ( value )
5663     {
5664       case VideoChromaSubsamplingFlagBitsKHR::eInvalid: return "Invalid";
5665       case VideoChromaSubsamplingFlagBitsKHR::eMonochrome: return "Monochrome";
5666       case VideoChromaSubsamplingFlagBitsKHR::e420: return "420";
5667       case VideoChromaSubsamplingFlagBitsKHR::e422: return "422";
5668       case VideoChromaSubsamplingFlagBitsKHR::e444: return "444";
5669       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5670     }
5671   }
5672 
5673   enum class VideoComponentBitDepthFlagBitsKHR : VkVideoComponentBitDepthFlagsKHR
5674   {
5675     eInvalid = VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR,
5676     e8       = VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR,
5677     e10      = VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR,
5678     e12      = VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR
5679   };
5680 
to_string(VideoComponentBitDepthFlagBitsKHR value)5681   VULKAN_HPP_INLINE std::string to_string( VideoComponentBitDepthFlagBitsKHR value )
5682   {
5683     switch ( value )
5684     {
5685       case VideoComponentBitDepthFlagBitsKHR::eInvalid: return "Invalid";
5686       case VideoComponentBitDepthFlagBitsKHR::e8: return "8";
5687       case VideoComponentBitDepthFlagBitsKHR::e10: return "10";
5688       case VideoComponentBitDepthFlagBitsKHR::e12: return "12";
5689       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5690     }
5691   }
5692 
5693   enum class VideoCapabilitiesFlagBitsKHR : VkVideoCapabilitiesFlagsKHR
5694   {
5695     eProtectedContent        = VK_VIDEO_CAPABILITIES_PROTECTED_CONTENT_BIT_KHR,
5696     eSeparateReferenceImages = VK_VIDEO_CAPABILITIES_SEPARATE_REFERENCE_IMAGES_BIT_KHR
5697   };
5698 
to_string(VideoCapabilitiesFlagBitsKHR value)5699   VULKAN_HPP_INLINE std::string to_string( VideoCapabilitiesFlagBitsKHR value )
5700   {
5701     switch ( value )
5702     {
5703       case VideoCapabilitiesFlagBitsKHR::eProtectedContent: return "ProtectedContent";
5704       case VideoCapabilitiesFlagBitsKHR::eSeparateReferenceImages: return "SeparateReferenceImages";
5705       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5706     }
5707   }
5708 
5709   enum class VideoSessionCreateFlagBitsKHR : VkVideoSessionCreateFlagsKHR
5710   {
5711     eDefault          = VK_VIDEO_SESSION_CREATE_DEFAULT_KHR,
5712     eProtectedContent = VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR
5713   };
5714 
to_string(VideoSessionCreateFlagBitsKHR value)5715   VULKAN_HPP_INLINE std::string to_string( VideoSessionCreateFlagBitsKHR value )
5716   {
5717     switch ( value )
5718     {
5719       case VideoSessionCreateFlagBitsKHR::eDefault: return "Default";
5720       case VideoSessionCreateFlagBitsKHR::eProtectedContent: return "ProtectedContent";
5721       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5722     }
5723   }
5724 
5725   enum class VideoCodingControlFlagBitsKHR : VkVideoCodingControlFlagsKHR
5726   {
5727     eDefault = VK_VIDEO_CODING_CONTROL_DEFAULT_KHR,
5728     eReset   = VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR
5729   };
5730 
to_string(VideoCodingControlFlagBitsKHR value)5731   VULKAN_HPP_INLINE std::string to_string( VideoCodingControlFlagBitsKHR value )
5732   {
5733     switch ( value )
5734     {
5735       case VideoCodingControlFlagBitsKHR::eDefault: return "Default";
5736       case VideoCodingControlFlagBitsKHR::eReset: return "Reset";
5737       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5738     }
5739   }
5740 
5741   enum class VideoCodingQualityPresetFlagBitsKHR : VkVideoCodingQualityPresetFlagsKHR
5742   {
5743     eDefault = VK_VIDEO_CODING_QUALITY_PRESET_DEFAULT_BIT_KHR,
5744     eNormal  = VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR,
5745     ePower   = VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR,
5746     eQuality = VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR
5747   };
5748 
to_string(VideoCodingQualityPresetFlagBitsKHR value)5749   VULKAN_HPP_INLINE std::string to_string( VideoCodingQualityPresetFlagBitsKHR value )
5750   {
5751     switch ( value )
5752     {
5753       case VideoCodingQualityPresetFlagBitsKHR::eDefault: return "Default";
5754       case VideoCodingQualityPresetFlagBitsKHR::eNormal: return "Normal";
5755       case VideoCodingQualityPresetFlagBitsKHR::ePower: return "Power";
5756       case VideoCodingQualityPresetFlagBitsKHR::eQuality: return "Quality";
5757       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5758     }
5759   }
5760 
5761   enum class QueryResultStatusKHR
5762   {
5763     eError    = VK_QUERY_RESULT_STATUS_ERROR_KHR,
5764     eNotReady = VK_QUERY_RESULT_STATUS_NOT_READY_KHR,
5765     eComplete = VK_QUERY_RESULT_STATUS_COMPLETE_KHR
5766   };
5767 
to_string(QueryResultStatusKHR value)5768   VULKAN_HPP_INLINE std::string to_string( QueryResultStatusKHR value )
5769   {
5770     switch ( value )
5771     {
5772       case QueryResultStatusKHR::eError: return "Error";
5773       case QueryResultStatusKHR::eNotReady: return "NotReady";
5774       case QueryResultStatusKHR::eComplete: return "Complete";
5775       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5776     }
5777   }
5778 
5779   enum class VideoBeginCodingFlagBitsKHR : VkVideoBeginCodingFlagsKHR
5780   {
5781   };
5782 
to_string(VideoBeginCodingFlagBitsKHR)5783   VULKAN_HPP_INLINE std::string to_string( VideoBeginCodingFlagBitsKHR )
5784   {
5785     return "(void)";
5786   }
5787 
5788   enum class VideoEndCodingFlagBitsKHR : VkVideoEndCodingFlagsKHR
5789   {
5790   };
5791 
to_string(VideoEndCodingFlagBitsKHR)5792   VULKAN_HPP_INLINE std::string to_string( VideoEndCodingFlagBitsKHR )
5793   {
5794     return "(void)";
5795   }
5796 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
5797 
5798 #if defined( VK_ENABLE_BETA_EXTENSIONS )
5799   //=== VK_KHR_video_decode_queue ===
5800 
5801   enum class VideoDecodeFlagBitsKHR : VkVideoDecodeFlagsKHR
5802   {
5803     eDefault   = VK_VIDEO_DECODE_DEFAULT_KHR,
5804     eReserved0 = VK_VIDEO_DECODE_RESERVED_0_BIT_KHR
5805   };
5806 
to_string(VideoDecodeFlagBitsKHR value)5807   VULKAN_HPP_INLINE std::string to_string( VideoDecodeFlagBitsKHR value )
5808   {
5809     switch ( value )
5810     {
5811       case VideoDecodeFlagBitsKHR::eDefault: return "Default";
5812       case VideoDecodeFlagBitsKHR::eReserved0: return "Reserved0";
5813       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5814     }
5815   }
5816 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
5817 
5818   //=== VK_EXT_transform_feedback ===
5819 
5820   enum class PipelineRasterizationStateStreamCreateFlagBitsEXT : VkPipelineRasterizationStateStreamCreateFlagsEXT
5821   {
5822   };
5823 
to_string(PipelineRasterizationStateStreamCreateFlagBitsEXT)5824   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagBitsEXT )
5825   {
5826     return "(void)";
5827   }
5828 
5829 #if defined( VK_ENABLE_BETA_EXTENSIONS )
5830   //=== VK_EXT_video_encode_h264 ===
5831 
5832   enum class VideoEncodeH264CapabilitiesFlagBitsEXT : VkVideoEncodeH264CapabilitiesFlagsEXT
5833   {
5834     eVkVideoEncodeH264CapabilityCabac = VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT,
5835     eVkVideoEncodeH264CapabilityCavlc = VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT,
5836     eVkVideoEncodeH264CapabilityWeightedBiPredImplicit =
5837       VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT,
5838     eVkVideoEncodeH264CapabilityTransform8X8         = VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT,
5839     eVkVideoEncodeH264CapabilityChromaQpOffset       = VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT,
5840     eVkVideoEncodeH264CapabilitySecondChromaQpOffset = VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT,
5841     eVkVideoEncodeH264CapabilityDeblockingFilterDisabled =
5842       VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT,
5843     eVkVideoEncodeH264CapabilityDeblockingFilterEnabled =
5844       VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT,
5845     eVkVideoEncodeH264CapabilityDeblockingFilterPartial =
5846       VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT,
5847     eVkVideoEncodeH264CapabilityMultipleSlicePerFrame =
5848       VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT,
5849     eVkVideoEncodeH264CapabilityEvenlyDistributedSliceSize =
5850       VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT
5851   };
5852 
to_string(VideoEncodeH264CapabilitiesFlagBitsEXT value)5853   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CapabilitiesFlagBitsEXT value )
5854   {
5855     switch ( value )
5856     {
5857       case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityCabac:
5858         return "VkVideoEncodeH264CapabilityCabac";
5859       case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityCavlc:
5860         return "VkVideoEncodeH264CapabilityCavlc";
5861       case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityWeightedBiPredImplicit:
5862         return "VkVideoEncodeH264CapabilityWeightedBiPredImplicit";
5863       case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityTransform8X8:
5864         return "VkVideoEncodeH264CapabilityTransform8X8";
5865       case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityChromaQpOffset:
5866         return "VkVideoEncodeH264CapabilityChromaQpOffset";
5867       case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilitySecondChromaQpOffset:
5868         return "VkVideoEncodeH264CapabilitySecondChromaQpOffset";
5869       case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterDisabled:
5870         return "VkVideoEncodeH264CapabilityDeblockingFilterDisabled";
5871       case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterEnabled:
5872         return "VkVideoEncodeH264CapabilityDeblockingFilterEnabled";
5873       case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterPartial:
5874         return "VkVideoEncodeH264CapabilityDeblockingFilterPartial";
5875       case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityMultipleSlicePerFrame:
5876         return "VkVideoEncodeH264CapabilityMultipleSlicePerFrame";
5877       case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityEvenlyDistributedSliceSize:
5878         return "VkVideoEncodeH264CapabilityEvenlyDistributedSliceSize";
5879       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5880     }
5881   }
5882 
5883   enum class VideoEncodeH264InputModeFlagBitsEXT : VkVideoEncodeH264InputModeFlagsEXT
5884   {
5885     eFrame  = VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT,
5886     eSlice  = VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT,
5887     eNonVcl = VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT
5888   };
5889 
to_string(VideoEncodeH264InputModeFlagBitsEXT value)5890   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264InputModeFlagBitsEXT value )
5891   {
5892     switch ( value )
5893     {
5894       case VideoEncodeH264InputModeFlagBitsEXT::eFrame: return "Frame";
5895       case VideoEncodeH264InputModeFlagBitsEXT::eSlice: return "Slice";
5896       case VideoEncodeH264InputModeFlagBitsEXT::eNonVcl: return "NonVcl";
5897       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5898     }
5899   }
5900 
5901   enum class VideoEncodeH264OutputModeFlagBitsEXT : VkVideoEncodeH264OutputModeFlagsEXT
5902   {
5903     eFrame  = VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT,
5904     eSlice  = VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT,
5905     eNonVcl = VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT
5906   };
5907 
to_string(VideoEncodeH264OutputModeFlagBitsEXT value)5908   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264OutputModeFlagBitsEXT value )
5909   {
5910     switch ( value )
5911     {
5912       case VideoEncodeH264OutputModeFlagBitsEXT::eFrame: return "Frame";
5913       case VideoEncodeH264OutputModeFlagBitsEXT::eSlice: return "Slice";
5914       case VideoEncodeH264OutputModeFlagBitsEXT::eNonVcl: return "NonVcl";
5915       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5916     }
5917   }
5918 
5919   enum class VideoEncodeH264CreateFlagBitsEXT : VkVideoEncodeH264CreateFlagsEXT
5920   {
5921     eDefault   = VK_VIDEO_ENCODE_H264_CREATE_DEFAULT_EXT,
5922     eReserved0 = VK_VIDEO_ENCODE_H264_CREATE_RESERVED_0_BIT_EXT
5923   };
5924 
to_string(VideoEncodeH264CreateFlagBitsEXT value)5925   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CreateFlagBitsEXT value )
5926   {
5927     switch ( value )
5928     {
5929       case VideoEncodeH264CreateFlagBitsEXT::eDefault: return "Default";
5930       case VideoEncodeH264CreateFlagBitsEXT::eReserved0: return "Reserved0";
5931       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5932     }
5933   }
5934 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
5935 
5936 #if defined( VK_ENABLE_BETA_EXTENSIONS )
5937   //=== VK_EXT_video_decode_h264 ===
5938 
5939   enum class VideoDecodeH264FieldLayoutFlagBitsEXT : VkVideoDecodeH264FieldLayoutFlagsEXT
5940   {
5941     eVkVideoDecodeH264ProgressivePicturesOnly = VK_VIDEO_DECODE_H264_PROGRESSIVE_PICTURES_ONLY_EXT,
5942     eLineInterlacedPlane                      = VK_VIDEO_DECODE_H264_FIELD_LAYOUT_LINE_INTERLACED_PLANE_BIT_EXT,
5943     eSeparateInterlacedPlane                  = VK_VIDEO_DECODE_H264_FIELD_LAYOUT_SEPARATE_INTERLACED_PLANE_BIT_EXT
5944   };
5945 
to_string(VideoDecodeH264FieldLayoutFlagBitsEXT value)5946   VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264FieldLayoutFlagBitsEXT value )
5947   {
5948     switch ( value )
5949     {
5950       case VideoDecodeH264FieldLayoutFlagBitsEXT::eVkVideoDecodeH264ProgressivePicturesOnly:
5951         return "VkVideoDecodeH264ProgressivePicturesOnly";
5952       case VideoDecodeH264FieldLayoutFlagBitsEXT::eLineInterlacedPlane: return "LineInterlacedPlane";
5953       case VideoDecodeH264FieldLayoutFlagBitsEXT::eSeparateInterlacedPlane: return "SeparateInterlacedPlane";
5954       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5955     }
5956   }
5957 
5958   enum class VideoDecodeH264CreateFlagBitsEXT : VkVideoDecodeH264CreateFlagsEXT
5959   {
5960   };
5961 
to_string(VideoDecodeH264CreateFlagBitsEXT)5962   VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264CreateFlagBitsEXT )
5963   {
5964     return "(void)";
5965   }
5966 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
5967 
5968   //=== VK_AMD_shader_info ===
5969 
5970   enum class ShaderInfoTypeAMD
5971   {
5972     eStatistics  = VK_SHADER_INFO_TYPE_STATISTICS_AMD,
5973     eBinary      = VK_SHADER_INFO_TYPE_BINARY_AMD,
5974     eDisassembly = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD
5975   };
5976 
to_string(ShaderInfoTypeAMD value)5977   VULKAN_HPP_INLINE std::string to_string( ShaderInfoTypeAMD value )
5978   {
5979     switch ( value )
5980     {
5981       case ShaderInfoTypeAMD::eStatistics: return "Statistics";
5982       case ShaderInfoTypeAMD::eBinary: return "Binary";
5983       case ShaderInfoTypeAMD::eDisassembly: return "Disassembly";
5984       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
5985     }
5986   }
5987 
5988 #if defined( VK_USE_PLATFORM_GGP )
5989   //=== VK_GGP_stream_descriptor_surface ===
5990 
5991   enum class StreamDescriptorSurfaceCreateFlagBitsGGP : VkStreamDescriptorSurfaceCreateFlagsGGP
5992   {
5993   };
5994 
to_string(StreamDescriptorSurfaceCreateFlagBitsGGP)5995   VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagBitsGGP )
5996   {
5997     return "(void)";
5998   }
5999 #endif /*VK_USE_PLATFORM_GGP*/
6000 
6001   //=== VK_NV_external_memory_capabilities ===
6002 
6003   enum class ExternalMemoryHandleTypeFlagBitsNV : VkExternalMemoryHandleTypeFlagsNV
6004   {
6005     eOpaqueWin32    = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,
6006     eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,
6007     eD3D11Image     = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,
6008     eD3D11ImageKmt  = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV
6009   };
6010 
to_string(ExternalMemoryHandleTypeFlagBitsNV value)6011   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBitsNV value )
6012   {
6013     switch ( value )
6014     {
6015       case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32: return "OpaqueWin32";
6016       case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt: return "OpaqueWin32Kmt";
6017       case ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image: return "D3D11Image";
6018       case ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt: return "D3D11ImageKmt";
6019       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6020     }
6021   }
6022 
6023   enum class ExternalMemoryFeatureFlagBitsNV : VkExternalMemoryFeatureFlagsNV
6024   {
6025     eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,
6026     eExportable    = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,
6027     eImportable    = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV
6028   };
6029 
to_string(ExternalMemoryFeatureFlagBitsNV value)6030   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBitsNV value )
6031   {
6032     switch ( value )
6033     {
6034       case ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly: return "DedicatedOnly";
6035       case ExternalMemoryFeatureFlagBitsNV::eExportable: return "Exportable";
6036       case ExternalMemoryFeatureFlagBitsNV::eImportable: return "Importable";
6037       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6038     }
6039   }
6040 
6041   //=== VK_EXT_validation_flags ===
6042 
6043   enum class ValidationCheckEXT
6044   {
6045     eAll     = VK_VALIDATION_CHECK_ALL_EXT,
6046     eShaders = VK_VALIDATION_CHECK_SHADERS_EXT
6047   };
6048 
to_string(ValidationCheckEXT value)6049   VULKAN_HPP_INLINE std::string to_string( ValidationCheckEXT value )
6050   {
6051     switch ( value )
6052     {
6053       case ValidationCheckEXT::eAll: return "All";
6054       case ValidationCheckEXT::eShaders: return "Shaders";
6055       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6056     }
6057   }
6058 
6059 #if defined( VK_USE_PLATFORM_VI_NN )
6060   //=== VK_NN_vi_surface ===
6061 
6062   enum class ViSurfaceCreateFlagBitsNN : VkViSurfaceCreateFlagsNN
6063   {
6064   };
6065 
to_string(ViSurfaceCreateFlagBitsNN)6066   VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagBitsNN )
6067   {
6068     return "(void)";
6069   }
6070 #endif /*VK_USE_PLATFORM_VI_NN*/
6071 
6072   //=== VK_EXT_conditional_rendering ===
6073 
6074   enum class ConditionalRenderingFlagBitsEXT : VkConditionalRenderingFlagsEXT
6075   {
6076     eInverted = VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT
6077   };
6078 
to_string(ConditionalRenderingFlagBitsEXT value)6079   VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagBitsEXT value )
6080   {
6081     switch ( value )
6082     {
6083       case ConditionalRenderingFlagBitsEXT::eInverted: return "Inverted";
6084       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6085     }
6086   }
6087 
6088   //=== VK_EXT_display_surface_counter ===
6089 
6090   enum class SurfaceCounterFlagBitsEXT : VkSurfaceCounterFlagsEXT
6091   {
6092     eVblank = VK_SURFACE_COUNTER_VBLANK_BIT_EXT
6093   };
6094 
to_string(SurfaceCounterFlagBitsEXT value)6095   VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagBitsEXT value )
6096   {
6097     switch ( value )
6098     {
6099       case SurfaceCounterFlagBitsEXT::eVblank: return "Vblank";
6100       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6101     }
6102   }
6103 
6104   //=== VK_EXT_display_control ===
6105 
6106   enum class DisplayPowerStateEXT
6107   {
6108     eOff     = VK_DISPLAY_POWER_STATE_OFF_EXT,
6109     eSuspend = VK_DISPLAY_POWER_STATE_SUSPEND_EXT,
6110     eOn      = VK_DISPLAY_POWER_STATE_ON_EXT
6111   };
6112 
to_string(DisplayPowerStateEXT value)6113   VULKAN_HPP_INLINE std::string to_string( DisplayPowerStateEXT value )
6114   {
6115     switch ( value )
6116     {
6117       case DisplayPowerStateEXT::eOff: return "Off";
6118       case DisplayPowerStateEXT::eSuspend: return "Suspend";
6119       case DisplayPowerStateEXT::eOn: return "On";
6120       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6121     }
6122   }
6123 
6124   enum class DeviceEventTypeEXT
6125   {
6126     eDisplayHotplug = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT
6127   };
6128 
to_string(DeviceEventTypeEXT value)6129   VULKAN_HPP_INLINE std::string to_string( DeviceEventTypeEXT value )
6130   {
6131     switch ( value )
6132     {
6133       case DeviceEventTypeEXT::eDisplayHotplug: return "DisplayHotplug";
6134       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6135     }
6136   }
6137 
6138   enum class DisplayEventTypeEXT
6139   {
6140     eFirstPixelOut = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT
6141   };
6142 
to_string(DisplayEventTypeEXT value)6143   VULKAN_HPP_INLINE std::string to_string( DisplayEventTypeEXT value )
6144   {
6145     switch ( value )
6146     {
6147       case DisplayEventTypeEXT::eFirstPixelOut: return "FirstPixelOut";
6148       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6149     }
6150   }
6151 
6152   //=== VK_NV_viewport_swizzle ===
6153 
6154   enum class ViewportCoordinateSwizzleNV
6155   {
6156     ePositiveX = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
6157     eNegativeX = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV,
6158     ePositiveY = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV,
6159     eNegativeY = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV,
6160     ePositiveZ = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV,
6161     eNegativeZ = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV,
6162     ePositiveW = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV,
6163     eNegativeW = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV
6164   };
6165 
to_string(ViewportCoordinateSwizzleNV value)6166   VULKAN_HPP_INLINE std::string to_string( ViewportCoordinateSwizzleNV value )
6167   {
6168     switch ( value )
6169     {
6170       case ViewportCoordinateSwizzleNV::ePositiveX: return "PositiveX";
6171       case ViewportCoordinateSwizzleNV::eNegativeX: return "NegativeX";
6172       case ViewportCoordinateSwizzleNV::ePositiveY: return "PositiveY";
6173       case ViewportCoordinateSwizzleNV::eNegativeY: return "NegativeY";
6174       case ViewportCoordinateSwizzleNV::ePositiveZ: return "PositiveZ";
6175       case ViewportCoordinateSwizzleNV::eNegativeZ: return "NegativeZ";
6176       case ViewportCoordinateSwizzleNV::ePositiveW: return "PositiveW";
6177       case ViewportCoordinateSwizzleNV::eNegativeW: return "NegativeW";
6178       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6179     }
6180   }
6181 
6182   enum class PipelineViewportSwizzleStateCreateFlagBitsNV : VkPipelineViewportSwizzleStateCreateFlagsNV
6183   {
6184   };
6185 
to_string(PipelineViewportSwizzleStateCreateFlagBitsNV)6186   VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagBitsNV )
6187   {
6188     return "(void)";
6189   }
6190 
6191   //=== VK_EXT_discard_rectangles ===
6192 
6193   enum class DiscardRectangleModeEXT
6194   {
6195     eInclusive = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
6196     eExclusive = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT
6197   };
6198 
to_string(DiscardRectangleModeEXT value)6199   VULKAN_HPP_INLINE std::string to_string( DiscardRectangleModeEXT value )
6200   {
6201     switch ( value )
6202     {
6203       case DiscardRectangleModeEXT::eInclusive: return "Inclusive";
6204       case DiscardRectangleModeEXT::eExclusive: return "Exclusive";
6205       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6206     }
6207   }
6208 
6209   enum class PipelineDiscardRectangleStateCreateFlagBitsEXT : VkPipelineDiscardRectangleStateCreateFlagsEXT
6210   {
6211   };
6212 
to_string(PipelineDiscardRectangleStateCreateFlagBitsEXT)6213   VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagBitsEXT )
6214   {
6215     return "(void)";
6216   }
6217 
6218   //=== VK_EXT_conservative_rasterization ===
6219 
6220   enum class ConservativeRasterizationModeEXT
6221   {
6222     eDisabled      = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT,
6223     eOverestimate  = VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,
6224     eUnderestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT
6225   };
6226 
to_string(ConservativeRasterizationModeEXT value)6227   VULKAN_HPP_INLINE std::string to_string( ConservativeRasterizationModeEXT value )
6228   {
6229     switch ( value )
6230     {
6231       case ConservativeRasterizationModeEXT::eDisabled: return "Disabled";
6232       case ConservativeRasterizationModeEXT::eOverestimate: return "Overestimate";
6233       case ConservativeRasterizationModeEXT::eUnderestimate: return "Underestimate";
6234       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6235     }
6236   }
6237 
6238   enum class
6239     PipelineRasterizationConservativeStateCreateFlagBitsEXT : VkPipelineRasterizationConservativeStateCreateFlagsEXT
6240   {
6241   };
6242 
to_string(PipelineRasterizationConservativeStateCreateFlagBitsEXT)6243   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagBitsEXT )
6244   {
6245     return "(void)";
6246   }
6247 
6248   //=== VK_EXT_depth_clip_enable ===
6249 
6250   enum class PipelineRasterizationDepthClipStateCreateFlagBitsEXT : VkPipelineRasterizationDepthClipStateCreateFlagsEXT
6251   {
6252   };
6253 
to_string(PipelineRasterizationDepthClipStateCreateFlagBitsEXT)6254   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagBitsEXT )
6255   {
6256     return "(void)";
6257   }
6258 
6259   //=== VK_KHR_performance_query ===
6260 
6261   enum class PerformanceCounterDescriptionFlagBitsKHR : VkPerformanceCounterDescriptionFlagsKHR
6262   {
6263     ePerformanceImpacting = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
6264     eConcurrentlyImpacted = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR
6265   };
6266 
to_string(PerformanceCounterDescriptionFlagBitsKHR value)6267   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterDescriptionFlagBitsKHR value )
6268   {
6269     switch ( value )
6270     {
6271       case PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting: return "PerformanceImpacting";
6272       case PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted: return "ConcurrentlyImpacted";
6273       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6274     }
6275   }
6276 
6277   enum class PerformanceCounterScopeKHR
6278   {
6279     eCommandBuffer             = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
6280     eRenderPass                = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
6281     eCommand                   = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
6282     eVkQueryScopeCommandBuffer = VK_QUERY_SCOPE_COMMAND_BUFFER_KHR,
6283     eVkQueryScopeCommand       = VK_QUERY_SCOPE_COMMAND_KHR,
6284     eVkQueryScopeRenderPass    = VK_QUERY_SCOPE_RENDER_PASS_KHR
6285   };
6286 
to_string(PerformanceCounterScopeKHR value)6287   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterScopeKHR value )
6288   {
6289     switch ( value )
6290     {
6291       case PerformanceCounterScopeKHR::eCommandBuffer: return "CommandBuffer";
6292       case PerformanceCounterScopeKHR::eRenderPass: return "RenderPass";
6293       case PerformanceCounterScopeKHR::eCommand: return "Command";
6294       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6295     }
6296   }
6297 
6298   enum class PerformanceCounterStorageKHR
6299   {
6300     eInt32   = VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR,
6301     eInt64   = VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR,
6302     eUint32  = VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR,
6303     eUint64  = VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR,
6304     eFloat32 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR,
6305     eFloat64 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR
6306   };
6307 
to_string(PerformanceCounterStorageKHR value)6308   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterStorageKHR value )
6309   {
6310     switch ( value )
6311     {
6312       case PerformanceCounterStorageKHR::eInt32: return "Int32";
6313       case PerformanceCounterStorageKHR::eInt64: return "Int64";
6314       case PerformanceCounterStorageKHR::eUint32: return "Uint32";
6315       case PerformanceCounterStorageKHR::eUint64: return "Uint64";
6316       case PerformanceCounterStorageKHR::eFloat32: return "Float32";
6317       case PerformanceCounterStorageKHR::eFloat64: return "Float64";
6318       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6319     }
6320   }
6321 
6322   enum class PerformanceCounterUnitKHR
6323   {
6324     eGeneric        = VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR,
6325     ePercentage     = VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR,
6326     eNanoseconds    = VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR,
6327     eBytes          = VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR,
6328     eBytesPerSecond = VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR,
6329     eKelvin         = VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR,
6330     eWatts          = VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR,
6331     eVolts          = VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR,
6332     eAmps           = VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR,
6333     eHertz          = VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR,
6334     eCycles         = VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR
6335   };
6336 
to_string(PerformanceCounterUnitKHR value)6337   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterUnitKHR value )
6338   {
6339     switch ( value )
6340     {
6341       case PerformanceCounterUnitKHR::eGeneric: return "Generic";
6342       case PerformanceCounterUnitKHR::ePercentage: return "Percentage";
6343       case PerformanceCounterUnitKHR::eNanoseconds: return "Nanoseconds";
6344       case PerformanceCounterUnitKHR::eBytes: return "Bytes";
6345       case PerformanceCounterUnitKHR::eBytesPerSecond: return "BytesPerSecond";
6346       case PerformanceCounterUnitKHR::eKelvin: return "Kelvin";
6347       case PerformanceCounterUnitKHR::eWatts: return "Watts";
6348       case PerformanceCounterUnitKHR::eVolts: return "Volts";
6349       case PerformanceCounterUnitKHR::eAmps: return "Amps";
6350       case PerformanceCounterUnitKHR::eHertz: return "Hertz";
6351       case PerformanceCounterUnitKHR::eCycles: return "Cycles";
6352       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6353     }
6354   }
6355 
6356   enum class AcquireProfilingLockFlagBitsKHR : VkAcquireProfilingLockFlagsKHR
6357   {
6358   };
6359 
to_string(AcquireProfilingLockFlagBitsKHR)6360   VULKAN_HPP_INLINE std::string to_string( AcquireProfilingLockFlagBitsKHR )
6361   {
6362     return "(void)";
6363   }
6364 
6365 #if defined( VK_USE_PLATFORM_IOS_MVK )
6366   //=== VK_MVK_ios_surface ===
6367 
6368   enum class IOSSurfaceCreateFlagBitsMVK : VkIOSSurfaceCreateFlagsMVK
6369   {
6370   };
6371 
to_string(IOSSurfaceCreateFlagBitsMVK)6372   VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagBitsMVK )
6373   {
6374     return "(void)";
6375   }
6376 #endif /*VK_USE_PLATFORM_IOS_MVK*/
6377 
6378 #if defined( VK_USE_PLATFORM_MACOS_MVK )
6379   //=== VK_MVK_macos_surface ===
6380 
6381   enum class MacOSSurfaceCreateFlagBitsMVK : VkMacOSSurfaceCreateFlagsMVK
6382   {
6383   };
6384 
to_string(MacOSSurfaceCreateFlagBitsMVK)6385   VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagBitsMVK )
6386   {
6387     return "(void)";
6388   }
6389 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
6390 
6391   //=== VK_EXT_debug_utils ===
6392 
6393   enum class DebugUtilsMessageSeverityFlagBitsEXT : VkDebugUtilsMessageSeverityFlagsEXT
6394   {
6395     eVerbose = VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,
6396     eInfo    = VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,
6397     eWarning = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,
6398     eError   = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT
6399   };
6400 
to_string(DebugUtilsMessageSeverityFlagBitsEXT value)6401   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagBitsEXT value )
6402   {
6403     switch ( value )
6404     {
6405       case DebugUtilsMessageSeverityFlagBitsEXT::eVerbose: return "Verbose";
6406       case DebugUtilsMessageSeverityFlagBitsEXT::eInfo: return "Info";
6407       case DebugUtilsMessageSeverityFlagBitsEXT::eWarning: return "Warning";
6408       case DebugUtilsMessageSeverityFlagBitsEXT::eError: return "Error";
6409       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6410     }
6411   }
6412 
6413   enum class DebugUtilsMessageTypeFlagBitsEXT : VkDebugUtilsMessageTypeFlagsEXT
6414   {
6415     eGeneral     = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,
6416     eValidation  = VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,
6417     ePerformance = VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT
6418   };
6419 
to_string(DebugUtilsMessageTypeFlagBitsEXT value)6420   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagBitsEXT value )
6421   {
6422     switch ( value )
6423     {
6424       case DebugUtilsMessageTypeFlagBitsEXT::eGeneral: return "General";
6425       case DebugUtilsMessageTypeFlagBitsEXT::eValidation: return "Validation";
6426       case DebugUtilsMessageTypeFlagBitsEXT::ePerformance: return "Performance";
6427       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6428     }
6429   }
6430 
6431   enum class DebugUtilsMessengerCallbackDataFlagBitsEXT : VkDebugUtilsMessengerCallbackDataFlagsEXT
6432   {
6433   };
6434 
to_string(DebugUtilsMessengerCallbackDataFlagBitsEXT)6435   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagBitsEXT )
6436   {
6437     return "(void)";
6438   }
6439 
6440   enum class DebugUtilsMessengerCreateFlagBitsEXT : VkDebugUtilsMessengerCreateFlagsEXT
6441   {
6442   };
6443 
to_string(DebugUtilsMessengerCreateFlagBitsEXT)6444   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagBitsEXT )
6445   {
6446     return "(void)";
6447   }
6448 
6449   //=== VK_EXT_blend_operation_advanced ===
6450 
6451   enum class BlendOverlapEXT
6452   {
6453     eUncorrelated = VK_BLEND_OVERLAP_UNCORRELATED_EXT,
6454     eDisjoint     = VK_BLEND_OVERLAP_DISJOINT_EXT,
6455     eConjoint     = VK_BLEND_OVERLAP_CONJOINT_EXT
6456   };
6457 
to_string(BlendOverlapEXT value)6458   VULKAN_HPP_INLINE std::string to_string( BlendOverlapEXT value )
6459   {
6460     switch ( value )
6461     {
6462       case BlendOverlapEXT::eUncorrelated: return "Uncorrelated";
6463       case BlendOverlapEXT::eDisjoint: return "Disjoint";
6464       case BlendOverlapEXT::eConjoint: return "Conjoint";
6465       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6466     }
6467   }
6468 
6469   //=== VK_NV_fragment_coverage_to_color ===
6470 
6471   enum class PipelineCoverageToColorStateCreateFlagBitsNV : VkPipelineCoverageToColorStateCreateFlagsNV
6472   {
6473   };
6474 
to_string(PipelineCoverageToColorStateCreateFlagBitsNV)6475   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagBitsNV )
6476   {
6477     return "(void)";
6478   }
6479 
6480   //=== VK_KHR_acceleration_structure ===
6481 
6482   enum class AccelerationStructureTypeKHR
6483   {
6484     eTopLevel    = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
6485     eBottomLevel = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
6486     eGeneric     = VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
6487   };
6488   using AccelerationStructureTypeNV = AccelerationStructureTypeKHR;
6489 
to_string(AccelerationStructureTypeKHR value)6490   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureTypeKHR value )
6491   {
6492     switch ( value )
6493     {
6494       case AccelerationStructureTypeKHR::eTopLevel: return "TopLevel";
6495       case AccelerationStructureTypeKHR::eBottomLevel: return "BottomLevel";
6496       case AccelerationStructureTypeKHR::eGeneric: return "Generic";
6497       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6498     }
6499   }
6500 
6501   enum class AccelerationStructureBuildTypeKHR
6502   {
6503     eHost         = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR,
6504     eDevice       = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR,
6505     eHostOrDevice = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR
6506   };
6507 
to_string(AccelerationStructureBuildTypeKHR value)6508   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureBuildTypeKHR value )
6509   {
6510     switch ( value )
6511     {
6512       case AccelerationStructureBuildTypeKHR::eHost: return "Host";
6513       case AccelerationStructureBuildTypeKHR::eDevice: return "Device";
6514       case AccelerationStructureBuildTypeKHR::eHostOrDevice: return "HostOrDevice";
6515       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6516     }
6517   }
6518 
6519   enum class GeometryFlagBitsKHR : VkGeometryFlagsKHR
6520   {
6521     eOpaque                      = VK_GEOMETRY_OPAQUE_BIT_KHR,
6522     eNoDuplicateAnyHitInvocation = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR
6523   };
6524   using GeometryFlagBitsNV = GeometryFlagBitsKHR;
6525 
to_string(GeometryFlagBitsKHR value)6526   VULKAN_HPP_INLINE std::string to_string( GeometryFlagBitsKHR value )
6527   {
6528     switch ( value )
6529     {
6530       case GeometryFlagBitsKHR::eOpaque: return "Opaque";
6531       case GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation: return "NoDuplicateAnyHitInvocation";
6532       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6533     }
6534   }
6535 
6536   enum class GeometryInstanceFlagBitsKHR : VkGeometryInstanceFlagsKHR
6537   {
6538     eTriangleFacingCullDisable     = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
6539     eTriangleFrontCounterclockwise = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
6540     eForceOpaque                   = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
6541     eForceNoOpaque                 = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
6542     eTriangleCullDisable           = VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV
6543   };
6544   using GeometryInstanceFlagBitsNV = GeometryInstanceFlagBitsKHR;
6545 
to_string(GeometryInstanceFlagBitsKHR value)6546   VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagBitsKHR value )
6547   {
6548     switch ( value )
6549     {
6550       case GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable: return "TriangleFacingCullDisable";
6551       case GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise: return "TriangleFrontCounterclockwise";
6552       case GeometryInstanceFlagBitsKHR::eForceOpaque: return "ForceOpaque";
6553       case GeometryInstanceFlagBitsKHR::eForceNoOpaque: return "ForceNoOpaque";
6554       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6555     }
6556   }
6557 
6558   enum class BuildAccelerationStructureFlagBitsKHR : VkBuildAccelerationStructureFlagsKHR
6559   {
6560     eAllowUpdate     = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
6561     eAllowCompaction = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
6562     ePreferFastTrace = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
6563     ePreferFastBuild = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
6564     eLowMemory       = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
6565     eMotionNV        = VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV
6566   };
6567   using BuildAccelerationStructureFlagBitsNV = BuildAccelerationStructureFlagBitsKHR;
6568 
to_string(BuildAccelerationStructureFlagBitsKHR value)6569   VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagBitsKHR value )
6570   {
6571     switch ( value )
6572     {
6573       case BuildAccelerationStructureFlagBitsKHR::eAllowUpdate: return "AllowUpdate";
6574       case BuildAccelerationStructureFlagBitsKHR::eAllowCompaction: return "AllowCompaction";
6575       case BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace: return "PreferFastTrace";
6576       case BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild: return "PreferFastBuild";
6577       case BuildAccelerationStructureFlagBitsKHR::eLowMemory: return "LowMemory";
6578       case BuildAccelerationStructureFlagBitsKHR::eMotionNV: return "MotionNV";
6579       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6580     }
6581   }
6582 
6583   enum class CopyAccelerationStructureModeKHR
6584   {
6585     eClone       = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
6586     eCompact     = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
6587     eSerialize   = VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR,
6588     eDeserialize = VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR
6589   };
6590   using CopyAccelerationStructureModeNV = CopyAccelerationStructureModeKHR;
6591 
to_string(CopyAccelerationStructureModeKHR value)6592   VULKAN_HPP_INLINE std::string to_string( CopyAccelerationStructureModeKHR value )
6593   {
6594     switch ( value )
6595     {
6596       case CopyAccelerationStructureModeKHR::eClone: return "Clone";
6597       case CopyAccelerationStructureModeKHR::eCompact: return "Compact";
6598       case CopyAccelerationStructureModeKHR::eSerialize: return "Serialize";
6599       case CopyAccelerationStructureModeKHR::eDeserialize: return "Deserialize";
6600       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6601     }
6602   }
6603 
6604   enum class GeometryTypeKHR
6605   {
6606     eTriangles = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
6607     eAabbs     = VK_GEOMETRY_TYPE_AABBS_KHR,
6608     eInstances = VK_GEOMETRY_TYPE_INSTANCES_KHR
6609   };
6610   using GeometryTypeNV = GeometryTypeKHR;
6611 
to_string(GeometryTypeKHR value)6612   VULKAN_HPP_INLINE std::string to_string( GeometryTypeKHR value )
6613   {
6614     switch ( value )
6615     {
6616       case GeometryTypeKHR::eTriangles: return "Triangles";
6617       case GeometryTypeKHR::eAabbs: return "Aabbs";
6618       case GeometryTypeKHR::eInstances: return "Instances";
6619       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6620     }
6621   }
6622 
6623   enum class AccelerationStructureCompatibilityKHR
6624   {
6625     eCompatible   = VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR,
6626     eIncompatible = VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR
6627   };
6628 
to_string(AccelerationStructureCompatibilityKHR value)6629   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureCompatibilityKHR value )
6630   {
6631     switch ( value )
6632     {
6633       case AccelerationStructureCompatibilityKHR::eCompatible: return "Compatible";
6634       case AccelerationStructureCompatibilityKHR::eIncompatible: return "Incompatible";
6635       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6636     }
6637   }
6638 
6639   enum class AccelerationStructureCreateFlagBitsKHR : VkAccelerationStructureCreateFlagsKHR
6640   {
6641     eDeviceAddressCaptureReplay = VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,
6642     eMotionNV                   = VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV
6643   };
6644 
to_string(AccelerationStructureCreateFlagBitsKHR value)6645   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureCreateFlagBitsKHR value )
6646   {
6647     switch ( value )
6648     {
6649       case AccelerationStructureCreateFlagBitsKHR::eDeviceAddressCaptureReplay: return "DeviceAddressCaptureReplay";
6650       case AccelerationStructureCreateFlagBitsKHR::eMotionNV: return "MotionNV";
6651       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6652     }
6653   }
6654 
6655   enum class BuildAccelerationStructureModeKHR
6656   {
6657     eBuild  = VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR,
6658     eUpdate = VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR
6659   };
6660 
to_string(BuildAccelerationStructureModeKHR value)6661   VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureModeKHR value )
6662   {
6663     switch ( value )
6664     {
6665       case BuildAccelerationStructureModeKHR::eBuild: return "Build";
6666       case BuildAccelerationStructureModeKHR::eUpdate: return "Update";
6667       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6668     }
6669   }
6670 
6671   //=== VK_NV_framebuffer_mixed_samples ===
6672 
6673   enum class CoverageModulationModeNV
6674   {
6675     eNone  = VK_COVERAGE_MODULATION_MODE_NONE_NV,
6676     eRgb   = VK_COVERAGE_MODULATION_MODE_RGB_NV,
6677     eAlpha = VK_COVERAGE_MODULATION_MODE_ALPHA_NV,
6678     eRgba  = VK_COVERAGE_MODULATION_MODE_RGBA_NV
6679   };
6680 
to_string(CoverageModulationModeNV value)6681   VULKAN_HPP_INLINE std::string to_string( CoverageModulationModeNV value )
6682   {
6683     switch ( value )
6684     {
6685       case CoverageModulationModeNV::eNone: return "None";
6686       case CoverageModulationModeNV::eRgb: return "Rgb";
6687       case CoverageModulationModeNV::eAlpha: return "Alpha";
6688       case CoverageModulationModeNV::eRgba: return "Rgba";
6689       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6690     }
6691   }
6692 
6693   enum class PipelineCoverageModulationStateCreateFlagBitsNV : VkPipelineCoverageModulationStateCreateFlagsNV
6694   {
6695   };
6696 
to_string(PipelineCoverageModulationStateCreateFlagBitsNV)6697   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagBitsNV )
6698   {
6699     return "(void)";
6700   }
6701 
6702   //=== VK_EXT_validation_cache ===
6703 
6704   enum class ValidationCacheHeaderVersionEXT
6705   {
6706     eOne = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT
6707   };
6708 
to_string(ValidationCacheHeaderVersionEXT value)6709   VULKAN_HPP_INLINE std::string to_string( ValidationCacheHeaderVersionEXT value )
6710   {
6711     switch ( value )
6712     {
6713       case ValidationCacheHeaderVersionEXT::eOne: return "One";
6714       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6715     }
6716   }
6717 
6718   enum class ValidationCacheCreateFlagBitsEXT : VkValidationCacheCreateFlagsEXT
6719   {
6720   };
6721 
to_string(ValidationCacheCreateFlagBitsEXT)6722   VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagBitsEXT )
6723   {
6724     return "(void)";
6725   }
6726 
6727   //=== VK_NV_shading_rate_image ===
6728 
6729   enum class ShadingRatePaletteEntryNV
6730   {
6731     eNoInvocations           = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV,
6732     e16InvocationsPerPixel   = VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV,
6733     e8InvocationsPerPixel    = VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV,
6734     e4InvocationsPerPixel    = VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV,
6735     e2InvocationsPerPixel    = VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV,
6736     e1InvocationPerPixel     = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV,
6737     e1InvocationPer2X1Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV,
6738     e1InvocationPer1X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV,
6739     e1InvocationPer2X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV,
6740     e1InvocationPer4X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV,
6741     e1InvocationPer2X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV,
6742     e1InvocationPer4X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV
6743   };
6744 
to_string(ShadingRatePaletteEntryNV value)6745   VULKAN_HPP_INLINE std::string to_string( ShadingRatePaletteEntryNV value )
6746   {
6747     switch ( value )
6748     {
6749       case ShadingRatePaletteEntryNV::eNoInvocations: return "NoInvocations";
6750       case ShadingRatePaletteEntryNV::e16InvocationsPerPixel: return "16InvocationsPerPixel";
6751       case ShadingRatePaletteEntryNV::e8InvocationsPerPixel: return "8InvocationsPerPixel";
6752       case ShadingRatePaletteEntryNV::e4InvocationsPerPixel: return "4InvocationsPerPixel";
6753       case ShadingRatePaletteEntryNV::e2InvocationsPerPixel: return "2InvocationsPerPixel";
6754       case ShadingRatePaletteEntryNV::e1InvocationPerPixel: return "1InvocationPerPixel";
6755       case ShadingRatePaletteEntryNV::e1InvocationPer2X1Pixels: return "1InvocationPer2X1Pixels";
6756       case ShadingRatePaletteEntryNV::e1InvocationPer1X2Pixels: return "1InvocationPer1X2Pixels";
6757       case ShadingRatePaletteEntryNV::e1InvocationPer2X2Pixels: return "1InvocationPer2X2Pixels";
6758       case ShadingRatePaletteEntryNV::e1InvocationPer4X2Pixels: return "1InvocationPer4X2Pixels";
6759       case ShadingRatePaletteEntryNV::e1InvocationPer2X4Pixels: return "1InvocationPer2X4Pixels";
6760       case ShadingRatePaletteEntryNV::e1InvocationPer4X4Pixels: return "1InvocationPer4X4Pixels";
6761       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6762     }
6763   }
6764 
6765   enum class CoarseSampleOrderTypeNV
6766   {
6767     eDefault     = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV,
6768     eCustom      = VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV,
6769     ePixelMajor  = VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV,
6770     eSampleMajor = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV
6771   };
6772 
to_string(CoarseSampleOrderTypeNV value)6773   VULKAN_HPP_INLINE std::string to_string( CoarseSampleOrderTypeNV value )
6774   {
6775     switch ( value )
6776     {
6777       case CoarseSampleOrderTypeNV::eDefault: return "Default";
6778       case CoarseSampleOrderTypeNV::eCustom: return "Custom";
6779       case CoarseSampleOrderTypeNV::ePixelMajor: return "PixelMajor";
6780       case CoarseSampleOrderTypeNV::eSampleMajor: return "SampleMajor";
6781       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6782     }
6783   }
6784 
6785   //=== VK_NV_ray_tracing ===
6786 
6787   enum class AccelerationStructureMemoryRequirementsTypeNV
6788   {
6789     eObject        = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV,
6790     eBuildScratch  = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV,
6791     eUpdateScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV
6792   };
6793 
to_string(AccelerationStructureMemoryRequirementsTypeNV value)6794   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMemoryRequirementsTypeNV value )
6795   {
6796     switch ( value )
6797     {
6798       case AccelerationStructureMemoryRequirementsTypeNV::eObject: return "Object";
6799       case AccelerationStructureMemoryRequirementsTypeNV::eBuildScratch: return "BuildScratch";
6800       case AccelerationStructureMemoryRequirementsTypeNV::eUpdateScratch: return "UpdateScratch";
6801       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6802     }
6803   }
6804 
6805   //=== VK_EXT_global_priority ===
6806 
6807   enum class QueueGlobalPriorityEXT
6808   {
6809     eLow      = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT,
6810     eMedium   = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT,
6811     eHigh     = VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT,
6812     eRealtime = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT
6813   };
6814 
to_string(QueueGlobalPriorityEXT value)6815   VULKAN_HPP_INLINE std::string to_string( QueueGlobalPriorityEXT value )
6816   {
6817     switch ( value )
6818     {
6819       case QueueGlobalPriorityEXT::eLow: return "Low";
6820       case QueueGlobalPriorityEXT::eMedium: return "Medium";
6821       case QueueGlobalPriorityEXT::eHigh: return "High";
6822       case QueueGlobalPriorityEXT::eRealtime: return "Realtime";
6823       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6824     }
6825   }
6826 
6827   //=== VK_AMD_pipeline_compiler_control ===
6828 
6829   enum class PipelineCompilerControlFlagBitsAMD : VkPipelineCompilerControlFlagsAMD
6830   {
6831   };
6832 
to_string(PipelineCompilerControlFlagBitsAMD)6833   VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagBitsAMD )
6834   {
6835     return "(void)";
6836   }
6837 
6838   //=== VK_EXT_calibrated_timestamps ===
6839 
6840   enum class TimeDomainEXT
6841   {
6842     eDevice                  = VK_TIME_DOMAIN_DEVICE_EXT,
6843     eClockMonotonic          = VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT,
6844     eClockMonotonicRaw       = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT,
6845     eQueryPerformanceCounter = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT
6846   };
6847 
to_string(TimeDomainEXT value)6848   VULKAN_HPP_INLINE std::string to_string( TimeDomainEXT value )
6849   {
6850     switch ( value )
6851     {
6852       case TimeDomainEXT::eDevice: return "Device";
6853       case TimeDomainEXT::eClockMonotonic: return "ClockMonotonic";
6854       case TimeDomainEXT::eClockMonotonicRaw: return "ClockMonotonicRaw";
6855       case TimeDomainEXT::eQueryPerformanceCounter: return "QueryPerformanceCounter";
6856       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6857     }
6858   }
6859 
6860 #if defined( VK_ENABLE_BETA_EXTENSIONS )
6861   //=== VK_EXT_video_decode_h265 ===
6862 
6863   enum class VideoDecodeH265CreateFlagBitsEXT : VkVideoDecodeH265CreateFlagsEXT
6864   {
6865   };
6866 
to_string(VideoDecodeH265CreateFlagBitsEXT)6867   VULKAN_HPP_INLINE std::string to_string( VideoDecodeH265CreateFlagBitsEXT )
6868   {
6869     return "(void)";
6870   }
6871 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
6872 
6873   //=== VK_AMD_memory_overallocation_behavior ===
6874 
6875   enum class MemoryOverallocationBehaviorAMD
6876   {
6877     eDefault    = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD,
6878     eAllowed    = VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD,
6879     eDisallowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD
6880   };
6881 
to_string(MemoryOverallocationBehaviorAMD value)6882   VULKAN_HPP_INLINE std::string to_string( MemoryOverallocationBehaviorAMD value )
6883   {
6884     switch ( value )
6885     {
6886       case MemoryOverallocationBehaviorAMD::eDefault: return "Default";
6887       case MemoryOverallocationBehaviorAMD::eAllowed: return "Allowed";
6888       case MemoryOverallocationBehaviorAMD::eDisallowed: return "Disallowed";
6889       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6890     }
6891   }
6892 
6893   //=== VK_EXT_pipeline_creation_feedback ===
6894 
6895   enum class PipelineCreationFeedbackFlagBitsEXT : VkPipelineCreationFeedbackFlagsEXT
6896   {
6897     eValid                       = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT,
6898     eApplicationPipelineCacheHit = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT,
6899     eBasePipelineAcceleration    = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT
6900   };
6901 
to_string(PipelineCreationFeedbackFlagBitsEXT value)6902   VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagBitsEXT value )
6903   {
6904     switch ( value )
6905     {
6906       case PipelineCreationFeedbackFlagBitsEXT::eValid: return "Valid";
6907       case PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit: return "ApplicationPipelineCacheHit";
6908       case PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration: return "BasePipelineAcceleration";
6909       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6910     }
6911   }
6912 
6913   //=== VK_INTEL_performance_query ===
6914 
6915   enum class PerformanceConfigurationTypeINTEL
6916   {
6917     eCommandQueueMetricsDiscoveryActivated =
6918       VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL
6919   };
6920 
to_string(PerformanceConfigurationTypeINTEL value)6921   VULKAN_HPP_INLINE std::string to_string( PerformanceConfigurationTypeINTEL value )
6922   {
6923     switch ( value )
6924     {
6925       case PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated:
6926         return "CommandQueueMetricsDiscoveryActivated";
6927       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6928     }
6929   }
6930 
6931   enum class QueryPoolSamplingModeINTEL
6932   {
6933     eManual = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL
6934   };
6935 
to_string(QueryPoolSamplingModeINTEL value)6936   VULKAN_HPP_INLINE std::string to_string( QueryPoolSamplingModeINTEL value )
6937   {
6938     switch ( value )
6939     {
6940       case QueryPoolSamplingModeINTEL::eManual: return "Manual";
6941       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6942     }
6943   }
6944 
6945   enum class PerformanceOverrideTypeINTEL
6946   {
6947     eNullHardware   = VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL,
6948     eFlushGpuCaches = VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL
6949   };
6950 
to_string(PerformanceOverrideTypeINTEL value)6951   VULKAN_HPP_INLINE std::string to_string( PerformanceOverrideTypeINTEL value )
6952   {
6953     switch ( value )
6954     {
6955       case PerformanceOverrideTypeINTEL::eNullHardware: return "NullHardware";
6956       case PerformanceOverrideTypeINTEL::eFlushGpuCaches: return "FlushGpuCaches";
6957       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6958     }
6959   }
6960 
6961   enum class PerformanceParameterTypeINTEL
6962   {
6963     eHwCountersSupported   = VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL,
6964     eStreamMarkerValidBits = VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL
6965   };
6966 
to_string(PerformanceParameterTypeINTEL value)6967   VULKAN_HPP_INLINE std::string to_string( PerformanceParameterTypeINTEL value )
6968   {
6969     switch ( value )
6970     {
6971       case PerformanceParameterTypeINTEL::eHwCountersSupported: return "HwCountersSupported";
6972       case PerformanceParameterTypeINTEL::eStreamMarkerValidBits: return "StreamMarkerValidBits";
6973       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6974     }
6975   }
6976 
6977   enum class PerformanceValueTypeINTEL
6978   {
6979     eUint32 = VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL,
6980     eUint64 = VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL,
6981     eFloat  = VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL,
6982     eBool   = VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL,
6983     eString = VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL
6984   };
6985 
to_string(PerformanceValueTypeINTEL value)6986   VULKAN_HPP_INLINE std::string to_string( PerformanceValueTypeINTEL value )
6987   {
6988     switch ( value )
6989     {
6990       case PerformanceValueTypeINTEL::eUint32: return "Uint32";
6991       case PerformanceValueTypeINTEL::eUint64: return "Uint64";
6992       case PerformanceValueTypeINTEL::eFloat: return "Float";
6993       case PerformanceValueTypeINTEL::eBool: return "Bool";
6994       case PerformanceValueTypeINTEL::eString: return "String";
6995       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
6996     }
6997   }
6998 
6999 #if defined( VK_USE_PLATFORM_FUCHSIA )
7000   //=== VK_FUCHSIA_imagepipe_surface ===
7001 
7002   enum class ImagePipeSurfaceCreateFlagBitsFUCHSIA : VkImagePipeSurfaceCreateFlagsFUCHSIA
7003   {
7004   };
7005 
to_string(ImagePipeSurfaceCreateFlagBitsFUCHSIA)7006   VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagBitsFUCHSIA )
7007   {
7008     return "(void)";
7009   }
7010 #endif /*VK_USE_PLATFORM_FUCHSIA*/
7011 
7012 #if defined( VK_USE_PLATFORM_METAL_EXT )
7013   //=== VK_EXT_metal_surface ===
7014 
7015   enum class MetalSurfaceCreateFlagBitsEXT : VkMetalSurfaceCreateFlagsEXT
7016   {
7017   };
7018 
to_string(MetalSurfaceCreateFlagBitsEXT)7019   VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagBitsEXT )
7020   {
7021     return "(void)";
7022   }
7023 #endif /*VK_USE_PLATFORM_METAL_EXT*/
7024 
7025   //=== VK_KHR_fragment_shading_rate ===
7026 
7027   enum class FragmentShadingRateCombinerOpKHR
7028   {
7029     eKeep    = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR,
7030     eReplace = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR,
7031     eMin     = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR,
7032     eMax     = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR,
7033     eMul     = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR
7034   };
7035 
to_string(FragmentShadingRateCombinerOpKHR value)7036   VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateCombinerOpKHR value )
7037   {
7038     switch ( value )
7039     {
7040       case FragmentShadingRateCombinerOpKHR::eKeep: return "Keep";
7041       case FragmentShadingRateCombinerOpKHR::eReplace: return "Replace";
7042       case FragmentShadingRateCombinerOpKHR::eMin: return "Min";
7043       case FragmentShadingRateCombinerOpKHR::eMax: return "Max";
7044       case FragmentShadingRateCombinerOpKHR::eMul: return "Mul";
7045       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7046     }
7047   }
7048 
7049   //=== VK_AMD_shader_core_properties2 ===
7050 
7051   enum class ShaderCorePropertiesFlagBitsAMD : VkShaderCorePropertiesFlagsAMD
7052   {
7053   };
7054 
to_string(ShaderCorePropertiesFlagBitsAMD)7055   VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagBitsAMD )
7056   {
7057     return "(void)";
7058   }
7059 
7060   //=== VK_EXT_tooling_info ===
7061 
7062   enum class ToolPurposeFlagBitsEXT : VkToolPurposeFlagsEXT
7063   {
7064     eValidation         = VK_TOOL_PURPOSE_VALIDATION_BIT_EXT,
7065     eProfiling          = VK_TOOL_PURPOSE_PROFILING_BIT_EXT,
7066     eTracing            = VK_TOOL_PURPOSE_TRACING_BIT_EXT,
7067     eAdditionalFeatures = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT,
7068     eModifyingFeatures  = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT,
7069     eDebugReporting     = VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT,
7070     eDebugMarkers       = VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT
7071   };
7072 
to_string(ToolPurposeFlagBitsEXT value)7073   VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagBitsEXT value )
7074   {
7075     switch ( value )
7076     {
7077       case ToolPurposeFlagBitsEXT::eValidation: return "Validation";
7078       case ToolPurposeFlagBitsEXT::eProfiling: return "Profiling";
7079       case ToolPurposeFlagBitsEXT::eTracing: return "Tracing";
7080       case ToolPurposeFlagBitsEXT::eAdditionalFeatures: return "AdditionalFeatures";
7081       case ToolPurposeFlagBitsEXT::eModifyingFeatures: return "ModifyingFeatures";
7082       case ToolPurposeFlagBitsEXT::eDebugReporting: return "DebugReporting";
7083       case ToolPurposeFlagBitsEXT::eDebugMarkers: return "DebugMarkers";
7084       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7085     }
7086   }
7087 
7088   //=== VK_EXT_validation_features ===
7089 
7090   enum class ValidationFeatureEnableEXT
7091   {
7092     eGpuAssisted                   = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,
7093     eGpuAssistedReserveBindingSlot = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT,
7094     eBestPractices                 = VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,
7095     eDebugPrintf                   = VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT,
7096     eSynchronizationValidation     = VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT
7097   };
7098 
to_string(ValidationFeatureEnableEXT value)7099   VULKAN_HPP_INLINE std::string to_string( ValidationFeatureEnableEXT value )
7100   {
7101     switch ( value )
7102     {
7103       case ValidationFeatureEnableEXT::eGpuAssisted: return "GpuAssisted";
7104       case ValidationFeatureEnableEXT::eGpuAssistedReserveBindingSlot: return "GpuAssistedReserveBindingSlot";
7105       case ValidationFeatureEnableEXT::eBestPractices: return "BestPractices";
7106       case ValidationFeatureEnableEXT::eDebugPrintf: return "DebugPrintf";
7107       case ValidationFeatureEnableEXT::eSynchronizationValidation: return "SynchronizationValidation";
7108       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7109     }
7110   }
7111 
7112   enum class ValidationFeatureDisableEXT
7113   {
7114     eAll                   = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT,
7115     eShaders               = VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT,
7116     eThreadSafety          = VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT,
7117     eApiParameters         = VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT,
7118     eObjectLifetimes       = VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT,
7119     eCoreChecks            = VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT,
7120     eUniqueHandles         = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT,
7121     eShaderValidationCache = VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT
7122   };
7123 
to_string(ValidationFeatureDisableEXT value)7124   VULKAN_HPP_INLINE std::string to_string( ValidationFeatureDisableEXT value )
7125   {
7126     switch ( value )
7127     {
7128       case ValidationFeatureDisableEXT::eAll: return "All";
7129       case ValidationFeatureDisableEXT::eShaders: return "Shaders";
7130       case ValidationFeatureDisableEXT::eThreadSafety: return "ThreadSafety";
7131       case ValidationFeatureDisableEXT::eApiParameters: return "ApiParameters";
7132       case ValidationFeatureDisableEXT::eObjectLifetimes: return "ObjectLifetimes";
7133       case ValidationFeatureDisableEXT::eCoreChecks: return "CoreChecks";
7134       case ValidationFeatureDisableEXT::eUniqueHandles: return "UniqueHandles";
7135       case ValidationFeatureDisableEXT::eShaderValidationCache: return "ShaderValidationCache";
7136       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7137     }
7138   }
7139 
7140   //=== VK_NV_cooperative_matrix ===
7141 
7142   enum class ScopeNV
7143   {
7144     eDevice      = VK_SCOPE_DEVICE_NV,
7145     eWorkgroup   = VK_SCOPE_WORKGROUP_NV,
7146     eSubgroup    = VK_SCOPE_SUBGROUP_NV,
7147     eQueueFamily = VK_SCOPE_QUEUE_FAMILY_NV
7148   };
7149 
to_string(ScopeNV value)7150   VULKAN_HPP_INLINE std::string to_string( ScopeNV value )
7151   {
7152     switch ( value )
7153     {
7154       case ScopeNV::eDevice: return "Device";
7155       case ScopeNV::eWorkgroup: return "Workgroup";
7156       case ScopeNV::eSubgroup: return "Subgroup";
7157       case ScopeNV::eQueueFamily: return "QueueFamily";
7158       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7159     }
7160   }
7161 
7162   enum class ComponentTypeNV
7163   {
7164     eFloat16 = VK_COMPONENT_TYPE_FLOAT16_NV,
7165     eFloat32 = VK_COMPONENT_TYPE_FLOAT32_NV,
7166     eFloat64 = VK_COMPONENT_TYPE_FLOAT64_NV,
7167     eSint8   = VK_COMPONENT_TYPE_SINT8_NV,
7168     eSint16  = VK_COMPONENT_TYPE_SINT16_NV,
7169     eSint32  = VK_COMPONENT_TYPE_SINT32_NV,
7170     eSint64  = VK_COMPONENT_TYPE_SINT64_NV,
7171     eUint8   = VK_COMPONENT_TYPE_UINT8_NV,
7172     eUint16  = VK_COMPONENT_TYPE_UINT16_NV,
7173     eUint32  = VK_COMPONENT_TYPE_UINT32_NV,
7174     eUint64  = VK_COMPONENT_TYPE_UINT64_NV
7175   };
7176 
to_string(ComponentTypeNV value)7177   VULKAN_HPP_INLINE std::string to_string( ComponentTypeNV value )
7178   {
7179     switch ( value )
7180     {
7181       case ComponentTypeNV::eFloat16: return "Float16";
7182       case ComponentTypeNV::eFloat32: return "Float32";
7183       case ComponentTypeNV::eFloat64: return "Float64";
7184       case ComponentTypeNV::eSint8: return "Sint8";
7185       case ComponentTypeNV::eSint16: return "Sint16";
7186       case ComponentTypeNV::eSint32: return "Sint32";
7187       case ComponentTypeNV::eSint64: return "Sint64";
7188       case ComponentTypeNV::eUint8: return "Uint8";
7189       case ComponentTypeNV::eUint16: return "Uint16";
7190       case ComponentTypeNV::eUint32: return "Uint32";
7191       case ComponentTypeNV::eUint64: return "Uint64";
7192       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7193     }
7194   }
7195 
7196   //=== VK_NV_coverage_reduction_mode ===
7197 
7198   enum class CoverageReductionModeNV
7199   {
7200     eMerge    = VK_COVERAGE_REDUCTION_MODE_MERGE_NV,
7201     eTruncate = VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV
7202   };
7203 
to_string(CoverageReductionModeNV value)7204   VULKAN_HPP_INLINE std::string to_string( CoverageReductionModeNV value )
7205   {
7206     switch ( value )
7207     {
7208       case CoverageReductionModeNV::eMerge: return "Merge";
7209       case CoverageReductionModeNV::eTruncate: return "Truncate";
7210       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7211     }
7212   }
7213 
7214   enum class PipelineCoverageReductionStateCreateFlagBitsNV : VkPipelineCoverageReductionStateCreateFlagsNV
7215   {
7216   };
7217 
to_string(PipelineCoverageReductionStateCreateFlagBitsNV)7218   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagBitsNV )
7219   {
7220     return "(void)";
7221   }
7222 
7223   //=== VK_EXT_provoking_vertex ===
7224 
7225   enum class ProvokingVertexModeEXT
7226   {
7227     eFirstVertex = VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT,
7228     eLastVertex  = VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT
7229   };
7230 
to_string(ProvokingVertexModeEXT value)7231   VULKAN_HPP_INLINE std::string to_string( ProvokingVertexModeEXT value )
7232   {
7233     switch ( value )
7234     {
7235       case ProvokingVertexModeEXT::eFirstVertex: return "FirstVertex";
7236       case ProvokingVertexModeEXT::eLastVertex: return "LastVertex";
7237       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7238     }
7239   }
7240 
7241 #if defined( VK_USE_PLATFORM_WIN32_KHR )
7242   //=== VK_EXT_full_screen_exclusive ===
7243 
7244   enum class FullScreenExclusiveEXT
7245   {
7246     eDefault               = VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT,
7247     eAllowed               = VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT,
7248     eDisallowed            = VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT,
7249     eApplicationControlled = VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
7250   };
7251 
to_string(FullScreenExclusiveEXT value)7252   VULKAN_HPP_INLINE std::string to_string( FullScreenExclusiveEXT value )
7253   {
7254     switch ( value )
7255     {
7256       case FullScreenExclusiveEXT::eDefault: return "Default";
7257       case FullScreenExclusiveEXT::eAllowed: return "Allowed";
7258       case FullScreenExclusiveEXT::eDisallowed: return "Disallowed";
7259       case FullScreenExclusiveEXT::eApplicationControlled: return "ApplicationControlled";
7260       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7261     }
7262   }
7263 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
7264 
7265   //=== VK_EXT_headless_surface ===
7266 
7267   enum class HeadlessSurfaceCreateFlagBitsEXT : VkHeadlessSurfaceCreateFlagsEXT
7268   {
7269   };
7270 
to_string(HeadlessSurfaceCreateFlagBitsEXT)7271   VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagBitsEXT )
7272   {
7273     return "(void)";
7274   }
7275 
7276   //=== VK_EXT_line_rasterization ===
7277 
7278   enum class LineRasterizationModeEXT
7279   {
7280     eDefault           = VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT,
7281     eRectangular       = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT,
7282     eBresenham         = VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT,
7283     eRectangularSmooth = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT
7284   };
7285 
to_string(LineRasterizationModeEXT value)7286   VULKAN_HPP_INLINE std::string to_string( LineRasterizationModeEXT value )
7287   {
7288     switch ( value )
7289     {
7290       case LineRasterizationModeEXT::eDefault: return "Default";
7291       case LineRasterizationModeEXT::eRectangular: return "Rectangular";
7292       case LineRasterizationModeEXT::eBresenham: return "Bresenham";
7293       case LineRasterizationModeEXT::eRectangularSmooth: return "RectangularSmooth";
7294       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7295     }
7296   }
7297 
7298   //=== VK_KHR_pipeline_executable_properties ===
7299 
7300   enum class PipelineExecutableStatisticFormatKHR
7301   {
7302     eBool32  = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR,
7303     eInt64   = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR,
7304     eUint64  = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR,
7305     eFloat64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR
7306   };
7307 
to_string(PipelineExecutableStatisticFormatKHR value)7308   VULKAN_HPP_INLINE std::string to_string( PipelineExecutableStatisticFormatKHR value )
7309   {
7310     switch ( value )
7311     {
7312       case PipelineExecutableStatisticFormatKHR::eBool32: return "Bool32";
7313       case PipelineExecutableStatisticFormatKHR::eInt64: return "Int64";
7314       case PipelineExecutableStatisticFormatKHR::eUint64: return "Uint64";
7315       case PipelineExecutableStatisticFormatKHR::eFloat64: return "Float64";
7316       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7317     }
7318   }
7319 
7320   //=== VK_NV_device_generated_commands ===
7321 
7322   enum class IndirectStateFlagBitsNV : VkIndirectStateFlagsNV
7323   {
7324     eFlagFrontface = VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV
7325   };
7326 
to_string(IndirectStateFlagBitsNV value)7327   VULKAN_HPP_INLINE std::string to_string( IndirectStateFlagBitsNV value )
7328   {
7329     switch ( value )
7330     {
7331       case IndirectStateFlagBitsNV::eFlagFrontface: return "FlagFrontface";
7332       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7333     }
7334   }
7335 
7336   enum class IndirectCommandsTokenTypeNV
7337   {
7338     eShaderGroup  = VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV,
7339     eStateFlags   = VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV,
7340     eIndexBuffer  = VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV,
7341     eVertexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV,
7342     ePushConstant = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV,
7343     eDrawIndexed  = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV,
7344     eDraw         = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV,
7345     eDrawTasks    = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV
7346   };
7347 
to_string(IndirectCommandsTokenTypeNV value)7348   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsTokenTypeNV value )
7349   {
7350     switch ( value )
7351     {
7352       case IndirectCommandsTokenTypeNV::eShaderGroup: return "ShaderGroup";
7353       case IndirectCommandsTokenTypeNV::eStateFlags: return "StateFlags";
7354       case IndirectCommandsTokenTypeNV::eIndexBuffer: return "IndexBuffer";
7355       case IndirectCommandsTokenTypeNV::eVertexBuffer: return "VertexBuffer";
7356       case IndirectCommandsTokenTypeNV::ePushConstant: return "PushConstant";
7357       case IndirectCommandsTokenTypeNV::eDrawIndexed: return "DrawIndexed";
7358       case IndirectCommandsTokenTypeNV::eDraw: return "Draw";
7359       case IndirectCommandsTokenTypeNV::eDrawTasks: return "DrawTasks";
7360       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7361     }
7362   }
7363 
7364   enum class IndirectCommandsLayoutUsageFlagBitsNV : VkIndirectCommandsLayoutUsageFlagsNV
7365   {
7366     eExplicitPreprocess = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV,
7367     eIndexedSequences   = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV,
7368     eUnorderedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV
7369   };
7370 
to_string(IndirectCommandsLayoutUsageFlagBitsNV value)7371   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagBitsNV value )
7372   {
7373     switch ( value )
7374     {
7375       case IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess: return "ExplicitPreprocess";
7376       case IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences: return "IndexedSequences";
7377       case IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences: return "UnorderedSequences";
7378       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7379     }
7380   }
7381 
7382   //=== VK_EXT_device_memory_report ===
7383 
7384   enum class DeviceMemoryReportEventTypeEXT
7385   {
7386     eAllocate         = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT,
7387     eFree             = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT,
7388     eImport           = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT,
7389     eUnimport         = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT,
7390     eAllocationFailed = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT
7391   };
7392 
to_string(DeviceMemoryReportEventTypeEXT value)7393   VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportEventTypeEXT value )
7394   {
7395     switch ( value )
7396     {
7397       case DeviceMemoryReportEventTypeEXT::eAllocate: return "Allocate";
7398       case DeviceMemoryReportEventTypeEXT::eFree: return "Free";
7399       case DeviceMemoryReportEventTypeEXT::eImport: return "Import";
7400       case DeviceMemoryReportEventTypeEXT::eUnimport: return "Unimport";
7401       case DeviceMemoryReportEventTypeEXT::eAllocationFailed: return "AllocationFailed";
7402       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7403     }
7404   }
7405 
7406   enum class DeviceMemoryReportFlagBitsEXT : VkDeviceMemoryReportFlagsEXT
7407   {
7408   };
7409 
to_string(DeviceMemoryReportFlagBitsEXT)7410   VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportFlagBitsEXT )
7411   {
7412     return "(void)";
7413   }
7414 
7415   //=== VK_EXT_private_data ===
7416 
7417   enum class PrivateDataSlotCreateFlagBitsEXT : VkPrivateDataSlotCreateFlagsEXT
7418   {
7419   };
7420 
to_string(PrivateDataSlotCreateFlagBitsEXT)7421   VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagBitsEXT )
7422   {
7423     return "(void)";
7424   }
7425 
7426 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7427   //=== VK_KHR_video_encode_queue ===
7428 
7429   enum class VideoEncodeFlagBitsKHR : VkVideoEncodeFlagsKHR
7430   {
7431     eDefault   = VK_VIDEO_ENCODE_DEFAULT_KHR,
7432     eReserved0 = VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR
7433   };
7434 
to_string(VideoEncodeFlagBitsKHR value)7435   VULKAN_HPP_INLINE std::string to_string( VideoEncodeFlagBitsKHR value )
7436   {
7437     switch ( value )
7438     {
7439       case VideoEncodeFlagBitsKHR::eDefault: return "Default";
7440       case VideoEncodeFlagBitsKHR::eReserved0: return "Reserved0";
7441       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7442     }
7443   }
7444 
7445   enum class VideoEncodeRateControlFlagBitsKHR : VkVideoEncodeRateControlFlagsKHR
7446   {
7447     eDefault = VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR,
7448     eReset   = VK_VIDEO_ENCODE_RATE_CONTROL_RESET_BIT_KHR
7449   };
7450 
to_string(VideoEncodeRateControlFlagBitsKHR value)7451   VULKAN_HPP_INLINE std::string to_string( VideoEncodeRateControlFlagBitsKHR value )
7452   {
7453     switch ( value )
7454     {
7455       case VideoEncodeRateControlFlagBitsKHR::eDefault: return "Default";
7456       case VideoEncodeRateControlFlagBitsKHR::eReset: return "Reset";
7457       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7458     }
7459   }
7460 
7461   enum class VideoEncodeRateControlModeFlagBitsKHR : VkVideoEncodeRateControlModeFlagsKHR
7462   {
7463     eNone = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR,
7464     eCbr  = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR,
7465     eVbr  = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR
7466   };
7467 
to_string(VideoEncodeRateControlModeFlagBitsKHR value)7468   VULKAN_HPP_INLINE std::string to_string( VideoEncodeRateControlModeFlagBitsKHR value )
7469   {
7470     switch ( value )
7471     {
7472       case VideoEncodeRateControlModeFlagBitsKHR::eNone: return "None";
7473       case VideoEncodeRateControlModeFlagBitsKHR::eCbr: return "Cbr";
7474       case VideoEncodeRateControlModeFlagBitsKHR::eVbr: return "Vbr";
7475       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7476     }
7477   }
7478 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7479 
7480   //=== VK_NV_device_diagnostics_config ===
7481 
7482   enum class DeviceDiagnosticsConfigFlagBitsNV : VkDeviceDiagnosticsConfigFlagsNV
7483   {
7484     eEnableShaderDebugInfo      = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV,
7485     eEnableResourceTracking     = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV,
7486     eEnableAutomaticCheckpoints = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV
7487   };
7488 
to_string(DeviceDiagnosticsConfigFlagBitsNV value)7489   VULKAN_HPP_INLINE std::string to_string( DeviceDiagnosticsConfigFlagBitsNV value )
7490   {
7491     switch ( value )
7492     {
7493       case DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo: return "EnableShaderDebugInfo";
7494       case DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking: return "EnableResourceTracking";
7495       case DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints: return "EnableAutomaticCheckpoints";
7496       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7497     }
7498   }
7499 
7500   //=== VK_KHR_synchronization2 ===
7501 
7502   enum class PipelineStageFlagBits2KHR : VkPipelineStageFlags2KHR
7503   {
7504     eNone                         = VK_PIPELINE_STAGE_2_NONE_KHR,
7505     eTopOfPipe                    = VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR,
7506     eDrawIndirect                 = VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR,
7507     eVertexInput                  = VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR,
7508     eVertexShader                 = VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR,
7509     eTessellationControlShader    = VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR,
7510     eTessellationEvaluationShader = VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR,
7511     eGeometryShader               = VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR,
7512     eFragmentShader               = VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR,
7513     eEarlyFragmentTests           = VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR,
7514     eLateFragmentTests            = VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR,
7515     eColorAttachmentOutput        = VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR,
7516     eComputeShader                = VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR,
7517     eAllTransfer                  = VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR,
7518     eBottomOfPipe                 = VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR,
7519     eHost                         = VK_PIPELINE_STAGE_2_HOST_BIT_KHR,
7520     eAllGraphics                  = VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR,
7521     eAllCommands                  = VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR,
7522     eCopy                         = VK_PIPELINE_STAGE_2_COPY_BIT_KHR,
7523     eResolve                      = VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR,
7524     eBlit                         = VK_PIPELINE_STAGE_2_BLIT_BIT_KHR,
7525     eClear                        = VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR,
7526     eIndexInput                   = VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR,
7527     eVertexAttributeInput         = VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR,
7528     ePreRasterizationShaders      = VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR,
7529 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7530     eVideoDecode = VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR,
7531     eVideoEncode = VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR,
7532 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7533     eTransformFeedbackEXT          = VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,
7534     eConditionalRenderingEXT       = VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT,
7535     eCommandPreprocessNV           = VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV,
7536     eFragmentShadingRateAttachment = VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
7537     eAccelerationStructureBuild    = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
7538     eRayTracingShader              = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR,
7539     eFragmentDensityProcessEXT     = VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT,
7540     eTaskShaderNV                  = VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV,
7541     eMeshShaderNV                  = VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV,
7542     eSubpassShadingHUAWEI          = VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI,
7543     eAccelerationStructureBuildNV  = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
7544     eRayTracingShaderNV            = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV,
7545     eShadingRateImageNV            = VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV,
7546     eTransfer                      = VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR
7547   };
7548 
to_string(PipelineStageFlagBits2KHR value)7549   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlagBits2KHR value )
7550   {
7551     switch ( value )
7552     {
7553       case PipelineStageFlagBits2KHR::eNone: return "None";
7554       case PipelineStageFlagBits2KHR::eTopOfPipe: return "TopOfPipe";
7555       case PipelineStageFlagBits2KHR::eDrawIndirect: return "DrawIndirect";
7556       case PipelineStageFlagBits2KHR::eVertexInput: return "VertexInput";
7557       case PipelineStageFlagBits2KHR::eVertexShader: return "VertexShader";
7558       case PipelineStageFlagBits2KHR::eTessellationControlShader: return "TessellationControlShader";
7559       case PipelineStageFlagBits2KHR::eTessellationEvaluationShader: return "TessellationEvaluationShader";
7560       case PipelineStageFlagBits2KHR::eGeometryShader: return "GeometryShader";
7561       case PipelineStageFlagBits2KHR::eFragmentShader: return "FragmentShader";
7562       case PipelineStageFlagBits2KHR::eEarlyFragmentTests: return "EarlyFragmentTests";
7563       case PipelineStageFlagBits2KHR::eLateFragmentTests: return "LateFragmentTests";
7564       case PipelineStageFlagBits2KHR::eColorAttachmentOutput: return "ColorAttachmentOutput";
7565       case PipelineStageFlagBits2KHR::eComputeShader: return "ComputeShader";
7566       case PipelineStageFlagBits2KHR::eAllTransfer: return "AllTransfer";
7567       case PipelineStageFlagBits2KHR::eBottomOfPipe: return "BottomOfPipe";
7568       case PipelineStageFlagBits2KHR::eHost: return "Host";
7569       case PipelineStageFlagBits2KHR::eAllGraphics: return "AllGraphics";
7570       case PipelineStageFlagBits2KHR::eAllCommands: return "AllCommands";
7571       case PipelineStageFlagBits2KHR::eCopy: return "Copy";
7572       case PipelineStageFlagBits2KHR::eResolve: return "Resolve";
7573       case PipelineStageFlagBits2KHR::eBlit: return "Blit";
7574       case PipelineStageFlagBits2KHR::eClear: return "Clear";
7575       case PipelineStageFlagBits2KHR::eIndexInput: return "IndexInput";
7576       case PipelineStageFlagBits2KHR::eVertexAttributeInput: return "VertexAttributeInput";
7577       case PipelineStageFlagBits2KHR::ePreRasterizationShaders: return "PreRasterizationShaders";
7578 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7579       case PipelineStageFlagBits2KHR::eVideoDecode: return "VideoDecode";
7580       case PipelineStageFlagBits2KHR::eVideoEncode: return "VideoEncode";
7581 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7582       case PipelineStageFlagBits2KHR::eTransformFeedbackEXT: return "TransformFeedbackEXT";
7583       case PipelineStageFlagBits2KHR::eConditionalRenderingEXT: return "ConditionalRenderingEXT";
7584       case PipelineStageFlagBits2KHR::eCommandPreprocessNV: return "CommandPreprocessNV";
7585       case PipelineStageFlagBits2KHR::eFragmentShadingRateAttachment: return "FragmentShadingRateAttachment";
7586       case PipelineStageFlagBits2KHR::eAccelerationStructureBuild: return "AccelerationStructureBuild";
7587       case PipelineStageFlagBits2KHR::eRayTracingShader: return "RayTracingShader";
7588       case PipelineStageFlagBits2KHR::eFragmentDensityProcessEXT: return "FragmentDensityProcessEXT";
7589       case PipelineStageFlagBits2KHR::eTaskShaderNV: return "TaskShaderNV";
7590       case PipelineStageFlagBits2KHR::eMeshShaderNV: return "MeshShaderNV";
7591       case PipelineStageFlagBits2KHR::eSubpassShadingHUAWEI: return "SubpassShadingHUAWEI";
7592       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7593     }
7594   }
7595 
7596   enum class AccessFlagBits2KHR : VkAccessFlags2KHR
7597   {
7598     eNone                        = VK_ACCESS_2_NONE_KHR,
7599     eIndirectCommandRead         = VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR,
7600     eIndexRead                   = VK_ACCESS_2_INDEX_READ_BIT_KHR,
7601     eVertexAttributeRead         = VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR,
7602     eUniformRead                 = VK_ACCESS_2_UNIFORM_READ_BIT_KHR,
7603     eInputAttachmentRead         = VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR,
7604     eShaderRead                  = VK_ACCESS_2_SHADER_READ_BIT_KHR,
7605     eShaderWrite                 = VK_ACCESS_2_SHADER_WRITE_BIT_KHR,
7606     eColorAttachmentRead         = VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR,
7607     eColorAttachmentWrite        = VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR,
7608     eDepthStencilAttachmentRead  = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR,
7609     eDepthStencilAttachmentWrite = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR,
7610     eTransferRead                = VK_ACCESS_2_TRANSFER_READ_BIT_KHR,
7611     eTransferWrite               = VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR,
7612     eHostRead                    = VK_ACCESS_2_HOST_READ_BIT_KHR,
7613     eHostWrite                   = VK_ACCESS_2_HOST_WRITE_BIT_KHR,
7614     eMemoryRead                  = VK_ACCESS_2_MEMORY_READ_BIT_KHR,
7615     eMemoryWrite                 = VK_ACCESS_2_MEMORY_WRITE_BIT_KHR,
7616     eShaderSampledRead           = VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR,
7617     eShaderStorageRead           = VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR,
7618     eShaderStorageWrite          = VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR,
7619 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7620     eVideoDecodeRead  = VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR,
7621     eVideoDecodeWrite = VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,
7622     eVideoEncodeRead  = VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,
7623     eVideoEncodeWrite = VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,
7624 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7625     eTransformFeedbackWriteEXT         = VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
7626     eTransformFeedbackCounterReadEXT   = VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,
7627     eTransformFeedbackCounterWriteEXT  = VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
7628     eConditionalRenderingReadEXT       = VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT,
7629     eCommandPreprocessReadNV           = VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV,
7630     eCommandPreprocessWriteNV          = VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV,
7631     eFragmentShadingRateAttachmentRead = VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
7632     eAccelerationStructureRead         = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,
7633     eAccelerationStructureWrite        = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
7634     eFragmentDensityMapReadEXT         = VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,
7635     eColorAttachmentReadNoncoherentEXT = VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
7636     eAccelerationStructureReadNV       = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV,
7637     eAccelerationStructureWriteNV      = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
7638     eShadingRateImageReadNV            = VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV
7639   };
7640 
to_string(AccessFlagBits2KHR value)7641   VULKAN_HPP_INLINE std::string to_string( AccessFlagBits2KHR value )
7642   {
7643     switch ( value )
7644     {
7645       case AccessFlagBits2KHR::eNone: return "None";
7646       case AccessFlagBits2KHR::eIndirectCommandRead: return "IndirectCommandRead";
7647       case AccessFlagBits2KHR::eIndexRead: return "IndexRead";
7648       case AccessFlagBits2KHR::eVertexAttributeRead: return "VertexAttributeRead";
7649       case AccessFlagBits2KHR::eUniformRead: return "UniformRead";
7650       case AccessFlagBits2KHR::eInputAttachmentRead: return "InputAttachmentRead";
7651       case AccessFlagBits2KHR::eShaderRead: return "ShaderRead";
7652       case AccessFlagBits2KHR::eShaderWrite: return "ShaderWrite";
7653       case AccessFlagBits2KHR::eColorAttachmentRead: return "ColorAttachmentRead";
7654       case AccessFlagBits2KHR::eColorAttachmentWrite: return "ColorAttachmentWrite";
7655       case AccessFlagBits2KHR::eDepthStencilAttachmentRead: return "DepthStencilAttachmentRead";
7656       case AccessFlagBits2KHR::eDepthStencilAttachmentWrite: return "DepthStencilAttachmentWrite";
7657       case AccessFlagBits2KHR::eTransferRead: return "TransferRead";
7658       case AccessFlagBits2KHR::eTransferWrite: return "TransferWrite";
7659       case AccessFlagBits2KHR::eHostRead: return "HostRead";
7660       case AccessFlagBits2KHR::eHostWrite: return "HostWrite";
7661       case AccessFlagBits2KHR::eMemoryRead: return "MemoryRead";
7662       case AccessFlagBits2KHR::eMemoryWrite: return "MemoryWrite";
7663       case AccessFlagBits2KHR::eShaderSampledRead: return "ShaderSampledRead";
7664       case AccessFlagBits2KHR::eShaderStorageRead: return "ShaderStorageRead";
7665       case AccessFlagBits2KHR::eShaderStorageWrite: return "ShaderStorageWrite";
7666 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7667       case AccessFlagBits2KHR::eVideoDecodeRead: return "VideoDecodeRead";
7668       case AccessFlagBits2KHR::eVideoDecodeWrite: return "VideoDecodeWrite";
7669       case AccessFlagBits2KHR::eVideoEncodeRead: return "VideoEncodeRead";
7670       case AccessFlagBits2KHR::eVideoEncodeWrite: return "VideoEncodeWrite";
7671 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7672       case AccessFlagBits2KHR::eTransformFeedbackWriteEXT: return "TransformFeedbackWriteEXT";
7673       case AccessFlagBits2KHR::eTransformFeedbackCounterReadEXT: return "TransformFeedbackCounterReadEXT";
7674       case AccessFlagBits2KHR::eTransformFeedbackCounterWriteEXT: return "TransformFeedbackCounterWriteEXT";
7675       case AccessFlagBits2KHR::eConditionalRenderingReadEXT: return "ConditionalRenderingReadEXT";
7676       case AccessFlagBits2KHR::eCommandPreprocessReadNV: return "CommandPreprocessReadNV";
7677       case AccessFlagBits2KHR::eCommandPreprocessWriteNV: return "CommandPreprocessWriteNV";
7678       case AccessFlagBits2KHR::eFragmentShadingRateAttachmentRead: return "FragmentShadingRateAttachmentRead";
7679       case AccessFlagBits2KHR::eAccelerationStructureRead: return "AccelerationStructureRead";
7680       case AccessFlagBits2KHR::eAccelerationStructureWrite: return "AccelerationStructureWrite";
7681       case AccessFlagBits2KHR::eFragmentDensityMapReadEXT: return "FragmentDensityMapReadEXT";
7682       case AccessFlagBits2KHR::eColorAttachmentReadNoncoherentEXT: return "ColorAttachmentReadNoncoherentEXT";
7683       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7684     }
7685   }
7686 
7687   enum class SubmitFlagBitsKHR : VkSubmitFlagsKHR
7688   {
7689     eProtected = VK_SUBMIT_PROTECTED_BIT_KHR
7690   };
7691 
to_string(SubmitFlagBitsKHR value)7692   VULKAN_HPP_INLINE std::string to_string( SubmitFlagBitsKHR value )
7693   {
7694     switch ( value )
7695     {
7696       case SubmitFlagBitsKHR::eProtected: return "Protected";
7697       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7698     }
7699   }
7700 
7701   //=== VK_NV_fragment_shading_rate_enums ===
7702 
7703   enum class FragmentShadingRateNV
7704   {
7705     e1InvocationPerPixel     = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV,
7706     e1InvocationPer1X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV,
7707     e1InvocationPer2X1Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV,
7708     e1InvocationPer2X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV,
7709     e1InvocationPer2X4Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV,
7710     e1InvocationPer4X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV,
7711     e1InvocationPer4X4Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV,
7712     e2InvocationsPerPixel    = VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV,
7713     e4InvocationsPerPixel    = VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV,
7714     e8InvocationsPerPixel    = VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV,
7715     e16InvocationsPerPixel   = VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV,
7716     eNoInvocations           = VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV
7717   };
7718 
to_string(FragmentShadingRateNV value)7719   VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateNV value )
7720   {
7721     switch ( value )
7722     {
7723       case FragmentShadingRateNV::e1InvocationPerPixel: return "1InvocationPerPixel";
7724       case FragmentShadingRateNV::e1InvocationPer1X2Pixels: return "1InvocationPer1X2Pixels";
7725       case FragmentShadingRateNV::e1InvocationPer2X1Pixels: return "1InvocationPer2X1Pixels";
7726       case FragmentShadingRateNV::e1InvocationPer2X2Pixels: return "1InvocationPer2X2Pixels";
7727       case FragmentShadingRateNV::e1InvocationPer2X4Pixels: return "1InvocationPer2X4Pixels";
7728       case FragmentShadingRateNV::e1InvocationPer4X2Pixels: return "1InvocationPer4X2Pixels";
7729       case FragmentShadingRateNV::e1InvocationPer4X4Pixels: return "1InvocationPer4X4Pixels";
7730       case FragmentShadingRateNV::e2InvocationsPerPixel: return "2InvocationsPerPixel";
7731       case FragmentShadingRateNV::e4InvocationsPerPixel: return "4InvocationsPerPixel";
7732       case FragmentShadingRateNV::e8InvocationsPerPixel: return "8InvocationsPerPixel";
7733       case FragmentShadingRateNV::e16InvocationsPerPixel: return "16InvocationsPerPixel";
7734       case FragmentShadingRateNV::eNoInvocations: return "NoInvocations";
7735       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7736     }
7737   }
7738 
7739   enum class FragmentShadingRateTypeNV
7740   {
7741     eFragmentSize = VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV,
7742     eEnums        = VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV
7743   };
7744 
to_string(FragmentShadingRateTypeNV value)7745   VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateTypeNV value )
7746   {
7747     switch ( value )
7748     {
7749       case FragmentShadingRateTypeNV::eFragmentSize: return "FragmentSize";
7750       case FragmentShadingRateTypeNV::eEnums: return "Enums";
7751       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7752     }
7753   }
7754 
7755   //=== VK_NV_ray_tracing_motion_blur ===
7756 
7757   enum class AccelerationStructureMotionInstanceTypeNV
7758   {
7759     eStatic       = VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV,
7760     eMatrixMotion = VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV,
7761     eSrtMotion    = VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV
7762   };
7763 
to_string(AccelerationStructureMotionInstanceTypeNV value)7764   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMotionInstanceTypeNV value )
7765   {
7766     switch ( value )
7767     {
7768       case AccelerationStructureMotionInstanceTypeNV::eStatic: return "Static";
7769       case AccelerationStructureMotionInstanceTypeNV::eMatrixMotion: return "MatrixMotion";
7770       case AccelerationStructureMotionInstanceTypeNV::eSrtMotion: return "SrtMotion";
7771       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7772     }
7773   }
7774 
7775   enum class AccelerationStructureMotionInfoFlagBitsNV : VkAccelerationStructureMotionInfoFlagsNV
7776   {
7777   };
7778 
to_string(AccelerationStructureMotionInfoFlagBitsNV)7779   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMotionInfoFlagBitsNV )
7780   {
7781     return "(void)";
7782   }
7783 
7784   enum class AccelerationStructureMotionInstanceFlagBitsNV : VkAccelerationStructureMotionInstanceFlagsNV
7785   {
7786   };
7787 
to_string(AccelerationStructureMotionInstanceFlagBitsNV)7788   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMotionInstanceFlagBitsNV )
7789   {
7790     return "(void)";
7791   }
7792 
7793 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
7794   //=== VK_EXT_directfb_surface ===
7795 
7796   enum class DirectFBSurfaceCreateFlagBitsEXT : VkDirectFBSurfaceCreateFlagsEXT
7797   {
7798   };
7799 
to_string(DirectFBSurfaceCreateFlagBitsEXT)7800   VULKAN_HPP_INLINE std::string to_string( DirectFBSurfaceCreateFlagBitsEXT )
7801   {
7802     return "(void)";
7803   }
7804 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
7805 
7806   //=== VK_KHR_ray_tracing_pipeline ===
7807 
7808   enum class RayTracingShaderGroupTypeKHR
7809   {
7810     eGeneral            = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
7811     eTrianglesHitGroup  = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
7812     eProceduralHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR
7813   };
7814   using RayTracingShaderGroupTypeNV = RayTracingShaderGroupTypeKHR;
7815 
to_string(RayTracingShaderGroupTypeKHR value)7816   VULKAN_HPP_INLINE std::string to_string( RayTracingShaderGroupTypeKHR value )
7817   {
7818     switch ( value )
7819     {
7820       case RayTracingShaderGroupTypeKHR::eGeneral: return "General";
7821       case RayTracingShaderGroupTypeKHR::eTrianglesHitGroup: return "TrianglesHitGroup";
7822       case RayTracingShaderGroupTypeKHR::eProceduralHitGroup: return "ProceduralHitGroup";
7823       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7824     }
7825   }
7826 
7827   enum class ShaderGroupShaderKHR
7828   {
7829     eGeneral      = VK_SHADER_GROUP_SHADER_GENERAL_KHR,
7830     eClosestHit   = VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR,
7831     eAnyHit       = VK_SHADER_GROUP_SHADER_ANY_HIT_KHR,
7832     eIntersection = VK_SHADER_GROUP_SHADER_INTERSECTION_KHR
7833   };
7834 
to_string(ShaderGroupShaderKHR value)7835   VULKAN_HPP_INLINE std::string to_string( ShaderGroupShaderKHR value )
7836   {
7837     switch ( value )
7838     {
7839       case ShaderGroupShaderKHR::eGeneral: return "General";
7840       case ShaderGroupShaderKHR::eClosestHit: return "ClosestHit";
7841       case ShaderGroupShaderKHR::eAnyHit: return "AnyHit";
7842       case ShaderGroupShaderKHR::eIntersection: return "Intersection";
7843       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
7844     }
7845   }
7846 
7847 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
7848   //=== VK_QNX_screen_surface ===
7849 
7850   enum class ScreenSurfaceCreateFlagBitsQNX : VkScreenSurfaceCreateFlagsQNX
7851   {
7852   };
7853 
to_string(ScreenSurfaceCreateFlagBitsQNX)7854   VULKAN_HPP_INLINE std::string to_string( ScreenSurfaceCreateFlagBitsQNX )
7855   {
7856     return "(void)";
7857   }
7858 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
7859 
7860   template <ObjectType value>
7861   struct cpp_type
7862   {};
7863 
7864   template <typename T>
7865   struct IndexTypeValue
7866   {};
7867 
7868   template <>
7869   struct IndexTypeValue<uint16_t>
7870   {
7871     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint16;
7872   };
7873 
7874   template <>
7875   struct CppType<IndexType, IndexType::eUint16>
7876   {
7877     using Type = uint16_t;
7878   };
7879 
7880   template <>
7881   struct IndexTypeValue<uint32_t>
7882   {
7883     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint32;
7884   };
7885 
7886   template <>
7887   struct CppType<IndexType, IndexType::eUint32>
7888   {
7889     using Type = uint32_t;
7890   };
7891 
7892   template <>
7893   struct IndexTypeValue<uint8_t>
7894   {
7895     static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint8EXT;
7896   };
7897 
7898   template <>
7899   struct CppType<IndexType, IndexType::eUint8EXT>
7900   {
7901     using Type = uint8_t;
7902   };
7903 
7904   //================
7905   //=== BITMASKs ===
7906   //================
7907 
7908   //=== VK_VERSION_1_0 ===
7909 
7910   using FormatFeatureFlags = Flags<FormatFeatureFlagBits>;
7911 
7912   template <>
7913   struct FlagTraits<FormatFeatureFlagBits>
7914   {
7915     enum : VkFlags
7916     {
7917       allFlags =
7918         VkFlags( FormatFeatureFlagBits::eSampledImage ) | VkFlags( FormatFeatureFlagBits::eStorageImage ) |
7919         VkFlags( FormatFeatureFlagBits::eStorageImageAtomic ) | VkFlags( FormatFeatureFlagBits::eUniformTexelBuffer ) |
7920         VkFlags( FormatFeatureFlagBits::eStorageTexelBuffer ) |
7921         VkFlags( FormatFeatureFlagBits::eStorageTexelBufferAtomic ) | VkFlags( FormatFeatureFlagBits::eVertexBuffer ) |
7922         VkFlags( FormatFeatureFlagBits::eColorAttachment ) | VkFlags( FormatFeatureFlagBits::eColorAttachmentBlend ) |
7923         VkFlags( FormatFeatureFlagBits::eDepthStencilAttachment ) | VkFlags( FormatFeatureFlagBits::eBlitSrc ) |
7924         VkFlags( FormatFeatureFlagBits::eBlitDst ) | VkFlags( FormatFeatureFlagBits::eSampledImageFilterLinear ) |
7925         VkFlags( FormatFeatureFlagBits::eTransferSrc ) | VkFlags( FormatFeatureFlagBits::eTransferDst ) |
7926         VkFlags( FormatFeatureFlagBits::eMidpointChromaSamples ) |
7927         VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter ) |
7928         VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter ) |
7929         VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit ) |
7930         VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable ) |
7931         VkFlags( FormatFeatureFlagBits::eDisjoint ) | VkFlags( FormatFeatureFlagBits::eCositedChromaSamples ) |
7932         VkFlags( FormatFeatureFlagBits::eSampledImageFilterMinmax ) |
7933         VkFlags( FormatFeatureFlagBits::eSampledImageFilterCubicIMG )
7934 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7935         | VkFlags( FormatFeatureFlagBits::eVideoDecodeOutputKHR ) | VkFlags( FormatFeatureFlagBits::eVideoDecodeDpbKHR )
7936 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7937         | VkFlags( FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR ) |
7938         VkFlags( FormatFeatureFlagBits::eFragmentDensityMapEXT ) |
7939         VkFlags( FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR )
7940 #if defined( VK_ENABLE_BETA_EXTENSIONS )
7941         | VkFlags( FormatFeatureFlagBits::eVideoEncodeInputKHR ) | VkFlags( FormatFeatureFlagBits::eVideoEncodeDpbKHR )
7942 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
7943     };
7944   };
7945 
operator |(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)7946   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator|( FormatFeatureFlagBits bit0,
7947                                                                        FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
7948   {
7949     return FormatFeatureFlags( bit0 ) | bit1;
7950   }
7951 
operator &(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)7952   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator&(FormatFeatureFlagBits bit0,
7953                                                                       FormatFeatureFlagBits bit1)VULKAN_HPP_NOEXCEPT
7954   {
7955     return FormatFeatureFlags( bit0 ) & bit1;
7956   }
7957 
operator ^(FormatFeatureFlagBits bit0,FormatFeatureFlagBits bit1)7958   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator^( FormatFeatureFlagBits bit0,
7959                                                                        FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
7960   {
7961     return FormatFeatureFlags( bit0 ) ^ bit1;
7962   }
7963 
operator ~(FormatFeatureFlagBits bits)7964   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator~( FormatFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
7965   {
7966     return ~( FormatFeatureFlags( bits ) );
7967   }
7968 
to_string(FormatFeatureFlags value)7969   VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlags value )
7970   {
7971     if ( !value )
7972       return "{}";
7973 
7974     std::string result;
7975     if ( value & FormatFeatureFlagBits::eSampledImage )
7976       result += "SampledImage | ";
7977     if ( value & FormatFeatureFlagBits::eStorageImage )
7978       result += "StorageImage | ";
7979     if ( value & FormatFeatureFlagBits::eStorageImageAtomic )
7980       result += "StorageImageAtomic | ";
7981     if ( value & FormatFeatureFlagBits::eUniformTexelBuffer )
7982       result += "UniformTexelBuffer | ";
7983     if ( value & FormatFeatureFlagBits::eStorageTexelBuffer )
7984       result += "StorageTexelBuffer | ";
7985     if ( value & FormatFeatureFlagBits::eStorageTexelBufferAtomic )
7986       result += "StorageTexelBufferAtomic | ";
7987     if ( value & FormatFeatureFlagBits::eVertexBuffer )
7988       result += "VertexBuffer | ";
7989     if ( value & FormatFeatureFlagBits::eColorAttachment )
7990       result += "ColorAttachment | ";
7991     if ( value & FormatFeatureFlagBits::eColorAttachmentBlend )
7992       result += "ColorAttachmentBlend | ";
7993     if ( value & FormatFeatureFlagBits::eDepthStencilAttachment )
7994       result += "DepthStencilAttachment | ";
7995     if ( value & FormatFeatureFlagBits::eBlitSrc )
7996       result += "BlitSrc | ";
7997     if ( value & FormatFeatureFlagBits::eBlitDst )
7998       result += "BlitDst | ";
7999     if ( value & FormatFeatureFlagBits::eSampledImageFilterLinear )
8000       result += "SampledImageFilterLinear | ";
8001     if ( value & FormatFeatureFlagBits::eTransferSrc )
8002       result += "TransferSrc | ";
8003     if ( value & FormatFeatureFlagBits::eTransferDst )
8004       result += "TransferDst | ";
8005     if ( value & FormatFeatureFlagBits::eMidpointChromaSamples )
8006       result += "MidpointChromaSamples | ";
8007     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter )
8008       result += "SampledImageYcbcrConversionLinearFilter | ";
8009     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter )
8010       result += "SampledImageYcbcrConversionSeparateReconstructionFilter | ";
8011     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit )
8012       result += "SampledImageYcbcrConversionChromaReconstructionExplicit | ";
8013     if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable )
8014       result += "SampledImageYcbcrConversionChromaReconstructionExplicitForceable | ";
8015     if ( value & FormatFeatureFlagBits::eDisjoint )
8016       result += "Disjoint | ";
8017     if ( value & FormatFeatureFlagBits::eCositedChromaSamples )
8018       result += "CositedChromaSamples | ";
8019     if ( value & FormatFeatureFlagBits::eSampledImageFilterMinmax )
8020       result += "SampledImageFilterMinmax | ";
8021     if ( value & FormatFeatureFlagBits::eSampledImageFilterCubicIMG )
8022       result += "SampledImageFilterCubicIMG | ";
8023 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8024     if ( value & FormatFeatureFlagBits::eVideoDecodeOutputKHR )
8025       result += "VideoDecodeOutputKHR | ";
8026     if ( value & FormatFeatureFlagBits::eVideoDecodeDpbKHR )
8027       result += "VideoDecodeDpbKHR | ";
8028 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8029     if ( value & FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR )
8030       result += "AccelerationStructureVertexBufferKHR | ";
8031     if ( value & FormatFeatureFlagBits::eFragmentDensityMapEXT )
8032       result += "FragmentDensityMapEXT | ";
8033     if ( value & FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR )
8034       result += "FragmentShadingRateAttachmentKHR | ";
8035 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8036     if ( value & FormatFeatureFlagBits::eVideoEncodeInputKHR )
8037       result += "VideoEncodeInputKHR | ";
8038     if ( value & FormatFeatureFlagBits::eVideoEncodeDpbKHR )
8039       result += "VideoEncodeDpbKHR | ";
8040 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8041     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8042   }
8043 
8044   using ImageCreateFlags = Flags<ImageCreateFlagBits>;
8045 
8046   template <>
8047   struct FlagTraits<ImageCreateFlagBits>
8048   {
8049     enum : VkFlags
8050     {
8051       allFlags = VkFlags( ImageCreateFlagBits::eSparseBinding ) | VkFlags( ImageCreateFlagBits::eSparseResidency ) |
8052                  VkFlags( ImageCreateFlagBits::eSparseAliased ) | VkFlags( ImageCreateFlagBits::eMutableFormat ) |
8053                  VkFlags( ImageCreateFlagBits::eCubeCompatible ) | VkFlags( ImageCreateFlagBits::eAlias ) |
8054                  VkFlags( ImageCreateFlagBits::eSplitInstanceBindRegions ) |
8055                  VkFlags( ImageCreateFlagBits::e2DArrayCompatible ) |
8056                  VkFlags( ImageCreateFlagBits::eBlockTexelViewCompatible ) |
8057                  VkFlags( ImageCreateFlagBits::eExtendedUsage ) | VkFlags( ImageCreateFlagBits::eProtected ) |
8058                  VkFlags( ImageCreateFlagBits::eDisjoint ) | VkFlags( ImageCreateFlagBits::eCornerSampledNV ) |
8059                  VkFlags( ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT ) |
8060                  VkFlags( ImageCreateFlagBits::eSubsampledEXT )
8061     };
8062   };
8063 
operator |(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)8064   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator|( ImageCreateFlagBits bit0,
8065                                                                      ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8066   {
8067     return ImageCreateFlags( bit0 ) | bit1;
8068   }
8069 
operator &(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)8070   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator&(ImageCreateFlagBits bit0,
8071                                                                     ImageCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT
8072   {
8073     return ImageCreateFlags( bit0 ) & bit1;
8074   }
8075 
operator ^(ImageCreateFlagBits bit0,ImageCreateFlagBits bit1)8076   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator^( ImageCreateFlagBits bit0,
8077                                                                      ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8078   {
8079     return ImageCreateFlags( bit0 ) ^ bit1;
8080   }
8081 
operator ~(ImageCreateFlagBits bits)8082   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator~( ImageCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
8083   {
8084     return ~( ImageCreateFlags( bits ) );
8085   }
8086 
to_string(ImageCreateFlags value)8087   VULKAN_HPP_INLINE std::string to_string( ImageCreateFlags value )
8088   {
8089     if ( !value )
8090       return "{}";
8091 
8092     std::string result;
8093     if ( value & ImageCreateFlagBits::eSparseBinding )
8094       result += "SparseBinding | ";
8095     if ( value & ImageCreateFlagBits::eSparseResidency )
8096       result += "SparseResidency | ";
8097     if ( value & ImageCreateFlagBits::eSparseAliased )
8098       result += "SparseAliased | ";
8099     if ( value & ImageCreateFlagBits::eMutableFormat )
8100       result += "MutableFormat | ";
8101     if ( value & ImageCreateFlagBits::eCubeCompatible )
8102       result += "CubeCompatible | ";
8103     if ( value & ImageCreateFlagBits::eAlias )
8104       result += "Alias | ";
8105     if ( value & ImageCreateFlagBits::eSplitInstanceBindRegions )
8106       result += "SplitInstanceBindRegions | ";
8107     if ( value & ImageCreateFlagBits::e2DArrayCompatible )
8108       result += "2DArrayCompatible | ";
8109     if ( value & ImageCreateFlagBits::eBlockTexelViewCompatible )
8110       result += "BlockTexelViewCompatible | ";
8111     if ( value & ImageCreateFlagBits::eExtendedUsage )
8112       result += "ExtendedUsage | ";
8113     if ( value & ImageCreateFlagBits::eProtected )
8114       result += "Protected | ";
8115     if ( value & ImageCreateFlagBits::eDisjoint )
8116       result += "Disjoint | ";
8117     if ( value & ImageCreateFlagBits::eCornerSampledNV )
8118       result += "CornerSampledNV | ";
8119     if ( value & ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT )
8120       result += "SampleLocationsCompatibleDepthEXT | ";
8121     if ( value & ImageCreateFlagBits::eSubsampledEXT )
8122       result += "SubsampledEXT | ";
8123     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8124   }
8125 
8126   using ImageUsageFlags = Flags<ImageUsageFlagBits>;
8127 
8128   template <>
8129   struct FlagTraits<ImageUsageFlagBits>
8130   {
8131     enum : VkFlags
8132     {
8133       allFlags = VkFlags( ImageUsageFlagBits::eTransferSrc ) | VkFlags( ImageUsageFlagBits::eTransferDst ) |
8134                  VkFlags( ImageUsageFlagBits::eSampled ) | VkFlags( ImageUsageFlagBits::eStorage ) |
8135                  VkFlags( ImageUsageFlagBits::eColorAttachment ) |
8136                  VkFlags( ImageUsageFlagBits::eDepthStencilAttachment ) |
8137                  VkFlags( ImageUsageFlagBits::eTransientAttachment ) | VkFlags( ImageUsageFlagBits::eInputAttachment )
8138 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8139                  | VkFlags( ImageUsageFlagBits::eVideoDecodeDstKHR ) |
8140                  VkFlags( ImageUsageFlagBits::eVideoDecodeSrcKHR ) | VkFlags( ImageUsageFlagBits::eVideoDecodeDpbKHR )
8141 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8142                  | VkFlags( ImageUsageFlagBits::eFragmentDensityMapEXT ) |
8143                  VkFlags( ImageUsageFlagBits::eFragmentShadingRateAttachmentKHR )
8144 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8145                  | VkFlags( ImageUsageFlagBits::eVideoEncodeDstKHR ) |
8146                  VkFlags( ImageUsageFlagBits::eVideoEncodeSrcKHR ) | VkFlags( ImageUsageFlagBits::eVideoEncodeDpbKHR )
8147 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8148     };
8149   };
8150 
operator |(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)8151   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator|( ImageUsageFlagBits bit0,
8152                                                                     ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8153   {
8154     return ImageUsageFlags( bit0 ) | bit1;
8155   }
8156 
operator &(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)8157   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator&(ImageUsageFlagBits bit0,
8158                                                                    ImageUsageFlagBits bit1)VULKAN_HPP_NOEXCEPT
8159   {
8160     return ImageUsageFlags( bit0 ) & bit1;
8161   }
8162 
operator ^(ImageUsageFlagBits bit0,ImageUsageFlagBits bit1)8163   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator^( ImageUsageFlagBits bit0,
8164                                                                     ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8165   {
8166     return ImageUsageFlags( bit0 ) ^ bit1;
8167   }
8168 
operator ~(ImageUsageFlagBits bits)8169   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator~( ImageUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT
8170   {
8171     return ~( ImageUsageFlags( bits ) );
8172   }
8173 
to_string(ImageUsageFlags value)8174   VULKAN_HPP_INLINE std::string to_string( ImageUsageFlags value )
8175   {
8176     if ( !value )
8177       return "{}";
8178 
8179     std::string result;
8180     if ( value & ImageUsageFlagBits::eTransferSrc )
8181       result += "TransferSrc | ";
8182     if ( value & ImageUsageFlagBits::eTransferDst )
8183       result += "TransferDst | ";
8184     if ( value & ImageUsageFlagBits::eSampled )
8185       result += "Sampled | ";
8186     if ( value & ImageUsageFlagBits::eStorage )
8187       result += "Storage | ";
8188     if ( value & ImageUsageFlagBits::eColorAttachment )
8189       result += "ColorAttachment | ";
8190     if ( value & ImageUsageFlagBits::eDepthStencilAttachment )
8191       result += "DepthStencilAttachment | ";
8192     if ( value & ImageUsageFlagBits::eTransientAttachment )
8193       result += "TransientAttachment | ";
8194     if ( value & ImageUsageFlagBits::eInputAttachment )
8195       result += "InputAttachment | ";
8196 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8197     if ( value & ImageUsageFlagBits::eVideoDecodeDstKHR )
8198       result += "VideoDecodeDstKHR | ";
8199     if ( value & ImageUsageFlagBits::eVideoDecodeSrcKHR )
8200       result += "VideoDecodeSrcKHR | ";
8201     if ( value & ImageUsageFlagBits::eVideoDecodeDpbKHR )
8202       result += "VideoDecodeDpbKHR | ";
8203 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8204     if ( value & ImageUsageFlagBits::eFragmentDensityMapEXT )
8205       result += "FragmentDensityMapEXT | ";
8206     if ( value & ImageUsageFlagBits::eFragmentShadingRateAttachmentKHR )
8207       result += "FragmentShadingRateAttachmentKHR | ";
8208 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8209     if ( value & ImageUsageFlagBits::eVideoEncodeDstKHR )
8210       result += "VideoEncodeDstKHR | ";
8211     if ( value & ImageUsageFlagBits::eVideoEncodeSrcKHR )
8212       result += "VideoEncodeSrcKHR | ";
8213     if ( value & ImageUsageFlagBits::eVideoEncodeDpbKHR )
8214       result += "VideoEncodeDpbKHR | ";
8215 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8216     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8217   }
8218 
8219   using InstanceCreateFlags = Flags<InstanceCreateFlagBits>;
8220 
to_string(InstanceCreateFlags)8221   VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlags )
8222   {
8223     return "{}";
8224   }
8225 
8226   using MemoryHeapFlags = Flags<MemoryHeapFlagBits>;
8227 
8228   template <>
8229   struct FlagTraits<MemoryHeapFlagBits>
8230   {
8231     enum : VkFlags
8232     {
8233       allFlags = VkFlags( MemoryHeapFlagBits::eDeviceLocal ) | VkFlags( MemoryHeapFlagBits::eMultiInstance )
8234     };
8235   };
8236 
operator |(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)8237   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator|( MemoryHeapFlagBits bit0,
8238                                                                     MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8239   {
8240     return MemoryHeapFlags( bit0 ) | bit1;
8241   }
8242 
operator &(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)8243   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator&(MemoryHeapFlagBits bit0,
8244                                                                    MemoryHeapFlagBits bit1)VULKAN_HPP_NOEXCEPT
8245   {
8246     return MemoryHeapFlags( bit0 ) & bit1;
8247   }
8248 
operator ^(MemoryHeapFlagBits bit0,MemoryHeapFlagBits bit1)8249   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator^( MemoryHeapFlagBits bit0,
8250                                                                     MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8251   {
8252     return MemoryHeapFlags( bit0 ) ^ bit1;
8253   }
8254 
operator ~(MemoryHeapFlagBits bits)8255   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator~( MemoryHeapFlagBits bits ) VULKAN_HPP_NOEXCEPT
8256   {
8257     return ~( MemoryHeapFlags( bits ) );
8258   }
8259 
to_string(MemoryHeapFlags value)8260   VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlags value )
8261   {
8262     if ( !value )
8263       return "{}";
8264 
8265     std::string result;
8266     if ( value & MemoryHeapFlagBits::eDeviceLocal )
8267       result += "DeviceLocal | ";
8268     if ( value & MemoryHeapFlagBits::eMultiInstance )
8269       result += "MultiInstance | ";
8270     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8271   }
8272 
8273   using MemoryPropertyFlags = Flags<MemoryPropertyFlagBits>;
8274 
8275   template <>
8276   struct FlagTraits<MemoryPropertyFlagBits>
8277   {
8278     enum : VkFlags
8279     {
8280       allFlags = VkFlags( MemoryPropertyFlagBits::eDeviceLocal ) | VkFlags( MemoryPropertyFlagBits::eHostVisible ) |
8281                  VkFlags( MemoryPropertyFlagBits::eHostCoherent ) | VkFlags( MemoryPropertyFlagBits::eHostCached ) |
8282                  VkFlags( MemoryPropertyFlagBits::eLazilyAllocated ) | VkFlags( MemoryPropertyFlagBits::eProtected ) |
8283                  VkFlags( MemoryPropertyFlagBits::eDeviceCoherentAMD ) |
8284                  VkFlags( MemoryPropertyFlagBits::eDeviceUncachedAMD ) |
8285                  VkFlags( MemoryPropertyFlagBits::eRdmaCapableNV )
8286     };
8287   };
8288 
8289   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags
operator |(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)8290                                          operator|( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8291   {
8292     return MemoryPropertyFlags( bit0 ) | bit1;
8293   }
8294 
operator &(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)8295   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator&(MemoryPropertyFlagBits bit0,
8296                                                                        MemoryPropertyFlagBits bit1)VULKAN_HPP_NOEXCEPT
8297   {
8298     return MemoryPropertyFlags( bit0 ) & bit1;
8299   }
8300 
8301   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags
operator ^(MemoryPropertyFlagBits bit0,MemoryPropertyFlagBits bit1)8302                                          operator^( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8303   {
8304     return MemoryPropertyFlags( bit0 ) ^ bit1;
8305   }
8306 
operator ~(MemoryPropertyFlagBits bits)8307   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator~( MemoryPropertyFlagBits bits )
8308     VULKAN_HPP_NOEXCEPT
8309   {
8310     return ~( MemoryPropertyFlags( bits ) );
8311   }
8312 
to_string(MemoryPropertyFlags value)8313   VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlags value )
8314   {
8315     if ( !value )
8316       return "{}";
8317 
8318     std::string result;
8319     if ( value & MemoryPropertyFlagBits::eDeviceLocal )
8320       result += "DeviceLocal | ";
8321     if ( value & MemoryPropertyFlagBits::eHostVisible )
8322       result += "HostVisible | ";
8323     if ( value & MemoryPropertyFlagBits::eHostCoherent )
8324       result += "HostCoherent | ";
8325     if ( value & MemoryPropertyFlagBits::eHostCached )
8326       result += "HostCached | ";
8327     if ( value & MemoryPropertyFlagBits::eLazilyAllocated )
8328       result += "LazilyAllocated | ";
8329     if ( value & MemoryPropertyFlagBits::eProtected )
8330       result += "Protected | ";
8331     if ( value & MemoryPropertyFlagBits::eDeviceCoherentAMD )
8332       result += "DeviceCoherentAMD | ";
8333     if ( value & MemoryPropertyFlagBits::eDeviceUncachedAMD )
8334       result += "DeviceUncachedAMD | ";
8335     if ( value & MemoryPropertyFlagBits::eRdmaCapableNV )
8336       result += "RdmaCapableNV | ";
8337     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8338   }
8339 
8340   using QueueFlags = Flags<QueueFlagBits>;
8341 
8342   template <>
8343   struct FlagTraits<QueueFlagBits>
8344   {
8345     enum : VkFlags
8346     {
8347       allFlags = VkFlags( QueueFlagBits::eGraphics ) | VkFlags( QueueFlagBits::eCompute ) |
8348                  VkFlags( QueueFlagBits::eTransfer ) | VkFlags( QueueFlagBits::eSparseBinding ) |
8349                  VkFlags( QueueFlagBits::eProtected )
8350 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8351                  | VkFlags( QueueFlagBits::eVideoDecodeKHR ) | VkFlags( QueueFlagBits::eVideoEncodeKHR )
8352 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8353     };
8354   };
8355 
operator |(QueueFlagBits bit0,QueueFlagBits bit1)8356   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator|( QueueFlagBits bit0,
8357                                                                QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8358   {
8359     return QueueFlags( bit0 ) | bit1;
8360   }
8361 
operator &(QueueFlagBits bit0,QueueFlagBits bit1)8362   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator&(QueueFlagBits bit0, QueueFlagBits bit1)VULKAN_HPP_NOEXCEPT
8363   {
8364     return QueueFlags( bit0 ) & bit1;
8365   }
8366 
operator ^(QueueFlagBits bit0,QueueFlagBits bit1)8367   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator^( QueueFlagBits bit0,
8368                                                                QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8369   {
8370     return QueueFlags( bit0 ) ^ bit1;
8371   }
8372 
operator ~(QueueFlagBits bits)8373   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator~( QueueFlagBits bits ) VULKAN_HPP_NOEXCEPT
8374   {
8375     return ~( QueueFlags( bits ) );
8376   }
8377 
to_string(QueueFlags value)8378   VULKAN_HPP_INLINE std::string to_string( QueueFlags value )
8379   {
8380     if ( !value )
8381       return "{}";
8382 
8383     std::string result;
8384     if ( value & QueueFlagBits::eGraphics )
8385       result += "Graphics | ";
8386     if ( value & QueueFlagBits::eCompute )
8387       result += "Compute | ";
8388     if ( value & QueueFlagBits::eTransfer )
8389       result += "Transfer | ";
8390     if ( value & QueueFlagBits::eSparseBinding )
8391       result += "SparseBinding | ";
8392     if ( value & QueueFlagBits::eProtected )
8393       result += "Protected | ";
8394 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8395     if ( value & QueueFlagBits::eVideoDecodeKHR )
8396       result += "VideoDecodeKHR | ";
8397     if ( value & QueueFlagBits::eVideoEncodeKHR )
8398       result += "VideoEncodeKHR | ";
8399 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8400     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8401   }
8402 
8403   using SampleCountFlags = Flags<SampleCountFlagBits>;
8404 
8405   template <>
8406   struct FlagTraits<SampleCountFlagBits>
8407   {
8408     enum : VkFlags
8409     {
8410       allFlags = VkFlags( SampleCountFlagBits::e1 ) | VkFlags( SampleCountFlagBits::e2 ) |
8411                  VkFlags( SampleCountFlagBits::e4 ) | VkFlags( SampleCountFlagBits::e8 ) |
8412                  VkFlags( SampleCountFlagBits::e16 ) | VkFlags( SampleCountFlagBits::e32 ) |
8413                  VkFlags( SampleCountFlagBits::e64 )
8414     };
8415   };
8416 
operator |(SampleCountFlagBits bit0,SampleCountFlagBits bit1)8417   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator|( SampleCountFlagBits bit0,
8418                                                                      SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8419   {
8420     return SampleCountFlags( bit0 ) | bit1;
8421   }
8422 
operator &(SampleCountFlagBits bit0,SampleCountFlagBits bit1)8423   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator&(SampleCountFlagBits bit0,
8424                                                                     SampleCountFlagBits bit1)VULKAN_HPP_NOEXCEPT
8425   {
8426     return SampleCountFlags( bit0 ) & bit1;
8427   }
8428 
operator ^(SampleCountFlagBits bit0,SampleCountFlagBits bit1)8429   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator^( SampleCountFlagBits bit0,
8430                                                                      SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8431   {
8432     return SampleCountFlags( bit0 ) ^ bit1;
8433   }
8434 
operator ~(SampleCountFlagBits bits)8435   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator~( SampleCountFlagBits bits ) VULKAN_HPP_NOEXCEPT
8436   {
8437     return ~( SampleCountFlags( bits ) );
8438   }
8439 
to_string(SampleCountFlags value)8440   VULKAN_HPP_INLINE std::string to_string( SampleCountFlags value )
8441   {
8442     if ( !value )
8443       return "{}";
8444 
8445     std::string result;
8446     if ( value & SampleCountFlagBits::e1 )
8447       result += "1 | ";
8448     if ( value & SampleCountFlagBits::e2 )
8449       result += "2 | ";
8450     if ( value & SampleCountFlagBits::e4 )
8451       result += "4 | ";
8452     if ( value & SampleCountFlagBits::e8 )
8453       result += "8 | ";
8454     if ( value & SampleCountFlagBits::e16 )
8455       result += "16 | ";
8456     if ( value & SampleCountFlagBits::e32 )
8457       result += "32 | ";
8458     if ( value & SampleCountFlagBits::e64 )
8459       result += "64 | ";
8460     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8461   }
8462 
8463   using DeviceCreateFlags = Flags<DeviceCreateFlagBits>;
8464 
to_string(DeviceCreateFlags)8465   VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlags )
8466   {
8467     return "{}";
8468   }
8469 
8470   using DeviceQueueCreateFlags = Flags<DeviceQueueCreateFlagBits>;
8471 
8472   template <>
8473   struct FlagTraits<DeviceQueueCreateFlagBits>
8474   {
8475     enum : VkFlags
8476     {
8477       allFlags = VkFlags( DeviceQueueCreateFlagBits::eProtected )
8478     };
8479   };
8480 
8481   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags
operator |(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)8482                                          operator|( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8483   {
8484     return DeviceQueueCreateFlags( bit0 ) | bit1;
8485   }
8486 
8487   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags
operator &(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)8488                                          operator&(DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT
8489   {
8490     return DeviceQueueCreateFlags( bit0 ) & bit1;
8491   }
8492 
8493   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags
operator ^(DeviceQueueCreateFlagBits bit0,DeviceQueueCreateFlagBits bit1)8494                                          operator^( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8495   {
8496     return DeviceQueueCreateFlags( bit0 ) ^ bit1;
8497   }
8498 
operator ~(DeviceQueueCreateFlagBits bits)8499   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator~( DeviceQueueCreateFlagBits bits )
8500     VULKAN_HPP_NOEXCEPT
8501   {
8502     return ~( DeviceQueueCreateFlags( bits ) );
8503   }
8504 
to_string(DeviceQueueCreateFlags value)8505   VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlags value )
8506   {
8507     if ( !value )
8508       return "{}";
8509 
8510     std::string result;
8511     if ( value & DeviceQueueCreateFlagBits::eProtected )
8512       result += "Protected | ";
8513     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8514   }
8515 
8516   using PipelineStageFlags = Flags<PipelineStageFlagBits>;
8517 
8518   template <>
8519   struct FlagTraits<PipelineStageFlagBits>
8520   {
8521     enum : VkFlags
8522     {
8523       allFlags =
8524         VkFlags( PipelineStageFlagBits::eTopOfPipe ) | VkFlags( PipelineStageFlagBits::eDrawIndirect ) |
8525         VkFlags( PipelineStageFlagBits::eVertexInput ) | VkFlags( PipelineStageFlagBits::eVertexShader ) |
8526         VkFlags( PipelineStageFlagBits::eTessellationControlShader ) |
8527         VkFlags( PipelineStageFlagBits::eTessellationEvaluationShader ) |
8528         VkFlags( PipelineStageFlagBits::eGeometryShader ) | VkFlags( PipelineStageFlagBits::eFragmentShader ) |
8529         VkFlags( PipelineStageFlagBits::eEarlyFragmentTests ) | VkFlags( PipelineStageFlagBits::eLateFragmentTests ) |
8530         VkFlags( PipelineStageFlagBits::eColorAttachmentOutput ) | VkFlags( PipelineStageFlagBits::eComputeShader ) |
8531         VkFlags( PipelineStageFlagBits::eTransfer ) | VkFlags( PipelineStageFlagBits::eBottomOfPipe ) |
8532         VkFlags( PipelineStageFlagBits::eHost ) | VkFlags( PipelineStageFlagBits::eAllGraphics ) |
8533         VkFlags( PipelineStageFlagBits::eAllCommands ) | VkFlags( PipelineStageFlagBits::eTransformFeedbackEXT ) |
8534         VkFlags( PipelineStageFlagBits::eConditionalRenderingEXT ) |
8535         VkFlags( PipelineStageFlagBits::eAccelerationStructureBuildKHR ) |
8536         VkFlags( PipelineStageFlagBits::eRayTracingShaderKHR ) | VkFlags( PipelineStageFlagBits::eTaskShaderNV ) |
8537         VkFlags( PipelineStageFlagBits::eMeshShaderNV ) | VkFlags( PipelineStageFlagBits::eFragmentDensityProcessEXT ) |
8538         VkFlags( PipelineStageFlagBits::eFragmentShadingRateAttachmentKHR ) |
8539         VkFlags( PipelineStageFlagBits::eCommandPreprocessNV ) | VkFlags( PipelineStageFlagBits::eNoneKHR )
8540     };
8541   };
8542 
operator |(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)8543   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator|( PipelineStageFlagBits bit0,
8544                                                                        PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8545   {
8546     return PipelineStageFlags( bit0 ) | bit1;
8547   }
8548 
operator &(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)8549   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator&(PipelineStageFlagBits bit0,
8550                                                                       PipelineStageFlagBits bit1)VULKAN_HPP_NOEXCEPT
8551   {
8552     return PipelineStageFlags( bit0 ) & bit1;
8553   }
8554 
operator ^(PipelineStageFlagBits bit0,PipelineStageFlagBits bit1)8555   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator^( PipelineStageFlagBits bit0,
8556                                                                        PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8557   {
8558     return PipelineStageFlags( bit0 ) ^ bit1;
8559   }
8560 
operator ~(PipelineStageFlagBits bits)8561   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator~( PipelineStageFlagBits bits ) VULKAN_HPP_NOEXCEPT
8562   {
8563     return ~( PipelineStageFlags( bits ) );
8564   }
8565 
to_string(PipelineStageFlags value)8566   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlags value )
8567   {
8568     if ( !value )
8569       return "{}";
8570 
8571     std::string result;
8572     if ( value & PipelineStageFlagBits::eTopOfPipe )
8573       result += "TopOfPipe | ";
8574     if ( value & PipelineStageFlagBits::eDrawIndirect )
8575       result += "DrawIndirect | ";
8576     if ( value & PipelineStageFlagBits::eVertexInput )
8577       result += "VertexInput | ";
8578     if ( value & PipelineStageFlagBits::eVertexShader )
8579       result += "VertexShader | ";
8580     if ( value & PipelineStageFlagBits::eTessellationControlShader )
8581       result += "TessellationControlShader | ";
8582     if ( value & PipelineStageFlagBits::eTessellationEvaluationShader )
8583       result += "TessellationEvaluationShader | ";
8584     if ( value & PipelineStageFlagBits::eGeometryShader )
8585       result += "GeometryShader | ";
8586     if ( value & PipelineStageFlagBits::eFragmentShader )
8587       result += "FragmentShader | ";
8588     if ( value & PipelineStageFlagBits::eEarlyFragmentTests )
8589       result += "EarlyFragmentTests | ";
8590     if ( value & PipelineStageFlagBits::eLateFragmentTests )
8591       result += "LateFragmentTests | ";
8592     if ( value & PipelineStageFlagBits::eColorAttachmentOutput )
8593       result += "ColorAttachmentOutput | ";
8594     if ( value & PipelineStageFlagBits::eComputeShader )
8595       result += "ComputeShader | ";
8596     if ( value & PipelineStageFlagBits::eTransfer )
8597       result += "Transfer | ";
8598     if ( value & PipelineStageFlagBits::eBottomOfPipe )
8599       result += "BottomOfPipe | ";
8600     if ( value & PipelineStageFlagBits::eHost )
8601       result += "Host | ";
8602     if ( value & PipelineStageFlagBits::eAllGraphics )
8603       result += "AllGraphics | ";
8604     if ( value & PipelineStageFlagBits::eAllCommands )
8605       result += "AllCommands | ";
8606     if ( value & PipelineStageFlagBits::eTransformFeedbackEXT )
8607       result += "TransformFeedbackEXT | ";
8608     if ( value & PipelineStageFlagBits::eConditionalRenderingEXT )
8609       result += "ConditionalRenderingEXT | ";
8610     if ( value & PipelineStageFlagBits::eAccelerationStructureBuildKHR )
8611       result += "AccelerationStructureBuildKHR | ";
8612     if ( value & PipelineStageFlagBits::eRayTracingShaderKHR )
8613       result += "RayTracingShaderKHR | ";
8614     if ( value & PipelineStageFlagBits::eTaskShaderNV )
8615       result += "TaskShaderNV | ";
8616     if ( value & PipelineStageFlagBits::eMeshShaderNV )
8617       result += "MeshShaderNV | ";
8618     if ( value & PipelineStageFlagBits::eFragmentDensityProcessEXT )
8619       result += "FragmentDensityProcessEXT | ";
8620     if ( value & PipelineStageFlagBits::eFragmentShadingRateAttachmentKHR )
8621       result += "FragmentShadingRateAttachmentKHR | ";
8622     if ( value & PipelineStageFlagBits::eCommandPreprocessNV )
8623       result += "CommandPreprocessNV | ";
8624     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8625   }
8626 
8627   using MemoryMapFlags = Flags<MemoryMapFlagBits>;
8628 
to_string(MemoryMapFlags)8629   VULKAN_HPP_INLINE std::string to_string( MemoryMapFlags )
8630   {
8631     return "{}";
8632   }
8633 
8634   using ImageAspectFlags = Flags<ImageAspectFlagBits>;
8635 
8636   template <>
8637   struct FlagTraits<ImageAspectFlagBits>
8638   {
8639     enum : VkFlags
8640     {
8641       allFlags = VkFlags( ImageAspectFlagBits::eColor ) | VkFlags( ImageAspectFlagBits::eDepth ) |
8642                  VkFlags( ImageAspectFlagBits::eStencil ) | VkFlags( ImageAspectFlagBits::eMetadata ) |
8643                  VkFlags( ImageAspectFlagBits::ePlane0 ) | VkFlags( ImageAspectFlagBits::ePlane1 ) |
8644                  VkFlags( ImageAspectFlagBits::ePlane2 ) | VkFlags( ImageAspectFlagBits::eMemoryPlane0EXT ) |
8645                  VkFlags( ImageAspectFlagBits::eMemoryPlane1EXT ) | VkFlags( ImageAspectFlagBits::eMemoryPlane2EXT ) |
8646                  VkFlags( ImageAspectFlagBits::eMemoryPlane3EXT )
8647     };
8648   };
8649 
operator |(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)8650   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator|( ImageAspectFlagBits bit0,
8651                                                                      ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8652   {
8653     return ImageAspectFlags( bit0 ) | bit1;
8654   }
8655 
operator &(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)8656   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator&(ImageAspectFlagBits bit0,
8657                                                                     ImageAspectFlagBits bit1)VULKAN_HPP_NOEXCEPT
8658   {
8659     return ImageAspectFlags( bit0 ) & bit1;
8660   }
8661 
operator ^(ImageAspectFlagBits bit0,ImageAspectFlagBits bit1)8662   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator^( ImageAspectFlagBits bit0,
8663                                                                      ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8664   {
8665     return ImageAspectFlags( bit0 ) ^ bit1;
8666   }
8667 
operator ~(ImageAspectFlagBits bits)8668   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator~( ImageAspectFlagBits bits ) VULKAN_HPP_NOEXCEPT
8669   {
8670     return ~( ImageAspectFlags( bits ) );
8671   }
8672 
to_string(ImageAspectFlags value)8673   VULKAN_HPP_INLINE std::string to_string( ImageAspectFlags value )
8674   {
8675     if ( !value )
8676       return "{}";
8677 
8678     std::string result;
8679     if ( value & ImageAspectFlagBits::eColor )
8680       result += "Color | ";
8681     if ( value & ImageAspectFlagBits::eDepth )
8682       result += "Depth | ";
8683     if ( value & ImageAspectFlagBits::eStencil )
8684       result += "Stencil | ";
8685     if ( value & ImageAspectFlagBits::eMetadata )
8686       result += "Metadata | ";
8687     if ( value & ImageAspectFlagBits::ePlane0 )
8688       result += "Plane0 | ";
8689     if ( value & ImageAspectFlagBits::ePlane1 )
8690       result += "Plane1 | ";
8691     if ( value & ImageAspectFlagBits::ePlane2 )
8692       result += "Plane2 | ";
8693     if ( value & ImageAspectFlagBits::eMemoryPlane0EXT )
8694       result += "MemoryPlane0EXT | ";
8695     if ( value & ImageAspectFlagBits::eMemoryPlane1EXT )
8696       result += "MemoryPlane1EXT | ";
8697     if ( value & ImageAspectFlagBits::eMemoryPlane2EXT )
8698       result += "MemoryPlane2EXT | ";
8699     if ( value & ImageAspectFlagBits::eMemoryPlane3EXT )
8700       result += "MemoryPlane3EXT | ";
8701     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8702   }
8703 
8704   using SparseImageFormatFlags = Flags<SparseImageFormatFlagBits>;
8705 
8706   template <>
8707   struct FlagTraits<SparseImageFormatFlagBits>
8708   {
8709     enum : VkFlags
8710     {
8711       allFlags = VkFlags( SparseImageFormatFlagBits::eSingleMiptail ) |
8712                  VkFlags( SparseImageFormatFlagBits::eAlignedMipSize ) |
8713                  VkFlags( SparseImageFormatFlagBits::eNonstandardBlockSize )
8714     };
8715   };
8716 
8717   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags
operator |(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)8718                                          operator|( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8719   {
8720     return SparseImageFormatFlags( bit0 ) | bit1;
8721   }
8722 
8723   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags
operator &(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)8724                                          operator&(SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1)VULKAN_HPP_NOEXCEPT
8725   {
8726     return SparseImageFormatFlags( bit0 ) & bit1;
8727   }
8728 
8729   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags
operator ^(SparseImageFormatFlagBits bit0,SparseImageFormatFlagBits bit1)8730                                          operator^( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8731   {
8732     return SparseImageFormatFlags( bit0 ) ^ bit1;
8733   }
8734 
operator ~(SparseImageFormatFlagBits bits)8735   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator~( SparseImageFormatFlagBits bits )
8736     VULKAN_HPP_NOEXCEPT
8737   {
8738     return ~( SparseImageFormatFlags( bits ) );
8739   }
8740 
to_string(SparseImageFormatFlags value)8741   VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlags value )
8742   {
8743     if ( !value )
8744       return "{}";
8745 
8746     std::string result;
8747     if ( value & SparseImageFormatFlagBits::eSingleMiptail )
8748       result += "SingleMiptail | ";
8749     if ( value & SparseImageFormatFlagBits::eAlignedMipSize )
8750       result += "AlignedMipSize | ";
8751     if ( value & SparseImageFormatFlagBits::eNonstandardBlockSize )
8752       result += "NonstandardBlockSize | ";
8753     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8754   }
8755 
8756   using SparseMemoryBindFlags = Flags<SparseMemoryBindFlagBits>;
8757 
8758   template <>
8759   struct FlagTraits<SparseMemoryBindFlagBits>
8760   {
8761     enum : VkFlags
8762     {
8763       allFlags = VkFlags( SparseMemoryBindFlagBits::eMetadata )
8764     };
8765   };
8766 
8767   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags
operator |(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)8768                                          operator|( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8769   {
8770     return SparseMemoryBindFlags( bit0 ) | bit1;
8771   }
8772 
8773   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags
operator &(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)8774                                          operator&(SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1)VULKAN_HPP_NOEXCEPT
8775   {
8776     return SparseMemoryBindFlags( bit0 ) & bit1;
8777   }
8778 
8779   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags
operator ^(SparseMemoryBindFlagBits bit0,SparseMemoryBindFlagBits bit1)8780                                          operator^( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8781   {
8782     return SparseMemoryBindFlags( bit0 ) ^ bit1;
8783   }
8784 
operator ~(SparseMemoryBindFlagBits bits)8785   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator~( SparseMemoryBindFlagBits bits )
8786     VULKAN_HPP_NOEXCEPT
8787   {
8788     return ~( SparseMemoryBindFlags( bits ) );
8789   }
8790 
to_string(SparseMemoryBindFlags value)8791   VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlags value )
8792   {
8793     if ( !value )
8794       return "{}";
8795 
8796     std::string result;
8797     if ( value & SparseMemoryBindFlagBits::eMetadata )
8798       result += "Metadata | ";
8799     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8800   }
8801 
8802   using FenceCreateFlags = Flags<FenceCreateFlagBits>;
8803 
8804   template <>
8805   struct FlagTraits<FenceCreateFlagBits>
8806   {
8807     enum : VkFlags
8808     {
8809       allFlags = VkFlags( FenceCreateFlagBits::eSignaled )
8810     };
8811   };
8812 
operator |(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)8813   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator|( FenceCreateFlagBits bit0,
8814                                                                      FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8815   {
8816     return FenceCreateFlags( bit0 ) | bit1;
8817   }
8818 
operator &(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)8819   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator&(FenceCreateFlagBits bit0,
8820                                                                     FenceCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT
8821   {
8822     return FenceCreateFlags( bit0 ) & bit1;
8823   }
8824 
operator ^(FenceCreateFlagBits bit0,FenceCreateFlagBits bit1)8825   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator^( FenceCreateFlagBits bit0,
8826                                                                      FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8827   {
8828     return FenceCreateFlags( bit0 ) ^ bit1;
8829   }
8830 
operator ~(FenceCreateFlagBits bits)8831   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator~( FenceCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
8832   {
8833     return ~( FenceCreateFlags( bits ) );
8834   }
8835 
to_string(FenceCreateFlags value)8836   VULKAN_HPP_INLINE std::string to_string( FenceCreateFlags value )
8837   {
8838     if ( !value )
8839       return "{}";
8840 
8841     std::string result;
8842     if ( value & FenceCreateFlagBits::eSignaled )
8843       result += "Signaled | ";
8844     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8845   }
8846 
8847   using SemaphoreCreateFlags = Flags<SemaphoreCreateFlagBits>;
8848 
to_string(SemaphoreCreateFlags)8849   VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlags )
8850   {
8851     return "{}";
8852   }
8853 
8854   using EventCreateFlags = Flags<EventCreateFlagBits>;
8855 
8856   template <>
8857   struct FlagTraits<EventCreateFlagBits>
8858   {
8859     enum : VkFlags
8860     {
8861       allFlags = VkFlags( EventCreateFlagBits::eDeviceOnlyKHR )
8862     };
8863   };
8864 
operator |(EventCreateFlagBits bit0,EventCreateFlagBits bit1)8865   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator|( EventCreateFlagBits bit0,
8866                                                                      EventCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8867   {
8868     return EventCreateFlags( bit0 ) | bit1;
8869   }
8870 
operator &(EventCreateFlagBits bit0,EventCreateFlagBits bit1)8871   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator&(EventCreateFlagBits bit0,
8872                                                                     EventCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT
8873   {
8874     return EventCreateFlags( bit0 ) & bit1;
8875   }
8876 
operator ^(EventCreateFlagBits bit0,EventCreateFlagBits bit1)8877   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator^( EventCreateFlagBits bit0,
8878                                                                      EventCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8879   {
8880     return EventCreateFlags( bit0 ) ^ bit1;
8881   }
8882 
operator ~(EventCreateFlagBits bits)8883   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator~( EventCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
8884   {
8885     return ~( EventCreateFlags( bits ) );
8886   }
8887 
to_string(EventCreateFlags value)8888   VULKAN_HPP_INLINE std::string to_string( EventCreateFlags value )
8889   {
8890     if ( !value )
8891       return "{}";
8892 
8893     std::string result;
8894     if ( value & EventCreateFlagBits::eDeviceOnlyKHR )
8895       result += "DeviceOnlyKHR | ";
8896     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8897   }
8898 
8899   using QueryPipelineStatisticFlags = Flags<QueryPipelineStatisticFlagBits>;
8900 
8901   template <>
8902   struct FlagTraits<QueryPipelineStatisticFlagBits>
8903   {
8904     enum : VkFlags
8905     {
8906       allFlags = VkFlags( QueryPipelineStatisticFlagBits::eInputAssemblyVertices ) |
8907                  VkFlags( QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives ) |
8908                  VkFlags( QueryPipelineStatisticFlagBits::eVertexShaderInvocations ) |
8909                  VkFlags( QueryPipelineStatisticFlagBits::eGeometryShaderInvocations ) |
8910                  VkFlags( QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives ) |
8911                  VkFlags( QueryPipelineStatisticFlagBits::eClippingInvocations ) |
8912                  VkFlags( QueryPipelineStatisticFlagBits::eClippingPrimitives ) |
8913                  VkFlags( QueryPipelineStatisticFlagBits::eFragmentShaderInvocations ) |
8914                  VkFlags( QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches ) |
8915                  VkFlags( QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations ) |
8916                  VkFlags( QueryPipelineStatisticFlagBits::eComputeShaderInvocations )
8917     };
8918   };
8919 
8920   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags
operator |(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)8921                                          operator|( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8922   {
8923     return QueryPipelineStatisticFlags( bit0 ) | bit1;
8924   }
8925 
8926   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags
operator &(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)8927                                          operator&(QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1)VULKAN_HPP_NOEXCEPT
8928   {
8929     return QueryPipelineStatisticFlags( bit0 ) & bit1;
8930   }
8931 
8932   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags
operator ^(QueryPipelineStatisticFlagBits bit0,QueryPipelineStatisticFlagBits bit1)8933                                          operator^( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8934   {
8935     return QueryPipelineStatisticFlags( bit0 ) ^ bit1;
8936   }
8937 
operator ~(QueryPipelineStatisticFlagBits bits)8938   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator~( QueryPipelineStatisticFlagBits bits )
8939     VULKAN_HPP_NOEXCEPT
8940   {
8941     return ~( QueryPipelineStatisticFlags( bits ) );
8942   }
8943 
to_string(QueryPipelineStatisticFlags value)8944   VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlags value )
8945   {
8946     if ( !value )
8947       return "{}";
8948 
8949     std::string result;
8950     if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyVertices )
8951       result += "InputAssemblyVertices | ";
8952     if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives )
8953       result += "InputAssemblyPrimitives | ";
8954     if ( value & QueryPipelineStatisticFlagBits::eVertexShaderInvocations )
8955       result += "VertexShaderInvocations | ";
8956     if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderInvocations )
8957       result += "GeometryShaderInvocations | ";
8958     if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives )
8959       result += "GeometryShaderPrimitives | ";
8960     if ( value & QueryPipelineStatisticFlagBits::eClippingInvocations )
8961       result += "ClippingInvocations | ";
8962     if ( value & QueryPipelineStatisticFlagBits::eClippingPrimitives )
8963       result += "ClippingPrimitives | ";
8964     if ( value & QueryPipelineStatisticFlagBits::eFragmentShaderInvocations )
8965       result += "FragmentShaderInvocations | ";
8966     if ( value & QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches )
8967       result += "TessellationControlShaderPatches | ";
8968     if ( value & QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations )
8969       result += "TessellationEvaluationShaderInvocations | ";
8970     if ( value & QueryPipelineStatisticFlagBits::eComputeShaderInvocations )
8971       result += "ComputeShaderInvocations | ";
8972     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
8973   }
8974 
8975   using QueryPoolCreateFlags = Flags<QueryPoolCreateFlagBits>;
8976 
to_string(QueryPoolCreateFlags)8977   VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlags )
8978   {
8979     return "{}";
8980   }
8981 
8982   using QueryResultFlags = Flags<QueryResultFlagBits>;
8983 
8984   template <>
8985   struct FlagTraits<QueryResultFlagBits>
8986   {
8987     enum : VkFlags
8988     {
8989       allFlags = VkFlags( QueryResultFlagBits::e64 ) | VkFlags( QueryResultFlagBits::eWait ) |
8990                  VkFlags( QueryResultFlagBits::eWithAvailability ) | VkFlags( QueryResultFlagBits::ePartial )
8991 #if defined( VK_ENABLE_BETA_EXTENSIONS )
8992                  | VkFlags( QueryResultFlagBits::eWithStatusKHR )
8993 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
8994     };
8995   };
8996 
operator |(QueryResultFlagBits bit0,QueryResultFlagBits bit1)8997   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator|( QueryResultFlagBits bit0,
8998                                                                      QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
8999   {
9000     return QueryResultFlags( bit0 ) | bit1;
9001   }
9002 
operator &(QueryResultFlagBits bit0,QueryResultFlagBits bit1)9003   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator&(QueryResultFlagBits bit0,
9004                                                                     QueryResultFlagBits bit1)VULKAN_HPP_NOEXCEPT
9005   {
9006     return QueryResultFlags( bit0 ) & bit1;
9007   }
9008 
operator ^(QueryResultFlagBits bit0,QueryResultFlagBits bit1)9009   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator^( QueryResultFlagBits bit0,
9010                                                                      QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9011   {
9012     return QueryResultFlags( bit0 ) ^ bit1;
9013   }
9014 
operator ~(QueryResultFlagBits bits)9015   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator~( QueryResultFlagBits bits ) VULKAN_HPP_NOEXCEPT
9016   {
9017     return ~( QueryResultFlags( bits ) );
9018   }
9019 
to_string(QueryResultFlags value)9020   VULKAN_HPP_INLINE std::string to_string( QueryResultFlags value )
9021   {
9022     if ( !value )
9023       return "{}";
9024 
9025     std::string result;
9026     if ( value & QueryResultFlagBits::e64 )
9027       result += "64 | ";
9028     if ( value & QueryResultFlagBits::eWait )
9029       result += "Wait | ";
9030     if ( value & QueryResultFlagBits::eWithAvailability )
9031       result += "WithAvailability | ";
9032     if ( value & QueryResultFlagBits::ePartial )
9033       result += "Partial | ";
9034 #if defined( VK_ENABLE_BETA_EXTENSIONS )
9035     if ( value & QueryResultFlagBits::eWithStatusKHR )
9036       result += "WithStatusKHR | ";
9037 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
9038     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9039   }
9040 
9041   using BufferCreateFlags = Flags<BufferCreateFlagBits>;
9042 
9043   template <>
9044   struct FlagTraits<BufferCreateFlagBits>
9045   {
9046     enum : VkFlags
9047     {
9048       allFlags = VkFlags( BufferCreateFlagBits::eSparseBinding ) | VkFlags( BufferCreateFlagBits::eSparseResidency ) |
9049                  VkFlags( BufferCreateFlagBits::eSparseAliased ) | VkFlags( BufferCreateFlagBits::eProtected ) |
9050                  VkFlags( BufferCreateFlagBits::eDeviceAddressCaptureReplay )
9051     };
9052   };
9053 
operator |(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)9054   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator|( BufferCreateFlagBits bit0,
9055                                                                       BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9056   {
9057     return BufferCreateFlags( bit0 ) | bit1;
9058   }
9059 
operator &(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)9060   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator&(BufferCreateFlagBits bit0,
9061                                                                      BufferCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT
9062   {
9063     return BufferCreateFlags( bit0 ) & bit1;
9064   }
9065 
operator ^(BufferCreateFlagBits bit0,BufferCreateFlagBits bit1)9066   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator^( BufferCreateFlagBits bit0,
9067                                                                       BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9068   {
9069     return BufferCreateFlags( bit0 ) ^ bit1;
9070   }
9071 
operator ~(BufferCreateFlagBits bits)9072   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator~( BufferCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
9073   {
9074     return ~( BufferCreateFlags( bits ) );
9075   }
9076 
to_string(BufferCreateFlags value)9077   VULKAN_HPP_INLINE std::string to_string( BufferCreateFlags value )
9078   {
9079     if ( !value )
9080       return "{}";
9081 
9082     std::string result;
9083     if ( value & BufferCreateFlagBits::eSparseBinding )
9084       result += "SparseBinding | ";
9085     if ( value & BufferCreateFlagBits::eSparseResidency )
9086       result += "SparseResidency | ";
9087     if ( value & BufferCreateFlagBits::eSparseAliased )
9088       result += "SparseAliased | ";
9089     if ( value & BufferCreateFlagBits::eProtected )
9090       result += "Protected | ";
9091     if ( value & BufferCreateFlagBits::eDeviceAddressCaptureReplay )
9092       result += "DeviceAddressCaptureReplay | ";
9093     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9094   }
9095 
9096   using BufferUsageFlags = Flags<BufferUsageFlagBits>;
9097 
9098   template <>
9099   struct FlagTraits<BufferUsageFlagBits>
9100   {
9101     enum : VkFlags
9102     {
9103       allFlags =
9104         VkFlags( BufferUsageFlagBits::eTransferSrc ) | VkFlags( BufferUsageFlagBits::eTransferDst ) |
9105         VkFlags( BufferUsageFlagBits::eUniformTexelBuffer ) | VkFlags( BufferUsageFlagBits::eStorageTexelBuffer ) |
9106         VkFlags( BufferUsageFlagBits::eUniformBuffer ) | VkFlags( BufferUsageFlagBits::eStorageBuffer ) |
9107         VkFlags( BufferUsageFlagBits::eIndexBuffer ) | VkFlags( BufferUsageFlagBits::eVertexBuffer ) |
9108         VkFlags( BufferUsageFlagBits::eIndirectBuffer ) | VkFlags( BufferUsageFlagBits::eShaderDeviceAddress )
9109 #if defined( VK_ENABLE_BETA_EXTENSIONS )
9110         | VkFlags( BufferUsageFlagBits::eVideoDecodeSrcKHR ) | VkFlags( BufferUsageFlagBits::eVideoDecodeDstKHR )
9111 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
9112         | VkFlags( BufferUsageFlagBits::eTransformFeedbackBufferEXT ) |
9113         VkFlags( BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT ) |
9114         VkFlags( BufferUsageFlagBits::eConditionalRenderingEXT ) |
9115         VkFlags( BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR ) |
9116         VkFlags( BufferUsageFlagBits::eAccelerationStructureStorageKHR ) |
9117         VkFlags( BufferUsageFlagBits::eShaderBindingTableKHR )
9118 #if defined( VK_ENABLE_BETA_EXTENSIONS )
9119         | VkFlags( BufferUsageFlagBits::eVideoEncodeDstKHR ) | VkFlags( BufferUsageFlagBits::eVideoEncodeSrcKHR )
9120 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
9121     };
9122   };
9123 
operator |(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)9124   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator|( BufferUsageFlagBits bit0,
9125                                                                      BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9126   {
9127     return BufferUsageFlags( bit0 ) | bit1;
9128   }
9129 
operator &(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)9130   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator&(BufferUsageFlagBits bit0,
9131                                                                     BufferUsageFlagBits bit1)VULKAN_HPP_NOEXCEPT
9132   {
9133     return BufferUsageFlags( bit0 ) & bit1;
9134   }
9135 
operator ^(BufferUsageFlagBits bit0,BufferUsageFlagBits bit1)9136   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator^( BufferUsageFlagBits bit0,
9137                                                                      BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9138   {
9139     return BufferUsageFlags( bit0 ) ^ bit1;
9140   }
9141 
operator ~(BufferUsageFlagBits bits)9142   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator~( BufferUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT
9143   {
9144     return ~( BufferUsageFlags( bits ) );
9145   }
9146 
to_string(BufferUsageFlags value)9147   VULKAN_HPP_INLINE std::string to_string( BufferUsageFlags value )
9148   {
9149     if ( !value )
9150       return "{}";
9151 
9152     std::string result;
9153     if ( value & BufferUsageFlagBits::eTransferSrc )
9154       result += "TransferSrc | ";
9155     if ( value & BufferUsageFlagBits::eTransferDst )
9156       result += "TransferDst | ";
9157     if ( value & BufferUsageFlagBits::eUniformTexelBuffer )
9158       result += "UniformTexelBuffer | ";
9159     if ( value & BufferUsageFlagBits::eStorageTexelBuffer )
9160       result += "StorageTexelBuffer | ";
9161     if ( value & BufferUsageFlagBits::eUniformBuffer )
9162       result += "UniformBuffer | ";
9163     if ( value & BufferUsageFlagBits::eStorageBuffer )
9164       result += "StorageBuffer | ";
9165     if ( value & BufferUsageFlagBits::eIndexBuffer )
9166       result += "IndexBuffer | ";
9167     if ( value & BufferUsageFlagBits::eVertexBuffer )
9168       result += "VertexBuffer | ";
9169     if ( value & BufferUsageFlagBits::eIndirectBuffer )
9170       result += "IndirectBuffer | ";
9171     if ( value & BufferUsageFlagBits::eShaderDeviceAddress )
9172       result += "ShaderDeviceAddress | ";
9173 #if defined( VK_ENABLE_BETA_EXTENSIONS )
9174     if ( value & BufferUsageFlagBits::eVideoDecodeSrcKHR )
9175       result += "VideoDecodeSrcKHR | ";
9176     if ( value & BufferUsageFlagBits::eVideoDecodeDstKHR )
9177       result += "VideoDecodeDstKHR | ";
9178 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
9179     if ( value & BufferUsageFlagBits::eTransformFeedbackBufferEXT )
9180       result += "TransformFeedbackBufferEXT | ";
9181     if ( value & BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT )
9182       result += "TransformFeedbackCounterBufferEXT | ";
9183     if ( value & BufferUsageFlagBits::eConditionalRenderingEXT )
9184       result += "ConditionalRenderingEXT | ";
9185     if ( value & BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR )
9186       result += "AccelerationStructureBuildInputReadOnlyKHR | ";
9187     if ( value & BufferUsageFlagBits::eAccelerationStructureStorageKHR )
9188       result += "AccelerationStructureStorageKHR | ";
9189     if ( value & BufferUsageFlagBits::eShaderBindingTableKHR )
9190       result += "ShaderBindingTableKHR | ";
9191 #if defined( VK_ENABLE_BETA_EXTENSIONS )
9192     if ( value & BufferUsageFlagBits::eVideoEncodeDstKHR )
9193       result += "VideoEncodeDstKHR | ";
9194     if ( value & BufferUsageFlagBits::eVideoEncodeSrcKHR )
9195       result += "VideoEncodeSrcKHR | ";
9196 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
9197     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9198   }
9199 
9200   using BufferViewCreateFlags = Flags<BufferViewCreateFlagBits>;
9201 
to_string(BufferViewCreateFlags)9202   VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlags )
9203   {
9204     return "{}";
9205   }
9206 
9207   using ImageViewCreateFlags = Flags<ImageViewCreateFlagBits>;
9208 
9209   template <>
9210   struct FlagTraits<ImageViewCreateFlagBits>
9211   {
9212     enum : VkFlags
9213     {
9214       allFlags = VkFlags( ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT ) |
9215                  VkFlags( ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT )
9216     };
9217   };
9218 
9219   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags
operator |(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)9220                                          operator|( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9221   {
9222     return ImageViewCreateFlags( bit0 ) | bit1;
9223   }
9224 
operator &(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)9225   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator&(ImageViewCreateFlagBits bit0,
9226                                                                         ImageViewCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT
9227   {
9228     return ImageViewCreateFlags( bit0 ) & bit1;
9229   }
9230 
9231   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags
operator ^(ImageViewCreateFlagBits bit0,ImageViewCreateFlagBits bit1)9232                                          operator^( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9233   {
9234     return ImageViewCreateFlags( bit0 ) ^ bit1;
9235   }
9236 
operator ~(ImageViewCreateFlagBits bits)9237   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator~( ImageViewCreateFlagBits bits )
9238     VULKAN_HPP_NOEXCEPT
9239   {
9240     return ~( ImageViewCreateFlags( bits ) );
9241   }
9242 
to_string(ImageViewCreateFlags value)9243   VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlags value )
9244   {
9245     if ( !value )
9246       return "{}";
9247 
9248     std::string result;
9249     if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT )
9250       result += "FragmentDensityMapDynamicEXT | ";
9251     if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT )
9252       result += "FragmentDensityMapDeferredEXT | ";
9253     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9254   }
9255 
9256   using ShaderModuleCreateFlags = Flags<ShaderModuleCreateFlagBits>;
9257 
to_string(ShaderModuleCreateFlags)9258   VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlags )
9259   {
9260     return "{}";
9261   }
9262 
9263   using PipelineCacheCreateFlags = Flags<PipelineCacheCreateFlagBits>;
9264 
9265   template <>
9266   struct FlagTraits<PipelineCacheCreateFlagBits>
9267   {
9268     enum : VkFlags
9269     {
9270       allFlags = VkFlags( PipelineCacheCreateFlagBits::eExternallySynchronizedEXT )
9271     };
9272   };
9273 
9274   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags
operator |(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)9275                                          operator|( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9276   {
9277     return PipelineCacheCreateFlags( bit0 ) | bit1;
9278   }
9279 
9280   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags
operator &(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)9281                                          operator&(PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT
9282   {
9283     return PipelineCacheCreateFlags( bit0 ) & bit1;
9284   }
9285 
9286   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags
operator ^(PipelineCacheCreateFlagBits bit0,PipelineCacheCreateFlagBits bit1)9287                                          operator^( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9288   {
9289     return PipelineCacheCreateFlags( bit0 ) ^ bit1;
9290   }
9291 
operator ~(PipelineCacheCreateFlagBits bits)9292   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator~( PipelineCacheCreateFlagBits bits )
9293     VULKAN_HPP_NOEXCEPT
9294   {
9295     return ~( PipelineCacheCreateFlags( bits ) );
9296   }
9297 
to_string(PipelineCacheCreateFlags value)9298   VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlags value )
9299   {
9300     if ( !value )
9301       return "{}";
9302 
9303     std::string result;
9304     if ( value & PipelineCacheCreateFlagBits::eExternallySynchronizedEXT )
9305       result += "ExternallySynchronizedEXT | ";
9306     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9307   }
9308 
9309   using ColorComponentFlags = Flags<ColorComponentFlagBits>;
9310 
9311   template <>
9312   struct FlagTraits<ColorComponentFlagBits>
9313   {
9314     enum : VkFlags
9315     {
9316       allFlags = VkFlags( ColorComponentFlagBits::eR ) | VkFlags( ColorComponentFlagBits::eG ) |
9317                  VkFlags( ColorComponentFlagBits::eB ) | VkFlags( ColorComponentFlagBits::eA )
9318     };
9319   };
9320 
9321   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags
operator |(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)9322                                          operator|( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9323   {
9324     return ColorComponentFlags( bit0 ) | bit1;
9325   }
9326 
operator &(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)9327   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator&(ColorComponentFlagBits bit0,
9328                                                                        ColorComponentFlagBits bit1)VULKAN_HPP_NOEXCEPT
9329   {
9330     return ColorComponentFlags( bit0 ) & bit1;
9331   }
9332 
9333   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags
operator ^(ColorComponentFlagBits bit0,ColorComponentFlagBits bit1)9334                                          operator^( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9335   {
9336     return ColorComponentFlags( bit0 ) ^ bit1;
9337   }
9338 
operator ~(ColorComponentFlagBits bits)9339   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator~( ColorComponentFlagBits bits )
9340     VULKAN_HPP_NOEXCEPT
9341   {
9342     return ~( ColorComponentFlags( bits ) );
9343   }
9344 
to_string(ColorComponentFlags value)9345   VULKAN_HPP_INLINE std::string to_string( ColorComponentFlags value )
9346   {
9347     if ( !value )
9348       return "{}";
9349 
9350     std::string result;
9351     if ( value & ColorComponentFlagBits::eR )
9352       result += "R | ";
9353     if ( value & ColorComponentFlagBits::eG )
9354       result += "G | ";
9355     if ( value & ColorComponentFlagBits::eB )
9356       result += "B | ";
9357     if ( value & ColorComponentFlagBits::eA )
9358       result += "A | ";
9359     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9360   }
9361 
9362   using CullModeFlags = Flags<CullModeFlagBits>;
9363 
9364   template <>
9365   struct FlagTraits<CullModeFlagBits>
9366   {
9367     enum : VkFlags
9368     {
9369       allFlags = VkFlags( CullModeFlagBits::eNone ) | VkFlags( CullModeFlagBits::eFront ) |
9370                  VkFlags( CullModeFlagBits::eBack ) | VkFlags( CullModeFlagBits::eFrontAndBack )
9371     };
9372   };
9373 
operator |(CullModeFlagBits bit0,CullModeFlagBits bit1)9374   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator|( CullModeFlagBits bit0,
9375                                                                   CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9376   {
9377     return CullModeFlags( bit0 ) | bit1;
9378   }
9379 
operator &(CullModeFlagBits bit0,CullModeFlagBits bit1)9380   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator&(CullModeFlagBits bit0,
9381                                                                  CullModeFlagBits bit1)VULKAN_HPP_NOEXCEPT
9382   {
9383     return CullModeFlags( bit0 ) & bit1;
9384   }
9385 
operator ^(CullModeFlagBits bit0,CullModeFlagBits bit1)9386   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator^( CullModeFlagBits bit0,
9387                                                                   CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9388   {
9389     return CullModeFlags( bit0 ) ^ bit1;
9390   }
9391 
operator ~(CullModeFlagBits bits)9392   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator~( CullModeFlagBits bits ) VULKAN_HPP_NOEXCEPT
9393   {
9394     return ~( CullModeFlags( bits ) );
9395   }
9396 
to_string(CullModeFlags value)9397   VULKAN_HPP_INLINE std::string to_string( CullModeFlags value )
9398   {
9399     if ( !value )
9400       return "{}";
9401 
9402     std::string result;
9403     if ( value & CullModeFlagBits::eFront )
9404       result += "Front | ";
9405     if ( value & CullModeFlagBits::eBack )
9406       result += "Back | ";
9407     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9408   }
9409 
9410   using PipelineColorBlendStateCreateFlags = Flags<PipelineColorBlendStateCreateFlagBits>;
9411 
to_string(PipelineColorBlendStateCreateFlags)9412   VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlags )
9413   {
9414     return "{}";
9415   }
9416 
9417   using PipelineCreateFlags = Flags<PipelineCreateFlagBits>;
9418 
9419   template <>
9420   struct FlagTraits<PipelineCreateFlagBits>
9421   {
9422     enum : VkFlags
9423     {
9424       allFlags =
9425         VkFlags( PipelineCreateFlagBits::eDisableOptimization ) | VkFlags( PipelineCreateFlagBits::eAllowDerivatives ) |
9426         VkFlags( PipelineCreateFlagBits::eDerivative ) | VkFlags( PipelineCreateFlagBits::eViewIndexFromDeviceIndex ) |
9427         VkFlags( PipelineCreateFlagBits::eDispatchBase ) |
9428         VkFlags( PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR ) |
9429         VkFlags( PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR ) |
9430         VkFlags( PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR ) |
9431         VkFlags( PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR ) |
9432         VkFlags( PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR ) |
9433         VkFlags( PipelineCreateFlagBits::eRayTracingSkipAabbsKHR ) |
9434         VkFlags( PipelineCreateFlagBits::eRayTracingShaderGroupHandleCaptureReplayKHR ) |
9435         VkFlags( PipelineCreateFlagBits::eDeferCompileNV ) | VkFlags( PipelineCreateFlagBits::eCaptureStatisticsKHR ) |
9436         VkFlags( PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR ) |
9437         VkFlags( PipelineCreateFlagBits::eIndirectBindableNV ) | VkFlags( PipelineCreateFlagBits::eLibraryKHR ) |
9438         VkFlags( PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT ) |
9439         VkFlags( PipelineCreateFlagBits::eEarlyReturnOnFailureEXT ) |
9440         VkFlags( PipelineCreateFlagBits::eRayTracingAllowMotionNV )
9441     };
9442   };
9443 
9444   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags
operator |(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)9445                                          operator|( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9446   {
9447     return PipelineCreateFlags( bit0 ) | bit1;
9448   }
9449 
operator &(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)9450   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator&(PipelineCreateFlagBits bit0,
9451                                                                        PipelineCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT
9452   {
9453     return PipelineCreateFlags( bit0 ) & bit1;
9454   }
9455 
9456   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags
operator ^(PipelineCreateFlagBits bit0,PipelineCreateFlagBits bit1)9457                                          operator^( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9458   {
9459     return PipelineCreateFlags( bit0 ) ^ bit1;
9460   }
9461 
operator ~(PipelineCreateFlagBits bits)9462   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator~( PipelineCreateFlagBits bits )
9463     VULKAN_HPP_NOEXCEPT
9464   {
9465     return ~( PipelineCreateFlags( bits ) );
9466   }
9467 
to_string(PipelineCreateFlags value)9468   VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlags value )
9469   {
9470     if ( !value )
9471       return "{}";
9472 
9473     std::string result;
9474     if ( value & PipelineCreateFlagBits::eDisableOptimization )
9475       result += "DisableOptimization | ";
9476     if ( value & PipelineCreateFlagBits::eAllowDerivatives )
9477       result += "AllowDerivatives | ";
9478     if ( value & PipelineCreateFlagBits::eDerivative )
9479       result += "Derivative | ";
9480     if ( value & PipelineCreateFlagBits::eViewIndexFromDeviceIndex )
9481       result += "ViewIndexFromDeviceIndex | ";
9482     if ( value & PipelineCreateFlagBits::eDispatchBase )
9483       result += "DispatchBase | ";
9484     if ( value & PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR )
9485       result += "RayTracingNoNullAnyHitShadersKHR | ";
9486     if ( value & PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR )
9487       result += "RayTracingNoNullClosestHitShadersKHR | ";
9488     if ( value & PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR )
9489       result += "RayTracingNoNullMissShadersKHR | ";
9490     if ( value & PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR )
9491       result += "RayTracingNoNullIntersectionShadersKHR | ";
9492     if ( value & PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR )
9493       result += "RayTracingSkipTrianglesKHR | ";
9494     if ( value & PipelineCreateFlagBits::eRayTracingSkipAabbsKHR )
9495       result += "RayTracingSkipAabbsKHR | ";
9496     if ( value & PipelineCreateFlagBits::eRayTracingShaderGroupHandleCaptureReplayKHR )
9497       result += "RayTracingShaderGroupHandleCaptureReplayKHR | ";
9498     if ( value & PipelineCreateFlagBits::eDeferCompileNV )
9499       result += "DeferCompileNV | ";
9500     if ( value & PipelineCreateFlagBits::eCaptureStatisticsKHR )
9501       result += "CaptureStatisticsKHR | ";
9502     if ( value & PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR )
9503       result += "CaptureInternalRepresentationsKHR | ";
9504     if ( value & PipelineCreateFlagBits::eIndirectBindableNV )
9505       result += "IndirectBindableNV | ";
9506     if ( value & PipelineCreateFlagBits::eLibraryKHR )
9507       result += "LibraryKHR | ";
9508     if ( value & PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT )
9509       result += "FailOnPipelineCompileRequiredEXT | ";
9510     if ( value & PipelineCreateFlagBits::eEarlyReturnOnFailureEXT )
9511       result += "EarlyReturnOnFailureEXT | ";
9512     if ( value & PipelineCreateFlagBits::eRayTracingAllowMotionNV )
9513       result += "RayTracingAllowMotionNV | ";
9514     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9515   }
9516 
9517   using PipelineDepthStencilStateCreateFlags = Flags<PipelineDepthStencilStateCreateFlagBits>;
9518 
to_string(PipelineDepthStencilStateCreateFlags)9519   VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlags )
9520   {
9521     return "{}";
9522   }
9523 
9524   using PipelineDynamicStateCreateFlags = Flags<PipelineDynamicStateCreateFlagBits>;
9525 
to_string(PipelineDynamicStateCreateFlags)9526   VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlags )
9527   {
9528     return "{}";
9529   }
9530 
9531   using PipelineInputAssemblyStateCreateFlags = Flags<PipelineInputAssemblyStateCreateFlagBits>;
9532 
to_string(PipelineInputAssemblyStateCreateFlags)9533   VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlags )
9534   {
9535     return "{}";
9536   }
9537 
9538   using PipelineLayoutCreateFlags = Flags<PipelineLayoutCreateFlagBits>;
9539 
to_string(PipelineLayoutCreateFlags)9540   VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlags )
9541   {
9542     return "{}";
9543   }
9544 
9545   using PipelineMultisampleStateCreateFlags = Flags<PipelineMultisampleStateCreateFlagBits>;
9546 
to_string(PipelineMultisampleStateCreateFlags)9547   VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlags )
9548   {
9549     return "{}";
9550   }
9551 
9552   using PipelineRasterizationStateCreateFlags = Flags<PipelineRasterizationStateCreateFlagBits>;
9553 
to_string(PipelineRasterizationStateCreateFlags)9554   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlags )
9555   {
9556     return "{}";
9557   }
9558 
9559   using PipelineShaderStageCreateFlags = Flags<PipelineShaderStageCreateFlagBits>;
9560 
9561   template <>
9562   struct FlagTraits<PipelineShaderStageCreateFlagBits>
9563   {
9564     enum : VkFlags
9565     {
9566       allFlags = VkFlags( PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT ) |
9567                  VkFlags( PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT )
9568     };
9569   };
9570 
9571   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags
operator |(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)9572                                          operator|( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9573   {
9574     return PipelineShaderStageCreateFlags( bit0 ) | bit1;
9575   }
9576 
9577   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags
operator &(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)9578                                          operator&(PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT
9579   {
9580     return PipelineShaderStageCreateFlags( bit0 ) & bit1;
9581   }
9582 
9583   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags
operator ^(PipelineShaderStageCreateFlagBits bit0,PipelineShaderStageCreateFlagBits bit1)9584                                          operator^( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9585   {
9586     return PipelineShaderStageCreateFlags( bit0 ) ^ bit1;
9587   }
9588 
9589   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags
operator ~(PipelineShaderStageCreateFlagBits bits)9590                                          operator~( PipelineShaderStageCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
9591   {
9592     return ~( PipelineShaderStageCreateFlags( bits ) );
9593   }
9594 
to_string(PipelineShaderStageCreateFlags value)9595   VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlags value )
9596   {
9597     if ( !value )
9598       return "{}";
9599 
9600     std::string result;
9601     if ( value & PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT )
9602       result += "AllowVaryingSubgroupSizeEXT | ";
9603     if ( value & PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT )
9604       result += "RequireFullSubgroupsEXT | ";
9605     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9606   }
9607 
9608   using PipelineTessellationStateCreateFlags = Flags<PipelineTessellationStateCreateFlagBits>;
9609 
to_string(PipelineTessellationStateCreateFlags)9610   VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlags )
9611   {
9612     return "{}";
9613   }
9614 
9615   using PipelineVertexInputStateCreateFlags = Flags<PipelineVertexInputStateCreateFlagBits>;
9616 
to_string(PipelineVertexInputStateCreateFlags)9617   VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlags )
9618   {
9619     return "{}";
9620   }
9621 
9622   using PipelineViewportStateCreateFlags = Flags<PipelineViewportStateCreateFlagBits>;
9623 
to_string(PipelineViewportStateCreateFlags)9624   VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlags )
9625   {
9626     return "{}";
9627   }
9628 
9629   using ShaderStageFlags = Flags<ShaderStageFlagBits>;
9630 
9631   template <>
9632   struct FlagTraits<ShaderStageFlagBits>
9633   {
9634     enum : VkFlags
9635     {
9636       allFlags = VkFlags( ShaderStageFlagBits::eVertex ) | VkFlags( ShaderStageFlagBits::eTessellationControl ) |
9637                  VkFlags( ShaderStageFlagBits::eTessellationEvaluation ) | VkFlags( ShaderStageFlagBits::eGeometry ) |
9638                  VkFlags( ShaderStageFlagBits::eFragment ) | VkFlags( ShaderStageFlagBits::eCompute ) |
9639                  VkFlags( ShaderStageFlagBits::eAllGraphics ) | VkFlags( ShaderStageFlagBits::eAll ) |
9640                  VkFlags( ShaderStageFlagBits::eRaygenKHR ) | VkFlags( ShaderStageFlagBits::eAnyHitKHR ) |
9641                  VkFlags( ShaderStageFlagBits::eClosestHitKHR ) | VkFlags( ShaderStageFlagBits::eMissKHR ) |
9642                  VkFlags( ShaderStageFlagBits::eIntersectionKHR ) | VkFlags( ShaderStageFlagBits::eCallableKHR ) |
9643                  VkFlags( ShaderStageFlagBits::eTaskNV ) | VkFlags( ShaderStageFlagBits::eMeshNV ) |
9644                  VkFlags( ShaderStageFlagBits::eSubpassShadingHUAWEI )
9645     };
9646   };
9647 
operator |(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)9648   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator|( ShaderStageFlagBits bit0,
9649                                                                      ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9650   {
9651     return ShaderStageFlags( bit0 ) | bit1;
9652   }
9653 
operator &(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)9654   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator&(ShaderStageFlagBits bit0,
9655                                                                     ShaderStageFlagBits bit1)VULKAN_HPP_NOEXCEPT
9656   {
9657     return ShaderStageFlags( bit0 ) & bit1;
9658   }
9659 
operator ^(ShaderStageFlagBits bit0,ShaderStageFlagBits bit1)9660   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator^( ShaderStageFlagBits bit0,
9661                                                                      ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9662   {
9663     return ShaderStageFlags( bit0 ) ^ bit1;
9664   }
9665 
operator ~(ShaderStageFlagBits bits)9666   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator~( ShaderStageFlagBits bits ) VULKAN_HPP_NOEXCEPT
9667   {
9668     return ~( ShaderStageFlags( bits ) );
9669   }
9670 
to_string(ShaderStageFlags value)9671   VULKAN_HPP_INLINE std::string to_string( ShaderStageFlags value )
9672   {
9673     if ( !value )
9674       return "{}";
9675 
9676     std::string result;
9677     if ( value & ShaderStageFlagBits::eVertex )
9678       result += "Vertex | ";
9679     if ( value & ShaderStageFlagBits::eTessellationControl )
9680       result += "TessellationControl | ";
9681     if ( value & ShaderStageFlagBits::eTessellationEvaluation )
9682       result += "TessellationEvaluation | ";
9683     if ( value & ShaderStageFlagBits::eGeometry )
9684       result += "Geometry | ";
9685     if ( value & ShaderStageFlagBits::eFragment )
9686       result += "Fragment | ";
9687     if ( value & ShaderStageFlagBits::eCompute )
9688       result += "Compute | ";
9689     if ( value & ShaderStageFlagBits::eRaygenKHR )
9690       result += "RaygenKHR | ";
9691     if ( value & ShaderStageFlagBits::eAnyHitKHR )
9692       result += "AnyHitKHR | ";
9693     if ( value & ShaderStageFlagBits::eClosestHitKHR )
9694       result += "ClosestHitKHR | ";
9695     if ( value & ShaderStageFlagBits::eMissKHR )
9696       result += "MissKHR | ";
9697     if ( value & ShaderStageFlagBits::eIntersectionKHR )
9698       result += "IntersectionKHR | ";
9699     if ( value & ShaderStageFlagBits::eCallableKHR )
9700       result += "CallableKHR | ";
9701     if ( value & ShaderStageFlagBits::eTaskNV )
9702       result += "TaskNV | ";
9703     if ( value & ShaderStageFlagBits::eMeshNV )
9704       result += "MeshNV | ";
9705     if ( value & ShaderStageFlagBits::eSubpassShadingHUAWEI )
9706       result += "SubpassShadingHUAWEI | ";
9707     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9708   }
9709 
9710   using SamplerCreateFlags = Flags<SamplerCreateFlagBits>;
9711 
9712   template <>
9713   struct FlagTraits<SamplerCreateFlagBits>
9714   {
9715     enum : VkFlags
9716     {
9717       allFlags = VkFlags( SamplerCreateFlagBits::eSubsampledEXT ) |
9718                  VkFlags( SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT )
9719     };
9720   };
9721 
operator |(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)9722   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator|( SamplerCreateFlagBits bit0,
9723                                                                        SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9724   {
9725     return SamplerCreateFlags( bit0 ) | bit1;
9726   }
9727 
operator &(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)9728   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator&(SamplerCreateFlagBits bit0,
9729                                                                       SamplerCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT
9730   {
9731     return SamplerCreateFlags( bit0 ) & bit1;
9732   }
9733 
operator ^(SamplerCreateFlagBits bit0,SamplerCreateFlagBits bit1)9734   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator^( SamplerCreateFlagBits bit0,
9735                                                                        SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9736   {
9737     return SamplerCreateFlags( bit0 ) ^ bit1;
9738   }
9739 
operator ~(SamplerCreateFlagBits bits)9740   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator~( SamplerCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
9741   {
9742     return ~( SamplerCreateFlags( bits ) );
9743   }
9744 
to_string(SamplerCreateFlags value)9745   VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlags value )
9746   {
9747     if ( !value )
9748       return "{}";
9749 
9750     std::string result;
9751     if ( value & SamplerCreateFlagBits::eSubsampledEXT )
9752       result += "SubsampledEXT | ";
9753     if ( value & SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT )
9754       result += "SubsampledCoarseReconstructionEXT | ";
9755     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9756   }
9757 
9758   using DescriptorPoolCreateFlags = Flags<DescriptorPoolCreateFlagBits>;
9759 
9760   template <>
9761   struct FlagTraits<DescriptorPoolCreateFlagBits>
9762   {
9763     enum : VkFlags
9764     {
9765       allFlags = VkFlags( DescriptorPoolCreateFlagBits::eFreeDescriptorSet ) |
9766                  VkFlags( DescriptorPoolCreateFlagBits::eUpdateAfterBind ) |
9767                  VkFlags( DescriptorPoolCreateFlagBits::eHostOnlyVALVE )
9768     };
9769   };
9770 
9771   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags
operator |(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)9772                                          operator|( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9773   {
9774     return DescriptorPoolCreateFlags( bit0 ) | bit1;
9775   }
9776 
9777   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags
operator &(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)9778                                          operator&(DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT
9779   {
9780     return DescriptorPoolCreateFlags( bit0 ) & bit1;
9781   }
9782 
9783   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags
operator ^(DescriptorPoolCreateFlagBits bit0,DescriptorPoolCreateFlagBits bit1)9784                                          operator^( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9785   {
9786     return DescriptorPoolCreateFlags( bit0 ) ^ bit1;
9787   }
9788 
operator ~(DescriptorPoolCreateFlagBits bits)9789   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator~( DescriptorPoolCreateFlagBits bits )
9790     VULKAN_HPP_NOEXCEPT
9791   {
9792     return ~( DescriptorPoolCreateFlags( bits ) );
9793   }
9794 
to_string(DescriptorPoolCreateFlags value)9795   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlags value )
9796   {
9797     if ( !value )
9798       return "{}";
9799 
9800     std::string result;
9801     if ( value & DescriptorPoolCreateFlagBits::eFreeDescriptorSet )
9802       result += "FreeDescriptorSet | ";
9803     if ( value & DescriptorPoolCreateFlagBits::eUpdateAfterBind )
9804       result += "UpdateAfterBind | ";
9805     if ( value & DescriptorPoolCreateFlagBits::eHostOnlyVALVE )
9806       result += "HostOnlyVALVE | ";
9807     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9808   }
9809 
9810   using DescriptorPoolResetFlags = Flags<DescriptorPoolResetFlagBits>;
9811 
to_string(DescriptorPoolResetFlags)9812   VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlags )
9813   {
9814     return "{}";
9815   }
9816 
9817   using DescriptorSetLayoutCreateFlags = Flags<DescriptorSetLayoutCreateFlagBits>;
9818 
9819   template <>
9820   struct FlagTraits<DescriptorSetLayoutCreateFlagBits>
9821   {
9822     enum : VkFlags
9823     {
9824       allFlags = VkFlags( DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool ) |
9825                  VkFlags( DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR ) |
9826                  VkFlags( DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolVALVE )
9827     };
9828   };
9829 
9830   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags
operator |(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)9831                                          operator|( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9832   {
9833     return DescriptorSetLayoutCreateFlags( bit0 ) | bit1;
9834   }
9835 
9836   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags
operator &(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)9837                                          operator&(DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT
9838   {
9839     return DescriptorSetLayoutCreateFlags( bit0 ) & bit1;
9840   }
9841 
9842   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags
operator ^(DescriptorSetLayoutCreateFlagBits bit0,DescriptorSetLayoutCreateFlagBits bit1)9843                                          operator^( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9844   {
9845     return DescriptorSetLayoutCreateFlags( bit0 ) ^ bit1;
9846   }
9847 
9848   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags
operator ~(DescriptorSetLayoutCreateFlagBits bits)9849                                          operator~( DescriptorSetLayoutCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT
9850   {
9851     return ~( DescriptorSetLayoutCreateFlags( bits ) );
9852   }
9853 
to_string(DescriptorSetLayoutCreateFlags value)9854   VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlags value )
9855   {
9856     if ( !value )
9857       return "{}";
9858 
9859     std::string result;
9860     if ( value & DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool )
9861       result += "UpdateAfterBindPool | ";
9862     if ( value & DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR )
9863       result += "PushDescriptorKHR | ";
9864     if ( value & DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolVALVE )
9865       result += "HostOnlyPoolVALVE | ";
9866     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9867   }
9868 
9869   using AccessFlags = Flags<AccessFlagBits>;
9870 
9871   template <>
9872   struct FlagTraits<AccessFlagBits>
9873   {
9874     enum : VkFlags
9875     {
9876       allFlags = VkFlags( AccessFlagBits::eIndirectCommandRead ) | VkFlags( AccessFlagBits::eIndexRead ) |
9877                  VkFlags( AccessFlagBits::eVertexAttributeRead ) | VkFlags( AccessFlagBits::eUniformRead ) |
9878                  VkFlags( AccessFlagBits::eInputAttachmentRead ) | VkFlags( AccessFlagBits::eShaderRead ) |
9879                  VkFlags( AccessFlagBits::eShaderWrite ) | VkFlags( AccessFlagBits::eColorAttachmentRead ) |
9880                  VkFlags( AccessFlagBits::eColorAttachmentWrite ) |
9881                  VkFlags( AccessFlagBits::eDepthStencilAttachmentRead ) |
9882                  VkFlags( AccessFlagBits::eDepthStencilAttachmentWrite ) | VkFlags( AccessFlagBits::eTransferRead ) |
9883                  VkFlags( AccessFlagBits::eTransferWrite ) | VkFlags( AccessFlagBits::eHostRead ) |
9884                  VkFlags( AccessFlagBits::eHostWrite ) | VkFlags( AccessFlagBits::eMemoryRead ) |
9885                  VkFlags( AccessFlagBits::eMemoryWrite ) | VkFlags( AccessFlagBits::eTransformFeedbackWriteEXT ) |
9886                  VkFlags( AccessFlagBits::eTransformFeedbackCounterReadEXT ) |
9887                  VkFlags( AccessFlagBits::eTransformFeedbackCounterWriteEXT ) |
9888                  VkFlags( AccessFlagBits::eConditionalRenderingReadEXT ) |
9889                  VkFlags( AccessFlagBits::eColorAttachmentReadNoncoherentEXT ) |
9890                  VkFlags( AccessFlagBits::eAccelerationStructureReadKHR ) |
9891                  VkFlags( AccessFlagBits::eAccelerationStructureWriteKHR ) |
9892                  VkFlags( AccessFlagBits::eFragmentDensityMapReadEXT ) |
9893                  VkFlags( AccessFlagBits::eFragmentShadingRateAttachmentReadKHR ) |
9894                  VkFlags( AccessFlagBits::eCommandPreprocessReadNV ) |
9895                  VkFlags( AccessFlagBits::eCommandPreprocessWriteNV ) | VkFlags( AccessFlagBits::eNoneKHR )
9896     };
9897   };
9898 
operator |(AccessFlagBits bit0,AccessFlagBits bit1)9899   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator|( AccessFlagBits bit0,
9900                                                                 AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9901   {
9902     return AccessFlags( bit0 ) | bit1;
9903   }
9904 
operator &(AccessFlagBits bit0,AccessFlagBits bit1)9905   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator&(AccessFlagBits bit0,
9906                                                                AccessFlagBits bit1)VULKAN_HPP_NOEXCEPT
9907   {
9908     return AccessFlags( bit0 ) & bit1;
9909   }
9910 
operator ^(AccessFlagBits bit0,AccessFlagBits bit1)9911   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator^( AccessFlagBits bit0,
9912                                                                 AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
9913   {
9914     return AccessFlags( bit0 ) ^ bit1;
9915   }
9916 
operator ~(AccessFlagBits bits)9917   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator~( AccessFlagBits bits ) VULKAN_HPP_NOEXCEPT
9918   {
9919     return ~( AccessFlags( bits ) );
9920   }
9921 
to_string(AccessFlags value)9922   VULKAN_HPP_INLINE std::string to_string( AccessFlags value )
9923   {
9924     if ( !value )
9925       return "{}";
9926 
9927     std::string result;
9928     if ( value & AccessFlagBits::eIndirectCommandRead )
9929       result += "IndirectCommandRead | ";
9930     if ( value & AccessFlagBits::eIndexRead )
9931       result += "IndexRead | ";
9932     if ( value & AccessFlagBits::eVertexAttributeRead )
9933       result += "VertexAttributeRead | ";
9934     if ( value & AccessFlagBits::eUniformRead )
9935       result += "UniformRead | ";
9936     if ( value & AccessFlagBits::eInputAttachmentRead )
9937       result += "InputAttachmentRead | ";
9938     if ( value & AccessFlagBits::eShaderRead )
9939       result += "ShaderRead | ";
9940     if ( value & AccessFlagBits::eShaderWrite )
9941       result += "ShaderWrite | ";
9942     if ( value & AccessFlagBits::eColorAttachmentRead )
9943       result += "ColorAttachmentRead | ";
9944     if ( value & AccessFlagBits::eColorAttachmentWrite )
9945       result += "ColorAttachmentWrite | ";
9946     if ( value & AccessFlagBits::eDepthStencilAttachmentRead )
9947       result += "DepthStencilAttachmentRead | ";
9948     if ( value & AccessFlagBits::eDepthStencilAttachmentWrite )
9949       result += "DepthStencilAttachmentWrite | ";
9950     if ( value & AccessFlagBits::eTransferRead )
9951       result += "TransferRead | ";
9952     if ( value & AccessFlagBits::eTransferWrite )
9953       result += "TransferWrite | ";
9954     if ( value & AccessFlagBits::eHostRead )
9955       result += "HostRead | ";
9956     if ( value & AccessFlagBits::eHostWrite )
9957       result += "HostWrite | ";
9958     if ( value & AccessFlagBits::eMemoryRead )
9959       result += "MemoryRead | ";
9960     if ( value & AccessFlagBits::eMemoryWrite )
9961       result += "MemoryWrite | ";
9962     if ( value & AccessFlagBits::eTransformFeedbackWriteEXT )
9963       result += "TransformFeedbackWriteEXT | ";
9964     if ( value & AccessFlagBits::eTransformFeedbackCounterReadEXT )
9965       result += "TransformFeedbackCounterReadEXT | ";
9966     if ( value & AccessFlagBits::eTransformFeedbackCounterWriteEXT )
9967       result += "TransformFeedbackCounterWriteEXT | ";
9968     if ( value & AccessFlagBits::eConditionalRenderingReadEXT )
9969       result += "ConditionalRenderingReadEXT | ";
9970     if ( value & AccessFlagBits::eColorAttachmentReadNoncoherentEXT )
9971       result += "ColorAttachmentReadNoncoherentEXT | ";
9972     if ( value & AccessFlagBits::eAccelerationStructureReadKHR )
9973       result += "AccelerationStructureReadKHR | ";
9974     if ( value & AccessFlagBits::eAccelerationStructureWriteKHR )
9975       result += "AccelerationStructureWriteKHR | ";
9976     if ( value & AccessFlagBits::eFragmentDensityMapReadEXT )
9977       result += "FragmentDensityMapReadEXT | ";
9978     if ( value & AccessFlagBits::eFragmentShadingRateAttachmentReadKHR )
9979       result += "FragmentShadingRateAttachmentReadKHR | ";
9980     if ( value & AccessFlagBits::eCommandPreprocessReadNV )
9981       result += "CommandPreprocessReadNV | ";
9982     if ( value & AccessFlagBits::eCommandPreprocessWriteNV )
9983       result += "CommandPreprocessWriteNV | ";
9984     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
9985   }
9986 
9987   using AttachmentDescriptionFlags = Flags<AttachmentDescriptionFlagBits>;
9988 
9989   template <>
9990   struct FlagTraits<AttachmentDescriptionFlagBits>
9991   {
9992     enum : VkFlags
9993     {
9994       allFlags = VkFlags( AttachmentDescriptionFlagBits::eMayAlias )
9995     };
9996   };
9997 
9998   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags
operator |(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)9999                                          operator|( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10000   {
10001     return AttachmentDescriptionFlags( bit0 ) | bit1;
10002   }
10003 
10004   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags
operator &(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)10005                                          operator&(AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1)VULKAN_HPP_NOEXCEPT
10006   {
10007     return AttachmentDescriptionFlags( bit0 ) & bit1;
10008   }
10009 
10010   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags
operator ^(AttachmentDescriptionFlagBits bit0,AttachmentDescriptionFlagBits bit1)10011                                          operator^( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10012   {
10013     return AttachmentDescriptionFlags( bit0 ) ^ bit1;
10014   }
10015 
operator ~(AttachmentDescriptionFlagBits bits)10016   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator~( AttachmentDescriptionFlagBits bits )
10017     VULKAN_HPP_NOEXCEPT
10018   {
10019     return ~( AttachmentDescriptionFlags( bits ) );
10020   }
10021 
to_string(AttachmentDescriptionFlags value)10022   VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlags value )
10023   {
10024     if ( !value )
10025       return "{}";
10026 
10027     std::string result;
10028     if ( value & AttachmentDescriptionFlagBits::eMayAlias )
10029       result += "MayAlias | ";
10030     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10031   }
10032 
10033   using DependencyFlags = Flags<DependencyFlagBits>;
10034 
10035   template <>
10036   struct FlagTraits<DependencyFlagBits>
10037   {
10038     enum : VkFlags
10039     {
10040       allFlags = VkFlags( DependencyFlagBits::eByRegion ) | VkFlags( DependencyFlagBits::eDeviceGroup ) |
10041                  VkFlags( DependencyFlagBits::eViewLocal )
10042     };
10043   };
10044 
operator |(DependencyFlagBits bit0,DependencyFlagBits bit1)10045   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator|( DependencyFlagBits bit0,
10046                                                                     DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10047   {
10048     return DependencyFlags( bit0 ) | bit1;
10049   }
10050 
operator &(DependencyFlagBits bit0,DependencyFlagBits bit1)10051   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator&(DependencyFlagBits bit0,
10052                                                                    DependencyFlagBits bit1)VULKAN_HPP_NOEXCEPT
10053   {
10054     return DependencyFlags( bit0 ) & bit1;
10055   }
10056 
operator ^(DependencyFlagBits bit0,DependencyFlagBits bit1)10057   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator^( DependencyFlagBits bit0,
10058                                                                     DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10059   {
10060     return DependencyFlags( bit0 ) ^ bit1;
10061   }
10062 
operator ~(DependencyFlagBits bits)10063   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator~( DependencyFlagBits bits ) VULKAN_HPP_NOEXCEPT
10064   {
10065     return ~( DependencyFlags( bits ) );
10066   }
10067 
to_string(DependencyFlags value)10068   VULKAN_HPP_INLINE std::string to_string( DependencyFlags value )
10069   {
10070     if ( !value )
10071       return "{}";
10072 
10073     std::string result;
10074     if ( value & DependencyFlagBits::eByRegion )
10075       result += "ByRegion | ";
10076     if ( value & DependencyFlagBits::eDeviceGroup )
10077       result += "DeviceGroup | ";
10078     if ( value & DependencyFlagBits::eViewLocal )
10079       result += "ViewLocal | ";
10080     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10081   }
10082 
10083   using FramebufferCreateFlags = Flags<FramebufferCreateFlagBits>;
10084 
10085   template <>
10086   struct FlagTraits<FramebufferCreateFlagBits>
10087   {
10088     enum : VkFlags
10089     {
10090       allFlags = VkFlags( FramebufferCreateFlagBits::eImageless )
10091     };
10092   };
10093 
10094   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags
operator |(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)10095                                          operator|( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10096   {
10097     return FramebufferCreateFlags( bit0 ) | bit1;
10098   }
10099 
10100   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags
operator &(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)10101                                          operator&(FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT
10102   {
10103     return FramebufferCreateFlags( bit0 ) & bit1;
10104   }
10105 
10106   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags
operator ^(FramebufferCreateFlagBits bit0,FramebufferCreateFlagBits bit1)10107                                          operator^( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10108   {
10109     return FramebufferCreateFlags( bit0 ) ^ bit1;
10110   }
10111 
operator ~(FramebufferCreateFlagBits bits)10112   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator~( FramebufferCreateFlagBits bits )
10113     VULKAN_HPP_NOEXCEPT
10114   {
10115     return ~( FramebufferCreateFlags( bits ) );
10116   }
10117 
to_string(FramebufferCreateFlags value)10118   VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlags value )
10119   {
10120     if ( !value )
10121       return "{}";
10122 
10123     std::string result;
10124     if ( value & FramebufferCreateFlagBits::eImageless )
10125       result += "Imageless | ";
10126     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10127   }
10128 
10129   using RenderPassCreateFlags = Flags<RenderPassCreateFlagBits>;
10130 
10131   template <>
10132   struct FlagTraits<RenderPassCreateFlagBits>
10133   {
10134     enum : VkFlags
10135     {
10136       allFlags = VkFlags( RenderPassCreateFlagBits::eTransformQCOM )
10137     };
10138   };
10139 
10140   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags
operator |(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)10141                                          operator|( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10142   {
10143     return RenderPassCreateFlags( bit0 ) | bit1;
10144   }
10145 
10146   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags
operator &(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)10147                                          operator&(RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT
10148   {
10149     return RenderPassCreateFlags( bit0 ) & bit1;
10150   }
10151 
10152   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags
operator ^(RenderPassCreateFlagBits bit0,RenderPassCreateFlagBits bit1)10153                                          operator^( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10154   {
10155     return RenderPassCreateFlags( bit0 ) ^ bit1;
10156   }
10157 
operator ~(RenderPassCreateFlagBits bits)10158   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator~( RenderPassCreateFlagBits bits )
10159     VULKAN_HPP_NOEXCEPT
10160   {
10161     return ~( RenderPassCreateFlags( bits ) );
10162   }
10163 
to_string(RenderPassCreateFlags value)10164   VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlags value )
10165   {
10166     if ( !value )
10167       return "{}";
10168 
10169     std::string result;
10170     if ( value & RenderPassCreateFlagBits::eTransformQCOM )
10171       result += "TransformQCOM | ";
10172     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10173   }
10174 
10175   using SubpassDescriptionFlags = Flags<SubpassDescriptionFlagBits>;
10176 
10177   template <>
10178   struct FlagTraits<SubpassDescriptionFlagBits>
10179   {
10180     enum : VkFlags
10181     {
10182       allFlags = VkFlags( SubpassDescriptionFlagBits::ePerViewAttributesNVX ) |
10183                  VkFlags( SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX ) |
10184                  VkFlags( SubpassDescriptionFlagBits::eFragmentRegionQCOM ) |
10185                  VkFlags( SubpassDescriptionFlagBits::eShaderResolveQCOM )
10186     };
10187   };
10188 
10189   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags
operator |(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)10190                                          operator|( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10191   {
10192     return SubpassDescriptionFlags( bit0 ) | bit1;
10193   }
10194 
10195   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags
operator &(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)10196                                          operator&(SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1)VULKAN_HPP_NOEXCEPT
10197   {
10198     return SubpassDescriptionFlags( bit0 ) & bit1;
10199   }
10200 
10201   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags
operator ^(SubpassDescriptionFlagBits bit0,SubpassDescriptionFlagBits bit1)10202                                          operator^( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10203   {
10204     return SubpassDescriptionFlags( bit0 ) ^ bit1;
10205   }
10206 
operator ~(SubpassDescriptionFlagBits bits)10207   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator~( SubpassDescriptionFlagBits bits )
10208     VULKAN_HPP_NOEXCEPT
10209   {
10210     return ~( SubpassDescriptionFlags( bits ) );
10211   }
10212 
to_string(SubpassDescriptionFlags value)10213   VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlags value )
10214   {
10215     if ( !value )
10216       return "{}";
10217 
10218     std::string result;
10219     if ( value & SubpassDescriptionFlagBits::ePerViewAttributesNVX )
10220       result += "PerViewAttributesNVX | ";
10221     if ( value & SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX )
10222       result += "PerViewPositionXOnlyNVX | ";
10223     if ( value & SubpassDescriptionFlagBits::eFragmentRegionQCOM )
10224       result += "FragmentRegionQCOM | ";
10225     if ( value & SubpassDescriptionFlagBits::eShaderResolveQCOM )
10226       result += "ShaderResolveQCOM | ";
10227     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10228   }
10229 
10230   using CommandPoolCreateFlags = Flags<CommandPoolCreateFlagBits>;
10231 
10232   template <>
10233   struct FlagTraits<CommandPoolCreateFlagBits>
10234   {
10235     enum : VkFlags
10236     {
10237       allFlags = VkFlags( CommandPoolCreateFlagBits::eTransient ) |
10238                  VkFlags( CommandPoolCreateFlagBits::eResetCommandBuffer ) |
10239                  VkFlags( CommandPoolCreateFlagBits::eProtected )
10240     };
10241   };
10242 
10243   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags
operator |(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)10244                                          operator|( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10245   {
10246     return CommandPoolCreateFlags( bit0 ) | bit1;
10247   }
10248 
10249   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags
operator &(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)10250                                          operator&(CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT
10251   {
10252     return CommandPoolCreateFlags( bit0 ) & bit1;
10253   }
10254 
10255   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags
operator ^(CommandPoolCreateFlagBits bit0,CommandPoolCreateFlagBits bit1)10256                                          operator^( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10257   {
10258     return CommandPoolCreateFlags( bit0 ) ^ bit1;
10259   }
10260 
operator ~(CommandPoolCreateFlagBits bits)10261   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator~( CommandPoolCreateFlagBits bits )
10262     VULKAN_HPP_NOEXCEPT
10263   {
10264     return ~( CommandPoolCreateFlags( bits ) );
10265   }
10266 
to_string(CommandPoolCreateFlags value)10267   VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlags value )
10268   {
10269     if ( !value )
10270       return "{}";
10271 
10272     std::string result;
10273     if ( value & CommandPoolCreateFlagBits::eTransient )
10274       result += "Transient | ";
10275     if ( value & CommandPoolCreateFlagBits::eResetCommandBuffer )
10276       result += "ResetCommandBuffer | ";
10277     if ( value & CommandPoolCreateFlagBits::eProtected )
10278       result += "Protected | ";
10279     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10280   }
10281 
10282   using CommandPoolResetFlags = Flags<CommandPoolResetFlagBits>;
10283 
10284   template <>
10285   struct FlagTraits<CommandPoolResetFlagBits>
10286   {
10287     enum : VkFlags
10288     {
10289       allFlags = VkFlags( CommandPoolResetFlagBits::eReleaseResources )
10290     };
10291   };
10292 
10293   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags
operator |(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)10294                                          operator|( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10295   {
10296     return CommandPoolResetFlags( bit0 ) | bit1;
10297   }
10298 
10299   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags
operator &(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)10300                                          operator&(CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1)VULKAN_HPP_NOEXCEPT
10301   {
10302     return CommandPoolResetFlags( bit0 ) & bit1;
10303   }
10304 
10305   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags
operator ^(CommandPoolResetFlagBits bit0,CommandPoolResetFlagBits bit1)10306                                          operator^( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10307   {
10308     return CommandPoolResetFlags( bit0 ) ^ bit1;
10309   }
10310 
operator ~(CommandPoolResetFlagBits bits)10311   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator~( CommandPoolResetFlagBits bits )
10312     VULKAN_HPP_NOEXCEPT
10313   {
10314     return ~( CommandPoolResetFlags( bits ) );
10315   }
10316 
to_string(CommandPoolResetFlags value)10317   VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlags value )
10318   {
10319     if ( !value )
10320       return "{}";
10321 
10322     std::string result;
10323     if ( value & CommandPoolResetFlagBits::eReleaseResources )
10324       result += "ReleaseResources | ";
10325     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10326   }
10327 
10328   using CommandBufferResetFlags = Flags<CommandBufferResetFlagBits>;
10329 
10330   template <>
10331   struct FlagTraits<CommandBufferResetFlagBits>
10332   {
10333     enum : VkFlags
10334     {
10335       allFlags = VkFlags( CommandBufferResetFlagBits::eReleaseResources )
10336     };
10337   };
10338 
10339   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags
operator |(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)10340                                          operator|( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10341   {
10342     return CommandBufferResetFlags( bit0 ) | bit1;
10343   }
10344 
10345   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags
operator &(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)10346                                          operator&(CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1)VULKAN_HPP_NOEXCEPT
10347   {
10348     return CommandBufferResetFlags( bit0 ) & bit1;
10349   }
10350 
10351   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags
operator ^(CommandBufferResetFlagBits bit0,CommandBufferResetFlagBits bit1)10352                                          operator^( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10353   {
10354     return CommandBufferResetFlags( bit0 ) ^ bit1;
10355   }
10356 
operator ~(CommandBufferResetFlagBits bits)10357   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator~( CommandBufferResetFlagBits bits )
10358     VULKAN_HPP_NOEXCEPT
10359   {
10360     return ~( CommandBufferResetFlags( bits ) );
10361   }
10362 
to_string(CommandBufferResetFlags value)10363   VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlags value )
10364   {
10365     if ( !value )
10366       return "{}";
10367 
10368     std::string result;
10369     if ( value & CommandBufferResetFlagBits::eReleaseResources )
10370       result += "ReleaseResources | ";
10371     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10372   }
10373 
10374   using CommandBufferUsageFlags = Flags<CommandBufferUsageFlagBits>;
10375 
10376   template <>
10377   struct FlagTraits<CommandBufferUsageFlagBits>
10378   {
10379     enum : VkFlags
10380     {
10381       allFlags = VkFlags( CommandBufferUsageFlagBits::eOneTimeSubmit ) |
10382                  VkFlags( CommandBufferUsageFlagBits::eRenderPassContinue ) |
10383                  VkFlags( CommandBufferUsageFlagBits::eSimultaneousUse )
10384     };
10385   };
10386 
10387   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags
operator |(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)10388                                          operator|( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10389   {
10390     return CommandBufferUsageFlags( bit0 ) | bit1;
10391   }
10392 
10393   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags
operator &(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)10394                                          operator&(CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1)VULKAN_HPP_NOEXCEPT
10395   {
10396     return CommandBufferUsageFlags( bit0 ) & bit1;
10397   }
10398 
10399   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags
operator ^(CommandBufferUsageFlagBits bit0,CommandBufferUsageFlagBits bit1)10400                                          operator^( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10401   {
10402     return CommandBufferUsageFlags( bit0 ) ^ bit1;
10403   }
10404 
operator ~(CommandBufferUsageFlagBits bits)10405   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator~( CommandBufferUsageFlagBits bits )
10406     VULKAN_HPP_NOEXCEPT
10407   {
10408     return ~( CommandBufferUsageFlags( bits ) );
10409   }
10410 
to_string(CommandBufferUsageFlags value)10411   VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlags value )
10412   {
10413     if ( !value )
10414       return "{}";
10415 
10416     std::string result;
10417     if ( value & CommandBufferUsageFlagBits::eOneTimeSubmit )
10418       result += "OneTimeSubmit | ";
10419     if ( value & CommandBufferUsageFlagBits::eRenderPassContinue )
10420       result += "RenderPassContinue | ";
10421     if ( value & CommandBufferUsageFlagBits::eSimultaneousUse )
10422       result += "SimultaneousUse | ";
10423     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10424   }
10425 
10426   using QueryControlFlags = Flags<QueryControlFlagBits>;
10427 
10428   template <>
10429   struct FlagTraits<QueryControlFlagBits>
10430   {
10431     enum : VkFlags
10432     {
10433       allFlags = VkFlags( QueryControlFlagBits::ePrecise )
10434     };
10435   };
10436 
operator |(QueryControlFlagBits bit0,QueryControlFlagBits bit1)10437   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator|( QueryControlFlagBits bit0,
10438                                                                       QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10439   {
10440     return QueryControlFlags( bit0 ) | bit1;
10441   }
10442 
operator &(QueryControlFlagBits bit0,QueryControlFlagBits bit1)10443   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator&(QueryControlFlagBits bit0,
10444                                                                      QueryControlFlagBits bit1)VULKAN_HPP_NOEXCEPT
10445   {
10446     return QueryControlFlags( bit0 ) & bit1;
10447   }
10448 
operator ^(QueryControlFlagBits bit0,QueryControlFlagBits bit1)10449   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator^( QueryControlFlagBits bit0,
10450                                                                       QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10451   {
10452     return QueryControlFlags( bit0 ) ^ bit1;
10453   }
10454 
operator ~(QueryControlFlagBits bits)10455   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator~( QueryControlFlagBits bits ) VULKAN_HPP_NOEXCEPT
10456   {
10457     return ~( QueryControlFlags( bits ) );
10458   }
10459 
to_string(QueryControlFlags value)10460   VULKAN_HPP_INLINE std::string to_string( QueryControlFlags value )
10461   {
10462     if ( !value )
10463       return "{}";
10464 
10465     std::string result;
10466     if ( value & QueryControlFlagBits::ePrecise )
10467       result += "Precise | ";
10468     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10469   }
10470 
10471   using StencilFaceFlags = Flags<StencilFaceFlagBits>;
10472 
10473   template <>
10474   struct FlagTraits<StencilFaceFlagBits>
10475   {
10476     enum : VkFlags
10477     {
10478       allFlags = VkFlags( StencilFaceFlagBits::eFront ) | VkFlags( StencilFaceFlagBits::eBack ) |
10479                  VkFlags( StencilFaceFlagBits::eFrontAndBack )
10480     };
10481   };
10482 
operator |(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)10483   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator|( StencilFaceFlagBits bit0,
10484                                                                      StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10485   {
10486     return StencilFaceFlags( bit0 ) | bit1;
10487   }
10488 
operator &(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)10489   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator&(StencilFaceFlagBits bit0,
10490                                                                     StencilFaceFlagBits bit1)VULKAN_HPP_NOEXCEPT
10491   {
10492     return StencilFaceFlags( bit0 ) & bit1;
10493   }
10494 
operator ^(StencilFaceFlagBits bit0,StencilFaceFlagBits bit1)10495   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator^( StencilFaceFlagBits bit0,
10496                                                                      StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10497   {
10498     return StencilFaceFlags( bit0 ) ^ bit1;
10499   }
10500 
operator ~(StencilFaceFlagBits bits)10501   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator~( StencilFaceFlagBits bits ) VULKAN_HPP_NOEXCEPT
10502   {
10503     return ~( StencilFaceFlags( bits ) );
10504   }
10505 
to_string(StencilFaceFlags value)10506   VULKAN_HPP_INLINE std::string to_string( StencilFaceFlags value )
10507   {
10508     if ( !value )
10509       return "{}";
10510 
10511     std::string result;
10512     if ( value & StencilFaceFlagBits::eFront )
10513       result += "Front | ";
10514     if ( value & StencilFaceFlagBits::eBack )
10515       result += "Back | ";
10516     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10517   }
10518 
10519   //=== VK_VERSION_1_1 ===
10520 
10521   using SubgroupFeatureFlags = Flags<SubgroupFeatureFlagBits>;
10522 
10523   template <>
10524   struct FlagTraits<SubgroupFeatureFlagBits>
10525   {
10526     enum : VkFlags
10527     {
10528       allFlags = VkFlags( SubgroupFeatureFlagBits::eBasic ) | VkFlags( SubgroupFeatureFlagBits::eVote ) |
10529                  VkFlags( SubgroupFeatureFlagBits::eArithmetic ) | VkFlags( SubgroupFeatureFlagBits::eBallot ) |
10530                  VkFlags( SubgroupFeatureFlagBits::eShuffle ) | VkFlags( SubgroupFeatureFlagBits::eShuffleRelative ) |
10531                  VkFlags( SubgroupFeatureFlagBits::eClustered ) | VkFlags( SubgroupFeatureFlagBits::eQuad ) |
10532                  VkFlags( SubgroupFeatureFlagBits::ePartitionedNV )
10533     };
10534   };
10535 
10536   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags
operator |(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)10537                                          operator|( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10538   {
10539     return SubgroupFeatureFlags( bit0 ) | bit1;
10540   }
10541 
operator &(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)10542   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator&(SubgroupFeatureFlagBits bit0,
10543                                                                         SubgroupFeatureFlagBits bit1)VULKAN_HPP_NOEXCEPT
10544   {
10545     return SubgroupFeatureFlags( bit0 ) & bit1;
10546   }
10547 
10548   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags
operator ^(SubgroupFeatureFlagBits bit0,SubgroupFeatureFlagBits bit1)10549                                          operator^( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10550   {
10551     return SubgroupFeatureFlags( bit0 ) ^ bit1;
10552   }
10553 
operator ~(SubgroupFeatureFlagBits bits)10554   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator~( SubgroupFeatureFlagBits bits )
10555     VULKAN_HPP_NOEXCEPT
10556   {
10557     return ~( SubgroupFeatureFlags( bits ) );
10558   }
10559 
to_string(SubgroupFeatureFlags value)10560   VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlags value )
10561   {
10562     if ( !value )
10563       return "{}";
10564 
10565     std::string result;
10566     if ( value & SubgroupFeatureFlagBits::eBasic )
10567       result += "Basic | ";
10568     if ( value & SubgroupFeatureFlagBits::eVote )
10569       result += "Vote | ";
10570     if ( value & SubgroupFeatureFlagBits::eArithmetic )
10571       result += "Arithmetic | ";
10572     if ( value & SubgroupFeatureFlagBits::eBallot )
10573       result += "Ballot | ";
10574     if ( value & SubgroupFeatureFlagBits::eShuffle )
10575       result += "Shuffle | ";
10576     if ( value & SubgroupFeatureFlagBits::eShuffleRelative )
10577       result += "ShuffleRelative | ";
10578     if ( value & SubgroupFeatureFlagBits::eClustered )
10579       result += "Clustered | ";
10580     if ( value & SubgroupFeatureFlagBits::eQuad )
10581       result += "Quad | ";
10582     if ( value & SubgroupFeatureFlagBits::ePartitionedNV )
10583       result += "PartitionedNV | ";
10584     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10585   }
10586 
10587   using PeerMemoryFeatureFlags = Flags<PeerMemoryFeatureFlagBits>;
10588 
10589   template <>
10590   struct FlagTraits<PeerMemoryFeatureFlagBits>
10591   {
10592     enum : VkFlags
10593     {
10594       allFlags = VkFlags( PeerMemoryFeatureFlagBits::eCopySrc ) | VkFlags( PeerMemoryFeatureFlagBits::eCopyDst ) |
10595                  VkFlags( PeerMemoryFeatureFlagBits::eGenericSrc ) | VkFlags( PeerMemoryFeatureFlagBits::eGenericDst )
10596     };
10597   };
10598 
10599   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags
operator |(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)10600                                          operator|( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10601   {
10602     return PeerMemoryFeatureFlags( bit0 ) | bit1;
10603   }
10604 
10605   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags
operator &(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)10606                                          operator&(PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1)VULKAN_HPP_NOEXCEPT
10607   {
10608     return PeerMemoryFeatureFlags( bit0 ) & bit1;
10609   }
10610 
10611   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags
operator ^(PeerMemoryFeatureFlagBits bit0,PeerMemoryFeatureFlagBits bit1)10612                                          operator^( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10613   {
10614     return PeerMemoryFeatureFlags( bit0 ) ^ bit1;
10615   }
10616 
operator ~(PeerMemoryFeatureFlagBits bits)10617   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator~( PeerMemoryFeatureFlagBits bits )
10618     VULKAN_HPP_NOEXCEPT
10619   {
10620     return ~( PeerMemoryFeatureFlags( bits ) );
10621   }
10622 
10623   using PeerMemoryFeatureFlagsKHR = PeerMemoryFeatureFlags;
10624 
to_string(PeerMemoryFeatureFlags value)10625   VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlags value )
10626   {
10627     if ( !value )
10628       return "{}";
10629 
10630     std::string result;
10631     if ( value & PeerMemoryFeatureFlagBits::eCopySrc )
10632       result += "CopySrc | ";
10633     if ( value & PeerMemoryFeatureFlagBits::eCopyDst )
10634       result += "CopyDst | ";
10635     if ( value & PeerMemoryFeatureFlagBits::eGenericSrc )
10636       result += "GenericSrc | ";
10637     if ( value & PeerMemoryFeatureFlagBits::eGenericDst )
10638       result += "GenericDst | ";
10639     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10640   }
10641 
10642   using MemoryAllocateFlags = Flags<MemoryAllocateFlagBits>;
10643 
10644   template <>
10645   struct FlagTraits<MemoryAllocateFlagBits>
10646   {
10647     enum : VkFlags
10648     {
10649       allFlags = VkFlags( MemoryAllocateFlagBits::eDeviceMask ) | VkFlags( MemoryAllocateFlagBits::eDeviceAddress ) |
10650                  VkFlags( MemoryAllocateFlagBits::eDeviceAddressCaptureReplay )
10651     };
10652   };
10653 
10654   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags
operator |(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)10655                                          operator|( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10656   {
10657     return MemoryAllocateFlags( bit0 ) | bit1;
10658   }
10659 
operator &(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)10660   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator&(MemoryAllocateFlagBits bit0,
10661                                                                        MemoryAllocateFlagBits bit1)VULKAN_HPP_NOEXCEPT
10662   {
10663     return MemoryAllocateFlags( bit0 ) & bit1;
10664   }
10665 
10666   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags
operator ^(MemoryAllocateFlagBits bit0,MemoryAllocateFlagBits bit1)10667                                          operator^( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10668   {
10669     return MemoryAllocateFlags( bit0 ) ^ bit1;
10670   }
10671 
operator ~(MemoryAllocateFlagBits bits)10672   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator~( MemoryAllocateFlagBits bits )
10673     VULKAN_HPP_NOEXCEPT
10674   {
10675     return ~( MemoryAllocateFlags( bits ) );
10676   }
10677 
10678   using MemoryAllocateFlagsKHR = MemoryAllocateFlags;
10679 
to_string(MemoryAllocateFlags value)10680   VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlags value )
10681   {
10682     if ( !value )
10683       return "{}";
10684 
10685     std::string result;
10686     if ( value & MemoryAllocateFlagBits::eDeviceMask )
10687       result += "DeviceMask | ";
10688     if ( value & MemoryAllocateFlagBits::eDeviceAddress )
10689       result += "DeviceAddress | ";
10690     if ( value & MemoryAllocateFlagBits::eDeviceAddressCaptureReplay )
10691       result += "DeviceAddressCaptureReplay | ";
10692     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10693   }
10694 
10695   using CommandPoolTrimFlags = Flags<CommandPoolTrimFlagBits>;
10696 
10697   using CommandPoolTrimFlagsKHR = CommandPoolTrimFlags;
10698 
to_string(CommandPoolTrimFlags)10699   VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlags )
10700   {
10701     return "{}";
10702   }
10703 
10704   using DescriptorUpdateTemplateCreateFlags = Flags<DescriptorUpdateTemplateCreateFlagBits>;
10705 
10706   using DescriptorUpdateTemplateCreateFlagsKHR = DescriptorUpdateTemplateCreateFlags;
10707 
to_string(DescriptorUpdateTemplateCreateFlags)10708   VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlags )
10709   {
10710     return "{}";
10711   }
10712 
10713   using ExternalMemoryHandleTypeFlags = Flags<ExternalMemoryHandleTypeFlagBits>;
10714 
10715   template <>
10716   struct FlagTraits<ExternalMemoryHandleTypeFlagBits>
10717   {
10718     enum : VkFlags
10719     {
10720       allFlags = VkFlags( ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) |
10721                  VkFlags( ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 ) |
10722                  VkFlags( ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt ) |
10723                  VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D11Texture ) |
10724                  VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt ) |
10725                  VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D12Heap ) |
10726                  VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D12Resource ) |
10727                  VkFlags( ExternalMemoryHandleTypeFlagBits::eDmaBufEXT )
10728 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
10729                  | VkFlags( ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID )
10730 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
10731                  | VkFlags( ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT ) |
10732                  VkFlags( ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT )
10733 #if defined( VK_USE_PLATFORM_FUCHSIA )
10734                  | VkFlags( ExternalMemoryHandleTypeFlagBits::eZirconVmoFUCHSIA )
10735 #endif /*VK_USE_PLATFORM_FUCHSIA*/
10736                  | VkFlags( ExternalMemoryHandleTypeFlagBits::eRdmaAddressNV )
10737     };
10738   };
10739 
10740   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags
operator |(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)10741                                          operator|( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10742   {
10743     return ExternalMemoryHandleTypeFlags( bit0 ) | bit1;
10744   }
10745 
10746   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags
operator &(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)10747                                          operator&(ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1)VULKAN_HPP_NOEXCEPT
10748   {
10749     return ExternalMemoryHandleTypeFlags( bit0 ) & bit1;
10750   }
10751 
10752   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags
operator ^(ExternalMemoryHandleTypeFlagBits bit0,ExternalMemoryHandleTypeFlagBits bit1)10753                                          operator^( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10754   {
10755     return ExternalMemoryHandleTypeFlags( bit0 ) ^ bit1;
10756   }
10757 
10758   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags
operator ~(ExternalMemoryHandleTypeFlagBits bits)10759                                          operator~( ExternalMemoryHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT
10760   {
10761     return ~( ExternalMemoryHandleTypeFlags( bits ) );
10762   }
10763 
10764   using ExternalMemoryHandleTypeFlagsKHR = ExternalMemoryHandleTypeFlags;
10765 
to_string(ExternalMemoryHandleTypeFlags value)10766   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlags value )
10767   {
10768     if ( !value )
10769       return "{}";
10770 
10771     std::string result;
10772     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueFd )
10773       result += "OpaqueFd | ";
10774     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 )
10775       result += "OpaqueWin32 | ";
10776     if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt )
10777       result += "OpaqueWin32Kmt | ";
10778     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11Texture )
10779       result += "D3D11Texture | ";
10780     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt )
10781       result += "D3D11TextureKmt | ";
10782     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Heap )
10783       result += "D3D12Heap | ";
10784     if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Resource )
10785       result += "D3D12Resource | ";
10786     if ( value & ExternalMemoryHandleTypeFlagBits::eDmaBufEXT )
10787       result += "DmaBufEXT | ";
10788 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
10789     if ( value & ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID )
10790       result += "AndroidHardwareBufferANDROID | ";
10791 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
10792     if ( value & ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT )
10793       result += "HostAllocationEXT | ";
10794     if ( value & ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT )
10795       result += "HostMappedForeignMemoryEXT | ";
10796 #if defined( VK_USE_PLATFORM_FUCHSIA )
10797     if ( value & ExternalMemoryHandleTypeFlagBits::eZirconVmoFUCHSIA )
10798       result += "ZirconVmoFUCHSIA | ";
10799 #endif /*VK_USE_PLATFORM_FUCHSIA*/
10800     if ( value & ExternalMemoryHandleTypeFlagBits::eRdmaAddressNV )
10801       result += "RdmaAddressNV | ";
10802     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10803   }
10804 
10805   using ExternalMemoryFeatureFlags = Flags<ExternalMemoryFeatureFlagBits>;
10806 
10807   template <>
10808   struct FlagTraits<ExternalMemoryFeatureFlagBits>
10809   {
10810     enum : VkFlags
10811     {
10812       allFlags = VkFlags( ExternalMemoryFeatureFlagBits::eDedicatedOnly ) |
10813                  VkFlags( ExternalMemoryFeatureFlagBits::eExportable ) |
10814                  VkFlags( ExternalMemoryFeatureFlagBits::eImportable )
10815     };
10816   };
10817 
10818   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags
operator |(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)10819                                          operator|( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10820   {
10821     return ExternalMemoryFeatureFlags( bit0 ) | bit1;
10822   }
10823 
10824   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags
operator &(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)10825                                          operator&(ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1)VULKAN_HPP_NOEXCEPT
10826   {
10827     return ExternalMemoryFeatureFlags( bit0 ) & bit1;
10828   }
10829 
10830   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags
operator ^(ExternalMemoryFeatureFlagBits bit0,ExternalMemoryFeatureFlagBits bit1)10831                                          operator^( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10832   {
10833     return ExternalMemoryFeatureFlags( bit0 ) ^ bit1;
10834   }
10835 
operator ~(ExternalMemoryFeatureFlagBits bits)10836   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator~( ExternalMemoryFeatureFlagBits bits )
10837     VULKAN_HPP_NOEXCEPT
10838   {
10839     return ~( ExternalMemoryFeatureFlags( bits ) );
10840   }
10841 
10842   using ExternalMemoryFeatureFlagsKHR = ExternalMemoryFeatureFlags;
10843 
to_string(ExternalMemoryFeatureFlags value)10844   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlags value )
10845   {
10846     if ( !value )
10847       return "{}";
10848 
10849     std::string result;
10850     if ( value & ExternalMemoryFeatureFlagBits::eDedicatedOnly )
10851       result += "DedicatedOnly | ";
10852     if ( value & ExternalMemoryFeatureFlagBits::eExportable )
10853       result += "Exportable | ";
10854     if ( value & ExternalMemoryFeatureFlagBits::eImportable )
10855       result += "Importable | ";
10856     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10857   }
10858 
10859   using ExternalFenceHandleTypeFlags = Flags<ExternalFenceHandleTypeFlagBits>;
10860 
10861   template <>
10862   struct FlagTraits<ExternalFenceHandleTypeFlagBits>
10863   {
10864     enum : VkFlags
10865     {
10866       allFlags = VkFlags( ExternalFenceHandleTypeFlagBits::eOpaqueFd ) |
10867                  VkFlags( ExternalFenceHandleTypeFlagBits::eOpaqueWin32 ) |
10868                  VkFlags( ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt ) |
10869                  VkFlags( ExternalFenceHandleTypeFlagBits::eSyncFd )
10870     };
10871   };
10872 
10873   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags
operator |(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)10874                                          operator|( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10875   {
10876     return ExternalFenceHandleTypeFlags( bit0 ) | bit1;
10877   }
10878 
10879   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags
operator &(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)10880                                          operator&(ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1)VULKAN_HPP_NOEXCEPT
10881   {
10882     return ExternalFenceHandleTypeFlags( bit0 ) & bit1;
10883   }
10884 
10885   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags
operator ^(ExternalFenceHandleTypeFlagBits bit0,ExternalFenceHandleTypeFlagBits bit1)10886                                          operator^( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10887   {
10888     return ExternalFenceHandleTypeFlags( bit0 ) ^ bit1;
10889   }
10890 
operator ~(ExternalFenceHandleTypeFlagBits bits)10891   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator~( ExternalFenceHandleTypeFlagBits bits )
10892     VULKAN_HPP_NOEXCEPT
10893   {
10894     return ~( ExternalFenceHandleTypeFlags( bits ) );
10895   }
10896 
10897   using ExternalFenceHandleTypeFlagsKHR = ExternalFenceHandleTypeFlags;
10898 
to_string(ExternalFenceHandleTypeFlags value)10899   VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlags value )
10900   {
10901     if ( !value )
10902       return "{}";
10903 
10904     std::string result;
10905     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueFd )
10906       result += "OpaqueFd | ";
10907     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32 )
10908       result += "OpaqueWin32 | ";
10909     if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt )
10910       result += "OpaqueWin32Kmt | ";
10911     if ( value & ExternalFenceHandleTypeFlagBits::eSyncFd )
10912       result += "SyncFd | ";
10913     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10914   }
10915 
10916   using ExternalFenceFeatureFlags = Flags<ExternalFenceFeatureFlagBits>;
10917 
10918   template <>
10919   struct FlagTraits<ExternalFenceFeatureFlagBits>
10920   {
10921     enum : VkFlags
10922     {
10923       allFlags =
10924         VkFlags( ExternalFenceFeatureFlagBits::eExportable ) | VkFlags( ExternalFenceFeatureFlagBits::eImportable )
10925     };
10926   };
10927 
10928   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags
operator |(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)10929                                          operator|( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10930   {
10931     return ExternalFenceFeatureFlags( bit0 ) | bit1;
10932   }
10933 
10934   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags
operator &(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)10935                                          operator&(ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1)VULKAN_HPP_NOEXCEPT
10936   {
10937     return ExternalFenceFeatureFlags( bit0 ) & bit1;
10938   }
10939 
10940   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags
operator ^(ExternalFenceFeatureFlagBits bit0,ExternalFenceFeatureFlagBits bit1)10941                                          operator^( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10942   {
10943     return ExternalFenceFeatureFlags( bit0 ) ^ bit1;
10944   }
10945 
operator ~(ExternalFenceFeatureFlagBits bits)10946   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator~( ExternalFenceFeatureFlagBits bits )
10947     VULKAN_HPP_NOEXCEPT
10948   {
10949     return ~( ExternalFenceFeatureFlags( bits ) );
10950   }
10951 
10952   using ExternalFenceFeatureFlagsKHR = ExternalFenceFeatureFlags;
10953 
to_string(ExternalFenceFeatureFlags value)10954   VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlags value )
10955   {
10956     if ( !value )
10957       return "{}";
10958 
10959     std::string result;
10960     if ( value & ExternalFenceFeatureFlagBits::eExportable )
10961       result += "Exportable | ";
10962     if ( value & ExternalFenceFeatureFlagBits::eImportable )
10963       result += "Importable | ";
10964     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
10965   }
10966 
10967   using FenceImportFlags = Flags<FenceImportFlagBits>;
10968 
10969   template <>
10970   struct FlagTraits<FenceImportFlagBits>
10971   {
10972     enum : VkFlags
10973     {
10974       allFlags = VkFlags( FenceImportFlagBits::eTemporary )
10975     };
10976   };
10977 
operator |(FenceImportFlagBits bit0,FenceImportFlagBits bit1)10978   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator|( FenceImportFlagBits bit0,
10979                                                                      FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10980   {
10981     return FenceImportFlags( bit0 ) | bit1;
10982   }
10983 
operator &(FenceImportFlagBits bit0,FenceImportFlagBits bit1)10984   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator&(FenceImportFlagBits bit0,
10985                                                                     FenceImportFlagBits bit1)VULKAN_HPP_NOEXCEPT
10986   {
10987     return FenceImportFlags( bit0 ) & bit1;
10988   }
10989 
operator ^(FenceImportFlagBits bit0,FenceImportFlagBits bit1)10990   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator^( FenceImportFlagBits bit0,
10991                                                                      FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
10992   {
10993     return FenceImportFlags( bit0 ) ^ bit1;
10994   }
10995 
operator ~(FenceImportFlagBits bits)10996   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator~( FenceImportFlagBits bits ) VULKAN_HPP_NOEXCEPT
10997   {
10998     return ~( FenceImportFlags( bits ) );
10999   }
11000 
11001   using FenceImportFlagsKHR = FenceImportFlags;
11002 
to_string(FenceImportFlags value)11003   VULKAN_HPP_INLINE std::string to_string( FenceImportFlags value )
11004   {
11005     if ( !value )
11006       return "{}";
11007 
11008     std::string result;
11009     if ( value & FenceImportFlagBits::eTemporary )
11010       result += "Temporary | ";
11011     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11012   }
11013 
11014   using SemaphoreImportFlags = Flags<SemaphoreImportFlagBits>;
11015 
11016   template <>
11017   struct FlagTraits<SemaphoreImportFlagBits>
11018   {
11019     enum : VkFlags
11020     {
11021       allFlags = VkFlags( SemaphoreImportFlagBits::eTemporary )
11022     };
11023   };
11024 
11025   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags
operator |(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)11026                                          operator|( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11027   {
11028     return SemaphoreImportFlags( bit0 ) | bit1;
11029   }
11030 
operator &(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)11031   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator&(SemaphoreImportFlagBits bit0,
11032                                                                         SemaphoreImportFlagBits bit1)VULKAN_HPP_NOEXCEPT
11033   {
11034     return SemaphoreImportFlags( bit0 ) & bit1;
11035   }
11036 
11037   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags
operator ^(SemaphoreImportFlagBits bit0,SemaphoreImportFlagBits bit1)11038                                          operator^( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11039   {
11040     return SemaphoreImportFlags( bit0 ) ^ bit1;
11041   }
11042 
operator ~(SemaphoreImportFlagBits bits)11043   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator~( SemaphoreImportFlagBits bits )
11044     VULKAN_HPP_NOEXCEPT
11045   {
11046     return ~( SemaphoreImportFlags( bits ) );
11047   }
11048 
11049   using SemaphoreImportFlagsKHR = SemaphoreImportFlags;
11050 
to_string(SemaphoreImportFlags value)11051   VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlags value )
11052   {
11053     if ( !value )
11054       return "{}";
11055 
11056     std::string result;
11057     if ( value & SemaphoreImportFlagBits::eTemporary )
11058       result += "Temporary | ";
11059     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11060   }
11061 
11062   using ExternalSemaphoreHandleTypeFlags = Flags<ExternalSemaphoreHandleTypeFlagBits>;
11063 
11064   template <>
11065   struct FlagTraits<ExternalSemaphoreHandleTypeFlagBits>
11066   {
11067     enum : VkFlags
11068     {
11069       allFlags = VkFlags( ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) |
11070                  VkFlags( ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 ) |
11071                  VkFlags( ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt ) |
11072                  VkFlags( ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence ) |
11073                  VkFlags( ExternalSemaphoreHandleTypeFlagBits::eSyncFd )
11074 #if defined( VK_USE_PLATFORM_FUCHSIA )
11075                  | VkFlags( ExternalSemaphoreHandleTypeFlagBits::eZirconEventFUCHSIA )
11076 #endif /*VK_USE_PLATFORM_FUCHSIA*/
11077     };
11078   };
11079 
11080   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags
operator |(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)11081                                          operator|( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11082   {
11083     return ExternalSemaphoreHandleTypeFlags( bit0 ) | bit1;
11084   }
11085 
11086   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags
operator &(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)11087                                          operator&(ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1)VULKAN_HPP_NOEXCEPT
11088   {
11089     return ExternalSemaphoreHandleTypeFlags( bit0 ) & bit1;
11090   }
11091 
11092   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags
operator ^(ExternalSemaphoreHandleTypeFlagBits bit0,ExternalSemaphoreHandleTypeFlagBits bit1)11093                                          operator^( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11094   {
11095     return ExternalSemaphoreHandleTypeFlags( bit0 ) ^ bit1;
11096   }
11097 
11098   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags
operator ~(ExternalSemaphoreHandleTypeFlagBits bits)11099                                          operator~( ExternalSemaphoreHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT
11100   {
11101     return ~( ExternalSemaphoreHandleTypeFlags( bits ) );
11102   }
11103 
11104   using ExternalSemaphoreHandleTypeFlagsKHR = ExternalSemaphoreHandleTypeFlags;
11105 
to_string(ExternalSemaphoreHandleTypeFlags value)11106   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlags value )
11107   {
11108     if ( !value )
11109       return "{}";
11110 
11111     std::string result;
11112     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd )
11113       result += "OpaqueFd | ";
11114     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 )
11115       result += "OpaqueWin32 | ";
11116     if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt )
11117       result += "OpaqueWin32Kmt | ";
11118     if ( value & ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence )
11119       result += "D3D12Fence | ";
11120     if ( value & ExternalSemaphoreHandleTypeFlagBits::eSyncFd )
11121       result += "SyncFd | ";
11122 #if defined( VK_USE_PLATFORM_FUCHSIA )
11123     if ( value & ExternalSemaphoreHandleTypeFlagBits::eZirconEventFUCHSIA )
11124       result += "ZirconEventFUCHSIA | ";
11125 #endif /*VK_USE_PLATFORM_FUCHSIA*/
11126     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11127   }
11128 
11129   using ExternalSemaphoreFeatureFlags = Flags<ExternalSemaphoreFeatureFlagBits>;
11130 
11131   template <>
11132   struct FlagTraits<ExternalSemaphoreFeatureFlagBits>
11133   {
11134     enum : VkFlags
11135     {
11136       allFlags = VkFlags( ExternalSemaphoreFeatureFlagBits::eExportable ) |
11137                  VkFlags( ExternalSemaphoreFeatureFlagBits::eImportable )
11138     };
11139   };
11140 
11141   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags
operator |(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)11142                                          operator|( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11143   {
11144     return ExternalSemaphoreFeatureFlags( bit0 ) | bit1;
11145   }
11146 
11147   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags
operator &(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)11148                                          operator&(ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1)VULKAN_HPP_NOEXCEPT
11149   {
11150     return ExternalSemaphoreFeatureFlags( bit0 ) & bit1;
11151   }
11152 
11153   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags
operator ^(ExternalSemaphoreFeatureFlagBits bit0,ExternalSemaphoreFeatureFlagBits bit1)11154                                          operator^( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11155   {
11156     return ExternalSemaphoreFeatureFlags( bit0 ) ^ bit1;
11157   }
11158 
11159   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags
operator ~(ExternalSemaphoreFeatureFlagBits bits)11160                                          operator~( ExternalSemaphoreFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT
11161   {
11162     return ~( ExternalSemaphoreFeatureFlags( bits ) );
11163   }
11164 
11165   using ExternalSemaphoreFeatureFlagsKHR = ExternalSemaphoreFeatureFlags;
11166 
to_string(ExternalSemaphoreFeatureFlags value)11167   VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlags value )
11168   {
11169     if ( !value )
11170       return "{}";
11171 
11172     std::string result;
11173     if ( value & ExternalSemaphoreFeatureFlagBits::eExportable )
11174       result += "Exportable | ";
11175     if ( value & ExternalSemaphoreFeatureFlagBits::eImportable )
11176       result += "Importable | ";
11177     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11178   }
11179 
11180   //=== VK_VERSION_1_2 ===
11181 
11182   using DescriptorBindingFlags = Flags<DescriptorBindingFlagBits>;
11183 
11184   template <>
11185   struct FlagTraits<DescriptorBindingFlagBits>
11186   {
11187     enum : VkFlags
11188     {
11189       allFlags = VkFlags( DescriptorBindingFlagBits::eUpdateAfterBind ) |
11190                  VkFlags( DescriptorBindingFlagBits::eUpdateUnusedWhilePending ) |
11191                  VkFlags( DescriptorBindingFlagBits::ePartiallyBound ) |
11192                  VkFlags( DescriptorBindingFlagBits::eVariableDescriptorCount )
11193     };
11194   };
11195 
11196   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags
operator |(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)11197                                          operator|( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11198   {
11199     return DescriptorBindingFlags( bit0 ) | bit1;
11200   }
11201 
11202   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags
operator &(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)11203                                          operator&(DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1)VULKAN_HPP_NOEXCEPT
11204   {
11205     return DescriptorBindingFlags( bit0 ) & bit1;
11206   }
11207 
11208   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags
operator ^(DescriptorBindingFlagBits bit0,DescriptorBindingFlagBits bit1)11209                                          operator^( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11210   {
11211     return DescriptorBindingFlags( bit0 ) ^ bit1;
11212   }
11213 
operator ~(DescriptorBindingFlagBits bits)11214   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator~( DescriptorBindingFlagBits bits )
11215     VULKAN_HPP_NOEXCEPT
11216   {
11217     return ~( DescriptorBindingFlags( bits ) );
11218   }
11219 
11220   using DescriptorBindingFlagsEXT = DescriptorBindingFlags;
11221 
to_string(DescriptorBindingFlags value)11222   VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlags value )
11223   {
11224     if ( !value )
11225       return "{}";
11226 
11227     std::string result;
11228     if ( value & DescriptorBindingFlagBits::eUpdateAfterBind )
11229       result += "UpdateAfterBind | ";
11230     if ( value & DescriptorBindingFlagBits::eUpdateUnusedWhilePending )
11231       result += "UpdateUnusedWhilePending | ";
11232     if ( value & DescriptorBindingFlagBits::ePartiallyBound )
11233       result += "PartiallyBound | ";
11234     if ( value & DescriptorBindingFlagBits::eVariableDescriptorCount )
11235       result += "VariableDescriptorCount | ";
11236     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11237   }
11238 
11239   using ResolveModeFlags = Flags<ResolveModeFlagBits>;
11240 
11241   template <>
11242   struct FlagTraits<ResolveModeFlagBits>
11243   {
11244     enum : VkFlags
11245     {
11246       allFlags = VkFlags( ResolveModeFlagBits::eNone ) | VkFlags( ResolveModeFlagBits::eSampleZero ) |
11247                  VkFlags( ResolveModeFlagBits::eAverage ) | VkFlags( ResolveModeFlagBits::eMin ) |
11248                  VkFlags( ResolveModeFlagBits::eMax )
11249     };
11250   };
11251 
operator |(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)11252   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator|( ResolveModeFlagBits bit0,
11253                                                                      ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11254   {
11255     return ResolveModeFlags( bit0 ) | bit1;
11256   }
11257 
operator &(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)11258   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator&(ResolveModeFlagBits bit0,
11259                                                                     ResolveModeFlagBits bit1)VULKAN_HPP_NOEXCEPT
11260   {
11261     return ResolveModeFlags( bit0 ) & bit1;
11262   }
11263 
operator ^(ResolveModeFlagBits bit0,ResolveModeFlagBits bit1)11264   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator^( ResolveModeFlagBits bit0,
11265                                                                      ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11266   {
11267     return ResolveModeFlags( bit0 ) ^ bit1;
11268   }
11269 
operator ~(ResolveModeFlagBits bits)11270   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator~( ResolveModeFlagBits bits ) VULKAN_HPP_NOEXCEPT
11271   {
11272     return ~( ResolveModeFlags( bits ) );
11273   }
11274 
11275   using ResolveModeFlagsKHR = ResolveModeFlags;
11276 
to_string(ResolveModeFlags value)11277   VULKAN_HPP_INLINE std::string to_string( ResolveModeFlags value )
11278   {
11279     if ( !value )
11280       return "{}";
11281 
11282     std::string result;
11283     if ( value & ResolveModeFlagBits::eSampleZero )
11284       result += "SampleZero | ";
11285     if ( value & ResolveModeFlagBits::eAverage )
11286       result += "Average | ";
11287     if ( value & ResolveModeFlagBits::eMin )
11288       result += "Min | ";
11289     if ( value & ResolveModeFlagBits::eMax )
11290       result += "Max | ";
11291     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11292   }
11293 
11294   using SemaphoreWaitFlags = Flags<SemaphoreWaitFlagBits>;
11295 
11296   template <>
11297   struct FlagTraits<SemaphoreWaitFlagBits>
11298   {
11299     enum : VkFlags
11300     {
11301       allFlags = VkFlags( SemaphoreWaitFlagBits::eAny )
11302     };
11303   };
11304 
operator |(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)11305   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator|( SemaphoreWaitFlagBits bit0,
11306                                                                        SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11307   {
11308     return SemaphoreWaitFlags( bit0 ) | bit1;
11309   }
11310 
operator &(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)11311   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator&(SemaphoreWaitFlagBits bit0,
11312                                                                       SemaphoreWaitFlagBits bit1)VULKAN_HPP_NOEXCEPT
11313   {
11314     return SemaphoreWaitFlags( bit0 ) & bit1;
11315   }
11316 
operator ^(SemaphoreWaitFlagBits bit0,SemaphoreWaitFlagBits bit1)11317   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator^( SemaphoreWaitFlagBits bit0,
11318                                                                        SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT
11319   {
11320     return SemaphoreWaitFlags( bit0 ) ^ bit1;
11321   }
11322 
operator ~(SemaphoreWaitFlagBits bits)11323   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator~( SemaphoreWaitFlagBits bits ) VULKAN_HPP_NOEXCEPT
11324   {
11325     return ~( SemaphoreWaitFlags( bits ) );
11326   }
11327 
11328   using SemaphoreWaitFlagsKHR = SemaphoreWaitFlags;
11329 
to_string(SemaphoreWaitFlags value)11330   VULKAN_HPP_INLINE std::string to_string( SemaphoreWaitFlags value )
11331   {
11332     if ( !value )
11333       return "{}";
11334 
11335     std::string result;
11336     if ( value & SemaphoreWaitFlagBits::eAny )
11337       result += "Any | ";
11338     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11339   }
11340 
11341   //=== VK_KHR_surface ===
11342 
11343   using CompositeAlphaFlagsKHR = Flags<CompositeAlphaFlagBitsKHR>;
11344 
11345   template <>
11346   struct FlagTraits<CompositeAlphaFlagBitsKHR>
11347   {
11348     enum : VkFlags
11349     {
11350       allFlags = VkFlags( CompositeAlphaFlagBitsKHR::eOpaque ) | VkFlags( CompositeAlphaFlagBitsKHR::ePreMultiplied ) |
11351                  VkFlags( CompositeAlphaFlagBitsKHR::ePostMultiplied ) | VkFlags( CompositeAlphaFlagBitsKHR::eInherit )
11352     };
11353   };
11354 
11355   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR
operator |(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)11356                                          operator|( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11357   {
11358     return CompositeAlphaFlagsKHR( bit0 ) | bit1;
11359   }
11360 
11361   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR
operator &(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)11362                                          operator&(CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
11363   {
11364     return CompositeAlphaFlagsKHR( bit0 ) & bit1;
11365   }
11366 
11367   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR
operator ^(CompositeAlphaFlagBitsKHR bit0,CompositeAlphaFlagBitsKHR bit1)11368                                          operator^( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11369   {
11370     return CompositeAlphaFlagsKHR( bit0 ) ^ bit1;
11371   }
11372 
operator ~(CompositeAlphaFlagBitsKHR bits)11373   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator~( CompositeAlphaFlagBitsKHR bits )
11374     VULKAN_HPP_NOEXCEPT
11375   {
11376     return ~( CompositeAlphaFlagsKHR( bits ) );
11377   }
11378 
to_string(CompositeAlphaFlagsKHR value)11379   VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagsKHR value )
11380   {
11381     if ( !value )
11382       return "{}";
11383 
11384     std::string result;
11385     if ( value & CompositeAlphaFlagBitsKHR::eOpaque )
11386       result += "Opaque | ";
11387     if ( value & CompositeAlphaFlagBitsKHR::ePreMultiplied )
11388       result += "PreMultiplied | ";
11389     if ( value & CompositeAlphaFlagBitsKHR::ePostMultiplied )
11390       result += "PostMultiplied | ";
11391     if ( value & CompositeAlphaFlagBitsKHR::eInherit )
11392       result += "Inherit | ";
11393     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11394   }
11395 
11396   //=== VK_KHR_swapchain ===
11397 
11398   using SwapchainCreateFlagsKHR = Flags<SwapchainCreateFlagBitsKHR>;
11399 
11400   template <>
11401   struct FlagTraits<SwapchainCreateFlagBitsKHR>
11402   {
11403     enum : VkFlags
11404     {
11405       allFlags = VkFlags( SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions ) |
11406                  VkFlags( SwapchainCreateFlagBitsKHR::eProtected ) |
11407                  VkFlags( SwapchainCreateFlagBitsKHR::eMutableFormat )
11408     };
11409   };
11410 
11411   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR
operator |(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)11412                                          operator|( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11413   {
11414     return SwapchainCreateFlagsKHR( bit0 ) | bit1;
11415   }
11416 
11417   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR
operator &(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)11418                                          operator&(SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
11419   {
11420     return SwapchainCreateFlagsKHR( bit0 ) & bit1;
11421   }
11422 
11423   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR
operator ^(SwapchainCreateFlagBitsKHR bit0,SwapchainCreateFlagBitsKHR bit1)11424                                          operator^( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11425   {
11426     return SwapchainCreateFlagsKHR( bit0 ) ^ bit1;
11427   }
11428 
operator ~(SwapchainCreateFlagBitsKHR bits)11429   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator~( SwapchainCreateFlagBitsKHR bits )
11430     VULKAN_HPP_NOEXCEPT
11431   {
11432     return ~( SwapchainCreateFlagsKHR( bits ) );
11433   }
11434 
to_string(SwapchainCreateFlagsKHR value)11435   VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagsKHR value )
11436   {
11437     if ( !value )
11438       return "{}";
11439 
11440     std::string result;
11441     if ( value & SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions )
11442       result += "SplitInstanceBindRegions | ";
11443     if ( value & SwapchainCreateFlagBitsKHR::eProtected )
11444       result += "Protected | ";
11445     if ( value & SwapchainCreateFlagBitsKHR::eMutableFormat )
11446       result += "MutableFormat | ";
11447     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11448   }
11449 
11450   using DeviceGroupPresentModeFlagsKHR = Flags<DeviceGroupPresentModeFlagBitsKHR>;
11451 
11452   template <>
11453   struct FlagTraits<DeviceGroupPresentModeFlagBitsKHR>
11454   {
11455     enum : VkFlags
11456     {
11457       allFlags = VkFlags( DeviceGroupPresentModeFlagBitsKHR::eLocal ) |
11458                  VkFlags( DeviceGroupPresentModeFlagBitsKHR::eRemote ) |
11459                  VkFlags( DeviceGroupPresentModeFlagBitsKHR::eSum ) |
11460                  VkFlags( DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice )
11461     };
11462   };
11463 
11464   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR
operator |(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)11465                                          operator|( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11466   {
11467     return DeviceGroupPresentModeFlagsKHR( bit0 ) | bit1;
11468   }
11469 
11470   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR
operator &(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)11471                                          operator&(DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
11472   {
11473     return DeviceGroupPresentModeFlagsKHR( bit0 ) & bit1;
11474   }
11475 
11476   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR
operator ^(DeviceGroupPresentModeFlagBitsKHR bit0,DeviceGroupPresentModeFlagBitsKHR bit1)11477                                          operator^( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11478   {
11479     return DeviceGroupPresentModeFlagsKHR( bit0 ) ^ bit1;
11480   }
11481 
11482   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR
operator ~(DeviceGroupPresentModeFlagBitsKHR bits)11483                                          operator~( DeviceGroupPresentModeFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
11484   {
11485     return ~( DeviceGroupPresentModeFlagsKHR( bits ) );
11486   }
11487 
to_string(DeviceGroupPresentModeFlagsKHR value)11488   VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagsKHR value )
11489   {
11490     if ( !value )
11491       return "{}";
11492 
11493     std::string result;
11494     if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocal )
11495       result += "Local | ";
11496     if ( value & DeviceGroupPresentModeFlagBitsKHR::eRemote )
11497       result += "Remote | ";
11498     if ( value & DeviceGroupPresentModeFlagBitsKHR::eSum )
11499       result += "Sum | ";
11500     if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice )
11501       result += "LocalMultiDevice | ";
11502     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11503   }
11504 
11505   //=== VK_KHR_display ===
11506 
11507   using DisplayModeCreateFlagsKHR = Flags<DisplayModeCreateFlagBitsKHR>;
11508 
to_string(DisplayModeCreateFlagsKHR)11509   VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagsKHR )
11510   {
11511     return "{}";
11512   }
11513 
11514   using DisplayPlaneAlphaFlagsKHR = Flags<DisplayPlaneAlphaFlagBitsKHR>;
11515 
11516   template <>
11517   struct FlagTraits<DisplayPlaneAlphaFlagBitsKHR>
11518   {
11519     enum : VkFlags
11520     {
11521       allFlags = VkFlags( DisplayPlaneAlphaFlagBitsKHR::eOpaque ) | VkFlags( DisplayPlaneAlphaFlagBitsKHR::eGlobal ) |
11522                  VkFlags( DisplayPlaneAlphaFlagBitsKHR::ePerPixel ) |
11523                  VkFlags( DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied )
11524     };
11525   };
11526 
11527   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR
operator |(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)11528                                          operator|( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11529   {
11530     return DisplayPlaneAlphaFlagsKHR( bit0 ) | bit1;
11531   }
11532 
11533   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR
operator &(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)11534                                          operator&(DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
11535   {
11536     return DisplayPlaneAlphaFlagsKHR( bit0 ) & bit1;
11537   }
11538 
11539   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR
operator ^(DisplayPlaneAlphaFlagBitsKHR bit0,DisplayPlaneAlphaFlagBitsKHR bit1)11540                                          operator^( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11541   {
11542     return DisplayPlaneAlphaFlagsKHR( bit0 ) ^ bit1;
11543   }
11544 
operator ~(DisplayPlaneAlphaFlagBitsKHR bits)11545   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator~( DisplayPlaneAlphaFlagBitsKHR bits )
11546     VULKAN_HPP_NOEXCEPT
11547   {
11548     return ~( DisplayPlaneAlphaFlagsKHR( bits ) );
11549   }
11550 
to_string(DisplayPlaneAlphaFlagsKHR value)11551   VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagsKHR value )
11552   {
11553     if ( !value )
11554       return "{}";
11555 
11556     std::string result;
11557     if ( value & DisplayPlaneAlphaFlagBitsKHR::eOpaque )
11558       result += "Opaque | ";
11559     if ( value & DisplayPlaneAlphaFlagBitsKHR::eGlobal )
11560       result += "Global | ";
11561     if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixel )
11562       result += "PerPixel | ";
11563     if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied )
11564       result += "PerPixelPremultiplied | ";
11565     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11566   }
11567 
11568   using DisplaySurfaceCreateFlagsKHR = Flags<DisplaySurfaceCreateFlagBitsKHR>;
11569 
to_string(DisplaySurfaceCreateFlagsKHR)11570   VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagsKHR )
11571   {
11572     return "{}";
11573   }
11574 
11575   using SurfaceTransformFlagsKHR = Flags<SurfaceTransformFlagBitsKHR>;
11576 
11577   template <>
11578   struct FlagTraits<SurfaceTransformFlagBitsKHR>
11579   {
11580     enum : VkFlags
11581     {
11582       allFlags = VkFlags( SurfaceTransformFlagBitsKHR::eIdentity ) | VkFlags( SurfaceTransformFlagBitsKHR::eRotate90 ) |
11583                  VkFlags( SurfaceTransformFlagBitsKHR::eRotate180 ) |
11584                  VkFlags( SurfaceTransformFlagBitsKHR::eRotate270 ) |
11585                  VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirror ) |
11586                  VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 ) |
11587                  VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 ) |
11588                  VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 ) |
11589                  VkFlags( SurfaceTransformFlagBitsKHR::eInherit )
11590     };
11591   };
11592 
11593   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR
operator |(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)11594                                          operator|( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11595   {
11596     return SurfaceTransformFlagsKHR( bit0 ) | bit1;
11597   }
11598 
11599   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR
operator &(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)11600                                          operator&(SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
11601   {
11602     return SurfaceTransformFlagsKHR( bit0 ) & bit1;
11603   }
11604 
11605   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR
operator ^(SurfaceTransformFlagBitsKHR bit0,SurfaceTransformFlagBitsKHR bit1)11606                                          operator^( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11607   {
11608     return SurfaceTransformFlagsKHR( bit0 ) ^ bit1;
11609   }
11610 
operator ~(SurfaceTransformFlagBitsKHR bits)11611   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator~( SurfaceTransformFlagBitsKHR bits )
11612     VULKAN_HPP_NOEXCEPT
11613   {
11614     return ~( SurfaceTransformFlagsKHR( bits ) );
11615   }
11616 
to_string(SurfaceTransformFlagsKHR value)11617   VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagsKHR value )
11618   {
11619     if ( !value )
11620       return "{}";
11621 
11622     std::string result;
11623     if ( value & SurfaceTransformFlagBitsKHR::eIdentity )
11624       result += "Identity | ";
11625     if ( value & SurfaceTransformFlagBitsKHR::eRotate90 )
11626       result += "Rotate90 | ";
11627     if ( value & SurfaceTransformFlagBitsKHR::eRotate180 )
11628       result += "Rotate180 | ";
11629     if ( value & SurfaceTransformFlagBitsKHR::eRotate270 )
11630       result += "Rotate270 | ";
11631     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirror )
11632       result += "HorizontalMirror | ";
11633     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 )
11634       result += "HorizontalMirrorRotate90 | ";
11635     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 )
11636       result += "HorizontalMirrorRotate180 | ";
11637     if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 )
11638       result += "HorizontalMirrorRotate270 | ";
11639     if ( value & SurfaceTransformFlagBitsKHR::eInherit )
11640       result += "Inherit | ";
11641     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11642   }
11643 
11644 #if defined( VK_USE_PLATFORM_XLIB_KHR )
11645   //=== VK_KHR_xlib_surface ===
11646 
11647   using XlibSurfaceCreateFlagsKHR = Flags<XlibSurfaceCreateFlagBitsKHR>;
11648 
to_string(XlibSurfaceCreateFlagsKHR)11649   VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagsKHR )
11650   {
11651     return "{}";
11652   }
11653 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
11654 
11655 #if defined( VK_USE_PLATFORM_XCB_KHR )
11656   //=== VK_KHR_xcb_surface ===
11657 
11658   using XcbSurfaceCreateFlagsKHR = Flags<XcbSurfaceCreateFlagBitsKHR>;
11659 
to_string(XcbSurfaceCreateFlagsKHR)11660   VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagsKHR )
11661   {
11662     return "{}";
11663   }
11664 #endif /*VK_USE_PLATFORM_XCB_KHR*/
11665 
11666 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
11667   //=== VK_KHR_wayland_surface ===
11668 
11669   using WaylandSurfaceCreateFlagsKHR = Flags<WaylandSurfaceCreateFlagBitsKHR>;
11670 
to_string(WaylandSurfaceCreateFlagsKHR)11671   VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagsKHR )
11672   {
11673     return "{}";
11674   }
11675 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
11676 
11677 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
11678   //=== VK_KHR_android_surface ===
11679 
11680   using AndroidSurfaceCreateFlagsKHR = Flags<AndroidSurfaceCreateFlagBitsKHR>;
11681 
to_string(AndroidSurfaceCreateFlagsKHR)11682   VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagsKHR )
11683   {
11684     return "{}";
11685   }
11686 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
11687 
11688 #if defined( VK_USE_PLATFORM_WIN32_KHR )
11689   //=== VK_KHR_win32_surface ===
11690 
11691   using Win32SurfaceCreateFlagsKHR = Flags<Win32SurfaceCreateFlagBitsKHR>;
11692 
to_string(Win32SurfaceCreateFlagsKHR)11693   VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagsKHR )
11694   {
11695     return "{}";
11696   }
11697 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11698 
11699   //=== VK_EXT_debug_report ===
11700 
11701   using DebugReportFlagsEXT = Flags<DebugReportFlagBitsEXT>;
11702 
11703   template <>
11704   struct FlagTraits<DebugReportFlagBitsEXT>
11705   {
11706     enum : VkFlags
11707     {
11708       allFlags = VkFlags( DebugReportFlagBitsEXT::eInformation ) | VkFlags( DebugReportFlagBitsEXT::eWarning ) |
11709                  VkFlags( DebugReportFlagBitsEXT::ePerformanceWarning ) | VkFlags( DebugReportFlagBitsEXT::eError ) |
11710                  VkFlags( DebugReportFlagBitsEXT::eDebug )
11711     };
11712   };
11713 
11714   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT
operator |(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)11715                                          operator|( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
11716   {
11717     return DebugReportFlagsEXT( bit0 ) | bit1;
11718   }
11719 
operator &(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)11720   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator&(DebugReportFlagBitsEXT bit0,
11721                                                                        DebugReportFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT
11722   {
11723     return DebugReportFlagsEXT( bit0 ) & bit1;
11724   }
11725 
11726   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT
operator ^(DebugReportFlagBitsEXT bit0,DebugReportFlagBitsEXT bit1)11727                                          operator^( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
11728   {
11729     return DebugReportFlagsEXT( bit0 ) ^ bit1;
11730   }
11731 
operator ~(DebugReportFlagBitsEXT bits)11732   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator~( DebugReportFlagBitsEXT bits )
11733     VULKAN_HPP_NOEXCEPT
11734   {
11735     return ~( DebugReportFlagsEXT( bits ) );
11736   }
11737 
to_string(DebugReportFlagsEXT value)11738   VULKAN_HPP_INLINE std::string to_string( DebugReportFlagsEXT value )
11739   {
11740     if ( !value )
11741       return "{}";
11742 
11743     std::string result;
11744     if ( value & DebugReportFlagBitsEXT::eInformation )
11745       result += "Information | ";
11746     if ( value & DebugReportFlagBitsEXT::eWarning )
11747       result += "Warning | ";
11748     if ( value & DebugReportFlagBitsEXT::ePerformanceWarning )
11749       result += "PerformanceWarning | ";
11750     if ( value & DebugReportFlagBitsEXT::eError )
11751       result += "Error | ";
11752     if ( value & DebugReportFlagBitsEXT::eDebug )
11753       result += "Debug | ";
11754     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11755   }
11756 
11757 #if defined( VK_ENABLE_BETA_EXTENSIONS )
11758   //=== VK_KHR_video_queue ===
11759 
11760   using VideoCodecOperationFlagsKHR = Flags<VideoCodecOperationFlagBitsKHR>;
11761 
11762   template <>
11763   struct FlagTraits<VideoCodecOperationFlagBitsKHR>
11764   {
11765     enum : VkFlags
11766     {
11767       allFlags = VkFlags( VideoCodecOperationFlagBitsKHR::eInvalid )
11768 #  if defined( VK_ENABLE_BETA_EXTENSIONS )
11769                  | VkFlags( VideoCodecOperationFlagBitsKHR::eEncodeH264EXT ) |
11770                  VkFlags( VideoCodecOperationFlagBitsKHR::eDecodeH264EXT ) |
11771                  VkFlags( VideoCodecOperationFlagBitsKHR::eDecodeH265EXT )
11772 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
11773     };
11774   };
11775 
11776   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodecOperationFlagsKHR
operator |(VideoCodecOperationFlagBitsKHR bit0,VideoCodecOperationFlagBitsKHR bit1)11777                                          operator|( VideoCodecOperationFlagBitsKHR bit0, VideoCodecOperationFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11778   {
11779     return VideoCodecOperationFlagsKHR( bit0 ) | bit1;
11780   }
11781 
11782   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodecOperationFlagsKHR
operator &(VideoCodecOperationFlagBitsKHR bit0,VideoCodecOperationFlagBitsKHR bit1)11783                                          operator&(VideoCodecOperationFlagBitsKHR bit0, VideoCodecOperationFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
11784   {
11785     return VideoCodecOperationFlagsKHR( bit0 ) & bit1;
11786   }
11787 
11788   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodecOperationFlagsKHR
operator ^(VideoCodecOperationFlagBitsKHR bit0,VideoCodecOperationFlagBitsKHR bit1)11789                                          operator^( VideoCodecOperationFlagBitsKHR bit0, VideoCodecOperationFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11790   {
11791     return VideoCodecOperationFlagsKHR( bit0 ) ^ bit1;
11792   }
11793 
operator ~(VideoCodecOperationFlagBitsKHR bits)11794   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodecOperationFlagsKHR operator~( VideoCodecOperationFlagBitsKHR bits )
11795     VULKAN_HPP_NOEXCEPT
11796   {
11797     return ~( VideoCodecOperationFlagsKHR( bits ) );
11798   }
11799 
to_string(VideoCodecOperationFlagsKHR value)11800   VULKAN_HPP_INLINE std::string to_string( VideoCodecOperationFlagsKHR value )
11801   {
11802     if ( !value )
11803       return "{}";
11804 
11805     std::string result;
11806 #  if defined( VK_ENABLE_BETA_EXTENSIONS )
11807     if ( value & VideoCodecOperationFlagBitsKHR::eEncodeH264EXT )
11808       result += "EncodeH264EXT | ";
11809     if ( value & VideoCodecOperationFlagBitsKHR::eDecodeH264EXT )
11810       result += "DecodeH264EXT | ";
11811     if ( value & VideoCodecOperationFlagBitsKHR::eDecodeH265EXT )
11812       result += "DecodeH265EXT | ";
11813 #  endif /*VK_ENABLE_BETA_EXTENSIONS*/
11814     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11815   }
11816 
11817   using VideoChromaSubsamplingFlagsKHR = Flags<VideoChromaSubsamplingFlagBitsKHR>;
11818 
11819   template <>
11820   struct FlagTraits<VideoChromaSubsamplingFlagBitsKHR>
11821   {
11822     enum : VkFlags
11823     {
11824       allFlags = VkFlags( VideoChromaSubsamplingFlagBitsKHR::eInvalid ) |
11825                  VkFlags( VideoChromaSubsamplingFlagBitsKHR::eMonochrome ) |
11826                  VkFlags( VideoChromaSubsamplingFlagBitsKHR::e420 ) |
11827                  VkFlags( VideoChromaSubsamplingFlagBitsKHR::e422 ) | VkFlags( VideoChromaSubsamplingFlagBitsKHR::e444 )
11828     };
11829   };
11830 
11831   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoChromaSubsamplingFlagsKHR
operator |(VideoChromaSubsamplingFlagBitsKHR bit0,VideoChromaSubsamplingFlagBitsKHR bit1)11832                                          operator|( VideoChromaSubsamplingFlagBitsKHR bit0, VideoChromaSubsamplingFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11833   {
11834     return VideoChromaSubsamplingFlagsKHR( bit0 ) | bit1;
11835   }
11836 
11837   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoChromaSubsamplingFlagsKHR
operator &(VideoChromaSubsamplingFlagBitsKHR bit0,VideoChromaSubsamplingFlagBitsKHR bit1)11838                                          operator&(VideoChromaSubsamplingFlagBitsKHR bit0, VideoChromaSubsamplingFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
11839   {
11840     return VideoChromaSubsamplingFlagsKHR( bit0 ) & bit1;
11841   }
11842 
11843   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoChromaSubsamplingFlagsKHR
operator ^(VideoChromaSubsamplingFlagBitsKHR bit0,VideoChromaSubsamplingFlagBitsKHR bit1)11844                                          operator^( VideoChromaSubsamplingFlagBitsKHR bit0, VideoChromaSubsamplingFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11845   {
11846     return VideoChromaSubsamplingFlagsKHR( bit0 ) ^ bit1;
11847   }
11848 
11849   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoChromaSubsamplingFlagsKHR
operator ~(VideoChromaSubsamplingFlagBitsKHR bits)11850                                          operator~( VideoChromaSubsamplingFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
11851   {
11852     return ~( VideoChromaSubsamplingFlagsKHR( bits ) );
11853   }
11854 
to_string(VideoChromaSubsamplingFlagsKHR value)11855   VULKAN_HPP_INLINE std::string to_string( VideoChromaSubsamplingFlagsKHR value )
11856   {
11857     if ( !value )
11858       return "{}";
11859 
11860     std::string result;
11861     if ( value & VideoChromaSubsamplingFlagBitsKHR::eMonochrome )
11862       result += "Monochrome | ";
11863     if ( value & VideoChromaSubsamplingFlagBitsKHR::e420 )
11864       result += "420 | ";
11865     if ( value & VideoChromaSubsamplingFlagBitsKHR::e422 )
11866       result += "422 | ";
11867     if ( value & VideoChromaSubsamplingFlagBitsKHR::e444 )
11868       result += "444 | ";
11869     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11870   }
11871 
11872   using VideoComponentBitDepthFlagsKHR = Flags<VideoComponentBitDepthFlagBitsKHR>;
11873 
11874   template <>
11875   struct FlagTraits<VideoComponentBitDepthFlagBitsKHR>
11876   {
11877     enum : VkFlags
11878     {
11879       allFlags = VkFlags( VideoComponentBitDepthFlagBitsKHR::eInvalid ) |
11880                  VkFlags( VideoComponentBitDepthFlagBitsKHR::e8 ) | VkFlags( VideoComponentBitDepthFlagBitsKHR::e10 ) |
11881                  VkFlags( VideoComponentBitDepthFlagBitsKHR::e12 )
11882     };
11883   };
11884 
11885   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoComponentBitDepthFlagsKHR
operator |(VideoComponentBitDepthFlagBitsKHR bit0,VideoComponentBitDepthFlagBitsKHR bit1)11886                                          operator|( VideoComponentBitDepthFlagBitsKHR bit0, VideoComponentBitDepthFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11887   {
11888     return VideoComponentBitDepthFlagsKHR( bit0 ) | bit1;
11889   }
11890 
11891   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoComponentBitDepthFlagsKHR
operator &(VideoComponentBitDepthFlagBitsKHR bit0,VideoComponentBitDepthFlagBitsKHR bit1)11892                                          operator&(VideoComponentBitDepthFlagBitsKHR bit0, VideoComponentBitDepthFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
11893   {
11894     return VideoComponentBitDepthFlagsKHR( bit0 ) & bit1;
11895   }
11896 
11897   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoComponentBitDepthFlagsKHR
operator ^(VideoComponentBitDepthFlagBitsKHR bit0,VideoComponentBitDepthFlagBitsKHR bit1)11898                                          operator^( VideoComponentBitDepthFlagBitsKHR bit0, VideoComponentBitDepthFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11899   {
11900     return VideoComponentBitDepthFlagsKHR( bit0 ) ^ bit1;
11901   }
11902 
11903   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoComponentBitDepthFlagsKHR
operator ~(VideoComponentBitDepthFlagBitsKHR bits)11904                                          operator~( VideoComponentBitDepthFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
11905   {
11906     return ~( VideoComponentBitDepthFlagsKHR( bits ) );
11907   }
11908 
to_string(VideoComponentBitDepthFlagsKHR value)11909   VULKAN_HPP_INLINE std::string to_string( VideoComponentBitDepthFlagsKHR value )
11910   {
11911     if ( !value )
11912       return "{}";
11913 
11914     std::string result;
11915     if ( value & VideoComponentBitDepthFlagBitsKHR::e8 )
11916       result += "8 | ";
11917     if ( value & VideoComponentBitDepthFlagBitsKHR::e10 )
11918       result += "10 | ";
11919     if ( value & VideoComponentBitDepthFlagBitsKHR::e12 )
11920       result += "12 | ";
11921     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11922   }
11923 
11924   using VideoCapabilitiesFlagsKHR = Flags<VideoCapabilitiesFlagBitsKHR>;
11925 
11926   template <>
11927   struct FlagTraits<VideoCapabilitiesFlagBitsKHR>
11928   {
11929     enum : VkFlags
11930     {
11931       allFlags = VkFlags( VideoCapabilitiesFlagBitsKHR::eProtectedContent ) |
11932                  VkFlags( VideoCapabilitiesFlagBitsKHR::eSeparateReferenceImages )
11933     };
11934   };
11935 
11936   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilitiesFlagsKHR
operator |(VideoCapabilitiesFlagBitsKHR bit0,VideoCapabilitiesFlagBitsKHR bit1)11937                                          operator|( VideoCapabilitiesFlagBitsKHR bit0, VideoCapabilitiesFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11938   {
11939     return VideoCapabilitiesFlagsKHR( bit0 ) | bit1;
11940   }
11941 
11942   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilitiesFlagsKHR
operator &(VideoCapabilitiesFlagBitsKHR bit0,VideoCapabilitiesFlagBitsKHR bit1)11943                                          operator&(VideoCapabilitiesFlagBitsKHR bit0, VideoCapabilitiesFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
11944   {
11945     return VideoCapabilitiesFlagsKHR( bit0 ) & bit1;
11946   }
11947 
11948   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilitiesFlagsKHR
operator ^(VideoCapabilitiesFlagBitsKHR bit0,VideoCapabilitiesFlagBitsKHR bit1)11949                                          operator^( VideoCapabilitiesFlagBitsKHR bit0, VideoCapabilitiesFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11950   {
11951     return VideoCapabilitiesFlagsKHR( bit0 ) ^ bit1;
11952   }
11953 
operator ~(VideoCapabilitiesFlagBitsKHR bits)11954   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilitiesFlagsKHR operator~( VideoCapabilitiesFlagBitsKHR bits )
11955     VULKAN_HPP_NOEXCEPT
11956   {
11957     return ~( VideoCapabilitiesFlagsKHR( bits ) );
11958   }
11959 
to_string(VideoCapabilitiesFlagsKHR value)11960   VULKAN_HPP_INLINE std::string to_string( VideoCapabilitiesFlagsKHR value )
11961   {
11962     if ( !value )
11963       return "{}";
11964 
11965     std::string result;
11966     if ( value & VideoCapabilitiesFlagBitsKHR::eProtectedContent )
11967       result += "ProtectedContent | ";
11968     if ( value & VideoCapabilitiesFlagBitsKHR::eSeparateReferenceImages )
11969       result += "SeparateReferenceImages | ";
11970     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
11971   }
11972 
11973   using VideoSessionCreateFlagsKHR = Flags<VideoSessionCreateFlagBitsKHR>;
11974 
11975   template <>
11976   struct FlagTraits<VideoSessionCreateFlagBitsKHR>
11977   {
11978     enum : VkFlags
11979     {
11980       allFlags =
11981         VkFlags( VideoSessionCreateFlagBitsKHR::eDefault ) | VkFlags( VideoSessionCreateFlagBitsKHR::eProtectedContent )
11982     };
11983   };
11984 
11985   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoSessionCreateFlagsKHR
operator |(VideoSessionCreateFlagBitsKHR bit0,VideoSessionCreateFlagBitsKHR bit1)11986                                          operator|( VideoSessionCreateFlagBitsKHR bit0, VideoSessionCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11987   {
11988     return VideoSessionCreateFlagsKHR( bit0 ) | bit1;
11989   }
11990 
11991   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoSessionCreateFlagsKHR
operator &(VideoSessionCreateFlagBitsKHR bit0,VideoSessionCreateFlagBitsKHR bit1)11992                                          operator&(VideoSessionCreateFlagBitsKHR bit0, VideoSessionCreateFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
11993   {
11994     return VideoSessionCreateFlagsKHR( bit0 ) & bit1;
11995   }
11996 
11997   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoSessionCreateFlagsKHR
operator ^(VideoSessionCreateFlagBitsKHR bit0,VideoSessionCreateFlagBitsKHR bit1)11998                                          operator^( VideoSessionCreateFlagBitsKHR bit0, VideoSessionCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
11999   {
12000     return VideoSessionCreateFlagsKHR( bit0 ) ^ bit1;
12001   }
12002 
operator ~(VideoSessionCreateFlagBitsKHR bits)12003   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoSessionCreateFlagsKHR operator~( VideoSessionCreateFlagBitsKHR bits )
12004     VULKAN_HPP_NOEXCEPT
12005   {
12006     return ~( VideoSessionCreateFlagsKHR( bits ) );
12007   }
12008 
to_string(VideoSessionCreateFlagsKHR value)12009   VULKAN_HPP_INLINE std::string to_string( VideoSessionCreateFlagsKHR value )
12010   {
12011     if ( !value )
12012       return "{}";
12013 
12014     std::string result;
12015     if ( value & VideoSessionCreateFlagBitsKHR::eProtectedContent )
12016       result += "ProtectedContent | ";
12017     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12018   }
12019 
12020   using VideoBeginCodingFlagsKHR = Flags<VideoBeginCodingFlagBitsKHR>;
12021 
to_string(VideoBeginCodingFlagsKHR)12022   VULKAN_HPP_INLINE std::string to_string( VideoBeginCodingFlagsKHR )
12023   {
12024     return "{}";
12025   }
12026 
12027   using VideoEndCodingFlagsKHR = Flags<VideoEndCodingFlagBitsKHR>;
12028 
to_string(VideoEndCodingFlagsKHR)12029   VULKAN_HPP_INLINE std::string to_string( VideoEndCodingFlagsKHR )
12030   {
12031     return "{}";
12032   }
12033 
12034   using VideoCodingControlFlagsKHR = Flags<VideoCodingControlFlagBitsKHR>;
12035 
12036   template <>
12037   struct FlagTraits<VideoCodingControlFlagBitsKHR>
12038   {
12039     enum : VkFlags
12040     {
12041       allFlags = VkFlags( VideoCodingControlFlagBitsKHR::eDefault ) | VkFlags( VideoCodingControlFlagBitsKHR::eReset )
12042     };
12043   };
12044 
12045   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingControlFlagsKHR
operator |(VideoCodingControlFlagBitsKHR bit0,VideoCodingControlFlagBitsKHR bit1)12046                                          operator|( VideoCodingControlFlagBitsKHR bit0, VideoCodingControlFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12047   {
12048     return VideoCodingControlFlagsKHR( bit0 ) | bit1;
12049   }
12050 
12051   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingControlFlagsKHR
operator &(VideoCodingControlFlagBitsKHR bit0,VideoCodingControlFlagBitsKHR bit1)12052                                          operator&(VideoCodingControlFlagBitsKHR bit0, VideoCodingControlFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
12053   {
12054     return VideoCodingControlFlagsKHR( bit0 ) & bit1;
12055   }
12056 
12057   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingControlFlagsKHR
operator ^(VideoCodingControlFlagBitsKHR bit0,VideoCodingControlFlagBitsKHR bit1)12058                                          operator^( VideoCodingControlFlagBitsKHR bit0, VideoCodingControlFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12059   {
12060     return VideoCodingControlFlagsKHR( bit0 ) ^ bit1;
12061   }
12062 
operator ~(VideoCodingControlFlagBitsKHR bits)12063   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingControlFlagsKHR operator~( VideoCodingControlFlagBitsKHR bits )
12064     VULKAN_HPP_NOEXCEPT
12065   {
12066     return ~( VideoCodingControlFlagsKHR( bits ) );
12067   }
12068 
to_string(VideoCodingControlFlagsKHR value)12069   VULKAN_HPP_INLINE std::string to_string( VideoCodingControlFlagsKHR value )
12070   {
12071     if ( !value )
12072       return "{}";
12073 
12074     std::string result;
12075     if ( value & VideoCodingControlFlagBitsKHR::eReset )
12076       result += "Reset | ";
12077     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12078   }
12079 
12080   using VideoCodingQualityPresetFlagsKHR = Flags<VideoCodingQualityPresetFlagBitsKHR>;
12081 
12082   template <>
12083   struct FlagTraits<VideoCodingQualityPresetFlagBitsKHR>
12084   {
12085     enum : VkFlags
12086     {
12087       allFlags = VkFlags( VideoCodingQualityPresetFlagBitsKHR::eDefault ) |
12088                  VkFlags( VideoCodingQualityPresetFlagBitsKHR::eNormal ) |
12089                  VkFlags( VideoCodingQualityPresetFlagBitsKHR::ePower ) |
12090                  VkFlags( VideoCodingQualityPresetFlagBitsKHR::eQuality )
12091     };
12092   };
12093 
12094   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingQualityPresetFlagsKHR
operator |(VideoCodingQualityPresetFlagBitsKHR bit0,VideoCodingQualityPresetFlagBitsKHR bit1)12095                                          operator|( VideoCodingQualityPresetFlagBitsKHR bit0, VideoCodingQualityPresetFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12096   {
12097     return VideoCodingQualityPresetFlagsKHR( bit0 ) | bit1;
12098   }
12099 
12100   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingQualityPresetFlagsKHR
operator &(VideoCodingQualityPresetFlagBitsKHR bit0,VideoCodingQualityPresetFlagBitsKHR bit1)12101                                          operator&(VideoCodingQualityPresetFlagBitsKHR bit0, VideoCodingQualityPresetFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
12102   {
12103     return VideoCodingQualityPresetFlagsKHR( bit0 ) & bit1;
12104   }
12105 
12106   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingQualityPresetFlagsKHR
operator ^(VideoCodingQualityPresetFlagBitsKHR bit0,VideoCodingQualityPresetFlagBitsKHR bit1)12107                                          operator^( VideoCodingQualityPresetFlagBitsKHR bit0, VideoCodingQualityPresetFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12108   {
12109     return VideoCodingQualityPresetFlagsKHR( bit0 ) ^ bit1;
12110   }
12111 
12112   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingQualityPresetFlagsKHR
operator ~(VideoCodingQualityPresetFlagBitsKHR bits)12113                                          operator~( VideoCodingQualityPresetFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
12114   {
12115     return ~( VideoCodingQualityPresetFlagsKHR( bits ) );
12116   }
12117 
to_string(VideoCodingQualityPresetFlagsKHR value)12118   VULKAN_HPP_INLINE std::string to_string( VideoCodingQualityPresetFlagsKHR value )
12119   {
12120     if ( !value )
12121       return "{}";
12122 
12123     std::string result;
12124     if ( value & VideoCodingQualityPresetFlagBitsKHR::eNormal )
12125       result += "Normal | ";
12126     if ( value & VideoCodingQualityPresetFlagBitsKHR::ePower )
12127       result += "Power | ";
12128     if ( value & VideoCodingQualityPresetFlagBitsKHR::eQuality )
12129       result += "Quality | ";
12130     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12131   }
12132 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
12133 
12134 #if defined( VK_ENABLE_BETA_EXTENSIONS )
12135   //=== VK_KHR_video_decode_queue ===
12136 
12137   using VideoDecodeFlagsKHR = Flags<VideoDecodeFlagBitsKHR>;
12138 
12139   template <>
12140   struct FlagTraits<VideoDecodeFlagBitsKHR>
12141   {
12142     enum : VkFlags
12143     {
12144       allFlags = VkFlags( VideoDecodeFlagBitsKHR::eDefault ) | VkFlags( VideoDecodeFlagBitsKHR::eReserved0 )
12145     };
12146   };
12147 
12148   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeFlagsKHR
operator |(VideoDecodeFlagBitsKHR bit0,VideoDecodeFlagBitsKHR bit1)12149                                          operator|( VideoDecodeFlagBitsKHR bit0, VideoDecodeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12150   {
12151     return VideoDecodeFlagsKHR( bit0 ) | bit1;
12152   }
12153 
operator &(VideoDecodeFlagBitsKHR bit0,VideoDecodeFlagBitsKHR bit1)12154   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeFlagsKHR operator&(VideoDecodeFlagBitsKHR bit0,
12155                                                                        VideoDecodeFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
12156   {
12157     return VideoDecodeFlagsKHR( bit0 ) & bit1;
12158   }
12159 
12160   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeFlagsKHR
operator ^(VideoDecodeFlagBitsKHR bit0,VideoDecodeFlagBitsKHR bit1)12161                                          operator^( VideoDecodeFlagBitsKHR bit0, VideoDecodeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12162   {
12163     return VideoDecodeFlagsKHR( bit0 ) ^ bit1;
12164   }
12165 
operator ~(VideoDecodeFlagBitsKHR bits)12166   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeFlagsKHR operator~( VideoDecodeFlagBitsKHR bits )
12167     VULKAN_HPP_NOEXCEPT
12168   {
12169     return ~( VideoDecodeFlagsKHR( bits ) );
12170   }
12171 
to_string(VideoDecodeFlagsKHR value)12172   VULKAN_HPP_INLINE std::string to_string( VideoDecodeFlagsKHR value )
12173   {
12174     if ( !value )
12175       return "{}";
12176 
12177     std::string result;
12178     if ( value & VideoDecodeFlagBitsKHR::eReserved0 )
12179       result += "Reserved0 | ";
12180     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12181   }
12182 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
12183 
12184   //=== VK_EXT_transform_feedback ===
12185 
12186   using PipelineRasterizationStateStreamCreateFlagsEXT = Flags<PipelineRasterizationStateStreamCreateFlagBitsEXT>;
12187 
to_string(PipelineRasterizationStateStreamCreateFlagsEXT)12188   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagsEXT )
12189   {
12190     return "{}";
12191   }
12192 
12193 #if defined( VK_ENABLE_BETA_EXTENSIONS )
12194   //=== VK_EXT_video_encode_h264 ===
12195 
12196   using VideoEncodeH264CapabilitiesFlagsEXT = Flags<VideoEncodeH264CapabilitiesFlagBitsEXT>;
12197 
12198   template <>
12199   struct FlagTraits<VideoEncodeH264CapabilitiesFlagBitsEXT>
12200   {
12201     enum : VkFlags
12202     {
12203       allFlags =
12204         VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityCabac ) |
12205         VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityCavlc ) |
12206         VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityWeightedBiPredImplicit ) |
12207         VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityTransform8X8 ) |
12208         VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityChromaQpOffset ) |
12209         VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilitySecondChromaQpOffset ) |
12210         VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterDisabled ) |
12211         VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterEnabled ) |
12212         VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterPartial ) |
12213         VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityMultipleSlicePerFrame ) |
12214         VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityEvenlyDistributedSliceSize )
12215     };
12216   };
12217 
operator |(VideoEncodeH264CapabilitiesFlagBitsEXT bit0,VideoEncodeH264CapabilitiesFlagBitsEXT bit1)12218   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilitiesFlagsEXT operator|(
12219     VideoEncodeH264CapabilitiesFlagBitsEXT bit0, VideoEncodeH264CapabilitiesFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12220   {
12221     return VideoEncodeH264CapabilitiesFlagsEXT( bit0 ) | bit1;
12222   }
12223 
operator &(VideoEncodeH264CapabilitiesFlagBitsEXT bit0,VideoEncodeH264CapabilitiesFlagBitsEXT bit1)12224   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilitiesFlagsEXT operator&(
12225     VideoEncodeH264CapabilitiesFlagBitsEXT bit0, VideoEncodeH264CapabilitiesFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT
12226   {
12227     return VideoEncodeH264CapabilitiesFlagsEXT( bit0 ) & bit1;
12228   }
12229 
operator ^(VideoEncodeH264CapabilitiesFlagBitsEXT bit0,VideoEncodeH264CapabilitiesFlagBitsEXT bit1)12230   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilitiesFlagsEXT operator^(
12231     VideoEncodeH264CapabilitiesFlagBitsEXT bit0, VideoEncodeH264CapabilitiesFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12232   {
12233     return VideoEncodeH264CapabilitiesFlagsEXT( bit0 ) ^ bit1;
12234   }
12235 
12236   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilitiesFlagsEXT
operator ~(VideoEncodeH264CapabilitiesFlagBitsEXT bits)12237                                          operator~( VideoEncodeH264CapabilitiesFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12238   {
12239     return ~( VideoEncodeH264CapabilitiesFlagsEXT( bits ) );
12240   }
12241 
to_string(VideoEncodeH264CapabilitiesFlagsEXT value)12242   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CapabilitiesFlagsEXT value )
12243   {
12244     if ( !value )
12245       return "{}";
12246 
12247     std::string result;
12248     if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityCabac )
12249       result += "VkVideoEncodeH264CapabilityCabac | ";
12250     if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityCavlc )
12251       result += "VkVideoEncodeH264CapabilityCavlc | ";
12252     if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityWeightedBiPredImplicit )
12253       result += "VkVideoEncodeH264CapabilityWeightedBiPredImplicit | ";
12254     if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityTransform8X8 )
12255       result += "VkVideoEncodeH264CapabilityTransform8X8 | ";
12256     if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityChromaQpOffset )
12257       result += "VkVideoEncodeH264CapabilityChromaQpOffset | ";
12258     if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilitySecondChromaQpOffset )
12259       result += "VkVideoEncodeH264CapabilitySecondChromaQpOffset | ";
12260     if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterDisabled )
12261       result += "VkVideoEncodeH264CapabilityDeblockingFilterDisabled | ";
12262     if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterEnabled )
12263       result += "VkVideoEncodeH264CapabilityDeblockingFilterEnabled | ";
12264     if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterPartial )
12265       result += "VkVideoEncodeH264CapabilityDeblockingFilterPartial | ";
12266     if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityMultipleSlicePerFrame )
12267       result += "VkVideoEncodeH264CapabilityMultipleSlicePerFrame | ";
12268     if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityEvenlyDistributedSliceSize )
12269       result += "VkVideoEncodeH264CapabilityEvenlyDistributedSliceSize | ";
12270     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12271   }
12272 
12273   using VideoEncodeH264InputModeFlagsEXT = Flags<VideoEncodeH264InputModeFlagBitsEXT>;
12274 
12275   template <>
12276   struct FlagTraits<VideoEncodeH264InputModeFlagBitsEXT>
12277   {
12278     enum : VkFlags
12279     {
12280       allFlags = VkFlags( VideoEncodeH264InputModeFlagBitsEXT::eFrame ) |
12281                  VkFlags( VideoEncodeH264InputModeFlagBitsEXT::eSlice ) |
12282                  VkFlags( VideoEncodeH264InputModeFlagBitsEXT::eNonVcl )
12283     };
12284   };
12285 
12286   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264InputModeFlagsEXT
operator |(VideoEncodeH264InputModeFlagBitsEXT bit0,VideoEncodeH264InputModeFlagBitsEXT bit1)12287                                          operator|( VideoEncodeH264InputModeFlagBitsEXT bit0, VideoEncodeH264InputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12288   {
12289     return VideoEncodeH264InputModeFlagsEXT( bit0 ) | bit1;
12290   }
12291 
12292   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264InputModeFlagsEXT
operator &(VideoEncodeH264InputModeFlagBitsEXT bit0,VideoEncodeH264InputModeFlagBitsEXT bit1)12293                                          operator&(VideoEncodeH264InputModeFlagBitsEXT bit0, VideoEncodeH264InputModeFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT
12294   {
12295     return VideoEncodeH264InputModeFlagsEXT( bit0 ) & bit1;
12296   }
12297 
12298   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264InputModeFlagsEXT
operator ^(VideoEncodeH264InputModeFlagBitsEXT bit0,VideoEncodeH264InputModeFlagBitsEXT bit1)12299                                          operator^( VideoEncodeH264InputModeFlagBitsEXT bit0, VideoEncodeH264InputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12300   {
12301     return VideoEncodeH264InputModeFlagsEXT( bit0 ) ^ bit1;
12302   }
12303 
12304   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264InputModeFlagsEXT
operator ~(VideoEncodeH264InputModeFlagBitsEXT bits)12305                                          operator~( VideoEncodeH264InputModeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12306   {
12307     return ~( VideoEncodeH264InputModeFlagsEXT( bits ) );
12308   }
12309 
to_string(VideoEncodeH264InputModeFlagsEXT value)12310   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264InputModeFlagsEXT value )
12311   {
12312     if ( !value )
12313       return "{}";
12314 
12315     std::string result;
12316     if ( value & VideoEncodeH264InputModeFlagBitsEXT::eFrame )
12317       result += "Frame | ";
12318     if ( value & VideoEncodeH264InputModeFlagBitsEXT::eSlice )
12319       result += "Slice | ";
12320     if ( value & VideoEncodeH264InputModeFlagBitsEXT::eNonVcl )
12321       result += "NonVcl | ";
12322     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12323   }
12324 
12325   using VideoEncodeH264OutputModeFlagsEXT = Flags<VideoEncodeH264OutputModeFlagBitsEXT>;
12326 
12327   template <>
12328   struct FlagTraits<VideoEncodeH264OutputModeFlagBitsEXT>
12329   {
12330     enum : VkFlags
12331     {
12332       allFlags = VkFlags( VideoEncodeH264OutputModeFlagBitsEXT::eFrame ) |
12333                  VkFlags( VideoEncodeH264OutputModeFlagBitsEXT::eSlice ) |
12334                  VkFlags( VideoEncodeH264OutputModeFlagBitsEXT::eNonVcl )
12335     };
12336   };
12337 
operator |(VideoEncodeH264OutputModeFlagBitsEXT bit0,VideoEncodeH264OutputModeFlagBitsEXT bit1)12338   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264OutputModeFlagsEXT operator|(
12339     VideoEncodeH264OutputModeFlagBitsEXT bit0, VideoEncodeH264OutputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12340   {
12341     return VideoEncodeH264OutputModeFlagsEXT( bit0 ) | bit1;
12342   }
12343 
12344   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264OutputModeFlagsEXT
operator &(VideoEncodeH264OutputModeFlagBitsEXT bit0,VideoEncodeH264OutputModeFlagBitsEXT bit1)12345                                          operator&(VideoEncodeH264OutputModeFlagBitsEXT bit0, VideoEncodeH264OutputModeFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT
12346   {
12347     return VideoEncodeH264OutputModeFlagsEXT( bit0 ) & bit1;
12348   }
12349 
operator ^(VideoEncodeH264OutputModeFlagBitsEXT bit0,VideoEncodeH264OutputModeFlagBitsEXT bit1)12350   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264OutputModeFlagsEXT operator^(
12351     VideoEncodeH264OutputModeFlagBitsEXT bit0, VideoEncodeH264OutputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12352   {
12353     return VideoEncodeH264OutputModeFlagsEXT( bit0 ) ^ bit1;
12354   }
12355 
12356   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264OutputModeFlagsEXT
operator ~(VideoEncodeH264OutputModeFlagBitsEXT bits)12357                                          operator~( VideoEncodeH264OutputModeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12358   {
12359     return ~( VideoEncodeH264OutputModeFlagsEXT( bits ) );
12360   }
12361 
to_string(VideoEncodeH264OutputModeFlagsEXT value)12362   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264OutputModeFlagsEXT value )
12363   {
12364     if ( !value )
12365       return "{}";
12366 
12367     std::string result;
12368     if ( value & VideoEncodeH264OutputModeFlagBitsEXT::eFrame )
12369       result += "Frame | ";
12370     if ( value & VideoEncodeH264OutputModeFlagBitsEXT::eSlice )
12371       result += "Slice | ";
12372     if ( value & VideoEncodeH264OutputModeFlagBitsEXT::eNonVcl )
12373       result += "NonVcl | ";
12374     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12375   }
12376 
12377   using VideoEncodeH264CreateFlagsEXT = Flags<VideoEncodeH264CreateFlagBitsEXT>;
12378 
12379   template <>
12380   struct FlagTraits<VideoEncodeH264CreateFlagBitsEXT>
12381   {
12382     enum : VkFlags
12383     {
12384       allFlags =
12385         VkFlags( VideoEncodeH264CreateFlagBitsEXT::eDefault ) | VkFlags( VideoEncodeH264CreateFlagBitsEXT::eReserved0 )
12386     };
12387   };
12388 
12389   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CreateFlagsEXT
operator |(VideoEncodeH264CreateFlagBitsEXT bit0,VideoEncodeH264CreateFlagBitsEXT bit1)12390                                          operator|( VideoEncodeH264CreateFlagBitsEXT bit0, VideoEncodeH264CreateFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12391   {
12392     return VideoEncodeH264CreateFlagsEXT( bit0 ) | bit1;
12393   }
12394 
12395   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CreateFlagsEXT
operator &(VideoEncodeH264CreateFlagBitsEXT bit0,VideoEncodeH264CreateFlagBitsEXT bit1)12396                                          operator&(VideoEncodeH264CreateFlagBitsEXT bit0, VideoEncodeH264CreateFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT
12397   {
12398     return VideoEncodeH264CreateFlagsEXT( bit0 ) & bit1;
12399   }
12400 
12401   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CreateFlagsEXT
operator ^(VideoEncodeH264CreateFlagBitsEXT bit0,VideoEncodeH264CreateFlagBitsEXT bit1)12402                                          operator^( VideoEncodeH264CreateFlagBitsEXT bit0, VideoEncodeH264CreateFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12403   {
12404     return VideoEncodeH264CreateFlagsEXT( bit0 ) ^ bit1;
12405   }
12406 
12407   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CreateFlagsEXT
operator ~(VideoEncodeH264CreateFlagBitsEXT bits)12408                                          operator~( VideoEncodeH264CreateFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12409   {
12410     return ~( VideoEncodeH264CreateFlagsEXT( bits ) );
12411   }
12412 
to_string(VideoEncodeH264CreateFlagsEXT value)12413   VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CreateFlagsEXT value )
12414   {
12415     if ( !value )
12416       return "{}";
12417 
12418     std::string result;
12419     if ( value & VideoEncodeH264CreateFlagBitsEXT::eReserved0 )
12420       result += "Reserved0 | ";
12421     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12422   }
12423 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
12424 
12425 #if defined( VK_ENABLE_BETA_EXTENSIONS )
12426   //=== VK_EXT_video_decode_h264 ===
12427 
12428   using VideoDecodeH264FieldLayoutFlagsEXT = Flags<VideoDecodeH264FieldLayoutFlagBitsEXT>;
12429 
12430   template <>
12431   struct FlagTraits<VideoDecodeH264FieldLayoutFlagBitsEXT>
12432   {
12433     enum : VkFlags
12434     {
12435       allFlags = VkFlags( VideoDecodeH264FieldLayoutFlagBitsEXT::eVkVideoDecodeH264ProgressivePicturesOnly ) |
12436                  VkFlags( VideoDecodeH264FieldLayoutFlagBitsEXT::eLineInterlacedPlane ) |
12437                  VkFlags( VideoDecodeH264FieldLayoutFlagBitsEXT::eSeparateInterlacedPlane )
12438     };
12439   };
12440 
operator |(VideoDecodeH264FieldLayoutFlagBitsEXT bit0,VideoDecodeH264FieldLayoutFlagBitsEXT bit1)12441   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264FieldLayoutFlagsEXT operator|(
12442     VideoDecodeH264FieldLayoutFlagBitsEXT bit0, VideoDecodeH264FieldLayoutFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12443   {
12444     return VideoDecodeH264FieldLayoutFlagsEXT( bit0 ) | bit1;
12445   }
12446 
12447   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264FieldLayoutFlagsEXT
operator &(VideoDecodeH264FieldLayoutFlagBitsEXT bit0,VideoDecodeH264FieldLayoutFlagBitsEXT bit1)12448                                          operator&(VideoDecodeH264FieldLayoutFlagBitsEXT bit0, VideoDecodeH264FieldLayoutFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT
12449   {
12450     return VideoDecodeH264FieldLayoutFlagsEXT( bit0 ) & bit1;
12451   }
12452 
operator ^(VideoDecodeH264FieldLayoutFlagBitsEXT bit0,VideoDecodeH264FieldLayoutFlagBitsEXT bit1)12453   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264FieldLayoutFlagsEXT operator^(
12454     VideoDecodeH264FieldLayoutFlagBitsEXT bit0, VideoDecodeH264FieldLayoutFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12455   {
12456     return VideoDecodeH264FieldLayoutFlagsEXT( bit0 ) ^ bit1;
12457   }
12458 
12459   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264FieldLayoutFlagsEXT
operator ~(VideoDecodeH264FieldLayoutFlagBitsEXT bits)12460                                          operator~( VideoDecodeH264FieldLayoutFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12461   {
12462     return ~( VideoDecodeH264FieldLayoutFlagsEXT( bits ) );
12463   }
12464 
to_string(VideoDecodeH264FieldLayoutFlagsEXT value)12465   VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264FieldLayoutFlagsEXT value )
12466   {
12467     if ( !value )
12468       return "{}";
12469 
12470     std::string result;
12471     if ( value & VideoDecodeH264FieldLayoutFlagBitsEXT::eLineInterlacedPlane )
12472       result += "LineInterlacedPlane | ";
12473     if ( value & VideoDecodeH264FieldLayoutFlagBitsEXT::eSeparateInterlacedPlane )
12474       result += "SeparateInterlacedPlane | ";
12475     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12476   }
12477 
12478   using VideoDecodeH264CreateFlagsEXT = Flags<VideoDecodeH264CreateFlagBitsEXT>;
12479 
to_string(VideoDecodeH264CreateFlagsEXT)12480   VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264CreateFlagsEXT )
12481   {
12482     return "{}";
12483   }
12484 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
12485 
12486 #if defined( VK_USE_PLATFORM_GGP )
12487   //=== VK_GGP_stream_descriptor_surface ===
12488 
12489   using StreamDescriptorSurfaceCreateFlagsGGP = Flags<StreamDescriptorSurfaceCreateFlagBitsGGP>;
12490 
to_string(StreamDescriptorSurfaceCreateFlagsGGP)12491   VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagsGGP )
12492   {
12493     return "{}";
12494   }
12495 #endif /*VK_USE_PLATFORM_GGP*/
12496 
12497   //=== VK_NV_external_memory_capabilities ===
12498 
12499   using ExternalMemoryHandleTypeFlagsNV = Flags<ExternalMemoryHandleTypeFlagBitsNV>;
12500 
12501   template <>
12502   struct FlagTraits<ExternalMemoryHandleTypeFlagBitsNV>
12503   {
12504     enum : VkFlags
12505     {
12506       allFlags = VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 ) |
12507                  VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt ) |
12508                  VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image ) |
12509                  VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt )
12510     };
12511   };
12512 
12513   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV
operator |(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)12514                                          operator|( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
12515   {
12516     return ExternalMemoryHandleTypeFlagsNV( bit0 ) | bit1;
12517   }
12518 
12519   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV
operator &(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)12520                                          operator&(ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1)VULKAN_HPP_NOEXCEPT
12521   {
12522     return ExternalMemoryHandleTypeFlagsNV( bit0 ) & bit1;
12523   }
12524 
12525   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV
operator ^(ExternalMemoryHandleTypeFlagBitsNV bit0,ExternalMemoryHandleTypeFlagBitsNV bit1)12526                                          operator^( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
12527   {
12528     return ExternalMemoryHandleTypeFlagsNV( bit0 ) ^ bit1;
12529   }
12530 
12531   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV
operator ~(ExternalMemoryHandleTypeFlagBitsNV bits)12532                                          operator~( ExternalMemoryHandleTypeFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
12533   {
12534     return ~( ExternalMemoryHandleTypeFlagsNV( bits ) );
12535   }
12536 
to_string(ExternalMemoryHandleTypeFlagsNV value)12537   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagsNV value )
12538   {
12539     if ( !value )
12540       return "{}";
12541 
12542     std::string result;
12543     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 )
12544       result += "OpaqueWin32 | ";
12545     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt )
12546       result += "OpaqueWin32Kmt | ";
12547     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image )
12548       result += "D3D11Image | ";
12549     if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt )
12550       result += "D3D11ImageKmt | ";
12551     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12552   }
12553 
12554   using ExternalMemoryFeatureFlagsNV = Flags<ExternalMemoryFeatureFlagBitsNV>;
12555 
12556   template <>
12557   struct FlagTraits<ExternalMemoryFeatureFlagBitsNV>
12558   {
12559     enum : VkFlags
12560     {
12561       allFlags = VkFlags( ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly ) |
12562                  VkFlags( ExternalMemoryFeatureFlagBitsNV::eExportable ) |
12563                  VkFlags( ExternalMemoryFeatureFlagBitsNV::eImportable )
12564     };
12565   };
12566 
12567   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV
operator |(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)12568                                          operator|( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
12569   {
12570     return ExternalMemoryFeatureFlagsNV( bit0 ) | bit1;
12571   }
12572 
12573   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV
operator &(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)12574                                          operator&(ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1)VULKAN_HPP_NOEXCEPT
12575   {
12576     return ExternalMemoryFeatureFlagsNV( bit0 ) & bit1;
12577   }
12578 
12579   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV
operator ^(ExternalMemoryFeatureFlagBitsNV bit0,ExternalMemoryFeatureFlagBitsNV bit1)12580                                          operator^( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
12581   {
12582     return ExternalMemoryFeatureFlagsNV( bit0 ) ^ bit1;
12583   }
12584 
operator ~(ExternalMemoryFeatureFlagBitsNV bits)12585   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator~( ExternalMemoryFeatureFlagBitsNV bits )
12586     VULKAN_HPP_NOEXCEPT
12587   {
12588     return ~( ExternalMemoryFeatureFlagsNV( bits ) );
12589   }
12590 
to_string(ExternalMemoryFeatureFlagsNV value)12591   VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagsNV value )
12592   {
12593     if ( !value )
12594       return "{}";
12595 
12596     std::string result;
12597     if ( value & ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly )
12598       result += "DedicatedOnly | ";
12599     if ( value & ExternalMemoryFeatureFlagBitsNV::eExportable )
12600       result += "Exportable | ";
12601     if ( value & ExternalMemoryFeatureFlagBitsNV::eImportable )
12602       result += "Importable | ";
12603     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12604   }
12605 
12606 #if defined( VK_USE_PLATFORM_VI_NN )
12607   //=== VK_NN_vi_surface ===
12608 
12609   using ViSurfaceCreateFlagsNN = Flags<ViSurfaceCreateFlagBitsNN>;
12610 
to_string(ViSurfaceCreateFlagsNN)12611   VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagsNN )
12612   {
12613     return "{}";
12614   }
12615 #endif /*VK_USE_PLATFORM_VI_NN*/
12616 
12617   //=== VK_EXT_conditional_rendering ===
12618 
12619   using ConditionalRenderingFlagsEXT = Flags<ConditionalRenderingFlagBitsEXT>;
12620 
12621   template <>
12622   struct FlagTraits<ConditionalRenderingFlagBitsEXT>
12623   {
12624     enum : VkFlags
12625     {
12626       allFlags = VkFlags( ConditionalRenderingFlagBitsEXT::eInverted )
12627     };
12628   };
12629 
12630   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT
operator |(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)12631                                          operator|( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12632   {
12633     return ConditionalRenderingFlagsEXT( bit0 ) | bit1;
12634   }
12635 
12636   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT
operator &(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)12637                                          operator&(ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT
12638   {
12639     return ConditionalRenderingFlagsEXT( bit0 ) & bit1;
12640   }
12641 
12642   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT
operator ^(ConditionalRenderingFlagBitsEXT bit0,ConditionalRenderingFlagBitsEXT bit1)12643                                          operator^( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12644   {
12645     return ConditionalRenderingFlagsEXT( bit0 ) ^ bit1;
12646   }
12647 
operator ~(ConditionalRenderingFlagBitsEXT bits)12648   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator~( ConditionalRenderingFlagBitsEXT bits )
12649     VULKAN_HPP_NOEXCEPT
12650   {
12651     return ~( ConditionalRenderingFlagsEXT( bits ) );
12652   }
12653 
to_string(ConditionalRenderingFlagsEXT value)12654   VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagsEXT value )
12655   {
12656     if ( !value )
12657       return "{}";
12658 
12659     std::string result;
12660     if ( value & ConditionalRenderingFlagBitsEXT::eInverted )
12661       result += "Inverted | ";
12662     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12663   }
12664 
12665   //=== VK_EXT_display_surface_counter ===
12666 
12667   using SurfaceCounterFlagsEXT = Flags<SurfaceCounterFlagBitsEXT>;
12668 
12669   template <>
12670   struct FlagTraits<SurfaceCounterFlagBitsEXT>
12671   {
12672     enum : VkFlags
12673     {
12674       allFlags = VkFlags( SurfaceCounterFlagBitsEXT::eVblank )
12675     };
12676   };
12677 
12678   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT
operator |(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)12679                                          operator|( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12680   {
12681     return SurfaceCounterFlagsEXT( bit0 ) | bit1;
12682   }
12683 
12684   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT
operator &(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)12685                                          operator&(SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT
12686   {
12687     return SurfaceCounterFlagsEXT( bit0 ) & bit1;
12688   }
12689 
12690   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT
operator ^(SurfaceCounterFlagBitsEXT bit0,SurfaceCounterFlagBitsEXT bit1)12691                                          operator^( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12692   {
12693     return SurfaceCounterFlagsEXT( bit0 ) ^ bit1;
12694   }
12695 
operator ~(SurfaceCounterFlagBitsEXT bits)12696   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator~( SurfaceCounterFlagBitsEXT bits )
12697     VULKAN_HPP_NOEXCEPT
12698   {
12699     return ~( SurfaceCounterFlagsEXT( bits ) );
12700   }
12701 
to_string(SurfaceCounterFlagsEXT value)12702   VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagsEXT value )
12703   {
12704     if ( !value )
12705       return "{}";
12706 
12707     std::string result;
12708     if ( value & SurfaceCounterFlagBitsEXT::eVblank )
12709       result += "Vblank | ";
12710     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12711   }
12712 
12713   //=== VK_NV_viewport_swizzle ===
12714 
12715   using PipelineViewportSwizzleStateCreateFlagsNV = Flags<PipelineViewportSwizzleStateCreateFlagBitsNV>;
12716 
to_string(PipelineViewportSwizzleStateCreateFlagsNV)12717   VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagsNV )
12718   {
12719     return "{}";
12720   }
12721 
12722   //=== VK_EXT_discard_rectangles ===
12723 
12724   using PipelineDiscardRectangleStateCreateFlagsEXT = Flags<PipelineDiscardRectangleStateCreateFlagBitsEXT>;
12725 
to_string(PipelineDiscardRectangleStateCreateFlagsEXT)12726   VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagsEXT )
12727   {
12728     return "{}";
12729   }
12730 
12731   //=== VK_EXT_conservative_rasterization ===
12732 
12733   using PipelineRasterizationConservativeStateCreateFlagsEXT =
12734     Flags<PipelineRasterizationConservativeStateCreateFlagBitsEXT>;
12735 
to_string(PipelineRasterizationConservativeStateCreateFlagsEXT)12736   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagsEXT )
12737   {
12738     return "{}";
12739   }
12740 
12741   //=== VK_EXT_depth_clip_enable ===
12742 
12743   using PipelineRasterizationDepthClipStateCreateFlagsEXT = Flags<PipelineRasterizationDepthClipStateCreateFlagBitsEXT>;
12744 
to_string(PipelineRasterizationDepthClipStateCreateFlagsEXT)12745   VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagsEXT )
12746   {
12747     return "{}";
12748   }
12749 
12750   //=== VK_KHR_performance_query ===
12751 
12752   using PerformanceCounterDescriptionFlagsKHR = Flags<PerformanceCounterDescriptionFlagBitsKHR>;
12753 
12754   template <>
12755   struct FlagTraits<PerformanceCounterDescriptionFlagBitsKHR>
12756   {
12757     enum : VkFlags
12758     {
12759       allFlags = VkFlags( PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting ) |
12760                  VkFlags( PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted )
12761     };
12762   };
12763 
operator |(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)12764   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator|(
12765     PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12766   {
12767     return PerformanceCounterDescriptionFlagsKHR( bit0 ) | bit1;
12768   }
12769 
operator &(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)12770   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator&(
12771     PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
12772   {
12773     return PerformanceCounterDescriptionFlagsKHR( bit0 ) & bit1;
12774   }
12775 
operator ^(PerformanceCounterDescriptionFlagBitsKHR bit0,PerformanceCounterDescriptionFlagBitsKHR bit1)12776   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator^(
12777     PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12778   {
12779     return PerformanceCounterDescriptionFlagsKHR( bit0 ) ^ bit1;
12780   }
12781 
12782   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR
operator ~(PerformanceCounterDescriptionFlagBitsKHR bits)12783                                          operator~( PerformanceCounterDescriptionFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
12784   {
12785     return ~( PerformanceCounterDescriptionFlagsKHR( bits ) );
12786   }
12787 
to_string(PerformanceCounterDescriptionFlagsKHR value)12788   VULKAN_HPP_INLINE std::string to_string( PerformanceCounterDescriptionFlagsKHR value )
12789   {
12790     if ( !value )
12791       return "{}";
12792 
12793     std::string result;
12794     if ( value & PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting )
12795       result += "PerformanceImpacting | ";
12796     if ( value & PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted )
12797       result += "ConcurrentlyImpacted | ";
12798     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12799   }
12800 
12801   using AcquireProfilingLockFlagsKHR = Flags<AcquireProfilingLockFlagBitsKHR>;
12802 
to_string(AcquireProfilingLockFlagsKHR)12803   VULKAN_HPP_INLINE std::string to_string( AcquireProfilingLockFlagsKHR )
12804   {
12805     return "{}";
12806   }
12807 
12808 #if defined( VK_USE_PLATFORM_IOS_MVK )
12809   //=== VK_MVK_ios_surface ===
12810 
12811   using IOSSurfaceCreateFlagsMVK = Flags<IOSSurfaceCreateFlagBitsMVK>;
12812 
to_string(IOSSurfaceCreateFlagsMVK)12813   VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagsMVK )
12814   {
12815     return "{}";
12816   }
12817 #endif /*VK_USE_PLATFORM_IOS_MVK*/
12818 
12819 #if defined( VK_USE_PLATFORM_MACOS_MVK )
12820   //=== VK_MVK_macos_surface ===
12821 
12822   using MacOSSurfaceCreateFlagsMVK = Flags<MacOSSurfaceCreateFlagBitsMVK>;
12823 
to_string(MacOSSurfaceCreateFlagsMVK)12824   VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagsMVK )
12825   {
12826     return "{}";
12827   }
12828 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
12829 
12830   //=== VK_EXT_debug_utils ===
12831 
12832   using DebugUtilsMessageSeverityFlagsEXT = Flags<DebugUtilsMessageSeverityFlagBitsEXT>;
12833 
12834   template <>
12835   struct FlagTraits<DebugUtilsMessageSeverityFlagBitsEXT>
12836   {
12837     enum : VkFlags
12838     {
12839       allFlags = VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eVerbose ) |
12840                  VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eInfo ) |
12841                  VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eWarning ) |
12842                  VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eError )
12843     };
12844   };
12845 
operator |(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)12846   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator|(
12847     DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12848   {
12849     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) | bit1;
12850   }
12851 
12852   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT
operator &(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)12853                                          operator&(DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT
12854   {
12855     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) & bit1;
12856   }
12857 
operator ^(DebugUtilsMessageSeverityFlagBitsEXT bit0,DebugUtilsMessageSeverityFlagBitsEXT bit1)12858   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator^(
12859     DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12860   {
12861     return DebugUtilsMessageSeverityFlagsEXT( bit0 ) ^ bit1;
12862   }
12863 
12864   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT
operator ~(DebugUtilsMessageSeverityFlagBitsEXT bits)12865                                          operator~( DebugUtilsMessageSeverityFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12866   {
12867     return ~( DebugUtilsMessageSeverityFlagsEXT( bits ) );
12868   }
12869 
to_string(DebugUtilsMessageSeverityFlagsEXT value)12870   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagsEXT value )
12871   {
12872     if ( !value )
12873       return "{}";
12874 
12875     std::string result;
12876     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eVerbose )
12877       result += "Verbose | ";
12878     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eInfo )
12879       result += "Info | ";
12880     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eWarning )
12881       result += "Warning | ";
12882     if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eError )
12883       result += "Error | ";
12884     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12885   }
12886 
12887   using DebugUtilsMessageTypeFlagsEXT = Flags<DebugUtilsMessageTypeFlagBitsEXT>;
12888 
12889   template <>
12890   struct FlagTraits<DebugUtilsMessageTypeFlagBitsEXT>
12891   {
12892     enum : VkFlags
12893     {
12894       allFlags = VkFlags( DebugUtilsMessageTypeFlagBitsEXT::eGeneral ) |
12895                  VkFlags( DebugUtilsMessageTypeFlagBitsEXT::eValidation ) |
12896                  VkFlags( DebugUtilsMessageTypeFlagBitsEXT::ePerformance )
12897     };
12898   };
12899 
12900   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT
operator |(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)12901                                          operator|( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12902   {
12903     return DebugUtilsMessageTypeFlagsEXT( bit0 ) | bit1;
12904   }
12905 
12906   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT
operator &(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)12907                                          operator&(DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT
12908   {
12909     return DebugUtilsMessageTypeFlagsEXT( bit0 ) & bit1;
12910   }
12911 
12912   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT
operator ^(DebugUtilsMessageTypeFlagBitsEXT bit0,DebugUtilsMessageTypeFlagBitsEXT bit1)12913                                          operator^( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
12914   {
12915     return DebugUtilsMessageTypeFlagsEXT( bit0 ) ^ bit1;
12916   }
12917 
12918   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT
operator ~(DebugUtilsMessageTypeFlagBitsEXT bits)12919                                          operator~( DebugUtilsMessageTypeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
12920   {
12921     return ~( DebugUtilsMessageTypeFlagsEXT( bits ) );
12922   }
12923 
to_string(DebugUtilsMessageTypeFlagsEXT value)12924   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagsEXT value )
12925   {
12926     if ( !value )
12927       return "{}";
12928 
12929     std::string result;
12930     if ( value & DebugUtilsMessageTypeFlagBitsEXT::eGeneral )
12931       result += "General | ";
12932     if ( value & DebugUtilsMessageTypeFlagBitsEXT::eValidation )
12933       result += "Validation | ";
12934     if ( value & DebugUtilsMessageTypeFlagBitsEXT::ePerformance )
12935       result += "Performance | ";
12936     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
12937   }
12938 
12939   using DebugUtilsMessengerCallbackDataFlagsEXT = Flags<DebugUtilsMessengerCallbackDataFlagBitsEXT>;
12940 
to_string(DebugUtilsMessengerCallbackDataFlagsEXT)12941   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagsEXT )
12942   {
12943     return "{}";
12944   }
12945 
12946   using DebugUtilsMessengerCreateFlagsEXT = Flags<DebugUtilsMessengerCreateFlagBitsEXT>;
12947 
to_string(DebugUtilsMessengerCreateFlagsEXT)12948   VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagsEXT )
12949   {
12950     return "{}";
12951   }
12952 
12953   //=== VK_NV_fragment_coverage_to_color ===
12954 
12955   using PipelineCoverageToColorStateCreateFlagsNV = Flags<PipelineCoverageToColorStateCreateFlagBitsNV>;
12956 
to_string(PipelineCoverageToColorStateCreateFlagsNV)12957   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagsNV )
12958   {
12959     return "{}";
12960   }
12961 
12962   //=== VK_KHR_acceleration_structure ===
12963 
12964   using GeometryFlagsKHR = Flags<GeometryFlagBitsKHR>;
12965 
12966   template <>
12967   struct FlagTraits<GeometryFlagBitsKHR>
12968   {
12969     enum : VkFlags
12970     {
12971       allFlags = VkFlags( GeometryFlagBitsKHR::eOpaque ) | VkFlags( GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation )
12972     };
12973   };
12974 
operator |(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)12975   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator|( GeometryFlagBitsKHR bit0,
12976                                                                      GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12977   {
12978     return GeometryFlagsKHR( bit0 ) | bit1;
12979   }
12980 
operator &(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)12981   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator&(GeometryFlagBitsKHR bit0,
12982                                                                     GeometryFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
12983   {
12984     return GeometryFlagsKHR( bit0 ) & bit1;
12985   }
12986 
operator ^(GeometryFlagBitsKHR bit0,GeometryFlagBitsKHR bit1)12987   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator^( GeometryFlagBitsKHR bit0,
12988                                                                      GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
12989   {
12990     return GeometryFlagsKHR( bit0 ) ^ bit1;
12991   }
12992 
operator ~(GeometryFlagBitsKHR bits)12993   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator~( GeometryFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
12994   {
12995     return ~( GeometryFlagsKHR( bits ) );
12996   }
12997 
12998   using GeometryFlagsNV = GeometryFlagsKHR;
12999 
to_string(GeometryFlagsKHR value)13000   VULKAN_HPP_INLINE std::string to_string( GeometryFlagsKHR value )
13001   {
13002     if ( !value )
13003       return "{}";
13004 
13005     std::string result;
13006     if ( value & GeometryFlagBitsKHR::eOpaque )
13007       result += "Opaque | ";
13008     if ( value & GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation )
13009       result += "NoDuplicateAnyHitInvocation | ";
13010     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13011   }
13012 
13013   using GeometryInstanceFlagsKHR = Flags<GeometryInstanceFlagBitsKHR>;
13014 
13015   template <>
13016   struct FlagTraits<GeometryInstanceFlagBitsKHR>
13017   {
13018     enum : VkFlags
13019     {
13020       allFlags = VkFlags( GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable ) |
13021                  VkFlags( GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise ) |
13022                  VkFlags( GeometryInstanceFlagBitsKHR::eForceOpaque ) |
13023                  VkFlags( GeometryInstanceFlagBitsKHR::eForceNoOpaque )
13024     };
13025   };
13026 
13027   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR
operator |(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)13028                                          operator|( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13029   {
13030     return GeometryInstanceFlagsKHR( bit0 ) | bit1;
13031   }
13032 
13033   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR
operator &(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)13034                                          operator&(GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
13035   {
13036     return GeometryInstanceFlagsKHR( bit0 ) & bit1;
13037   }
13038 
13039   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR
operator ^(GeometryInstanceFlagBitsKHR bit0,GeometryInstanceFlagBitsKHR bit1)13040                                          operator^( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13041   {
13042     return GeometryInstanceFlagsKHR( bit0 ) ^ bit1;
13043   }
13044 
operator ~(GeometryInstanceFlagBitsKHR bits)13045   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator~( GeometryInstanceFlagBitsKHR bits )
13046     VULKAN_HPP_NOEXCEPT
13047   {
13048     return ~( GeometryInstanceFlagsKHR( bits ) );
13049   }
13050 
13051   using GeometryInstanceFlagsNV = GeometryInstanceFlagsKHR;
13052 
to_string(GeometryInstanceFlagsKHR value)13053   VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagsKHR value )
13054   {
13055     if ( !value )
13056       return "{}";
13057 
13058     std::string result;
13059     if ( value & GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable )
13060       result += "TriangleFacingCullDisable | ";
13061     if ( value & GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise )
13062       result += "TriangleFrontCounterclockwise | ";
13063     if ( value & GeometryInstanceFlagBitsKHR::eForceOpaque )
13064       result += "ForceOpaque | ";
13065     if ( value & GeometryInstanceFlagBitsKHR::eForceNoOpaque )
13066       result += "ForceNoOpaque | ";
13067     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13068   }
13069 
13070   using BuildAccelerationStructureFlagsKHR = Flags<BuildAccelerationStructureFlagBitsKHR>;
13071 
13072   template <>
13073   struct FlagTraits<BuildAccelerationStructureFlagBitsKHR>
13074   {
13075     enum : VkFlags
13076     {
13077       allFlags = VkFlags( BuildAccelerationStructureFlagBitsKHR::eAllowUpdate ) |
13078                  VkFlags( BuildAccelerationStructureFlagBitsKHR::eAllowCompaction ) |
13079                  VkFlags( BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace ) |
13080                  VkFlags( BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild ) |
13081                  VkFlags( BuildAccelerationStructureFlagBitsKHR::eLowMemory ) |
13082                  VkFlags( BuildAccelerationStructureFlagBitsKHR::eMotionNV )
13083     };
13084   };
13085 
operator |(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)13086   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator|(
13087     BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13088   {
13089     return BuildAccelerationStructureFlagsKHR( bit0 ) | bit1;
13090   }
13091 
13092   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR
operator &(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)13093                                          operator&(BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
13094   {
13095     return BuildAccelerationStructureFlagsKHR( bit0 ) & bit1;
13096   }
13097 
operator ^(BuildAccelerationStructureFlagBitsKHR bit0,BuildAccelerationStructureFlagBitsKHR bit1)13098   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator^(
13099     BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13100   {
13101     return BuildAccelerationStructureFlagsKHR( bit0 ) ^ bit1;
13102   }
13103 
13104   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR
operator ~(BuildAccelerationStructureFlagBitsKHR bits)13105                                          operator~( BuildAccelerationStructureFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
13106   {
13107     return ~( BuildAccelerationStructureFlagsKHR( bits ) );
13108   }
13109 
13110   using BuildAccelerationStructureFlagsNV = BuildAccelerationStructureFlagsKHR;
13111 
to_string(BuildAccelerationStructureFlagsKHR value)13112   VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagsKHR value )
13113   {
13114     if ( !value )
13115       return "{}";
13116 
13117     std::string result;
13118     if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowUpdate )
13119       result += "AllowUpdate | ";
13120     if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowCompaction )
13121       result += "AllowCompaction | ";
13122     if ( value & BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace )
13123       result += "PreferFastTrace | ";
13124     if ( value & BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild )
13125       result += "PreferFastBuild | ";
13126     if ( value & BuildAccelerationStructureFlagBitsKHR::eLowMemory )
13127       result += "LowMemory | ";
13128     if ( value & BuildAccelerationStructureFlagBitsKHR::eMotionNV )
13129       result += "MotionNV | ";
13130     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13131   }
13132 
13133   using AccelerationStructureCreateFlagsKHR = Flags<AccelerationStructureCreateFlagBitsKHR>;
13134 
13135   template <>
13136   struct FlagTraits<AccelerationStructureCreateFlagBitsKHR>
13137   {
13138     enum : VkFlags
13139     {
13140       allFlags = VkFlags( AccelerationStructureCreateFlagBitsKHR::eDeviceAddressCaptureReplay ) |
13141                  VkFlags( AccelerationStructureCreateFlagBitsKHR::eMotionNV )
13142     };
13143   };
13144 
operator |(AccelerationStructureCreateFlagBitsKHR bit0,AccelerationStructureCreateFlagBitsKHR bit1)13145   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator|(
13146     AccelerationStructureCreateFlagBitsKHR bit0, AccelerationStructureCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13147   {
13148     return AccelerationStructureCreateFlagsKHR( bit0 ) | bit1;
13149   }
13150 
operator &(AccelerationStructureCreateFlagBitsKHR bit0,AccelerationStructureCreateFlagBitsKHR bit1)13151   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator&(
13152     AccelerationStructureCreateFlagBitsKHR bit0, AccelerationStructureCreateFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
13153   {
13154     return AccelerationStructureCreateFlagsKHR( bit0 ) & bit1;
13155   }
13156 
operator ^(AccelerationStructureCreateFlagBitsKHR bit0,AccelerationStructureCreateFlagBitsKHR bit1)13157   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator^(
13158     AccelerationStructureCreateFlagBitsKHR bit0, AccelerationStructureCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13159   {
13160     return AccelerationStructureCreateFlagsKHR( bit0 ) ^ bit1;
13161   }
13162 
13163   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR
operator ~(AccelerationStructureCreateFlagBitsKHR bits)13164                                          operator~( AccelerationStructureCreateFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
13165   {
13166     return ~( AccelerationStructureCreateFlagsKHR( bits ) );
13167   }
13168 
to_string(AccelerationStructureCreateFlagsKHR value)13169   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureCreateFlagsKHR value )
13170   {
13171     if ( !value )
13172       return "{}";
13173 
13174     std::string result;
13175     if ( value & AccelerationStructureCreateFlagBitsKHR::eDeviceAddressCaptureReplay )
13176       result += "DeviceAddressCaptureReplay | ";
13177     if ( value & AccelerationStructureCreateFlagBitsKHR::eMotionNV )
13178       result += "MotionNV | ";
13179     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13180   }
13181 
13182   //=== VK_NV_framebuffer_mixed_samples ===
13183 
13184   using PipelineCoverageModulationStateCreateFlagsNV = Flags<PipelineCoverageModulationStateCreateFlagBitsNV>;
13185 
to_string(PipelineCoverageModulationStateCreateFlagsNV)13186   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagsNV )
13187   {
13188     return "{}";
13189   }
13190 
13191   //=== VK_EXT_validation_cache ===
13192 
13193   using ValidationCacheCreateFlagsEXT = Flags<ValidationCacheCreateFlagBitsEXT>;
13194 
to_string(ValidationCacheCreateFlagsEXT)13195   VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagsEXT )
13196   {
13197     return "{}";
13198   }
13199 
13200   //=== VK_AMD_pipeline_compiler_control ===
13201 
13202   using PipelineCompilerControlFlagsAMD = Flags<PipelineCompilerControlFlagBitsAMD>;
13203 
to_string(PipelineCompilerControlFlagsAMD)13204   VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagsAMD )
13205   {
13206     return "{}";
13207   }
13208 
13209 #if defined( VK_ENABLE_BETA_EXTENSIONS )
13210   //=== VK_EXT_video_decode_h265 ===
13211 
13212   using VideoDecodeH265CreateFlagsEXT = Flags<VideoDecodeH265CreateFlagBitsEXT>;
13213 
to_string(VideoDecodeH265CreateFlagsEXT)13214   VULKAN_HPP_INLINE std::string to_string( VideoDecodeH265CreateFlagsEXT )
13215   {
13216     return "{}";
13217   }
13218 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13219 
13220   //=== VK_EXT_pipeline_creation_feedback ===
13221 
13222   using PipelineCreationFeedbackFlagsEXT = Flags<PipelineCreationFeedbackFlagBitsEXT>;
13223 
13224   template <>
13225   struct FlagTraits<PipelineCreationFeedbackFlagBitsEXT>
13226   {
13227     enum : VkFlags
13228     {
13229       allFlags = VkFlags( PipelineCreationFeedbackFlagBitsEXT::eValid ) |
13230                  VkFlags( PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit ) |
13231                  VkFlags( PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration )
13232     };
13233   };
13234 
13235   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT
operator |(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)13236                                          operator|( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13237   {
13238     return PipelineCreationFeedbackFlagsEXT( bit0 ) | bit1;
13239   }
13240 
13241   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT
operator &(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)13242                                          operator&(PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT
13243   {
13244     return PipelineCreationFeedbackFlagsEXT( bit0 ) & bit1;
13245   }
13246 
13247   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT
operator ^(PipelineCreationFeedbackFlagBitsEXT bit0,PipelineCreationFeedbackFlagBitsEXT bit1)13248                                          operator^( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13249   {
13250     return PipelineCreationFeedbackFlagsEXT( bit0 ) ^ bit1;
13251   }
13252 
13253   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT
operator ~(PipelineCreationFeedbackFlagBitsEXT bits)13254                                          operator~( PipelineCreationFeedbackFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
13255   {
13256     return ~( PipelineCreationFeedbackFlagsEXT( bits ) );
13257   }
13258 
to_string(PipelineCreationFeedbackFlagsEXT value)13259   VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagsEXT value )
13260   {
13261     if ( !value )
13262       return "{}";
13263 
13264     std::string result;
13265     if ( value & PipelineCreationFeedbackFlagBitsEXT::eValid )
13266       result += "Valid | ";
13267     if ( value & PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit )
13268       result += "ApplicationPipelineCacheHit | ";
13269     if ( value & PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration )
13270       result += "BasePipelineAcceleration | ";
13271     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13272   }
13273 
13274 #if defined( VK_USE_PLATFORM_FUCHSIA )
13275   //=== VK_FUCHSIA_imagepipe_surface ===
13276 
13277   using ImagePipeSurfaceCreateFlagsFUCHSIA = Flags<ImagePipeSurfaceCreateFlagBitsFUCHSIA>;
13278 
to_string(ImagePipeSurfaceCreateFlagsFUCHSIA)13279   VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagsFUCHSIA )
13280   {
13281     return "{}";
13282   }
13283 #endif /*VK_USE_PLATFORM_FUCHSIA*/
13284 
13285 #if defined( VK_USE_PLATFORM_METAL_EXT )
13286   //=== VK_EXT_metal_surface ===
13287 
13288   using MetalSurfaceCreateFlagsEXT = Flags<MetalSurfaceCreateFlagBitsEXT>;
13289 
to_string(MetalSurfaceCreateFlagsEXT)13290   VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagsEXT )
13291   {
13292     return "{}";
13293   }
13294 #endif /*VK_USE_PLATFORM_METAL_EXT*/
13295 
13296   //=== VK_AMD_shader_core_properties2 ===
13297 
13298   using ShaderCorePropertiesFlagsAMD = Flags<ShaderCorePropertiesFlagBitsAMD>;
13299 
to_string(ShaderCorePropertiesFlagsAMD)13300   VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagsAMD )
13301   {
13302     return "{}";
13303   }
13304 
13305   //=== VK_EXT_tooling_info ===
13306 
13307   using ToolPurposeFlagsEXT = Flags<ToolPurposeFlagBitsEXT>;
13308 
13309   template <>
13310   struct FlagTraits<ToolPurposeFlagBitsEXT>
13311   {
13312     enum : VkFlags
13313     {
13314       allFlags = VkFlags( ToolPurposeFlagBitsEXT::eValidation ) | VkFlags( ToolPurposeFlagBitsEXT::eProfiling ) |
13315                  VkFlags( ToolPurposeFlagBitsEXT::eTracing ) | VkFlags( ToolPurposeFlagBitsEXT::eAdditionalFeatures ) |
13316                  VkFlags( ToolPurposeFlagBitsEXT::eModifyingFeatures ) |
13317                  VkFlags( ToolPurposeFlagBitsEXT::eDebugReporting ) | VkFlags( ToolPurposeFlagBitsEXT::eDebugMarkers )
13318     };
13319   };
13320 
13321   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT
operator |(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)13322                                          operator|( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13323   {
13324     return ToolPurposeFlagsEXT( bit0 ) | bit1;
13325   }
13326 
operator &(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)13327   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator&(ToolPurposeFlagBitsEXT bit0,
13328                                                                        ToolPurposeFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT
13329   {
13330     return ToolPurposeFlagsEXT( bit0 ) & bit1;
13331   }
13332 
13333   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT
operator ^(ToolPurposeFlagBitsEXT bit0,ToolPurposeFlagBitsEXT bit1)13334                                          operator^( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
13335   {
13336     return ToolPurposeFlagsEXT( bit0 ) ^ bit1;
13337   }
13338 
operator ~(ToolPurposeFlagBitsEXT bits)13339   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator~( ToolPurposeFlagBitsEXT bits )
13340     VULKAN_HPP_NOEXCEPT
13341   {
13342     return ~( ToolPurposeFlagsEXT( bits ) );
13343   }
13344 
to_string(ToolPurposeFlagsEXT value)13345   VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagsEXT value )
13346   {
13347     if ( !value )
13348       return "{}";
13349 
13350     std::string result;
13351     if ( value & ToolPurposeFlagBitsEXT::eValidation )
13352       result += "Validation | ";
13353     if ( value & ToolPurposeFlagBitsEXT::eProfiling )
13354       result += "Profiling | ";
13355     if ( value & ToolPurposeFlagBitsEXT::eTracing )
13356       result += "Tracing | ";
13357     if ( value & ToolPurposeFlagBitsEXT::eAdditionalFeatures )
13358       result += "AdditionalFeatures | ";
13359     if ( value & ToolPurposeFlagBitsEXT::eModifyingFeatures )
13360       result += "ModifyingFeatures | ";
13361     if ( value & ToolPurposeFlagBitsEXT::eDebugReporting )
13362       result += "DebugReporting | ";
13363     if ( value & ToolPurposeFlagBitsEXT::eDebugMarkers )
13364       result += "DebugMarkers | ";
13365     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13366   }
13367 
13368   //=== VK_NV_coverage_reduction_mode ===
13369 
13370   using PipelineCoverageReductionStateCreateFlagsNV = Flags<PipelineCoverageReductionStateCreateFlagBitsNV>;
13371 
to_string(PipelineCoverageReductionStateCreateFlagsNV)13372   VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagsNV )
13373   {
13374     return "{}";
13375   }
13376 
13377   //=== VK_EXT_headless_surface ===
13378 
13379   using HeadlessSurfaceCreateFlagsEXT = Flags<HeadlessSurfaceCreateFlagBitsEXT>;
13380 
to_string(HeadlessSurfaceCreateFlagsEXT)13381   VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagsEXT )
13382   {
13383     return "{}";
13384   }
13385 
13386   //=== VK_NV_device_generated_commands ===
13387 
13388   using IndirectStateFlagsNV = Flags<IndirectStateFlagBitsNV>;
13389 
13390   template <>
13391   struct FlagTraits<IndirectStateFlagBitsNV>
13392   {
13393     enum : VkFlags
13394     {
13395       allFlags = VkFlags( IndirectStateFlagBitsNV::eFlagFrontface )
13396     };
13397   };
13398 
13399   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV
operator |(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)13400                                          operator|( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
13401   {
13402     return IndirectStateFlagsNV( bit0 ) | bit1;
13403   }
13404 
operator &(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)13405   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator&(IndirectStateFlagBitsNV bit0,
13406                                                                         IndirectStateFlagBitsNV bit1)VULKAN_HPP_NOEXCEPT
13407   {
13408     return IndirectStateFlagsNV( bit0 ) & bit1;
13409   }
13410 
13411   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV
operator ^(IndirectStateFlagBitsNV bit0,IndirectStateFlagBitsNV bit1)13412                                          operator^( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
13413   {
13414     return IndirectStateFlagsNV( bit0 ) ^ bit1;
13415   }
13416 
operator ~(IndirectStateFlagBitsNV bits)13417   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator~( IndirectStateFlagBitsNV bits )
13418     VULKAN_HPP_NOEXCEPT
13419   {
13420     return ~( IndirectStateFlagsNV( bits ) );
13421   }
13422 
to_string(IndirectStateFlagsNV value)13423   VULKAN_HPP_INLINE std::string to_string( IndirectStateFlagsNV value )
13424   {
13425     if ( !value )
13426       return "{}";
13427 
13428     std::string result;
13429     if ( value & IndirectStateFlagBitsNV::eFlagFrontface )
13430       result += "FlagFrontface | ";
13431     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13432   }
13433 
13434   using IndirectCommandsLayoutUsageFlagsNV = Flags<IndirectCommandsLayoutUsageFlagBitsNV>;
13435 
13436   template <>
13437   struct FlagTraits<IndirectCommandsLayoutUsageFlagBitsNV>
13438   {
13439     enum : VkFlags
13440     {
13441       allFlags = VkFlags( IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess ) |
13442                  VkFlags( IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences ) |
13443                  VkFlags( IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences )
13444     };
13445   };
13446 
operator |(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)13447   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator|(
13448     IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
13449   {
13450     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) | bit1;
13451   }
13452 
13453   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV
operator &(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)13454                                          operator&(IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1)VULKAN_HPP_NOEXCEPT
13455   {
13456     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) & bit1;
13457   }
13458 
operator ^(IndirectCommandsLayoutUsageFlagBitsNV bit0,IndirectCommandsLayoutUsageFlagBitsNV bit1)13459   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator^(
13460     IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
13461   {
13462     return IndirectCommandsLayoutUsageFlagsNV( bit0 ) ^ bit1;
13463   }
13464 
13465   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV
operator ~(IndirectCommandsLayoutUsageFlagBitsNV bits)13466                                          operator~( IndirectCommandsLayoutUsageFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
13467   {
13468     return ~( IndirectCommandsLayoutUsageFlagsNV( bits ) );
13469   }
13470 
to_string(IndirectCommandsLayoutUsageFlagsNV value)13471   VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagsNV value )
13472   {
13473     if ( !value )
13474       return "{}";
13475 
13476     std::string result;
13477     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess )
13478       result += "ExplicitPreprocess | ";
13479     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences )
13480       result += "IndexedSequences | ";
13481     if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences )
13482       result += "UnorderedSequences | ";
13483     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13484   }
13485 
13486   //=== VK_EXT_device_memory_report ===
13487 
13488   using DeviceMemoryReportFlagsEXT = Flags<DeviceMemoryReportFlagBitsEXT>;
13489 
to_string(DeviceMemoryReportFlagsEXT)13490   VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportFlagsEXT )
13491   {
13492     return "{}";
13493   }
13494 
13495   //=== VK_EXT_private_data ===
13496 
13497   using PrivateDataSlotCreateFlagsEXT = Flags<PrivateDataSlotCreateFlagBitsEXT>;
13498 
to_string(PrivateDataSlotCreateFlagsEXT)13499   VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagsEXT )
13500   {
13501     return "{}";
13502   }
13503 
13504 #if defined( VK_ENABLE_BETA_EXTENSIONS )
13505   //=== VK_KHR_video_encode_queue ===
13506 
13507   using VideoEncodeFlagsKHR = Flags<VideoEncodeFlagBitsKHR>;
13508 
13509   template <>
13510   struct FlagTraits<VideoEncodeFlagBitsKHR>
13511   {
13512     enum : VkFlags
13513     {
13514       allFlags = VkFlags( VideoEncodeFlagBitsKHR::eDefault ) | VkFlags( VideoEncodeFlagBitsKHR::eReserved0 )
13515     };
13516   };
13517 
13518   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeFlagsKHR
operator |(VideoEncodeFlagBitsKHR bit0,VideoEncodeFlagBitsKHR bit1)13519                                          operator|( VideoEncodeFlagBitsKHR bit0, VideoEncodeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13520   {
13521     return VideoEncodeFlagsKHR( bit0 ) | bit1;
13522   }
13523 
operator &(VideoEncodeFlagBitsKHR bit0,VideoEncodeFlagBitsKHR bit1)13524   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeFlagsKHR operator&(VideoEncodeFlagBitsKHR bit0,
13525                                                                        VideoEncodeFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
13526   {
13527     return VideoEncodeFlagsKHR( bit0 ) & bit1;
13528   }
13529 
13530   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeFlagsKHR
operator ^(VideoEncodeFlagBitsKHR bit0,VideoEncodeFlagBitsKHR bit1)13531                                          operator^( VideoEncodeFlagBitsKHR bit0, VideoEncodeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13532   {
13533     return VideoEncodeFlagsKHR( bit0 ) ^ bit1;
13534   }
13535 
operator ~(VideoEncodeFlagBitsKHR bits)13536   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeFlagsKHR operator~( VideoEncodeFlagBitsKHR bits )
13537     VULKAN_HPP_NOEXCEPT
13538   {
13539     return ~( VideoEncodeFlagsKHR( bits ) );
13540   }
13541 
to_string(VideoEncodeFlagsKHR value)13542   VULKAN_HPP_INLINE std::string to_string( VideoEncodeFlagsKHR value )
13543   {
13544     if ( !value )
13545       return "{}";
13546 
13547     std::string result;
13548     if ( value & VideoEncodeFlagBitsKHR::eReserved0 )
13549       result += "Reserved0 | ";
13550     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13551   }
13552 
13553   using VideoEncodeRateControlFlagsKHR = Flags<VideoEncodeRateControlFlagBitsKHR>;
13554 
13555   template <>
13556   struct FlagTraits<VideoEncodeRateControlFlagBitsKHR>
13557   {
13558     enum : VkFlags
13559     {
13560       allFlags =
13561         VkFlags( VideoEncodeRateControlFlagBitsKHR::eDefault ) | VkFlags( VideoEncodeRateControlFlagBitsKHR::eReset )
13562     };
13563   };
13564 
13565   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlFlagsKHR
operator |(VideoEncodeRateControlFlagBitsKHR bit0,VideoEncodeRateControlFlagBitsKHR bit1)13566                                          operator|( VideoEncodeRateControlFlagBitsKHR bit0, VideoEncodeRateControlFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13567   {
13568     return VideoEncodeRateControlFlagsKHR( bit0 ) | bit1;
13569   }
13570 
13571   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlFlagsKHR
operator &(VideoEncodeRateControlFlagBitsKHR bit0,VideoEncodeRateControlFlagBitsKHR bit1)13572                                          operator&(VideoEncodeRateControlFlagBitsKHR bit0, VideoEncodeRateControlFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
13573   {
13574     return VideoEncodeRateControlFlagsKHR( bit0 ) & bit1;
13575   }
13576 
13577   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlFlagsKHR
operator ^(VideoEncodeRateControlFlagBitsKHR bit0,VideoEncodeRateControlFlagBitsKHR bit1)13578                                          operator^( VideoEncodeRateControlFlagBitsKHR bit0, VideoEncodeRateControlFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13579   {
13580     return VideoEncodeRateControlFlagsKHR( bit0 ) ^ bit1;
13581   }
13582 
13583   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlFlagsKHR
operator ~(VideoEncodeRateControlFlagBitsKHR bits)13584                                          operator~( VideoEncodeRateControlFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
13585   {
13586     return ~( VideoEncodeRateControlFlagsKHR( bits ) );
13587   }
13588 
to_string(VideoEncodeRateControlFlagsKHR value)13589   VULKAN_HPP_INLINE std::string to_string( VideoEncodeRateControlFlagsKHR value )
13590   {
13591     if ( !value )
13592       return "{}";
13593 
13594     std::string result;
13595     if ( value & VideoEncodeRateControlFlagBitsKHR::eReset )
13596       result += "Reset | ";
13597     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13598   }
13599 
13600   using VideoEncodeRateControlModeFlagsKHR = Flags<VideoEncodeRateControlModeFlagBitsKHR>;
13601 
13602   template <>
13603   struct FlagTraits<VideoEncodeRateControlModeFlagBitsKHR>
13604   {
13605     enum : VkFlags
13606     {
13607       allFlags = VkFlags( VideoEncodeRateControlModeFlagBitsKHR::eNone ) |
13608                  VkFlags( VideoEncodeRateControlModeFlagBitsKHR::eCbr ) |
13609                  VkFlags( VideoEncodeRateControlModeFlagBitsKHR::eVbr )
13610     };
13611   };
13612 
operator |(VideoEncodeRateControlModeFlagBitsKHR bit0,VideoEncodeRateControlModeFlagBitsKHR bit1)13613   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlModeFlagsKHR operator|(
13614     VideoEncodeRateControlModeFlagBitsKHR bit0, VideoEncodeRateControlModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13615   {
13616     return VideoEncodeRateControlModeFlagsKHR( bit0 ) | bit1;
13617   }
13618 
13619   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlModeFlagsKHR
operator &(VideoEncodeRateControlModeFlagBitsKHR bit0,VideoEncodeRateControlModeFlagBitsKHR bit1)13620                                          operator&(VideoEncodeRateControlModeFlagBitsKHR bit0, VideoEncodeRateControlModeFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
13621   {
13622     return VideoEncodeRateControlModeFlagsKHR( bit0 ) & bit1;
13623   }
13624 
operator ^(VideoEncodeRateControlModeFlagBitsKHR bit0,VideoEncodeRateControlModeFlagBitsKHR bit1)13625   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlModeFlagsKHR operator^(
13626     VideoEncodeRateControlModeFlagBitsKHR bit0, VideoEncodeRateControlModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
13627   {
13628     return VideoEncodeRateControlModeFlagsKHR( bit0 ) ^ bit1;
13629   }
13630 
13631   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlModeFlagsKHR
operator ~(VideoEncodeRateControlModeFlagBitsKHR bits)13632                                          operator~( VideoEncodeRateControlModeFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
13633   {
13634     return ~( VideoEncodeRateControlModeFlagsKHR( bits ) );
13635   }
13636 
to_string(VideoEncodeRateControlModeFlagsKHR value)13637   VULKAN_HPP_INLINE std::string to_string( VideoEncodeRateControlModeFlagsKHR value )
13638   {
13639     if ( !value )
13640       return "{}";
13641 
13642     std::string result;
13643     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13644   }
13645 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13646 
13647   //=== VK_NV_device_diagnostics_config ===
13648 
13649   using DeviceDiagnosticsConfigFlagsNV = Flags<DeviceDiagnosticsConfigFlagBitsNV>;
13650 
13651   template <>
13652   struct FlagTraits<DeviceDiagnosticsConfigFlagBitsNV>
13653   {
13654     enum : VkFlags
13655     {
13656       allFlags = VkFlags( DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo ) |
13657                  VkFlags( DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking ) |
13658                  VkFlags( DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints )
13659     };
13660   };
13661 
13662   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV
operator |(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)13663                                          operator|( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
13664   {
13665     return DeviceDiagnosticsConfigFlagsNV( bit0 ) | bit1;
13666   }
13667 
13668   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV
operator &(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)13669                                          operator&(DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1)VULKAN_HPP_NOEXCEPT
13670   {
13671     return DeviceDiagnosticsConfigFlagsNV( bit0 ) & bit1;
13672   }
13673 
13674   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV
operator ^(DeviceDiagnosticsConfigFlagBitsNV bit0,DeviceDiagnosticsConfigFlagBitsNV bit1)13675                                          operator^( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT
13676   {
13677     return DeviceDiagnosticsConfigFlagsNV( bit0 ) ^ bit1;
13678   }
13679 
13680   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV
operator ~(DeviceDiagnosticsConfigFlagBitsNV bits)13681                                          operator~( DeviceDiagnosticsConfigFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT
13682   {
13683     return ~( DeviceDiagnosticsConfigFlagsNV( bits ) );
13684   }
13685 
to_string(DeviceDiagnosticsConfigFlagsNV value)13686   VULKAN_HPP_INLINE std::string to_string( DeviceDiagnosticsConfigFlagsNV value )
13687   {
13688     if ( !value )
13689       return "{}";
13690 
13691     std::string result;
13692     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo )
13693       result += "EnableShaderDebugInfo | ";
13694     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking )
13695       result += "EnableResourceTracking | ";
13696     if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints )
13697       result += "EnableAutomaticCheckpoints | ";
13698     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13699   }
13700 
13701   //=== VK_KHR_synchronization2 ===
13702 
13703   using PipelineStageFlags2KHR = Flags<PipelineStageFlagBits2KHR>;
13704 
13705   template <>
13706   struct FlagTraits<PipelineStageFlagBits2KHR>
13707   {
13708     enum : VkFlags64
13709     {
13710       allFlags =
13711         VkFlags64( PipelineStageFlagBits2KHR::eNone ) | VkFlags64( PipelineStageFlagBits2KHR::eTopOfPipe ) |
13712         VkFlags64( PipelineStageFlagBits2KHR::eDrawIndirect ) | VkFlags64( PipelineStageFlagBits2KHR::eVertexInput ) |
13713         VkFlags64( PipelineStageFlagBits2KHR::eVertexShader ) |
13714         VkFlags64( PipelineStageFlagBits2KHR::eTessellationControlShader ) |
13715         VkFlags64( PipelineStageFlagBits2KHR::eTessellationEvaluationShader ) |
13716         VkFlags64( PipelineStageFlagBits2KHR::eGeometryShader ) |
13717         VkFlags64( PipelineStageFlagBits2KHR::eFragmentShader ) |
13718         VkFlags64( PipelineStageFlagBits2KHR::eEarlyFragmentTests ) |
13719         VkFlags64( PipelineStageFlagBits2KHR::eLateFragmentTests ) |
13720         VkFlags64( PipelineStageFlagBits2KHR::eColorAttachmentOutput ) |
13721         VkFlags64( PipelineStageFlagBits2KHR::eComputeShader ) | VkFlags64( PipelineStageFlagBits2KHR::eAllTransfer ) |
13722         VkFlags64( PipelineStageFlagBits2KHR::eBottomOfPipe ) | VkFlags64( PipelineStageFlagBits2KHR::eHost ) |
13723         VkFlags64( PipelineStageFlagBits2KHR::eAllGraphics ) | VkFlags64( PipelineStageFlagBits2KHR::eAllCommands ) |
13724         VkFlags64( PipelineStageFlagBits2KHR::eCopy ) | VkFlags64( PipelineStageFlagBits2KHR::eResolve ) |
13725         VkFlags64( PipelineStageFlagBits2KHR::eBlit ) | VkFlags64( PipelineStageFlagBits2KHR::eClear ) |
13726         VkFlags64( PipelineStageFlagBits2KHR::eIndexInput ) |
13727         VkFlags64( PipelineStageFlagBits2KHR::eVertexAttributeInput ) |
13728         VkFlags64( PipelineStageFlagBits2KHR::ePreRasterizationShaders )
13729 #if defined( VK_ENABLE_BETA_EXTENSIONS )
13730         | VkFlags64( PipelineStageFlagBits2KHR::eVideoDecode ) | VkFlags64( PipelineStageFlagBits2KHR::eVideoEncode )
13731 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13732         | VkFlags64( PipelineStageFlagBits2KHR::eTransformFeedbackEXT ) |
13733         VkFlags64( PipelineStageFlagBits2KHR::eConditionalRenderingEXT ) |
13734         VkFlags64( PipelineStageFlagBits2KHR::eCommandPreprocessNV ) |
13735         VkFlags64( PipelineStageFlagBits2KHR::eFragmentShadingRateAttachment ) |
13736         VkFlags64( PipelineStageFlagBits2KHR::eAccelerationStructureBuild ) |
13737         VkFlags64( PipelineStageFlagBits2KHR::eRayTracingShader ) |
13738         VkFlags64( PipelineStageFlagBits2KHR::eFragmentDensityProcessEXT ) |
13739         VkFlags64( PipelineStageFlagBits2KHR::eTaskShaderNV ) | VkFlags64( PipelineStageFlagBits2KHR::eMeshShaderNV ) |
13740         VkFlags64( PipelineStageFlagBits2KHR::eSubpassShadingHUAWEI )
13741     };
13742   };
13743 
13744   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR
operator |(PipelineStageFlagBits2KHR bit0,PipelineStageFlagBits2KHR bit1)13745                                          operator|( PipelineStageFlagBits2KHR bit0, PipelineStageFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
13746   {
13747     return PipelineStageFlags2KHR( bit0 ) | bit1;
13748   }
13749 
13750   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR
operator &(PipelineStageFlagBits2KHR bit0,PipelineStageFlagBits2KHR bit1)13751                                          operator&(PipelineStageFlagBits2KHR bit0, PipelineStageFlagBits2KHR bit1)VULKAN_HPP_NOEXCEPT
13752   {
13753     return PipelineStageFlags2KHR( bit0 ) & bit1;
13754   }
13755 
13756   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR
operator ^(PipelineStageFlagBits2KHR bit0,PipelineStageFlagBits2KHR bit1)13757                                          operator^( PipelineStageFlagBits2KHR bit0, PipelineStageFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
13758   {
13759     return PipelineStageFlags2KHR( bit0 ) ^ bit1;
13760   }
13761 
operator ~(PipelineStageFlagBits2KHR bits)13762   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR operator~( PipelineStageFlagBits2KHR bits )
13763     VULKAN_HPP_NOEXCEPT
13764   {
13765     return ~( PipelineStageFlags2KHR( bits ) );
13766   }
13767 
to_string(PipelineStageFlags2KHR value)13768   VULKAN_HPP_INLINE std::string to_string( PipelineStageFlags2KHR value )
13769   {
13770     if ( !value )
13771       return "{}";
13772 
13773     std::string result;
13774     if ( value & PipelineStageFlagBits2KHR::eTopOfPipe )
13775       result += "TopOfPipe | ";
13776     if ( value & PipelineStageFlagBits2KHR::eDrawIndirect )
13777       result += "DrawIndirect | ";
13778     if ( value & PipelineStageFlagBits2KHR::eVertexInput )
13779       result += "VertexInput | ";
13780     if ( value & PipelineStageFlagBits2KHR::eVertexShader )
13781       result += "VertexShader | ";
13782     if ( value & PipelineStageFlagBits2KHR::eTessellationControlShader )
13783       result += "TessellationControlShader | ";
13784     if ( value & PipelineStageFlagBits2KHR::eTessellationEvaluationShader )
13785       result += "TessellationEvaluationShader | ";
13786     if ( value & PipelineStageFlagBits2KHR::eGeometryShader )
13787       result += "GeometryShader | ";
13788     if ( value & PipelineStageFlagBits2KHR::eFragmentShader )
13789       result += "FragmentShader | ";
13790     if ( value & PipelineStageFlagBits2KHR::eEarlyFragmentTests )
13791       result += "EarlyFragmentTests | ";
13792     if ( value & PipelineStageFlagBits2KHR::eLateFragmentTests )
13793       result += "LateFragmentTests | ";
13794     if ( value & PipelineStageFlagBits2KHR::eColorAttachmentOutput )
13795       result += "ColorAttachmentOutput | ";
13796     if ( value & PipelineStageFlagBits2KHR::eComputeShader )
13797       result += "ComputeShader | ";
13798     if ( value & PipelineStageFlagBits2KHR::eAllTransfer )
13799       result += "AllTransfer | ";
13800     if ( value & PipelineStageFlagBits2KHR::eBottomOfPipe )
13801       result += "BottomOfPipe | ";
13802     if ( value & PipelineStageFlagBits2KHR::eHost )
13803       result += "Host | ";
13804     if ( value & PipelineStageFlagBits2KHR::eAllGraphics )
13805       result += "AllGraphics | ";
13806     if ( value & PipelineStageFlagBits2KHR::eAllCommands )
13807       result += "AllCommands | ";
13808     if ( value & PipelineStageFlagBits2KHR::eCopy )
13809       result += "Copy | ";
13810     if ( value & PipelineStageFlagBits2KHR::eResolve )
13811       result += "Resolve | ";
13812     if ( value & PipelineStageFlagBits2KHR::eBlit )
13813       result += "Blit | ";
13814     if ( value & PipelineStageFlagBits2KHR::eClear )
13815       result += "Clear | ";
13816     if ( value & PipelineStageFlagBits2KHR::eIndexInput )
13817       result += "IndexInput | ";
13818     if ( value & PipelineStageFlagBits2KHR::eVertexAttributeInput )
13819       result += "VertexAttributeInput | ";
13820     if ( value & PipelineStageFlagBits2KHR::ePreRasterizationShaders )
13821       result += "PreRasterizationShaders | ";
13822 #if defined( VK_ENABLE_BETA_EXTENSIONS )
13823     if ( value & PipelineStageFlagBits2KHR::eVideoDecode )
13824       result += "VideoDecode | ";
13825     if ( value & PipelineStageFlagBits2KHR::eVideoEncode )
13826       result += "VideoEncode | ";
13827 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13828     if ( value & PipelineStageFlagBits2KHR::eTransformFeedbackEXT )
13829       result += "TransformFeedbackEXT | ";
13830     if ( value & PipelineStageFlagBits2KHR::eConditionalRenderingEXT )
13831       result += "ConditionalRenderingEXT | ";
13832     if ( value & PipelineStageFlagBits2KHR::eCommandPreprocessNV )
13833       result += "CommandPreprocessNV | ";
13834     if ( value & PipelineStageFlagBits2KHR::eFragmentShadingRateAttachment )
13835       result += "FragmentShadingRateAttachment | ";
13836     if ( value & PipelineStageFlagBits2KHR::eAccelerationStructureBuild )
13837       result += "AccelerationStructureBuild | ";
13838     if ( value & PipelineStageFlagBits2KHR::eRayTracingShader )
13839       result += "RayTracingShader | ";
13840     if ( value & PipelineStageFlagBits2KHR::eFragmentDensityProcessEXT )
13841       result += "FragmentDensityProcessEXT | ";
13842     if ( value & PipelineStageFlagBits2KHR::eTaskShaderNV )
13843       result += "TaskShaderNV | ";
13844     if ( value & PipelineStageFlagBits2KHR::eMeshShaderNV )
13845       result += "MeshShaderNV | ";
13846     if ( value & PipelineStageFlagBits2KHR::eSubpassShadingHUAWEI )
13847       result += "SubpassShadingHUAWEI | ";
13848     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13849   }
13850 
13851   using AccessFlags2KHR = Flags<AccessFlagBits2KHR>;
13852 
13853   template <>
13854   struct FlagTraits<AccessFlagBits2KHR>
13855   {
13856     enum : VkFlags64
13857     {
13858       allFlags =
13859         VkFlags64( AccessFlagBits2KHR::eNone ) | VkFlags64( AccessFlagBits2KHR::eIndirectCommandRead ) |
13860         VkFlags64( AccessFlagBits2KHR::eIndexRead ) | VkFlags64( AccessFlagBits2KHR::eVertexAttributeRead ) |
13861         VkFlags64( AccessFlagBits2KHR::eUniformRead ) | VkFlags64( AccessFlagBits2KHR::eInputAttachmentRead ) |
13862         VkFlags64( AccessFlagBits2KHR::eShaderRead ) | VkFlags64( AccessFlagBits2KHR::eShaderWrite ) |
13863         VkFlags64( AccessFlagBits2KHR::eColorAttachmentRead ) | VkFlags64( AccessFlagBits2KHR::eColorAttachmentWrite ) |
13864         VkFlags64( AccessFlagBits2KHR::eDepthStencilAttachmentRead ) |
13865         VkFlags64( AccessFlagBits2KHR::eDepthStencilAttachmentWrite ) | VkFlags64( AccessFlagBits2KHR::eTransferRead ) |
13866         VkFlags64( AccessFlagBits2KHR::eTransferWrite ) | VkFlags64( AccessFlagBits2KHR::eHostRead ) |
13867         VkFlags64( AccessFlagBits2KHR::eHostWrite ) | VkFlags64( AccessFlagBits2KHR::eMemoryRead ) |
13868         VkFlags64( AccessFlagBits2KHR::eMemoryWrite ) | VkFlags64( AccessFlagBits2KHR::eShaderSampledRead ) |
13869         VkFlags64( AccessFlagBits2KHR::eShaderStorageRead ) | VkFlags64( AccessFlagBits2KHR::eShaderStorageWrite )
13870 #if defined( VK_ENABLE_BETA_EXTENSIONS )
13871         | VkFlags64( AccessFlagBits2KHR::eVideoDecodeRead ) | VkFlags64( AccessFlagBits2KHR::eVideoDecodeWrite ) |
13872         VkFlags64( AccessFlagBits2KHR::eVideoEncodeRead ) | VkFlags64( AccessFlagBits2KHR::eVideoEncodeWrite )
13873 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13874         | VkFlags64( AccessFlagBits2KHR::eTransformFeedbackWriteEXT ) |
13875         VkFlags64( AccessFlagBits2KHR::eTransformFeedbackCounterReadEXT ) |
13876         VkFlags64( AccessFlagBits2KHR::eTransformFeedbackCounterWriteEXT ) |
13877         VkFlags64( AccessFlagBits2KHR::eConditionalRenderingReadEXT ) |
13878         VkFlags64( AccessFlagBits2KHR::eCommandPreprocessReadNV ) |
13879         VkFlags64( AccessFlagBits2KHR::eCommandPreprocessWriteNV ) |
13880         VkFlags64( AccessFlagBits2KHR::eFragmentShadingRateAttachmentRead ) |
13881         VkFlags64( AccessFlagBits2KHR::eAccelerationStructureRead ) |
13882         VkFlags64( AccessFlagBits2KHR::eAccelerationStructureWrite ) |
13883         VkFlags64( AccessFlagBits2KHR::eFragmentDensityMapReadEXT ) |
13884         VkFlags64( AccessFlagBits2KHR::eColorAttachmentReadNoncoherentEXT )
13885     };
13886   };
13887 
operator |(AccessFlagBits2KHR bit0,AccessFlagBits2KHR bit1)13888   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator|( AccessFlagBits2KHR bit0,
13889                                                                     AccessFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
13890   {
13891     return AccessFlags2KHR( bit0 ) | bit1;
13892   }
13893 
operator &(AccessFlagBits2KHR bit0,AccessFlagBits2KHR bit1)13894   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator&(AccessFlagBits2KHR bit0,
13895                                                                    AccessFlagBits2KHR bit1)VULKAN_HPP_NOEXCEPT
13896   {
13897     return AccessFlags2KHR( bit0 ) & bit1;
13898   }
13899 
operator ^(AccessFlagBits2KHR bit0,AccessFlagBits2KHR bit1)13900   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator^( AccessFlagBits2KHR bit0,
13901                                                                     AccessFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT
13902   {
13903     return AccessFlags2KHR( bit0 ) ^ bit1;
13904   }
13905 
operator ~(AccessFlagBits2KHR bits)13906   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator~( AccessFlagBits2KHR bits ) VULKAN_HPP_NOEXCEPT
13907   {
13908     return ~( AccessFlags2KHR( bits ) );
13909   }
13910 
to_string(AccessFlags2KHR value)13911   VULKAN_HPP_INLINE std::string to_string( AccessFlags2KHR value )
13912   {
13913     if ( !value )
13914       return "{}";
13915 
13916     std::string result;
13917     if ( value & AccessFlagBits2KHR::eIndirectCommandRead )
13918       result += "IndirectCommandRead | ";
13919     if ( value & AccessFlagBits2KHR::eIndexRead )
13920       result += "IndexRead | ";
13921     if ( value & AccessFlagBits2KHR::eVertexAttributeRead )
13922       result += "VertexAttributeRead | ";
13923     if ( value & AccessFlagBits2KHR::eUniformRead )
13924       result += "UniformRead | ";
13925     if ( value & AccessFlagBits2KHR::eInputAttachmentRead )
13926       result += "InputAttachmentRead | ";
13927     if ( value & AccessFlagBits2KHR::eShaderRead )
13928       result += "ShaderRead | ";
13929     if ( value & AccessFlagBits2KHR::eShaderWrite )
13930       result += "ShaderWrite | ";
13931     if ( value & AccessFlagBits2KHR::eColorAttachmentRead )
13932       result += "ColorAttachmentRead | ";
13933     if ( value & AccessFlagBits2KHR::eColorAttachmentWrite )
13934       result += "ColorAttachmentWrite | ";
13935     if ( value & AccessFlagBits2KHR::eDepthStencilAttachmentRead )
13936       result += "DepthStencilAttachmentRead | ";
13937     if ( value & AccessFlagBits2KHR::eDepthStencilAttachmentWrite )
13938       result += "DepthStencilAttachmentWrite | ";
13939     if ( value & AccessFlagBits2KHR::eTransferRead )
13940       result += "TransferRead | ";
13941     if ( value & AccessFlagBits2KHR::eTransferWrite )
13942       result += "TransferWrite | ";
13943     if ( value & AccessFlagBits2KHR::eHostRead )
13944       result += "HostRead | ";
13945     if ( value & AccessFlagBits2KHR::eHostWrite )
13946       result += "HostWrite | ";
13947     if ( value & AccessFlagBits2KHR::eMemoryRead )
13948       result += "MemoryRead | ";
13949     if ( value & AccessFlagBits2KHR::eMemoryWrite )
13950       result += "MemoryWrite | ";
13951     if ( value & AccessFlagBits2KHR::eShaderSampledRead )
13952       result += "ShaderSampledRead | ";
13953     if ( value & AccessFlagBits2KHR::eShaderStorageRead )
13954       result += "ShaderStorageRead | ";
13955     if ( value & AccessFlagBits2KHR::eShaderStorageWrite )
13956       result += "ShaderStorageWrite | ";
13957 #if defined( VK_ENABLE_BETA_EXTENSIONS )
13958     if ( value & AccessFlagBits2KHR::eVideoDecodeRead )
13959       result += "VideoDecodeRead | ";
13960     if ( value & AccessFlagBits2KHR::eVideoDecodeWrite )
13961       result += "VideoDecodeWrite | ";
13962     if ( value & AccessFlagBits2KHR::eVideoEncodeRead )
13963       result += "VideoEncodeRead | ";
13964     if ( value & AccessFlagBits2KHR::eVideoEncodeWrite )
13965       result += "VideoEncodeWrite | ";
13966 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
13967     if ( value & AccessFlagBits2KHR::eTransformFeedbackWriteEXT )
13968       result += "TransformFeedbackWriteEXT | ";
13969     if ( value & AccessFlagBits2KHR::eTransformFeedbackCounterReadEXT )
13970       result += "TransformFeedbackCounterReadEXT | ";
13971     if ( value & AccessFlagBits2KHR::eTransformFeedbackCounterWriteEXT )
13972       result += "TransformFeedbackCounterWriteEXT | ";
13973     if ( value & AccessFlagBits2KHR::eConditionalRenderingReadEXT )
13974       result += "ConditionalRenderingReadEXT | ";
13975     if ( value & AccessFlagBits2KHR::eCommandPreprocessReadNV )
13976       result += "CommandPreprocessReadNV | ";
13977     if ( value & AccessFlagBits2KHR::eCommandPreprocessWriteNV )
13978       result += "CommandPreprocessWriteNV | ";
13979     if ( value & AccessFlagBits2KHR::eFragmentShadingRateAttachmentRead )
13980       result += "FragmentShadingRateAttachmentRead | ";
13981     if ( value & AccessFlagBits2KHR::eAccelerationStructureRead )
13982       result += "AccelerationStructureRead | ";
13983     if ( value & AccessFlagBits2KHR::eAccelerationStructureWrite )
13984       result += "AccelerationStructureWrite | ";
13985     if ( value & AccessFlagBits2KHR::eFragmentDensityMapReadEXT )
13986       result += "FragmentDensityMapReadEXT | ";
13987     if ( value & AccessFlagBits2KHR::eColorAttachmentReadNoncoherentEXT )
13988       result += "ColorAttachmentReadNoncoherentEXT | ";
13989     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
13990   }
13991 
13992   using SubmitFlagsKHR = Flags<SubmitFlagBitsKHR>;
13993 
13994   template <>
13995   struct FlagTraits<SubmitFlagBitsKHR>
13996   {
13997     enum : VkFlags
13998     {
13999       allFlags = VkFlags( SubmitFlagBitsKHR::eProtected )
14000     };
14001   };
14002 
operator |(SubmitFlagBitsKHR bit0,SubmitFlagBitsKHR bit1)14003   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator|( SubmitFlagBitsKHR bit0,
14004                                                                    SubmitFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14005   {
14006     return SubmitFlagsKHR( bit0 ) | bit1;
14007   }
14008 
operator &(SubmitFlagBitsKHR bit0,SubmitFlagBitsKHR bit1)14009   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator&(SubmitFlagBitsKHR bit0,
14010                                                                   SubmitFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT
14011   {
14012     return SubmitFlagsKHR( bit0 ) & bit1;
14013   }
14014 
operator ^(SubmitFlagBitsKHR bit0,SubmitFlagBitsKHR bit1)14015   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator^( SubmitFlagBitsKHR bit0,
14016                                                                    SubmitFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
14017   {
14018     return SubmitFlagsKHR( bit0 ) ^ bit1;
14019   }
14020 
operator ~(SubmitFlagBitsKHR bits)14021   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator~( SubmitFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
14022   {
14023     return ~( SubmitFlagsKHR( bits ) );
14024   }
14025 
to_string(SubmitFlagsKHR value)14026   VULKAN_HPP_INLINE std::string to_string( SubmitFlagsKHR value )
14027   {
14028     if ( !value )
14029       return "{}";
14030 
14031     std::string result;
14032     if ( value & SubmitFlagBitsKHR::eProtected )
14033       result += "Protected | ";
14034     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
14035   }
14036 
14037   //=== VK_NV_ray_tracing_motion_blur ===
14038 
14039   using AccelerationStructureMotionInfoFlagsNV = Flags<AccelerationStructureMotionInfoFlagBitsNV>;
14040 
to_string(AccelerationStructureMotionInfoFlagsNV)14041   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMotionInfoFlagsNV )
14042   {
14043     return "{}";
14044   }
14045 
14046   using AccelerationStructureMotionInstanceFlagsNV = Flags<AccelerationStructureMotionInstanceFlagBitsNV>;
14047 
to_string(AccelerationStructureMotionInstanceFlagsNV)14048   VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMotionInstanceFlagsNV )
14049   {
14050     return "{}";
14051   }
14052 
14053 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
14054   //=== VK_EXT_directfb_surface ===
14055 
14056   using DirectFBSurfaceCreateFlagsEXT = Flags<DirectFBSurfaceCreateFlagBitsEXT>;
14057 
to_string(DirectFBSurfaceCreateFlagsEXT)14058   VULKAN_HPP_INLINE std::string to_string( DirectFBSurfaceCreateFlagsEXT )
14059   {
14060     return "{}";
14061   }
14062 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
14063 
14064 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
14065   //=== VK_QNX_screen_surface ===
14066 
14067   using ScreenSurfaceCreateFlagsQNX = Flags<ScreenSurfaceCreateFlagBitsQNX>;
14068 
to_string(ScreenSurfaceCreateFlagsQNX)14069   VULKAN_HPP_INLINE std::string to_string( ScreenSurfaceCreateFlagsQNX )
14070   {
14071     return "{}";
14072   }
14073 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
14074 
14075 }  // namespace VULKAN_HPP_NAMESPACE
14076 #endif
14077