• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/* WARNING: This is auto-generated file. Do not modify, since changes will
2 * be lost! Modify the generating script instead.
3 * This file was generated by /scripts/gen_framework.py
4 */
5template<> const char*	getTypeName<VkBuffer>							(void) { return "VkBuffer";							}
6template<> const char*	getTypeName<VkImage>							(void) { return "VkImage";							}
7template<> const char*	getTypeName<VkInstance>							(void) { return "VkInstance";						}
8template<> const char*	getTypeName<VkPhysicalDevice>					(void) { return "VkPhysicalDevice";					}
9template<> const char*	getTypeName<VkDevice>							(void) { return "VkDevice";							}
10template<> const char*	getTypeName<VkQueue>							(void) { return "VkQueue";							}
11template<> const char*	getTypeName<VkSemaphore>						(void) { return "VkSemaphore";						}
12template<> const char*	getTypeName<VkCommandBuffer>					(void) { return "VkCommandBuffer";					}
13template<> const char*	getTypeName<VkFence>							(void) { return "VkFence";							}
14template<> const char*	getTypeName<VkDeviceMemory>						(void) { return "VkDeviceMemory";					}
15template<> const char*	getTypeName<VkEvent>							(void) { return "VkEvent";							}
16template<> const char*	getTypeName<VkQueryPool>						(void) { return "VkQueryPool";						}
17template<> const char*	getTypeName<VkBufferView>						(void) { return "VkBufferView";						}
18template<> const char*	getTypeName<VkImageView>						(void) { return "VkImageView";						}
19template<> const char*	getTypeName<VkShaderModule>						(void) { return "VkShaderModule";					}
20template<> const char*	getTypeName<VkPipelineCache>					(void) { return "VkPipelineCache";					}
21template<> const char*	getTypeName<VkPipelineLayout>					(void) { return "VkPipelineLayout";					}
22template<> const char*	getTypeName<VkPipeline>							(void) { return "VkPipeline";						}
23template<> const char*	getTypeName<VkRenderPass>						(void) { return "VkRenderPass";						}
24template<> const char*	getTypeName<VkDescriptorSetLayout>				(void) { return "VkDescriptorSetLayout";			}
25template<> const char*	getTypeName<VkSampler>							(void) { return "VkSampler";						}
26template<> const char*	getTypeName<VkDescriptorSet>					(void) { return "VkDescriptorSet";					}
27template<> const char*	getTypeName<VkDescriptorPool>					(void) { return "VkDescriptorPool";					}
28template<> const char*	getTypeName<VkFramebuffer>						(void) { return "VkFramebuffer";					}
29template<> const char*	getTypeName<VkCommandPool>						(void) { return "VkCommandPool";					}
30template<> const char*	getTypeName<VkSamplerYcbcrConversion>			(void) { return "VkSamplerYcbcrConversion";			}
31template<> const char*	getTypeName<VkDescriptorUpdateTemplate>			(void) { return "VkDescriptorUpdateTemplate";		}
32template<> const char*	getTypeName<VkPrivateDataSlot>					(void) { return "VkPrivateDataSlot";				}
33template<> const char*	getTypeName<VkSurfaceKHR>						(void) { return "VkSurfaceKHR";						}
34template<> const char*	getTypeName<VkSwapchainKHR>						(void) { return "VkSwapchainKHR";					}
35template<> const char*	getTypeName<VkDisplayKHR>						(void) { return "VkDisplayKHR";						}
36template<> const char*	getTypeName<VkDisplayModeKHR>					(void) { return "VkDisplayModeKHR";					}
37template<> const char*	getTypeName<VkDeferredOperationKHR>				(void) { return "VkDeferredOperationKHR";			}
38template<> const char*	getTypeName<VkDebugReportCallbackEXT>			(void) { return "VkDebugReportCallbackEXT";			}
39template<> const char*	getTypeName<VkCuModuleNVX>						(void) { return "VkCuModuleNVX";					}
40template<> const char*	getTypeName<VkCuFunctionNVX>					(void) { return "VkCuFunctionNVX";					}
41template<> const char*	getTypeName<VkDebugUtilsMessengerEXT>			(void) { return "VkDebugUtilsMessengerEXT";			}
42template<> const char*	getTypeName<VkValidationCacheEXT>				(void) { return "VkValidationCacheEXT";				}
43template<> const char*	getTypeName<VkAccelerationStructureNV>			(void) { return "VkAccelerationStructureNV";		}
44template<> const char*	getTypeName<VkPerformanceConfigurationINTEL>	(void) { return "VkPerformanceConfigurationINTEL";	}
45template<> const char*	getTypeName<VkIndirectCommandsLayoutNV>			(void) { return "VkIndirectCommandsLayoutNV";		}
46template<> const char*	getTypeName<VkAccelerationStructureKHR>			(void) { return "VkAccelerationStructureKHR";		}
47template<> const char*	getTypeName<VkVideoSessionKHR>					(void) { return "VkVideoSessionKHR";				}
48template<> const char*	getTypeName<VkVideoSessionParametersKHR>		(void) { return "VkVideoSessionParametersKHR";		}
49template<> const char*	getTypeName<VkBufferCollectionFUCHSIA>			(void) { return "VkBufferCollectionFUCHSIA";		}
50
51namespace pt
52{
53std::ostream& operator<< (std::ostream& s, XlibDisplayPtr				v) { return s << tcu::toHex(v.internal); }
54std::ostream& operator<< (std::ostream& s, XlibWindow					v) { return s << tcu::toHex(v.internal); }
55std::ostream& operator<< (std::ostream& s, XlibVisualID					v) { return s << tcu::toHex(v.internal); }
56std::ostream& operator<< (std::ostream& s, XcbConnectionPtr				v) { return s << tcu::toHex(v.internal); }
57std::ostream& operator<< (std::ostream& s, XcbWindow					v) { return s << tcu::toHex(v.internal); }
58std::ostream& operator<< (std::ostream& s, XcbVisualid					v) { return s << tcu::toHex(v.internal); }
59std::ostream& operator<< (std::ostream& s, WaylandDisplayPtr			v) { return s << tcu::toHex(v.internal); }
60std::ostream& operator<< (std::ostream& s, WaylandSurfacePtr			v) { return s << tcu::toHex(v.internal); }
61std::ostream& operator<< (std::ostream& s, MirConnectionPtr				v) { return s << tcu::toHex(v.internal); }
62std::ostream& operator<< (std::ostream& s, MirSurfacePtr				v) { return s << tcu::toHex(v.internal); }
63std::ostream& operator<< (std::ostream& s, AndroidNativeWindowPtr		v) { return s << tcu::toHex(v.internal); }
64std::ostream& operator<< (std::ostream& s, Win32InstanceHandle			v) { return s << tcu::toHex(v.internal); }
65std::ostream& operator<< (std::ostream& s, Win32WindowHandle			v) { return s << tcu::toHex(v.internal); }
66std::ostream& operator<< (std::ostream& s, Win32Handle					v) { return s << tcu::toHex(v.internal); }
67std::ostream& operator<< (std::ostream& s, Win32SecurityAttributesPtr	v) { return s << tcu::toHex(v.internal); }
68std::ostream& operator<< (std::ostream& s, AndroidHardwareBufferPtr		v) { return s << tcu::toHex(v.internal); }
69std::ostream& operator<< (std::ostream& s, Win32MonitorHandle			v) { return s << tcu::toHex(v.internal); }
70std::ostream& operator<< (std::ostream& s, Win32LPCWSTR					v) { return s << tcu::toHex(v.internal); }
71std::ostream& operator<< (std::ostream& s, RROutput						v) { return s << tcu::toHex(v.internal); }
72std::ostream& operator<< (std::ostream& s, zx_handle_t					v) { return s << tcu::toHex(v.internal); }
73std::ostream& operator<< (std::ostream& s, GgpFrameToken				v) { return s << tcu::toHex(v.internal); }
74std::ostream& operator<< (std::ostream& s, GgpStreamDescriptor			v) { return s << tcu::toHex(v.internal); }
75std::ostream& operator<< (std::ostream& s, CAMetalLayer					v) { return s << tcu::toHex(v.internal); }
76}
77
78const char* getResultName (VkResult value)
79{
80	switch (value)
81	{
82		case VK_SUCCESS:											return "VK_SUCCESS";
83		case VK_NOT_READY:											return "VK_NOT_READY";
84		case VK_TIMEOUT:											return "VK_TIMEOUT";
85		case VK_EVENT_SET:											return "VK_EVENT_SET";
86		case VK_EVENT_RESET:										return "VK_EVENT_RESET";
87		case VK_INCOMPLETE:											return "VK_INCOMPLETE";
88		case VK_ERROR_OUT_OF_HOST_MEMORY:							return "VK_ERROR_OUT_OF_HOST_MEMORY";
89		case VK_ERROR_OUT_OF_DEVICE_MEMORY:							return "VK_ERROR_OUT_OF_DEVICE_MEMORY";
90		case VK_ERROR_INITIALIZATION_FAILED:						return "VK_ERROR_INITIALIZATION_FAILED";
91		case VK_ERROR_DEVICE_LOST:									return "VK_ERROR_DEVICE_LOST";
92		case VK_ERROR_MEMORY_MAP_FAILED:							return "VK_ERROR_MEMORY_MAP_FAILED";
93		case VK_ERROR_LAYER_NOT_PRESENT:							return "VK_ERROR_LAYER_NOT_PRESENT";
94		case VK_ERROR_EXTENSION_NOT_PRESENT:						return "VK_ERROR_EXTENSION_NOT_PRESENT";
95		case VK_ERROR_FEATURE_NOT_PRESENT:							return "VK_ERROR_FEATURE_NOT_PRESENT";
96		case VK_ERROR_INCOMPATIBLE_DRIVER:							return "VK_ERROR_INCOMPATIBLE_DRIVER";
97		case VK_ERROR_TOO_MANY_OBJECTS:								return "VK_ERROR_TOO_MANY_OBJECTS";
98		case VK_ERROR_FORMAT_NOT_SUPPORTED:							return "VK_ERROR_FORMAT_NOT_SUPPORTED";
99		case VK_ERROR_FRAGMENTED_POOL:								return "VK_ERROR_FRAGMENTED_POOL";
100		case VK_ERROR_UNKNOWN:										return "VK_ERROR_UNKNOWN";
101		case VK_ERROR_OUT_OF_POOL_MEMORY:							return "VK_ERROR_OUT_OF_POOL_MEMORY";
102		case VK_ERROR_INVALID_EXTERNAL_HANDLE:						return "VK_ERROR_INVALID_EXTERNAL_HANDLE";
103		case VK_ERROR_FRAGMENTATION:								return "VK_ERROR_FRAGMENTATION";
104		case VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS:				return "VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS";
105		case VK_PIPELINE_COMPILE_REQUIRED:							return "VK_PIPELINE_COMPILE_REQUIRED";
106		case VK_ERROR_SURFACE_LOST_KHR:								return "VK_ERROR_SURFACE_LOST_KHR";
107		case VK_ERROR_NATIVE_WINDOW_IN_USE_KHR:						return "VK_ERROR_NATIVE_WINDOW_IN_USE_KHR";
108		case VK_SUBOPTIMAL_KHR:										return "VK_SUBOPTIMAL_KHR";
109		case VK_ERROR_OUT_OF_DATE_KHR:								return "VK_ERROR_OUT_OF_DATE_KHR";
110		case VK_ERROR_INCOMPATIBLE_DISPLAY_KHR:						return "VK_ERROR_INCOMPATIBLE_DISPLAY_KHR";
111		case VK_ERROR_VALIDATION_FAILED_EXT:						return "VK_ERROR_VALIDATION_FAILED_EXT";
112		case VK_ERROR_INVALID_SHADER_NV:							return "VK_ERROR_INVALID_SHADER_NV";
113		case VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT:	return "VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT";
114		case VK_ERROR_NOT_PERMITTED_KHR:							return "VK_ERROR_NOT_PERMITTED_KHR";
115		case VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT:			return "VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT";
116		case VK_THREAD_IDLE_KHR:									return "VK_THREAD_IDLE_KHR";
117		case VK_THREAD_DONE_KHR:									return "VK_THREAD_DONE_KHR";
118		case VK_OPERATION_DEFERRED_KHR:								return "VK_OPERATION_DEFERRED_KHR";
119		case VK_OPERATION_NOT_DEFERRED_KHR:							return "VK_OPERATION_NOT_DEFERRED_KHR";
120		case VK_RESULT_MAX_ENUM:									return "VK_RESULT_MAX_ENUM";
121		default:													return DE_NULL;
122	}
123}
124
125const char* getStructureTypeName (VkStructureType value)
126{
127	switch (value)
128	{
129		case VK_STRUCTURE_TYPE_APPLICATION_INFO:													return "VK_STRUCTURE_TYPE_APPLICATION_INFO";
130		case VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO:												return "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO";
131		case VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO";
132		case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO:													return "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO";
133		case VK_STRUCTURE_TYPE_SUBMIT_INFO:															return "VK_STRUCTURE_TYPE_SUBMIT_INFO";
134		case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO:												return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO";
135		case VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE:													return "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE";
136		case VK_STRUCTURE_TYPE_BIND_SPARSE_INFO:													return "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO";
137		case VK_STRUCTURE_TYPE_FENCE_CREATE_INFO:													return "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO";
138		case VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO:												return "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO";
139		case VK_STRUCTURE_TYPE_EVENT_CREATE_INFO:													return "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO";
140		case VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO:												return "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO";
141		case VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO:													return "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO";
142		case VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO:												return "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO";
143		case VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO:													return "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO";
144		case VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO:												return "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO";
145		case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO";
146		case VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO";
147		case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO";
148		case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO";
149		case VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO:							return "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO";
150		case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO";
151		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO";
152		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO:							return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO";
153		case VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO";
154		case VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO:							return "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO";
155		case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO";
156		case VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO";
157		case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO";
158		case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO";
159		case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO:											return "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO";
160		case VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO:													return "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO";
161		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO:									return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO";
162		case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO:											return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO";
163		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO:										return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO";
164		case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET:												return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET";
165		case VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET:													return "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET";
166		case VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO:												return "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO";
167		case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO:												return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO";
168		case VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO:											return "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO";
169		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO:										return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO";
170		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO:										return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO";
171		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO:											return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO";
172		case VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO:												return "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO";
173		case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER:												return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER";
174		case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER:												return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER";
175		case VK_STRUCTURE_TYPE_MEMORY_BARRIER:														return "VK_STRUCTURE_TYPE_MEMORY_BARRIER";
176		case VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO";
177		case VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO";
178		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES";
179		case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO:												return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO";
180		case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO:												return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO";
181		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES";
182		case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:										return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS";
183		case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:										return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO";
184		case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:											return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO";
185		case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:									return "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO";
186		case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:								return "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO";
187		case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO:											return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO";
188		case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO:										return "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO";
189		case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:								return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO";
190		case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:									return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO";
191		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES";
192		case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO";
193		case VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2:									return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2";
194		case VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2:									return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2";
195		case VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2:								return "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2";
196		case VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2:												return "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2";
197		case VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2:									return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2";
198		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:											return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2";
199		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2:										return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2";
200		case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2:													return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2";
201		case VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2:											return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2";
202		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2";
203		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2:											return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2";
204		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2";
205		case VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2:									return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2";
206		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2";
207		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES";
208		case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:						return "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO";
209		case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO";
210		case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO:				return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO";
211		case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:									return "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO";
212		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES";
213		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES";
214		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES";
215		case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO:												return "VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO";
216		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES";
217		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES";
218		case VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2:													return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2";
219		case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO:								return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO";
220		case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:										return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO";
221		case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:										return "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO";
222		case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:								return "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO";
223		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES";
224		case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:					return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES";
225		case VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO";
226		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO";
227		case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:									return "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES";
228		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO";
229		case VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES:											return "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES";
230		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:										return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES";
231		case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:									return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO";
232		case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO";
233		case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:											return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO";
234		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO";
235		case VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES:											return "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES";
236		case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO";
237		case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO";
238		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO";
239		case VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES:										return "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES";
240		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES";
241		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT:										return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT";
242		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES";
243		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES";
244		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES";
245		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES";
246		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES";
247		case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:										return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO";
248		case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2:											return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2";
249		case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2:												return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2";
250		case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2:												return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2";
251		case VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2:												return "VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2";
252		case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2:											return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2";
253		case VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO:													return "VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO";
254		case VK_STRUCTURE_TYPE_SUBPASS_END_INFO:													return "VK_STRUCTURE_TYPE_SUBPASS_END_INFO";
255		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES";
256		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES";
257		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES";
258		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES";
259		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES";
260		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:						return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO";
261		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES";
262		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES";
263		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:				return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO";
264		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:				return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT";
265		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES";
266		case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:							return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE";
267		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES";
268		case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO";
269		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES";
270		case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO";
271		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES";
272		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES";
273		case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:									return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO";
274		case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO:									return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO";
275		case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:									return "VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO";
276		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES";
277		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES";
278		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES";
279		case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:									return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT";
280		case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:								return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT";
281		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES";
282		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES";
283		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES";
284		case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO";
285		case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:										return "VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO";
286		case VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO:													return "VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO";
287		case VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO:												return "VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO";
288		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES";
289		case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO:											return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO";
290		case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:							return "VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO";
291		case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:							return "VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO";
292		case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO:							return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO";
293		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES";
294		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES";
295		case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO:								return "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO";
296		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES";
297		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES:										return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES";
298		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES";
299		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES";
300		case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO:										return "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO";
301		case VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO:										return "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO";
302		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES";
303		case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2:													return "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2";
304		case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2:												return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2";
305		case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2:												return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2";
306		case VK_STRUCTURE_TYPE_DEPENDENCY_INFO:														return "VK_STRUCTURE_TYPE_DEPENDENCY_INFO";
307		case VK_STRUCTURE_TYPE_SUBMIT_INFO_2:														return "VK_STRUCTURE_TYPE_SUBMIT_INFO_2";
308		case VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO:												return "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO";
309		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO:											return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO";
310		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES";
311		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES";
312		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES";
313		case VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2:													return "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2";
314		case VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2:													return "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2";
315		case VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2:											return "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2";
316		case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2:											return "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2";
317		case VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2:													return "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2";
318		case VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2:												return "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2";
319		case VK_STRUCTURE_TYPE_BUFFER_COPY_2:														return "VK_STRUCTURE_TYPE_BUFFER_COPY_2";
320		case VK_STRUCTURE_TYPE_IMAGE_COPY_2:														return "VK_STRUCTURE_TYPE_IMAGE_COPY_2";
321		case VK_STRUCTURE_TYPE_IMAGE_BLIT_2:														return "VK_STRUCTURE_TYPE_IMAGE_BLIT_2";
322		case VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2:													return "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2";
323		case VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2:														return "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2";
324		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES";
325		case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO:			return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO";
326		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES";
327		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES";
328		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES";
329		case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK:							return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK";
330		case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO:					return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO";
331		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES";
332		case VK_STRUCTURE_TYPE_RENDERING_INFO:														return "VK_STRUCTURE_TYPE_RENDERING_INFO";
333		case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO:											return "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO";
334		case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO:										return "VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO";
335		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES";
336		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO:							return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO";
337		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES";
338		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES";
339		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES";
340		case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3:													return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3";
341		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES";
342		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES";
343		case VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS:									return "VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS";
344		case VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS:									return "VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS";
345		case VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR:											return "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR";
346		case VK_STRUCTURE_TYPE_PRESENT_INFO_KHR:													return "VK_STRUCTURE_TYPE_PRESENT_INFO_KHR";
347		case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR:								return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR";
348		case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR";
349		case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR:								return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR";
350		case VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR:											return "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR";
351		case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR:										return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR";
352		case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR:								return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR";
353		case VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR";
354		case VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR";
355		case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:											return "VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR";
356		case VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR";
357		case VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR:											return "VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR";
358		case VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR";
359		case VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR";
360		case VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR";
361		case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT";
362		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD:				return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD";
363		case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT:									return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT";
364		case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT:									return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT";
365		case VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT:										return "VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT";
366		case VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR:													return "VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR";
367		case VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR:												return "VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR";
368		case VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR";
369		case VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR";
370		case VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR:												return "VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR";
371		case VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR";
372		case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR";
373		case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR";
374		case VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR";
375		case VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR";
376		case VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR";
377		case VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR";
378		case VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR";
379		case VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR:													return "VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR";
380		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR";
381		case VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR";
382		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR:					return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR";
383		case VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR:												return "VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR";
384		case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV:							return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV";
385		case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV:							return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV";
386		case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV:						return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV";
387		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT";
388		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT";
389		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT";
390		case VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX:											return "VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX";
391		case VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX:											return "VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX";
392		case VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX:													return "VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX";
393		case VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX:											return "VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX";
394		case VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX:									return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX";
395		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT";
396		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT:							return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT";
397		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT";
398		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:					return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT";
399		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT:								return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT";
400		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT";
401		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT";
402		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT";
403		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT:										return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT";
404		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT:								return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT";
405		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT";
406		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT";
407		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT:							return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT";
408		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT";
409		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:					return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT";
410		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT:								return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT";
411		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT";
412		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_EXT:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_EXT";
413		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT";
414		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT:										return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT";
415		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT:								return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT";
416		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT:								return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT";
417		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT";
418		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT";
419		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT:							return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT";
420		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT";
421		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT:											return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT";
422		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT:										return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT";
423		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT";
424		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:					return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT";
425		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT";
426		case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:							return "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD";
427		case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:					return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR";
428		case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT:					return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT";
429		case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD:									return "VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD";
430		case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX:								return "VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX";
431		case VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP:							return "VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP";
432		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV";
433		case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:								return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV";
434		case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV:										return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV";
435		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV:									return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV";
436		case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV:									return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV";
437		case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV:							return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV";
438		case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT:												return "VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT";
439		case VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN:											return "VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN";
440		case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:										return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT";
441		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT";
442		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
443		case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
444		case VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR:									return "VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR";
445		case VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR";
446		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR:											return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR";
447		case VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR:											return "VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR";
448		case VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR:												return "VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR";
449		case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR:							return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR";
450		case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:								return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
451		case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:								return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
452		case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR:											return "VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR";
453		case VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR";
454		case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR:										return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR";
455		case VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR:											return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR";
456		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR";
457		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT:			return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT";
458		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT";
459		case VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT:								return "VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT";
460		case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:													return "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR";
461		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV:					return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV";
462		case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT:											return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT";
463		case VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT:												return "VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT";
464		case VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT:												return "VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT";
465		case VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT:												return "VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT";
466		case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT";
467		case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE:											return "VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE";
468		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX";
469		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV:						return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV";
470		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT";
471		case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT";
472		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT";
473		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:			return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT";
474		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT";
475		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT";
476		case VK_STRUCTURE_TYPE_HDR_METADATA_EXT:													return "VK_STRUCTURE_TYPE_HDR_METADATA_EXT";
477		case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR:								return "VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR";
478		case VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR";
479		case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR";
480		case VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR:										return "VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR";
481		case VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR:											return "VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR";
482		case VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR:												return "VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR";
483		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR";
484		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR";
485		case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:								return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR";
486		case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:									return "VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR";
487		case VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR:										return "VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR";
488		case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR:												return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR";
489		case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR:									return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR";
490		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR";
491		case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR:											return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR";
492		case VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR:												return "VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR";
493		case VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR:											return "VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR";
494		case VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR:										return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR";
495		case VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR:										return "VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR";
496		case VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR:											return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR";
497		case VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR:									return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR";
498		case VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK:											return "VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK";
499		case VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK:										return "VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK";
500		case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT:									return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT";
501		case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT:										return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT";
502		case VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT:												return "VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT";
503		case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT:								return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT";
504		case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT";
505		case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:								return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID";
506		case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID:							return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID";
507		case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID:					return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID";
508		case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:							return "VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
509		case VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:						return "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
510		case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID:												return "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID";
511		case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID:					return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID";
512		case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:											return "VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT";
513		case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT:							return "VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT";
514		case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT";
515		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT";
516		case VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT:											return "VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT";
517		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT";
518		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT";
519		case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT";
520		case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV:						return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV";
521		case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:						return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR";
522		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR:						return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR";
523		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR:						return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR";
524		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR:						return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR";
525		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR:					return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR";
526		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR:					return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR";
527		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR:									return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR";
528		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR:								return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR";
529		case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR:								return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR";
530		case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR:						return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR";
531		case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR:						return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR";
532		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR";
533		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR";
534		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR:								return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR";
535		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR:							return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR";
536		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR";
537		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR";
538		case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR:								return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR";
539		case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR";
540		case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR:						return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR";
541		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR";
542		case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV:					return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV";
543		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV";
544		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV";
545		case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:								return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT";
546		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT";
547		case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT";
548		case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT";
549		case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT:							return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT";
550		case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:							return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT";
551		case VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT";
552		case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT";
553		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR";
554		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR";
555		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV:			return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV";
556		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV";
557		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV";
558		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV:			return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV";
559		case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV:									return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV";
560		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV:								return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV";
561		case VK_STRUCTURE_TYPE_GEOMETRY_NV:															return "VK_STRUCTURE_TYPE_GEOMETRY_NV";
562		case VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV:												return "VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV";
563		case VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV:													return "VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV";
564		case VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV:							return "VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV";
565		case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:						return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV";
566		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV:					return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV";
567		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV";
568		case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV:								return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV";
569		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV:										return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV";
570		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV";
571		case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:			return "VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV";
572		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT";
573		case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT";
574		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:									return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT";
575		case VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT:									return "VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT";
576		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT";
577		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR";
578		case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:							return "VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD";
579		case VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT:										return "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT";
580		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD";
581		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT";
582		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT:							return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT";
583		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT";
584		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:					return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT";
585		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT:										return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT";
586		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT";
587		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT";
588		case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR:						return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR";
589		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR";
590		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR:							return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR";
591		case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:						return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD";
592		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT";
593		case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT";
594		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT";
595		case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:												return "VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP";
596		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV";
597		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV";
598		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV";
599		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV";
600		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV";
601		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:			return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV";
602		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV";
603		case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV:													return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV";
604		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:								return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV";
605		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL";
606		case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:						return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL";
607		case VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL:								return "VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL";
608		case VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL:										return "VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL";
609		case VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL:								return "VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL";
610		case VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL:										return "VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL";
611		case VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL:						return "VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL";
612		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT";
613		case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:							return "VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD";
614		case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:						return "VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD";
615		case VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA:								return "VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA";
616		case VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT:										return "VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT";
617		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT";
618		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT";
619		case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT";
620		case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:							return "VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR";
621		case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:				return "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR";
622		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR";
623		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR";
624		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR";
625		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD";
626		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD";
627		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT";
628		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT";
629		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT";
630		case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT";
631		case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:									return "VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR";
632		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV";
633		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT";
634		case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT";
635		case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:												return "VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT";
636		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR";
637		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV";
638		case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV:									return "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV";
639		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV";
640		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV";
641		case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:					return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV";
642		case VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV:							return "VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV";
643		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT";
644		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT";
645		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT";
646		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:		return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT";
647		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT";
648		case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:								return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT";
649		case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:						return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT";
650		case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:						return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT";
651		case VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT";
652		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT";
653		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT";
654		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT";
655		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT";
656		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT";
657		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT";
658		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR";
659		case VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR:													return "VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR";
660		case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR:									return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR";
661		case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR:										return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR";
662		case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR:									return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR";
663		case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR:						return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR";
664		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT";
665		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV";
666		case VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV:								return "VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV";
667		case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:						return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV";
668		case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV:									return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV";
669		case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV:								return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV";
670		case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV:											return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV";
671		case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV:						return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV";
672		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV";
673		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV";
674		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:					return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV";
675		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT";
676		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:			return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM";
677		case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:								return "VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM";
678		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT";
679		case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:							return "VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT";
680		case VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT:								return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT";
681		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT";
682		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT";
683		case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:							return "VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT";
684		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT";
685		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT";
686		case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR:									return "VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR";
687		case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:														return "VK_STRUCTURE_TYPE_PRESENT_ID_KHR";
688		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR";
689		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR:												return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR";
690		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR";
691		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR:							return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR";
692		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV";
693		case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:							return "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV";
694		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:								return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV";
695		case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV:												return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV";
696		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR:	return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR";
697		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV";
698		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV";
699		case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV:			return "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV";
700		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV:			return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV";
701		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV";
702		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV:								return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV";
703		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT";
704		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT";
705		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT";
706		case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:									return "VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM";
707		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR";
708		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT";
709		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM:	return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM";
710		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT";
711		case VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT";
712		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE";
713		case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE:							return "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE";
714		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT";
715		case VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT:								return "VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT";
716		case VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT:							return "VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT";
717		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT";
718		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT";
719		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT";
720		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT";
721		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:							return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA";
722		case VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA:								return "VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA";
723		case VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA:								return "VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
724		case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA:							return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA";
725		case VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA:							return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
726		case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA:								return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA";
727		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA:								return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA";
728		case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA:							return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA";
729		case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA:								return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA";
730		case VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA:										return "VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA";
731		case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA:						return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA";
732		case VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA:										return "VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA";
733		case VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA:								return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA";
734		case VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA:											return "VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA";
735		case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA:							return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA";
736		case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:							return "VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI";
737		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI";
738		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI";
739		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI";
740		case VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV:									return "VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV";
741		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV";
742		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT";
743		case VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX:										return "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX";
744		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT";
745		case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT";
746		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT";
747		case VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT";
748		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT";
749		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT";
750		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT";
751		case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT";
752		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT";
753		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM";
754		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM";
755		case VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM:					return "VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM";
756		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV";
757		case VK_STRUCTURE_TYPE_MAX_ENUM:															return "VK_STRUCTURE_TYPE_MAX_ENUM";
758		default:																					return DE_NULL;
759	}
760}
761
762const char* getImageLayoutName (VkImageLayout value)
763{
764	switch (value)
765	{
766		case VK_IMAGE_LAYOUT_UNDEFINED:										return "VK_IMAGE_LAYOUT_UNDEFINED";
767		case VK_IMAGE_LAYOUT_GENERAL:										return "VK_IMAGE_LAYOUT_GENERAL";
768		case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:						return "VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL";
769		case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL:				return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL";
770		case VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL:				return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL";
771		case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:						return "VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL";
772		case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL:							return "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL";
773		case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:							return "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL";
774		case VK_IMAGE_LAYOUT_PREINITIALIZED:								return "VK_IMAGE_LAYOUT_PREINITIALIZED";
775		case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL:	return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL";
776		case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL:	return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL";
777		case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL:						return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL";
778		case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL:						return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL";
779		case VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL:					return "VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL";
780		case VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL:						return "VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL";
781		case VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL:								return "VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL";
782		case VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL:							return "VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL";
783		case VK_IMAGE_LAYOUT_PRESENT_SRC_KHR:								return "VK_IMAGE_LAYOUT_PRESENT_SRC_KHR";
784		case VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR";
785		case VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR";
786		case VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR";
787		case VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR:							return "VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR";
788		case VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT:				return "VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT";
789		case VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR:	return "VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR";
790		case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR";
791		case VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR";
792		case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR";
793		case VK_IMAGE_LAYOUT_MAX_ENUM:										return "VK_IMAGE_LAYOUT_MAX_ENUM";
794		default:															return DE_NULL;
795	}
796}
797
798const char* getObjectTypeName (VkObjectType value)
799{
800	switch (value)
801	{
802		case VK_OBJECT_TYPE_UNKNOWN:							return "VK_OBJECT_TYPE_UNKNOWN";
803		case VK_OBJECT_TYPE_INSTANCE:							return "VK_OBJECT_TYPE_INSTANCE";
804		case VK_OBJECT_TYPE_PHYSICAL_DEVICE:					return "VK_OBJECT_TYPE_PHYSICAL_DEVICE";
805		case VK_OBJECT_TYPE_DEVICE:								return "VK_OBJECT_TYPE_DEVICE";
806		case VK_OBJECT_TYPE_QUEUE:								return "VK_OBJECT_TYPE_QUEUE";
807		case VK_OBJECT_TYPE_SEMAPHORE:							return "VK_OBJECT_TYPE_SEMAPHORE";
808		case VK_OBJECT_TYPE_COMMAND_BUFFER:						return "VK_OBJECT_TYPE_COMMAND_BUFFER";
809		case VK_OBJECT_TYPE_FENCE:								return "VK_OBJECT_TYPE_FENCE";
810		case VK_OBJECT_TYPE_DEVICE_MEMORY:						return "VK_OBJECT_TYPE_DEVICE_MEMORY";
811		case VK_OBJECT_TYPE_BUFFER:								return "VK_OBJECT_TYPE_BUFFER";
812		case VK_OBJECT_TYPE_IMAGE:								return "VK_OBJECT_TYPE_IMAGE";
813		case VK_OBJECT_TYPE_EVENT:								return "VK_OBJECT_TYPE_EVENT";
814		case VK_OBJECT_TYPE_QUERY_POOL:							return "VK_OBJECT_TYPE_QUERY_POOL";
815		case VK_OBJECT_TYPE_BUFFER_VIEW:						return "VK_OBJECT_TYPE_BUFFER_VIEW";
816		case VK_OBJECT_TYPE_IMAGE_VIEW:							return "VK_OBJECT_TYPE_IMAGE_VIEW";
817		case VK_OBJECT_TYPE_SHADER_MODULE:						return "VK_OBJECT_TYPE_SHADER_MODULE";
818		case VK_OBJECT_TYPE_PIPELINE_CACHE:						return "VK_OBJECT_TYPE_PIPELINE_CACHE";
819		case VK_OBJECT_TYPE_PIPELINE_LAYOUT:					return "VK_OBJECT_TYPE_PIPELINE_LAYOUT";
820		case VK_OBJECT_TYPE_RENDER_PASS:						return "VK_OBJECT_TYPE_RENDER_PASS";
821		case VK_OBJECT_TYPE_PIPELINE:							return "VK_OBJECT_TYPE_PIPELINE";
822		case VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT:				return "VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT";
823		case VK_OBJECT_TYPE_SAMPLER:							return "VK_OBJECT_TYPE_SAMPLER";
824		case VK_OBJECT_TYPE_DESCRIPTOR_POOL:					return "VK_OBJECT_TYPE_DESCRIPTOR_POOL";
825		case VK_OBJECT_TYPE_DESCRIPTOR_SET:						return "VK_OBJECT_TYPE_DESCRIPTOR_SET";
826		case VK_OBJECT_TYPE_FRAMEBUFFER:						return "VK_OBJECT_TYPE_FRAMEBUFFER";
827		case VK_OBJECT_TYPE_COMMAND_POOL:						return "VK_OBJECT_TYPE_COMMAND_POOL";
828		case VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION:			return "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION";
829		case VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE:			return "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE";
830		case VK_OBJECT_TYPE_PRIVATE_DATA_SLOT:					return "VK_OBJECT_TYPE_PRIVATE_DATA_SLOT";
831		case VK_OBJECT_TYPE_SURFACE_KHR:						return "VK_OBJECT_TYPE_SURFACE_KHR";
832		case VK_OBJECT_TYPE_SWAPCHAIN_KHR:						return "VK_OBJECT_TYPE_SWAPCHAIN_KHR";
833		case VK_OBJECT_TYPE_DISPLAY_KHR:						return "VK_OBJECT_TYPE_DISPLAY_KHR";
834		case VK_OBJECT_TYPE_DISPLAY_MODE_KHR:					return "VK_OBJECT_TYPE_DISPLAY_MODE_KHR";
835		case VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT:			return "VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT";
836		case VK_OBJECT_TYPE_VIDEO_SESSION_KHR:					return "VK_OBJECT_TYPE_VIDEO_SESSION_KHR";
837		case VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR:		return "VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR";
838		case VK_OBJECT_TYPE_CU_MODULE_NVX:						return "VK_OBJECT_TYPE_CU_MODULE_NVX";
839		case VK_OBJECT_TYPE_CU_FUNCTION_NVX:					return "VK_OBJECT_TYPE_CU_FUNCTION_NVX";
840		case VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT:			return "VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT";
841		case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR:			return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR";
842		case VK_OBJECT_TYPE_VALIDATION_CACHE_EXT:				return "VK_OBJECT_TYPE_VALIDATION_CACHE_EXT";
843		case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV:			return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV";
844		case VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL:	return "VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL";
845		case VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR:				return "VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR";
846		case VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV:		return "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV";
847		case VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA:			return "VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA";
848		case VK_OBJECT_TYPE_MAX_ENUM:							return "VK_OBJECT_TYPE_MAX_ENUM";
849		default:												return DE_NULL;
850	}
851}
852
853const char* getPipelineCacheHeaderVersionName (VkPipelineCacheHeaderVersion value)
854{
855	switch (value)
856	{
857		case VK_PIPELINE_CACHE_HEADER_VERSION_ONE:		return "VK_PIPELINE_CACHE_HEADER_VERSION_ONE";
858		case VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM:	return "VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM";
859		default:										return DE_NULL;
860	}
861}
862
863const char* getVendorIdName (VkVendorId value)
864{
865	switch (value)
866	{
867		case VK_VENDOR_ID_VIV:		return "VK_VENDOR_ID_VIV";
868		case VK_VENDOR_ID_VSI:		return "VK_VENDOR_ID_VSI";
869		case VK_VENDOR_ID_KAZAN:	return "VK_VENDOR_ID_KAZAN";
870		case VK_VENDOR_ID_CODEPLAY:	return "VK_VENDOR_ID_CODEPLAY";
871		case VK_VENDOR_ID_MESA:		return "VK_VENDOR_ID_MESA";
872		case VK_VENDOR_ID_POCL:		return "VK_VENDOR_ID_POCL";
873		case VK_VENDOR_ID_MAX_ENUM:	return "VK_VENDOR_ID_MAX_ENUM";
874		default:					return DE_NULL;
875	}
876}
877
878const char* getSystemAllocationScopeName (VkSystemAllocationScope value)
879{
880	switch (value)
881	{
882		case VK_SYSTEM_ALLOCATION_SCOPE_COMMAND:	return "VK_SYSTEM_ALLOCATION_SCOPE_COMMAND";
883		case VK_SYSTEM_ALLOCATION_SCOPE_OBJECT:		return "VK_SYSTEM_ALLOCATION_SCOPE_OBJECT";
884		case VK_SYSTEM_ALLOCATION_SCOPE_CACHE:		return "VK_SYSTEM_ALLOCATION_SCOPE_CACHE";
885		case VK_SYSTEM_ALLOCATION_SCOPE_DEVICE:		return "VK_SYSTEM_ALLOCATION_SCOPE_DEVICE";
886		case VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE:	return "VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE";
887		case VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM:	return "VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM";
888		default:									return DE_NULL;
889	}
890}
891
892const char* getInternalAllocationTypeName (VkInternalAllocationType value)
893{
894	switch (value)
895	{
896		case VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE:	return "VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE";
897		case VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM:		return "VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM";
898		default:										return DE_NULL;
899	}
900}
901
902const char* getFormatName (VkFormat value)
903{
904	switch (value)
905	{
906		case VK_FORMAT_UNDEFINED:									return "VK_FORMAT_UNDEFINED";
907		case VK_FORMAT_R4G4_UNORM_PACK8:							return "VK_FORMAT_R4G4_UNORM_PACK8";
908		case VK_FORMAT_R4G4B4A4_UNORM_PACK16:						return "VK_FORMAT_R4G4B4A4_UNORM_PACK16";
909		case VK_FORMAT_B4G4R4A4_UNORM_PACK16:						return "VK_FORMAT_B4G4R4A4_UNORM_PACK16";
910		case VK_FORMAT_R5G6B5_UNORM_PACK16:							return "VK_FORMAT_R5G6B5_UNORM_PACK16";
911		case VK_FORMAT_B5G6R5_UNORM_PACK16:							return "VK_FORMAT_B5G6R5_UNORM_PACK16";
912		case VK_FORMAT_R5G5B5A1_UNORM_PACK16:						return "VK_FORMAT_R5G5B5A1_UNORM_PACK16";
913		case VK_FORMAT_B5G5R5A1_UNORM_PACK16:						return "VK_FORMAT_B5G5R5A1_UNORM_PACK16";
914		case VK_FORMAT_A1R5G5B5_UNORM_PACK16:						return "VK_FORMAT_A1R5G5B5_UNORM_PACK16";
915		case VK_FORMAT_R8_UNORM:									return "VK_FORMAT_R8_UNORM";
916		case VK_FORMAT_R8_SNORM:									return "VK_FORMAT_R8_SNORM";
917		case VK_FORMAT_R8_USCALED:									return "VK_FORMAT_R8_USCALED";
918		case VK_FORMAT_R8_SSCALED:									return "VK_FORMAT_R8_SSCALED";
919		case VK_FORMAT_R8_UINT:										return "VK_FORMAT_R8_UINT";
920		case VK_FORMAT_R8_SINT:										return "VK_FORMAT_R8_SINT";
921		case VK_FORMAT_R8_SRGB:										return "VK_FORMAT_R8_SRGB";
922		case VK_FORMAT_R8G8_UNORM:									return "VK_FORMAT_R8G8_UNORM";
923		case VK_FORMAT_R8G8_SNORM:									return "VK_FORMAT_R8G8_SNORM";
924		case VK_FORMAT_R8G8_USCALED:								return "VK_FORMAT_R8G8_USCALED";
925		case VK_FORMAT_R8G8_SSCALED:								return "VK_FORMAT_R8G8_SSCALED";
926		case VK_FORMAT_R8G8_UINT:									return "VK_FORMAT_R8G8_UINT";
927		case VK_FORMAT_R8G8_SINT:									return "VK_FORMAT_R8G8_SINT";
928		case VK_FORMAT_R8G8_SRGB:									return "VK_FORMAT_R8G8_SRGB";
929		case VK_FORMAT_R8G8B8_UNORM:								return "VK_FORMAT_R8G8B8_UNORM";
930		case VK_FORMAT_R8G8B8_SNORM:								return "VK_FORMAT_R8G8B8_SNORM";
931		case VK_FORMAT_R8G8B8_USCALED:								return "VK_FORMAT_R8G8B8_USCALED";
932		case VK_FORMAT_R8G8B8_SSCALED:								return "VK_FORMAT_R8G8B8_SSCALED";
933		case VK_FORMAT_R8G8B8_UINT:									return "VK_FORMAT_R8G8B8_UINT";
934		case VK_FORMAT_R8G8B8_SINT:									return "VK_FORMAT_R8G8B8_SINT";
935		case VK_FORMAT_R8G8B8_SRGB:									return "VK_FORMAT_R8G8B8_SRGB";
936		case VK_FORMAT_B8G8R8_UNORM:								return "VK_FORMAT_B8G8R8_UNORM";
937		case VK_FORMAT_B8G8R8_SNORM:								return "VK_FORMAT_B8G8R8_SNORM";
938		case VK_FORMAT_B8G8R8_USCALED:								return "VK_FORMAT_B8G8R8_USCALED";
939		case VK_FORMAT_B8G8R8_SSCALED:								return "VK_FORMAT_B8G8R8_SSCALED";
940		case VK_FORMAT_B8G8R8_UINT:									return "VK_FORMAT_B8G8R8_UINT";
941		case VK_FORMAT_B8G8R8_SINT:									return "VK_FORMAT_B8G8R8_SINT";
942		case VK_FORMAT_B8G8R8_SRGB:									return "VK_FORMAT_B8G8R8_SRGB";
943		case VK_FORMAT_R8G8B8A8_UNORM:								return "VK_FORMAT_R8G8B8A8_UNORM";
944		case VK_FORMAT_R8G8B8A8_SNORM:								return "VK_FORMAT_R8G8B8A8_SNORM";
945		case VK_FORMAT_R8G8B8A8_USCALED:							return "VK_FORMAT_R8G8B8A8_USCALED";
946		case VK_FORMAT_R8G8B8A8_SSCALED:							return "VK_FORMAT_R8G8B8A8_SSCALED";
947		case VK_FORMAT_R8G8B8A8_UINT:								return "VK_FORMAT_R8G8B8A8_UINT";
948		case VK_FORMAT_R8G8B8A8_SINT:								return "VK_FORMAT_R8G8B8A8_SINT";
949		case VK_FORMAT_R8G8B8A8_SRGB:								return "VK_FORMAT_R8G8B8A8_SRGB";
950		case VK_FORMAT_B8G8R8A8_UNORM:								return "VK_FORMAT_B8G8R8A8_UNORM";
951		case VK_FORMAT_B8G8R8A8_SNORM:								return "VK_FORMAT_B8G8R8A8_SNORM";
952		case VK_FORMAT_B8G8R8A8_USCALED:							return "VK_FORMAT_B8G8R8A8_USCALED";
953		case VK_FORMAT_B8G8R8A8_SSCALED:							return "VK_FORMAT_B8G8R8A8_SSCALED";
954		case VK_FORMAT_B8G8R8A8_UINT:								return "VK_FORMAT_B8G8R8A8_UINT";
955		case VK_FORMAT_B8G8R8A8_SINT:								return "VK_FORMAT_B8G8R8A8_SINT";
956		case VK_FORMAT_B8G8R8A8_SRGB:								return "VK_FORMAT_B8G8R8A8_SRGB";
957		case VK_FORMAT_A8B8G8R8_UNORM_PACK32:						return "VK_FORMAT_A8B8G8R8_UNORM_PACK32";
958		case VK_FORMAT_A8B8G8R8_SNORM_PACK32:						return "VK_FORMAT_A8B8G8R8_SNORM_PACK32";
959		case VK_FORMAT_A8B8G8R8_USCALED_PACK32:						return "VK_FORMAT_A8B8G8R8_USCALED_PACK32";
960		case VK_FORMAT_A8B8G8R8_SSCALED_PACK32:						return "VK_FORMAT_A8B8G8R8_SSCALED_PACK32";
961		case VK_FORMAT_A8B8G8R8_UINT_PACK32:						return "VK_FORMAT_A8B8G8R8_UINT_PACK32";
962		case VK_FORMAT_A8B8G8R8_SINT_PACK32:						return "VK_FORMAT_A8B8G8R8_SINT_PACK32";
963		case VK_FORMAT_A8B8G8R8_SRGB_PACK32:						return "VK_FORMAT_A8B8G8R8_SRGB_PACK32";
964		case VK_FORMAT_A2R10G10B10_UNORM_PACK32:					return "VK_FORMAT_A2R10G10B10_UNORM_PACK32";
965		case VK_FORMAT_A2R10G10B10_SNORM_PACK32:					return "VK_FORMAT_A2R10G10B10_SNORM_PACK32";
966		case VK_FORMAT_A2R10G10B10_USCALED_PACK32:					return "VK_FORMAT_A2R10G10B10_USCALED_PACK32";
967		case VK_FORMAT_A2R10G10B10_SSCALED_PACK32:					return "VK_FORMAT_A2R10G10B10_SSCALED_PACK32";
968		case VK_FORMAT_A2R10G10B10_UINT_PACK32:						return "VK_FORMAT_A2R10G10B10_UINT_PACK32";
969		case VK_FORMAT_A2R10G10B10_SINT_PACK32:						return "VK_FORMAT_A2R10G10B10_SINT_PACK32";
970		case VK_FORMAT_A2B10G10R10_UNORM_PACK32:					return "VK_FORMAT_A2B10G10R10_UNORM_PACK32";
971		case VK_FORMAT_A2B10G10R10_SNORM_PACK32:					return "VK_FORMAT_A2B10G10R10_SNORM_PACK32";
972		case VK_FORMAT_A2B10G10R10_USCALED_PACK32:					return "VK_FORMAT_A2B10G10R10_USCALED_PACK32";
973		case VK_FORMAT_A2B10G10R10_SSCALED_PACK32:					return "VK_FORMAT_A2B10G10R10_SSCALED_PACK32";
974		case VK_FORMAT_A2B10G10R10_UINT_PACK32:						return "VK_FORMAT_A2B10G10R10_UINT_PACK32";
975		case VK_FORMAT_A2B10G10R10_SINT_PACK32:						return "VK_FORMAT_A2B10G10R10_SINT_PACK32";
976		case VK_FORMAT_R16_UNORM:									return "VK_FORMAT_R16_UNORM";
977		case VK_FORMAT_R16_SNORM:									return "VK_FORMAT_R16_SNORM";
978		case VK_FORMAT_R16_USCALED:									return "VK_FORMAT_R16_USCALED";
979		case VK_FORMAT_R16_SSCALED:									return "VK_FORMAT_R16_SSCALED";
980		case VK_FORMAT_R16_UINT:									return "VK_FORMAT_R16_UINT";
981		case VK_FORMAT_R16_SINT:									return "VK_FORMAT_R16_SINT";
982		case VK_FORMAT_R16_SFLOAT:									return "VK_FORMAT_R16_SFLOAT";
983		case VK_FORMAT_R16G16_UNORM:								return "VK_FORMAT_R16G16_UNORM";
984		case VK_FORMAT_R16G16_SNORM:								return "VK_FORMAT_R16G16_SNORM";
985		case VK_FORMAT_R16G16_USCALED:								return "VK_FORMAT_R16G16_USCALED";
986		case VK_FORMAT_R16G16_SSCALED:								return "VK_FORMAT_R16G16_SSCALED";
987		case VK_FORMAT_R16G16_UINT:									return "VK_FORMAT_R16G16_UINT";
988		case VK_FORMAT_R16G16_SINT:									return "VK_FORMAT_R16G16_SINT";
989		case VK_FORMAT_R16G16_SFLOAT:								return "VK_FORMAT_R16G16_SFLOAT";
990		case VK_FORMAT_R16G16B16_UNORM:								return "VK_FORMAT_R16G16B16_UNORM";
991		case VK_FORMAT_R16G16B16_SNORM:								return "VK_FORMAT_R16G16B16_SNORM";
992		case VK_FORMAT_R16G16B16_USCALED:							return "VK_FORMAT_R16G16B16_USCALED";
993		case VK_FORMAT_R16G16B16_SSCALED:							return "VK_FORMAT_R16G16B16_SSCALED";
994		case VK_FORMAT_R16G16B16_UINT:								return "VK_FORMAT_R16G16B16_UINT";
995		case VK_FORMAT_R16G16B16_SINT:								return "VK_FORMAT_R16G16B16_SINT";
996		case VK_FORMAT_R16G16B16_SFLOAT:							return "VK_FORMAT_R16G16B16_SFLOAT";
997		case VK_FORMAT_R16G16B16A16_UNORM:							return "VK_FORMAT_R16G16B16A16_UNORM";
998		case VK_FORMAT_R16G16B16A16_SNORM:							return "VK_FORMAT_R16G16B16A16_SNORM";
999		case VK_FORMAT_R16G16B16A16_USCALED:						return "VK_FORMAT_R16G16B16A16_USCALED";
1000		case VK_FORMAT_R16G16B16A16_SSCALED:						return "VK_FORMAT_R16G16B16A16_SSCALED";
1001		case VK_FORMAT_R16G16B16A16_UINT:							return "VK_FORMAT_R16G16B16A16_UINT";
1002		case VK_FORMAT_R16G16B16A16_SINT:							return "VK_FORMAT_R16G16B16A16_SINT";
1003		case VK_FORMAT_R16G16B16A16_SFLOAT:							return "VK_FORMAT_R16G16B16A16_SFLOAT";
1004		case VK_FORMAT_R32_UINT:									return "VK_FORMAT_R32_UINT";
1005		case VK_FORMAT_R32_SINT:									return "VK_FORMAT_R32_SINT";
1006		case VK_FORMAT_R32_SFLOAT:									return "VK_FORMAT_R32_SFLOAT";
1007		case VK_FORMAT_R32G32_UINT:									return "VK_FORMAT_R32G32_UINT";
1008		case VK_FORMAT_R32G32_SINT:									return "VK_FORMAT_R32G32_SINT";
1009		case VK_FORMAT_R32G32_SFLOAT:								return "VK_FORMAT_R32G32_SFLOAT";
1010		case VK_FORMAT_R32G32B32_UINT:								return "VK_FORMAT_R32G32B32_UINT";
1011		case VK_FORMAT_R32G32B32_SINT:								return "VK_FORMAT_R32G32B32_SINT";
1012		case VK_FORMAT_R32G32B32_SFLOAT:							return "VK_FORMAT_R32G32B32_SFLOAT";
1013		case VK_FORMAT_R32G32B32A32_UINT:							return "VK_FORMAT_R32G32B32A32_UINT";
1014		case VK_FORMAT_R32G32B32A32_SINT:							return "VK_FORMAT_R32G32B32A32_SINT";
1015		case VK_FORMAT_R32G32B32A32_SFLOAT:							return "VK_FORMAT_R32G32B32A32_SFLOAT";
1016		case VK_FORMAT_R64_UINT:									return "VK_FORMAT_R64_UINT";
1017		case VK_FORMAT_R64_SINT:									return "VK_FORMAT_R64_SINT";
1018		case VK_FORMAT_R64_SFLOAT:									return "VK_FORMAT_R64_SFLOAT";
1019		case VK_FORMAT_R64G64_UINT:									return "VK_FORMAT_R64G64_UINT";
1020		case VK_FORMAT_R64G64_SINT:									return "VK_FORMAT_R64G64_SINT";
1021		case VK_FORMAT_R64G64_SFLOAT:								return "VK_FORMAT_R64G64_SFLOAT";
1022		case VK_FORMAT_R64G64B64_UINT:								return "VK_FORMAT_R64G64B64_UINT";
1023		case VK_FORMAT_R64G64B64_SINT:								return "VK_FORMAT_R64G64B64_SINT";
1024		case VK_FORMAT_R64G64B64_SFLOAT:							return "VK_FORMAT_R64G64B64_SFLOAT";
1025		case VK_FORMAT_R64G64B64A64_UINT:							return "VK_FORMAT_R64G64B64A64_UINT";
1026		case VK_FORMAT_R64G64B64A64_SINT:							return "VK_FORMAT_R64G64B64A64_SINT";
1027		case VK_FORMAT_R64G64B64A64_SFLOAT:							return "VK_FORMAT_R64G64B64A64_SFLOAT";
1028		case VK_FORMAT_B10G11R11_UFLOAT_PACK32:						return "VK_FORMAT_B10G11R11_UFLOAT_PACK32";
1029		case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:						return "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32";
1030		case VK_FORMAT_D16_UNORM:									return "VK_FORMAT_D16_UNORM";
1031		case VK_FORMAT_X8_D24_UNORM_PACK32:							return "VK_FORMAT_X8_D24_UNORM_PACK32";
1032		case VK_FORMAT_D32_SFLOAT:									return "VK_FORMAT_D32_SFLOAT";
1033		case VK_FORMAT_S8_UINT:										return "VK_FORMAT_S8_UINT";
1034		case VK_FORMAT_D16_UNORM_S8_UINT:							return "VK_FORMAT_D16_UNORM_S8_UINT";
1035		case VK_FORMAT_D24_UNORM_S8_UINT:							return "VK_FORMAT_D24_UNORM_S8_UINT";
1036		case VK_FORMAT_D32_SFLOAT_S8_UINT:							return "VK_FORMAT_D32_SFLOAT_S8_UINT";
1037		case VK_FORMAT_BC1_RGB_UNORM_BLOCK:							return "VK_FORMAT_BC1_RGB_UNORM_BLOCK";
1038		case VK_FORMAT_BC1_RGB_SRGB_BLOCK:							return "VK_FORMAT_BC1_RGB_SRGB_BLOCK";
1039		case VK_FORMAT_BC1_RGBA_UNORM_BLOCK:						return "VK_FORMAT_BC1_RGBA_UNORM_BLOCK";
1040		case VK_FORMAT_BC1_RGBA_SRGB_BLOCK:							return "VK_FORMAT_BC1_RGBA_SRGB_BLOCK";
1041		case VK_FORMAT_BC2_UNORM_BLOCK:								return "VK_FORMAT_BC2_UNORM_BLOCK";
1042		case VK_FORMAT_BC2_SRGB_BLOCK:								return "VK_FORMAT_BC2_SRGB_BLOCK";
1043		case VK_FORMAT_BC3_UNORM_BLOCK:								return "VK_FORMAT_BC3_UNORM_BLOCK";
1044		case VK_FORMAT_BC3_SRGB_BLOCK:								return "VK_FORMAT_BC3_SRGB_BLOCK";
1045		case VK_FORMAT_BC4_UNORM_BLOCK:								return "VK_FORMAT_BC4_UNORM_BLOCK";
1046		case VK_FORMAT_BC4_SNORM_BLOCK:								return "VK_FORMAT_BC4_SNORM_BLOCK";
1047		case VK_FORMAT_BC5_UNORM_BLOCK:								return "VK_FORMAT_BC5_UNORM_BLOCK";
1048		case VK_FORMAT_BC5_SNORM_BLOCK:								return "VK_FORMAT_BC5_SNORM_BLOCK";
1049		case VK_FORMAT_BC6H_UFLOAT_BLOCK:							return "VK_FORMAT_BC6H_UFLOAT_BLOCK";
1050		case VK_FORMAT_BC6H_SFLOAT_BLOCK:							return "VK_FORMAT_BC6H_SFLOAT_BLOCK";
1051		case VK_FORMAT_BC7_UNORM_BLOCK:								return "VK_FORMAT_BC7_UNORM_BLOCK";
1052		case VK_FORMAT_BC7_SRGB_BLOCK:								return "VK_FORMAT_BC7_SRGB_BLOCK";
1053		case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:						return "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK";
1054		case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:						return "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK";
1055		case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:					return "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK";
1056		case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:					return "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK";
1057		case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:					return "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK";
1058		case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:					return "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK";
1059		case VK_FORMAT_EAC_R11_UNORM_BLOCK:							return "VK_FORMAT_EAC_R11_UNORM_BLOCK";
1060		case VK_FORMAT_EAC_R11_SNORM_BLOCK:							return "VK_FORMAT_EAC_R11_SNORM_BLOCK";
1061		case VK_FORMAT_EAC_R11G11_UNORM_BLOCK:						return "VK_FORMAT_EAC_R11G11_UNORM_BLOCK";
1062		case VK_FORMAT_EAC_R11G11_SNORM_BLOCK:						return "VK_FORMAT_EAC_R11G11_SNORM_BLOCK";
1063		case VK_FORMAT_ASTC_4x4_UNORM_BLOCK:						return "VK_FORMAT_ASTC_4x4_UNORM_BLOCK";
1064		case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:							return "VK_FORMAT_ASTC_4x4_SRGB_BLOCK";
1065		case VK_FORMAT_ASTC_5x4_UNORM_BLOCK:						return "VK_FORMAT_ASTC_5x4_UNORM_BLOCK";
1066		case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:							return "VK_FORMAT_ASTC_5x4_SRGB_BLOCK";
1067		case VK_FORMAT_ASTC_5x5_UNORM_BLOCK:						return "VK_FORMAT_ASTC_5x5_UNORM_BLOCK";
1068		case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:							return "VK_FORMAT_ASTC_5x5_SRGB_BLOCK";
1069		case VK_FORMAT_ASTC_6x5_UNORM_BLOCK:						return "VK_FORMAT_ASTC_6x5_UNORM_BLOCK";
1070		case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:							return "VK_FORMAT_ASTC_6x5_SRGB_BLOCK";
1071		case VK_FORMAT_ASTC_6x6_UNORM_BLOCK:						return "VK_FORMAT_ASTC_6x6_UNORM_BLOCK";
1072		case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:							return "VK_FORMAT_ASTC_6x6_SRGB_BLOCK";
1073		case VK_FORMAT_ASTC_8x5_UNORM_BLOCK:						return "VK_FORMAT_ASTC_8x5_UNORM_BLOCK";
1074		case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:							return "VK_FORMAT_ASTC_8x5_SRGB_BLOCK";
1075		case VK_FORMAT_ASTC_8x6_UNORM_BLOCK:						return "VK_FORMAT_ASTC_8x6_UNORM_BLOCK";
1076		case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:							return "VK_FORMAT_ASTC_8x6_SRGB_BLOCK";
1077		case VK_FORMAT_ASTC_8x8_UNORM_BLOCK:						return "VK_FORMAT_ASTC_8x8_UNORM_BLOCK";
1078		case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:							return "VK_FORMAT_ASTC_8x8_SRGB_BLOCK";
1079		case VK_FORMAT_ASTC_10x5_UNORM_BLOCK:						return "VK_FORMAT_ASTC_10x5_UNORM_BLOCK";
1080		case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:						return "VK_FORMAT_ASTC_10x5_SRGB_BLOCK";
1081		case VK_FORMAT_ASTC_10x6_UNORM_BLOCK:						return "VK_FORMAT_ASTC_10x6_UNORM_BLOCK";
1082		case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:						return "VK_FORMAT_ASTC_10x6_SRGB_BLOCK";
1083		case VK_FORMAT_ASTC_10x8_UNORM_BLOCK:						return "VK_FORMAT_ASTC_10x8_UNORM_BLOCK";
1084		case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:						return "VK_FORMAT_ASTC_10x8_SRGB_BLOCK";
1085		case VK_FORMAT_ASTC_10x10_UNORM_BLOCK:						return "VK_FORMAT_ASTC_10x10_UNORM_BLOCK";
1086		case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:						return "VK_FORMAT_ASTC_10x10_SRGB_BLOCK";
1087		case VK_FORMAT_ASTC_12x10_UNORM_BLOCK:						return "VK_FORMAT_ASTC_12x10_UNORM_BLOCK";
1088		case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:						return "VK_FORMAT_ASTC_12x10_SRGB_BLOCK";
1089		case VK_FORMAT_ASTC_12x12_UNORM_BLOCK:						return "VK_FORMAT_ASTC_12x12_UNORM_BLOCK";
1090		case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:						return "VK_FORMAT_ASTC_12x12_SRGB_BLOCK";
1091		case VK_FORMAT_G8B8G8R8_422_UNORM:							return "VK_FORMAT_G8B8G8R8_422_UNORM";
1092		case VK_FORMAT_B8G8R8G8_422_UNORM:							return "VK_FORMAT_B8G8R8G8_422_UNORM";
1093		case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:					return "VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM";
1094		case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:					return "VK_FORMAT_G8_B8R8_2PLANE_420_UNORM";
1095		case VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:					return "VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM";
1096		case VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:					return "VK_FORMAT_G8_B8R8_2PLANE_422_UNORM";
1097		case VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:					return "VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM";
1098		case VK_FORMAT_R10X6_UNORM_PACK16:							return "VK_FORMAT_R10X6_UNORM_PACK16";
1099		case VK_FORMAT_R10X6G10X6_UNORM_2PACK16:					return "VK_FORMAT_R10X6G10X6_UNORM_2PACK16";
1100		case VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:			return "VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16";
1101		case VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:		return "VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16";
1102		case VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:		return "VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16";
1103		case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16";
1104		case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16";
1105		case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16";
1106		case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16";
1107		case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16";
1108		case VK_FORMAT_R12X4_UNORM_PACK16:							return "VK_FORMAT_R12X4_UNORM_PACK16";
1109		case VK_FORMAT_R12X4G12X4_UNORM_2PACK16:					return "VK_FORMAT_R12X4G12X4_UNORM_2PACK16";
1110		case VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:			return "VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16";
1111		case VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:		return "VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16";
1112		case VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:		return "VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16";
1113		case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16";
1114		case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16";
1115		case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16";
1116		case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16";
1117		case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16";
1118		case VK_FORMAT_G16B16G16R16_422_UNORM:						return "VK_FORMAT_G16B16G16R16_422_UNORM";
1119		case VK_FORMAT_B16G16R16G16_422_UNORM:						return "VK_FORMAT_B16G16R16G16_422_UNORM";
1120		case VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:				return "VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM";
1121		case VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:					return "VK_FORMAT_G16_B16R16_2PLANE_420_UNORM";
1122		case VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:				return "VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM";
1123		case VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:					return "VK_FORMAT_G16_B16R16_2PLANE_422_UNORM";
1124		case VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:				return "VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM";
1125		case VK_FORMAT_G8_B8R8_2PLANE_444_UNORM:					return "VK_FORMAT_G8_B8R8_2PLANE_444_UNORM";
1126		case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16";
1127		case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16";
1128		case VK_FORMAT_G16_B16R16_2PLANE_444_UNORM:					return "VK_FORMAT_G16_B16R16_2PLANE_444_UNORM";
1129		case VK_FORMAT_A4R4G4B4_UNORM_PACK16:						return "VK_FORMAT_A4R4G4B4_UNORM_PACK16";
1130		case VK_FORMAT_A4B4G4R4_UNORM_PACK16:						return "VK_FORMAT_A4B4G4R4_UNORM_PACK16";
1131		case VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK";
1132		case VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK";
1133		case VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK";
1134		case VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK";
1135		case VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK";
1136		case VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK";
1137		case VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK";
1138		case VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK";
1139		case VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK";
1140		case VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK";
1141		case VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK";
1142		case VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK";
1143		case VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK";
1144		case VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK";
1145		case VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:					return "VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG";
1146		case VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:					return "VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG";
1147		case VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:					return "VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG";
1148		case VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:					return "VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG";
1149		case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:					return "VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG";
1150		case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:					return "VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG";
1151		case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:					return "VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG";
1152		case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:					return "VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG";
1153		case VK_FORMAT_MAX_ENUM:									return "VK_FORMAT_MAX_ENUM";
1154		default:													return DE_NULL;
1155	}
1156}
1157
1158const char* getImageTilingName (VkImageTiling value)
1159{
1160	switch (value)
1161	{
1162		case VK_IMAGE_TILING_OPTIMAL:					return "VK_IMAGE_TILING_OPTIMAL";
1163		case VK_IMAGE_TILING_LINEAR:					return "VK_IMAGE_TILING_LINEAR";
1164		case VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT:	return "VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT";
1165		case VK_IMAGE_TILING_MAX_ENUM:					return "VK_IMAGE_TILING_MAX_ENUM";
1166		default:										return DE_NULL;
1167	}
1168}
1169
1170const char* getImageTypeName (VkImageType value)
1171{
1172	switch (value)
1173	{
1174		case VK_IMAGE_TYPE_1D:			return "VK_IMAGE_TYPE_1D";
1175		case VK_IMAGE_TYPE_2D:			return "VK_IMAGE_TYPE_2D";
1176		case VK_IMAGE_TYPE_3D:			return "VK_IMAGE_TYPE_3D";
1177		case VK_IMAGE_TYPE_MAX_ENUM:	return "VK_IMAGE_TYPE_MAX_ENUM";
1178		default:						return DE_NULL;
1179	}
1180}
1181
1182const char* getPhysicalDeviceTypeName (VkPhysicalDeviceType value)
1183{
1184	switch (value)
1185	{
1186		case VK_PHYSICAL_DEVICE_TYPE_OTHER:				return "VK_PHYSICAL_DEVICE_TYPE_OTHER";
1187		case VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU:	return "VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU";
1188		case VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU:		return "VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU";
1189		case VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU:		return "VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU";
1190		case VK_PHYSICAL_DEVICE_TYPE_CPU:				return "VK_PHYSICAL_DEVICE_TYPE_CPU";
1191		case VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM:			return "VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM";
1192		default:										return DE_NULL;
1193	}
1194}
1195
1196const char* getQueryTypeName (VkQueryType value)
1197{
1198	switch (value)
1199	{
1200		case VK_QUERY_TYPE_OCCLUSION:										return "VK_QUERY_TYPE_OCCLUSION";
1201		case VK_QUERY_TYPE_PIPELINE_STATISTICS:								return "VK_QUERY_TYPE_PIPELINE_STATISTICS";
1202		case VK_QUERY_TYPE_TIMESTAMP:										return "VK_QUERY_TYPE_TIMESTAMP";
1203		case VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR:							return "VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR";
1204		case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT:					return "VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT";
1205		case VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR:							return "VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR";
1206		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR:		return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR";
1207		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR:	return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR";
1208		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV:		return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV";
1209		case VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL:							return "VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL";
1210		case VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR:			return "VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR";
1211		case VK_QUERY_TYPE_MAX_ENUM:										return "VK_QUERY_TYPE_MAX_ENUM";
1212		default:															return DE_NULL;
1213	}
1214}
1215
1216const char* getSharingModeName (VkSharingMode value)
1217{
1218	switch (value)
1219	{
1220		case VK_SHARING_MODE_EXCLUSIVE:		return "VK_SHARING_MODE_EXCLUSIVE";
1221		case VK_SHARING_MODE_CONCURRENT:	return "VK_SHARING_MODE_CONCURRENT";
1222		case VK_SHARING_MODE_MAX_ENUM:		return "VK_SHARING_MODE_MAX_ENUM";
1223		default:							return DE_NULL;
1224	}
1225}
1226
1227const char* getComponentSwizzleName (VkComponentSwizzle value)
1228{
1229	switch (value)
1230	{
1231		case VK_COMPONENT_SWIZZLE_IDENTITY:	return "VK_COMPONENT_SWIZZLE_IDENTITY";
1232		case VK_COMPONENT_SWIZZLE_ZERO:		return "VK_COMPONENT_SWIZZLE_ZERO";
1233		case VK_COMPONENT_SWIZZLE_ONE:		return "VK_COMPONENT_SWIZZLE_ONE";
1234		case VK_COMPONENT_SWIZZLE_R:		return "VK_COMPONENT_SWIZZLE_R";
1235		case VK_COMPONENT_SWIZZLE_G:		return "VK_COMPONENT_SWIZZLE_G";
1236		case VK_COMPONENT_SWIZZLE_B:		return "VK_COMPONENT_SWIZZLE_B";
1237		case VK_COMPONENT_SWIZZLE_A:		return "VK_COMPONENT_SWIZZLE_A";
1238		case VK_COMPONENT_SWIZZLE_MAX_ENUM:	return "VK_COMPONENT_SWIZZLE_MAX_ENUM";
1239		default:							return DE_NULL;
1240	}
1241}
1242
1243const char* getImageViewTypeName (VkImageViewType value)
1244{
1245	switch (value)
1246	{
1247		case VK_IMAGE_VIEW_TYPE_1D:			return "VK_IMAGE_VIEW_TYPE_1D";
1248		case VK_IMAGE_VIEW_TYPE_2D:			return "VK_IMAGE_VIEW_TYPE_2D";
1249		case VK_IMAGE_VIEW_TYPE_3D:			return "VK_IMAGE_VIEW_TYPE_3D";
1250		case VK_IMAGE_VIEW_TYPE_CUBE:		return "VK_IMAGE_VIEW_TYPE_CUBE";
1251		case VK_IMAGE_VIEW_TYPE_1D_ARRAY:	return "VK_IMAGE_VIEW_TYPE_1D_ARRAY";
1252		case VK_IMAGE_VIEW_TYPE_2D_ARRAY:	return "VK_IMAGE_VIEW_TYPE_2D_ARRAY";
1253		case VK_IMAGE_VIEW_TYPE_CUBE_ARRAY:	return "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY";
1254		case VK_IMAGE_VIEW_TYPE_MAX_ENUM:	return "VK_IMAGE_VIEW_TYPE_MAX_ENUM";
1255		default:							return DE_NULL;
1256	}
1257}
1258
1259const char* getBlendFactorName (VkBlendFactor value)
1260{
1261	switch (value)
1262	{
1263		case VK_BLEND_FACTOR_ZERO:						return "VK_BLEND_FACTOR_ZERO";
1264		case VK_BLEND_FACTOR_ONE:						return "VK_BLEND_FACTOR_ONE";
1265		case VK_BLEND_FACTOR_SRC_COLOR:					return "VK_BLEND_FACTOR_SRC_COLOR";
1266		case VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR:		return "VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR";
1267		case VK_BLEND_FACTOR_DST_COLOR:					return "VK_BLEND_FACTOR_DST_COLOR";
1268		case VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR:		return "VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR";
1269		case VK_BLEND_FACTOR_SRC_ALPHA:					return "VK_BLEND_FACTOR_SRC_ALPHA";
1270		case VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA:		return "VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA";
1271		case VK_BLEND_FACTOR_DST_ALPHA:					return "VK_BLEND_FACTOR_DST_ALPHA";
1272		case VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA:		return "VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA";
1273		case VK_BLEND_FACTOR_CONSTANT_COLOR:			return "VK_BLEND_FACTOR_CONSTANT_COLOR";
1274		case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR:	return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR";
1275		case VK_BLEND_FACTOR_CONSTANT_ALPHA:			return "VK_BLEND_FACTOR_CONSTANT_ALPHA";
1276		case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA:	return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA";
1277		case VK_BLEND_FACTOR_SRC_ALPHA_SATURATE:		return "VK_BLEND_FACTOR_SRC_ALPHA_SATURATE";
1278		case VK_BLEND_FACTOR_SRC1_COLOR:				return "VK_BLEND_FACTOR_SRC1_COLOR";
1279		case VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR:		return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR";
1280		case VK_BLEND_FACTOR_SRC1_ALPHA:				return "VK_BLEND_FACTOR_SRC1_ALPHA";
1281		case VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA:		return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA";
1282		case VK_BLEND_FACTOR_MAX_ENUM:					return "VK_BLEND_FACTOR_MAX_ENUM";
1283		default:										return DE_NULL;
1284	}
1285}
1286
1287const char* getBlendOpName (VkBlendOp value)
1288{
1289	switch (value)
1290	{
1291		case VK_BLEND_OP_ADD:						return "VK_BLEND_OP_ADD";
1292		case VK_BLEND_OP_SUBTRACT:					return "VK_BLEND_OP_SUBTRACT";
1293		case VK_BLEND_OP_REVERSE_SUBTRACT:			return "VK_BLEND_OP_REVERSE_SUBTRACT";
1294		case VK_BLEND_OP_MIN:						return "VK_BLEND_OP_MIN";
1295		case VK_BLEND_OP_MAX:						return "VK_BLEND_OP_MAX";
1296		case VK_BLEND_OP_ZERO_EXT:					return "VK_BLEND_OP_ZERO_EXT";
1297		case VK_BLEND_OP_SRC_EXT:					return "VK_BLEND_OP_SRC_EXT";
1298		case VK_BLEND_OP_DST_EXT:					return "VK_BLEND_OP_DST_EXT";
1299		case VK_BLEND_OP_SRC_OVER_EXT:				return "VK_BLEND_OP_SRC_OVER_EXT";
1300		case VK_BLEND_OP_DST_OVER_EXT:				return "VK_BLEND_OP_DST_OVER_EXT";
1301		case VK_BLEND_OP_SRC_IN_EXT:				return "VK_BLEND_OP_SRC_IN_EXT";
1302		case VK_BLEND_OP_DST_IN_EXT:				return "VK_BLEND_OP_DST_IN_EXT";
1303		case VK_BLEND_OP_SRC_OUT_EXT:				return "VK_BLEND_OP_SRC_OUT_EXT";
1304		case VK_BLEND_OP_DST_OUT_EXT:				return "VK_BLEND_OP_DST_OUT_EXT";
1305		case VK_BLEND_OP_SRC_ATOP_EXT:				return "VK_BLEND_OP_SRC_ATOP_EXT";
1306		case VK_BLEND_OP_DST_ATOP_EXT:				return "VK_BLEND_OP_DST_ATOP_EXT";
1307		case VK_BLEND_OP_XOR_EXT:					return "VK_BLEND_OP_XOR_EXT";
1308		case VK_BLEND_OP_MULTIPLY_EXT:				return "VK_BLEND_OP_MULTIPLY_EXT";
1309		case VK_BLEND_OP_SCREEN_EXT:				return "VK_BLEND_OP_SCREEN_EXT";
1310		case VK_BLEND_OP_OVERLAY_EXT:				return "VK_BLEND_OP_OVERLAY_EXT";
1311		case VK_BLEND_OP_DARKEN_EXT:				return "VK_BLEND_OP_DARKEN_EXT";
1312		case VK_BLEND_OP_LIGHTEN_EXT:				return "VK_BLEND_OP_LIGHTEN_EXT";
1313		case VK_BLEND_OP_COLORDODGE_EXT:			return "VK_BLEND_OP_COLORDODGE_EXT";
1314		case VK_BLEND_OP_COLORBURN_EXT:				return "VK_BLEND_OP_COLORBURN_EXT";
1315		case VK_BLEND_OP_HARDLIGHT_EXT:				return "VK_BLEND_OP_HARDLIGHT_EXT";
1316		case VK_BLEND_OP_SOFTLIGHT_EXT:				return "VK_BLEND_OP_SOFTLIGHT_EXT";
1317		case VK_BLEND_OP_DIFFERENCE_EXT:			return "VK_BLEND_OP_DIFFERENCE_EXT";
1318		case VK_BLEND_OP_EXCLUSION_EXT:				return "VK_BLEND_OP_EXCLUSION_EXT";
1319		case VK_BLEND_OP_INVERT_EXT:				return "VK_BLEND_OP_INVERT_EXT";
1320		case VK_BLEND_OP_INVERT_RGB_EXT:			return "VK_BLEND_OP_INVERT_RGB_EXT";
1321		case VK_BLEND_OP_LINEARDODGE_EXT:			return "VK_BLEND_OP_LINEARDODGE_EXT";
1322		case VK_BLEND_OP_LINEARBURN_EXT:			return "VK_BLEND_OP_LINEARBURN_EXT";
1323		case VK_BLEND_OP_VIVIDLIGHT_EXT:			return "VK_BLEND_OP_VIVIDLIGHT_EXT";
1324		case VK_BLEND_OP_LINEARLIGHT_EXT:			return "VK_BLEND_OP_LINEARLIGHT_EXT";
1325		case VK_BLEND_OP_PINLIGHT_EXT:				return "VK_BLEND_OP_PINLIGHT_EXT";
1326		case VK_BLEND_OP_HARDMIX_EXT:				return "VK_BLEND_OP_HARDMIX_EXT";
1327		case VK_BLEND_OP_HSL_HUE_EXT:				return "VK_BLEND_OP_HSL_HUE_EXT";
1328		case VK_BLEND_OP_HSL_SATURATION_EXT:		return "VK_BLEND_OP_HSL_SATURATION_EXT";
1329		case VK_BLEND_OP_HSL_COLOR_EXT:				return "VK_BLEND_OP_HSL_COLOR_EXT";
1330		case VK_BLEND_OP_HSL_LUMINOSITY_EXT:		return "VK_BLEND_OP_HSL_LUMINOSITY_EXT";
1331		case VK_BLEND_OP_PLUS_EXT:					return "VK_BLEND_OP_PLUS_EXT";
1332		case VK_BLEND_OP_PLUS_CLAMPED_EXT:			return "VK_BLEND_OP_PLUS_CLAMPED_EXT";
1333		case VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT:	return "VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT";
1334		case VK_BLEND_OP_PLUS_DARKER_EXT:			return "VK_BLEND_OP_PLUS_DARKER_EXT";
1335		case VK_BLEND_OP_MINUS_EXT:					return "VK_BLEND_OP_MINUS_EXT";
1336		case VK_BLEND_OP_MINUS_CLAMPED_EXT:			return "VK_BLEND_OP_MINUS_CLAMPED_EXT";
1337		case VK_BLEND_OP_CONTRAST_EXT:				return "VK_BLEND_OP_CONTRAST_EXT";
1338		case VK_BLEND_OP_INVERT_OVG_EXT:			return "VK_BLEND_OP_INVERT_OVG_EXT";
1339		case VK_BLEND_OP_RED_EXT:					return "VK_BLEND_OP_RED_EXT";
1340		case VK_BLEND_OP_GREEN_EXT:					return "VK_BLEND_OP_GREEN_EXT";
1341		case VK_BLEND_OP_BLUE_EXT:					return "VK_BLEND_OP_BLUE_EXT";
1342		case VK_BLEND_OP_MAX_ENUM:					return "VK_BLEND_OP_MAX_ENUM";
1343		default:									return DE_NULL;
1344	}
1345}
1346
1347const char* getCompareOpName (VkCompareOp value)
1348{
1349	switch (value)
1350	{
1351		case VK_COMPARE_OP_NEVER:				return "VK_COMPARE_OP_NEVER";
1352		case VK_COMPARE_OP_LESS:				return "VK_COMPARE_OP_LESS";
1353		case VK_COMPARE_OP_EQUAL:				return "VK_COMPARE_OP_EQUAL";
1354		case VK_COMPARE_OP_LESS_OR_EQUAL:		return "VK_COMPARE_OP_LESS_OR_EQUAL";
1355		case VK_COMPARE_OP_GREATER:				return "VK_COMPARE_OP_GREATER";
1356		case VK_COMPARE_OP_NOT_EQUAL:			return "VK_COMPARE_OP_NOT_EQUAL";
1357		case VK_COMPARE_OP_GREATER_OR_EQUAL:	return "VK_COMPARE_OP_GREATER_OR_EQUAL";
1358		case VK_COMPARE_OP_ALWAYS:				return "VK_COMPARE_OP_ALWAYS";
1359		case VK_COMPARE_OP_MAX_ENUM:			return "VK_COMPARE_OP_MAX_ENUM";
1360		default:								return DE_NULL;
1361	}
1362}
1363
1364const char* getDynamicStateName (VkDynamicState value)
1365{
1366	switch (value)
1367	{
1368		case VK_DYNAMIC_STATE_VIEWPORT:								return "VK_DYNAMIC_STATE_VIEWPORT";
1369		case VK_DYNAMIC_STATE_SCISSOR:								return "VK_DYNAMIC_STATE_SCISSOR";
1370		case VK_DYNAMIC_STATE_LINE_WIDTH:							return "VK_DYNAMIC_STATE_LINE_WIDTH";
1371		case VK_DYNAMIC_STATE_DEPTH_BIAS:							return "VK_DYNAMIC_STATE_DEPTH_BIAS";
1372		case VK_DYNAMIC_STATE_BLEND_CONSTANTS:						return "VK_DYNAMIC_STATE_BLEND_CONSTANTS";
1373		case VK_DYNAMIC_STATE_DEPTH_BOUNDS:							return "VK_DYNAMIC_STATE_DEPTH_BOUNDS";
1374		case VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK:					return "VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK";
1375		case VK_DYNAMIC_STATE_STENCIL_WRITE_MASK:					return "VK_DYNAMIC_STATE_STENCIL_WRITE_MASK";
1376		case VK_DYNAMIC_STATE_STENCIL_REFERENCE:					return "VK_DYNAMIC_STATE_STENCIL_REFERENCE";
1377		case VK_DYNAMIC_STATE_CULL_MODE:							return "VK_DYNAMIC_STATE_CULL_MODE";
1378		case VK_DYNAMIC_STATE_FRONT_FACE:							return "VK_DYNAMIC_STATE_FRONT_FACE";
1379		case VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY:					return "VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY";
1380		case VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT:					return "VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT";
1381		case VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT:					return "VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT";
1382		case VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE:			return "VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE";
1383		case VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE:					return "VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE";
1384		case VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE:					return "VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE";
1385		case VK_DYNAMIC_STATE_DEPTH_COMPARE_OP:						return "VK_DYNAMIC_STATE_DEPTH_COMPARE_OP";
1386		case VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE:				return "VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE";
1387		case VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE:					return "VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE";
1388		case VK_DYNAMIC_STATE_STENCIL_OP:							return "VK_DYNAMIC_STATE_STENCIL_OP";
1389		case VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE:			return "VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE";
1390		case VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE:					return "VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE";
1391		case VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE:				return "VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE";
1392		case VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV:				return "VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV";
1393		case VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT:				return "VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT";
1394		case VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT:					return "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT";
1395		case VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR:	return "VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR";
1396		case VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV:		return "VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV";
1397		case VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV:		return "VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV";
1398		case VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV:					return "VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV";
1399		case VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR:			return "VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR";
1400		case VK_DYNAMIC_STATE_LINE_STIPPLE_EXT:						return "VK_DYNAMIC_STATE_LINE_STIPPLE_EXT";
1401		case VK_DYNAMIC_STATE_VERTEX_INPUT_EXT:						return "VK_DYNAMIC_STATE_VERTEX_INPUT_EXT";
1402		case VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT:				return "VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT";
1403		case VK_DYNAMIC_STATE_LOGIC_OP_EXT:							return "VK_DYNAMIC_STATE_LOGIC_OP_EXT";
1404		case VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT:				return "VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT";
1405		case VK_DYNAMIC_STATE_MAX_ENUM:								return "VK_DYNAMIC_STATE_MAX_ENUM";
1406		default:													return DE_NULL;
1407	}
1408}
1409
1410const char* getFrontFaceName (VkFrontFace value)
1411{
1412	switch (value)
1413	{
1414		case VK_FRONT_FACE_COUNTER_CLOCKWISE:	return "VK_FRONT_FACE_COUNTER_CLOCKWISE";
1415		case VK_FRONT_FACE_CLOCKWISE:			return "VK_FRONT_FACE_CLOCKWISE";
1416		case VK_FRONT_FACE_MAX_ENUM:			return "VK_FRONT_FACE_MAX_ENUM";
1417		default:								return DE_NULL;
1418	}
1419}
1420
1421const char* getVertexInputRateName (VkVertexInputRate value)
1422{
1423	switch (value)
1424	{
1425		case VK_VERTEX_INPUT_RATE_VERTEX:	return "VK_VERTEX_INPUT_RATE_VERTEX";
1426		case VK_VERTEX_INPUT_RATE_INSTANCE:	return "VK_VERTEX_INPUT_RATE_INSTANCE";
1427		case VK_VERTEX_INPUT_RATE_MAX_ENUM:	return "VK_VERTEX_INPUT_RATE_MAX_ENUM";
1428		default:							return DE_NULL;
1429	}
1430}
1431
1432const char* getPrimitiveTopologyName (VkPrimitiveTopology value)
1433{
1434	switch (value)
1435	{
1436		case VK_PRIMITIVE_TOPOLOGY_POINT_LIST:						return "VK_PRIMITIVE_TOPOLOGY_POINT_LIST";
1437		case VK_PRIMITIVE_TOPOLOGY_LINE_LIST:						return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST";
1438		case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP:						return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP";
1439		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST:					return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST";
1440		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP:					return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP";
1441		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN:					return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN";
1442		case VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY:		return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY";
1443		case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY:		return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY";
1444		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY:	return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY";
1445		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY:	return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY";
1446		case VK_PRIMITIVE_TOPOLOGY_PATCH_LIST:						return "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST";
1447		case VK_PRIMITIVE_TOPOLOGY_MAX_ENUM:						return "VK_PRIMITIVE_TOPOLOGY_MAX_ENUM";
1448		default:													return DE_NULL;
1449	}
1450}
1451
1452const char* getPolygonModeName (VkPolygonMode value)
1453{
1454	switch (value)
1455	{
1456		case VK_POLYGON_MODE_FILL:				return "VK_POLYGON_MODE_FILL";
1457		case VK_POLYGON_MODE_LINE:				return "VK_POLYGON_MODE_LINE";
1458		case VK_POLYGON_MODE_POINT:				return "VK_POLYGON_MODE_POINT";
1459		case VK_POLYGON_MODE_FILL_RECTANGLE_NV:	return "VK_POLYGON_MODE_FILL_RECTANGLE_NV";
1460		case VK_POLYGON_MODE_MAX_ENUM:			return "VK_POLYGON_MODE_MAX_ENUM";
1461		default:								return DE_NULL;
1462	}
1463}
1464
1465const char* getStencilOpName (VkStencilOp value)
1466{
1467	switch (value)
1468	{
1469		case VK_STENCIL_OP_KEEP:				return "VK_STENCIL_OP_KEEP";
1470		case VK_STENCIL_OP_ZERO:				return "VK_STENCIL_OP_ZERO";
1471		case VK_STENCIL_OP_REPLACE:				return "VK_STENCIL_OP_REPLACE";
1472		case VK_STENCIL_OP_INCREMENT_AND_CLAMP:	return "VK_STENCIL_OP_INCREMENT_AND_CLAMP";
1473		case VK_STENCIL_OP_DECREMENT_AND_CLAMP:	return "VK_STENCIL_OP_DECREMENT_AND_CLAMP";
1474		case VK_STENCIL_OP_INVERT:				return "VK_STENCIL_OP_INVERT";
1475		case VK_STENCIL_OP_INCREMENT_AND_WRAP:	return "VK_STENCIL_OP_INCREMENT_AND_WRAP";
1476		case VK_STENCIL_OP_DECREMENT_AND_WRAP:	return "VK_STENCIL_OP_DECREMENT_AND_WRAP";
1477		case VK_STENCIL_OP_MAX_ENUM:			return "VK_STENCIL_OP_MAX_ENUM";
1478		default:								return DE_NULL;
1479	}
1480}
1481
1482const char* getLogicOpName (VkLogicOp value)
1483{
1484	switch (value)
1485	{
1486		case VK_LOGIC_OP_CLEAR:			return "VK_LOGIC_OP_CLEAR";
1487		case VK_LOGIC_OP_AND:			return "VK_LOGIC_OP_AND";
1488		case VK_LOGIC_OP_AND_REVERSE:	return "VK_LOGIC_OP_AND_REVERSE";
1489		case VK_LOGIC_OP_COPY:			return "VK_LOGIC_OP_COPY";
1490		case VK_LOGIC_OP_AND_INVERTED:	return "VK_LOGIC_OP_AND_INVERTED";
1491		case VK_LOGIC_OP_NO_OP:			return "VK_LOGIC_OP_NO_OP";
1492		case VK_LOGIC_OP_XOR:			return "VK_LOGIC_OP_XOR";
1493		case VK_LOGIC_OP_OR:			return "VK_LOGIC_OP_OR";
1494		case VK_LOGIC_OP_NOR:			return "VK_LOGIC_OP_NOR";
1495		case VK_LOGIC_OP_EQUIVALENT:	return "VK_LOGIC_OP_EQUIVALENT";
1496		case VK_LOGIC_OP_INVERT:		return "VK_LOGIC_OP_INVERT";
1497		case VK_LOGIC_OP_OR_REVERSE:	return "VK_LOGIC_OP_OR_REVERSE";
1498		case VK_LOGIC_OP_COPY_INVERTED:	return "VK_LOGIC_OP_COPY_INVERTED";
1499		case VK_LOGIC_OP_OR_INVERTED:	return "VK_LOGIC_OP_OR_INVERTED";
1500		case VK_LOGIC_OP_NAND:			return "VK_LOGIC_OP_NAND";
1501		case VK_LOGIC_OP_SET:			return "VK_LOGIC_OP_SET";
1502		case VK_LOGIC_OP_MAX_ENUM:		return "VK_LOGIC_OP_MAX_ENUM";
1503		default:						return DE_NULL;
1504	}
1505}
1506
1507const char* getBorderColorName (VkBorderColor value)
1508{
1509	switch (value)
1510	{
1511		case VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK:	return "VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK";
1512		case VK_BORDER_COLOR_INT_TRANSPARENT_BLACK:		return "VK_BORDER_COLOR_INT_TRANSPARENT_BLACK";
1513		case VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK:		return "VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK";
1514		case VK_BORDER_COLOR_INT_OPAQUE_BLACK:			return "VK_BORDER_COLOR_INT_OPAQUE_BLACK";
1515		case VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE:		return "VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE";
1516		case VK_BORDER_COLOR_INT_OPAQUE_WHITE:			return "VK_BORDER_COLOR_INT_OPAQUE_WHITE";
1517		case VK_BORDER_COLOR_FLOAT_CUSTOM_EXT:			return "VK_BORDER_COLOR_FLOAT_CUSTOM_EXT";
1518		case VK_BORDER_COLOR_INT_CUSTOM_EXT:			return "VK_BORDER_COLOR_INT_CUSTOM_EXT";
1519		case VK_BORDER_COLOR_MAX_ENUM:					return "VK_BORDER_COLOR_MAX_ENUM";
1520		default:										return DE_NULL;
1521	}
1522}
1523
1524const char* getFilterName (VkFilter value)
1525{
1526	switch (value)
1527	{
1528		case VK_FILTER_NEAREST:		return "VK_FILTER_NEAREST";
1529		case VK_FILTER_LINEAR:		return "VK_FILTER_LINEAR";
1530		case VK_FILTER_CUBIC_IMG:	return "VK_FILTER_CUBIC_IMG";
1531		case VK_FILTER_MAX_ENUM:	return "VK_FILTER_MAX_ENUM";
1532		default:					return DE_NULL;
1533	}
1534}
1535
1536const char* getSamplerAddressModeName (VkSamplerAddressMode value)
1537{
1538	switch (value)
1539	{
1540		case VK_SAMPLER_ADDRESS_MODE_REPEAT:				return "VK_SAMPLER_ADDRESS_MODE_REPEAT";
1541		case VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT:		return "VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT";
1542		case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE:			return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE";
1543		case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER:		return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER";
1544		case VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE:	return "VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE";
1545		case VK_SAMPLER_ADDRESS_MODE_MAX_ENUM:				return "VK_SAMPLER_ADDRESS_MODE_MAX_ENUM";
1546		default:											return DE_NULL;
1547	}
1548}
1549
1550const char* getSamplerMipmapModeName (VkSamplerMipmapMode value)
1551{
1552	switch (value)
1553	{
1554		case VK_SAMPLER_MIPMAP_MODE_NEAREST:	return "VK_SAMPLER_MIPMAP_MODE_NEAREST";
1555		case VK_SAMPLER_MIPMAP_MODE_LINEAR:		return "VK_SAMPLER_MIPMAP_MODE_LINEAR";
1556		case VK_SAMPLER_MIPMAP_MODE_MAX_ENUM:	return "VK_SAMPLER_MIPMAP_MODE_MAX_ENUM";
1557		default:								return DE_NULL;
1558	}
1559}
1560
1561const char* getDescriptorTypeName (VkDescriptorType value)
1562{
1563	switch (value)
1564	{
1565		case VK_DESCRIPTOR_TYPE_SAMPLER:					return "VK_DESCRIPTOR_TYPE_SAMPLER";
1566		case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER:		return "VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER";
1567		case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:				return "VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE";
1568		case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:				return "VK_DESCRIPTOR_TYPE_STORAGE_IMAGE";
1569		case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER:		return "VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER";
1570		case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER:		return "VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER";
1571		case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER:				return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER";
1572		case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER:				return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER";
1573		case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC:		return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC";
1574		case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC:		return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC";
1575		case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:			return "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT";
1576		case VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK:		return "VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK";
1577		case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR:	return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR";
1578		case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV:	return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV";
1579		case VK_DESCRIPTOR_TYPE_MUTABLE_VALVE:				return "VK_DESCRIPTOR_TYPE_MUTABLE_VALVE";
1580		case VK_DESCRIPTOR_TYPE_MAX_ENUM:					return "VK_DESCRIPTOR_TYPE_MAX_ENUM";
1581		default:											return DE_NULL;
1582	}
1583}
1584
1585const char* getAttachmentLoadOpName (VkAttachmentLoadOp value)
1586{
1587	switch (value)
1588	{
1589		case VK_ATTACHMENT_LOAD_OP_LOAD:		return "VK_ATTACHMENT_LOAD_OP_LOAD";
1590		case VK_ATTACHMENT_LOAD_OP_CLEAR:		return "VK_ATTACHMENT_LOAD_OP_CLEAR";
1591		case VK_ATTACHMENT_LOAD_OP_DONT_CARE:	return "VK_ATTACHMENT_LOAD_OP_DONT_CARE";
1592		case VK_ATTACHMENT_LOAD_OP_NONE_EXT:	return "VK_ATTACHMENT_LOAD_OP_NONE_EXT";
1593		case VK_ATTACHMENT_LOAD_OP_MAX_ENUM:	return "VK_ATTACHMENT_LOAD_OP_MAX_ENUM";
1594		default:								return DE_NULL;
1595	}
1596}
1597
1598const char* getAttachmentStoreOpName (VkAttachmentStoreOp value)
1599{
1600	switch (value)
1601	{
1602		case VK_ATTACHMENT_STORE_OP_STORE:		return "VK_ATTACHMENT_STORE_OP_STORE";
1603		case VK_ATTACHMENT_STORE_OP_DONT_CARE:	return "VK_ATTACHMENT_STORE_OP_DONT_CARE";
1604		case VK_ATTACHMENT_STORE_OP_NONE:		return "VK_ATTACHMENT_STORE_OP_NONE";
1605		case VK_ATTACHMENT_STORE_OP_MAX_ENUM:	return "VK_ATTACHMENT_STORE_OP_MAX_ENUM";
1606		default:								return DE_NULL;
1607	}
1608}
1609
1610const char* getPipelineBindPointName (VkPipelineBindPoint value)
1611{
1612	switch (value)
1613	{
1614		case VK_PIPELINE_BIND_POINT_GRAPHICS:				return "VK_PIPELINE_BIND_POINT_GRAPHICS";
1615		case VK_PIPELINE_BIND_POINT_COMPUTE:				return "VK_PIPELINE_BIND_POINT_COMPUTE";
1616		case VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR:		return "VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR";
1617		case VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI:	return "VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI";
1618		case VK_PIPELINE_BIND_POINT_MAX_ENUM:				return "VK_PIPELINE_BIND_POINT_MAX_ENUM";
1619		default:											return DE_NULL;
1620	}
1621}
1622
1623const char* getCommandBufferLevelName (VkCommandBufferLevel value)
1624{
1625	switch (value)
1626	{
1627		case VK_COMMAND_BUFFER_LEVEL_PRIMARY:	return "VK_COMMAND_BUFFER_LEVEL_PRIMARY";
1628		case VK_COMMAND_BUFFER_LEVEL_SECONDARY:	return "VK_COMMAND_BUFFER_LEVEL_SECONDARY";
1629		case VK_COMMAND_BUFFER_LEVEL_MAX_ENUM:	return "VK_COMMAND_BUFFER_LEVEL_MAX_ENUM";
1630		default:								return DE_NULL;
1631	}
1632}
1633
1634const char* getIndexTypeName (VkIndexType value)
1635{
1636	switch (value)
1637	{
1638		case VK_INDEX_TYPE_UINT16:		return "VK_INDEX_TYPE_UINT16";
1639		case VK_INDEX_TYPE_UINT32:		return "VK_INDEX_TYPE_UINT32";
1640		case VK_INDEX_TYPE_NONE_KHR:	return "VK_INDEX_TYPE_NONE_KHR";
1641		case VK_INDEX_TYPE_UINT8_EXT:	return "VK_INDEX_TYPE_UINT8_EXT";
1642		case VK_INDEX_TYPE_MAX_ENUM:	return "VK_INDEX_TYPE_MAX_ENUM";
1643		default:						return DE_NULL;
1644	}
1645}
1646
1647const char* getSubpassContentsName (VkSubpassContents value)
1648{
1649	switch (value)
1650	{
1651		case VK_SUBPASS_CONTENTS_INLINE:					return "VK_SUBPASS_CONTENTS_INLINE";
1652		case VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS:	return "VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS";
1653		case VK_SUBPASS_CONTENTS_MAX_ENUM:					return "VK_SUBPASS_CONTENTS_MAX_ENUM";
1654		default:											return DE_NULL;
1655	}
1656}
1657
1658const char* getPointClippingBehaviorName (VkPointClippingBehavior value)
1659{
1660	switch (value)
1661	{
1662		case VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES:		return "VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES";
1663		case VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY:	return "VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY";
1664		case VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM:				return "VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM";
1665		default:												return DE_NULL;
1666	}
1667}
1668
1669const char* getTessellationDomainOriginName (VkTessellationDomainOrigin value)
1670{
1671	switch (value)
1672	{
1673		case VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT:	return "VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT";
1674		case VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT:	return "VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT";
1675		case VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM:	return "VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM";
1676		default:										return DE_NULL;
1677	}
1678}
1679
1680const char* getSamplerYcbcrModelConversionName (VkSamplerYcbcrModelConversion value)
1681{
1682	switch (value)
1683	{
1684		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY:	return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY";
1685		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY:	return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY";
1686		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709:		return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709";
1687		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601:		return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601";
1688		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020:		return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020";
1689		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM:		return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM";
1690		default:												return DE_NULL;
1691	}
1692}
1693
1694const char* getSamplerYcbcrRangeName (VkSamplerYcbcrRange value)
1695{
1696	switch (value)
1697	{
1698		case VK_SAMPLER_YCBCR_RANGE_ITU_FULL:	return "VK_SAMPLER_YCBCR_RANGE_ITU_FULL";
1699		case VK_SAMPLER_YCBCR_RANGE_ITU_NARROW:	return "VK_SAMPLER_YCBCR_RANGE_ITU_NARROW";
1700		case VK_SAMPLER_YCBCR_RANGE_MAX_ENUM:	return "VK_SAMPLER_YCBCR_RANGE_MAX_ENUM";
1701		default:								return DE_NULL;
1702	}
1703}
1704
1705const char* getChromaLocationName (VkChromaLocation value)
1706{
1707	switch (value)
1708	{
1709		case VK_CHROMA_LOCATION_COSITED_EVEN:	return "VK_CHROMA_LOCATION_COSITED_EVEN";
1710		case VK_CHROMA_LOCATION_MIDPOINT:		return "VK_CHROMA_LOCATION_MIDPOINT";
1711		case VK_CHROMA_LOCATION_MAX_ENUM:		return "VK_CHROMA_LOCATION_MAX_ENUM";
1712		default:								return DE_NULL;
1713	}
1714}
1715
1716const char* getDescriptorUpdateTemplateTypeName (VkDescriptorUpdateTemplateType value)
1717{
1718	switch (value)
1719	{
1720		case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET:			return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET";
1721		case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR:	return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR";
1722		case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM:				return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM";
1723		default:														return DE_NULL;
1724	}
1725}
1726
1727const char* getDriverIdName (VkDriverId value)
1728{
1729	switch (value)
1730	{
1731		case VK_DRIVER_ID_AMD_PROPRIETARY:				return "VK_DRIVER_ID_AMD_PROPRIETARY";
1732		case VK_DRIVER_ID_AMD_OPEN_SOURCE:				return "VK_DRIVER_ID_AMD_OPEN_SOURCE";
1733		case VK_DRIVER_ID_MESA_RADV:					return "VK_DRIVER_ID_MESA_RADV";
1734		case VK_DRIVER_ID_NVIDIA_PROPRIETARY:			return "VK_DRIVER_ID_NVIDIA_PROPRIETARY";
1735		case VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS:	return "VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS";
1736		case VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA:		return "VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA";
1737		case VK_DRIVER_ID_IMAGINATION_PROPRIETARY:		return "VK_DRIVER_ID_IMAGINATION_PROPRIETARY";
1738		case VK_DRIVER_ID_QUALCOMM_PROPRIETARY:			return "VK_DRIVER_ID_QUALCOMM_PROPRIETARY";
1739		case VK_DRIVER_ID_ARM_PROPRIETARY:				return "VK_DRIVER_ID_ARM_PROPRIETARY";
1740		case VK_DRIVER_ID_GOOGLE_SWIFTSHADER:			return "VK_DRIVER_ID_GOOGLE_SWIFTSHADER";
1741		case VK_DRIVER_ID_GGP_PROPRIETARY:				return "VK_DRIVER_ID_GGP_PROPRIETARY";
1742		case VK_DRIVER_ID_BROADCOM_PROPRIETARY:			return "VK_DRIVER_ID_BROADCOM_PROPRIETARY";
1743		case VK_DRIVER_ID_MESA_LLVMPIPE:				return "VK_DRIVER_ID_MESA_LLVMPIPE";
1744		case VK_DRIVER_ID_MOLTENVK:						return "VK_DRIVER_ID_MOLTENVK";
1745		case VK_DRIVER_ID_COREAVI_PROPRIETARY:			return "VK_DRIVER_ID_COREAVI_PROPRIETARY";
1746		case VK_DRIVER_ID_JUICE_PROPRIETARY:			return "VK_DRIVER_ID_JUICE_PROPRIETARY";
1747		case VK_DRIVER_ID_VERISILICON_PROPRIETARY:		return "VK_DRIVER_ID_VERISILICON_PROPRIETARY";
1748		case VK_DRIVER_ID_MESA_TURNIP:					return "VK_DRIVER_ID_MESA_TURNIP";
1749		case VK_DRIVER_ID_MESA_V3DV:					return "VK_DRIVER_ID_MESA_V3DV";
1750		case VK_DRIVER_ID_MESA_PANVK:					return "VK_DRIVER_ID_MESA_PANVK";
1751		case VK_DRIVER_ID_SAMSUNG_PROPRIETARY:			return "VK_DRIVER_ID_SAMSUNG_PROPRIETARY";
1752		case VK_DRIVER_ID_MESA_VENUS:					return "VK_DRIVER_ID_MESA_VENUS";
1753		case VK_DRIVER_ID_MAX_ENUM:						return "VK_DRIVER_ID_MAX_ENUM";
1754		default:										return DE_NULL;
1755	}
1756}
1757
1758const char* getShaderFloatControlsIndependenceName (VkShaderFloatControlsIndependence value)
1759{
1760	switch (value)
1761	{
1762		case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY:	return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY";
1763		case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL:			return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL";
1764		case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE:		return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE";
1765		case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM:	return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM";
1766		default:												return DE_NULL;
1767	}
1768}
1769
1770const char* getSamplerReductionModeName (VkSamplerReductionMode value)
1771{
1772	switch (value)
1773	{
1774		case VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE:	return "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE";
1775		case VK_SAMPLER_REDUCTION_MODE_MIN:					return "VK_SAMPLER_REDUCTION_MODE_MIN";
1776		case VK_SAMPLER_REDUCTION_MODE_MAX:					return "VK_SAMPLER_REDUCTION_MODE_MAX";
1777		case VK_SAMPLER_REDUCTION_MODE_MAX_ENUM:			return "VK_SAMPLER_REDUCTION_MODE_MAX_ENUM";
1778		default:											return DE_NULL;
1779	}
1780}
1781
1782const char* getSemaphoreTypeName (VkSemaphoreType value)
1783{
1784	switch (value)
1785	{
1786		case VK_SEMAPHORE_TYPE_BINARY:		return "VK_SEMAPHORE_TYPE_BINARY";
1787		case VK_SEMAPHORE_TYPE_TIMELINE:	return "VK_SEMAPHORE_TYPE_TIMELINE";
1788		case VK_SEMAPHORE_TYPE_MAX_ENUM:	return "VK_SEMAPHORE_TYPE_MAX_ENUM";
1789		default:							return DE_NULL;
1790	}
1791}
1792
1793const char* getPresentModeKHRName (VkPresentModeKHR value)
1794{
1795	switch (value)
1796	{
1797		case VK_PRESENT_MODE_IMMEDIATE_KHR:					return "VK_PRESENT_MODE_IMMEDIATE_KHR";
1798		case VK_PRESENT_MODE_MAILBOX_KHR:					return "VK_PRESENT_MODE_MAILBOX_KHR";
1799		case VK_PRESENT_MODE_FIFO_KHR:						return "VK_PRESENT_MODE_FIFO_KHR";
1800		case VK_PRESENT_MODE_FIFO_RELAXED_KHR:				return "VK_PRESENT_MODE_FIFO_RELAXED_KHR";
1801		case VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR:		return "VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR";
1802		case VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR:	return "VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR";
1803		case VK_PRESENT_MODE_MAX_ENUM_KHR:					return "VK_PRESENT_MODE_MAX_ENUM_KHR";
1804		default:											return DE_NULL;
1805	}
1806}
1807
1808const char* getColorSpaceKHRName (VkColorSpaceKHR value)
1809{
1810	switch (value)
1811	{
1812		case VK_COLOR_SPACE_SRGB_NONLINEAR_KHR:				return "VK_COLOR_SPACE_SRGB_NONLINEAR_KHR";
1813		case VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT:		return "VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT";
1814		case VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT:		return "VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT";
1815		case VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT:			return "VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT";
1816		case VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT:			return "VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT";
1817		case VK_COLOR_SPACE_BT709_LINEAR_EXT:				return "VK_COLOR_SPACE_BT709_LINEAR_EXT";
1818		case VK_COLOR_SPACE_BT709_NONLINEAR_EXT:			return "VK_COLOR_SPACE_BT709_NONLINEAR_EXT";
1819		case VK_COLOR_SPACE_BT2020_LINEAR_EXT:				return "VK_COLOR_SPACE_BT2020_LINEAR_EXT";
1820		case VK_COLOR_SPACE_HDR10_ST2084_EXT:				return "VK_COLOR_SPACE_HDR10_ST2084_EXT";
1821		case VK_COLOR_SPACE_DOLBYVISION_EXT:				return "VK_COLOR_SPACE_DOLBYVISION_EXT";
1822		case VK_COLOR_SPACE_HDR10_HLG_EXT:					return "VK_COLOR_SPACE_HDR10_HLG_EXT";
1823		case VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT:			return "VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT";
1824		case VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT:			return "VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT";
1825		case VK_COLOR_SPACE_PASS_THROUGH_EXT:				return "VK_COLOR_SPACE_PASS_THROUGH_EXT";
1826		case VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT:	return "VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT";
1827		case VK_COLOR_SPACE_DISPLAY_NATIVE_AMD:				return "VK_COLOR_SPACE_DISPLAY_NATIVE_AMD";
1828		case VK_COLOR_SPACE_MAX_ENUM_KHR:					return "VK_COLOR_SPACE_MAX_ENUM_KHR";
1829		default:											return DE_NULL;
1830	}
1831}
1832
1833const char* getPerformanceCounterUnitKHRName (VkPerformanceCounterUnitKHR value)
1834{
1835	switch (value)
1836	{
1837		case VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR:			return "VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR";
1838		case VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR:		return "VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR";
1839		case VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR:		return "VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR";
1840		case VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR";
1841		case VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR:	return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR";
1842		case VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR:			return "VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR";
1843		case VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR";
1844		case VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR";
1845		case VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR";
1846		case VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR";
1847		case VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR:			return "VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR";
1848		case VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR:			return "VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR";
1849		default:												return DE_NULL;
1850	}
1851}
1852
1853const char* getPerformanceCounterScopeKHRName (VkPerformanceCounterScopeKHR value)
1854{
1855	switch (value)
1856	{
1857		case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR:	return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR";
1858		case VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR:		return "VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR";
1859		case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR:			return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR";
1860		case VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR:			return "VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR";
1861		default:												return DE_NULL;
1862	}
1863}
1864
1865const char* getPerformanceCounterStorageKHRName (VkPerformanceCounterStorageKHR value)
1866{
1867	switch (value)
1868	{
1869		case VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR:		return "VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR";
1870		case VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR:		return "VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR";
1871		case VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR:		return "VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR";
1872		case VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR:		return "VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR";
1873		case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR:	return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR";
1874		case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR:	return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR";
1875		case VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR:	return "VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR";
1876		default:											return DE_NULL;
1877	}
1878}
1879
1880const char* getQueueGlobalPriorityKHRName (VkQueueGlobalPriorityKHR value)
1881{
1882	switch (value)
1883	{
1884		case VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR:		return "VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR";
1885		case VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR:	return "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR";
1886		case VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR:		return "VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR";
1887		case VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR:	return "VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR";
1888		case VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR:	return "VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR";
1889		default:									return DE_NULL;
1890	}
1891}
1892
1893const char* getFragmentShadingRateCombinerOpKHRName (VkFragmentShadingRateCombinerOpKHR value)
1894{
1895	switch (value)
1896	{
1897		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR:		return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR";
1898		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR:	return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR";
1899		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR:		return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR";
1900		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR:		return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR";
1901		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR:		return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR";
1902		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR:	return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR";
1903		default:												return DE_NULL;
1904	}
1905}
1906
1907const char* getPipelineExecutableStatisticFormatKHRName (VkPipelineExecutableStatisticFormatKHR value)
1908{
1909	switch (value)
1910	{
1911		case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR:	return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR";
1912		case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR:		return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR";
1913		case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR:	return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR";
1914		case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR:	return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR";
1915		case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR:	return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR";
1916		default:													return DE_NULL;
1917	}
1918}
1919
1920const char* getDebugReportObjectTypeEXTName (VkDebugReportObjectTypeEXT value)
1921{
1922	switch (value)
1923	{
1924		case VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT";
1925		case VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT";
1926		case VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT";
1927		case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT";
1928		case VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT:							return "VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT";
1929		case VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT";
1930		case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT";
1931		case VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT:							return "VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT";
1932		case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT";
1933		case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT";
1934		case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT:							return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT";
1935		case VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT:							return "VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT";
1936		case VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT";
1937		case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT";
1938		case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT";
1939		case VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT";
1940		case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT";
1941		case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT";
1942		case VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT";
1943		case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT";
1944		case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT:			return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT";
1945		case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT";
1946		case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT";
1947		case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT";
1948		case VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT";
1949		case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT";
1950		case VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT";
1951		case VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT";
1952		case VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT:		return "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT";
1953		case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT";
1954		case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT";
1955		case VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT:			return "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT";
1956		case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT:		return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT";
1957		case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT:	return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT";
1958		case VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT";
1959		case VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT";
1960		case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT:	return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT";
1961		case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT:		return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT";
1962		case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT:		return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT";
1963		case VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT";
1964		default:															return DE_NULL;
1965	}
1966}
1967
1968const char* getRasterizationOrderAMDName (VkRasterizationOrderAMD value)
1969{
1970	switch (value)
1971	{
1972		case VK_RASTERIZATION_ORDER_STRICT_AMD:		return "VK_RASTERIZATION_ORDER_STRICT_AMD";
1973		case VK_RASTERIZATION_ORDER_RELAXED_AMD:	return "VK_RASTERIZATION_ORDER_RELAXED_AMD";
1974		case VK_RASTERIZATION_ORDER_MAX_ENUM_AMD:	return "VK_RASTERIZATION_ORDER_MAX_ENUM_AMD";
1975		default:									return DE_NULL;
1976	}
1977}
1978
1979const char* getShaderInfoTypeAMDName (VkShaderInfoTypeAMD value)
1980{
1981	switch (value)
1982	{
1983		case VK_SHADER_INFO_TYPE_STATISTICS_AMD:	return "VK_SHADER_INFO_TYPE_STATISTICS_AMD";
1984		case VK_SHADER_INFO_TYPE_BINARY_AMD:		return "VK_SHADER_INFO_TYPE_BINARY_AMD";
1985		case VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD:	return "VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD";
1986		case VK_SHADER_INFO_TYPE_MAX_ENUM_AMD:		return "VK_SHADER_INFO_TYPE_MAX_ENUM_AMD";
1987		default:									return DE_NULL;
1988	}
1989}
1990
1991const char* getValidationCheckEXTName (VkValidationCheckEXT value)
1992{
1993	switch (value)
1994	{
1995		case VK_VALIDATION_CHECK_ALL_EXT:		return "VK_VALIDATION_CHECK_ALL_EXT";
1996		case VK_VALIDATION_CHECK_SHADERS_EXT:	return "VK_VALIDATION_CHECK_SHADERS_EXT";
1997		case VK_VALIDATION_CHECK_MAX_ENUM_EXT:	return "VK_VALIDATION_CHECK_MAX_ENUM_EXT";
1998		default:								return DE_NULL;
1999	}
2000}
2001
2002const char* getDisplayPowerStateEXTName (VkDisplayPowerStateEXT value)
2003{
2004	switch (value)
2005	{
2006		case VK_DISPLAY_POWER_STATE_OFF_EXT:		return "VK_DISPLAY_POWER_STATE_OFF_EXT";
2007		case VK_DISPLAY_POWER_STATE_SUSPEND_EXT:	return "VK_DISPLAY_POWER_STATE_SUSPEND_EXT";
2008		case VK_DISPLAY_POWER_STATE_ON_EXT:			return "VK_DISPLAY_POWER_STATE_ON_EXT";
2009		case VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT:	return "VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT";
2010		default:									return DE_NULL;
2011	}
2012}
2013
2014const char* getDeviceEventTypeEXTName (VkDeviceEventTypeEXT value)
2015{
2016	switch (value)
2017	{
2018		case VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT:	return "VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT";
2019		case VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT:			return "VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT";
2020		default:										return DE_NULL;
2021	}
2022}
2023
2024const char* getDisplayEventTypeEXTName (VkDisplayEventTypeEXT value)
2025{
2026	switch (value)
2027	{
2028		case VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT:	return "VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT";
2029		case VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT:		return "VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT";
2030		default:										return DE_NULL;
2031	}
2032}
2033
2034const char* getViewportCoordinateSwizzleNVName (VkViewportCoordinateSwizzleNV value)
2035{
2036	switch (value)
2037	{
2038		case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV";
2039		case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV";
2040		case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV";
2041		case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV";
2042		case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV";
2043		case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV";
2044		case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV";
2045		case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV";
2046		case VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV";
2047		default:											return DE_NULL;
2048	}
2049}
2050
2051const char* getDiscardRectangleModeEXTName (VkDiscardRectangleModeEXT value)
2052{
2053	switch (value)
2054	{
2055		case VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT:	return "VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT";
2056		case VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT:	return "VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT";
2057		case VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT:	return "VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT";
2058		default:										return DE_NULL;
2059	}
2060}
2061
2062const char* getConservativeRasterizationModeEXTName (VkConservativeRasterizationModeEXT value)
2063{
2064	switch (value)
2065	{
2066		case VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT:		return "VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT";
2067		case VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT:	return "VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT";
2068		case VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT:	return "VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT";
2069		case VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT:		return "VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT";
2070		default:													return DE_NULL;
2071	}
2072}
2073
2074const char* getBlendOverlapEXTName (VkBlendOverlapEXT value)
2075{
2076	switch (value)
2077	{
2078		case VK_BLEND_OVERLAP_UNCORRELATED_EXT:	return "VK_BLEND_OVERLAP_UNCORRELATED_EXT";
2079		case VK_BLEND_OVERLAP_DISJOINT_EXT:		return "VK_BLEND_OVERLAP_DISJOINT_EXT";
2080		case VK_BLEND_OVERLAP_CONJOINT_EXT:		return "VK_BLEND_OVERLAP_CONJOINT_EXT";
2081		case VK_BLEND_OVERLAP_MAX_ENUM_EXT:		return "VK_BLEND_OVERLAP_MAX_ENUM_EXT";
2082		default:								return DE_NULL;
2083	}
2084}
2085
2086const char* getCoverageModulationModeNVName (VkCoverageModulationModeNV value)
2087{
2088	switch (value)
2089	{
2090		case VK_COVERAGE_MODULATION_MODE_NONE_NV:		return "VK_COVERAGE_MODULATION_MODE_NONE_NV";
2091		case VK_COVERAGE_MODULATION_MODE_RGB_NV:		return "VK_COVERAGE_MODULATION_MODE_RGB_NV";
2092		case VK_COVERAGE_MODULATION_MODE_ALPHA_NV:		return "VK_COVERAGE_MODULATION_MODE_ALPHA_NV";
2093		case VK_COVERAGE_MODULATION_MODE_RGBA_NV:		return "VK_COVERAGE_MODULATION_MODE_RGBA_NV";
2094		case VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV:	return "VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV";
2095		default:										return DE_NULL;
2096	}
2097}
2098
2099const char* getValidationCacheHeaderVersionEXTName (VkValidationCacheHeaderVersionEXT value)
2100{
2101	switch (value)
2102	{
2103		case VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT:		return "VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT";
2104		case VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT:	return "VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT";
2105		default:												return DE_NULL;
2106	}
2107}
2108
2109const char* getShadingRatePaletteEntryNVName (VkShadingRatePaletteEntryNV value)
2110{
2111	switch (value)
2112	{
2113		case VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV:				return "VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV";
2114		case VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV";
2115		case VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV";
2116		case VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV";
2117		case VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV";
2118		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV";
2119		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV";
2120		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV";
2121		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV";
2122		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV";
2123		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV";
2124		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV";
2125		case VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV:						return "VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV";
2126		default:															return DE_NULL;
2127	}
2128}
2129
2130const char* getCoarseSampleOrderTypeNVName (VkCoarseSampleOrderTypeNV value)
2131{
2132	switch (value)
2133	{
2134		case VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV:		return "VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV";
2135		case VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV:			return "VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV";
2136		case VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV:	return "VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV";
2137		case VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV:	return "VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV";
2138		case VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV:		return "VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV";
2139		default:											return DE_NULL;
2140	}
2141}
2142
2143const char* getRayTracingShaderGroupTypeKHRName (VkRayTracingShaderGroupTypeKHR value)
2144{
2145	switch (value)
2146	{
2147		case VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR:				return "VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR";
2148		case VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR:	return "VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR";
2149		case VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR:	return "VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR";
2150		case VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR:				return "VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR";
2151		default:														return DE_NULL;
2152	}
2153}
2154
2155const char* getGeometryTypeKHRName (VkGeometryTypeKHR value)
2156{
2157	switch (value)
2158	{
2159		case VK_GEOMETRY_TYPE_TRIANGLES_KHR:	return "VK_GEOMETRY_TYPE_TRIANGLES_KHR";
2160		case VK_GEOMETRY_TYPE_AABBS_KHR:		return "VK_GEOMETRY_TYPE_AABBS_KHR";
2161		case VK_GEOMETRY_TYPE_INSTANCES_KHR:	return "VK_GEOMETRY_TYPE_INSTANCES_KHR";
2162		case VK_GEOMETRY_TYPE_MAX_ENUM_KHR:		return "VK_GEOMETRY_TYPE_MAX_ENUM_KHR";
2163		default:								return DE_NULL;
2164	}
2165}
2166
2167const char* getAccelerationStructureTypeKHRName (VkAccelerationStructureTypeKHR value)
2168{
2169	switch (value)
2170	{
2171		case VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR:		return "VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR";
2172		case VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR:	return "VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR";
2173		case VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR:		return "VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR";
2174		case VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR:		return "VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR";
2175		default:												return DE_NULL;
2176	}
2177}
2178
2179const char* getCopyAccelerationStructureModeKHRName (VkCopyAccelerationStructureModeKHR value)
2180{
2181	switch (value)
2182	{
2183		case VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR:			return "VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR";
2184		case VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR:		return "VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR";
2185		case VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR:		return "VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR";
2186		case VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR:	return "VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR";
2187		case VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR:		return "VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR";
2188		default:													return DE_NULL;
2189	}
2190}
2191
2192const char* getAccelerationStructureMemoryRequirementsTypeNVName (VkAccelerationStructureMemoryRequirementsTypeNV value)
2193{
2194	switch (value)
2195	{
2196		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV:			return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV";
2197		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV:	return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV";
2198		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV:	return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV";
2199		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV:		return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV";
2200		default:																	return DE_NULL;
2201	}
2202}
2203
2204const char* getTimeDomainEXTName (VkTimeDomainEXT value)
2205{
2206	switch (value)
2207	{
2208		case VK_TIME_DOMAIN_DEVICE_EXT:						return "VK_TIME_DOMAIN_DEVICE_EXT";
2209		case VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT:			return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT";
2210		case VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT:		return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT";
2211		case VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT:	return "VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT";
2212		case VK_TIME_DOMAIN_MAX_ENUM_EXT:					return "VK_TIME_DOMAIN_MAX_ENUM_EXT";
2213		default:											return DE_NULL;
2214	}
2215}
2216
2217const char* getMemoryOverallocationBehaviorAMDName (VkMemoryOverallocationBehaviorAMD value)
2218{
2219	switch (value)
2220	{
2221		case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD:		return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD";
2222		case VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD:		return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD";
2223		case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD:	return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD";
2224		case VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD:	return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD";
2225		default:												return DE_NULL;
2226	}
2227}
2228
2229const char* getPerformanceConfigurationTypeINTELName (VkPerformanceConfigurationTypeINTEL value)
2230{
2231	switch (value)
2232	{
2233		case VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL:	return "VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL";
2234		case VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL:									return "VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL";
2235		default:																				return DE_NULL;
2236	}
2237}
2238
2239const char* getQueryPoolSamplingModeINTELName (VkQueryPoolSamplingModeINTEL value)
2240{
2241	switch (value)
2242	{
2243		case VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL:		return "VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL";
2244		case VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL:	return "VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL";
2245		default:											return DE_NULL;
2246	}
2247}
2248
2249const char* getPerformanceOverrideTypeINTELName (VkPerformanceOverrideTypeINTEL value)
2250{
2251	switch (value)
2252	{
2253		case VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL:		return "VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL";
2254		case VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL:	return "VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL";
2255		case VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL:			return "VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL";
2256		default:													return DE_NULL;
2257	}
2258}
2259
2260const char* getPerformanceParameterTypeINTELName (VkPerformanceParameterTypeINTEL value)
2261{
2262	switch (value)
2263	{
2264		case VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL:		return "VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL";
2265		case VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL:	return "VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL";
2266		case VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL:					return "VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL";
2267		default:															return DE_NULL;
2268	}
2269}
2270
2271const char* getPerformanceValueTypeINTELName (VkPerformanceValueTypeINTEL value)
2272{
2273	switch (value)
2274	{
2275		case VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL:	return "VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL";
2276		case VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL:	return "VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL";
2277		case VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL:		return "VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL";
2278		case VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL:		return "VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL";
2279		case VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL:	return "VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL";
2280		case VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL:	return "VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL";
2281		default:										return DE_NULL;
2282	}
2283}
2284
2285const char* getValidationFeatureEnableEXTName (VkValidationFeatureEnableEXT value)
2286{
2287	switch (value)
2288	{
2289		case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT:							return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT";
2290		case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT:	return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT";
2291		case VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT:						return "VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT";
2292		case VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT:							return "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT";
2293		case VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT:			return "VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT";
2294		case VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT:								return "VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT";
2295		default:																	return DE_NULL;
2296	}
2297}
2298
2299const char* getValidationFeatureDisableEXTName (VkValidationFeatureDisableEXT value)
2300{
2301	switch (value)
2302	{
2303		case VK_VALIDATION_FEATURE_DISABLE_ALL_EXT:						return "VK_VALIDATION_FEATURE_DISABLE_ALL_EXT";
2304		case VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT:					return "VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT";
2305		case VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT:			return "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT";
2306		case VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT:			return "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT";
2307		case VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT:		return "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT";
2308		case VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT:				return "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT";
2309		case VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT:			return "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT";
2310		case VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT:	return "VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT";
2311		case VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT:				return "VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT";
2312		default:														return DE_NULL;
2313	}
2314}
2315
2316const char* getComponentTypeNVName (VkComponentTypeNV value)
2317{
2318	switch (value)
2319	{
2320		case VK_COMPONENT_TYPE_FLOAT16_NV:	return "VK_COMPONENT_TYPE_FLOAT16_NV";
2321		case VK_COMPONENT_TYPE_FLOAT32_NV:	return "VK_COMPONENT_TYPE_FLOAT32_NV";
2322		case VK_COMPONENT_TYPE_FLOAT64_NV:	return "VK_COMPONENT_TYPE_FLOAT64_NV";
2323		case VK_COMPONENT_TYPE_SINT8_NV:	return "VK_COMPONENT_TYPE_SINT8_NV";
2324		case VK_COMPONENT_TYPE_SINT16_NV:	return "VK_COMPONENT_TYPE_SINT16_NV";
2325		case VK_COMPONENT_TYPE_SINT32_NV:	return "VK_COMPONENT_TYPE_SINT32_NV";
2326		case VK_COMPONENT_TYPE_SINT64_NV:	return "VK_COMPONENT_TYPE_SINT64_NV";
2327		case VK_COMPONENT_TYPE_UINT8_NV:	return "VK_COMPONENT_TYPE_UINT8_NV";
2328		case VK_COMPONENT_TYPE_UINT16_NV:	return "VK_COMPONENT_TYPE_UINT16_NV";
2329		case VK_COMPONENT_TYPE_UINT32_NV:	return "VK_COMPONENT_TYPE_UINT32_NV";
2330		case VK_COMPONENT_TYPE_UINT64_NV:	return "VK_COMPONENT_TYPE_UINT64_NV";
2331		case VK_COMPONENT_TYPE_MAX_ENUM_NV:	return "VK_COMPONENT_TYPE_MAX_ENUM_NV";
2332		default:							return DE_NULL;
2333	}
2334}
2335
2336const char* getScopeNVName (VkScopeNV value)
2337{
2338	switch (value)
2339	{
2340		case VK_SCOPE_DEVICE_NV:		return "VK_SCOPE_DEVICE_NV";
2341		case VK_SCOPE_WORKGROUP_NV:		return "VK_SCOPE_WORKGROUP_NV";
2342		case VK_SCOPE_SUBGROUP_NV:		return "VK_SCOPE_SUBGROUP_NV";
2343		case VK_SCOPE_QUEUE_FAMILY_NV:	return "VK_SCOPE_QUEUE_FAMILY_NV";
2344		case VK_SCOPE_MAX_ENUM_NV:		return "VK_SCOPE_MAX_ENUM_NV";
2345		default:						return DE_NULL;
2346	}
2347}
2348
2349const char* getCoverageReductionModeNVName (VkCoverageReductionModeNV value)
2350{
2351	switch (value)
2352	{
2353		case VK_COVERAGE_REDUCTION_MODE_MERGE_NV:		return "VK_COVERAGE_REDUCTION_MODE_MERGE_NV";
2354		case VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV:	return "VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV";
2355		case VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV:	return "VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV";
2356		default:										return DE_NULL;
2357	}
2358}
2359
2360const char* getProvokingVertexModeEXTName (VkProvokingVertexModeEXT value)
2361{
2362	switch (value)
2363	{
2364		case VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT:	return "VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT";
2365		case VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT:	return "VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT";
2366		case VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT:		return "VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT";
2367		default:										return DE_NULL;
2368	}
2369}
2370
2371const char* getLineRasterizationModeEXTName (VkLineRasterizationModeEXT value)
2372{
2373	switch (value)
2374	{
2375		case VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT:			return "VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT";
2376		case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT:		return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT";
2377		case VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT:			return "VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT";
2378		case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT:	return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT";
2379		case VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT:			return "VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT";
2380		default:												return DE_NULL;
2381	}
2382}
2383
2384const char* getIndirectCommandsTokenTypeNVName (VkIndirectCommandsTokenTypeNV value)
2385{
2386	switch (value)
2387	{
2388		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV:	return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV";
2389		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV:	return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV";
2390		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV:	return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV";
2391		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV:	return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV";
2392		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV:	return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV";
2393		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV:	return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV";
2394		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV:			return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV";
2395		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV";
2396		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV";
2397		default:												return DE_NULL;
2398	}
2399}
2400
2401const char* getDeviceMemoryReportEventTypeEXTName (VkDeviceMemoryReportEventTypeEXT value)
2402{
2403	switch (value)
2404	{
2405		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT:			return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT";
2406		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT:				return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT";
2407		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT:				return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT";
2408		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT:			return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT";
2409		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT:	return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT";
2410		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT:			return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT";
2411		default:														return DE_NULL;
2412	}
2413}
2414
2415const char* getFragmentShadingRateTypeNVName (VkFragmentShadingRateTypeNV value)
2416{
2417	switch (value)
2418	{
2419		case VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV:	return "VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV";
2420		case VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV:			return "VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV";
2421		case VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV:			return "VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV";
2422		default:												return DE_NULL;
2423	}
2424}
2425
2426const char* getFragmentShadingRateNVName (VkFragmentShadingRateNV value)
2427{
2428	switch (value)
2429	{
2430		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV";
2431		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV";
2432		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV";
2433		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV";
2434		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV";
2435		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV";
2436		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV";
2437		case VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV";
2438		case VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV";
2439		case VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV";
2440		case VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV";
2441		case VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV:				return "VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV";
2442		case VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV:						return "VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV";
2443		default:														return DE_NULL;
2444	}
2445}
2446
2447const char* getAccelerationStructureMotionInstanceTypeNVName (VkAccelerationStructureMotionInstanceTypeNV value)
2448{
2449	switch (value)
2450	{
2451		case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV:			return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV";
2452		case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV:	return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV";
2453		case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV:		return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV";
2454		case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV:		return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV";
2455		default:																return DE_NULL;
2456	}
2457}
2458
2459const char* getBuildAccelerationStructureModeKHRName (VkBuildAccelerationStructureModeKHR value)
2460{
2461	switch (value)
2462	{
2463		case VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR:	return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR";
2464		case VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR:	return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR";
2465		case VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR:	return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR";
2466		default:												return DE_NULL;
2467	}
2468}
2469
2470const char* getAccelerationStructureBuildTypeKHRName (VkAccelerationStructureBuildTypeKHR value)
2471{
2472	switch (value)
2473	{
2474		case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR:				return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR";
2475		case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR:			return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR";
2476		case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR:	return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR";
2477		case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR:			return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR";
2478		default:														return DE_NULL;
2479	}
2480}
2481
2482const char* getAccelerationStructureCompatibilityKHRName (VkAccelerationStructureCompatibilityKHR value)
2483{
2484	switch (value)
2485	{
2486		case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR:	return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR";
2487		case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR:	return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR";
2488		case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR:		return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR";
2489		default:														return DE_NULL;
2490	}
2491}
2492
2493const char* getShaderGroupShaderKHRName (VkShaderGroupShaderKHR value)
2494{
2495	switch (value)
2496	{
2497		case VK_SHADER_GROUP_SHADER_GENERAL_KHR:		return "VK_SHADER_GROUP_SHADER_GENERAL_KHR";
2498		case VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR:	return "VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR";
2499		case VK_SHADER_GROUP_SHADER_ANY_HIT_KHR:		return "VK_SHADER_GROUP_SHADER_ANY_HIT_KHR";
2500		case VK_SHADER_GROUP_SHADER_INTERSECTION_KHR:	return "VK_SHADER_GROUP_SHADER_INTERSECTION_KHR";
2501		case VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR:		return "VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR";
2502		default:										return DE_NULL;
2503	}
2504}
2505
2506const char* getQueryResultStatusKHRName (VkQueryResultStatusKHR value)
2507{
2508	switch (value)
2509	{
2510		case VK_QUERY_RESULT_STATUS_ERROR_KHR:		return "VK_QUERY_RESULT_STATUS_ERROR_KHR";
2511		case VK_QUERY_RESULT_STATUS_NOT_READY_KHR:	return "VK_QUERY_RESULT_STATUS_NOT_READY_KHR";
2512		case VK_QUERY_RESULT_STATUS_COMPLETE_KHR:	return "VK_QUERY_RESULT_STATUS_COMPLETE_KHR";
2513		case VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR:	return "VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR";
2514		default:									return DE_NULL;
2515	}
2516}
2517
2518const char* getdVideoH264ChromaFormatIdcName (StdVideoH264ChromaFormatIdc value)
2519{
2520	switch (value)
2521	{
2522		case STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME:	return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME";
2523		case STD_VIDEO_H264_CHROMA_FORMAT_IDC_420:			return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_420";
2524		case STD_VIDEO_H264_CHROMA_FORMAT_IDC_422:			return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_422";
2525		case STD_VIDEO_H264_CHROMA_FORMAT_IDC_444:			return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_444";
2526		case STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID:		return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID";
2527		default:											return DE_NULL;
2528	}
2529}
2530
2531const char* getdVideoH264ProfileIdcName (StdVideoH264ProfileIdc value)
2532{
2533	switch (value)
2534	{
2535		case STD_VIDEO_H264_PROFILE_IDC_BASELINE:				return "STD_VIDEO_H264_PROFILE_IDC_BASELINE";
2536		case STD_VIDEO_H264_PROFILE_IDC_MAIN:					return "STD_VIDEO_H264_PROFILE_IDC_MAIN";
2537		case STD_VIDEO_H264_PROFILE_IDC_HIGH:					return "STD_VIDEO_H264_PROFILE_IDC_HIGH";
2538		case STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE:	return "STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE";
2539		case STD_VIDEO_H264_PROFILE_IDC_INVALID:				return "STD_VIDEO_H264_PROFILE_IDC_INVALID";
2540		default:												return DE_NULL;
2541	}
2542}
2543
2544const char* getdVideoH264LevelName (StdVideoH264Level value)
2545{
2546	switch (value)
2547	{
2548		case STD_VIDEO_H264_LEVEL_1_0:		return "STD_VIDEO_H264_LEVEL_1_0";
2549		case STD_VIDEO_H264_LEVEL_1_1:		return "STD_VIDEO_H264_LEVEL_1_1";
2550		case STD_VIDEO_H264_LEVEL_1_2:		return "STD_VIDEO_H264_LEVEL_1_2";
2551		case STD_VIDEO_H264_LEVEL_1_3:		return "STD_VIDEO_H264_LEVEL_1_3";
2552		case STD_VIDEO_H264_LEVEL_2_0:		return "STD_VIDEO_H264_LEVEL_2_0";
2553		case STD_VIDEO_H264_LEVEL_2_1:		return "STD_VIDEO_H264_LEVEL_2_1";
2554		case STD_VIDEO_H264_LEVEL_2_2:		return "STD_VIDEO_H264_LEVEL_2_2";
2555		case STD_VIDEO_H264_LEVEL_3_0:		return "STD_VIDEO_H264_LEVEL_3_0";
2556		case STD_VIDEO_H264_LEVEL_3_1:		return "STD_VIDEO_H264_LEVEL_3_1";
2557		case STD_VIDEO_H264_LEVEL_3_2:		return "STD_VIDEO_H264_LEVEL_3_2";
2558		case STD_VIDEO_H264_LEVEL_4_0:		return "STD_VIDEO_H264_LEVEL_4_0";
2559		case STD_VIDEO_H264_LEVEL_4_1:		return "STD_VIDEO_H264_LEVEL_4_1";
2560		case STD_VIDEO_H264_LEVEL_4_2:		return "STD_VIDEO_H264_LEVEL_4_2";
2561		case STD_VIDEO_H264_LEVEL_5_0:		return "STD_VIDEO_H264_LEVEL_5_0";
2562		case STD_VIDEO_H264_LEVEL_5_1:		return "STD_VIDEO_H264_LEVEL_5_1";
2563		case STD_VIDEO_H264_LEVEL_5_2:		return "STD_VIDEO_H264_LEVEL_5_2";
2564		case STD_VIDEO_H264_LEVEL_6_0:		return "STD_VIDEO_H264_LEVEL_6_0";
2565		case STD_VIDEO_H264_LEVEL_6_1:		return "STD_VIDEO_H264_LEVEL_6_1";
2566		case STD_VIDEO_H264_LEVEL_6_2:		return "STD_VIDEO_H264_LEVEL_6_2";
2567		case STD_VIDEO_H264_LEVEL_INVALID:	return "STD_VIDEO_H264_LEVEL_INVALID";
2568		default:							return DE_NULL;
2569	}
2570}
2571
2572const char* getdVideoH264PocTypeName (StdVideoH264PocType value)
2573{
2574	switch (value)
2575	{
2576		case STD_VIDEO_H264_POC_TYPE_0:			return "STD_VIDEO_H264_POC_TYPE_0";
2577		case STD_VIDEO_H264_POC_TYPE_1:			return "STD_VIDEO_H264_POC_TYPE_1";
2578		case STD_VIDEO_H264_POC_TYPE_2:			return "STD_VIDEO_H264_POC_TYPE_2";
2579		case STD_VIDEO_H264_POC_TYPE_INVALID:	return "STD_VIDEO_H264_POC_TYPE_INVALID";
2580		default:								return DE_NULL;
2581	}
2582}
2583
2584const char* getdVideoH264AspectRatioIdcName (StdVideoH264AspectRatioIdc value)
2585{
2586	switch (value)
2587	{
2588		case STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED:	return "STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED";
2589		case STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE:		return "STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE";
2590		case STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11";
2591		case STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11";
2592		case STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11";
2593		case STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33";
2594		case STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11";
2595		case STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11";
2596		case STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11";
2597		case STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33";
2598		case STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11";
2599		case STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11";
2600		case STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33";
2601		case STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99:		return "STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99";
2602		case STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3";
2603		case STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2";
2604		case STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1";
2605		case STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR:	return "STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR";
2606		case STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID:		return "STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID";
2607		default:											return DE_NULL;
2608	}
2609}
2610
2611const char* getdVideoH264WeightedBipredIdcName (StdVideoH264WeightedBipredIdc value)
2612{
2613	switch (value)
2614	{
2615		case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT:	return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT";
2616		case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT:	return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT";
2617		case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT:	return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT";
2618		case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID:	return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID";
2619		default:											return DE_NULL;
2620	}
2621}
2622
2623const char* getdVideoH264ModificationOfPicNumsIdcName (StdVideoH264ModificationOfPicNumsIdc value)
2624{
2625	switch (value)
2626	{
2627		case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT:	return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT";
2628		case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD:		return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD";
2629		case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM:				return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM";
2630		case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END:					return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END";
2631		case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID:				return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID";
2632		default:																return DE_NULL;
2633	}
2634}
2635
2636const char* getdVideoH264MemMgmtControlOpName (StdVideoH264MemMgmtControlOp value)
2637{
2638	switch (value)
2639	{
2640		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END:						return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END";
2641		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM:			return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM";
2642		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM:			return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM";
2643		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM:				return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM";
2644		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX:	return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX";
2645		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL:					return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL";
2646		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM:	return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM";
2647		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID:					return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID";
2648		default:															return DE_NULL;
2649	}
2650}
2651
2652const char* getdVideoH264CabacInitIdcName (StdVideoH264CabacInitIdc value)
2653{
2654	switch (value)
2655	{
2656		case STD_VIDEO_H264_CABAC_INIT_IDC_0:		return "STD_VIDEO_H264_CABAC_INIT_IDC_0";
2657		case STD_VIDEO_H264_CABAC_INIT_IDC_1:		return "STD_VIDEO_H264_CABAC_INIT_IDC_1";
2658		case STD_VIDEO_H264_CABAC_INIT_IDC_2:		return "STD_VIDEO_H264_CABAC_INIT_IDC_2";
2659		case STD_VIDEO_H264_CABAC_INIT_IDC_INVALID:	return "STD_VIDEO_H264_CABAC_INIT_IDC_INVALID";
2660		default:									return DE_NULL;
2661	}
2662}
2663
2664const char* getdVideoH264DisableDeblockingFilterIdcName (StdVideoH264DisableDeblockingFilterIdc value)
2665{
2666	switch (value)
2667	{
2668		case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED:	return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED";
2669		case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED:	return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED";
2670		case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL:	return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL";
2671		case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID:	return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID";
2672		default:													return DE_NULL;
2673	}
2674}
2675
2676const char* getdVideoH264SliceTypeName (StdVideoH264SliceType value)
2677{
2678	switch (value)
2679	{
2680		case STD_VIDEO_H264_SLICE_TYPE_P:		return "STD_VIDEO_H264_SLICE_TYPE_P";
2681		case STD_VIDEO_H264_SLICE_TYPE_B:		return "STD_VIDEO_H264_SLICE_TYPE_B";
2682		case STD_VIDEO_H264_SLICE_TYPE_I:		return "STD_VIDEO_H264_SLICE_TYPE_I";
2683		case STD_VIDEO_H264_SLICE_TYPE_INVALID:	return "STD_VIDEO_H264_SLICE_TYPE_INVALID";
2684		default:								return DE_NULL;
2685	}
2686}
2687
2688const char* getdVideoH264PictureTypeName (StdVideoH264PictureType value)
2689{
2690	switch (value)
2691	{
2692		case STD_VIDEO_H264_PICTURE_TYPE_P:			return "STD_VIDEO_H264_PICTURE_TYPE_P";
2693		case STD_VIDEO_H264_PICTURE_TYPE_B:			return "STD_VIDEO_H264_PICTURE_TYPE_B";
2694		case STD_VIDEO_H264_PICTURE_TYPE_I:			return "STD_VIDEO_H264_PICTURE_TYPE_I";
2695		case STD_VIDEO_H264_PICTURE_TYPE_IDR:		return "STD_VIDEO_H264_PICTURE_TYPE_IDR";
2696		case STD_VIDEO_H264_PICTURE_TYPE_INVALID:	return "STD_VIDEO_H264_PICTURE_TYPE_INVALID";
2697		default:									return DE_NULL;
2698	}
2699}
2700
2701const char* getdVideoH264NonVclNaluTypeName (StdVideoH264NonVclNaluType value)
2702{
2703	switch (value)
2704	{
2705		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS:				return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS";
2706		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS:				return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS";
2707		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD:				return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD";
2708		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX:			return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX";
2709		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE:	return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE";
2710		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM:	return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM";
2711		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED:			return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED";
2712		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID:			return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID";
2713		default:												return DE_NULL;
2714	}
2715}
2716
2717const char* getdVideoH265ChromaFormatIdcName (StdVideoH265ChromaFormatIdc value)
2718{
2719	switch (value)
2720	{
2721		case STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME:	return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME";
2722		case STD_VIDEO_H265_CHROMA_FORMAT_IDC_420:			return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_420";
2723		case STD_VIDEO_H265_CHROMA_FORMAT_IDC_422:			return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_422";
2724		case STD_VIDEO_H265_CHROMA_FORMAT_IDC_444:			return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_444";
2725		case STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID:		return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID";
2726		default:											return DE_NULL;
2727	}
2728}
2729
2730const char* getdVideoH265ProfileIdcName (StdVideoH265ProfileIdc value)
2731{
2732	switch (value)
2733	{
2734		case STD_VIDEO_H265_PROFILE_IDC_MAIN:						return "STD_VIDEO_H265_PROFILE_IDC_MAIN";
2735		case STD_VIDEO_H265_PROFILE_IDC_MAIN_10:					return "STD_VIDEO_H265_PROFILE_IDC_MAIN_10";
2736		case STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE:			return "STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE";
2737		case STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS:	return "STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS";
2738		case STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS:				return "STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS";
2739		case STD_VIDEO_H265_PROFILE_IDC_INVALID:					return "STD_VIDEO_H265_PROFILE_IDC_INVALID";
2740		default:													return DE_NULL;
2741	}
2742}
2743
2744const char* getdVideoH265LevelName (StdVideoH265Level value)
2745{
2746	switch (value)
2747	{
2748		case STD_VIDEO_H265_LEVEL_1_0:		return "STD_VIDEO_H265_LEVEL_1_0";
2749		case STD_VIDEO_H265_LEVEL_2_0:		return "STD_VIDEO_H265_LEVEL_2_0";
2750		case STD_VIDEO_H265_LEVEL_2_1:		return "STD_VIDEO_H265_LEVEL_2_1";
2751		case STD_VIDEO_H265_LEVEL_3_0:		return "STD_VIDEO_H265_LEVEL_3_0";
2752		case STD_VIDEO_H265_LEVEL_3_1:		return "STD_VIDEO_H265_LEVEL_3_1";
2753		case STD_VIDEO_H265_LEVEL_4_0:		return "STD_VIDEO_H265_LEVEL_4_0";
2754		case STD_VIDEO_H265_LEVEL_4_1:		return "STD_VIDEO_H265_LEVEL_4_1";
2755		case STD_VIDEO_H265_LEVEL_5_0:		return "STD_VIDEO_H265_LEVEL_5_0";
2756		case STD_VIDEO_H265_LEVEL_5_1:		return "STD_VIDEO_H265_LEVEL_5_1";
2757		case STD_VIDEO_H265_LEVEL_5_2:		return "STD_VIDEO_H265_LEVEL_5_2";
2758		case STD_VIDEO_H265_LEVEL_6_0:		return "STD_VIDEO_H265_LEVEL_6_0";
2759		case STD_VIDEO_H265_LEVEL_6_1:		return "STD_VIDEO_H265_LEVEL_6_1";
2760		case STD_VIDEO_H265_LEVEL_6_2:		return "STD_VIDEO_H265_LEVEL_6_2";
2761		case STD_VIDEO_H265_LEVEL_INVALID:	return "STD_VIDEO_H265_LEVEL_INVALID";
2762		default:							return DE_NULL;
2763	}
2764}
2765
2766const char* getdVideoH265SliceTypeName (StdVideoH265SliceType value)
2767{
2768	switch (value)
2769	{
2770		case STD_VIDEO_H265_SLICE_TYPE_B:		return "STD_VIDEO_H265_SLICE_TYPE_B";
2771		case STD_VIDEO_H265_SLICE_TYPE_P:		return "STD_VIDEO_H265_SLICE_TYPE_P";
2772		case STD_VIDEO_H265_SLICE_TYPE_I:		return "STD_VIDEO_H265_SLICE_TYPE_I";
2773		case STD_VIDEO_H265_SLICE_TYPE_INVALID:	return "STD_VIDEO_H265_SLICE_TYPE_INVALID";
2774		default:								return DE_NULL;
2775	}
2776}
2777
2778const char* getdVideoH265PictureTypeName (StdVideoH265PictureType value)
2779{
2780	switch (value)
2781	{
2782		case STD_VIDEO_H265_PICTURE_TYPE_P:			return "STD_VIDEO_H265_PICTURE_TYPE_P";
2783		case STD_VIDEO_H265_PICTURE_TYPE_B:			return "STD_VIDEO_H265_PICTURE_TYPE_B";
2784		case STD_VIDEO_H265_PICTURE_TYPE_I:			return "STD_VIDEO_H265_PICTURE_TYPE_I";
2785		case STD_VIDEO_H265_PICTURE_TYPE_IDR:		return "STD_VIDEO_H265_PICTURE_TYPE_IDR";
2786		case STD_VIDEO_H265_PICTURE_TYPE_INVALID:	return "STD_VIDEO_H265_PICTURE_TYPE_INVALID";
2787		default:									return DE_NULL;
2788	}
2789}
2790
2791const char* getdVideoDecodeH264FieldOrderCountName (StdVideoDecodeH264FieldOrderCount value)
2792{
2793	switch (value)
2794	{
2795		case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP:		return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP";
2796		case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM:	return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM";
2797		case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID:	return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID";
2798		default:												return DE_NULL;
2799	}
2800}
2801
2802const char* getFullScreenExclusiveEXTName (VkFullScreenExclusiveEXT value)
2803{
2804	switch (value)
2805	{
2806		case VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT:					return "VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT";
2807		case VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT:					return "VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT";
2808		case VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT:				return "VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT";
2809		case VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT:	return "VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT";
2810		case VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT:					return "VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT";
2811		default:													return DE_NULL;
2812	}
2813}
2814
2815tcu::Format::Bitfield<32> getAccessFlagsStr (VkAccessFlags value)
2816{
2817	static const tcu::Format::BitDesc s_desc[] =
2818	{
2819		tcu::Format::BitDesc(VK_ACCESS_INDIRECT_COMMAND_READ_BIT,						"VK_ACCESS_INDIRECT_COMMAND_READ_BIT"),
2820		tcu::Format::BitDesc(VK_ACCESS_INDEX_READ_BIT,									"VK_ACCESS_INDEX_READ_BIT"),
2821		tcu::Format::BitDesc(VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,						"VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT"),
2822		tcu::Format::BitDesc(VK_ACCESS_UNIFORM_READ_BIT,								"VK_ACCESS_UNIFORM_READ_BIT"),
2823		tcu::Format::BitDesc(VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,						"VK_ACCESS_INPUT_ATTACHMENT_READ_BIT"),
2824		tcu::Format::BitDesc(VK_ACCESS_SHADER_READ_BIT,									"VK_ACCESS_SHADER_READ_BIT"),
2825		tcu::Format::BitDesc(VK_ACCESS_SHADER_WRITE_BIT,								"VK_ACCESS_SHADER_WRITE_BIT"),
2826		tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,						"VK_ACCESS_COLOR_ATTACHMENT_READ_BIT"),
2827		tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,						"VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT"),
2828		tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,				"VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT"),
2829		tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,				"VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"),
2830		tcu::Format::BitDesc(VK_ACCESS_TRANSFER_READ_BIT,								"VK_ACCESS_TRANSFER_READ_BIT"),
2831		tcu::Format::BitDesc(VK_ACCESS_TRANSFER_WRITE_BIT,								"VK_ACCESS_TRANSFER_WRITE_BIT"),
2832		tcu::Format::BitDesc(VK_ACCESS_HOST_READ_BIT,									"VK_ACCESS_HOST_READ_BIT"),
2833		tcu::Format::BitDesc(VK_ACCESS_HOST_WRITE_BIT,									"VK_ACCESS_HOST_WRITE_BIT"),
2834		tcu::Format::BitDesc(VK_ACCESS_MEMORY_READ_BIT,									"VK_ACCESS_MEMORY_READ_BIT"),
2835		tcu::Format::BitDesc(VK_ACCESS_MEMORY_WRITE_BIT,								"VK_ACCESS_MEMORY_WRITE_BIT"),
2836		tcu::Format::BitDesc(VK_ACCESS_NONE,											"VK_ACCESS_NONE"),
2837		tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,				"VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"),
2838		tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,			"VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"),
2839		tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,		"VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"),
2840		tcu::Format::BitDesc(VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,				"VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT"),
2841		tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,		"VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"),
2842		tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,				"VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR"),
2843		tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,			"VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"),
2844		tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,				"VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"),
2845		tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,	"VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"),
2846		tcu::Format::BitDesc(VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,					"VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV"),
2847		tcu::Format::BitDesc(VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,					"VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV"),
2848		tcu::Format::BitDesc(VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV,					"VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV"),
2849		tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV,				"VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV"),
2850		tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV,				"VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV"),
2851		tcu::Format::BitDesc(VK_ACCESS_NONE_KHR,										"VK_ACCESS_NONE_KHR"),
2852		tcu::Format::BitDesc(VK_ACCESS_FLAG_BITS_MAX_ENUM,								"VK_ACCESS_FLAG_BITS_MAX_ENUM"),
2853	};
2854	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2855}
2856
2857tcu::Format::Bitfield<32> getImageAspectFlagsStr (VkImageAspectFlags value)
2858{
2859	static const tcu::Format::BitDesc s_desc[] =
2860	{
2861		tcu::Format::BitDesc(VK_IMAGE_ASPECT_COLOR_BIT,					"VK_IMAGE_ASPECT_COLOR_BIT"),
2862		tcu::Format::BitDesc(VK_IMAGE_ASPECT_DEPTH_BIT,					"VK_IMAGE_ASPECT_DEPTH_BIT"),
2863		tcu::Format::BitDesc(VK_IMAGE_ASPECT_STENCIL_BIT,				"VK_IMAGE_ASPECT_STENCIL_BIT"),
2864		tcu::Format::BitDesc(VK_IMAGE_ASPECT_METADATA_BIT,				"VK_IMAGE_ASPECT_METADATA_BIT"),
2865		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_0_BIT,				"VK_IMAGE_ASPECT_PLANE_0_BIT"),
2866		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_1_BIT,				"VK_IMAGE_ASPECT_PLANE_1_BIT"),
2867		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_2_BIT,				"VK_IMAGE_ASPECT_PLANE_2_BIT"),
2868		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT"),
2869		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT"),
2870		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT"),
2871		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT"),
2872		tcu::Format::BitDesc(VK_IMAGE_ASPECT_NONE_KHR,					"VK_IMAGE_ASPECT_NONE_KHR"),
2873		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_0_BIT_KHR,			"VK_IMAGE_ASPECT_PLANE_0_BIT_KHR"),
2874		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_1_BIT_KHR,			"VK_IMAGE_ASPECT_PLANE_1_BIT_KHR"),
2875		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_2_BIT_KHR,			"VK_IMAGE_ASPECT_PLANE_2_BIT_KHR"),
2876		tcu::Format::BitDesc(VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM,		"VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM"),
2877	};
2878	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2879}
2880
2881tcu::Format::Bitfield<32> getFormatFeatureFlagsStr (VkFormatFeatureFlags value)
2882{
2883	static const tcu::Format::BitDesc s_desc[] =
2884	{
2885		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,																"VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT"),
2886		tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,																"VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT"),
2887		tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,														"VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT"),
2888		tcu::Format::BitDesc(VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,														"VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT"),
2889		tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,														"VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT"),
2890		tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,													"VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"),
2891		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,																"VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT"),
2892		tcu::Format::BitDesc(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,															"VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT"),
2893		tcu::Format::BitDesc(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,														"VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT"),
2894		tcu::Format::BitDesc(VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,													"VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT"),
2895		tcu::Format::BitDesc(VK_FORMAT_FEATURE_BLIT_SRC_BIT,																	"VK_FORMAT_FEATURE_BLIT_SRC_BIT"),
2896		tcu::Format::BitDesc(VK_FORMAT_FEATURE_BLIT_DST_BIT,																	"VK_FORMAT_FEATURE_BLIT_DST_BIT"),
2897		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT,													"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT"),
2898		tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,																"VK_FORMAT_FEATURE_TRANSFER_SRC_BIT"),
2899		tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_DST_BIT,																"VK_FORMAT_FEATURE_TRANSFER_DST_BIT"),
2900		tcu::Format::BitDesc(VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,														"VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT"),
2901		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,								"VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"),
2902		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,				"VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT"),
2903		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,				"VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT"),
2904		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,		"VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT"),
2905		tcu::Format::BitDesc(VK_FORMAT_FEATURE_DISJOINT_BIT,																	"VK_FORMAT_FEATURE_DISJOINT_BIT"),
2906		tcu::Format::BitDesc(VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,														"VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT"),
2907		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,													"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT"),
2908		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,												"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG"),
2909		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR,														"VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR"),
2910		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR,														"VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR"),
2911		tcu::Format::BitDesc(VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,									"VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"),
2912		tcu::Format::BitDesc(VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,													"VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
2913		tcu::Format::BitDesc(VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,										"VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
2914		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR,														"VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR"),
2915		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR,														"VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR"),
2916		tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR,															"VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR"),
2917		tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR,															"VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR"),
2918		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT,												"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT"),
2919		tcu::Format::BitDesc(VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR,													"VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR"),
2920		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR,							"VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR"),
2921		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR,			"VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR"),
2922		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR,			"VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR"),
2923		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR,	"VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR"),
2924		tcu::Format::BitDesc(VK_FORMAT_FEATURE_DISJOINT_BIT_KHR,																"VK_FORMAT_FEATURE_DISJOINT_BIT_KHR"),
2925		tcu::Format::BitDesc(VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR,													"VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR"),
2926		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,												"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT"),
2927		tcu::Format::BitDesc(VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM,																"VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM"),
2928	};
2929	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2930}
2931
2932tcu::Format::Bitfield<32> getImageCreateFlagsStr (VkImageCreateFlags value)
2933{
2934	static const tcu::Format::BitDesc s_desc[] =
2935	{
2936		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_BINDING_BIT,						"VK_IMAGE_CREATE_SPARSE_BINDING_BIT"),
2937		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,						"VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT"),
2938		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,						"VK_IMAGE_CREATE_SPARSE_ALIASED_BIT"),
2939		tcu::Format::BitDesc(VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,						"VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT"),
2940		tcu::Format::BitDesc(VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,						"VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT"),
2941		tcu::Format::BitDesc(VK_IMAGE_CREATE_ALIAS_BIT,									"VK_IMAGE_CREATE_ALIAS_BIT"),
2942		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,			"VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT"),
2943		tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,					"VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT"),
2944		tcu::Format::BitDesc(VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,			"VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT"),
2945		tcu::Format::BitDesc(VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,						"VK_IMAGE_CREATE_EXTENDED_USAGE_BIT"),
2946		tcu::Format::BitDesc(VK_IMAGE_CREATE_PROTECTED_BIT,								"VK_IMAGE_CREATE_PROTECTED_BIT"),
2947		tcu::Format::BitDesc(VK_IMAGE_CREATE_DISJOINT_BIT,								"VK_IMAGE_CREATE_DISJOINT_BIT"),
2948		tcu::Format::BitDesc(VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,						"VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV"),
2949		tcu::Format::BitDesc(VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT,	"VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT"),
2950		tcu::Format::BitDesc(VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,						"VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT"),
2951		tcu::Format::BitDesc(VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM,		"VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM"),
2952		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,		"VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR"),
2953		tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR,				"VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR"),
2954		tcu::Format::BitDesc(VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR,		"VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR"),
2955		tcu::Format::BitDesc(VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR,					"VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR"),
2956		tcu::Format::BitDesc(VK_IMAGE_CREATE_DISJOINT_BIT_KHR,							"VK_IMAGE_CREATE_DISJOINT_BIT_KHR"),
2957		tcu::Format::BitDesc(VK_IMAGE_CREATE_ALIAS_BIT_KHR,								"VK_IMAGE_CREATE_ALIAS_BIT_KHR"),
2958		tcu::Format::BitDesc(VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM,						"VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM"),
2959	};
2960	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2961}
2962
2963tcu::Format::Bitfield<32> getSampleCountFlagsStr (VkSampleCountFlags value)
2964{
2965	static const tcu::Format::BitDesc s_desc[] =
2966	{
2967		tcu::Format::BitDesc(VK_SAMPLE_COUNT_1_BIT,					"VK_SAMPLE_COUNT_1_BIT"),
2968		tcu::Format::BitDesc(VK_SAMPLE_COUNT_2_BIT,					"VK_SAMPLE_COUNT_2_BIT"),
2969		tcu::Format::BitDesc(VK_SAMPLE_COUNT_4_BIT,					"VK_SAMPLE_COUNT_4_BIT"),
2970		tcu::Format::BitDesc(VK_SAMPLE_COUNT_8_BIT,					"VK_SAMPLE_COUNT_8_BIT"),
2971		tcu::Format::BitDesc(VK_SAMPLE_COUNT_16_BIT,				"VK_SAMPLE_COUNT_16_BIT"),
2972		tcu::Format::BitDesc(VK_SAMPLE_COUNT_32_BIT,				"VK_SAMPLE_COUNT_32_BIT"),
2973		tcu::Format::BitDesc(VK_SAMPLE_COUNT_64_BIT,				"VK_SAMPLE_COUNT_64_BIT"),
2974		tcu::Format::BitDesc(VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM,	"VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM"),
2975	};
2976	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2977}
2978
2979tcu::Format::Bitfield<32> getImageUsageFlagsStr (VkImageUsageFlags value)
2980{
2981	static const tcu::Format::BitDesc s_desc[] =
2982	{
2983		tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_SRC_BIT,							"VK_IMAGE_USAGE_TRANSFER_SRC_BIT"),
2984		tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_DST_BIT,							"VK_IMAGE_USAGE_TRANSFER_DST_BIT"),
2985		tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLED_BIT,								"VK_IMAGE_USAGE_SAMPLED_BIT"),
2986		tcu::Format::BitDesc(VK_IMAGE_USAGE_STORAGE_BIT,								"VK_IMAGE_USAGE_STORAGE_BIT"),
2987		tcu::Format::BitDesc(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,						"VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT"),
2988		tcu::Format::BitDesc(VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,				"VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT"),
2989		tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,					"VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT"),
2990		tcu::Format::BitDesc(VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,						"VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT"),
2991		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR"),
2992		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR"),
2993		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR"),
2994		tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,				"VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
2995		tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,	"VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
2996		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR"),
2997		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"),
2998		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR"),
2999		tcu::Format::BitDesc(VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI,					"VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI"),
3000		tcu::Format::BitDesc(VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV,					"VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV"),
3001		tcu::Format::BitDesc(VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM,							"VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM"),
3002	};
3003	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3004}
3005
3006tcu::Format::Bitfield<32> getMemoryHeapFlagsStr (VkMemoryHeapFlags value)
3007{
3008	static const tcu::Format::BitDesc s_desc[] =
3009	{
3010		tcu::Format::BitDesc(VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,		"VK_MEMORY_HEAP_DEVICE_LOCAL_BIT"),
3011		tcu::Format::BitDesc(VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,		"VK_MEMORY_HEAP_MULTI_INSTANCE_BIT"),
3012		tcu::Format::BitDesc(VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR,	"VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR"),
3013		tcu::Format::BitDesc(VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM,		"VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM"),
3014	};
3015	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3016}
3017
3018tcu::Format::Bitfield<32> getMemoryPropertyFlagsStr (VkMemoryPropertyFlags value)
3019{
3020	static const tcu::Format::BitDesc s_desc[] =
3021	{
3022		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,			"VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT"),
3023		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,			"VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT"),
3024		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,			"VK_MEMORY_PROPERTY_HOST_COHERENT_BIT"),
3025		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_CACHED_BIT,			"VK_MEMORY_PROPERTY_HOST_CACHED_BIT"),
3026		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,		"VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT"),
3027		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_PROTECTED_BIT,				"VK_MEMORY_PROPERTY_PROTECTED_BIT"),
3028		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,	"VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD"),
3029		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD,	"VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD"),
3030		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV,		"VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV"),
3031		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM,			"VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM"),
3032	};
3033	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3034}
3035
3036tcu::Format::Bitfield<32> getQueueFlagsStr (VkQueueFlags value)
3037{
3038	static const tcu::Format::BitDesc s_desc[] =
3039	{
3040		tcu::Format::BitDesc(VK_QUEUE_GRAPHICS_BIT,			"VK_QUEUE_GRAPHICS_BIT"),
3041		tcu::Format::BitDesc(VK_QUEUE_COMPUTE_BIT,			"VK_QUEUE_COMPUTE_BIT"),
3042		tcu::Format::BitDesc(VK_QUEUE_TRANSFER_BIT,			"VK_QUEUE_TRANSFER_BIT"),
3043		tcu::Format::BitDesc(VK_QUEUE_SPARSE_BINDING_BIT,	"VK_QUEUE_SPARSE_BINDING_BIT"),
3044		tcu::Format::BitDesc(VK_QUEUE_PROTECTED_BIT,		"VK_QUEUE_PROTECTED_BIT"),
3045		tcu::Format::BitDesc(VK_QUEUE_VIDEO_DECODE_BIT_KHR,	"VK_QUEUE_VIDEO_DECODE_BIT_KHR"),
3046		tcu::Format::BitDesc(VK_QUEUE_VIDEO_ENCODE_BIT_KHR,	"VK_QUEUE_VIDEO_ENCODE_BIT_KHR"),
3047		tcu::Format::BitDesc(VK_QUEUE_FLAG_BITS_MAX_ENUM,	"VK_QUEUE_FLAG_BITS_MAX_ENUM"),
3048	};
3049	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3050}
3051
3052tcu::Format::Bitfield<32> getDeviceQueueCreateFlagsStr (VkDeviceQueueCreateFlags value)
3053{
3054	static const tcu::Format::BitDesc s_desc[] =
3055	{
3056		tcu::Format::BitDesc(VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT,		"VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT"),
3057		tcu::Format::BitDesc(VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM,	"VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM"),
3058	};
3059	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3060}
3061
3062tcu::Format::Bitfield<32> getPipelineStageFlagsStr (VkPipelineStageFlags value)
3063{
3064	static const tcu::Format::BitDesc s_desc[] =
3065	{
3066		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,								"VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT"),
3067		tcu::Format::BitDesc(VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,							"VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT"),
3068		tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,							"VK_PIPELINE_STAGE_VERTEX_INPUT_BIT"),
3069		tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,							"VK_PIPELINE_STAGE_VERTEX_SHADER_BIT"),
3070		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,				"VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT"),
3071		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,			"VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT"),
3072		tcu::Format::BitDesc(VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,							"VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT"),
3073		tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,							"VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT"),
3074		tcu::Format::BitDesc(VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,					"VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT"),
3075		tcu::Format::BitDesc(VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,						"VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT"),
3076		tcu::Format::BitDesc(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,					"VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT"),
3077		tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,							"VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT"),
3078		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFER_BIT,								"VK_PIPELINE_STAGE_TRANSFER_BIT"),
3079		tcu::Format::BitDesc(VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,							"VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT"),
3080		tcu::Format::BitDesc(VK_PIPELINE_STAGE_HOST_BIT,									"VK_PIPELINE_STAGE_HOST_BIT"),
3081		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,							"VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT"),
3082		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,							"VK_PIPELINE_STAGE_ALL_COMMANDS_BIT"),
3083		tcu::Format::BitDesc(VK_PIPELINE_STAGE_NONE,										"VK_PIPELINE_STAGE_NONE"),
3084		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,					"VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT"),
3085		tcu::Format::BitDesc(VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,				"VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT"),
3086		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,		"VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"),
3087		tcu::Format::BitDesc(VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,					"VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR"),
3088		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV,							"VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV"),
3089		tcu::Format::BitDesc(VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV,							"VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV"),
3090		tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,			"VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT"),
3091		tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,	"VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
3092		tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,					"VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV"),
3093		tcu::Format::BitDesc(VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV,					"VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV"),
3094		tcu::Format::BitDesc(VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV,					"VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV"),
3095		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV,			"VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV"),
3096		tcu::Format::BitDesc(VK_PIPELINE_STAGE_NONE_KHR,									"VK_PIPELINE_STAGE_NONE_KHR"),
3097		tcu::Format::BitDesc(VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM,							"VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM"),
3098	};
3099	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3100}
3101
3102tcu::Format::Bitfield<32> getSparseMemoryBindFlagsStr (VkSparseMemoryBindFlags value)
3103{
3104	static const tcu::Format::BitDesc s_desc[] =
3105	{
3106		tcu::Format::BitDesc(VK_SPARSE_MEMORY_BIND_METADATA_BIT,		"VK_SPARSE_MEMORY_BIND_METADATA_BIT"),
3107		tcu::Format::BitDesc(VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM,	"VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM"),
3108	};
3109	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3110}
3111
3112tcu::Format::Bitfield<32> getSparseImageFormatFlagsStr (VkSparseImageFormatFlags value)
3113{
3114	static const tcu::Format::BitDesc s_desc[] =
3115	{
3116		tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,			"VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT"),
3117		tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,		"VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT"),
3118		tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT,	"VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT"),
3119		tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM,			"VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM"),
3120	};
3121	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3122}
3123
3124tcu::Format::Bitfield<32> getFenceCreateFlagsStr (VkFenceCreateFlags value)
3125{
3126	static const tcu::Format::BitDesc s_desc[] =
3127	{
3128		tcu::Format::BitDesc(VK_FENCE_CREATE_SIGNALED_BIT,			"VK_FENCE_CREATE_SIGNALED_BIT"),
3129		tcu::Format::BitDesc(VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM,	"VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM"),
3130	};
3131	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3132}
3133
3134tcu::Format::Bitfield<32> getEventCreateFlagsStr (VkEventCreateFlags value)
3135{
3136	static const tcu::Format::BitDesc s_desc[] =
3137	{
3138		tcu::Format::BitDesc(VK_EVENT_CREATE_DEVICE_ONLY_BIT,		"VK_EVENT_CREATE_DEVICE_ONLY_BIT"),
3139		tcu::Format::BitDesc(VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR,	"VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR"),
3140		tcu::Format::BitDesc(VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM,	"VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM"),
3141	};
3142	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3143}
3144
3145tcu::Format::Bitfield<32> getQueryPipelineStatisticFlagsStr (VkQueryPipelineStatisticFlags value)
3146{
3147	static const tcu::Format::BitDesc s_desc[] =
3148	{
3149		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,						"VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT"),
3150		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,						"VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT"),
3151		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,						"VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT"),
3152		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,					"VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT"),
3153		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,					"VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT"),
3154		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,							"VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT"),
3155		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,							"VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT"),
3156		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,					"VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT"),
3157		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,			"VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT"),
3158		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,	"VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT"),
3159		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT,					"VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT"),
3160		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM,								"VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM"),
3161	};
3162	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3163}
3164
3165tcu::Format::Bitfield<32> getQueryResultFlagsStr (VkQueryResultFlags value)
3166{
3167	static const tcu::Format::BitDesc s_desc[] =
3168	{
3169		tcu::Format::BitDesc(VK_QUERY_RESULT_64_BIT,				"VK_QUERY_RESULT_64_BIT"),
3170		tcu::Format::BitDesc(VK_QUERY_RESULT_WAIT_BIT,				"VK_QUERY_RESULT_WAIT_BIT"),
3171		tcu::Format::BitDesc(VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,	"VK_QUERY_RESULT_WITH_AVAILABILITY_BIT"),
3172		tcu::Format::BitDesc(VK_QUERY_RESULT_PARTIAL_BIT,			"VK_QUERY_RESULT_PARTIAL_BIT"),
3173		tcu::Format::BitDesc(VK_QUERY_RESULT_WITH_STATUS_BIT_KHR,	"VK_QUERY_RESULT_WITH_STATUS_BIT_KHR"),
3174		tcu::Format::BitDesc(VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM,	"VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM"),
3175	};
3176	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3177}
3178
3179tcu::Format::Bitfield<32> getBufferCreateFlagsStr (VkBufferCreateFlags value)
3180{
3181	static const tcu::Format::BitDesc s_desc[] =
3182	{
3183		tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_BINDING_BIT,						"VK_BUFFER_CREATE_SPARSE_BINDING_BIT"),
3184		tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,						"VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT"),
3185		tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,						"VK_BUFFER_CREATE_SPARSE_ALIASED_BIT"),
3186		tcu::Format::BitDesc(VK_BUFFER_CREATE_PROTECTED_BIT,							"VK_BUFFER_CREATE_PROTECTED_BIT"),
3187		tcu::Format::BitDesc(VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,		"VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"),
3188		tcu::Format::BitDesc(VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT,	"VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT"),
3189		tcu::Format::BitDesc(VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,	"VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"),
3190		tcu::Format::BitDesc(VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM,						"VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM"),
3191	};
3192	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3193}
3194
3195tcu::Format::Bitfield<32> getBufferUsageFlagsStr (VkBufferUsageFlags value)
3196{
3197	static const tcu::Format::BitDesc s_desc[] =
3198	{
3199		tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_SRC_BIT,										"VK_BUFFER_USAGE_TRANSFER_SRC_BIT"),
3200		tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_DST_BIT,										"VK_BUFFER_USAGE_TRANSFER_DST_BIT"),
3201		tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,								"VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT"),
3202		tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,								"VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT"),
3203		tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,									"VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT"),
3204		tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,									"VK_BUFFER_USAGE_STORAGE_BUFFER_BIT"),
3205		tcu::Format::BitDesc(VK_BUFFER_USAGE_INDEX_BUFFER_BIT,										"VK_BUFFER_USAGE_INDEX_BUFFER_BIT"),
3206		tcu::Format::BitDesc(VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,										"VK_BUFFER_USAGE_VERTEX_BUFFER_BIT"),
3207		tcu::Format::BitDesc(VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,									"VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT"),
3208		tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,								"VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT"),
3209		tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR,								"VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR"),
3210		tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR,								"VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR"),
3211		tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,						"VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"),
3212		tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,				"VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"),
3213		tcu::Format::BitDesc(VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,							"VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT"),
3214		tcu::Format::BitDesc(VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR,	"VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR"),
3215		tcu::Format::BitDesc(VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,				"VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"),
3216		tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,							"VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR"),
3217		tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR,								"VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR"),
3218		tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,								"VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"),
3219		tcu::Format::BitDesc(VK_BUFFER_USAGE_RAY_TRACING_BIT_NV,									"VK_BUFFER_USAGE_RAY_TRACING_BIT_NV"),
3220		tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT,							"VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT"),
3221		tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR,							"VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR"),
3222		tcu::Format::BitDesc(VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM,									"VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM"),
3223	};
3224	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3225}
3226
3227tcu::Format::Bitfield<32> getImageViewCreateFlagsStr (VkImageViewCreateFlags value)
3228{
3229	static const tcu::Format::BitDesc s_desc[] =
3230	{
3231		tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT,		"VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT"),
3232		tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT,	"VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT"),
3233		tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM,						"VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM"),
3234	};
3235	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3236}
3237
3238tcu::Format::Bitfield<32> getPipelineCacheCreateFlagsStr (VkPipelineCacheCreateFlags value)
3239{
3240	static const tcu::Format::BitDesc s_desc[] =
3241	{
3242		tcu::Format::BitDesc(VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,		"VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT"),
3243		tcu::Format::BitDesc(VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT,	"VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT"),
3244		tcu::Format::BitDesc(VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM,				"VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM"),
3245	};
3246	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3247}
3248
3249tcu::Format::Bitfield<32> getColorComponentFlagsStr (VkColorComponentFlags value)
3250{
3251	static const tcu::Format::BitDesc s_desc[] =
3252	{
3253		tcu::Format::BitDesc(VK_COLOR_COMPONENT_R_BIT,				"VK_COLOR_COMPONENT_R_BIT"),
3254		tcu::Format::BitDesc(VK_COLOR_COMPONENT_G_BIT,				"VK_COLOR_COMPONENT_G_BIT"),
3255		tcu::Format::BitDesc(VK_COLOR_COMPONENT_B_BIT,				"VK_COLOR_COMPONENT_B_BIT"),
3256		tcu::Format::BitDesc(VK_COLOR_COMPONENT_A_BIT,				"VK_COLOR_COMPONENT_A_BIT"),
3257		tcu::Format::BitDesc(VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM,	"VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM"),
3258	};
3259	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3260}
3261
3262tcu::Format::Bitfield<32> getPipelineCreateFlagsStr (VkPipelineCreateFlags value)
3263{
3264	static const tcu::Format::BitDesc s_desc[] =
3265	{
3266		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,										"VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT"),
3267		tcu::Format::BitDesc(VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,											"VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT"),
3268		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DERIVATIVE_BIT,													"VK_PIPELINE_CREATE_DERIVATIVE_BIT"),
3269		tcu::Format::BitDesc(VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,								"VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT"),
3270		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,												"VK_PIPELINE_CREATE_DISPATCH_BASE_BIT"),
3271		tcu::Format::BitDesc(VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,							"VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT"),
3272		tcu::Format::BitDesc(VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,									"VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT"),
3273		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,				"VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
3274		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,				"VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"),
3275		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR,					"VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR"),
3276		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR,				"VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR"),
3277		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR,						"VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR"),
3278		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR,				"VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR"),
3279		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,								"VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR"),
3280		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR,									"VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR"),
3281		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR,			"VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR"),
3282		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,											"VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV"),
3283		tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,										"VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR"),
3284		tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,						"VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR"),
3285		tcu::Format::BitDesc(VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV,										"VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV"),
3286		tcu::Format::BitDesc(VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,												"VK_PIPELINE_CREATE_LIBRARY_BIT_KHR"),
3287		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV,								"VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV"),
3288		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE,													"VK_PIPELINE_CREATE_DISPATCH_BASE"),
3289		tcu::Format::BitDesc(VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,	"VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
3290		tcu::Format::BitDesc(VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,	"VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"),
3291		tcu::Format::BitDesc(VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR,							"VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR"),
3292		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE_KHR,												"VK_PIPELINE_CREATE_DISPATCH_BASE_KHR"),
3293		tcu::Format::BitDesc(VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT,						"VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT"),
3294		tcu::Format::BitDesc(VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT,								"VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT"),
3295		tcu::Format::BitDesc(VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM,												"VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM"),
3296	};
3297	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3298}
3299
3300tcu::Format::Bitfield<32> getPipelineShaderStageCreateFlagsStr (VkPipelineShaderStageCreateFlags value)
3301{
3302	static const tcu::Format::BitDesc s_desc[] =
3303	{
3304		tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,		"VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT"),
3305		tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,			"VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT"),
3306		tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT,	"VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT"),
3307		tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT,		"VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT"),
3308		tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM,					"VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM"),
3309	};
3310	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3311}
3312
3313tcu::Format::Bitfield<32> getShaderStageFlagsStr (VkShaderStageFlags value)
3314{
3315	static const tcu::Format::BitDesc s_desc[] =
3316	{
3317		tcu::Format::BitDesc(VK_SHADER_STAGE_VERTEX_BIT,					"VK_SHADER_STAGE_VERTEX_BIT"),
3318		tcu::Format::BitDesc(VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,		"VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT"),
3319		tcu::Format::BitDesc(VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,	"VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT"),
3320		tcu::Format::BitDesc(VK_SHADER_STAGE_GEOMETRY_BIT,					"VK_SHADER_STAGE_GEOMETRY_BIT"),
3321		tcu::Format::BitDesc(VK_SHADER_STAGE_FRAGMENT_BIT,					"VK_SHADER_STAGE_FRAGMENT_BIT"),
3322		tcu::Format::BitDesc(VK_SHADER_STAGE_COMPUTE_BIT,					"VK_SHADER_STAGE_COMPUTE_BIT"),
3323		tcu::Format::BitDesc(VK_SHADER_STAGE_ALL_GRAPHICS,					"VK_SHADER_STAGE_ALL_GRAPHICS"),
3324		tcu::Format::BitDesc(VK_SHADER_STAGE_ALL,							"VK_SHADER_STAGE_ALL"),
3325		tcu::Format::BitDesc(VK_SHADER_STAGE_RAYGEN_BIT_KHR,				"VK_SHADER_STAGE_RAYGEN_BIT_KHR"),
3326		tcu::Format::BitDesc(VK_SHADER_STAGE_ANY_HIT_BIT_KHR,				"VK_SHADER_STAGE_ANY_HIT_BIT_KHR"),
3327		tcu::Format::BitDesc(VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,			"VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR"),
3328		tcu::Format::BitDesc(VK_SHADER_STAGE_MISS_BIT_KHR,					"VK_SHADER_STAGE_MISS_BIT_KHR"),
3329		tcu::Format::BitDesc(VK_SHADER_STAGE_INTERSECTION_BIT_KHR,			"VK_SHADER_STAGE_INTERSECTION_BIT_KHR"),
3330		tcu::Format::BitDesc(VK_SHADER_STAGE_CALLABLE_BIT_KHR,				"VK_SHADER_STAGE_CALLABLE_BIT_KHR"),
3331		tcu::Format::BitDesc(VK_SHADER_STAGE_TASK_BIT_NV,					"VK_SHADER_STAGE_TASK_BIT_NV"),
3332		tcu::Format::BitDesc(VK_SHADER_STAGE_MESH_BIT_NV,					"VK_SHADER_STAGE_MESH_BIT_NV"),
3333		tcu::Format::BitDesc(VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI,	"VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI"),
3334		tcu::Format::BitDesc(VK_SHADER_STAGE_RAYGEN_BIT_NV,					"VK_SHADER_STAGE_RAYGEN_BIT_NV"),
3335		tcu::Format::BitDesc(VK_SHADER_STAGE_ANY_HIT_BIT_NV,				"VK_SHADER_STAGE_ANY_HIT_BIT_NV"),
3336		tcu::Format::BitDesc(VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV,			"VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV"),
3337		tcu::Format::BitDesc(VK_SHADER_STAGE_MISS_BIT_NV,					"VK_SHADER_STAGE_MISS_BIT_NV"),
3338		tcu::Format::BitDesc(VK_SHADER_STAGE_INTERSECTION_BIT_NV,			"VK_SHADER_STAGE_INTERSECTION_BIT_NV"),
3339		tcu::Format::BitDesc(VK_SHADER_STAGE_CALLABLE_BIT_NV,				"VK_SHADER_STAGE_CALLABLE_BIT_NV"),
3340		tcu::Format::BitDesc(VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM,			"VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM"),
3341	};
3342	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3343}
3344
3345tcu::Format::Bitfield<32> getCullModeFlagsStr (VkCullModeFlags value)
3346{
3347	static const tcu::Format::BitDesc s_desc[] =
3348	{
3349		tcu::Format::BitDesc(VK_CULL_MODE_NONE,					"VK_CULL_MODE_NONE"),
3350		tcu::Format::BitDesc(VK_CULL_MODE_FRONT_BIT,			"VK_CULL_MODE_FRONT_BIT"),
3351		tcu::Format::BitDesc(VK_CULL_MODE_BACK_BIT,				"VK_CULL_MODE_BACK_BIT"),
3352		tcu::Format::BitDesc(VK_CULL_MODE_FRONT_AND_BACK,		"VK_CULL_MODE_FRONT_AND_BACK"),
3353		tcu::Format::BitDesc(VK_CULL_MODE_FLAG_BITS_MAX_ENUM,	"VK_CULL_MODE_FLAG_BITS_MAX_ENUM"),
3354	};
3355	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3356}
3357
3358tcu::Format::Bitfield<32> getPipelineDepthStencilStateCreateFlagsStr (VkPipelineDepthStencilStateCreateFlags value)
3359{
3360	static const tcu::Format::BitDesc s_desc[] =
3361	{
3362		tcu::Format::BitDesc(VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM,	"VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM"),
3363		tcu::Format::BitDesc(VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM,	"VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM"),
3364		tcu::Format::BitDesc(VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM,										"VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM"),
3365	};
3366	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3367}
3368
3369tcu::Format::Bitfield<32> getPipelineColorBlendStateCreateFlagsStr (VkPipelineColorBlendStateCreateFlags value)
3370{
3371	static const tcu::Format::BitDesc s_desc[] =
3372	{
3373		tcu::Format::BitDesc(VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM,	"VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM"),
3374		tcu::Format::BitDesc(VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM,								"VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM"),
3375	};
3376	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3377}
3378
3379tcu::Format::Bitfield<32> getSamplerCreateFlagsStr (VkSamplerCreateFlags value)
3380{
3381	static const tcu::Format::BitDesc s_desc[] =
3382	{
3383		tcu::Format::BitDesc(VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT,							"VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT"),
3384		tcu::Format::BitDesc(VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT,	"VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT"),
3385		tcu::Format::BitDesc(VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM,							"VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM"),
3386	};
3387	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3388}
3389
3390tcu::Format::Bitfield<32> getDescriptorPoolCreateFlagsStr (VkDescriptorPoolCreateFlags value)
3391{
3392	static const tcu::Format::BitDesc s_desc[] =
3393	{
3394		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,		"VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT"),
3395		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,		"VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT"),
3396		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE,			"VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE"),
3397		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT,	"VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT"),
3398		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM,			"VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM"),
3399	};
3400	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3401}
3402
3403tcu::Format::Bitfield<32> getDescriptorSetLayoutCreateFlagsStr (VkDescriptorSetLayoutCreateFlags value)
3404{
3405	static const tcu::Format::BitDesc s_desc[] =
3406	{
3407		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,		"VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT"),
3408		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,			"VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR"),
3409		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE,			"VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE"),
3410		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT,	"VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT"),
3411		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM,				"VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM"),
3412	};
3413	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3414}
3415
3416tcu::Format::Bitfield<32> getAttachmentDescriptionFlagsStr (VkAttachmentDescriptionFlags value)
3417{
3418	static const tcu::Format::BitDesc s_desc[] =
3419	{
3420		tcu::Format::BitDesc(VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT,		"VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT"),
3421		tcu::Format::BitDesc(VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM,	"VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM"),
3422	};
3423	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3424}
3425
3426tcu::Format::Bitfield<32> getDependencyFlagsStr (VkDependencyFlags value)
3427{
3428	static const tcu::Format::BitDesc s_desc[] =
3429	{
3430		tcu::Format::BitDesc(VK_DEPENDENCY_BY_REGION_BIT,			"VK_DEPENDENCY_BY_REGION_BIT"),
3431		tcu::Format::BitDesc(VK_DEPENDENCY_DEVICE_GROUP_BIT,		"VK_DEPENDENCY_DEVICE_GROUP_BIT"),
3432		tcu::Format::BitDesc(VK_DEPENDENCY_VIEW_LOCAL_BIT,			"VK_DEPENDENCY_VIEW_LOCAL_BIT"),
3433		tcu::Format::BitDesc(VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR,		"VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR"),
3434		tcu::Format::BitDesc(VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR,	"VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR"),
3435		tcu::Format::BitDesc(VK_DEPENDENCY_FLAG_BITS_MAX_ENUM,		"VK_DEPENDENCY_FLAG_BITS_MAX_ENUM"),
3436	};
3437	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3438}
3439
3440tcu::Format::Bitfield<32> getFramebufferCreateFlagsStr (VkFramebufferCreateFlags value)
3441{
3442	static const tcu::Format::BitDesc s_desc[] =
3443	{
3444		tcu::Format::BitDesc(VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,		"VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT"),
3445		tcu::Format::BitDesc(VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR,	"VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR"),
3446		tcu::Format::BitDesc(VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM,	"VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM"),
3447	};
3448	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3449}
3450
3451tcu::Format::Bitfield<32> getRenderPassCreateFlagsStr (VkRenderPassCreateFlags value)
3452{
3453	static const tcu::Format::BitDesc s_desc[] =
3454	{
3455		tcu::Format::BitDesc(VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM,	"VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM"),
3456		tcu::Format::BitDesc(VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM,	"VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM"),
3457	};
3458	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3459}
3460
3461tcu::Format::Bitfield<32> getSubpassDescriptionFlagsStr (VkSubpassDescriptionFlags value)
3462{
3463	static const tcu::Format::BitDesc s_desc[] =
3464	{
3465		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,							"VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX"),
3466		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX,						"VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX"),
3467		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM,								"VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM"),
3468		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM,								"VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM"),
3469		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM,	"VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM"),
3470		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM,	"VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM"),
3471		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM,	"VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM"),
3472		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM,										"VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM"),
3473	};
3474	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3475}
3476
3477tcu::Format::Bitfield<32> getCommandPoolCreateFlagsStr (VkCommandPoolCreateFlags value)
3478{
3479	static const tcu::Format::BitDesc s_desc[] =
3480	{
3481		tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,				"VK_COMMAND_POOL_CREATE_TRANSIENT_BIT"),
3482		tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,	"VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT"),
3483		tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_PROTECTED_BIT,				"VK_COMMAND_POOL_CREATE_PROTECTED_BIT"),
3484		tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM,			"VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM"),
3485	};
3486	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3487}
3488
3489tcu::Format::Bitfield<32> getCommandPoolResetFlagsStr (VkCommandPoolResetFlags value)
3490{
3491	static const tcu::Format::BitDesc s_desc[] =
3492	{
3493		tcu::Format::BitDesc(VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT,	"VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT"),
3494		tcu::Format::BitDesc(VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM,		"VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM"),
3495	};
3496	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3497}
3498
3499tcu::Format::Bitfield<32> getCommandBufferUsageFlagsStr (VkCommandBufferUsageFlags value)
3500{
3501	static const tcu::Format::BitDesc s_desc[] =
3502	{
3503		tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,		"VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT"),
3504		tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,	"VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT"),
3505		tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT,		"VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT"),
3506		tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM,		"VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM"),
3507	};
3508	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3509}
3510
3511tcu::Format::Bitfield<32> getQueryControlFlagsStr (VkQueryControlFlags value)
3512{
3513	static const tcu::Format::BitDesc s_desc[] =
3514	{
3515		tcu::Format::BitDesc(VK_QUERY_CONTROL_PRECISE_BIT,			"VK_QUERY_CONTROL_PRECISE_BIT"),
3516		tcu::Format::BitDesc(VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM,	"VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM"),
3517	};
3518	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3519}
3520
3521tcu::Format::Bitfield<32> getCommandBufferResetFlagsStr (VkCommandBufferResetFlags value)
3522{
3523	static const tcu::Format::BitDesc s_desc[] =
3524	{
3525		tcu::Format::BitDesc(VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT,	"VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT"),
3526		tcu::Format::BitDesc(VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM,	"VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM"),
3527	};
3528	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3529}
3530
3531tcu::Format::Bitfield<32> getStencilFaceFlagsStr (VkStencilFaceFlags value)
3532{
3533	static const tcu::Format::BitDesc s_desc[] =
3534	{
3535		tcu::Format::BitDesc(VK_STENCIL_FACE_FRONT_BIT,				"VK_STENCIL_FACE_FRONT_BIT"),
3536		tcu::Format::BitDesc(VK_STENCIL_FACE_BACK_BIT,				"VK_STENCIL_FACE_BACK_BIT"),
3537		tcu::Format::BitDesc(VK_STENCIL_FACE_FRONT_AND_BACK,		"VK_STENCIL_FACE_FRONT_AND_BACK"),
3538		tcu::Format::BitDesc(VK_STENCIL_FRONT_AND_BACK,				"VK_STENCIL_FRONT_AND_BACK"),
3539		tcu::Format::BitDesc(VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM,	"VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM"),
3540	};
3541	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3542}
3543
3544tcu::Format::Bitfield<32> getSubgroupFeatureFlagsStr (VkSubgroupFeatureFlags value)
3545{
3546	static const tcu::Format::BitDesc s_desc[] =
3547	{
3548		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_BASIC_BIT,				"VK_SUBGROUP_FEATURE_BASIC_BIT"),
3549		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_VOTE_BIT,				"VK_SUBGROUP_FEATURE_VOTE_BIT"),
3550		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_ARITHMETIC_BIT,		"VK_SUBGROUP_FEATURE_ARITHMETIC_BIT"),
3551		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_BALLOT_BIT,			"VK_SUBGROUP_FEATURE_BALLOT_BIT"),
3552		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_SHUFFLE_BIT,			"VK_SUBGROUP_FEATURE_SHUFFLE_BIT"),
3553		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,	"VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT"),
3554		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_CLUSTERED_BIT,			"VK_SUBGROUP_FEATURE_CLUSTERED_BIT"),
3555		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_QUAD_BIT,				"VK_SUBGROUP_FEATURE_QUAD_BIT"),
3556		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV,	"VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV"),
3557		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM,	"VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM"),
3558	};
3559	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3560}
3561
3562tcu::Format::Bitfield<32> getPeerMemoryFeatureFlagsStr (VkPeerMemoryFeatureFlags value)
3563{
3564	static const tcu::Format::BitDesc s_desc[] =
3565	{
3566		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,			"VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT"),
3567		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,			"VK_PEER_MEMORY_FEATURE_COPY_DST_BIT"),
3568		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,		"VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT"),
3569		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,		"VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT"),
3570		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR,		"VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR"),
3571		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR,		"VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR"),
3572		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR,	"VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR"),
3573		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR,	"VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR"),
3574		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM,		"VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM"),
3575	};
3576	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3577}
3578
3579tcu::Format::Bitfield<32> getMemoryAllocateFlagsStr (VkMemoryAllocateFlags value)
3580{
3581	static const tcu::Format::BitDesc s_desc[] =
3582	{
3583		tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,						"VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT"),
3584		tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,						"VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT"),
3585		tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,		"VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"),
3586		tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR,					"VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR"),
3587		tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR,					"VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR"),
3588		tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,	"VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"),
3589		tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM,						"VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM"),
3590	};
3591	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3592}
3593
3594tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsStr (VkExternalMemoryHandleTypeFlags value)
3595{
3596	static const tcu::Format::BitDesc s_desc[] =
3597	{
3598		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,							"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT"),
3599		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
3600		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
3601		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT"),
3602		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT"),
3603		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,							"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT"),
3604		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT"),
3605		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT"),
3606		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,	"VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID"),
3607		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,				"VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT"),
3608		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT,		"VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT"),
3609		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA"),
3610		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV"),
3611		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR"),
3612		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR"),
3613		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,				"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR"),
3614		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR"),
3615		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR,				"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR"),
3616		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR"),
3617		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR"),
3618		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM"),
3619	};
3620	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3621}
3622
3623tcu::Format::Bitfield<32> getExternalMemoryFeatureFlagsStr (VkExternalMemoryFeatureFlags value)
3624{
3625	static const tcu::Format::BitDesc s_desc[] =
3626	{
3627		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,		"VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT"),
3628		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,			"VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT"),
3629		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,			"VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT"),
3630		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR,	"VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR"),
3631		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR,		"VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR"),
3632		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR,		"VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR"),
3633		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM,		"VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM"),
3634	};
3635	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3636}
3637
3638tcu::Format::Bitfield<32> getExternalFenceHandleTypeFlagsStr (VkExternalFenceHandleTypeFlags value)
3639{
3640	static const tcu::Format::BitDesc s_desc[] =
3641	{
3642		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,				"VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT"),
3643		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,			"VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
3644		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,		"VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
3645		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,					"VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT"),
3646		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,			"VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR"),
3647		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,		"VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR"),
3648		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,	"VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR"),
3649		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR,				"VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR"),
3650		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM,			"VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM"),
3651	};
3652	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3653}
3654
3655tcu::Format::Bitfield<32> getExternalFenceFeatureFlagsStr (VkExternalFenceFeatureFlags value)
3656{
3657	static const tcu::Format::BitDesc s_desc[] =
3658	{
3659		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,		"VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT"),
3660		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,		"VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT"),
3661		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR,	"VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR"),
3662		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR,	"VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR"),
3663		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM,	"VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM"),
3664	};
3665	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3666}
3667
3668tcu::Format::Bitfield<32> getFenceImportFlagsStr (VkFenceImportFlags value)
3669{
3670	static const tcu::Format::BitDesc s_desc[] =
3671	{
3672		tcu::Format::BitDesc(VK_FENCE_IMPORT_TEMPORARY_BIT,			"VK_FENCE_IMPORT_TEMPORARY_BIT"),
3673		tcu::Format::BitDesc(VK_FENCE_IMPORT_TEMPORARY_BIT_KHR,		"VK_FENCE_IMPORT_TEMPORARY_BIT_KHR"),
3674		tcu::Format::BitDesc(VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM,	"VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM"),
3675	};
3676	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3677}
3678
3679tcu::Format::Bitfield<32> getSemaphoreImportFlagsStr (VkSemaphoreImportFlags value)
3680{
3681	static const tcu::Format::BitDesc s_desc[] =
3682	{
3683		tcu::Format::BitDesc(VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,			"VK_SEMAPHORE_IMPORT_TEMPORARY_BIT"),
3684		tcu::Format::BitDesc(VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR,		"VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR"),
3685		tcu::Format::BitDesc(VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM,	"VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM"),
3686	};
3687	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3688}
3689
3690tcu::Format::Bitfield<32> getExternalSemaphoreHandleTypeFlagsStr (VkExternalSemaphoreHandleTypeFlags value)
3691{
3692	static const tcu::Format::BitDesc s_desc[] =
3693	{
3694		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,				"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT"),
3695		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,			"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
3696		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,		"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
3697		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,				"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT"),
3698		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,					"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT"),
3699		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA,	"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA"),
3700		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT,				"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT"),
3701		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,			"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR"),
3702		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,		"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR"),
3703		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,	"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR"),
3704		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR,			"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR"),
3705		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR,				"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR"),
3706		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM,			"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM"),
3707	};
3708	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3709}
3710
3711tcu::Format::Bitfield<32> getExternalSemaphoreFeatureFlagsStr (VkExternalSemaphoreFeatureFlags value)
3712{
3713	static const tcu::Format::BitDesc s_desc[] =
3714	{
3715		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,		"VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT"),
3716		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,		"VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT"),
3717		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR,	"VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR"),
3718		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR,	"VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR"),
3719		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM,	"VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM"),
3720	};
3721	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3722}
3723
3724tcu::Format::Bitfield<32> getResolveModeFlagsStr (VkResolveModeFlags value)
3725{
3726	static const tcu::Format::BitDesc s_desc[] =
3727	{
3728		tcu::Format::BitDesc(VK_RESOLVE_MODE_NONE,					"VK_RESOLVE_MODE_NONE"),
3729		tcu::Format::BitDesc(VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,		"VK_RESOLVE_MODE_SAMPLE_ZERO_BIT"),
3730		tcu::Format::BitDesc(VK_RESOLVE_MODE_AVERAGE_BIT,			"VK_RESOLVE_MODE_AVERAGE_BIT"),
3731		tcu::Format::BitDesc(VK_RESOLVE_MODE_MIN_BIT,				"VK_RESOLVE_MODE_MIN_BIT"),
3732		tcu::Format::BitDesc(VK_RESOLVE_MODE_MAX_BIT,				"VK_RESOLVE_MODE_MAX_BIT"),
3733		tcu::Format::BitDesc(VK_RESOLVE_MODE_NONE_KHR,				"VK_RESOLVE_MODE_NONE_KHR"),
3734		tcu::Format::BitDesc(VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR,	"VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR"),
3735		tcu::Format::BitDesc(VK_RESOLVE_MODE_AVERAGE_BIT_KHR,		"VK_RESOLVE_MODE_AVERAGE_BIT_KHR"),
3736		tcu::Format::BitDesc(VK_RESOLVE_MODE_MIN_BIT_KHR,			"VK_RESOLVE_MODE_MIN_BIT_KHR"),
3737		tcu::Format::BitDesc(VK_RESOLVE_MODE_MAX_BIT_KHR,			"VK_RESOLVE_MODE_MAX_BIT_KHR"),
3738		tcu::Format::BitDesc(VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM,	"VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM"),
3739	};
3740	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3741}
3742
3743tcu::Format::Bitfield<32> getDescriptorBindingFlagsStr (VkDescriptorBindingFlags value)
3744{
3745	static const tcu::Format::BitDesc s_desc[] =
3746	{
3747		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,				"VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT"),
3748		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,		"VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT"),
3749		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,					"VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT"),
3750		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,		"VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT"),
3751		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT,			"VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT"),
3752		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT,	"VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT"),
3753		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT,				"VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT"),
3754		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT,	"VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT"),
3755		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM,					"VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM"),
3756	};
3757	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3758}
3759
3760tcu::Format::Bitfield<32> getSemaphoreWaitFlagsStr (VkSemaphoreWaitFlags value)
3761{
3762	static const tcu::Format::BitDesc s_desc[] =
3763	{
3764		tcu::Format::BitDesc(VK_SEMAPHORE_WAIT_ANY_BIT,				"VK_SEMAPHORE_WAIT_ANY_BIT"),
3765		tcu::Format::BitDesc(VK_SEMAPHORE_WAIT_ANY_BIT_KHR,			"VK_SEMAPHORE_WAIT_ANY_BIT_KHR"),
3766		tcu::Format::BitDesc(VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM,	"VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM"),
3767	};
3768	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3769}
3770
3771tcu::Format::Bitfield<32> getPipelineCreationFeedbackFlagsStr (VkPipelineCreationFeedbackFlags value)
3772{
3773	static const tcu::Format::BitDesc s_desc[] =
3774	{
3775		tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,								"VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT"),
3776		tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,		"VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT"),
3777		tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,			"VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT"),
3778		tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT,							"VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT"),
3779		tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT,	"VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT"),
3780		tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT,		"VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT"),
3781		tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM,						"VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM"),
3782	};
3783	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3784}
3785
3786tcu::Format::Bitfield<32> getToolPurposeFlagsStr (VkToolPurposeFlags value)
3787{
3788	static const tcu::Format::BitDesc s_desc[] =
3789	{
3790		tcu::Format::BitDesc(VK_TOOL_PURPOSE_VALIDATION_BIT,				"VK_TOOL_PURPOSE_VALIDATION_BIT"),
3791		tcu::Format::BitDesc(VK_TOOL_PURPOSE_PROFILING_BIT,					"VK_TOOL_PURPOSE_PROFILING_BIT"),
3792		tcu::Format::BitDesc(VK_TOOL_PURPOSE_TRACING_BIT,					"VK_TOOL_PURPOSE_TRACING_BIT"),
3793		tcu::Format::BitDesc(VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,		"VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT"),
3794		tcu::Format::BitDesc(VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,		"VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT"),
3795		tcu::Format::BitDesc(VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT,		"VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT"),
3796		tcu::Format::BitDesc(VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT,			"VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT"),
3797		tcu::Format::BitDesc(VK_TOOL_PURPOSE_VALIDATION_BIT_EXT,			"VK_TOOL_PURPOSE_VALIDATION_BIT_EXT"),
3798		tcu::Format::BitDesc(VK_TOOL_PURPOSE_PROFILING_BIT_EXT,				"VK_TOOL_PURPOSE_PROFILING_BIT_EXT"),
3799		tcu::Format::BitDesc(VK_TOOL_PURPOSE_TRACING_BIT_EXT,				"VK_TOOL_PURPOSE_TRACING_BIT_EXT"),
3800		tcu::Format::BitDesc(VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT,	"VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT"),
3801		tcu::Format::BitDesc(VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT,	"VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT"),
3802		tcu::Format::BitDesc(VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM,			"VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM"),
3803	};
3804	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3805}
3806
3807tcu::Format::Bitfield<32> getPrivateDataSlotCreateFlagsStr (VkPrivateDataSlotCreateFlags value)
3808{
3809	static const tcu::Format::BitDesc s_desc[] =
3810	{
3811		tcu::Format::BitDesc(VK_PRIVATE_DATA_SLOT_CREATE_FLAG_BITS_MAX_ENUM,	"VK_PRIVATE_DATA_SLOT_CREATE_FLAG_BITS_MAX_ENUM"),
3812	};
3813	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3814}
3815
3816tcu::Format::Bitfield<32> getSubmitFlagsStr (VkSubmitFlags value)
3817{
3818	static const tcu::Format::BitDesc s_desc[] =
3819	{
3820		tcu::Format::BitDesc(VK_SUBMIT_PROTECTED_BIT,		"VK_SUBMIT_PROTECTED_BIT"),
3821		tcu::Format::BitDesc(VK_SUBMIT_PROTECTED_BIT_KHR,	"VK_SUBMIT_PROTECTED_BIT_KHR"),
3822		tcu::Format::BitDesc(VK_SUBMIT_FLAG_BITS_MAX_ENUM,	"VK_SUBMIT_FLAG_BITS_MAX_ENUM"),
3823	};
3824	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3825}
3826
3827tcu::Format::Bitfield<32> getRenderingFlagsStr (VkRenderingFlags value)
3828{
3829	static const tcu::Format::BitDesc s_desc[] =
3830	{
3831		tcu::Format::BitDesc(VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,		"VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT"),
3832		tcu::Format::BitDesc(VK_RENDERING_SUSPENDING_BIT,								"VK_RENDERING_SUSPENDING_BIT"),
3833		tcu::Format::BitDesc(VK_RENDERING_RESUMING_BIT,									"VK_RENDERING_RESUMING_BIT"),
3834		tcu::Format::BitDesc(VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR,	"VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR"),
3835		tcu::Format::BitDesc(VK_RENDERING_SUSPENDING_BIT_KHR,							"VK_RENDERING_SUSPENDING_BIT_KHR"),
3836		tcu::Format::BitDesc(VK_RENDERING_RESUMING_BIT_KHR,								"VK_RENDERING_RESUMING_BIT_KHR"),
3837		tcu::Format::BitDesc(VK_RENDERING_FLAG_BITS_MAX_ENUM,							"VK_RENDERING_FLAG_BITS_MAX_ENUM"),
3838	};
3839	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3840}
3841
3842tcu::Format::Bitfield<32> getSurfaceTransformFlagsKHRStr (VkSurfaceTransformFlagsKHR value)
3843{
3844	static const tcu::Format::BitDesc s_desc[] =
3845	{
3846		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,						"VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR"),
3847		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,					"VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR"),
3848		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,					"VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR"),
3849		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,					"VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR"),
3850		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,			"VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR"),
3851		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,	"VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR"),
3852		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR,	"VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR"),
3853		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR,	"VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"),
3854		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR,						"VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"),
3855		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR,				"VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR"),
3856	};
3857	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3858}
3859
3860tcu::Format::Bitfield<32> getCompositeAlphaFlagsKHRStr (VkCompositeAlphaFlagsKHR value)
3861{
3862	static const tcu::Format::BitDesc s_desc[] =
3863	{
3864		tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,				"VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR"),
3865		tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,		"VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR"),
3866		tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,	"VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR"),
3867		tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR,			"VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR"),
3868		tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR,		"VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR"),
3869	};
3870	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3871}
3872
3873tcu::Format::Bitfield<32> getSwapchainCreateFlagsKHRStr (VkSwapchainCreateFlagsKHR value)
3874{
3875	static const tcu::Format::BitDesc s_desc[] =
3876	{
3877		tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,	"VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR"),
3878		tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,						"VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR"),
3879		tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR,				"VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR"),
3880		tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR,				"VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR"),
3881	};
3882	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3883}
3884
3885tcu::Format::Bitfield<32> getDeviceGroupPresentModeFlagsKHRStr (VkDeviceGroupPresentModeFlagsKHR value)
3886{
3887	static const tcu::Format::BitDesc s_desc[] =
3888	{
3889		tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,				"VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR"),
3890		tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,				"VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR"),
3891		tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,					"VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR"),
3892		tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR,	"VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR"),
3893		tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR,		"VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR"),
3894	};
3895	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3896}
3897
3898tcu::Format::Bitfield<32> getDisplayPlaneAlphaFlagsKHRStr (VkDisplayPlaneAlphaFlagsKHR value)
3899{
3900	static const tcu::Format::BitDesc s_desc[] =
3901	{
3902		tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,						"VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR"),
3903		tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,						"VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR"),
3904		tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,					"VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR"),
3905		tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR,	"VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR"),
3906		tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR,				"VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR"),
3907	};
3908	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3909}
3910
3911tcu::Format::Bitfield<32> getPerformanceCounterDescriptionFlagsKHRStr (VkPerformanceCounterDescriptionFlagsKHR value)
3912{
3913	static const tcu::Format::BitDesc s_desc[] =
3914	{
3915		tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,	"VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR"),
3916		tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,	"VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR"),
3917		tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR,		"VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR"),
3918		tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR,		"VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR"),
3919		tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR,			"VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR"),
3920	};
3921	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3922}
3923
3924tcu::Format::Bitfield<32> getAcquireProfilingLockFlagsKHRStr (VkAcquireProfilingLockFlagsKHR value)
3925{
3926	static const tcu::Format::BitDesc s_desc[] =
3927	{
3928		tcu::Format::BitDesc(VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR,	"VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR"),
3929	};
3930	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3931}
3932
3933tcu::Format::Bitfield<32> getDebugReportFlagsEXTStr (VkDebugReportFlagsEXT value)
3934{
3935	static const tcu::Format::BitDesc s_desc[] =
3936	{
3937		tcu::Format::BitDesc(VK_DEBUG_REPORT_INFORMATION_BIT_EXT,			"VK_DEBUG_REPORT_INFORMATION_BIT_EXT"),
3938		tcu::Format::BitDesc(VK_DEBUG_REPORT_WARNING_BIT_EXT,				"VK_DEBUG_REPORT_WARNING_BIT_EXT"),
3939		tcu::Format::BitDesc(VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,	"VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT"),
3940		tcu::Format::BitDesc(VK_DEBUG_REPORT_ERROR_BIT_EXT,					"VK_DEBUG_REPORT_ERROR_BIT_EXT"),
3941		tcu::Format::BitDesc(VK_DEBUG_REPORT_DEBUG_BIT_EXT,					"VK_DEBUG_REPORT_DEBUG_BIT_EXT"),
3942		tcu::Format::BitDesc(VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT,		"VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT"),
3943	};
3944	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3945}
3946
3947tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsNVStr (VkExternalMemoryHandleTypeFlagsNV value)
3948{
3949	static const tcu::Format::BitDesc s_desc[] =
3950	{
3951		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,		"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV"),
3952		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,	"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV"),
3953		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,			"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV"),
3954		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV,		"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV"),
3955		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV,		"VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV"),
3956	};
3957	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3958}
3959
3960tcu::Format::Bitfield<32> getExternalMemoryFeatureFlagsNVStr (VkExternalMemoryFeatureFlagsNV value)
3961{
3962	static const tcu::Format::BitDesc s_desc[] =
3963	{
3964		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,	"VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV"),
3965		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,		"VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV"),
3966		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV,		"VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV"),
3967		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV,	"VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV"),
3968	};
3969	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3970}
3971
3972tcu::Format::Bitfield<32> getConditionalRenderingFlagsEXTStr (VkConditionalRenderingFlagsEXT value)
3973{
3974	static const tcu::Format::BitDesc s_desc[] =
3975	{
3976		tcu::Format::BitDesc(VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT,			"VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT"),
3977		tcu::Format::BitDesc(VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT,	"VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT"),
3978	};
3979	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3980}
3981
3982tcu::Format::Bitfield<32> getSurfaceCounterFlagsEXTStr (VkSurfaceCounterFlagsEXT value)
3983{
3984	static const tcu::Format::BitDesc s_desc[] =
3985	{
3986		tcu::Format::BitDesc(VK_SURFACE_COUNTER_VBLANK_BIT_EXT,			"VK_SURFACE_COUNTER_VBLANK_BIT_EXT"),
3987		tcu::Format::BitDesc(VK_SURFACE_COUNTER_VBLANK_EXT,				"VK_SURFACE_COUNTER_VBLANK_EXT"),
3988		tcu::Format::BitDesc(VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT,	"VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT"),
3989	};
3990	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3991}
3992
3993tcu::Format::Bitfield<32> getDebugUtilsMessageSeverityFlagsEXTStr (VkDebugUtilsMessageSeverityFlagsEXT value)
3994{
3995	static const tcu::Format::BitDesc s_desc[] =
3996	{
3997		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,			"VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT"),
3998		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,				"VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT"),
3999		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,			"VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT"),
4000		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT,				"VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT"),
4001		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT,	"VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT"),
4002	};
4003	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4004}
4005
4006tcu::Format::Bitfield<32> getDebugUtilsMessageTypeFlagsEXTStr (VkDebugUtilsMessageTypeFlagsEXT value)
4007{
4008	static const tcu::Format::BitDesc s_desc[] =
4009	{
4010		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,			"VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT"),
4011		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,		"VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT"),
4012		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT,		"VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT"),
4013		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT,	"VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT"),
4014	};
4015	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4016}
4017
4018tcu::Format::Bitfield<32> getGeometryFlagsKHRStr (VkGeometryFlagsKHR value)
4019{
4020	static const tcu::Format::BitDesc s_desc[] =
4021	{
4022		tcu::Format::BitDesc(VK_GEOMETRY_OPAQUE_BIT_KHR,							"VK_GEOMETRY_OPAQUE_BIT_KHR"),
4023		tcu::Format::BitDesc(VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,	"VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR"),
4024		tcu::Format::BitDesc(VK_GEOMETRY_OPAQUE_BIT_NV,								"VK_GEOMETRY_OPAQUE_BIT_NV"),
4025		tcu::Format::BitDesc(VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV,	"VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV"),
4026		tcu::Format::BitDesc(VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR,					"VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR"),
4027	};
4028	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4029}
4030
4031tcu::Format::Bitfield<32> getGeometryInstanceFlagsKHRStr (VkGeometryInstanceFlagsKHR value)
4032{
4033	static const tcu::Format::BitDesc s_desc[] =
4034	{
4035		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,		"VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR"),
4036		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,				"VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR"),
4037		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,						"VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR"),
4038		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,					"VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR"),
4039		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,	"VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR"),
4040		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV,				"VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV"),
4041		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV,	"VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV"),
4042		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV,						"VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV"),
4043		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV,					"VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV"),
4044		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR,					"VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR"),
4045	};
4046	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4047}
4048
4049tcu::Format::Bitfield<32> getBuildAccelerationStructureFlagsKHRStr (VkBuildAccelerationStructureFlagsKHR value)
4050{
4051	static const tcu::Format::BitDesc s_desc[] =
4052	{
4053		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,		"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"),
4054		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"),
4055		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"),
4056		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"),
4057		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,		"VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"),
4058		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV,				"VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV"),
4059		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV,		"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV"),
4060		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV,	"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV"),
4061		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV"),
4062		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV"),
4063		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV,			"VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV"),
4064		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR"),
4065	};
4066	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4067}
4068
4069tcu::Format::Bitfield<32> getPipelineCompilerControlFlagsAMDStr (VkPipelineCompilerControlFlagsAMD value)
4070{
4071	static const tcu::Format::BitDesc s_desc[] =
4072	{
4073		tcu::Format::BitDesc(VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD,	"VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD"),
4074	};
4075	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4076}
4077
4078tcu::Format::Bitfield<32> getShaderCorePropertiesFlagsAMDStr (VkShaderCorePropertiesFlagsAMD value)
4079{
4080	static const tcu::Format::BitDesc s_desc[] =
4081	{
4082		tcu::Format::BitDesc(VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD,	"VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD"),
4083	};
4084	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4085}
4086
4087tcu::Format::Bitfield<32> getIndirectStateFlagsNVStr (VkIndirectStateFlagsNV value)
4088{
4089	static const tcu::Format::BitDesc s_desc[] =
4090	{
4091		tcu::Format::BitDesc(VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV,	"VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV"),
4092		tcu::Format::BitDesc(VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV,	"VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV"),
4093	};
4094	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4095}
4096
4097tcu::Format::Bitfield<32> getIndirectCommandsLayoutUsageFlagsNVStr (VkIndirectCommandsLayoutUsageFlagsNV value)
4098{
4099	static const tcu::Format::BitDesc s_desc[] =
4100	{
4101		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV"),
4102		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV"),
4103		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV"),
4104		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV,		"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV"),
4105	};
4106	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4107}
4108
4109tcu::Format::Bitfield<32> getDeviceDiagnosticsConfigFlagsNVStr (VkDeviceDiagnosticsConfigFlagsNV value)
4110{
4111	static const tcu::Format::BitDesc s_desc[] =
4112	{
4113		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV,		"VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV"),
4114		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV,		"VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV"),
4115		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV,	"VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV"),
4116		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV,				"VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV"),
4117	};
4118	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4119}
4120
4121tcu::Format::Bitfield<32> getAccelerationStructureCreateFlagsKHRStr (VkAccelerationStructureCreateFlagsKHR value)
4122{
4123	static const tcu::Format::BitDesc s_desc[] =
4124	{
4125		tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,	"VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"),
4126		tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV,							"VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV"),
4127		tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR,					"VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR"),
4128	};
4129	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4130}
4131
4132tcu::Format::Bitfield<32> getVideoCodecOperationFlagsKHRStr (VkVideoCodecOperationFlagsKHR value)
4133{
4134	static const tcu::Format::BitDesc s_desc[] =
4135	{
4136		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR,			"VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR"),
4137		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT,		"VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT"),
4138		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT,		"VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT"),
4139		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT,		"VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT"),
4140		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT,		"VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT"),
4141		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR,	"VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR"),
4142	};
4143	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4144}
4145
4146tcu::Format::Bitfield<32> getVideoChromaSubsamplingFlagsKHRStr (VkVideoChromaSubsamplingFlagsKHR value)
4147{
4148	static const tcu::Format::BitDesc s_desc[] =
4149	{
4150		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR,			"VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR"),
4151		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR,		"VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR"),
4152		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,				"VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR"),
4153		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR,				"VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR"),
4154		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR,				"VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR"),
4155		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR,	"VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR"),
4156	};
4157	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4158}
4159
4160tcu::Format::Bitfield<32> getVideoComponentBitDepthFlagsKHRStr (VkVideoComponentBitDepthFlagsKHR value)
4161{
4162	static const tcu::Format::BitDesc s_desc[] =
4163	{
4164		tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR,				"VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR"),
4165		tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR,				"VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR"),
4166		tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR,				"VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR"),
4167		tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR,				"VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR"),
4168		tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR,	"VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR"),
4169	};
4170	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4171}
4172
4173tcu::Format::Bitfield<32> getVideoCapabilityFlagsKHRStr (VkVideoCapabilityFlagsKHR value)
4174{
4175	static const tcu::Format::BitDesc s_desc[] =
4176	{
4177		tcu::Format::BitDesc(VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR,			"VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR"),
4178		tcu::Format::BitDesc(VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR,	"VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR"),
4179		tcu::Format::BitDesc(VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR,			"VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR"),
4180	};
4181	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4182}
4183
4184tcu::Format::Bitfield<32> getVideoSessionCreateFlagsKHRStr (VkVideoSessionCreateFlagsKHR value)
4185{
4186	static const tcu::Format::BitDesc s_desc[] =
4187	{
4188		tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_DEFAULT_KHR,				"VK_VIDEO_SESSION_CREATE_DEFAULT_KHR"),
4189		tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR,	"VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR"),
4190		tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR,	"VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR"),
4191	};
4192	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4193}
4194
4195tcu::Format::Bitfield<32> getVideoCodingControlFlagsKHRStr (VkVideoCodingControlFlagsKHR value)
4196{
4197	static const tcu::Format::BitDesc s_desc[] =
4198	{
4199		tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_DEFAULT_KHR,				"VK_VIDEO_CODING_CONTROL_DEFAULT_KHR"),
4200		tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR,				"VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR"),
4201		tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR,	"VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR"),
4202	};
4203	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4204}
4205
4206tcu::Format::Bitfield<32> getVideoCodingQualityPresetFlagsKHRStr (VkVideoCodingQualityPresetFlagsKHR value)
4207{
4208	static const tcu::Format::BitDesc s_desc[] =
4209	{
4210		tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR,			"VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR"),
4211		tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR,			"VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR"),
4212		tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR,		"VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR"),
4213		tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_FLAG_BITS_MAX_ENUM_KHR,	"VK_VIDEO_CODING_QUALITY_PRESET_FLAG_BITS_MAX_ENUM_KHR"),
4214	};
4215	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4216}
4217
4218tcu::Format::Bitfield<32> getVideoDecodeFlagsKHRStr (VkVideoDecodeFlagsKHR value)
4219{
4220	static const tcu::Format::BitDesc s_desc[] =
4221	{
4222		tcu::Format::BitDesc(VK_VIDEO_DECODE_DEFAULT_KHR,				"VK_VIDEO_DECODE_DEFAULT_KHR"),
4223		tcu::Format::BitDesc(VK_VIDEO_DECODE_RESERVED_0_BIT_KHR,		"VK_VIDEO_DECODE_RESERVED_0_BIT_KHR"),
4224		tcu::Format::BitDesc(VK_VIDEO_DECODE_FLAG_BITS_MAX_ENUM_KHR,	"VK_VIDEO_DECODE_FLAG_BITS_MAX_ENUM_KHR"),
4225	};
4226	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4227}
4228
4229tcu::Format::Bitfield<32> getVideoEncodeFlagsKHRStr (VkVideoEncodeFlagsKHR value)
4230{
4231	static const tcu::Format::BitDesc s_desc[] =
4232	{
4233		tcu::Format::BitDesc(VK_VIDEO_ENCODE_DEFAULT_KHR,				"VK_VIDEO_ENCODE_DEFAULT_KHR"),
4234		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR,		"VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR"),
4235		tcu::Format::BitDesc(VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR,	"VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR"),
4236	};
4237	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4238}
4239
4240tcu::Format::Bitfield<32> getVideoEncodeRateControlFlagsKHRStr (VkVideoEncodeRateControlFlagsKHR value)
4241{
4242	static const tcu::Format::BitDesc s_desc[] =
4243	{
4244		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR,				"VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR"),
4245		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR,		"VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR"),
4246		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR,	"VK_VIDEO_ENCODE_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR"),
4247	};
4248	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4249}
4250
4251tcu::Format::Bitfield<32> getVideoEncodeRateControlModeFlagsKHRStr (VkVideoEncodeRateControlModeFlagsKHR value)
4252{
4253	static const tcu::Format::BitDesc s_desc[] =
4254	{
4255		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR,			"VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR"),
4256		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR,				"VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR"),
4257		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR,				"VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR"),
4258		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR,	"VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR"),
4259	};
4260	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4261}
4262
4263tcu::Format::Bitfield<32> getVideoEncodeH264CapabilityFlagsEXTStr (VkVideoEncodeH264CapabilityFlagsEXT value)
4264{
4265	static const tcu::Format::BitDesc s_desc[] =
4266	{
4267		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT,							"VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT"),
4268		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT,							"VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT"),
4269		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT,		"VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT"),
4270		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT,					"VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT"),
4271		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT,				"VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT"),
4272		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT,		"VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT"),
4273		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT,	"VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT"),
4274		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT,		"VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT"),
4275		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT,		"VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT"),
4276		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT,		"VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT"),
4277		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT,	"VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT"),
4278		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT,				"VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT"),
4279	};
4280	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4281}
4282
4283tcu::Format::Bitfield<32> getVideoEncodeH264InputModeFlagsEXTStr (VkVideoEncodeH264InputModeFlagsEXT value)
4284{
4285	static const tcu::Format::BitDesc s_desc[] =
4286	{
4287		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT,				"VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT"),
4288		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT,				"VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT"),
4289		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT,			"VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT"),
4290		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT,	"VK_VIDEO_ENCODE_H264_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT"),
4291	};
4292	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4293}
4294
4295tcu::Format::Bitfield<32> getVideoEncodeH264OutputModeFlagsEXTStr (VkVideoEncodeH264OutputModeFlagsEXT value)
4296{
4297	static const tcu::Format::BitDesc s_desc[] =
4298	{
4299		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT,			"VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT"),
4300		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT,			"VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT"),
4301		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT,			"VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT"),
4302		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT,	"VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT"),
4303	};
4304	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4305}
4306
4307tcu::Format::Bitfield<32> getVideoEncodeH264CreateFlagsEXTStr (VkVideoEncodeH264CreateFlagsEXT value)
4308{
4309	static const tcu::Format::BitDesc s_desc[] =
4310	{
4311		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CREATE_DEFAULT_EXT,				"VK_VIDEO_ENCODE_H264_CREATE_DEFAULT_EXT"),
4312		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CREATE_RESERVED_0_BIT_EXT,		"VK_VIDEO_ENCODE_H264_CREATE_RESERVED_0_BIT_EXT"),
4313		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CREATE_FLAG_BITS_MAX_ENUM_EXT,	"VK_VIDEO_ENCODE_H264_CREATE_FLAG_BITS_MAX_ENUM_EXT"),
4314	};
4315	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4316}
4317
4318tcu::Format::Bitfield<32> getVideoEncodeH264RateControlStructureFlagsEXTStr (VkVideoEncodeH264RateControlStructureFlagsEXT value)
4319{
4320	static const tcu::Format::BitDesc s_desc[] =
4321	{
4322		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT,				"VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT"),
4323		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT,				"VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT"),
4324		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT,			"VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT"),
4325		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT,	"VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT"),
4326	};
4327	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4328}
4329
4330tcu::Format::Bitfield<32> getVideoEncodeH265InputModeFlagsEXTStr (VkVideoEncodeH265InputModeFlagsEXT value)
4331{
4332	static const tcu::Format::BitDesc s_desc[] =
4333	{
4334		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT,				"VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT"),
4335		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_BIT_EXT,				"VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_BIT_EXT"),
4336		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT,			"VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT"),
4337		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT,	"VK_VIDEO_ENCODE_H265_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT"),
4338	};
4339	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4340}
4341
4342tcu::Format::Bitfield<32> getVideoEncodeH265OutputModeFlagsEXTStr (VkVideoEncodeH265OutputModeFlagsEXT value)
4343{
4344	static const tcu::Format::BitDesc s_desc[] =
4345	{
4346		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT,			"VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT"),
4347		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_BIT_EXT,			"VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_BIT_EXT"),
4348		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT,			"VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT"),
4349		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT,	"VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT"),
4350	};
4351	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4352}
4353
4354tcu::Format::Bitfield<32> getVideoEncodeH265CtbSizeFlagsEXTStr (VkVideoEncodeH265CtbSizeFlagsEXT value)
4355{
4356	static const tcu::Format::BitDesc s_desc[] =
4357	{
4358		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_8_BIT_EXT,				"VK_VIDEO_ENCODE_H265_CTB_SIZE_8_BIT_EXT"),
4359		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT,				"VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT"),
4360		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT,				"VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT"),
4361		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT,				"VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT"),
4362		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_EXT,	"VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_EXT"),
4363	};
4364	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4365}
4366
4367tcu::Format::Bitfield<32> getVideoEncodeH265RateControlStructureFlagsEXTStr (VkVideoEncodeH265RateControlStructureFlagsEXT value)
4368{
4369	static const tcu::Format::BitDesc s_desc[] =
4370	{
4371		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT,				"VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT"),
4372		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT,				"VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT"),
4373		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT,			"VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT"),
4374		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT,	"VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT"),
4375	};
4376	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4377}
4378
4379tcu::Format::Bitfield<32> getVideoDecodeH264PictureLayoutFlagsEXTStr (VkVideoDecodeH264PictureLayoutFlagsEXT value)
4380{
4381	static const tcu::Format::BitDesc s_desc[] =
4382	{
4383		tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT,						"VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT"),
4384		tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT,	"VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT"),
4385		tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT,	"VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT"),
4386		tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_EXT,				"VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_EXT"),
4387	};
4388	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4389}
4390
4391tcu::Format::Bitfield<32> getImageConstraintsInfoFlagsFUCHSIAStr (VkImageConstraintsInfoFlagsFUCHSIA value)
4392{
4393	static const tcu::Format::BitDesc s_desc[] =
4394	{
4395		tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA,		"VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA"),
4396		tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA,		"VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA"),
4397		tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA,	"VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA"),
4398		tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA,		"VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA"),
4399		tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA,	"VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA"),
4400		tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_FLAG_BITS_MAX_ENUM_FUCHSIA,	"VK_IMAGE_CONSTRAINTS_INFO_FLAG_BITS_MAX_ENUM_FUCHSIA"),
4401	};
4402	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4403}
4404
4405tcu::Format::Bitfield<32> getInstanceCreateFlagsStr (VkInstanceCreateFlags value)
4406{
4407	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4408}
4409
4410tcu::Format::Bitfield<32> getDeviceCreateFlagsStr (VkDeviceCreateFlags value)
4411{
4412	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4413}
4414
4415tcu::Format::Bitfield<32> getMemoryMapFlagsStr (VkMemoryMapFlags value)
4416{
4417	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4418}
4419
4420tcu::Format::Bitfield<32> getSemaphoreCreateFlagsStr (VkSemaphoreCreateFlags value)
4421{
4422	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4423}
4424
4425tcu::Format::Bitfield<32> getQueryPoolCreateFlagsStr (VkQueryPoolCreateFlags value)
4426{
4427	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4428}
4429
4430tcu::Format::Bitfield<32> getBufferViewCreateFlagsStr (VkBufferViewCreateFlags value)
4431{
4432	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4433}
4434
4435tcu::Format::Bitfield<32> getShaderModuleCreateFlagsStr (VkShaderModuleCreateFlags value)
4436{
4437	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4438}
4439
4440tcu::Format::Bitfield<32> getPipelineVertexInputStateCreateFlagsStr (VkPipelineVertexInputStateCreateFlags value)
4441{
4442	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4443}
4444
4445tcu::Format::Bitfield<32> getPipelineInputAssemblyStateCreateFlagsStr (VkPipelineInputAssemblyStateCreateFlags value)
4446{
4447	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4448}
4449
4450tcu::Format::Bitfield<32> getPipelineTessellationStateCreateFlagsStr (VkPipelineTessellationStateCreateFlags value)
4451{
4452	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4453}
4454
4455tcu::Format::Bitfield<32> getPipelineViewportStateCreateFlagsStr (VkPipelineViewportStateCreateFlags value)
4456{
4457	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4458}
4459
4460tcu::Format::Bitfield<32> getPipelineRasterizationStateCreateFlagsStr (VkPipelineRasterizationStateCreateFlags value)
4461{
4462	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4463}
4464
4465tcu::Format::Bitfield<32> getPipelineMultisampleStateCreateFlagsStr (VkPipelineMultisampleStateCreateFlags value)
4466{
4467	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4468}
4469
4470tcu::Format::Bitfield<32> getPipelineDynamicStateCreateFlagsStr (VkPipelineDynamicStateCreateFlags value)
4471{
4472	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4473}
4474
4475tcu::Format::Bitfield<32> getPipelineLayoutCreateFlagsStr (VkPipelineLayoutCreateFlags value)
4476{
4477	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4478}
4479
4480tcu::Format::Bitfield<32> getDescriptorPoolResetFlagsStr (VkDescriptorPoolResetFlags value)
4481{
4482	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4483}
4484
4485tcu::Format::Bitfield<32> getCommandPoolTrimFlagsStr (VkCommandPoolTrimFlags value)
4486{
4487	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4488}
4489
4490tcu::Format::Bitfield<32> getDescriptorUpdateTemplateCreateFlagsStr (VkDescriptorUpdateTemplateCreateFlags value)
4491{
4492	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4493}
4494
4495tcu::Format::Bitfield<32> getDisplayModeCreateFlagsKHRStr (VkDisplayModeCreateFlagsKHR value)
4496{
4497	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4498}
4499
4500tcu::Format::Bitfield<32> getDisplaySurfaceCreateFlagsKHRStr (VkDisplaySurfaceCreateFlagsKHR value)
4501{
4502	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4503}
4504
4505tcu::Format::Bitfield<32> getPipelineRasterizationStateStreamCreateFlagsEXTStr (VkPipelineRasterizationStateStreamCreateFlagsEXT value)
4506{
4507	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4508}
4509
4510tcu::Format::Bitfield<32> getPipelineViewportSwizzleStateCreateFlagsNVStr (VkPipelineViewportSwizzleStateCreateFlagsNV value)
4511{
4512	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4513}
4514
4515tcu::Format::Bitfield<32> getPipelineDiscardRectangleStateCreateFlagsEXTStr (VkPipelineDiscardRectangleStateCreateFlagsEXT value)
4516{
4517	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4518}
4519
4520tcu::Format::Bitfield<32> getPipelineRasterizationConservativeStateCreateFlagsEXTStr (VkPipelineRasterizationConservativeStateCreateFlagsEXT value)
4521{
4522	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4523}
4524
4525tcu::Format::Bitfield<32> getPipelineRasterizationDepthClipStateCreateFlagsEXTStr (VkPipelineRasterizationDepthClipStateCreateFlagsEXT value)
4526{
4527	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4528}
4529
4530tcu::Format::Bitfield<32> getDebugUtilsMessengerCallbackDataFlagsEXTStr (VkDebugUtilsMessengerCallbackDataFlagsEXT value)
4531{
4532	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4533}
4534
4535tcu::Format::Bitfield<32> getDebugUtilsMessengerCreateFlagsEXTStr (VkDebugUtilsMessengerCreateFlagsEXT value)
4536{
4537	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4538}
4539
4540tcu::Format::Bitfield<32> getPipelineCoverageToColorStateCreateFlagsNVStr (VkPipelineCoverageToColorStateCreateFlagsNV value)
4541{
4542	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4543}
4544
4545tcu::Format::Bitfield<32> getPipelineCoverageModulationStateCreateFlagsNVStr (VkPipelineCoverageModulationStateCreateFlagsNV value)
4546{
4547	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4548}
4549
4550tcu::Format::Bitfield<32> getValidationCacheCreateFlagsEXTStr (VkValidationCacheCreateFlagsEXT value)
4551{
4552	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4553}
4554
4555tcu::Format::Bitfield<32> getPipelineCoverageReductionStateCreateFlagsNVStr (VkPipelineCoverageReductionStateCreateFlagsNV value)
4556{
4557	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4558}
4559
4560tcu::Format::Bitfield<32> getHeadlessSurfaceCreateFlagsEXTStr (VkHeadlessSurfaceCreateFlagsEXT value)
4561{
4562	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4563}
4564
4565tcu::Format::Bitfield<32> getDeviceMemoryReportFlagsEXTStr (VkDeviceMemoryReportFlagsEXT value)
4566{
4567	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4568}
4569
4570tcu::Format::Bitfield<32> getAccelerationStructureMotionInfoFlagsNVStr (VkAccelerationStructureMotionInfoFlagsNV value)
4571{
4572	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4573}
4574
4575tcu::Format::Bitfield<32> getAccelerationStructureMotionInstanceFlagsNVStr (VkAccelerationStructureMotionInstanceFlagsNV value)
4576{
4577	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4578}
4579
4580tcu::Format::Bitfield<32> getAndroidSurfaceCreateFlagsKHRStr (VkAndroidSurfaceCreateFlagsKHR value)
4581{
4582	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4583}
4584
4585tcu::Format::Bitfield<32> getVideoBeginCodingFlagsKHRStr (VkVideoBeginCodingFlagsKHR value)
4586{
4587	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4588}
4589
4590tcu::Format::Bitfield<32> getVideoEndCodingFlagsKHRStr (VkVideoEndCodingFlagsKHR value)
4591{
4592	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4593}
4594
4595tcu::Format::Bitfield<32> getVideoEncodeH265CapabilityFlagsEXTStr (VkVideoEncodeH265CapabilityFlagsEXT value)
4596{
4597	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4598}
4599
4600tcu::Format::Bitfield<32> getVideoEncodeH265CreateFlagsEXTStr (VkVideoEncodeH265CreateFlagsEXT value)
4601{
4602	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4603}
4604
4605tcu::Format::Bitfield<32> getVideoDecodeH264CreateFlagsEXTStr (VkVideoDecodeH264CreateFlagsEXT value)
4606{
4607	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4608}
4609
4610tcu::Format::Bitfield<32> getVideoDecodeH265CreateFlagsEXTStr (VkVideoDecodeH265CreateFlagsEXT value)
4611{
4612	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4613}
4614
4615tcu::Format::Bitfield<32> getImagePipeSurfaceCreateFlagsFUCHSIAStr (VkImagePipeSurfaceCreateFlagsFUCHSIA value)
4616{
4617	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4618}
4619
4620tcu::Format::Bitfield<32> getImageFormatConstraintsFlagsFUCHSIAStr (VkImageFormatConstraintsFlagsFUCHSIA value)
4621{
4622	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4623}
4624
4625tcu::Format::Bitfield<32> getStreamDescriptorSurfaceCreateFlagsGGPStr (VkStreamDescriptorSurfaceCreateFlagsGGP value)
4626{
4627	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4628}
4629
4630tcu::Format::Bitfield<32> getIOSSurfaceCreateFlagsMVKStr (VkIOSSurfaceCreateFlagsMVK value)
4631{
4632	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4633}
4634
4635tcu::Format::Bitfield<32> getMacOSSurfaceCreateFlagsMVKStr (VkMacOSSurfaceCreateFlagsMVK value)
4636{
4637	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4638}
4639
4640tcu::Format::Bitfield<32> getMetalSurfaceCreateFlagsEXTStr (VkMetalSurfaceCreateFlagsEXT value)
4641{
4642	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4643}
4644
4645tcu::Format::Bitfield<32> getViSurfaceCreateFlagsNNStr (VkViSurfaceCreateFlagsNN value)
4646{
4647	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4648}
4649
4650tcu::Format::Bitfield<32> getWaylandSurfaceCreateFlagsKHRStr (VkWaylandSurfaceCreateFlagsKHR value)
4651{
4652	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4653}
4654
4655tcu::Format::Bitfield<32> getWin32SurfaceCreateFlagsKHRStr (VkWin32SurfaceCreateFlagsKHR value)
4656{
4657	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4658}
4659
4660tcu::Format::Bitfield<32> getXcbSurfaceCreateFlagsKHRStr (VkXcbSurfaceCreateFlagsKHR value)
4661{
4662	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4663}
4664
4665tcu::Format::Bitfield<32> getXlibSurfaceCreateFlagsKHRStr (VkXlibSurfaceCreateFlagsKHR value)
4666{
4667	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4668}
4669
4670tcu::Format::Bitfield<32> getBuildAccelerationStructureFlagsNVStr (VkBuildAccelerationStructureFlagsNV value)
4671{
4672	static const tcu::Format::BitDesc s_desc[] =
4673	{
4674		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,		"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"),
4675		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"),
4676		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"),
4677		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"),
4678		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,		"VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"),
4679		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV,				"VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV"),
4680		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV,		"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV"),
4681		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV,	"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV"),
4682		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV"),
4683		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV"),
4684		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV,			"VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV"),
4685		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR"),
4686	};
4687	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4688}
4689
4690std::ostream& operator<< (std::ostream& s, const VkExtent2D& value)
4691{
4692	s << "VkExtent2D = {\n";
4693	s << "\twidth = " << value.width << '\n';
4694	s << "\theight = " << value.height << '\n';
4695	s << '}';
4696	return s;
4697}
4698
4699std::ostream& operator<< (std::ostream& s, const VkExtent3D& value)
4700{
4701	s << "VkExtent3D = {\n";
4702	s << "\twidth = " << value.width << '\n';
4703	s << "\theight = " << value.height << '\n';
4704	s << "\tdepth = " << value.depth << '\n';
4705	s << '}';
4706	return s;
4707}
4708
4709std::ostream& operator<< (std::ostream& s, const VkOffset2D& value)
4710{
4711	s << "VkOffset2D = {\n";
4712	s << "\tx = " << value.x << '\n';
4713	s << "\ty = " << value.y << '\n';
4714	s << '}';
4715	return s;
4716}
4717
4718std::ostream& operator<< (std::ostream& s, const VkOffset3D& value)
4719{
4720	s << "VkOffset3D = {\n";
4721	s << "\tx = " << value.x << '\n';
4722	s << "\ty = " << value.y << '\n';
4723	s << "\tz = " << value.z << '\n';
4724	s << '}';
4725	return s;
4726}
4727
4728std::ostream& operator<< (std::ostream& s, const VkRect2D& value)
4729{
4730	s << "VkRect2D = {\n";
4731	s << "\toffset = " << value.offset << '\n';
4732	s << "\textent = " << value.extent << '\n';
4733	s << '}';
4734	return s;
4735}
4736
4737std::ostream& operator<< (std::ostream& s, const VkBaseInStructure& value)
4738{
4739	s << "VkBaseInStructure = {\n";
4740	s << "\tsType = " << value.sType << '\n';
4741	s << "\tpNext = " << value.pNext << '\n';
4742	s << '}';
4743	return s;
4744}
4745
4746std::ostream& operator<< (std::ostream& s, const VkBaseOutStructure& value)
4747{
4748	s << "VkBaseOutStructure = {\n";
4749	s << "\tsType = " << value.sType << '\n';
4750	s << "\tpNext = " << value.pNext << '\n';
4751	s << '}';
4752	return s;
4753}
4754
4755std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier& value)
4756{
4757	s << "VkBufferMemoryBarrier = {\n";
4758	s << "\tsType = " << value.sType << '\n';
4759	s << "\tpNext = " << value.pNext << '\n';
4760	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
4761	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
4762	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
4763	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
4764	s << "\tbuffer = " << value.buffer << '\n';
4765	s << "\toffset = " << value.offset << '\n';
4766	s << "\tsize = " << value.size << '\n';
4767	s << '}';
4768	return s;
4769}
4770
4771std::ostream& operator<< (std::ostream& s, const VkDispatchIndirectCommand& value)
4772{
4773	s << "VkDispatchIndirectCommand = {\n";
4774	s << "\tx = " << value.x << '\n';
4775	s << "\ty = " << value.y << '\n';
4776	s << "\tz = " << value.z << '\n';
4777	s << '}';
4778	return s;
4779}
4780
4781std::ostream& operator<< (std::ostream& s, const VkDrawIndexedIndirectCommand& value)
4782{
4783	s << "VkDrawIndexedIndirectCommand = {\n";
4784	s << "\tindexCount = " << value.indexCount << '\n';
4785	s << "\tinstanceCount = " << value.instanceCount << '\n';
4786	s << "\tfirstIndex = " << value.firstIndex << '\n';
4787	s << "\tvertexOffset = " << value.vertexOffset << '\n';
4788	s << "\tfirstInstance = " << value.firstInstance << '\n';
4789	s << '}';
4790	return s;
4791}
4792
4793std::ostream& operator<< (std::ostream& s, const VkDrawIndirectCommand& value)
4794{
4795	s << "VkDrawIndirectCommand = {\n";
4796	s << "\tvertexCount = " << value.vertexCount << '\n';
4797	s << "\tinstanceCount = " << value.instanceCount << '\n';
4798	s << "\tfirstVertex = " << value.firstVertex << '\n';
4799	s << "\tfirstInstance = " << value.firstInstance << '\n';
4800	s << '}';
4801	return s;
4802}
4803
4804std::ostream& operator<< (std::ostream& s, const VkImageSubresourceRange& value)
4805{
4806	s << "VkImageSubresourceRange = {\n";
4807	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
4808	s << "\tbaseMipLevel = " << value.baseMipLevel << '\n';
4809	s << "\tlevelCount = " << value.levelCount << '\n';
4810	s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
4811	s << "\tlayerCount = " << value.layerCount << '\n';
4812	s << '}';
4813	return s;
4814}
4815
4816std::ostream& operator<< (std::ostream& s, const VkImageMemoryBarrier& value)
4817{
4818	s << "VkImageMemoryBarrier = {\n";
4819	s << "\tsType = " << value.sType << '\n';
4820	s << "\tpNext = " << value.pNext << '\n';
4821	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
4822	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
4823	s << "\toldLayout = " << value.oldLayout << '\n';
4824	s << "\tnewLayout = " << value.newLayout << '\n';
4825	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
4826	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
4827	s << "\timage = " << value.image << '\n';
4828	s << "\tsubresourceRange = " << value.subresourceRange << '\n';
4829	s << '}';
4830	return s;
4831}
4832
4833std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier& value)
4834{
4835	s << "VkMemoryBarrier = {\n";
4836	s << "\tsType = " << value.sType << '\n';
4837	s << "\tpNext = " << value.pNext << '\n';
4838	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
4839	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
4840	s << '}';
4841	return s;
4842}
4843
4844std::ostream& operator<< (std::ostream& s, const VkPipelineCacheHeaderVersionOne& value)
4845{
4846	s << "VkPipelineCacheHeaderVersionOne = {\n";
4847	s << "\theaderSize = " << value.headerSize << '\n';
4848	s << "\theaderVersion = " << value.headerVersion << '\n';
4849	s << "\tvendorID = " << value.vendorID << '\n';
4850	s << "\tdeviceID = " << value.deviceID << '\n';
4851	s << "\tpipelineCacheUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.pipelineCacheUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.pipelineCacheUUID))) << '\n';
4852	s << '}';
4853	return s;
4854}
4855
4856std::ostream& operator<< (std::ostream& s, const VkAllocationCallbacks& value)
4857{
4858	s << "VkAllocationCallbacks = {\n";
4859	s << "\tpUserData = " << value.pUserData << '\n';
4860	s << "\tpfnAllocation = " << value.pfnAllocation << '\n';
4861	s << "\tpfnReallocation = " << value.pfnReallocation << '\n';
4862	s << "\tpfnFree = " << value.pfnFree << '\n';
4863	s << "\tpfnInternalAllocation = " << value.pfnInternalAllocation << '\n';
4864	s << "\tpfnInternalFree = " << value.pfnInternalFree << '\n';
4865	s << '}';
4866	return s;
4867}
4868
4869std::ostream& operator<< (std::ostream& s, const VkApplicationInfo& value)
4870{
4871	s << "VkApplicationInfo = {\n";
4872	s << "\tsType = " << value.sType << '\n';
4873	s << "\tpNext = " << value.pNext << '\n';
4874	s << "\tpApplicationName = " << getCharPtrStr(value.pApplicationName) << '\n';
4875	s << "\tapplicationVersion = " << value.applicationVersion << '\n';
4876	s << "\tpEngineName = " << getCharPtrStr(value.pEngineName) << '\n';
4877	s << "\tengineVersion = " << value.engineVersion << '\n';
4878	s << "\tapiVersion = " << value.apiVersion << '\n';
4879	s << '}';
4880	return s;
4881}
4882
4883std::ostream& operator<< (std::ostream& s, const VkFormatProperties& value)
4884{
4885	s << "VkFormatProperties = {\n";
4886	s << "\tlinearTilingFeatures = " << getFormatFeatureFlagsStr(value.linearTilingFeatures) << '\n';
4887	s << "\toptimalTilingFeatures = " << getFormatFeatureFlagsStr(value.optimalTilingFeatures) << '\n';
4888	s << "\tbufferFeatures = " << getFormatFeatureFlagsStr(value.bufferFeatures) << '\n';
4889	s << '}';
4890	return s;
4891}
4892
4893std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties& value)
4894{
4895	s << "VkImageFormatProperties = {\n";
4896	s << "\tmaxExtent = " << value.maxExtent << '\n';
4897	s << "\tmaxMipLevels = " << value.maxMipLevels << '\n';
4898	s << "\tmaxArrayLayers = " << value.maxArrayLayers << '\n';
4899	s << "\tsampleCounts = " << getSampleCountFlagsStr(value.sampleCounts) << '\n';
4900	s << "\tmaxResourceSize = " << value.maxResourceSize << '\n';
4901	s << '}';
4902	return s;
4903}
4904
4905std::ostream& operator<< (std::ostream& s, const VkInstanceCreateInfo& value)
4906{
4907	s << "VkInstanceCreateInfo = {\n";
4908	s << "\tsType = " << value.sType << '\n';
4909	s << "\tpNext = " << value.pNext << '\n';
4910	s << "\tflags = " << getInstanceCreateFlagsStr(value.flags) << '\n';
4911	s << "\tpApplicationInfo = " << value.pApplicationInfo << '\n';
4912	s << "\tenabledLayerCount = " << value.enabledLayerCount << '\n';
4913	s << "\tppEnabledLayerNames = " << value.ppEnabledLayerNames << '\n';
4914	s << "\tenabledExtensionCount = " << value.enabledExtensionCount << '\n';
4915	s << "\tppEnabledExtensionNames = " << value.ppEnabledExtensionNames << '\n';
4916	s << '}';
4917	return s;
4918}
4919
4920std::ostream& operator<< (std::ostream& s, const VkMemoryHeap& value)
4921{
4922	s << "VkMemoryHeap = {\n";
4923	s << "\tsize = " << value.size << '\n';
4924	s << "\tflags = " << getMemoryHeapFlagsStr(value.flags) << '\n';
4925	s << '}';
4926	return s;
4927}
4928
4929std::ostream& operator<< (std::ostream& s, const VkMemoryType& value)
4930{
4931	s << "VkMemoryType = {\n";
4932	s << "\tpropertyFlags = " << getMemoryPropertyFlagsStr(value.propertyFlags) << '\n';
4933	s << "\theapIndex = " << value.heapIndex << '\n';
4934	s << '}';
4935	return s;
4936}
4937
4938std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures& value)
4939{
4940	s << "VkPhysicalDeviceFeatures = {\n";
4941	s << "\trobustBufferAccess = " << value.robustBufferAccess << '\n';
4942	s << "\tfullDrawIndexUint32 = " << value.fullDrawIndexUint32 << '\n';
4943	s << "\timageCubeArray = " << value.imageCubeArray << '\n';
4944	s << "\tindependentBlend = " << value.independentBlend << '\n';
4945	s << "\tgeometryShader = " << value.geometryShader << '\n';
4946	s << "\ttessellationShader = " << value.tessellationShader << '\n';
4947	s << "\tsampleRateShading = " << value.sampleRateShading << '\n';
4948	s << "\tdualSrcBlend = " << value.dualSrcBlend << '\n';
4949	s << "\tlogicOp = " << value.logicOp << '\n';
4950	s << "\tmultiDrawIndirect = " << value.multiDrawIndirect << '\n';
4951	s << "\tdrawIndirectFirstInstance = " << value.drawIndirectFirstInstance << '\n';
4952	s << "\tdepthClamp = " << value.depthClamp << '\n';
4953	s << "\tdepthBiasClamp = " << value.depthBiasClamp << '\n';
4954	s << "\tfillModeNonSolid = " << value.fillModeNonSolid << '\n';
4955	s << "\tdepthBounds = " << value.depthBounds << '\n';
4956	s << "\twideLines = " << value.wideLines << '\n';
4957	s << "\tlargePoints = " << value.largePoints << '\n';
4958	s << "\talphaToOne = " << value.alphaToOne << '\n';
4959	s << "\tmultiViewport = " << value.multiViewport << '\n';
4960	s << "\tsamplerAnisotropy = " << value.samplerAnisotropy << '\n';
4961	s << "\ttextureCompressionETC2 = " << value.textureCompressionETC2 << '\n';
4962	s << "\ttextureCompressionASTC_LDR = " << value.textureCompressionASTC_LDR << '\n';
4963	s << "\ttextureCompressionBC = " << value.textureCompressionBC << '\n';
4964	s << "\tocclusionQueryPrecise = " << value.occlusionQueryPrecise << '\n';
4965	s << "\tpipelineStatisticsQuery = " << value.pipelineStatisticsQuery << '\n';
4966	s << "\tvertexPipelineStoresAndAtomics = " << value.vertexPipelineStoresAndAtomics << '\n';
4967	s << "\tfragmentStoresAndAtomics = " << value.fragmentStoresAndAtomics << '\n';
4968	s << "\tshaderTessellationAndGeometryPointSize = " << value.shaderTessellationAndGeometryPointSize << '\n';
4969	s << "\tshaderImageGatherExtended = " << value.shaderImageGatherExtended << '\n';
4970	s << "\tshaderStorageImageExtendedFormats = " << value.shaderStorageImageExtendedFormats << '\n';
4971	s << "\tshaderStorageImageMultisample = " << value.shaderStorageImageMultisample << '\n';
4972	s << "\tshaderStorageImageReadWithoutFormat = " << value.shaderStorageImageReadWithoutFormat << '\n';
4973	s << "\tshaderStorageImageWriteWithoutFormat = " << value.shaderStorageImageWriteWithoutFormat << '\n';
4974	s << "\tshaderUniformBufferArrayDynamicIndexing = " << value.shaderUniformBufferArrayDynamicIndexing << '\n';
4975	s << "\tshaderSampledImageArrayDynamicIndexing = " << value.shaderSampledImageArrayDynamicIndexing << '\n';
4976	s << "\tshaderStorageBufferArrayDynamicIndexing = " << value.shaderStorageBufferArrayDynamicIndexing << '\n';
4977	s << "\tshaderStorageImageArrayDynamicIndexing = " << value.shaderStorageImageArrayDynamicIndexing << '\n';
4978	s << "\tshaderClipDistance = " << value.shaderClipDistance << '\n';
4979	s << "\tshaderCullDistance = " << value.shaderCullDistance << '\n';
4980	s << "\tshaderFloat64 = " << value.shaderFloat64 << '\n';
4981	s << "\tshaderInt64 = " << value.shaderInt64 << '\n';
4982	s << "\tshaderInt16 = " << value.shaderInt16 << '\n';
4983	s << "\tshaderResourceResidency = " << value.shaderResourceResidency << '\n';
4984	s << "\tshaderResourceMinLod = " << value.shaderResourceMinLod << '\n';
4985	s << "\tsparseBinding = " << value.sparseBinding << '\n';
4986	s << "\tsparseResidencyBuffer = " << value.sparseResidencyBuffer << '\n';
4987	s << "\tsparseResidencyImage2D = " << value.sparseResidencyImage2D << '\n';
4988	s << "\tsparseResidencyImage3D = " << value.sparseResidencyImage3D << '\n';
4989	s << "\tsparseResidency2Samples = " << value.sparseResidency2Samples << '\n';
4990	s << "\tsparseResidency4Samples = " << value.sparseResidency4Samples << '\n';
4991	s << "\tsparseResidency8Samples = " << value.sparseResidency8Samples << '\n';
4992	s << "\tsparseResidency16Samples = " << value.sparseResidency16Samples << '\n';
4993	s << "\tsparseResidencyAliased = " << value.sparseResidencyAliased << '\n';
4994	s << "\tvariableMultisampleRate = " << value.variableMultisampleRate << '\n';
4995	s << "\tinheritedQueries = " << value.inheritedQueries << '\n';
4996	s << '}';
4997	return s;
4998}
4999
5000std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLimits& value)
5001{
5002	s << "VkPhysicalDeviceLimits = {\n";
5003	s << "\tmaxImageDimension1D = " << value.maxImageDimension1D << '\n';
5004	s << "\tmaxImageDimension2D = " << value.maxImageDimension2D << '\n';
5005	s << "\tmaxImageDimension3D = " << value.maxImageDimension3D << '\n';
5006	s << "\tmaxImageDimensionCube = " << value.maxImageDimensionCube << '\n';
5007	s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
5008	s << "\tmaxTexelBufferElements = " << value.maxTexelBufferElements << '\n';
5009	s << "\tmaxUniformBufferRange = " << value.maxUniformBufferRange << '\n';
5010	s << "\tmaxStorageBufferRange = " << value.maxStorageBufferRange << '\n';
5011	s << "\tmaxPushConstantsSize = " << value.maxPushConstantsSize << '\n';
5012	s << "\tmaxMemoryAllocationCount = " << value.maxMemoryAllocationCount << '\n';
5013	s << "\tmaxSamplerAllocationCount = " << value.maxSamplerAllocationCount << '\n';
5014	s << "\tbufferImageGranularity = " << value.bufferImageGranularity << '\n';
5015	s << "\tsparseAddressSpaceSize = " << value.sparseAddressSpaceSize << '\n';
5016	s << "\tmaxBoundDescriptorSets = " << value.maxBoundDescriptorSets << '\n';
5017	s << "\tmaxPerStageDescriptorSamplers = " << value.maxPerStageDescriptorSamplers << '\n';
5018	s << "\tmaxPerStageDescriptorUniformBuffers = " << value.maxPerStageDescriptorUniformBuffers << '\n';
5019	s << "\tmaxPerStageDescriptorStorageBuffers = " << value.maxPerStageDescriptorStorageBuffers << '\n';
5020	s << "\tmaxPerStageDescriptorSampledImages = " << value.maxPerStageDescriptorSampledImages << '\n';
5021	s << "\tmaxPerStageDescriptorStorageImages = " << value.maxPerStageDescriptorStorageImages << '\n';
5022	s << "\tmaxPerStageDescriptorInputAttachments = " << value.maxPerStageDescriptorInputAttachments << '\n';
5023	s << "\tmaxPerStageResources = " << value.maxPerStageResources << '\n';
5024	s << "\tmaxDescriptorSetSamplers = " << value.maxDescriptorSetSamplers << '\n';
5025	s << "\tmaxDescriptorSetUniformBuffers = " << value.maxDescriptorSetUniformBuffers << '\n';
5026	s << "\tmaxDescriptorSetUniformBuffersDynamic = " << value.maxDescriptorSetUniformBuffersDynamic << '\n';
5027	s << "\tmaxDescriptorSetStorageBuffers = " << value.maxDescriptorSetStorageBuffers << '\n';
5028	s << "\tmaxDescriptorSetStorageBuffersDynamic = " << value.maxDescriptorSetStorageBuffersDynamic << '\n';
5029	s << "\tmaxDescriptorSetSampledImages = " << value.maxDescriptorSetSampledImages << '\n';
5030	s << "\tmaxDescriptorSetStorageImages = " << value.maxDescriptorSetStorageImages << '\n';
5031	s << "\tmaxDescriptorSetInputAttachments = " << value.maxDescriptorSetInputAttachments << '\n';
5032	s << "\tmaxVertexInputAttributes = " << value.maxVertexInputAttributes << '\n';
5033	s << "\tmaxVertexInputBindings = " << value.maxVertexInputBindings << '\n';
5034	s << "\tmaxVertexInputAttributeOffset = " << value.maxVertexInputAttributeOffset << '\n';
5035	s << "\tmaxVertexInputBindingStride = " << value.maxVertexInputBindingStride << '\n';
5036	s << "\tmaxVertexOutputComponents = " << value.maxVertexOutputComponents << '\n';
5037	s << "\tmaxTessellationGenerationLevel = " << value.maxTessellationGenerationLevel << '\n';
5038	s << "\tmaxTessellationPatchSize = " << value.maxTessellationPatchSize << '\n';
5039	s << "\tmaxTessellationControlPerVertexInputComponents = " << value.maxTessellationControlPerVertexInputComponents << '\n';
5040	s << "\tmaxTessellationControlPerVertexOutputComponents = " << value.maxTessellationControlPerVertexOutputComponents << '\n';
5041	s << "\tmaxTessellationControlPerPatchOutputComponents = " << value.maxTessellationControlPerPatchOutputComponents << '\n';
5042	s << "\tmaxTessellationControlTotalOutputComponents = " << value.maxTessellationControlTotalOutputComponents << '\n';
5043	s << "\tmaxTessellationEvaluationInputComponents = " << value.maxTessellationEvaluationInputComponents << '\n';
5044	s << "\tmaxTessellationEvaluationOutputComponents = " << value.maxTessellationEvaluationOutputComponents << '\n';
5045	s << "\tmaxGeometryShaderInvocations = " << value.maxGeometryShaderInvocations << '\n';
5046	s << "\tmaxGeometryInputComponents = " << value.maxGeometryInputComponents << '\n';
5047	s << "\tmaxGeometryOutputComponents = " << value.maxGeometryOutputComponents << '\n';
5048	s << "\tmaxGeometryOutputVertices = " << value.maxGeometryOutputVertices << '\n';
5049	s << "\tmaxGeometryTotalOutputComponents = " << value.maxGeometryTotalOutputComponents << '\n';
5050	s << "\tmaxFragmentInputComponents = " << value.maxFragmentInputComponents << '\n';
5051	s << "\tmaxFragmentOutputAttachments = " << value.maxFragmentOutputAttachments << '\n';
5052	s << "\tmaxFragmentDualSrcAttachments = " << value.maxFragmentDualSrcAttachments << '\n';
5053	s << "\tmaxFragmentCombinedOutputResources = " << value.maxFragmentCombinedOutputResources << '\n';
5054	s << "\tmaxComputeSharedMemorySize = " << value.maxComputeSharedMemorySize << '\n';
5055	s << "\tmaxComputeWorkGroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxComputeWorkGroupCount), DE_ARRAY_END(value.maxComputeWorkGroupCount)) << '\n';
5056	s << "\tmaxComputeWorkGroupInvocations = " << value.maxComputeWorkGroupInvocations << '\n';
5057	s << "\tmaxComputeWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxComputeWorkGroupSize), DE_ARRAY_END(value.maxComputeWorkGroupSize)) << '\n';
5058	s << "\tsubPixelPrecisionBits = " << value.subPixelPrecisionBits << '\n';
5059	s << "\tsubTexelPrecisionBits = " << value.subTexelPrecisionBits << '\n';
5060	s << "\tmipmapPrecisionBits = " << value.mipmapPrecisionBits << '\n';
5061	s << "\tmaxDrawIndexedIndexValue = " << value.maxDrawIndexedIndexValue << '\n';
5062	s << "\tmaxDrawIndirectCount = " << value.maxDrawIndirectCount << '\n';
5063	s << "\tmaxSamplerLodBias = " << value.maxSamplerLodBias << '\n';
5064	s << "\tmaxSamplerAnisotropy = " << value.maxSamplerAnisotropy << '\n';
5065	s << "\tmaxViewports = " << value.maxViewports << '\n';
5066	s << "\tmaxViewportDimensions = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxViewportDimensions), DE_ARRAY_END(value.maxViewportDimensions)) << '\n';
5067	s << "\tviewportBoundsRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewportBoundsRange), DE_ARRAY_END(value.viewportBoundsRange)) << '\n';
5068	s << "\tviewportSubPixelBits = " << value.viewportSubPixelBits << '\n';
5069	s << "\tminMemoryMapAlignment = " << value.minMemoryMapAlignment << '\n';
5070	s << "\tminTexelBufferOffsetAlignment = " << value.minTexelBufferOffsetAlignment << '\n';
5071	s << "\tminUniformBufferOffsetAlignment = " << value.minUniformBufferOffsetAlignment << '\n';
5072	s << "\tminStorageBufferOffsetAlignment = " << value.minStorageBufferOffsetAlignment << '\n';
5073	s << "\tminTexelOffset = " << value.minTexelOffset << '\n';
5074	s << "\tmaxTexelOffset = " << value.maxTexelOffset << '\n';
5075	s << "\tminTexelGatherOffset = " << value.minTexelGatherOffset << '\n';
5076	s << "\tmaxTexelGatherOffset = " << value.maxTexelGatherOffset << '\n';
5077	s << "\tminInterpolationOffset = " << value.minInterpolationOffset << '\n';
5078	s << "\tmaxInterpolationOffset = " << value.maxInterpolationOffset << '\n';
5079	s << "\tsubPixelInterpolationOffsetBits = " << value.subPixelInterpolationOffsetBits << '\n';
5080	s << "\tmaxFramebufferWidth = " << value.maxFramebufferWidth << '\n';
5081	s << "\tmaxFramebufferHeight = " << value.maxFramebufferHeight << '\n';
5082	s << "\tmaxFramebufferLayers = " << value.maxFramebufferLayers << '\n';
5083	s << "\tframebufferColorSampleCounts = " << getSampleCountFlagsStr(value.framebufferColorSampleCounts) << '\n';
5084	s << "\tframebufferDepthSampleCounts = " << getSampleCountFlagsStr(value.framebufferDepthSampleCounts) << '\n';
5085	s << "\tframebufferStencilSampleCounts = " << getSampleCountFlagsStr(value.framebufferStencilSampleCounts) << '\n';
5086	s << "\tframebufferNoAttachmentsSampleCounts = " << getSampleCountFlagsStr(value.framebufferNoAttachmentsSampleCounts) << '\n';
5087	s << "\tmaxColorAttachments = " << value.maxColorAttachments << '\n';
5088	s << "\tsampledImageColorSampleCounts = " << getSampleCountFlagsStr(value.sampledImageColorSampleCounts) << '\n';
5089	s << "\tsampledImageIntegerSampleCounts = " << getSampleCountFlagsStr(value.sampledImageIntegerSampleCounts) << '\n';
5090	s << "\tsampledImageDepthSampleCounts = " << getSampleCountFlagsStr(value.sampledImageDepthSampleCounts) << '\n';
5091	s << "\tsampledImageStencilSampleCounts = " << getSampleCountFlagsStr(value.sampledImageStencilSampleCounts) << '\n';
5092	s << "\tstorageImageSampleCounts = " << getSampleCountFlagsStr(value.storageImageSampleCounts) << '\n';
5093	s << "\tmaxSampleMaskWords = " << value.maxSampleMaskWords << '\n';
5094	s << "\ttimestampComputeAndGraphics = " << value.timestampComputeAndGraphics << '\n';
5095	s << "\ttimestampPeriod = " << value.timestampPeriod << '\n';
5096	s << "\tmaxClipDistances = " << value.maxClipDistances << '\n';
5097	s << "\tmaxCullDistances = " << value.maxCullDistances << '\n';
5098	s << "\tmaxCombinedClipAndCullDistances = " << value.maxCombinedClipAndCullDistances << '\n';
5099	s << "\tdiscreteQueuePriorities = " << value.discreteQueuePriorities << '\n';
5100	s << "\tpointSizeRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.pointSizeRange), DE_ARRAY_END(value.pointSizeRange)) << '\n';
5101	s << "\tlineWidthRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.lineWidthRange), DE_ARRAY_END(value.lineWidthRange)) << '\n';
5102	s << "\tpointSizeGranularity = " << value.pointSizeGranularity << '\n';
5103	s << "\tlineWidthGranularity = " << value.lineWidthGranularity << '\n';
5104	s << "\tstrictLines = " << value.strictLines << '\n';
5105	s << "\tstandardSampleLocations = " << value.standardSampleLocations << '\n';
5106	s << "\toptimalBufferCopyOffsetAlignment = " << value.optimalBufferCopyOffsetAlignment << '\n';
5107	s << "\toptimalBufferCopyRowPitchAlignment = " << value.optimalBufferCopyRowPitchAlignment << '\n';
5108	s << "\tnonCoherentAtomSize = " << value.nonCoherentAtomSize << '\n';
5109	s << '}';
5110	return s;
5111}
5112
5113std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties& value)
5114{
5115	s << "VkPhysicalDeviceMemoryProperties = {\n";
5116	s << "\tmemoryTypeCount = " << value.memoryTypeCount << '\n';
5117	s << "\tmemoryTypes = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryTypes), DE_ARRAY_BEGIN(value.memoryTypes) + value.memoryTypeCount) << '\n';
5118	s << "\tmemoryHeapCount = " << value.memoryHeapCount << '\n';
5119	s << "\tmemoryHeaps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryHeaps), DE_ARRAY_BEGIN(value.memoryHeaps) + value.memoryHeapCount) << '\n';
5120	s << '}';
5121	return s;
5122}
5123
5124std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseProperties& value)
5125{
5126	s << "VkPhysicalDeviceSparseProperties = {\n";
5127	s << "\tresidencyStandard2DBlockShape = " << value.residencyStandard2DBlockShape << '\n';
5128	s << "\tresidencyStandard2DMultisampleBlockShape = " << value.residencyStandard2DMultisampleBlockShape << '\n';
5129	s << "\tresidencyStandard3DBlockShape = " << value.residencyStandard3DBlockShape << '\n';
5130	s << "\tresidencyAlignedMipSize = " << value.residencyAlignedMipSize << '\n';
5131	s << "\tresidencyNonResidentStrict = " << value.residencyNonResidentStrict << '\n';
5132	s << '}';
5133	return s;
5134}
5135
5136std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProperties& value)
5137{
5138	s << "VkPhysicalDeviceProperties = {\n";
5139	s << "\tapiVersion = " << value.apiVersion << '\n';
5140	s << "\tdriverVersion = " << value.driverVersion << '\n';
5141	s << "\tvendorID = " << value.vendorID << '\n';
5142	s << "\tdeviceID = " << value.deviceID << '\n';
5143	s << "\tdeviceType = " << value.deviceType << '\n';
5144	s << "\tdeviceName = " << (const char*)value.deviceName << '\n';
5145	s << "\tpipelineCacheUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.pipelineCacheUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.pipelineCacheUUID))) << '\n';
5146	s << "\tlimits = " << value.limits << '\n';
5147	s << "\tsparseProperties = " << value.sparseProperties << '\n';
5148	s << '}';
5149	return s;
5150}
5151
5152std::ostream& operator<< (std::ostream& s, const VkQueueFamilyProperties& value)
5153{
5154	s << "VkQueueFamilyProperties = {\n";
5155	s << "\tqueueFlags = " << getQueueFlagsStr(value.queueFlags) << '\n';
5156	s << "\tqueueCount = " << value.queueCount << '\n';
5157	s << "\ttimestampValidBits = " << value.timestampValidBits << '\n';
5158	s << "\tminImageTransferGranularity = " << value.minImageTransferGranularity << '\n';
5159	s << '}';
5160	return s;
5161}
5162
5163std::ostream& operator<< (std::ostream& s, const VkDeviceQueueCreateInfo& value)
5164{
5165	s << "VkDeviceQueueCreateInfo = {\n";
5166	s << "\tsType = " << value.sType << '\n';
5167	s << "\tpNext = " << value.pNext << '\n';
5168	s << "\tflags = " << getDeviceQueueCreateFlagsStr(value.flags) << '\n';
5169	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
5170	s << "\tqueueCount = " << value.queueCount << '\n';
5171	s << "\tpQueuePriorities = " << value.pQueuePriorities << '\n';
5172	s << '}';
5173	return s;
5174}
5175
5176std::ostream& operator<< (std::ostream& s, const VkDeviceCreateInfo& value)
5177{
5178	s << "VkDeviceCreateInfo = {\n";
5179	s << "\tsType = " << value.sType << '\n';
5180	s << "\tpNext = " << value.pNext << '\n';
5181	s << "\tflags = " << getDeviceCreateFlagsStr(value.flags) << '\n';
5182	s << "\tqueueCreateInfoCount = " << value.queueCreateInfoCount << '\n';
5183	s << "\tpQueueCreateInfos = " << value.pQueueCreateInfos << '\n';
5184	s << "\tenabledLayerCount = " << value.enabledLayerCount << '\n';
5185	s << "\tppEnabledLayerNames = " << value.ppEnabledLayerNames << '\n';
5186	s << "\tenabledExtensionCount = " << value.enabledExtensionCount << '\n';
5187	s << "\tppEnabledExtensionNames = " << value.ppEnabledExtensionNames << '\n';
5188	s << "\tpEnabledFeatures = " << value.pEnabledFeatures << '\n';
5189	s << '}';
5190	return s;
5191}
5192
5193std::ostream& operator<< (std::ostream& s, const VkExtensionProperties& value)
5194{
5195	s << "VkExtensionProperties = {\n";
5196	s << "\textensionName = " << (const char*)value.extensionName << '\n';
5197	s << "\tspecVersion = " << value.specVersion << '\n';
5198	s << '}';
5199	return s;
5200}
5201
5202std::ostream& operator<< (std::ostream& s, const VkLayerProperties& value)
5203{
5204	s << "VkLayerProperties = {\n";
5205	s << "\tlayerName = " << (const char*)value.layerName << '\n';
5206	s << "\tspecVersion = " << value.specVersion << '\n';
5207	s << "\timplementationVersion = " << value.implementationVersion << '\n';
5208	s << "\tdescription = " << (const char*)value.description << '\n';
5209	s << '}';
5210	return s;
5211}
5212
5213std::ostream& operator<< (std::ostream& s, const VkSubmitInfo& value)
5214{
5215	s << "VkSubmitInfo = {\n";
5216	s << "\tsType = " << value.sType << '\n';
5217	s << "\tpNext = " << value.pNext << '\n';
5218	s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
5219	s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
5220	s << "\tpWaitDstStageMask = " << value.pWaitDstStageMask << '\n';
5221	s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
5222	s << "\tpCommandBuffers = " << value.pCommandBuffers << '\n';
5223	s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
5224	s << "\tpSignalSemaphores = " << value.pSignalSemaphores << '\n';
5225	s << '}';
5226	return s;
5227}
5228
5229std::ostream& operator<< (std::ostream& s, const VkMappedMemoryRange& value)
5230{
5231	s << "VkMappedMemoryRange = {\n";
5232	s << "\tsType = " << value.sType << '\n';
5233	s << "\tpNext = " << value.pNext << '\n';
5234	s << "\tmemory = " << value.memory << '\n';
5235	s << "\toffset = " << value.offset << '\n';
5236	s << "\tsize = " << value.size << '\n';
5237	s << '}';
5238	return s;
5239}
5240
5241std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateInfo& value)
5242{
5243	s << "VkMemoryAllocateInfo = {\n";
5244	s << "\tsType = " << value.sType << '\n';
5245	s << "\tpNext = " << value.pNext << '\n';
5246	s << "\tallocationSize = " << value.allocationSize << '\n';
5247	s << "\tmemoryTypeIndex = " << value.memoryTypeIndex << '\n';
5248	s << '}';
5249	return s;
5250}
5251
5252std::ostream& operator<< (std::ostream& s, const VkMemoryRequirements& value)
5253{
5254	s << "VkMemoryRequirements = {\n";
5255	s << "\tsize = " << value.size << '\n';
5256	s << "\talignment = " << value.alignment << '\n';
5257	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
5258	s << '}';
5259	return s;
5260}
5261
5262std::ostream& operator<< (std::ostream& s, const VkSparseMemoryBind& value)
5263{
5264	s << "VkSparseMemoryBind = {\n";
5265	s << "\tresourceOffset = " << value.resourceOffset << '\n';
5266	s << "\tsize = " << value.size << '\n';
5267	s << "\tmemory = " << value.memory << '\n';
5268	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
5269	s << "\tflags = " << getSparseMemoryBindFlagsStr(value.flags) << '\n';
5270	s << '}';
5271	return s;
5272}
5273
5274std::ostream& operator<< (std::ostream& s, const VkSparseBufferMemoryBindInfo& value)
5275{
5276	s << "VkSparseBufferMemoryBindInfo = {\n";
5277	s << "\tbuffer = " << value.buffer << '\n';
5278	s << "\tbindCount = " << value.bindCount << '\n';
5279	s << "\tpBinds = " << value.pBinds << '\n';
5280	s << '}';
5281	return s;
5282}
5283
5284std::ostream& operator<< (std::ostream& s, const VkSparseImageOpaqueMemoryBindInfo& value)
5285{
5286	s << "VkSparseImageOpaqueMemoryBindInfo = {\n";
5287	s << "\timage = " << value.image << '\n';
5288	s << "\tbindCount = " << value.bindCount << '\n';
5289	s << "\tpBinds = " << value.pBinds << '\n';
5290	s << '}';
5291	return s;
5292}
5293
5294std::ostream& operator<< (std::ostream& s, const VkImageSubresource& value)
5295{
5296	s << "VkImageSubresource = {\n";
5297	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5298	s << "\tmipLevel = " << value.mipLevel << '\n';
5299	s << "\tarrayLayer = " << value.arrayLayer << '\n';
5300	s << '}';
5301	return s;
5302}
5303
5304std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryBind& value)
5305{
5306	s << "VkSparseImageMemoryBind = {\n";
5307	s << "\tsubresource = " << value.subresource << '\n';
5308	s << "\toffset = " << value.offset << '\n';
5309	s << "\textent = " << value.extent << '\n';
5310	s << "\tmemory = " << value.memory << '\n';
5311	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
5312	s << "\tflags = " << getSparseMemoryBindFlagsStr(value.flags) << '\n';
5313	s << '}';
5314	return s;
5315}
5316
5317std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryBindInfo& value)
5318{
5319	s << "VkSparseImageMemoryBindInfo = {\n";
5320	s << "\timage = " << value.image << '\n';
5321	s << "\tbindCount = " << value.bindCount << '\n';
5322	s << "\tpBinds = " << value.pBinds << '\n';
5323	s << '}';
5324	return s;
5325}
5326
5327std::ostream& operator<< (std::ostream& s, const VkBindSparseInfo& value)
5328{
5329	s << "VkBindSparseInfo = {\n";
5330	s << "\tsType = " << value.sType << '\n';
5331	s << "\tpNext = " << value.pNext << '\n';
5332	s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
5333	s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
5334	s << "\tbufferBindCount = " << value.bufferBindCount << '\n';
5335	s << "\tpBufferBinds = " << value.pBufferBinds << '\n';
5336	s << "\timageOpaqueBindCount = " << value.imageOpaqueBindCount << '\n';
5337	s << "\tpImageOpaqueBinds = " << value.pImageOpaqueBinds << '\n';
5338	s << "\timageBindCount = " << value.imageBindCount << '\n';
5339	s << "\tpImageBinds = " << value.pImageBinds << '\n';
5340	s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
5341	s << "\tpSignalSemaphores = " << value.pSignalSemaphores << '\n';
5342	s << '}';
5343	return s;
5344}
5345
5346std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties& value)
5347{
5348	s << "VkSparseImageFormatProperties = {\n";
5349	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5350	s << "\timageGranularity = " << value.imageGranularity << '\n';
5351	s << "\tflags = " << getSparseImageFormatFlagsStr(value.flags) << '\n';
5352	s << '}';
5353	return s;
5354}
5355
5356std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements& value)
5357{
5358	s << "VkSparseImageMemoryRequirements = {\n";
5359	s << "\tformatProperties = " << value.formatProperties << '\n';
5360	s << "\timageMipTailFirstLod = " << value.imageMipTailFirstLod << '\n';
5361	s << "\timageMipTailSize = " << value.imageMipTailSize << '\n';
5362	s << "\timageMipTailOffset = " << value.imageMipTailOffset << '\n';
5363	s << "\timageMipTailStride = " << value.imageMipTailStride << '\n';
5364	s << '}';
5365	return s;
5366}
5367
5368std::ostream& operator<< (std::ostream& s, const VkFenceCreateInfo& value)
5369{
5370	s << "VkFenceCreateInfo = {\n";
5371	s << "\tsType = " << value.sType << '\n';
5372	s << "\tpNext = " << value.pNext << '\n';
5373	s << "\tflags = " << getFenceCreateFlagsStr(value.flags) << '\n';
5374	s << '}';
5375	return s;
5376}
5377
5378std::ostream& operator<< (std::ostream& s, const VkSemaphoreCreateInfo& value)
5379{
5380	s << "VkSemaphoreCreateInfo = {\n";
5381	s << "\tsType = " << value.sType << '\n';
5382	s << "\tpNext = " << value.pNext << '\n';
5383	s << "\tflags = " << getSemaphoreCreateFlagsStr(value.flags) << '\n';
5384	s << '}';
5385	return s;
5386}
5387
5388std::ostream& operator<< (std::ostream& s, const VkEventCreateInfo& value)
5389{
5390	s << "VkEventCreateInfo = {\n";
5391	s << "\tsType = " << value.sType << '\n';
5392	s << "\tpNext = " << value.pNext << '\n';
5393	s << "\tflags = " << getEventCreateFlagsStr(value.flags) << '\n';
5394	s << '}';
5395	return s;
5396}
5397
5398std::ostream& operator<< (std::ostream& s, const VkQueryPoolCreateInfo& value)
5399{
5400	s << "VkQueryPoolCreateInfo = {\n";
5401	s << "\tsType = " << value.sType << '\n';
5402	s << "\tpNext = " << value.pNext << '\n';
5403	s << "\tflags = " << getQueryPoolCreateFlagsStr(value.flags) << '\n';
5404	s << "\tqueryType = " << value.queryType << '\n';
5405	s << "\tqueryCount = " << value.queryCount << '\n';
5406	s << "\tpipelineStatistics = " << getQueryPipelineStatisticFlagsStr(value.pipelineStatistics) << '\n';
5407	s << '}';
5408	return s;
5409}
5410
5411std::ostream& operator<< (std::ostream& s, const VkBufferCreateInfo& value)
5412{
5413	s << "VkBufferCreateInfo = {\n";
5414	s << "\tsType = " << value.sType << '\n';
5415	s << "\tpNext = " << value.pNext << '\n';
5416	s << "\tflags = " << getBufferCreateFlagsStr(value.flags) << '\n';
5417	s << "\tsize = " << value.size << '\n';
5418	s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
5419	s << "\tsharingMode = " << value.sharingMode << '\n';
5420	s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
5421	s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
5422	s << '}';
5423	return s;
5424}
5425
5426std::ostream& operator<< (std::ostream& s, const VkBufferViewCreateInfo& value)
5427{
5428	s << "VkBufferViewCreateInfo = {\n";
5429	s << "\tsType = " << value.sType << '\n';
5430	s << "\tpNext = " << value.pNext << '\n';
5431	s << "\tflags = " << getBufferViewCreateFlagsStr(value.flags) << '\n';
5432	s << "\tbuffer = " << value.buffer << '\n';
5433	s << "\tformat = " << value.format << '\n';
5434	s << "\toffset = " << value.offset << '\n';
5435	s << "\trange = " << value.range << '\n';
5436	s << '}';
5437	return s;
5438}
5439
5440std::ostream& operator<< (std::ostream& s, const VkImageCreateInfo& value)
5441{
5442	s << "VkImageCreateInfo = {\n";
5443	s << "\tsType = " << value.sType << '\n';
5444	s << "\tpNext = " << value.pNext << '\n';
5445	s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
5446	s << "\timageType = " << value.imageType << '\n';
5447	s << "\tformat = " << value.format << '\n';
5448	s << "\textent = " << value.extent << '\n';
5449	s << "\tmipLevels = " << value.mipLevels << '\n';
5450	s << "\tarrayLayers = " << value.arrayLayers << '\n';
5451	s << "\tsamples = " << value.samples << '\n';
5452	s << "\ttiling = " << value.tiling << '\n';
5453	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
5454	s << "\tsharingMode = " << value.sharingMode << '\n';
5455	s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
5456	s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
5457	s << "\tinitialLayout = " << value.initialLayout << '\n';
5458	s << '}';
5459	return s;
5460}
5461
5462std::ostream& operator<< (std::ostream& s, const VkSubresourceLayout& value)
5463{
5464	s << "VkSubresourceLayout = {\n";
5465	s << "\toffset = " << value.offset << '\n';
5466	s << "\tsize = " << value.size << '\n';
5467	s << "\trowPitch = " << value.rowPitch << '\n';
5468	s << "\tarrayPitch = " << value.arrayPitch << '\n';
5469	s << "\tdepthPitch = " << value.depthPitch << '\n';
5470	s << '}';
5471	return s;
5472}
5473
5474std::ostream& operator<< (std::ostream& s, const VkComponentMapping& value)
5475{
5476	s << "VkComponentMapping = {\n";
5477	s << "\tr = " << value.r << '\n';
5478	s << "\tg = " << value.g << '\n';
5479	s << "\tb = " << value.b << '\n';
5480	s << "\ta = " << value.a << '\n';
5481	s << '}';
5482	return s;
5483}
5484
5485std::ostream& operator<< (std::ostream& s, const VkImageViewCreateInfo& value)
5486{
5487	s << "VkImageViewCreateInfo = {\n";
5488	s << "\tsType = " << value.sType << '\n';
5489	s << "\tpNext = " << value.pNext << '\n';
5490	s << "\tflags = " << getImageViewCreateFlagsStr(value.flags) << '\n';
5491	s << "\timage = " << value.image << '\n';
5492	s << "\tviewType = " << value.viewType << '\n';
5493	s << "\tformat = " << value.format << '\n';
5494	s << "\tcomponents = " << value.components << '\n';
5495	s << "\tsubresourceRange = " << value.subresourceRange << '\n';
5496	s << '}';
5497	return s;
5498}
5499
5500std::ostream& operator<< (std::ostream& s, const VkShaderModuleCreateInfo& value)
5501{
5502	s << "VkShaderModuleCreateInfo = {\n";
5503	s << "\tsType = " << value.sType << '\n';
5504	s << "\tpNext = " << value.pNext << '\n';
5505	s << "\tflags = " << getShaderModuleCreateFlagsStr(value.flags) << '\n';
5506	s << "\tcodeSize = " << value.codeSize << '\n';
5507	s << "\tpCode = " << value.pCode << '\n';
5508	s << '}';
5509	return s;
5510}
5511
5512std::ostream& operator<< (std::ostream& s, const VkPipelineCacheCreateInfo& value)
5513{
5514	s << "VkPipelineCacheCreateInfo = {\n";
5515	s << "\tsType = " << value.sType << '\n';
5516	s << "\tpNext = " << value.pNext << '\n';
5517	s << "\tflags = " << getPipelineCacheCreateFlagsStr(value.flags) << '\n';
5518	s << "\tinitialDataSize = " << value.initialDataSize << '\n';
5519	s << "\tpInitialData = " << value.pInitialData << '\n';
5520	s << '}';
5521	return s;
5522}
5523
5524std::ostream& operator<< (std::ostream& s, const VkSpecializationMapEntry& value)
5525{
5526	s << "VkSpecializationMapEntry = {\n";
5527	s << "\tconstantID = " << value.constantID << '\n';
5528	s << "\toffset = " << value.offset << '\n';
5529	s << "\tsize = " << value.size << '\n';
5530	s << '}';
5531	return s;
5532}
5533
5534std::ostream& operator<< (std::ostream& s, const VkSpecializationInfo& value)
5535{
5536	s << "VkSpecializationInfo = {\n";
5537	s << "\tmapEntryCount = " << value.mapEntryCount << '\n';
5538	s << "\tpMapEntries = " << value.pMapEntries << '\n';
5539	s << "\tdataSize = " << value.dataSize << '\n';
5540	s << "\tpData = " << value.pData << '\n';
5541	s << '}';
5542	return s;
5543}
5544
5545std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageCreateInfo& value)
5546{
5547	s << "VkPipelineShaderStageCreateInfo = {\n";
5548	s << "\tsType = " << value.sType << '\n';
5549	s << "\tpNext = " << value.pNext << '\n';
5550	s << "\tflags = " << getPipelineShaderStageCreateFlagsStr(value.flags) << '\n';
5551	s << "\tstage = " << value.stage << '\n';
5552	s << "\tmodule = " << value.module << '\n';
5553	s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
5554	s << "\tpSpecializationInfo = " << value.pSpecializationInfo << '\n';
5555	s << '}';
5556	return s;
5557}
5558
5559std::ostream& operator<< (std::ostream& s, const VkComputePipelineCreateInfo& value)
5560{
5561	s << "VkComputePipelineCreateInfo = {\n";
5562	s << "\tsType = " << value.sType << '\n';
5563	s << "\tpNext = " << value.pNext << '\n';
5564	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
5565	s << "\tstage = " << value.stage << '\n';
5566	s << "\tlayout = " << value.layout << '\n';
5567	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
5568	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
5569	s << '}';
5570	return s;
5571}
5572
5573std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDescription& value)
5574{
5575	s << "VkVertexInputBindingDescription = {\n";
5576	s << "\tbinding = " << value.binding << '\n';
5577	s << "\tstride = " << value.stride << '\n';
5578	s << "\tinputRate = " << value.inputRate << '\n';
5579	s << '}';
5580	return s;
5581}
5582
5583std::ostream& operator<< (std::ostream& s, const VkVertexInputAttributeDescription& value)
5584{
5585	s << "VkVertexInputAttributeDescription = {\n";
5586	s << "\tlocation = " << value.location << '\n';
5587	s << "\tbinding = " << value.binding << '\n';
5588	s << "\tformat = " << value.format << '\n';
5589	s << "\toffset = " << value.offset << '\n';
5590	s << '}';
5591	return s;
5592}
5593
5594std::ostream& operator<< (std::ostream& s, const VkPipelineVertexInputStateCreateInfo& value)
5595{
5596	s << "VkPipelineVertexInputStateCreateInfo = {\n";
5597	s << "\tsType = " << value.sType << '\n';
5598	s << "\tpNext = " << value.pNext << '\n';
5599	s << "\tflags = " << getPipelineVertexInputStateCreateFlagsStr(value.flags) << '\n';
5600	s << "\tvertexBindingDescriptionCount = " << value.vertexBindingDescriptionCount << '\n';
5601	s << "\tpVertexBindingDescriptions = " << value.pVertexBindingDescriptions << '\n';
5602	s << "\tvertexAttributeDescriptionCount = " << value.vertexAttributeDescriptionCount << '\n';
5603	s << "\tpVertexAttributeDescriptions = " << value.pVertexAttributeDescriptions << '\n';
5604	s << '}';
5605	return s;
5606}
5607
5608std::ostream& operator<< (std::ostream& s, const VkPipelineInputAssemblyStateCreateInfo& value)
5609{
5610	s << "VkPipelineInputAssemblyStateCreateInfo = {\n";
5611	s << "\tsType = " << value.sType << '\n';
5612	s << "\tpNext = " << value.pNext << '\n';
5613	s << "\tflags = " << getPipelineInputAssemblyStateCreateFlagsStr(value.flags) << '\n';
5614	s << "\ttopology = " << value.topology << '\n';
5615	s << "\tprimitiveRestartEnable = " << value.primitiveRestartEnable << '\n';
5616	s << '}';
5617	return s;
5618}
5619
5620std::ostream& operator<< (std::ostream& s, const VkPipelineTessellationStateCreateInfo& value)
5621{
5622	s << "VkPipelineTessellationStateCreateInfo = {\n";
5623	s << "\tsType = " << value.sType << '\n';
5624	s << "\tpNext = " << value.pNext << '\n';
5625	s << "\tflags = " << getPipelineTessellationStateCreateFlagsStr(value.flags) << '\n';
5626	s << "\tpatchControlPoints = " << value.patchControlPoints << '\n';
5627	s << '}';
5628	return s;
5629}
5630
5631std::ostream& operator<< (std::ostream& s, const VkViewport& value)
5632{
5633	s << "VkViewport = {\n";
5634	s << "\tx = " << value.x << '\n';
5635	s << "\ty = " << value.y << '\n';
5636	s << "\twidth = " << value.width << '\n';
5637	s << "\theight = " << value.height << '\n';
5638	s << "\tminDepth = " << value.minDepth << '\n';
5639	s << "\tmaxDepth = " << value.maxDepth << '\n';
5640	s << '}';
5641	return s;
5642}
5643
5644std::ostream& operator<< (std::ostream& s, const VkPipelineViewportStateCreateInfo& value)
5645{
5646	s << "VkPipelineViewportStateCreateInfo = {\n";
5647	s << "\tsType = " << value.sType << '\n';
5648	s << "\tpNext = " << value.pNext << '\n';
5649	s << "\tflags = " << getPipelineViewportStateCreateFlagsStr(value.flags) << '\n';
5650	s << "\tviewportCount = " << value.viewportCount << '\n';
5651	s << "\tpViewports = " << value.pViewports << '\n';
5652	s << "\tscissorCount = " << value.scissorCount << '\n';
5653	s << "\tpScissors = " << value.pScissors << '\n';
5654	s << '}';
5655	return s;
5656}
5657
5658std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateCreateInfo& value)
5659{
5660	s << "VkPipelineRasterizationStateCreateInfo = {\n";
5661	s << "\tsType = " << value.sType << '\n';
5662	s << "\tpNext = " << value.pNext << '\n';
5663	s << "\tflags = " << getPipelineRasterizationStateCreateFlagsStr(value.flags) << '\n';
5664	s << "\tdepthClampEnable = " << value.depthClampEnable << '\n';
5665	s << "\trasterizerDiscardEnable = " << value.rasterizerDiscardEnable << '\n';
5666	s << "\tpolygonMode = " << value.polygonMode << '\n';
5667	s << "\tcullMode = " << getCullModeFlagsStr(value.cullMode) << '\n';
5668	s << "\tfrontFace = " << value.frontFace << '\n';
5669	s << "\tdepthBiasEnable = " << value.depthBiasEnable << '\n';
5670	s << "\tdepthBiasConstantFactor = " << value.depthBiasConstantFactor << '\n';
5671	s << "\tdepthBiasClamp = " << value.depthBiasClamp << '\n';
5672	s << "\tdepthBiasSlopeFactor = " << value.depthBiasSlopeFactor << '\n';
5673	s << "\tlineWidth = " << value.lineWidth << '\n';
5674	s << '}';
5675	return s;
5676}
5677
5678std::ostream& operator<< (std::ostream& s, const VkPipelineMultisampleStateCreateInfo& value)
5679{
5680	s << "VkPipelineMultisampleStateCreateInfo = {\n";
5681	s << "\tsType = " << value.sType << '\n';
5682	s << "\tpNext = " << value.pNext << '\n';
5683	s << "\tflags = " << getPipelineMultisampleStateCreateFlagsStr(value.flags) << '\n';
5684	s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
5685	s << "\tsampleShadingEnable = " << value.sampleShadingEnable << '\n';
5686	s << "\tminSampleShading = " << value.minSampleShading << '\n';
5687	s << "\tpSampleMask = " << value.pSampleMask << '\n';
5688	s << "\talphaToCoverageEnable = " << value.alphaToCoverageEnable << '\n';
5689	s << "\talphaToOneEnable = " << value.alphaToOneEnable << '\n';
5690	s << '}';
5691	return s;
5692}
5693
5694std::ostream& operator<< (std::ostream& s, const VkStencilOpState& value)
5695{
5696	s << "VkStencilOpState = {\n";
5697	s << "\tfailOp = " << value.failOp << '\n';
5698	s << "\tpassOp = " << value.passOp << '\n';
5699	s << "\tdepthFailOp = " << value.depthFailOp << '\n';
5700	s << "\tcompareOp = " << value.compareOp << '\n';
5701	s << "\tcompareMask = " << value.compareMask << '\n';
5702	s << "\twriteMask = " << value.writeMask << '\n';
5703	s << "\treference = " << value.reference << '\n';
5704	s << '}';
5705	return s;
5706}
5707
5708std::ostream& operator<< (std::ostream& s, const VkPipelineDepthStencilStateCreateInfo& value)
5709{
5710	s << "VkPipelineDepthStencilStateCreateInfo = {\n";
5711	s << "\tsType = " << value.sType << '\n';
5712	s << "\tpNext = " << value.pNext << '\n';
5713	s << "\tflags = " << getPipelineDepthStencilStateCreateFlagsStr(value.flags) << '\n';
5714	s << "\tdepthTestEnable = " << value.depthTestEnable << '\n';
5715	s << "\tdepthWriteEnable = " << value.depthWriteEnable << '\n';
5716	s << "\tdepthCompareOp = " << value.depthCompareOp << '\n';
5717	s << "\tdepthBoundsTestEnable = " << value.depthBoundsTestEnable << '\n';
5718	s << "\tstencilTestEnable = " << value.stencilTestEnable << '\n';
5719	s << "\tfront = " << value.front << '\n';
5720	s << "\tback = " << value.back << '\n';
5721	s << "\tminDepthBounds = " << value.minDepthBounds << '\n';
5722	s << "\tmaxDepthBounds = " << value.maxDepthBounds << '\n';
5723	s << '}';
5724	return s;
5725}
5726
5727std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendAttachmentState& value)
5728{
5729	s << "VkPipelineColorBlendAttachmentState = {\n";
5730	s << "\tblendEnable = " << value.blendEnable << '\n';
5731	s << "\tsrcColorBlendFactor = " << value.srcColorBlendFactor << '\n';
5732	s << "\tdstColorBlendFactor = " << value.dstColorBlendFactor << '\n';
5733	s << "\tcolorBlendOp = " << value.colorBlendOp << '\n';
5734	s << "\tsrcAlphaBlendFactor = " << value.srcAlphaBlendFactor << '\n';
5735	s << "\tdstAlphaBlendFactor = " << value.dstAlphaBlendFactor << '\n';
5736	s << "\talphaBlendOp = " << value.alphaBlendOp << '\n';
5737	s << "\tcolorWriteMask = " << getColorComponentFlagsStr(value.colorWriteMask) << '\n';
5738	s << '}';
5739	return s;
5740}
5741
5742std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendStateCreateInfo& value)
5743{
5744	s << "VkPipelineColorBlendStateCreateInfo = {\n";
5745	s << "\tsType = " << value.sType << '\n';
5746	s << "\tpNext = " << value.pNext << '\n';
5747	s << "\tflags = " << getPipelineColorBlendStateCreateFlagsStr(value.flags) << '\n';
5748	s << "\tlogicOpEnable = " << value.logicOpEnable << '\n';
5749	s << "\tlogicOp = " << value.logicOp << '\n';
5750	s << "\tattachmentCount = " << value.attachmentCount << '\n';
5751	s << "\tpAttachments = " << value.pAttachments << '\n';
5752	s << "\tblendConstants = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.blendConstants), DE_ARRAY_END(value.blendConstants)) << '\n';
5753	s << '}';
5754	return s;
5755}
5756
5757std::ostream& operator<< (std::ostream& s, const VkPipelineDynamicStateCreateInfo& value)
5758{
5759	s << "VkPipelineDynamicStateCreateInfo = {\n";
5760	s << "\tsType = " << value.sType << '\n';
5761	s << "\tpNext = " << value.pNext << '\n';
5762	s << "\tflags = " << getPipelineDynamicStateCreateFlagsStr(value.flags) << '\n';
5763	s << "\tdynamicStateCount = " << value.dynamicStateCount << '\n';
5764	s << "\tpDynamicStates = " << value.pDynamicStates << '\n';
5765	s << '}';
5766	return s;
5767}
5768
5769std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineCreateInfo& value)
5770{
5771	s << "VkGraphicsPipelineCreateInfo = {\n";
5772	s << "\tsType = " << value.sType << '\n';
5773	s << "\tpNext = " << value.pNext << '\n';
5774	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
5775	s << "\tstageCount = " << value.stageCount << '\n';
5776	s << "\tpStages = " << value.pStages << '\n';
5777	s << "\tpVertexInputState = " << value.pVertexInputState << '\n';
5778	s << "\tpInputAssemblyState = " << value.pInputAssemblyState << '\n';
5779	s << "\tpTessellationState = " << value.pTessellationState << '\n';
5780	s << "\tpViewportState = " << value.pViewportState << '\n';
5781	s << "\tpRasterizationState = " << value.pRasterizationState << '\n';
5782	s << "\tpMultisampleState = " << value.pMultisampleState << '\n';
5783	s << "\tpDepthStencilState = " << value.pDepthStencilState << '\n';
5784	s << "\tpColorBlendState = " << value.pColorBlendState << '\n';
5785	s << "\tpDynamicState = " << value.pDynamicState << '\n';
5786	s << "\tlayout = " << value.layout << '\n';
5787	s << "\trenderPass = " << value.renderPass << '\n';
5788	s << "\tsubpass = " << value.subpass << '\n';
5789	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
5790	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
5791	s << '}';
5792	return s;
5793}
5794
5795std::ostream& operator<< (std::ostream& s, const VkPushConstantRange& value)
5796{
5797	s << "VkPushConstantRange = {\n";
5798	s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
5799	s << "\toffset = " << value.offset << '\n';
5800	s << "\tsize = " << value.size << '\n';
5801	s << '}';
5802	return s;
5803}
5804
5805std::ostream& operator<< (std::ostream& s, const VkPipelineLayoutCreateInfo& value)
5806{
5807	s << "VkPipelineLayoutCreateInfo = {\n";
5808	s << "\tsType = " << value.sType << '\n';
5809	s << "\tpNext = " << value.pNext << '\n';
5810	s << "\tflags = " << getPipelineLayoutCreateFlagsStr(value.flags) << '\n';
5811	s << "\tsetLayoutCount = " << value.setLayoutCount << '\n';
5812	s << "\tpSetLayouts = " << value.pSetLayouts << '\n';
5813	s << "\tpushConstantRangeCount = " << value.pushConstantRangeCount << '\n';
5814	s << "\tpPushConstantRanges = " << value.pPushConstantRanges << '\n';
5815	s << '}';
5816	return s;
5817}
5818
5819std::ostream& operator<< (std::ostream& s, const VkSamplerCreateInfo& value)
5820{
5821	s << "VkSamplerCreateInfo = {\n";
5822	s << "\tsType = " << value.sType << '\n';
5823	s << "\tpNext = " << value.pNext << '\n';
5824	s << "\tflags = " << getSamplerCreateFlagsStr(value.flags) << '\n';
5825	s << "\tmagFilter = " << value.magFilter << '\n';
5826	s << "\tminFilter = " << value.minFilter << '\n';
5827	s << "\tmipmapMode = " << value.mipmapMode << '\n';
5828	s << "\taddressModeU = " << value.addressModeU << '\n';
5829	s << "\taddressModeV = " << value.addressModeV << '\n';
5830	s << "\taddressModeW = " << value.addressModeW << '\n';
5831	s << "\tmipLodBias = " << value.mipLodBias << '\n';
5832	s << "\tanisotropyEnable = " << value.anisotropyEnable << '\n';
5833	s << "\tmaxAnisotropy = " << value.maxAnisotropy << '\n';
5834	s << "\tcompareEnable = " << value.compareEnable << '\n';
5835	s << "\tcompareOp = " << value.compareOp << '\n';
5836	s << "\tminLod = " << value.minLod << '\n';
5837	s << "\tmaxLod = " << value.maxLod << '\n';
5838	s << "\tborderColor = " << value.borderColor << '\n';
5839	s << "\tunnormalizedCoordinates = " << value.unnormalizedCoordinates << '\n';
5840	s << '}';
5841	return s;
5842}
5843
5844std::ostream& operator<< (std::ostream& s, const VkCopyDescriptorSet& value)
5845{
5846	s << "VkCopyDescriptorSet = {\n";
5847	s << "\tsType = " << value.sType << '\n';
5848	s << "\tpNext = " << value.pNext << '\n';
5849	s << "\tsrcSet = " << value.srcSet << '\n';
5850	s << "\tsrcBinding = " << value.srcBinding << '\n';
5851	s << "\tsrcArrayElement = " << value.srcArrayElement << '\n';
5852	s << "\tdstSet = " << value.dstSet << '\n';
5853	s << "\tdstBinding = " << value.dstBinding << '\n';
5854	s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
5855	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5856	s << '}';
5857	return s;
5858}
5859
5860std::ostream& operator<< (std::ostream& s, const VkDescriptorBufferInfo& value)
5861{
5862	s << "VkDescriptorBufferInfo = {\n";
5863	s << "\tbuffer = " << value.buffer << '\n';
5864	s << "\toffset = " << value.offset << '\n';
5865	s << "\trange = " << value.range << '\n';
5866	s << '}';
5867	return s;
5868}
5869
5870std::ostream& operator<< (std::ostream& s, const VkDescriptorImageInfo& value)
5871{
5872	s << "VkDescriptorImageInfo = {\n";
5873	s << "\tsampler = " << value.sampler << '\n';
5874	s << "\timageView = " << value.imageView << '\n';
5875	s << "\timageLayout = " << value.imageLayout << '\n';
5876	s << '}';
5877	return s;
5878}
5879
5880std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolSize& value)
5881{
5882	s << "VkDescriptorPoolSize = {\n";
5883	s << "\ttype = " << value.type << '\n';
5884	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5885	s << '}';
5886	return s;
5887}
5888
5889std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolCreateInfo& value)
5890{
5891	s << "VkDescriptorPoolCreateInfo = {\n";
5892	s << "\tsType = " << value.sType << '\n';
5893	s << "\tpNext = " << value.pNext << '\n';
5894	s << "\tflags = " << getDescriptorPoolCreateFlagsStr(value.flags) << '\n';
5895	s << "\tmaxSets = " << value.maxSets << '\n';
5896	s << "\tpoolSizeCount = " << value.poolSizeCount << '\n';
5897	s << "\tpPoolSizes = " << value.pPoolSizes << '\n';
5898	s << '}';
5899	return s;
5900}
5901
5902std::ostream& operator<< (std::ostream& s, const VkDescriptorSetAllocateInfo& value)
5903{
5904	s << "VkDescriptorSetAllocateInfo = {\n";
5905	s << "\tsType = " << value.sType << '\n';
5906	s << "\tpNext = " << value.pNext << '\n';
5907	s << "\tdescriptorPool = " << value.descriptorPool << '\n';
5908	s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
5909	s << "\tpSetLayouts = " << value.pSetLayouts << '\n';
5910	s << '}';
5911	return s;
5912}
5913
5914std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBinding& value)
5915{
5916	s << "VkDescriptorSetLayoutBinding = {\n";
5917	s << "\tbinding = " << value.binding << '\n';
5918	s << "\tdescriptorType = " << value.descriptorType << '\n';
5919	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5920	s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
5921	s << "\tpImmutableSamplers = " << value.pImmutableSamplers << '\n';
5922	s << '}';
5923	return s;
5924}
5925
5926std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutCreateInfo& value)
5927{
5928	s << "VkDescriptorSetLayoutCreateInfo = {\n";
5929	s << "\tsType = " << value.sType << '\n';
5930	s << "\tpNext = " << value.pNext << '\n';
5931	s << "\tflags = " << getDescriptorSetLayoutCreateFlagsStr(value.flags) << '\n';
5932	s << "\tbindingCount = " << value.bindingCount << '\n';
5933	s << "\tpBindings = " << value.pBindings << '\n';
5934	s << '}';
5935	return s;
5936}
5937
5938std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSet& value)
5939{
5940	s << "VkWriteDescriptorSet = {\n";
5941	s << "\tsType = " << value.sType << '\n';
5942	s << "\tpNext = " << value.pNext << '\n';
5943	s << "\tdstSet = " << value.dstSet << '\n';
5944	s << "\tdstBinding = " << value.dstBinding << '\n';
5945	s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
5946	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5947	s << "\tdescriptorType = " << value.descriptorType << '\n';
5948	s << "\tpImageInfo = " << value.pImageInfo << '\n';
5949	s << "\tpBufferInfo = " << value.pBufferInfo << '\n';
5950	s << "\tpTexelBufferView = " << value.pTexelBufferView << '\n';
5951	s << '}';
5952	return s;
5953}
5954
5955std::ostream& operator<< (std::ostream& s, const VkAttachmentDescription& value)
5956{
5957	s << "VkAttachmentDescription = {\n";
5958	s << "\tflags = " << getAttachmentDescriptionFlagsStr(value.flags) << '\n';
5959	s << "\tformat = " << value.format << '\n';
5960	s << "\tsamples = " << value.samples << '\n';
5961	s << "\tloadOp = " << value.loadOp << '\n';
5962	s << "\tstoreOp = " << value.storeOp << '\n';
5963	s << "\tstencilLoadOp = " << value.stencilLoadOp << '\n';
5964	s << "\tstencilStoreOp = " << value.stencilStoreOp << '\n';
5965	s << "\tinitialLayout = " << value.initialLayout << '\n';
5966	s << "\tfinalLayout = " << value.finalLayout << '\n';
5967	s << '}';
5968	return s;
5969}
5970
5971std::ostream& operator<< (std::ostream& s, const VkAttachmentReference& value)
5972{
5973	s << "VkAttachmentReference = {\n";
5974	s << "\tattachment = " << value.attachment << '\n';
5975	s << "\tlayout = " << value.layout << '\n';
5976	s << '}';
5977	return s;
5978}
5979
5980std::ostream& operator<< (std::ostream& s, const VkFramebufferCreateInfo& value)
5981{
5982	s << "VkFramebufferCreateInfo = {\n";
5983	s << "\tsType = " << value.sType << '\n';
5984	s << "\tpNext = " << value.pNext << '\n';
5985	s << "\tflags = " << getFramebufferCreateFlagsStr(value.flags) << '\n';
5986	s << "\trenderPass = " << value.renderPass << '\n';
5987	s << "\tattachmentCount = " << value.attachmentCount << '\n';
5988	s << "\tpAttachments = " << value.pAttachments << '\n';
5989	s << "\twidth = " << value.width << '\n';
5990	s << "\theight = " << value.height << '\n';
5991	s << "\tlayers = " << value.layers << '\n';
5992	s << '}';
5993	return s;
5994}
5995
5996std::ostream& operator<< (std::ostream& s, const VkSubpassDescription& value)
5997{
5998	s << "VkSubpassDescription = {\n";
5999	s << "\tflags = " << getSubpassDescriptionFlagsStr(value.flags) << '\n';
6000	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
6001	s << "\tinputAttachmentCount = " << value.inputAttachmentCount << '\n';
6002	s << "\tpInputAttachments = " << value.pInputAttachments << '\n';
6003	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
6004	s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
6005	s << "\tpResolveAttachments = " << value.pResolveAttachments << '\n';
6006	s << "\tpDepthStencilAttachment = " << value.pDepthStencilAttachment << '\n';
6007	s << "\tpreserveAttachmentCount = " << value.preserveAttachmentCount << '\n';
6008	s << "\tpPreserveAttachments = " << value.pPreserveAttachments << '\n';
6009	s << '}';
6010	return s;
6011}
6012
6013std::ostream& operator<< (std::ostream& s, const VkSubpassDependency& value)
6014{
6015	s << "VkSubpassDependency = {\n";
6016	s << "\tsrcSubpass = " << value.srcSubpass << '\n';
6017	s << "\tdstSubpass = " << value.dstSubpass << '\n';
6018	s << "\tsrcStageMask = " << getPipelineStageFlagsStr(value.srcStageMask) << '\n';
6019	s << "\tdstStageMask = " << getPipelineStageFlagsStr(value.dstStageMask) << '\n';
6020	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
6021	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
6022	s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
6023	s << '}';
6024	return s;
6025}
6026
6027std::ostream& operator<< (std::ostream& s, const VkRenderPassCreateInfo& value)
6028{
6029	s << "VkRenderPassCreateInfo = {\n";
6030	s << "\tsType = " << value.sType << '\n';
6031	s << "\tpNext = " << value.pNext << '\n';
6032	s << "\tflags = " << getRenderPassCreateFlagsStr(value.flags) << '\n';
6033	s << "\tattachmentCount = " << value.attachmentCount << '\n';
6034	s << "\tpAttachments = " << value.pAttachments << '\n';
6035	s << "\tsubpassCount = " << value.subpassCount << '\n';
6036	s << "\tpSubpasses = " << value.pSubpasses << '\n';
6037	s << "\tdependencyCount = " << value.dependencyCount << '\n';
6038	s << "\tpDependencies = " << value.pDependencies << '\n';
6039	s << '}';
6040	return s;
6041}
6042
6043std::ostream& operator<< (std::ostream& s, const VkCommandPoolCreateInfo& value)
6044{
6045	s << "VkCommandPoolCreateInfo = {\n";
6046	s << "\tsType = " << value.sType << '\n';
6047	s << "\tpNext = " << value.pNext << '\n';
6048	s << "\tflags = " << getCommandPoolCreateFlagsStr(value.flags) << '\n';
6049	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
6050	s << '}';
6051	return s;
6052}
6053
6054std::ostream& operator<< (std::ostream& s, const VkCommandBufferAllocateInfo& value)
6055{
6056	s << "VkCommandBufferAllocateInfo = {\n";
6057	s << "\tsType = " << value.sType << '\n';
6058	s << "\tpNext = " << value.pNext << '\n';
6059	s << "\tcommandPool = " << value.commandPool << '\n';
6060	s << "\tlevel = " << value.level << '\n';
6061	s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
6062	s << '}';
6063	return s;
6064}
6065
6066std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceInfo& value)
6067{
6068	s << "VkCommandBufferInheritanceInfo = {\n";
6069	s << "\tsType = " << value.sType << '\n';
6070	s << "\tpNext = " << value.pNext << '\n';
6071	s << "\trenderPass = " << value.renderPass << '\n';
6072	s << "\tsubpass = " << value.subpass << '\n';
6073	s << "\tframebuffer = " << value.framebuffer << '\n';
6074	s << "\tocclusionQueryEnable = " << value.occlusionQueryEnable << '\n';
6075	s << "\tqueryFlags = " << getQueryControlFlagsStr(value.queryFlags) << '\n';
6076	s << "\tpipelineStatistics = " << getQueryPipelineStatisticFlagsStr(value.pipelineStatistics) << '\n';
6077	s << '}';
6078	return s;
6079}
6080
6081std::ostream& operator<< (std::ostream& s, const VkCommandBufferBeginInfo& value)
6082{
6083	s << "VkCommandBufferBeginInfo = {\n";
6084	s << "\tsType = " << value.sType << '\n';
6085	s << "\tpNext = " << value.pNext << '\n';
6086	s << "\tflags = " << getCommandBufferUsageFlagsStr(value.flags) << '\n';
6087	s << "\tpInheritanceInfo = " << value.pInheritanceInfo << '\n';
6088	s << '}';
6089	return s;
6090}
6091
6092std::ostream& operator<< (std::ostream& s, const VkBufferCopy& value)
6093{
6094	s << "VkBufferCopy = {\n";
6095	s << "\tsrcOffset = " << value.srcOffset << '\n';
6096	s << "\tdstOffset = " << value.dstOffset << '\n';
6097	s << "\tsize = " << value.size << '\n';
6098	s << '}';
6099	return s;
6100}
6101
6102std::ostream& operator<< (std::ostream& s, const VkImageSubresourceLayers& value)
6103{
6104	s << "VkImageSubresourceLayers = {\n";
6105	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
6106	s << "\tmipLevel = " << value.mipLevel << '\n';
6107	s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
6108	s << "\tlayerCount = " << value.layerCount << '\n';
6109	s << '}';
6110	return s;
6111}
6112
6113std::ostream& operator<< (std::ostream& s, const VkBufferImageCopy& value)
6114{
6115	s << "VkBufferImageCopy = {\n";
6116	s << "\tbufferOffset = " << value.bufferOffset << '\n';
6117	s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
6118	s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
6119	s << "\timageSubresource = " << value.imageSubresource << '\n';
6120	s << "\timageOffset = " << value.imageOffset << '\n';
6121	s << "\timageExtent = " << value.imageExtent << '\n';
6122	s << '}';
6123	return s;
6124}
6125
6126std::ostream& operator<< (std::ostream& s, const VkClearColorValue& value)
6127{
6128	s << "VkClearColorValue = {\n";
6129	s << "\tfloat32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.float32), DE_ARRAY_END(value.float32)) << '\n';
6130	s << "\tint32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.int32), DE_ARRAY_END(value.int32)) << '\n';
6131	s << "\tuint32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.uint32), DE_ARRAY_END(value.uint32)) << '\n';
6132	s << '}';
6133	return s;
6134}
6135
6136std::ostream& operator<< (std::ostream& s, const VkClearDepthStencilValue& value)
6137{
6138	s << "VkClearDepthStencilValue = {\n";
6139	s << "\tdepth = " << value.depth << '\n';
6140	s << "\tstencil = " << value.stencil << '\n';
6141	s << '}';
6142	return s;
6143}
6144
6145std::ostream& operator<< (std::ostream& s, const VkClearValue& value)
6146{
6147	s << "VkClearValue = {\n";
6148	s << "\tcolor = " << value.color << '\n';
6149	s << "\tdepthStencil = " << value.depthStencil << '\n';
6150	s << '}';
6151	return s;
6152}
6153
6154std::ostream& operator<< (std::ostream& s, const VkClearAttachment& value)
6155{
6156	s << "VkClearAttachment = {\n";
6157	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
6158	s << "\tcolorAttachment = " << value.colorAttachment << '\n';
6159	s << "\tclearValue = " << value.clearValue << '\n';
6160	s << '}';
6161	return s;
6162}
6163
6164std::ostream& operator<< (std::ostream& s, const VkClearRect& value)
6165{
6166	s << "VkClearRect = {\n";
6167	s << "\trect = " << value.rect << '\n';
6168	s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
6169	s << "\tlayerCount = " << value.layerCount << '\n';
6170	s << '}';
6171	return s;
6172}
6173
6174std::ostream& operator<< (std::ostream& s, const VkImageBlit& value)
6175{
6176	s << "VkImageBlit = {\n";
6177	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
6178	s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
6179	s << "\tdstSubresource = " << value.dstSubresource << '\n';
6180	s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
6181	s << '}';
6182	return s;
6183}
6184
6185std::ostream& operator<< (std::ostream& s, const VkImageCopy& value)
6186{
6187	s << "VkImageCopy = {\n";
6188	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
6189	s << "\tsrcOffset = " << value.srcOffset << '\n';
6190	s << "\tdstSubresource = " << value.dstSubresource << '\n';
6191	s << "\tdstOffset = " << value.dstOffset << '\n';
6192	s << "\textent = " << value.extent << '\n';
6193	s << '}';
6194	return s;
6195}
6196
6197std::ostream& operator<< (std::ostream& s, const VkImageResolve& value)
6198{
6199	s << "VkImageResolve = {\n";
6200	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
6201	s << "\tsrcOffset = " << value.srcOffset << '\n';
6202	s << "\tdstSubresource = " << value.dstSubresource << '\n';
6203	s << "\tdstOffset = " << value.dstOffset << '\n';
6204	s << "\textent = " << value.extent << '\n';
6205	s << '}';
6206	return s;
6207}
6208
6209std::ostream& operator<< (std::ostream& s, const VkRenderPassBeginInfo& value)
6210{
6211	s << "VkRenderPassBeginInfo = {\n";
6212	s << "\tsType = " << value.sType << '\n';
6213	s << "\tpNext = " << value.pNext << '\n';
6214	s << "\trenderPass = " << value.renderPass << '\n';
6215	s << "\tframebuffer = " << value.framebuffer << '\n';
6216	s << "\trenderArea = " << value.renderArea << '\n';
6217	s << "\tclearValueCount = " << value.clearValueCount << '\n';
6218	s << "\tpClearValues = " << value.pClearValues << '\n';
6219	s << '}';
6220	return s;
6221}
6222
6223std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupProperties& value)
6224{
6225	s << "VkPhysicalDeviceSubgroupProperties = {\n";
6226	s << "\tsType = " << value.sType << '\n';
6227	s << "\tpNext = " << value.pNext << '\n';
6228	s << "\tsubgroupSize = " << value.subgroupSize << '\n';
6229	s << "\tsupportedStages = " << getShaderStageFlagsStr(value.supportedStages) << '\n';
6230	s << "\tsupportedOperations = " << getSubgroupFeatureFlagsStr(value.supportedOperations) << '\n';
6231	s << "\tquadOperationsInAllStages = " << value.quadOperationsInAllStages << '\n';
6232	s << '}';
6233	return s;
6234}
6235
6236std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryInfo& value)
6237{
6238	s << "VkBindBufferMemoryInfo = {\n";
6239	s << "\tsType = " << value.sType << '\n';
6240	s << "\tpNext = " << value.pNext << '\n';
6241	s << "\tbuffer = " << value.buffer << '\n';
6242	s << "\tmemory = " << value.memory << '\n';
6243	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
6244	s << '}';
6245	return s;
6246}
6247
6248std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryInfo& value)
6249{
6250	s << "VkBindImageMemoryInfo = {\n";
6251	s << "\tsType = " << value.sType << '\n';
6252	s << "\tpNext = " << value.pNext << '\n';
6253	s << "\timage = " << value.image << '\n';
6254	s << "\tmemory = " << value.memory << '\n';
6255	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
6256	s << '}';
6257	return s;
6258}
6259
6260std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice16BitStorageFeatures& value)
6261{
6262	s << "VkPhysicalDevice16BitStorageFeatures = {\n";
6263	s << "\tsType = " << value.sType << '\n';
6264	s << "\tpNext = " << value.pNext << '\n';
6265	s << "\tstorageBuffer16BitAccess = " << value.storageBuffer16BitAccess << '\n';
6266	s << "\tuniformAndStorageBuffer16BitAccess = " << value.uniformAndStorageBuffer16BitAccess << '\n';
6267	s << "\tstoragePushConstant16 = " << value.storagePushConstant16 << '\n';
6268	s << "\tstorageInputOutput16 = " << value.storageInputOutput16 << '\n';
6269	s << '}';
6270	return s;
6271}
6272
6273std::ostream& operator<< (std::ostream& s, const VkMemoryDedicatedRequirements& value)
6274{
6275	s << "VkMemoryDedicatedRequirements = {\n";
6276	s << "\tsType = " << value.sType << '\n';
6277	s << "\tpNext = " << value.pNext << '\n';
6278	s << "\tprefersDedicatedAllocation = " << value.prefersDedicatedAllocation << '\n';
6279	s << "\trequiresDedicatedAllocation = " << value.requiresDedicatedAllocation << '\n';
6280	s << '}';
6281	return s;
6282}
6283
6284std::ostream& operator<< (std::ostream& s, const VkMemoryDedicatedAllocateInfo& value)
6285{
6286	s << "VkMemoryDedicatedAllocateInfo = {\n";
6287	s << "\tsType = " << value.sType << '\n';
6288	s << "\tpNext = " << value.pNext << '\n';
6289	s << "\timage = " << value.image << '\n';
6290	s << "\tbuffer = " << value.buffer << '\n';
6291	s << '}';
6292	return s;
6293}
6294
6295std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateFlagsInfo& value)
6296{
6297	s << "VkMemoryAllocateFlagsInfo = {\n";
6298	s << "\tsType = " << value.sType << '\n';
6299	s << "\tpNext = " << value.pNext << '\n';
6300	s << "\tflags = " << getMemoryAllocateFlagsStr(value.flags) << '\n';
6301	s << "\tdeviceMask = " << value.deviceMask << '\n';
6302	s << '}';
6303	return s;
6304}
6305
6306std::ostream& operator<< (std::ostream& s, const VkDeviceGroupRenderPassBeginInfo& value)
6307{
6308	s << "VkDeviceGroupRenderPassBeginInfo = {\n";
6309	s << "\tsType = " << value.sType << '\n';
6310	s << "\tpNext = " << value.pNext << '\n';
6311	s << "\tdeviceMask = " << value.deviceMask << '\n';
6312	s << "\tdeviceRenderAreaCount = " << value.deviceRenderAreaCount << '\n';
6313	s << "\tpDeviceRenderAreas = " << value.pDeviceRenderAreas << '\n';
6314	s << '}';
6315	return s;
6316}
6317
6318std::ostream& operator<< (std::ostream& s, const VkDeviceGroupCommandBufferBeginInfo& value)
6319{
6320	s << "VkDeviceGroupCommandBufferBeginInfo = {\n";
6321	s << "\tsType = " << value.sType << '\n';
6322	s << "\tpNext = " << value.pNext << '\n';
6323	s << "\tdeviceMask = " << value.deviceMask << '\n';
6324	s << '}';
6325	return s;
6326}
6327
6328std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSubmitInfo& value)
6329{
6330	s << "VkDeviceGroupSubmitInfo = {\n";
6331	s << "\tsType = " << value.sType << '\n';
6332	s << "\tpNext = " << value.pNext << '\n';
6333	s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
6334	s << "\tpWaitSemaphoreDeviceIndices = " << value.pWaitSemaphoreDeviceIndices << '\n';
6335	s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
6336	s << "\tpCommandBufferDeviceMasks = " << value.pCommandBufferDeviceMasks << '\n';
6337	s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
6338	s << "\tpSignalSemaphoreDeviceIndices = " << value.pSignalSemaphoreDeviceIndices << '\n';
6339	s << '}';
6340	return s;
6341}
6342
6343std::ostream& operator<< (std::ostream& s, const VkDeviceGroupBindSparseInfo& value)
6344{
6345	s << "VkDeviceGroupBindSparseInfo = {\n";
6346	s << "\tsType = " << value.sType << '\n';
6347	s << "\tpNext = " << value.pNext << '\n';
6348	s << "\tresourceDeviceIndex = " << value.resourceDeviceIndex << '\n';
6349	s << "\tmemoryDeviceIndex = " << value.memoryDeviceIndex << '\n';
6350	s << '}';
6351	return s;
6352}
6353
6354std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryDeviceGroupInfo& value)
6355{
6356	s << "VkBindBufferMemoryDeviceGroupInfo = {\n";
6357	s << "\tsType = " << value.sType << '\n';
6358	s << "\tpNext = " << value.pNext << '\n';
6359	s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
6360	s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
6361	s << '}';
6362	return s;
6363}
6364
6365std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryDeviceGroupInfo& value)
6366{
6367	s << "VkBindImageMemoryDeviceGroupInfo = {\n";
6368	s << "\tsType = " << value.sType << '\n';
6369	s << "\tpNext = " << value.pNext << '\n';
6370	s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
6371	s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
6372	s << "\tsplitInstanceBindRegionCount = " << value.splitInstanceBindRegionCount << '\n';
6373	s << "\tpSplitInstanceBindRegions = " << value.pSplitInstanceBindRegions << '\n';
6374	s << '}';
6375	return s;
6376}
6377
6378std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGroupProperties& value)
6379{
6380	s << "VkPhysicalDeviceGroupProperties = {\n";
6381	s << "\tsType = " << value.sType << '\n';
6382	s << "\tpNext = " << value.pNext << '\n';
6383	s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
6384	s << "\tphysicalDevices = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.physicalDevices), DE_ARRAY_END(value.physicalDevices)) << '\n';
6385	s << "\tsubsetAllocation = " << value.subsetAllocation << '\n';
6386	s << '}';
6387	return s;
6388}
6389
6390std::ostream& operator<< (std::ostream& s, const VkDeviceGroupDeviceCreateInfo& value)
6391{
6392	s << "VkDeviceGroupDeviceCreateInfo = {\n";
6393	s << "\tsType = " << value.sType << '\n';
6394	s << "\tpNext = " << value.pNext << '\n';
6395	s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
6396	s << "\tpPhysicalDevices = " << value.pPhysicalDevices << '\n';
6397	s << '}';
6398	return s;
6399}
6400
6401std::ostream& operator<< (std::ostream& s, const VkBufferMemoryRequirementsInfo2& value)
6402{
6403	s << "VkBufferMemoryRequirementsInfo2 = {\n";
6404	s << "\tsType = " << value.sType << '\n';
6405	s << "\tpNext = " << value.pNext << '\n';
6406	s << "\tbuffer = " << value.buffer << '\n';
6407	s << '}';
6408	return s;
6409}
6410
6411std::ostream& operator<< (std::ostream& s, const VkImageMemoryRequirementsInfo2& value)
6412{
6413	s << "VkImageMemoryRequirementsInfo2 = {\n";
6414	s << "\tsType = " << value.sType << '\n';
6415	s << "\tpNext = " << value.pNext << '\n';
6416	s << "\timage = " << value.image << '\n';
6417	s << '}';
6418	return s;
6419}
6420
6421std::ostream& operator<< (std::ostream& s, const VkImageSparseMemoryRequirementsInfo2& value)
6422{
6423	s << "VkImageSparseMemoryRequirementsInfo2 = {\n";
6424	s << "\tsType = " << value.sType << '\n';
6425	s << "\tpNext = " << value.pNext << '\n';
6426	s << "\timage = " << value.image << '\n';
6427	s << '}';
6428	return s;
6429}
6430
6431std::ostream& operator<< (std::ostream& s, const VkMemoryRequirements2& value)
6432{
6433	s << "VkMemoryRequirements2 = {\n";
6434	s << "\tsType = " << value.sType << '\n';
6435	s << "\tpNext = " << value.pNext << '\n';
6436	s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
6437	s << '}';
6438	return s;
6439}
6440
6441std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements2& value)
6442{
6443	s << "VkSparseImageMemoryRequirements2 = {\n";
6444	s << "\tsType = " << value.sType << '\n';
6445	s << "\tpNext = " << value.pNext << '\n';
6446	s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
6447	s << '}';
6448	return s;
6449}
6450
6451std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures2& value)
6452{
6453	s << "VkPhysicalDeviceFeatures2 = {\n";
6454	s << "\tsType = " << value.sType << '\n';
6455	s << "\tpNext = " << value.pNext << '\n';
6456	s << "\tfeatures = " << value.features << '\n';
6457	s << '}';
6458	return s;
6459}
6460
6461std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProperties2& value)
6462{
6463	s << "VkPhysicalDeviceProperties2 = {\n";
6464	s << "\tsType = " << value.sType << '\n';
6465	s << "\tpNext = " << value.pNext << '\n';
6466	s << "\tproperties = " << value.properties << '\n';
6467	s << '}';
6468	return s;
6469}
6470
6471std::ostream& operator<< (std::ostream& s, const VkFormatProperties2& value)
6472{
6473	s << "VkFormatProperties2 = {\n";
6474	s << "\tsType = " << value.sType << '\n';
6475	s << "\tpNext = " << value.pNext << '\n';
6476	s << "\tformatProperties = " << value.formatProperties << '\n';
6477	s << '}';
6478	return s;
6479}
6480
6481std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties2& value)
6482{
6483	s << "VkImageFormatProperties2 = {\n";
6484	s << "\tsType = " << value.sType << '\n';
6485	s << "\tpNext = " << value.pNext << '\n';
6486	s << "\timageFormatProperties = " << value.imageFormatProperties << '\n';
6487	s << '}';
6488	return s;
6489}
6490
6491std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageFormatInfo2& value)
6492{
6493	s << "VkPhysicalDeviceImageFormatInfo2 = {\n";
6494	s << "\tsType = " << value.sType << '\n';
6495	s << "\tpNext = " << value.pNext << '\n';
6496	s << "\tformat = " << value.format << '\n';
6497	s << "\ttype = " << value.type << '\n';
6498	s << "\ttiling = " << value.tiling << '\n';
6499	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
6500	s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
6501	s << '}';
6502	return s;
6503}
6504
6505std::ostream& operator<< (std::ostream& s, const VkQueueFamilyProperties2& value)
6506{
6507	s << "VkQueueFamilyProperties2 = {\n";
6508	s << "\tsType = " << value.sType << '\n';
6509	s << "\tpNext = " << value.pNext << '\n';
6510	s << "\tqueueFamilyProperties = " << value.queueFamilyProperties << '\n';
6511	s << '}';
6512	return s;
6513}
6514
6515std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties2& value)
6516{
6517	s << "VkPhysicalDeviceMemoryProperties2 = {\n";
6518	s << "\tsType = " << value.sType << '\n';
6519	s << "\tpNext = " << value.pNext << '\n';
6520	s << "\tmemoryProperties = " << value.memoryProperties << '\n';
6521	s << '}';
6522	return s;
6523}
6524
6525std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties2& value)
6526{
6527	s << "VkSparseImageFormatProperties2 = {\n";
6528	s << "\tsType = " << value.sType << '\n';
6529	s << "\tpNext = " << value.pNext << '\n';
6530	s << "\tproperties = " << value.properties << '\n';
6531	s << '}';
6532	return s;
6533}
6534
6535std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseImageFormatInfo2& value)
6536{
6537	s << "VkPhysicalDeviceSparseImageFormatInfo2 = {\n";
6538	s << "\tsType = " << value.sType << '\n';
6539	s << "\tpNext = " << value.pNext << '\n';
6540	s << "\tformat = " << value.format << '\n';
6541	s << "\ttype = " << value.type << '\n';
6542	s << "\tsamples = " << value.samples << '\n';
6543	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
6544	s << "\ttiling = " << value.tiling << '\n';
6545	s << '}';
6546	return s;
6547}
6548
6549std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePointClippingProperties& value)
6550{
6551	s << "VkPhysicalDevicePointClippingProperties = {\n";
6552	s << "\tsType = " << value.sType << '\n';
6553	s << "\tpNext = " << value.pNext << '\n';
6554	s << "\tpointClippingBehavior = " << value.pointClippingBehavior << '\n';
6555	s << '}';
6556	return s;
6557}
6558
6559std::ostream& operator<< (std::ostream& s, const VkInputAttachmentAspectReference& value)
6560{
6561	s << "VkInputAttachmentAspectReference = {\n";
6562	s << "\tsubpass = " << value.subpass << '\n';
6563	s << "\tinputAttachmentIndex = " << value.inputAttachmentIndex << '\n';
6564	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
6565	s << '}';
6566	return s;
6567}
6568
6569std::ostream& operator<< (std::ostream& s, const VkRenderPassInputAttachmentAspectCreateInfo& value)
6570{
6571	s << "VkRenderPassInputAttachmentAspectCreateInfo = {\n";
6572	s << "\tsType = " << value.sType << '\n';
6573	s << "\tpNext = " << value.pNext << '\n';
6574	s << "\taspectReferenceCount = " << value.aspectReferenceCount << '\n';
6575	s << "\tpAspectReferences = " << value.pAspectReferences << '\n';
6576	s << '}';
6577	return s;
6578}
6579
6580std::ostream& operator<< (std::ostream& s, const VkImageViewUsageCreateInfo& value)
6581{
6582	s << "VkImageViewUsageCreateInfo = {\n";
6583	s << "\tsType = " << value.sType << '\n';
6584	s << "\tpNext = " << value.pNext << '\n';
6585	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
6586	s << '}';
6587	return s;
6588}
6589
6590std::ostream& operator<< (std::ostream& s, const VkPipelineTessellationDomainOriginStateCreateInfo& value)
6591{
6592	s << "VkPipelineTessellationDomainOriginStateCreateInfo = {\n";
6593	s << "\tsType = " << value.sType << '\n';
6594	s << "\tpNext = " << value.pNext << '\n';
6595	s << "\tdomainOrigin = " << value.domainOrigin << '\n';
6596	s << '}';
6597	return s;
6598}
6599
6600std::ostream& operator<< (std::ostream& s, const VkRenderPassMultiviewCreateInfo& value)
6601{
6602	s << "VkRenderPassMultiviewCreateInfo = {\n";
6603	s << "\tsType = " << value.sType << '\n';
6604	s << "\tpNext = " << value.pNext << '\n';
6605	s << "\tsubpassCount = " << value.subpassCount << '\n';
6606	s << "\tpViewMasks = " << value.pViewMasks << '\n';
6607	s << "\tdependencyCount = " << value.dependencyCount << '\n';
6608	s << "\tpViewOffsets = " << value.pViewOffsets << '\n';
6609	s << "\tcorrelationMaskCount = " << value.correlationMaskCount << '\n';
6610	s << "\tpCorrelationMasks = " << value.pCorrelationMasks << '\n';
6611	s << '}';
6612	return s;
6613}
6614
6615std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewFeatures& value)
6616{
6617	s << "VkPhysicalDeviceMultiviewFeatures = {\n";
6618	s << "\tsType = " << value.sType << '\n';
6619	s << "\tpNext = " << value.pNext << '\n';
6620	s << "\tmultiview = " << value.multiview << '\n';
6621	s << "\tmultiviewGeometryShader = " << value.multiviewGeometryShader << '\n';
6622	s << "\tmultiviewTessellationShader = " << value.multiviewTessellationShader << '\n';
6623	s << '}';
6624	return s;
6625}
6626
6627std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewProperties& value)
6628{
6629	s << "VkPhysicalDeviceMultiviewProperties = {\n";
6630	s << "\tsType = " << value.sType << '\n';
6631	s << "\tpNext = " << value.pNext << '\n';
6632	s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
6633	s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
6634	s << '}';
6635	return s;
6636}
6637
6638std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVariablePointersFeatures& value)
6639{
6640	s << "VkPhysicalDeviceVariablePointersFeatures = {\n";
6641	s << "\tsType = " << value.sType << '\n';
6642	s << "\tpNext = " << value.pNext << '\n';
6643	s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
6644	s << "\tvariablePointers = " << value.variablePointers << '\n';
6645	s << '}';
6646	return s;
6647}
6648
6649std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProtectedMemoryFeatures& value)
6650{
6651	s << "VkPhysicalDeviceProtectedMemoryFeatures = {\n";
6652	s << "\tsType = " << value.sType << '\n';
6653	s << "\tpNext = " << value.pNext << '\n';
6654	s << "\tprotectedMemory = " << value.protectedMemory << '\n';
6655	s << '}';
6656	return s;
6657}
6658
6659std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProtectedMemoryProperties& value)
6660{
6661	s << "VkPhysicalDeviceProtectedMemoryProperties = {\n";
6662	s << "\tsType = " << value.sType << '\n';
6663	s << "\tpNext = " << value.pNext << '\n';
6664	s << "\tprotectedNoFault = " << value.protectedNoFault << '\n';
6665	s << '}';
6666	return s;
6667}
6668
6669std::ostream& operator<< (std::ostream& s, const VkDeviceQueueInfo2& value)
6670{
6671	s << "VkDeviceQueueInfo2 = {\n";
6672	s << "\tsType = " << value.sType << '\n';
6673	s << "\tpNext = " << value.pNext << '\n';
6674	s << "\tflags = " << getDeviceQueueCreateFlagsStr(value.flags) << '\n';
6675	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
6676	s << "\tqueueIndex = " << value.queueIndex << '\n';
6677	s << '}';
6678	return s;
6679}
6680
6681std::ostream& operator<< (std::ostream& s, const VkProtectedSubmitInfo& value)
6682{
6683	s << "VkProtectedSubmitInfo = {\n";
6684	s << "\tsType = " << value.sType << '\n';
6685	s << "\tpNext = " << value.pNext << '\n';
6686	s << "\tprotectedSubmit = " << value.protectedSubmit << '\n';
6687	s << '}';
6688	return s;
6689}
6690
6691std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionCreateInfo& value)
6692{
6693	s << "VkSamplerYcbcrConversionCreateInfo = {\n";
6694	s << "\tsType = " << value.sType << '\n';
6695	s << "\tpNext = " << value.pNext << '\n';
6696	s << "\tformat = " << value.format << '\n';
6697	s << "\tycbcrModel = " << value.ycbcrModel << '\n';
6698	s << "\tycbcrRange = " << value.ycbcrRange << '\n';
6699	s << "\tcomponents = " << value.components << '\n';
6700	s << "\txChromaOffset = " << value.xChromaOffset << '\n';
6701	s << "\tyChromaOffset = " << value.yChromaOffset << '\n';
6702	s << "\tchromaFilter = " << value.chromaFilter << '\n';
6703	s << "\tforceExplicitReconstruction = " << value.forceExplicitReconstruction << '\n';
6704	s << '}';
6705	return s;
6706}
6707
6708std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionInfo& value)
6709{
6710	s << "VkSamplerYcbcrConversionInfo = {\n";
6711	s << "\tsType = " << value.sType << '\n';
6712	s << "\tpNext = " << value.pNext << '\n';
6713	s << "\tconversion = " << value.conversion << '\n';
6714	s << '}';
6715	return s;
6716}
6717
6718std::ostream& operator<< (std::ostream& s, const VkBindImagePlaneMemoryInfo& value)
6719{
6720	s << "VkBindImagePlaneMemoryInfo = {\n";
6721	s << "\tsType = " << value.sType << '\n';
6722	s << "\tpNext = " << value.pNext << '\n';
6723	s << "\tplaneAspect = " << value.planeAspect << '\n';
6724	s << '}';
6725	return s;
6726}
6727
6728std::ostream& operator<< (std::ostream& s, const VkImagePlaneMemoryRequirementsInfo& value)
6729{
6730	s << "VkImagePlaneMemoryRequirementsInfo = {\n";
6731	s << "\tsType = " << value.sType << '\n';
6732	s << "\tpNext = " << value.pNext << '\n';
6733	s << "\tplaneAspect = " << value.planeAspect << '\n';
6734	s << '}';
6735	return s;
6736}
6737
6738std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerYcbcrConversionFeatures& value)
6739{
6740	s << "VkPhysicalDeviceSamplerYcbcrConversionFeatures = {\n";
6741	s << "\tsType = " << value.sType << '\n';
6742	s << "\tpNext = " << value.pNext << '\n';
6743	s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
6744	s << '}';
6745	return s;
6746}
6747
6748std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionImageFormatProperties& value)
6749{
6750	s << "VkSamplerYcbcrConversionImageFormatProperties = {\n";
6751	s << "\tsType = " << value.sType << '\n';
6752	s << "\tpNext = " << value.pNext << '\n';
6753	s << "\tcombinedImageSamplerDescriptorCount = " << value.combinedImageSamplerDescriptorCount << '\n';
6754	s << '}';
6755	return s;
6756}
6757
6758std::ostream& operator<< (std::ostream& s, const VkDescriptorUpdateTemplateEntry& value)
6759{
6760	s << "VkDescriptorUpdateTemplateEntry = {\n";
6761	s << "\tdstBinding = " << value.dstBinding << '\n';
6762	s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
6763	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
6764	s << "\tdescriptorType = " << value.descriptorType << '\n';
6765	s << "\toffset = " << value.offset << '\n';
6766	s << "\tstride = " << value.stride << '\n';
6767	s << '}';
6768	return s;
6769}
6770
6771std::ostream& operator<< (std::ostream& s, const VkDescriptorUpdateTemplateCreateInfo& value)
6772{
6773	s << "VkDescriptorUpdateTemplateCreateInfo = {\n";
6774	s << "\tsType = " << value.sType << '\n';
6775	s << "\tpNext = " << value.pNext << '\n';
6776	s << "\tflags = " << getDescriptorUpdateTemplateCreateFlagsStr(value.flags) << '\n';
6777	s << "\tdescriptorUpdateEntryCount = " << value.descriptorUpdateEntryCount << '\n';
6778	s << "\tpDescriptorUpdateEntries = " << value.pDescriptorUpdateEntries << '\n';
6779	s << "\ttemplateType = " << value.templateType << '\n';
6780	s << "\tdescriptorSetLayout = " << value.descriptorSetLayout << '\n';
6781	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
6782	s << "\tpipelineLayout = " << value.pipelineLayout << '\n';
6783	s << "\tset = " << value.set << '\n';
6784	s << '}';
6785	return s;
6786}
6787
6788std::ostream& operator<< (std::ostream& s, const VkExternalMemoryProperties& value)
6789{
6790	s << "VkExternalMemoryProperties = {\n";
6791	s << "\texternalMemoryFeatures = " << getExternalMemoryFeatureFlagsStr(value.externalMemoryFeatures) << '\n';
6792	s << "\texportFromImportedHandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
6793	s << "\tcompatibleHandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
6794	s << '}';
6795	return s;
6796}
6797
6798std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalImageFormatInfo& value)
6799{
6800	s << "VkPhysicalDeviceExternalImageFormatInfo = {\n";
6801	s << "\tsType = " << value.sType << '\n';
6802	s << "\tpNext = " << value.pNext << '\n';
6803	s << "\thandleType = " << value.handleType << '\n';
6804	s << '}';
6805	return s;
6806}
6807
6808std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatProperties& value)
6809{
6810	s << "VkExternalImageFormatProperties = {\n";
6811	s << "\tsType = " << value.sType << '\n';
6812	s << "\tpNext = " << value.pNext << '\n';
6813	s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
6814	s << '}';
6815	return s;
6816}
6817
6818std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalBufferInfo& value)
6819{
6820	s << "VkPhysicalDeviceExternalBufferInfo = {\n";
6821	s << "\tsType = " << value.sType << '\n';
6822	s << "\tpNext = " << value.pNext << '\n';
6823	s << "\tflags = " << getBufferCreateFlagsStr(value.flags) << '\n';
6824	s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
6825	s << "\thandleType = " << value.handleType << '\n';
6826	s << '}';
6827	return s;
6828}
6829
6830std::ostream& operator<< (std::ostream& s, const VkExternalBufferProperties& value)
6831{
6832	s << "VkExternalBufferProperties = {\n";
6833	s << "\tsType = " << value.sType << '\n';
6834	s << "\tpNext = " << value.pNext << '\n';
6835	s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
6836	s << '}';
6837	return s;
6838}
6839
6840std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIDProperties& value)
6841{
6842	s << "VkPhysicalDeviceIDProperties = {\n";
6843	s << "\tsType = " << value.sType << '\n';
6844	s << "\tpNext = " << value.pNext << '\n';
6845	s << "\tdeviceUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.deviceUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.deviceUUID))) << '\n';
6846	s << "\tdriverUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.driverUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.driverUUID))) << '\n';
6847	s << "\tdeviceLUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.deviceLUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.deviceLUID))) << '\n';
6848	s << "\tdeviceNodeMask = " << value.deviceNodeMask << '\n';
6849	s << "\tdeviceLUIDValid = " << value.deviceLUIDValid << '\n';
6850	s << '}';
6851	return s;
6852}
6853
6854std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfo& value)
6855{
6856	s << "VkExternalMemoryImageCreateInfo = {\n";
6857	s << "\tsType = " << value.sType << '\n';
6858	s << "\tpNext = " << value.pNext << '\n';
6859	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
6860	s << '}';
6861	return s;
6862}
6863
6864std::ostream& operator<< (std::ostream& s, const VkExternalMemoryBufferCreateInfo& value)
6865{
6866	s << "VkExternalMemoryBufferCreateInfo = {\n";
6867	s << "\tsType = " << value.sType << '\n';
6868	s << "\tpNext = " << value.pNext << '\n';
6869	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
6870	s << '}';
6871	return s;
6872}
6873
6874std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfo& value)
6875{
6876	s << "VkExportMemoryAllocateInfo = {\n";
6877	s << "\tsType = " << value.sType << '\n';
6878	s << "\tpNext = " << value.pNext << '\n';
6879	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
6880	s << '}';
6881	return s;
6882}
6883
6884std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalFenceInfo& value)
6885{
6886	s << "VkPhysicalDeviceExternalFenceInfo = {\n";
6887	s << "\tsType = " << value.sType << '\n';
6888	s << "\tpNext = " << value.pNext << '\n';
6889	s << "\thandleType = " << value.handleType << '\n';
6890	s << '}';
6891	return s;
6892}
6893
6894std::ostream& operator<< (std::ostream& s, const VkExternalFenceProperties& value)
6895{
6896	s << "VkExternalFenceProperties = {\n";
6897	s << "\tsType = " << value.sType << '\n';
6898	s << "\tpNext = " << value.pNext << '\n';
6899	s << "\texportFromImportedHandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
6900	s << "\tcompatibleHandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
6901	s << "\texternalFenceFeatures = " << getExternalFenceFeatureFlagsStr(value.externalFenceFeatures) << '\n';
6902	s << '}';
6903	return s;
6904}
6905
6906std::ostream& operator<< (std::ostream& s, const VkExportFenceCreateInfo& value)
6907{
6908	s << "VkExportFenceCreateInfo = {\n";
6909	s << "\tsType = " << value.sType << '\n';
6910	s << "\tpNext = " << value.pNext << '\n';
6911	s << "\thandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.handleTypes) << '\n';
6912	s << '}';
6913	return s;
6914}
6915
6916std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreCreateInfo& value)
6917{
6918	s << "VkExportSemaphoreCreateInfo = {\n";
6919	s << "\tsType = " << value.sType << '\n';
6920	s << "\tpNext = " << value.pNext << '\n';
6921	s << "\thandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.handleTypes) << '\n';
6922	s << '}';
6923	return s;
6924}
6925
6926std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalSemaphoreInfo& value)
6927{
6928	s << "VkPhysicalDeviceExternalSemaphoreInfo = {\n";
6929	s << "\tsType = " << value.sType << '\n';
6930	s << "\tpNext = " << value.pNext << '\n';
6931	s << "\thandleType = " << value.handleType << '\n';
6932	s << '}';
6933	return s;
6934}
6935
6936std::ostream& operator<< (std::ostream& s, const VkExternalSemaphoreProperties& value)
6937{
6938	s << "VkExternalSemaphoreProperties = {\n";
6939	s << "\tsType = " << value.sType << '\n';
6940	s << "\tpNext = " << value.pNext << '\n';
6941	s << "\texportFromImportedHandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
6942	s << "\tcompatibleHandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
6943	s << "\texternalSemaphoreFeatures = " << getExternalSemaphoreFeatureFlagsStr(value.externalSemaphoreFeatures) << '\n';
6944	s << '}';
6945	return s;
6946}
6947
6948std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance3Properties& value)
6949{
6950	s << "VkPhysicalDeviceMaintenance3Properties = {\n";
6951	s << "\tsType = " << value.sType << '\n';
6952	s << "\tpNext = " << value.pNext << '\n';
6953	s << "\tmaxPerSetDescriptors = " << value.maxPerSetDescriptors << '\n';
6954	s << "\tmaxMemoryAllocationSize = " << value.maxMemoryAllocationSize << '\n';
6955	s << '}';
6956	return s;
6957}
6958
6959std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutSupport& value)
6960{
6961	s << "VkDescriptorSetLayoutSupport = {\n";
6962	s << "\tsType = " << value.sType << '\n';
6963	s << "\tpNext = " << value.pNext << '\n';
6964	s << "\tsupported = " << value.supported << '\n';
6965	s << '}';
6966	return s;
6967}
6968
6969std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderDrawParametersFeatures& value)
6970{
6971	s << "VkPhysicalDeviceShaderDrawParametersFeatures = {\n";
6972	s << "\tsType = " << value.sType << '\n';
6973	s << "\tpNext = " << value.pNext << '\n';
6974	s << "\tshaderDrawParameters = " << value.shaderDrawParameters << '\n';
6975	s << '}';
6976	return s;
6977}
6978
6979std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan11Features& value)
6980{
6981	s << "VkPhysicalDeviceVulkan11Features = {\n";
6982	s << "\tsType = " << value.sType << '\n';
6983	s << "\tpNext = " << value.pNext << '\n';
6984	s << "\tstorageBuffer16BitAccess = " << value.storageBuffer16BitAccess << '\n';
6985	s << "\tuniformAndStorageBuffer16BitAccess = " << value.uniformAndStorageBuffer16BitAccess << '\n';
6986	s << "\tstoragePushConstant16 = " << value.storagePushConstant16 << '\n';
6987	s << "\tstorageInputOutput16 = " << value.storageInputOutput16 << '\n';
6988	s << "\tmultiview = " << value.multiview << '\n';
6989	s << "\tmultiviewGeometryShader = " << value.multiviewGeometryShader << '\n';
6990	s << "\tmultiviewTessellationShader = " << value.multiviewTessellationShader << '\n';
6991	s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
6992	s << "\tvariablePointers = " << value.variablePointers << '\n';
6993	s << "\tprotectedMemory = " << value.protectedMemory << '\n';
6994	s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
6995	s << "\tshaderDrawParameters = " << value.shaderDrawParameters << '\n';
6996	s << '}';
6997	return s;
6998}
6999
7000std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan11Properties& value)
7001{
7002	s << "VkPhysicalDeviceVulkan11Properties = {\n";
7003	s << "\tsType = " << value.sType << '\n';
7004	s << "\tpNext = " << value.pNext << '\n';
7005	s << "\tdeviceUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.deviceUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.deviceUUID))) << '\n';
7006	s << "\tdriverUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.driverUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.driverUUID))) << '\n';
7007	s << "\tdeviceLUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.deviceLUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.deviceLUID))) << '\n';
7008	s << "\tdeviceNodeMask = " << value.deviceNodeMask << '\n';
7009	s << "\tdeviceLUIDValid = " << value.deviceLUIDValid << '\n';
7010	s << "\tsubgroupSize = " << value.subgroupSize << '\n';
7011	s << "\tsubgroupSupportedStages = " << getShaderStageFlagsStr(value.subgroupSupportedStages) << '\n';
7012	s << "\tsubgroupSupportedOperations = " << getSubgroupFeatureFlagsStr(value.subgroupSupportedOperations) << '\n';
7013	s << "\tsubgroupQuadOperationsInAllStages = " << value.subgroupQuadOperationsInAllStages << '\n';
7014	s << "\tpointClippingBehavior = " << value.pointClippingBehavior << '\n';
7015	s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
7016	s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
7017	s << "\tprotectedNoFault = " << value.protectedNoFault << '\n';
7018	s << "\tmaxPerSetDescriptors = " << value.maxPerSetDescriptors << '\n';
7019	s << "\tmaxMemoryAllocationSize = " << value.maxMemoryAllocationSize << '\n';
7020	s << '}';
7021	return s;
7022}
7023
7024std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan12Features& value)
7025{
7026	s << "VkPhysicalDeviceVulkan12Features = {\n";
7027	s << "\tsType = " << value.sType << '\n';
7028	s << "\tpNext = " << value.pNext << '\n';
7029	s << "\tsamplerMirrorClampToEdge = " << value.samplerMirrorClampToEdge << '\n';
7030	s << "\tdrawIndirectCount = " << value.drawIndirectCount << '\n';
7031	s << "\tstorageBuffer8BitAccess = " << value.storageBuffer8BitAccess << '\n';
7032	s << "\tuniformAndStorageBuffer8BitAccess = " << value.uniformAndStorageBuffer8BitAccess << '\n';
7033	s << "\tstoragePushConstant8 = " << value.storagePushConstant8 << '\n';
7034	s << "\tshaderBufferInt64Atomics = " << value.shaderBufferInt64Atomics << '\n';
7035	s << "\tshaderSharedInt64Atomics = " << value.shaderSharedInt64Atomics << '\n';
7036	s << "\tshaderFloat16 = " << value.shaderFloat16 << '\n';
7037	s << "\tshaderInt8 = " << value.shaderInt8 << '\n';
7038	s << "\tdescriptorIndexing = " << value.descriptorIndexing << '\n';
7039	s << "\tshaderInputAttachmentArrayDynamicIndexing = " << value.shaderInputAttachmentArrayDynamicIndexing << '\n';
7040	s << "\tshaderUniformTexelBufferArrayDynamicIndexing = " << value.shaderUniformTexelBufferArrayDynamicIndexing << '\n';
7041	s << "\tshaderStorageTexelBufferArrayDynamicIndexing = " << value.shaderStorageTexelBufferArrayDynamicIndexing << '\n';
7042	s << "\tshaderUniformBufferArrayNonUniformIndexing = " << value.shaderUniformBufferArrayNonUniformIndexing << '\n';
7043	s << "\tshaderSampledImageArrayNonUniformIndexing = " << value.shaderSampledImageArrayNonUniformIndexing << '\n';
7044	s << "\tshaderStorageBufferArrayNonUniformIndexing = " << value.shaderStorageBufferArrayNonUniformIndexing << '\n';
7045	s << "\tshaderStorageImageArrayNonUniformIndexing = " << value.shaderStorageImageArrayNonUniformIndexing << '\n';
7046	s << "\tshaderInputAttachmentArrayNonUniformIndexing = " << value.shaderInputAttachmentArrayNonUniformIndexing << '\n';
7047	s << "\tshaderUniformTexelBufferArrayNonUniformIndexing = " << value.shaderUniformTexelBufferArrayNonUniformIndexing << '\n';
7048	s << "\tshaderStorageTexelBufferArrayNonUniformIndexing = " << value.shaderStorageTexelBufferArrayNonUniformIndexing << '\n';
7049	s << "\tdescriptorBindingUniformBufferUpdateAfterBind = " << value.descriptorBindingUniformBufferUpdateAfterBind << '\n';
7050	s << "\tdescriptorBindingSampledImageUpdateAfterBind = " << value.descriptorBindingSampledImageUpdateAfterBind << '\n';
7051	s << "\tdescriptorBindingStorageImageUpdateAfterBind = " << value.descriptorBindingStorageImageUpdateAfterBind << '\n';
7052	s << "\tdescriptorBindingStorageBufferUpdateAfterBind = " << value.descriptorBindingStorageBufferUpdateAfterBind << '\n';
7053	s << "\tdescriptorBindingUniformTexelBufferUpdateAfterBind = " << value.descriptorBindingUniformTexelBufferUpdateAfterBind << '\n';
7054	s << "\tdescriptorBindingStorageTexelBufferUpdateAfterBind = " << value.descriptorBindingStorageTexelBufferUpdateAfterBind << '\n';
7055	s << "\tdescriptorBindingUpdateUnusedWhilePending = " << value.descriptorBindingUpdateUnusedWhilePending << '\n';
7056	s << "\tdescriptorBindingPartiallyBound = " << value.descriptorBindingPartiallyBound << '\n';
7057	s << "\tdescriptorBindingVariableDescriptorCount = " << value.descriptorBindingVariableDescriptorCount << '\n';
7058	s << "\truntimeDescriptorArray = " << value.runtimeDescriptorArray << '\n';
7059	s << "\tsamplerFilterMinmax = " << value.samplerFilterMinmax << '\n';
7060	s << "\tscalarBlockLayout = " << value.scalarBlockLayout << '\n';
7061	s << "\timagelessFramebuffer = " << value.imagelessFramebuffer << '\n';
7062	s << "\tuniformBufferStandardLayout = " << value.uniformBufferStandardLayout << '\n';
7063	s << "\tshaderSubgroupExtendedTypes = " << value.shaderSubgroupExtendedTypes << '\n';
7064	s << "\tseparateDepthStencilLayouts = " << value.separateDepthStencilLayouts << '\n';
7065	s << "\thostQueryReset = " << value.hostQueryReset << '\n';
7066	s << "\ttimelineSemaphore = " << value.timelineSemaphore << '\n';
7067	s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
7068	s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
7069	s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
7070	s << "\tvulkanMemoryModel = " << value.vulkanMemoryModel << '\n';
7071	s << "\tvulkanMemoryModelDeviceScope = " << value.vulkanMemoryModelDeviceScope << '\n';
7072	s << "\tvulkanMemoryModelAvailabilityVisibilityChains = " << value.vulkanMemoryModelAvailabilityVisibilityChains << '\n';
7073	s << "\tshaderOutputViewportIndex = " << value.shaderOutputViewportIndex << '\n';
7074	s << "\tshaderOutputLayer = " << value.shaderOutputLayer << '\n';
7075	s << "\tsubgroupBroadcastDynamicId = " << value.subgroupBroadcastDynamicId << '\n';
7076	s << '}';
7077	return s;
7078}
7079
7080std::ostream& operator<< (std::ostream& s, const VkConformanceVersion& value)
7081{
7082	s << "VkConformanceVersion = {\n";
7083	s << "\tmajor = " << value.major << '\n';
7084	s << "\tminor = " << value.minor << '\n';
7085	s << "\tsubminor = " << value.subminor << '\n';
7086	s << "\tpatch = " << value.patch << '\n';
7087	s << '}';
7088	return s;
7089}
7090
7091std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan12Properties& value)
7092{
7093	s << "VkPhysicalDeviceVulkan12Properties = {\n";
7094	s << "\tsType = " << value.sType << '\n';
7095	s << "\tpNext = " << value.pNext << '\n';
7096	s << "\tdriverID = " << value.driverID << '\n';
7097	s << "\tdriverName = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverName)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverName))) << '\n';
7098	s << "\tdriverInfo = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverInfo)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverInfo))) << '\n';
7099	s << "\tconformanceVersion = " << value.conformanceVersion << '\n';
7100	s << "\tdenormBehaviorIndependence = " << value.denormBehaviorIndependence << '\n';
7101	s << "\troundingModeIndependence = " << value.roundingModeIndependence << '\n';
7102	s << "\tshaderSignedZeroInfNanPreserveFloat16 = " << value.shaderSignedZeroInfNanPreserveFloat16 << '\n';
7103	s << "\tshaderSignedZeroInfNanPreserveFloat32 = " << value.shaderSignedZeroInfNanPreserveFloat32 << '\n';
7104	s << "\tshaderSignedZeroInfNanPreserveFloat64 = " << value.shaderSignedZeroInfNanPreserveFloat64 << '\n';
7105	s << "\tshaderDenormPreserveFloat16 = " << value.shaderDenormPreserveFloat16 << '\n';
7106	s << "\tshaderDenormPreserveFloat32 = " << value.shaderDenormPreserveFloat32 << '\n';
7107	s << "\tshaderDenormPreserveFloat64 = " << value.shaderDenormPreserveFloat64 << '\n';
7108	s << "\tshaderDenormFlushToZeroFloat16 = " << value.shaderDenormFlushToZeroFloat16 << '\n';
7109	s << "\tshaderDenormFlushToZeroFloat32 = " << value.shaderDenormFlushToZeroFloat32 << '\n';
7110	s << "\tshaderDenormFlushToZeroFloat64 = " << value.shaderDenormFlushToZeroFloat64 << '\n';
7111	s << "\tshaderRoundingModeRTEFloat16 = " << value.shaderRoundingModeRTEFloat16 << '\n';
7112	s << "\tshaderRoundingModeRTEFloat32 = " << value.shaderRoundingModeRTEFloat32 << '\n';
7113	s << "\tshaderRoundingModeRTEFloat64 = " << value.shaderRoundingModeRTEFloat64 << '\n';
7114	s << "\tshaderRoundingModeRTZFloat16 = " << value.shaderRoundingModeRTZFloat16 << '\n';
7115	s << "\tshaderRoundingModeRTZFloat32 = " << value.shaderRoundingModeRTZFloat32 << '\n';
7116	s << "\tshaderRoundingModeRTZFloat64 = " << value.shaderRoundingModeRTZFloat64 << '\n';
7117	s << "\tmaxUpdateAfterBindDescriptorsInAllPools = " << value.maxUpdateAfterBindDescriptorsInAllPools << '\n';
7118	s << "\tshaderUniformBufferArrayNonUniformIndexingNative = " << value.shaderUniformBufferArrayNonUniformIndexingNative << '\n';
7119	s << "\tshaderSampledImageArrayNonUniformIndexingNative = " << value.shaderSampledImageArrayNonUniformIndexingNative << '\n';
7120	s << "\tshaderStorageBufferArrayNonUniformIndexingNative = " << value.shaderStorageBufferArrayNonUniformIndexingNative << '\n';
7121	s << "\tshaderStorageImageArrayNonUniformIndexingNative = " << value.shaderStorageImageArrayNonUniformIndexingNative << '\n';
7122	s << "\tshaderInputAttachmentArrayNonUniformIndexingNative = " << value.shaderInputAttachmentArrayNonUniformIndexingNative << '\n';
7123	s << "\trobustBufferAccessUpdateAfterBind = " << value.robustBufferAccessUpdateAfterBind << '\n';
7124	s << "\tquadDivergentImplicitLod = " << value.quadDivergentImplicitLod << '\n';
7125	s << "\tmaxPerStageDescriptorUpdateAfterBindSamplers = " << value.maxPerStageDescriptorUpdateAfterBindSamplers << '\n';
7126	s << "\tmaxPerStageDescriptorUpdateAfterBindUniformBuffers = " << value.maxPerStageDescriptorUpdateAfterBindUniformBuffers << '\n';
7127	s << "\tmaxPerStageDescriptorUpdateAfterBindStorageBuffers = " << value.maxPerStageDescriptorUpdateAfterBindStorageBuffers << '\n';
7128	s << "\tmaxPerStageDescriptorUpdateAfterBindSampledImages = " << value.maxPerStageDescriptorUpdateAfterBindSampledImages << '\n';
7129	s << "\tmaxPerStageDescriptorUpdateAfterBindStorageImages = " << value.maxPerStageDescriptorUpdateAfterBindStorageImages << '\n';
7130	s << "\tmaxPerStageDescriptorUpdateAfterBindInputAttachments = " << value.maxPerStageDescriptorUpdateAfterBindInputAttachments << '\n';
7131	s << "\tmaxPerStageUpdateAfterBindResources = " << value.maxPerStageUpdateAfterBindResources << '\n';
7132	s << "\tmaxDescriptorSetUpdateAfterBindSamplers = " << value.maxDescriptorSetUpdateAfterBindSamplers << '\n';
7133	s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffers = " << value.maxDescriptorSetUpdateAfterBindUniformBuffers << '\n';
7134	s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic << '\n';
7135	s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffers = " << value.maxDescriptorSetUpdateAfterBindStorageBuffers << '\n';
7136	s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic << '\n';
7137	s << "\tmaxDescriptorSetUpdateAfterBindSampledImages = " << value.maxDescriptorSetUpdateAfterBindSampledImages << '\n';
7138	s << "\tmaxDescriptorSetUpdateAfterBindStorageImages = " << value.maxDescriptorSetUpdateAfterBindStorageImages << '\n';
7139	s << "\tmaxDescriptorSetUpdateAfterBindInputAttachments = " << value.maxDescriptorSetUpdateAfterBindInputAttachments << '\n';
7140	s << "\tsupportedDepthResolveModes = " << getResolveModeFlagsStr(value.supportedDepthResolveModes) << '\n';
7141	s << "\tsupportedStencilResolveModes = " << getResolveModeFlagsStr(value.supportedStencilResolveModes) << '\n';
7142	s << "\tindependentResolveNone = " << value.independentResolveNone << '\n';
7143	s << "\tindependentResolve = " << value.independentResolve << '\n';
7144	s << "\tfilterMinmaxSingleComponentFormats = " << value.filterMinmaxSingleComponentFormats << '\n';
7145	s << "\tfilterMinmaxImageComponentMapping = " << value.filterMinmaxImageComponentMapping << '\n';
7146	s << "\tmaxTimelineSemaphoreValueDifference = " << value.maxTimelineSemaphoreValueDifference << '\n';
7147	s << "\tframebufferIntegerColorSampleCounts = " << getSampleCountFlagsStr(value.framebufferIntegerColorSampleCounts) << '\n';
7148	s << '}';
7149	return s;
7150}
7151
7152std::ostream& operator<< (std::ostream& s, const VkImageFormatListCreateInfo& value)
7153{
7154	s << "VkImageFormatListCreateInfo = {\n";
7155	s << "\tsType = " << value.sType << '\n';
7156	s << "\tpNext = " << value.pNext << '\n';
7157	s << "\tviewFormatCount = " << value.viewFormatCount << '\n';
7158	s << "\tpViewFormats = " << value.pViewFormats << '\n';
7159	s << '}';
7160	return s;
7161}
7162
7163std::ostream& operator<< (std::ostream& s, const VkAttachmentDescription2& value)
7164{
7165	s << "VkAttachmentDescription2 = {\n";
7166	s << "\tsType = " << value.sType << '\n';
7167	s << "\tpNext = " << value.pNext << '\n';
7168	s << "\tflags = " << getAttachmentDescriptionFlagsStr(value.flags) << '\n';
7169	s << "\tformat = " << value.format << '\n';
7170	s << "\tsamples = " << value.samples << '\n';
7171	s << "\tloadOp = " << value.loadOp << '\n';
7172	s << "\tstoreOp = " << value.storeOp << '\n';
7173	s << "\tstencilLoadOp = " << value.stencilLoadOp << '\n';
7174	s << "\tstencilStoreOp = " << value.stencilStoreOp << '\n';
7175	s << "\tinitialLayout = " << value.initialLayout << '\n';
7176	s << "\tfinalLayout = " << value.finalLayout << '\n';
7177	s << '}';
7178	return s;
7179}
7180
7181std::ostream& operator<< (std::ostream& s, const VkAttachmentReference2& value)
7182{
7183	s << "VkAttachmentReference2 = {\n";
7184	s << "\tsType = " << value.sType << '\n';
7185	s << "\tpNext = " << value.pNext << '\n';
7186	s << "\tattachment = " << value.attachment << '\n';
7187	s << "\tlayout = " << value.layout << '\n';
7188	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
7189	s << '}';
7190	return s;
7191}
7192
7193std::ostream& operator<< (std::ostream& s, const VkSubpassDescription2& value)
7194{
7195	s << "VkSubpassDescription2 = {\n";
7196	s << "\tsType = " << value.sType << '\n';
7197	s << "\tpNext = " << value.pNext << '\n';
7198	s << "\tflags = " << getSubpassDescriptionFlagsStr(value.flags) << '\n';
7199	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
7200	s << "\tviewMask = " << value.viewMask << '\n';
7201	s << "\tinputAttachmentCount = " << value.inputAttachmentCount << '\n';
7202	s << "\tpInputAttachments = " << value.pInputAttachments << '\n';
7203	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
7204	s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
7205	s << "\tpResolveAttachments = " << value.pResolveAttachments << '\n';
7206	s << "\tpDepthStencilAttachment = " << value.pDepthStencilAttachment << '\n';
7207	s << "\tpreserveAttachmentCount = " << value.preserveAttachmentCount << '\n';
7208	s << "\tpPreserveAttachments = " << value.pPreserveAttachments << '\n';
7209	s << '}';
7210	return s;
7211}
7212
7213std::ostream& operator<< (std::ostream& s, const VkSubpassDependency2& value)
7214{
7215	s << "VkSubpassDependency2 = {\n";
7216	s << "\tsType = " << value.sType << '\n';
7217	s << "\tpNext = " << value.pNext << '\n';
7218	s << "\tsrcSubpass = " << value.srcSubpass << '\n';
7219	s << "\tdstSubpass = " << value.dstSubpass << '\n';
7220	s << "\tsrcStageMask = " << getPipelineStageFlagsStr(value.srcStageMask) << '\n';
7221	s << "\tdstStageMask = " << getPipelineStageFlagsStr(value.dstStageMask) << '\n';
7222	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
7223	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
7224	s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
7225	s << "\tviewOffset = " << value.viewOffset << '\n';
7226	s << '}';
7227	return s;
7228}
7229
7230std::ostream& operator<< (std::ostream& s, const VkRenderPassCreateInfo2& value)
7231{
7232	s << "VkRenderPassCreateInfo2 = {\n";
7233	s << "\tsType = " << value.sType << '\n';
7234	s << "\tpNext = " << value.pNext << '\n';
7235	s << "\tflags = " << getRenderPassCreateFlagsStr(value.flags) << '\n';
7236	s << "\tattachmentCount = " << value.attachmentCount << '\n';
7237	s << "\tpAttachments = " << value.pAttachments << '\n';
7238	s << "\tsubpassCount = " << value.subpassCount << '\n';
7239	s << "\tpSubpasses = " << value.pSubpasses << '\n';
7240	s << "\tdependencyCount = " << value.dependencyCount << '\n';
7241	s << "\tpDependencies = " << value.pDependencies << '\n';
7242	s << "\tcorrelatedViewMaskCount = " << value.correlatedViewMaskCount << '\n';
7243	s << "\tpCorrelatedViewMasks = " << value.pCorrelatedViewMasks << '\n';
7244	s << '}';
7245	return s;
7246}
7247
7248std::ostream& operator<< (std::ostream& s, const VkSubpassBeginInfo& value)
7249{
7250	s << "VkSubpassBeginInfo = {\n";
7251	s << "\tsType = " << value.sType << '\n';
7252	s << "\tpNext = " << value.pNext << '\n';
7253	s << "\tcontents = " << value.contents << '\n';
7254	s << '}';
7255	return s;
7256}
7257
7258std::ostream& operator<< (std::ostream& s, const VkSubpassEndInfo& value)
7259{
7260	s << "VkSubpassEndInfo = {\n";
7261	s << "\tsType = " << value.sType << '\n';
7262	s << "\tpNext = " << value.pNext << '\n';
7263	s << '}';
7264	return s;
7265}
7266
7267std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice8BitStorageFeatures& value)
7268{
7269	s << "VkPhysicalDevice8BitStorageFeatures = {\n";
7270	s << "\tsType = " << value.sType << '\n';
7271	s << "\tpNext = " << value.pNext << '\n';
7272	s << "\tstorageBuffer8BitAccess = " << value.storageBuffer8BitAccess << '\n';
7273	s << "\tuniformAndStorageBuffer8BitAccess = " << value.uniformAndStorageBuffer8BitAccess << '\n';
7274	s << "\tstoragePushConstant8 = " << value.storagePushConstant8 << '\n';
7275	s << '}';
7276	return s;
7277}
7278
7279std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDriverProperties& value)
7280{
7281	s << "VkPhysicalDeviceDriverProperties = {\n";
7282	s << "\tsType = " << value.sType << '\n';
7283	s << "\tpNext = " << value.pNext << '\n';
7284	s << "\tdriverID = " << value.driverID << '\n';
7285	s << "\tdriverName = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverName)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverName))) << '\n';
7286	s << "\tdriverInfo = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverInfo)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverInfo))) << '\n';
7287	s << "\tconformanceVersion = " << value.conformanceVersion << '\n';
7288	s << '}';
7289	return s;
7290}
7291
7292std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicInt64Features& value)
7293{
7294	s << "VkPhysicalDeviceShaderAtomicInt64Features = {\n";
7295	s << "\tsType = " << value.sType << '\n';
7296	s << "\tpNext = " << value.pNext << '\n';
7297	s << "\tshaderBufferInt64Atomics = " << value.shaderBufferInt64Atomics << '\n';
7298	s << "\tshaderSharedInt64Atomics = " << value.shaderSharedInt64Atomics << '\n';
7299	s << '}';
7300	return s;
7301}
7302
7303std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderFloat16Int8Features& value)
7304{
7305	s << "VkPhysicalDeviceShaderFloat16Int8Features = {\n";
7306	s << "\tsType = " << value.sType << '\n';
7307	s << "\tpNext = " << value.pNext << '\n';
7308	s << "\tshaderFloat16 = " << value.shaderFloat16 << '\n';
7309	s << "\tshaderInt8 = " << value.shaderInt8 << '\n';
7310	s << '}';
7311	return s;
7312}
7313
7314std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFloatControlsProperties& value)
7315{
7316	s << "VkPhysicalDeviceFloatControlsProperties = {\n";
7317	s << "\tsType = " << value.sType << '\n';
7318	s << "\tpNext = " << value.pNext << '\n';
7319	s << "\tdenormBehaviorIndependence = " << value.denormBehaviorIndependence << '\n';
7320	s << "\troundingModeIndependence = " << value.roundingModeIndependence << '\n';
7321	s << "\tshaderSignedZeroInfNanPreserveFloat16 = " << value.shaderSignedZeroInfNanPreserveFloat16 << '\n';
7322	s << "\tshaderSignedZeroInfNanPreserveFloat32 = " << value.shaderSignedZeroInfNanPreserveFloat32 << '\n';
7323	s << "\tshaderSignedZeroInfNanPreserveFloat64 = " << value.shaderSignedZeroInfNanPreserveFloat64 << '\n';
7324	s << "\tshaderDenormPreserveFloat16 = " << value.shaderDenormPreserveFloat16 << '\n';
7325	s << "\tshaderDenormPreserveFloat32 = " << value.shaderDenormPreserveFloat32 << '\n';
7326	s << "\tshaderDenormPreserveFloat64 = " << value.shaderDenormPreserveFloat64 << '\n';
7327	s << "\tshaderDenormFlushToZeroFloat16 = " << value.shaderDenormFlushToZeroFloat16 << '\n';
7328	s << "\tshaderDenormFlushToZeroFloat32 = " << value.shaderDenormFlushToZeroFloat32 << '\n';
7329	s << "\tshaderDenormFlushToZeroFloat64 = " << value.shaderDenormFlushToZeroFloat64 << '\n';
7330	s << "\tshaderRoundingModeRTEFloat16 = " << value.shaderRoundingModeRTEFloat16 << '\n';
7331	s << "\tshaderRoundingModeRTEFloat32 = " << value.shaderRoundingModeRTEFloat32 << '\n';
7332	s << "\tshaderRoundingModeRTEFloat64 = " << value.shaderRoundingModeRTEFloat64 << '\n';
7333	s << "\tshaderRoundingModeRTZFloat16 = " << value.shaderRoundingModeRTZFloat16 << '\n';
7334	s << "\tshaderRoundingModeRTZFloat32 = " << value.shaderRoundingModeRTZFloat32 << '\n';
7335	s << "\tshaderRoundingModeRTZFloat64 = " << value.shaderRoundingModeRTZFloat64 << '\n';
7336	s << '}';
7337	return s;
7338}
7339
7340std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBindingFlagsCreateInfo& value)
7341{
7342	s << "VkDescriptorSetLayoutBindingFlagsCreateInfo = {\n";
7343	s << "\tsType = " << value.sType << '\n';
7344	s << "\tpNext = " << value.pNext << '\n';
7345	s << "\tbindingCount = " << value.bindingCount << '\n';
7346	s << "\tpBindingFlags = " << value.pBindingFlags << '\n';
7347	s << '}';
7348	return s;
7349}
7350
7351std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingFeatures& value)
7352{
7353	s << "VkPhysicalDeviceDescriptorIndexingFeatures = {\n";
7354	s << "\tsType = " << value.sType << '\n';
7355	s << "\tpNext = " << value.pNext << '\n';
7356	s << "\tshaderInputAttachmentArrayDynamicIndexing = " << value.shaderInputAttachmentArrayDynamicIndexing << '\n';
7357	s << "\tshaderUniformTexelBufferArrayDynamicIndexing = " << value.shaderUniformTexelBufferArrayDynamicIndexing << '\n';
7358	s << "\tshaderStorageTexelBufferArrayDynamicIndexing = " << value.shaderStorageTexelBufferArrayDynamicIndexing << '\n';
7359	s << "\tshaderUniformBufferArrayNonUniformIndexing = " << value.shaderUniformBufferArrayNonUniformIndexing << '\n';
7360	s << "\tshaderSampledImageArrayNonUniformIndexing = " << value.shaderSampledImageArrayNonUniformIndexing << '\n';
7361	s << "\tshaderStorageBufferArrayNonUniformIndexing = " << value.shaderStorageBufferArrayNonUniformIndexing << '\n';
7362	s << "\tshaderStorageImageArrayNonUniformIndexing = " << value.shaderStorageImageArrayNonUniformIndexing << '\n';
7363	s << "\tshaderInputAttachmentArrayNonUniformIndexing = " << value.shaderInputAttachmentArrayNonUniformIndexing << '\n';
7364	s << "\tshaderUniformTexelBufferArrayNonUniformIndexing = " << value.shaderUniformTexelBufferArrayNonUniformIndexing << '\n';
7365	s << "\tshaderStorageTexelBufferArrayNonUniformIndexing = " << value.shaderStorageTexelBufferArrayNonUniformIndexing << '\n';
7366	s << "\tdescriptorBindingUniformBufferUpdateAfterBind = " << value.descriptorBindingUniformBufferUpdateAfterBind << '\n';
7367	s << "\tdescriptorBindingSampledImageUpdateAfterBind = " << value.descriptorBindingSampledImageUpdateAfterBind << '\n';
7368	s << "\tdescriptorBindingStorageImageUpdateAfterBind = " << value.descriptorBindingStorageImageUpdateAfterBind << '\n';
7369	s << "\tdescriptorBindingStorageBufferUpdateAfterBind = " << value.descriptorBindingStorageBufferUpdateAfterBind << '\n';
7370	s << "\tdescriptorBindingUniformTexelBufferUpdateAfterBind = " << value.descriptorBindingUniformTexelBufferUpdateAfterBind << '\n';
7371	s << "\tdescriptorBindingStorageTexelBufferUpdateAfterBind = " << value.descriptorBindingStorageTexelBufferUpdateAfterBind << '\n';
7372	s << "\tdescriptorBindingUpdateUnusedWhilePending = " << value.descriptorBindingUpdateUnusedWhilePending << '\n';
7373	s << "\tdescriptorBindingPartiallyBound = " << value.descriptorBindingPartiallyBound << '\n';
7374	s << "\tdescriptorBindingVariableDescriptorCount = " << value.descriptorBindingVariableDescriptorCount << '\n';
7375	s << "\truntimeDescriptorArray = " << value.runtimeDescriptorArray << '\n';
7376	s << '}';
7377	return s;
7378}
7379
7380std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingProperties& value)
7381{
7382	s << "VkPhysicalDeviceDescriptorIndexingProperties = {\n";
7383	s << "\tsType = " << value.sType << '\n';
7384	s << "\tpNext = " << value.pNext << '\n';
7385	s << "\tmaxUpdateAfterBindDescriptorsInAllPools = " << value.maxUpdateAfterBindDescriptorsInAllPools << '\n';
7386	s << "\tshaderUniformBufferArrayNonUniformIndexingNative = " << value.shaderUniformBufferArrayNonUniformIndexingNative << '\n';
7387	s << "\tshaderSampledImageArrayNonUniformIndexingNative = " << value.shaderSampledImageArrayNonUniformIndexingNative << '\n';
7388	s << "\tshaderStorageBufferArrayNonUniformIndexingNative = " << value.shaderStorageBufferArrayNonUniformIndexingNative << '\n';
7389	s << "\tshaderStorageImageArrayNonUniformIndexingNative = " << value.shaderStorageImageArrayNonUniformIndexingNative << '\n';
7390	s << "\tshaderInputAttachmentArrayNonUniformIndexingNative = " << value.shaderInputAttachmentArrayNonUniformIndexingNative << '\n';
7391	s << "\trobustBufferAccessUpdateAfterBind = " << value.robustBufferAccessUpdateAfterBind << '\n';
7392	s << "\tquadDivergentImplicitLod = " << value.quadDivergentImplicitLod << '\n';
7393	s << "\tmaxPerStageDescriptorUpdateAfterBindSamplers = " << value.maxPerStageDescriptorUpdateAfterBindSamplers << '\n';
7394	s << "\tmaxPerStageDescriptorUpdateAfterBindUniformBuffers = " << value.maxPerStageDescriptorUpdateAfterBindUniformBuffers << '\n';
7395	s << "\tmaxPerStageDescriptorUpdateAfterBindStorageBuffers = " << value.maxPerStageDescriptorUpdateAfterBindStorageBuffers << '\n';
7396	s << "\tmaxPerStageDescriptorUpdateAfterBindSampledImages = " << value.maxPerStageDescriptorUpdateAfterBindSampledImages << '\n';
7397	s << "\tmaxPerStageDescriptorUpdateAfterBindStorageImages = " << value.maxPerStageDescriptorUpdateAfterBindStorageImages << '\n';
7398	s << "\tmaxPerStageDescriptorUpdateAfterBindInputAttachments = " << value.maxPerStageDescriptorUpdateAfterBindInputAttachments << '\n';
7399	s << "\tmaxPerStageUpdateAfterBindResources = " << value.maxPerStageUpdateAfterBindResources << '\n';
7400	s << "\tmaxDescriptorSetUpdateAfterBindSamplers = " << value.maxDescriptorSetUpdateAfterBindSamplers << '\n';
7401	s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffers = " << value.maxDescriptorSetUpdateAfterBindUniformBuffers << '\n';
7402	s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic << '\n';
7403	s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffers = " << value.maxDescriptorSetUpdateAfterBindStorageBuffers << '\n';
7404	s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic << '\n';
7405	s << "\tmaxDescriptorSetUpdateAfterBindSampledImages = " << value.maxDescriptorSetUpdateAfterBindSampledImages << '\n';
7406	s << "\tmaxDescriptorSetUpdateAfterBindStorageImages = " << value.maxDescriptorSetUpdateAfterBindStorageImages << '\n';
7407	s << "\tmaxDescriptorSetUpdateAfterBindInputAttachments = " << value.maxDescriptorSetUpdateAfterBindInputAttachments << '\n';
7408	s << '}';
7409	return s;
7410}
7411
7412std::ostream& operator<< (std::ostream& s, const VkDescriptorSetVariableDescriptorCountAllocateInfo& value)
7413{
7414	s << "VkDescriptorSetVariableDescriptorCountAllocateInfo = {\n";
7415	s << "\tsType = " << value.sType << '\n';
7416	s << "\tpNext = " << value.pNext << '\n';
7417	s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
7418	s << "\tpDescriptorCounts = " << value.pDescriptorCounts << '\n';
7419	s << '}';
7420	return s;
7421}
7422
7423std::ostream& operator<< (std::ostream& s, const VkDescriptorSetVariableDescriptorCountLayoutSupport& value)
7424{
7425	s << "VkDescriptorSetVariableDescriptorCountLayoutSupport = {\n";
7426	s << "\tsType = " << value.sType << '\n';
7427	s << "\tpNext = " << value.pNext << '\n';
7428	s << "\tmaxVariableDescriptorCount = " << value.maxVariableDescriptorCount << '\n';
7429	s << '}';
7430	return s;
7431}
7432
7433std::ostream& operator<< (std::ostream& s, const VkSubpassDescriptionDepthStencilResolve& value)
7434{
7435	s << "VkSubpassDescriptionDepthStencilResolve = {\n";
7436	s << "\tsType = " << value.sType << '\n';
7437	s << "\tpNext = " << value.pNext << '\n';
7438	s << "\tdepthResolveMode = " << value.depthResolveMode << '\n';
7439	s << "\tstencilResolveMode = " << value.stencilResolveMode << '\n';
7440	s << "\tpDepthStencilResolveAttachment = " << value.pDepthStencilResolveAttachment << '\n';
7441	s << '}';
7442	return s;
7443}
7444
7445std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthStencilResolveProperties& value)
7446{
7447	s << "VkPhysicalDeviceDepthStencilResolveProperties = {\n";
7448	s << "\tsType = " << value.sType << '\n';
7449	s << "\tpNext = " << value.pNext << '\n';
7450	s << "\tsupportedDepthResolveModes = " << getResolveModeFlagsStr(value.supportedDepthResolveModes) << '\n';
7451	s << "\tsupportedStencilResolveModes = " << getResolveModeFlagsStr(value.supportedStencilResolveModes) << '\n';
7452	s << "\tindependentResolveNone = " << value.independentResolveNone << '\n';
7453	s << "\tindependentResolve = " << value.independentResolve << '\n';
7454	s << '}';
7455	return s;
7456}
7457
7458std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceScalarBlockLayoutFeatures& value)
7459{
7460	s << "VkPhysicalDeviceScalarBlockLayoutFeatures = {\n";
7461	s << "\tsType = " << value.sType << '\n';
7462	s << "\tpNext = " << value.pNext << '\n';
7463	s << "\tscalarBlockLayout = " << value.scalarBlockLayout << '\n';
7464	s << '}';
7465	return s;
7466}
7467
7468std::ostream& operator<< (std::ostream& s, const VkImageStencilUsageCreateInfo& value)
7469{
7470	s << "VkImageStencilUsageCreateInfo = {\n";
7471	s << "\tsType = " << value.sType << '\n';
7472	s << "\tpNext = " << value.pNext << '\n';
7473	s << "\tstencilUsage = " << getImageUsageFlagsStr(value.stencilUsage) << '\n';
7474	s << '}';
7475	return s;
7476}
7477
7478std::ostream& operator<< (std::ostream& s, const VkSamplerReductionModeCreateInfo& value)
7479{
7480	s << "VkSamplerReductionModeCreateInfo = {\n";
7481	s << "\tsType = " << value.sType << '\n';
7482	s << "\tpNext = " << value.pNext << '\n';
7483	s << "\treductionMode = " << value.reductionMode << '\n';
7484	s << '}';
7485	return s;
7486}
7487
7488std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerFilterMinmaxProperties& value)
7489{
7490	s << "VkPhysicalDeviceSamplerFilterMinmaxProperties = {\n";
7491	s << "\tsType = " << value.sType << '\n';
7492	s << "\tpNext = " << value.pNext << '\n';
7493	s << "\tfilterMinmaxSingleComponentFormats = " << value.filterMinmaxSingleComponentFormats << '\n';
7494	s << "\tfilterMinmaxImageComponentMapping = " << value.filterMinmaxImageComponentMapping << '\n';
7495	s << '}';
7496	return s;
7497}
7498
7499std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkanMemoryModelFeatures& value)
7500{
7501	s << "VkPhysicalDeviceVulkanMemoryModelFeatures = {\n";
7502	s << "\tsType = " << value.sType << '\n';
7503	s << "\tpNext = " << value.pNext << '\n';
7504	s << "\tvulkanMemoryModel = " << value.vulkanMemoryModel << '\n';
7505	s << "\tvulkanMemoryModelDeviceScope = " << value.vulkanMemoryModelDeviceScope << '\n';
7506	s << "\tvulkanMemoryModelAvailabilityVisibilityChains = " << value.vulkanMemoryModelAvailabilityVisibilityChains << '\n';
7507	s << '}';
7508	return s;
7509}
7510
7511std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImagelessFramebufferFeatures& value)
7512{
7513	s << "VkPhysicalDeviceImagelessFramebufferFeatures = {\n";
7514	s << "\tsType = " << value.sType << '\n';
7515	s << "\tpNext = " << value.pNext << '\n';
7516	s << "\timagelessFramebuffer = " << value.imagelessFramebuffer << '\n';
7517	s << '}';
7518	return s;
7519}
7520
7521std::ostream& operator<< (std::ostream& s, const VkFramebufferAttachmentImageInfo& value)
7522{
7523	s << "VkFramebufferAttachmentImageInfo = {\n";
7524	s << "\tsType = " << value.sType << '\n';
7525	s << "\tpNext = " << value.pNext << '\n';
7526	s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
7527	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
7528	s << "\twidth = " << value.width << '\n';
7529	s << "\theight = " << value.height << '\n';
7530	s << "\tlayerCount = " << value.layerCount << '\n';
7531	s << "\tviewFormatCount = " << value.viewFormatCount << '\n';
7532	s << "\tpViewFormats = " << value.pViewFormats << '\n';
7533	s << '}';
7534	return s;
7535}
7536
7537std::ostream& operator<< (std::ostream& s, const VkFramebufferAttachmentsCreateInfo& value)
7538{
7539	s << "VkFramebufferAttachmentsCreateInfo = {\n";
7540	s << "\tsType = " << value.sType << '\n';
7541	s << "\tpNext = " << value.pNext << '\n';
7542	s << "\tattachmentImageInfoCount = " << value.attachmentImageInfoCount << '\n';
7543	s << "\tpAttachmentImageInfos = " << value.pAttachmentImageInfos << '\n';
7544	s << '}';
7545	return s;
7546}
7547
7548std::ostream& operator<< (std::ostream& s, const VkRenderPassAttachmentBeginInfo& value)
7549{
7550	s << "VkRenderPassAttachmentBeginInfo = {\n";
7551	s << "\tsType = " << value.sType << '\n';
7552	s << "\tpNext = " << value.pNext << '\n';
7553	s << "\tattachmentCount = " << value.attachmentCount << '\n';
7554	s << "\tpAttachments = " << value.pAttachments << '\n';
7555	s << '}';
7556	return s;
7557}
7558
7559std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceUniformBufferStandardLayoutFeatures& value)
7560{
7561	s << "VkPhysicalDeviceUniformBufferStandardLayoutFeatures = {\n";
7562	s << "\tsType = " << value.sType << '\n';
7563	s << "\tpNext = " << value.pNext << '\n';
7564	s << "\tuniformBufferStandardLayout = " << value.uniformBufferStandardLayout << '\n';
7565	s << '}';
7566	return s;
7567}
7568
7569std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures& value)
7570{
7571	s << "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures = {\n";
7572	s << "\tsType = " << value.sType << '\n';
7573	s << "\tpNext = " << value.pNext << '\n';
7574	s << "\tshaderSubgroupExtendedTypes = " << value.shaderSubgroupExtendedTypes << '\n';
7575	s << '}';
7576	return s;
7577}
7578
7579std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures& value)
7580{
7581	s << "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures = {\n";
7582	s << "\tsType = " << value.sType << '\n';
7583	s << "\tpNext = " << value.pNext << '\n';
7584	s << "\tseparateDepthStencilLayouts = " << value.separateDepthStencilLayouts << '\n';
7585	s << '}';
7586	return s;
7587}
7588
7589std::ostream& operator<< (std::ostream& s, const VkAttachmentReferenceStencilLayout& value)
7590{
7591	s << "VkAttachmentReferenceStencilLayout = {\n";
7592	s << "\tsType = " << value.sType << '\n';
7593	s << "\tpNext = " << value.pNext << '\n';
7594	s << "\tstencilLayout = " << value.stencilLayout << '\n';
7595	s << '}';
7596	return s;
7597}
7598
7599std::ostream& operator<< (std::ostream& s, const VkAttachmentDescriptionStencilLayout& value)
7600{
7601	s << "VkAttachmentDescriptionStencilLayout = {\n";
7602	s << "\tsType = " << value.sType << '\n';
7603	s << "\tpNext = " << value.pNext << '\n';
7604	s << "\tstencilInitialLayout = " << value.stencilInitialLayout << '\n';
7605	s << "\tstencilFinalLayout = " << value.stencilFinalLayout << '\n';
7606	s << '}';
7607	return s;
7608}
7609
7610std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceHostQueryResetFeatures& value)
7611{
7612	s << "VkPhysicalDeviceHostQueryResetFeatures = {\n";
7613	s << "\tsType = " << value.sType << '\n';
7614	s << "\tpNext = " << value.pNext << '\n';
7615	s << "\thostQueryReset = " << value.hostQueryReset << '\n';
7616	s << '}';
7617	return s;
7618}
7619
7620std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreFeatures& value)
7621{
7622	s << "VkPhysicalDeviceTimelineSemaphoreFeatures = {\n";
7623	s << "\tsType = " << value.sType << '\n';
7624	s << "\tpNext = " << value.pNext << '\n';
7625	s << "\ttimelineSemaphore = " << value.timelineSemaphore << '\n';
7626	s << '}';
7627	return s;
7628}
7629
7630std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreProperties& value)
7631{
7632	s << "VkPhysicalDeviceTimelineSemaphoreProperties = {\n";
7633	s << "\tsType = " << value.sType << '\n';
7634	s << "\tpNext = " << value.pNext << '\n';
7635	s << "\tmaxTimelineSemaphoreValueDifference = " << value.maxTimelineSemaphoreValueDifference << '\n';
7636	s << '}';
7637	return s;
7638}
7639
7640std::ostream& operator<< (std::ostream& s, const VkSemaphoreTypeCreateInfo& value)
7641{
7642	s << "VkSemaphoreTypeCreateInfo = {\n";
7643	s << "\tsType = " << value.sType << '\n';
7644	s << "\tpNext = " << value.pNext << '\n';
7645	s << "\tsemaphoreType = " << value.semaphoreType << '\n';
7646	s << "\tinitialValue = " << value.initialValue << '\n';
7647	s << '}';
7648	return s;
7649}
7650
7651std::ostream& operator<< (std::ostream& s, const VkTimelineSemaphoreSubmitInfo& value)
7652{
7653	s << "VkTimelineSemaphoreSubmitInfo = {\n";
7654	s << "\tsType = " << value.sType << '\n';
7655	s << "\tpNext = " << value.pNext << '\n';
7656	s << "\twaitSemaphoreValueCount = " << value.waitSemaphoreValueCount << '\n';
7657	s << "\tpWaitSemaphoreValues = " << value.pWaitSemaphoreValues << '\n';
7658	s << "\tsignalSemaphoreValueCount = " << value.signalSemaphoreValueCount << '\n';
7659	s << "\tpSignalSemaphoreValues = " << value.pSignalSemaphoreValues << '\n';
7660	s << '}';
7661	return s;
7662}
7663
7664std::ostream& operator<< (std::ostream& s, const VkSemaphoreWaitInfo& value)
7665{
7666	s << "VkSemaphoreWaitInfo = {\n";
7667	s << "\tsType = " << value.sType << '\n';
7668	s << "\tpNext = " << value.pNext << '\n';
7669	s << "\tflags = " << getSemaphoreWaitFlagsStr(value.flags) << '\n';
7670	s << "\tsemaphoreCount = " << value.semaphoreCount << '\n';
7671	s << "\tpSemaphores = " << value.pSemaphores << '\n';
7672	s << "\tpValues = " << value.pValues << '\n';
7673	s << '}';
7674	return s;
7675}
7676
7677std::ostream& operator<< (std::ostream& s, const VkSemaphoreSignalInfo& value)
7678{
7679	s << "VkSemaphoreSignalInfo = {\n";
7680	s << "\tsType = " << value.sType << '\n';
7681	s << "\tpNext = " << value.pNext << '\n';
7682	s << "\tsemaphore = " << value.semaphore << '\n';
7683	s << "\tvalue = " << value.value << '\n';
7684	s << '}';
7685	return s;
7686}
7687
7688std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeatures& value)
7689{
7690	s << "VkPhysicalDeviceBufferDeviceAddressFeatures = {\n";
7691	s << "\tsType = " << value.sType << '\n';
7692	s << "\tpNext = " << value.pNext << '\n';
7693	s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
7694	s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
7695	s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
7696	s << '}';
7697	return s;
7698}
7699
7700std::ostream& operator<< (std::ostream& s, const VkBufferDeviceAddressInfo& value)
7701{
7702	s << "VkBufferDeviceAddressInfo = {\n";
7703	s << "\tsType = " << value.sType << '\n';
7704	s << "\tpNext = " << value.pNext << '\n';
7705	s << "\tbuffer = " << value.buffer << '\n';
7706	s << '}';
7707	return s;
7708}
7709
7710std::ostream& operator<< (std::ostream& s, const VkBufferOpaqueCaptureAddressCreateInfo& value)
7711{
7712	s << "VkBufferOpaqueCaptureAddressCreateInfo = {\n";
7713	s << "\tsType = " << value.sType << '\n';
7714	s << "\tpNext = " << value.pNext << '\n';
7715	s << "\topaqueCaptureAddress = " << value.opaqueCaptureAddress << '\n';
7716	s << '}';
7717	return s;
7718}
7719
7720std::ostream& operator<< (std::ostream& s, const VkMemoryOpaqueCaptureAddressAllocateInfo& value)
7721{
7722	s << "VkMemoryOpaqueCaptureAddressAllocateInfo = {\n";
7723	s << "\tsType = " << value.sType << '\n';
7724	s << "\tpNext = " << value.pNext << '\n';
7725	s << "\topaqueCaptureAddress = " << value.opaqueCaptureAddress << '\n';
7726	s << '}';
7727	return s;
7728}
7729
7730std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryOpaqueCaptureAddressInfo& value)
7731{
7732	s << "VkDeviceMemoryOpaqueCaptureAddressInfo = {\n";
7733	s << "\tsType = " << value.sType << '\n';
7734	s << "\tpNext = " << value.pNext << '\n';
7735	s << "\tmemory = " << value.memory << '\n';
7736	s << '}';
7737	return s;
7738}
7739
7740std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan13Features& value)
7741{
7742	s << "VkPhysicalDeviceVulkan13Features = {\n";
7743	s << "\tsType = " << value.sType << '\n';
7744	s << "\tpNext = " << value.pNext << '\n';
7745	s << "\trobustImageAccess = " << value.robustImageAccess << '\n';
7746	s << "\tinlineUniformBlock = " << value.inlineUniformBlock << '\n';
7747	s << "\tdescriptorBindingInlineUniformBlockUpdateAfterBind = " << value.descriptorBindingInlineUniformBlockUpdateAfterBind << '\n';
7748	s << "\tpipelineCreationCacheControl = " << value.pipelineCreationCacheControl << '\n';
7749	s << "\tprivateData = " << value.privateData << '\n';
7750	s << "\tshaderDemoteToHelperInvocation = " << value.shaderDemoteToHelperInvocation << '\n';
7751	s << "\tshaderTerminateInvocation = " << value.shaderTerminateInvocation << '\n';
7752	s << "\tsubgroupSizeControl = " << value.subgroupSizeControl << '\n';
7753	s << "\tcomputeFullSubgroups = " << value.computeFullSubgroups << '\n';
7754	s << "\tsynchronization2 = " << value.synchronization2 << '\n';
7755	s << "\ttextureCompressionASTC_HDR = " << value.textureCompressionASTC_HDR << '\n';
7756	s << "\tshaderZeroInitializeWorkgroupMemory = " << value.shaderZeroInitializeWorkgroupMemory << '\n';
7757	s << "\tdynamicRendering = " << value.dynamicRendering << '\n';
7758	s << "\tshaderIntegerDotProduct = " << value.shaderIntegerDotProduct << '\n';
7759	s << "\tmaintenance4 = " << value.maintenance4 << '\n';
7760	s << '}';
7761	return s;
7762}
7763
7764std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan13Properties& value)
7765{
7766	s << "VkPhysicalDeviceVulkan13Properties = {\n";
7767	s << "\tsType = " << value.sType << '\n';
7768	s << "\tpNext = " << value.pNext << '\n';
7769	s << "\tminSubgroupSize = " << value.minSubgroupSize << '\n';
7770	s << "\tmaxSubgroupSize = " << value.maxSubgroupSize << '\n';
7771	s << "\tmaxComputeWorkgroupSubgroups = " << value.maxComputeWorkgroupSubgroups << '\n';
7772	s << "\trequiredSubgroupSizeStages = " << getShaderStageFlagsStr(value.requiredSubgroupSizeStages) << '\n';
7773	s << "\tmaxInlineUniformBlockSize = " << value.maxInlineUniformBlockSize << '\n';
7774	s << "\tmaxPerStageDescriptorInlineUniformBlocks = " << value.maxPerStageDescriptorInlineUniformBlocks << '\n';
7775	s << "\tmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = " << value.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks << '\n';
7776	s << "\tmaxDescriptorSetInlineUniformBlocks = " << value.maxDescriptorSetInlineUniformBlocks << '\n';
7777	s << "\tmaxDescriptorSetUpdateAfterBindInlineUniformBlocks = " << value.maxDescriptorSetUpdateAfterBindInlineUniformBlocks << '\n';
7778	s << "\tmaxInlineUniformTotalSize = " << value.maxInlineUniformTotalSize << '\n';
7779	s << "\tintegerDotProduct8BitUnsignedAccelerated = " << value.integerDotProduct8BitUnsignedAccelerated << '\n';
7780	s << "\tintegerDotProduct8BitSignedAccelerated = " << value.integerDotProduct8BitSignedAccelerated << '\n';
7781	s << "\tintegerDotProduct8BitMixedSignednessAccelerated = " << value.integerDotProduct8BitMixedSignednessAccelerated << '\n';
7782	s << "\tintegerDotProduct4x8BitPackedUnsignedAccelerated = " << value.integerDotProduct4x8BitPackedUnsignedAccelerated << '\n';
7783	s << "\tintegerDotProduct4x8BitPackedSignedAccelerated = " << value.integerDotProduct4x8BitPackedSignedAccelerated << '\n';
7784	s << "\tintegerDotProduct4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProduct4x8BitPackedMixedSignednessAccelerated << '\n';
7785	s << "\tintegerDotProduct16BitUnsignedAccelerated = " << value.integerDotProduct16BitUnsignedAccelerated << '\n';
7786	s << "\tintegerDotProduct16BitSignedAccelerated = " << value.integerDotProduct16BitSignedAccelerated << '\n';
7787	s << "\tintegerDotProduct16BitMixedSignednessAccelerated = " << value.integerDotProduct16BitMixedSignednessAccelerated << '\n';
7788	s << "\tintegerDotProduct32BitUnsignedAccelerated = " << value.integerDotProduct32BitUnsignedAccelerated << '\n';
7789	s << "\tintegerDotProduct32BitSignedAccelerated = " << value.integerDotProduct32BitSignedAccelerated << '\n';
7790	s << "\tintegerDotProduct32BitMixedSignednessAccelerated = " << value.integerDotProduct32BitMixedSignednessAccelerated << '\n';
7791	s << "\tintegerDotProduct64BitUnsignedAccelerated = " << value.integerDotProduct64BitUnsignedAccelerated << '\n';
7792	s << "\tintegerDotProduct64BitSignedAccelerated = " << value.integerDotProduct64BitSignedAccelerated << '\n';
7793	s << "\tintegerDotProduct64BitMixedSignednessAccelerated = " << value.integerDotProduct64BitMixedSignednessAccelerated << '\n';
7794	s << "\tintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated << '\n';
7795	s << "\tintegerDotProductAccumulatingSaturating8BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitSignedAccelerated << '\n';
7796	s << "\tintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated << '\n';
7797	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated << '\n';
7798	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated << '\n';
7799	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated << '\n';
7800	s << "\tintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated << '\n';
7801	s << "\tintegerDotProductAccumulatingSaturating16BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitSignedAccelerated << '\n';
7802	s << "\tintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated << '\n';
7803	s << "\tintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated << '\n';
7804	s << "\tintegerDotProductAccumulatingSaturating32BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitSignedAccelerated << '\n';
7805	s << "\tintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated << '\n';
7806	s << "\tintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated << '\n';
7807	s << "\tintegerDotProductAccumulatingSaturating64BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitSignedAccelerated << '\n';
7808	s << "\tintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated << '\n';
7809	s << "\tstorageTexelBufferOffsetAlignmentBytes = " << value.storageTexelBufferOffsetAlignmentBytes << '\n';
7810	s << "\tstorageTexelBufferOffsetSingleTexelAlignment = " << value.storageTexelBufferOffsetSingleTexelAlignment << '\n';
7811	s << "\tuniformTexelBufferOffsetAlignmentBytes = " << value.uniformTexelBufferOffsetAlignmentBytes << '\n';
7812	s << "\tuniformTexelBufferOffsetSingleTexelAlignment = " << value.uniformTexelBufferOffsetSingleTexelAlignment << '\n';
7813	s << "\tmaxBufferSize = " << value.maxBufferSize << '\n';
7814	s << '}';
7815	return s;
7816}
7817
7818std::ostream& operator<< (std::ostream& s, const VkPipelineCreationFeedback& value)
7819{
7820	s << "VkPipelineCreationFeedback = {\n";
7821	s << "\tflags = " << getPipelineCreationFeedbackFlagsStr(value.flags) << '\n';
7822	s << "\tduration = " << value.duration << '\n';
7823	s << '}';
7824	return s;
7825}
7826
7827std::ostream& operator<< (std::ostream& s, const VkPipelineCreationFeedbackCreateInfo& value)
7828{
7829	s << "VkPipelineCreationFeedbackCreateInfo = {\n";
7830	s << "\tsType = " << value.sType << '\n';
7831	s << "\tpNext = " << value.pNext << '\n';
7832	s << "\tpPipelineCreationFeedback = " << value.pPipelineCreationFeedback << '\n';
7833	s << "\tpipelineStageCreationFeedbackCount = " << value.pipelineStageCreationFeedbackCount << '\n';
7834	s << "\tpPipelineStageCreationFeedbacks = " << value.pPipelineStageCreationFeedbacks << '\n';
7835	s << '}';
7836	return s;
7837}
7838
7839std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderTerminateInvocationFeatures& value)
7840{
7841	s << "VkPhysicalDeviceShaderTerminateInvocationFeatures = {\n";
7842	s << "\tsType = " << value.sType << '\n';
7843	s << "\tpNext = " << value.pNext << '\n';
7844	s << "\tshaderTerminateInvocation = " << value.shaderTerminateInvocation << '\n';
7845	s << '}';
7846	return s;
7847}
7848
7849std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceToolProperties& value)
7850{
7851	s << "VkPhysicalDeviceToolProperties = {\n";
7852	s << "\tsType = " << value.sType << '\n';
7853	s << "\tpNext = " << value.pNext << '\n';
7854	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
7855	s << "\tversion = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.version)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.version))) << '\n';
7856	s << "\tpurposes = " << getToolPurposeFlagsStr(value.purposes) << '\n';
7857	s << "\tdescription = " << (const char*)value.description << '\n';
7858	s << "\tlayer = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.layer)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.layer))) << '\n';
7859	s << '}';
7860	return s;
7861}
7862
7863std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures& value)
7864{
7865	s << "VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures = {\n";
7866	s << "\tsType = " << value.sType << '\n';
7867	s << "\tpNext = " << value.pNext << '\n';
7868	s << "\tshaderDemoteToHelperInvocation = " << value.shaderDemoteToHelperInvocation << '\n';
7869	s << '}';
7870	return s;
7871}
7872
7873std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrivateDataFeatures& value)
7874{
7875	s << "VkPhysicalDevicePrivateDataFeatures = {\n";
7876	s << "\tsType = " << value.sType << '\n';
7877	s << "\tpNext = " << value.pNext << '\n';
7878	s << "\tprivateData = " << value.privateData << '\n';
7879	s << '}';
7880	return s;
7881}
7882
7883std::ostream& operator<< (std::ostream& s, const VkDevicePrivateDataCreateInfo& value)
7884{
7885	s << "VkDevicePrivateDataCreateInfo = {\n";
7886	s << "\tsType = " << value.sType << '\n';
7887	s << "\tpNext = " << value.pNext << '\n';
7888	s << "\tprivateDataSlotRequestCount = " << value.privateDataSlotRequestCount << '\n';
7889	s << '}';
7890	return s;
7891}
7892
7893std::ostream& operator<< (std::ostream& s, const VkPrivateDataSlotCreateInfo& value)
7894{
7895	s << "VkPrivateDataSlotCreateInfo = {\n";
7896	s << "\tsType = " << value.sType << '\n';
7897	s << "\tpNext = " << value.pNext << '\n';
7898	s << "\tflags = " << getPrivateDataSlotCreateFlagsStr(value.flags) << '\n';
7899	s << '}';
7900	return s;
7901}
7902
7903std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineCreationCacheControlFeatures& value)
7904{
7905	s << "VkPhysicalDevicePipelineCreationCacheControlFeatures = {\n";
7906	s << "\tsType = " << value.sType << '\n';
7907	s << "\tpNext = " << value.pNext << '\n';
7908	s << "\tpipelineCreationCacheControl = " << value.pipelineCreationCacheControl << '\n';
7909	s << '}';
7910	return s;
7911}
7912
7913std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier2& value)
7914{
7915	s << "VkMemoryBarrier2 = {\n";
7916	s << "\tsType = " << value.sType << '\n';
7917	s << "\tpNext = " << value.pNext << '\n';
7918	s << "\tsrcStageMask = " << value.srcStageMask << '\n';
7919	s << "\tsrcAccessMask = " << value.srcAccessMask << '\n';
7920	s << "\tdstStageMask = " << value.dstStageMask << '\n';
7921	s << "\tdstAccessMask = " << value.dstAccessMask << '\n';
7922	s << '}';
7923	return s;
7924}
7925
7926std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier2& value)
7927{
7928	s << "VkBufferMemoryBarrier2 = {\n";
7929	s << "\tsType = " << value.sType << '\n';
7930	s << "\tpNext = " << value.pNext << '\n';
7931	s << "\tsrcStageMask = " << value.srcStageMask << '\n';
7932	s << "\tsrcAccessMask = " << value.srcAccessMask << '\n';
7933	s << "\tdstStageMask = " << value.dstStageMask << '\n';
7934	s << "\tdstAccessMask = " << value.dstAccessMask << '\n';
7935	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
7936	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
7937	s << "\tbuffer = " << value.buffer << '\n';
7938	s << "\toffset = " << value.offset << '\n';
7939	s << "\tsize = " << value.size << '\n';
7940	s << '}';
7941	return s;
7942}
7943
7944std::ostream& operator<< (std::ostream& s, const VkImageMemoryBarrier2& value)
7945{
7946	s << "VkImageMemoryBarrier2 = {\n";
7947	s << "\tsType = " << value.sType << '\n';
7948	s << "\tpNext = " << value.pNext << '\n';
7949	s << "\tsrcStageMask = " << value.srcStageMask << '\n';
7950	s << "\tsrcAccessMask = " << value.srcAccessMask << '\n';
7951	s << "\tdstStageMask = " << value.dstStageMask << '\n';
7952	s << "\tdstAccessMask = " << value.dstAccessMask << '\n';
7953	s << "\toldLayout = " << value.oldLayout << '\n';
7954	s << "\tnewLayout = " << value.newLayout << '\n';
7955	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
7956	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
7957	s << "\timage = " << value.image << '\n';
7958	s << "\tsubresourceRange = " << value.subresourceRange << '\n';
7959	s << '}';
7960	return s;
7961}
7962
7963std::ostream& operator<< (std::ostream& s, const VkDependencyInfo& value)
7964{
7965	s << "VkDependencyInfo = {\n";
7966	s << "\tsType = " << value.sType << '\n';
7967	s << "\tpNext = " << value.pNext << '\n';
7968	s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
7969	s << "\tmemoryBarrierCount = " << value.memoryBarrierCount << '\n';
7970	s << "\tpMemoryBarriers = " << value.pMemoryBarriers << '\n';
7971	s << "\tbufferMemoryBarrierCount = " << value.bufferMemoryBarrierCount << '\n';
7972	s << "\tpBufferMemoryBarriers = " << value.pBufferMemoryBarriers << '\n';
7973	s << "\timageMemoryBarrierCount = " << value.imageMemoryBarrierCount << '\n';
7974	s << "\tpImageMemoryBarriers = " << value.pImageMemoryBarriers << '\n';
7975	s << '}';
7976	return s;
7977}
7978
7979std::ostream& operator<< (std::ostream& s, const VkSemaphoreSubmitInfo& value)
7980{
7981	s << "VkSemaphoreSubmitInfo = {\n";
7982	s << "\tsType = " << value.sType << '\n';
7983	s << "\tpNext = " << value.pNext << '\n';
7984	s << "\tsemaphore = " << value.semaphore << '\n';
7985	s << "\tvalue = " << value.value << '\n';
7986	s << "\tstageMask = " << value.stageMask << '\n';
7987	s << "\tdeviceIndex = " << value.deviceIndex << '\n';
7988	s << '}';
7989	return s;
7990}
7991
7992std::ostream& operator<< (std::ostream& s, const VkCommandBufferSubmitInfo& value)
7993{
7994	s << "VkCommandBufferSubmitInfo = {\n";
7995	s << "\tsType = " << value.sType << '\n';
7996	s << "\tpNext = " << value.pNext << '\n';
7997	s << "\tcommandBuffer = " << value.commandBuffer << '\n';
7998	s << "\tdeviceMask = " << value.deviceMask << '\n';
7999	s << '}';
8000	return s;
8001}
8002
8003std::ostream& operator<< (std::ostream& s, const VkSubmitInfo2& value)
8004{
8005	s << "VkSubmitInfo2 = {\n";
8006	s << "\tsType = " << value.sType << '\n';
8007	s << "\tpNext = " << value.pNext << '\n';
8008	s << "\tflags = " << getSubmitFlagsStr(value.flags) << '\n';
8009	s << "\twaitSemaphoreInfoCount = " << value.waitSemaphoreInfoCount << '\n';
8010	s << "\tpWaitSemaphoreInfos = " << value.pWaitSemaphoreInfos << '\n';
8011	s << "\tcommandBufferInfoCount = " << value.commandBufferInfoCount << '\n';
8012	s << "\tpCommandBufferInfos = " << value.pCommandBufferInfos << '\n';
8013	s << "\tsignalSemaphoreInfoCount = " << value.signalSemaphoreInfoCount << '\n';
8014	s << "\tpSignalSemaphoreInfos = " << value.pSignalSemaphoreInfos << '\n';
8015	s << '}';
8016	return s;
8017}
8018
8019std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSynchronization2Features& value)
8020{
8021	s << "VkPhysicalDeviceSynchronization2Features = {\n";
8022	s << "\tsType = " << value.sType << '\n';
8023	s << "\tpNext = " << value.pNext << '\n';
8024	s << "\tsynchronization2 = " << value.synchronization2 << '\n';
8025	s << '}';
8026	return s;
8027}
8028
8029std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures& value)
8030{
8031	s << "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = {\n";
8032	s << "\tsType = " << value.sType << '\n';
8033	s << "\tpNext = " << value.pNext << '\n';
8034	s << "\tshaderZeroInitializeWorkgroupMemory = " << value.shaderZeroInitializeWorkgroupMemory << '\n';
8035	s << '}';
8036	return s;
8037}
8038
8039std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageRobustnessFeatures& value)
8040{
8041	s << "VkPhysicalDeviceImageRobustnessFeatures = {\n";
8042	s << "\tsType = " << value.sType << '\n';
8043	s << "\tpNext = " << value.pNext << '\n';
8044	s << "\trobustImageAccess = " << value.robustImageAccess << '\n';
8045	s << '}';
8046	return s;
8047}
8048
8049std::ostream& operator<< (std::ostream& s, const VkBufferCopy2& value)
8050{
8051	s << "VkBufferCopy2 = {\n";
8052	s << "\tsType = " << value.sType << '\n';
8053	s << "\tpNext = " << value.pNext << '\n';
8054	s << "\tsrcOffset = " << value.srcOffset << '\n';
8055	s << "\tdstOffset = " << value.dstOffset << '\n';
8056	s << "\tsize = " << value.size << '\n';
8057	s << '}';
8058	return s;
8059}
8060
8061std::ostream& operator<< (std::ostream& s, const VkCopyBufferInfo2& value)
8062{
8063	s << "VkCopyBufferInfo2 = {\n";
8064	s << "\tsType = " << value.sType << '\n';
8065	s << "\tpNext = " << value.pNext << '\n';
8066	s << "\tsrcBuffer = " << value.srcBuffer << '\n';
8067	s << "\tdstBuffer = " << value.dstBuffer << '\n';
8068	s << "\tregionCount = " << value.regionCount << '\n';
8069	s << "\tpRegions = " << value.pRegions << '\n';
8070	s << '}';
8071	return s;
8072}
8073
8074std::ostream& operator<< (std::ostream& s, const VkImageCopy2& value)
8075{
8076	s << "VkImageCopy2 = {\n";
8077	s << "\tsType = " << value.sType << '\n';
8078	s << "\tpNext = " << value.pNext << '\n';
8079	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
8080	s << "\tsrcOffset = " << value.srcOffset << '\n';
8081	s << "\tdstSubresource = " << value.dstSubresource << '\n';
8082	s << "\tdstOffset = " << value.dstOffset << '\n';
8083	s << "\textent = " << value.extent << '\n';
8084	s << '}';
8085	return s;
8086}
8087
8088std::ostream& operator<< (std::ostream& s, const VkCopyImageInfo2& value)
8089{
8090	s << "VkCopyImageInfo2 = {\n";
8091	s << "\tsType = " << value.sType << '\n';
8092	s << "\tpNext = " << value.pNext << '\n';
8093	s << "\tsrcImage = " << value.srcImage << '\n';
8094	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
8095	s << "\tdstImage = " << value.dstImage << '\n';
8096	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
8097	s << "\tregionCount = " << value.regionCount << '\n';
8098	s << "\tpRegions = " << value.pRegions << '\n';
8099	s << '}';
8100	return s;
8101}
8102
8103std::ostream& operator<< (std::ostream& s, const VkBufferImageCopy2& value)
8104{
8105	s << "VkBufferImageCopy2 = {\n";
8106	s << "\tsType = " << value.sType << '\n';
8107	s << "\tpNext = " << value.pNext << '\n';
8108	s << "\tbufferOffset = " << value.bufferOffset << '\n';
8109	s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
8110	s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
8111	s << "\timageSubresource = " << value.imageSubresource << '\n';
8112	s << "\timageOffset = " << value.imageOffset << '\n';
8113	s << "\timageExtent = " << value.imageExtent << '\n';
8114	s << '}';
8115	return s;
8116}
8117
8118std::ostream& operator<< (std::ostream& s, const VkCopyBufferToImageInfo2& value)
8119{
8120	s << "VkCopyBufferToImageInfo2 = {\n";
8121	s << "\tsType = " << value.sType << '\n';
8122	s << "\tpNext = " << value.pNext << '\n';
8123	s << "\tsrcBuffer = " << value.srcBuffer << '\n';
8124	s << "\tdstImage = " << value.dstImage << '\n';
8125	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
8126	s << "\tregionCount = " << value.regionCount << '\n';
8127	s << "\tpRegions = " << value.pRegions << '\n';
8128	s << '}';
8129	return s;
8130}
8131
8132std::ostream& operator<< (std::ostream& s, const VkCopyImageToBufferInfo2& value)
8133{
8134	s << "VkCopyImageToBufferInfo2 = {\n";
8135	s << "\tsType = " << value.sType << '\n';
8136	s << "\tpNext = " << value.pNext << '\n';
8137	s << "\tsrcImage = " << value.srcImage << '\n';
8138	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
8139	s << "\tdstBuffer = " << value.dstBuffer << '\n';
8140	s << "\tregionCount = " << value.regionCount << '\n';
8141	s << "\tpRegions = " << value.pRegions << '\n';
8142	s << '}';
8143	return s;
8144}
8145
8146std::ostream& operator<< (std::ostream& s, const VkImageBlit2& value)
8147{
8148	s << "VkImageBlit2 = {\n";
8149	s << "\tsType = " << value.sType << '\n';
8150	s << "\tpNext = " << value.pNext << '\n';
8151	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
8152	s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
8153	s << "\tdstSubresource = " << value.dstSubresource << '\n';
8154	s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
8155	s << '}';
8156	return s;
8157}
8158
8159std::ostream& operator<< (std::ostream& s, const VkBlitImageInfo2& value)
8160{
8161	s << "VkBlitImageInfo2 = {\n";
8162	s << "\tsType = " << value.sType << '\n';
8163	s << "\tpNext = " << value.pNext << '\n';
8164	s << "\tsrcImage = " << value.srcImage << '\n';
8165	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
8166	s << "\tdstImage = " << value.dstImage << '\n';
8167	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
8168	s << "\tregionCount = " << value.regionCount << '\n';
8169	s << "\tpRegions = " << value.pRegions << '\n';
8170	s << "\tfilter = " << value.filter << '\n';
8171	s << '}';
8172	return s;
8173}
8174
8175std::ostream& operator<< (std::ostream& s, const VkImageResolve2& value)
8176{
8177	s << "VkImageResolve2 = {\n";
8178	s << "\tsType = " << value.sType << '\n';
8179	s << "\tpNext = " << value.pNext << '\n';
8180	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
8181	s << "\tsrcOffset = " << value.srcOffset << '\n';
8182	s << "\tdstSubresource = " << value.dstSubresource << '\n';
8183	s << "\tdstOffset = " << value.dstOffset << '\n';
8184	s << "\textent = " << value.extent << '\n';
8185	s << '}';
8186	return s;
8187}
8188
8189std::ostream& operator<< (std::ostream& s, const VkResolveImageInfo2& value)
8190{
8191	s << "VkResolveImageInfo2 = {\n";
8192	s << "\tsType = " << value.sType << '\n';
8193	s << "\tpNext = " << value.pNext << '\n';
8194	s << "\tsrcImage = " << value.srcImage << '\n';
8195	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
8196	s << "\tdstImage = " << value.dstImage << '\n';
8197	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
8198	s << "\tregionCount = " << value.regionCount << '\n';
8199	s << "\tpRegions = " << value.pRegions << '\n';
8200	s << '}';
8201	return s;
8202}
8203
8204std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlFeatures& value)
8205{
8206	s << "VkPhysicalDeviceSubgroupSizeControlFeatures = {\n";
8207	s << "\tsType = " << value.sType << '\n';
8208	s << "\tpNext = " << value.pNext << '\n';
8209	s << "\tsubgroupSizeControl = " << value.subgroupSizeControl << '\n';
8210	s << "\tcomputeFullSubgroups = " << value.computeFullSubgroups << '\n';
8211	s << '}';
8212	return s;
8213}
8214
8215std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlProperties& value)
8216{
8217	s << "VkPhysicalDeviceSubgroupSizeControlProperties = {\n";
8218	s << "\tsType = " << value.sType << '\n';
8219	s << "\tpNext = " << value.pNext << '\n';
8220	s << "\tminSubgroupSize = " << value.minSubgroupSize << '\n';
8221	s << "\tmaxSubgroupSize = " << value.maxSubgroupSize << '\n';
8222	s << "\tmaxComputeWorkgroupSubgroups = " << value.maxComputeWorkgroupSubgroups << '\n';
8223	s << "\trequiredSubgroupSizeStages = " << getShaderStageFlagsStr(value.requiredSubgroupSizeStages) << '\n';
8224	s << '}';
8225	return s;
8226}
8227
8228std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo& value)
8229{
8230	s << "VkPipelineShaderStageRequiredSubgroupSizeCreateInfo = {\n";
8231	s << "\tsType = " << value.sType << '\n';
8232	s << "\tpNext = " << value.pNext << '\n';
8233	s << "\trequiredSubgroupSize = " << value.requiredSubgroupSize << '\n';
8234	s << '}';
8235	return s;
8236}
8237
8238std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockFeatures& value)
8239{
8240	s << "VkPhysicalDeviceInlineUniformBlockFeatures = {\n";
8241	s << "\tsType = " << value.sType << '\n';
8242	s << "\tpNext = " << value.pNext << '\n';
8243	s << "\tinlineUniformBlock = " << value.inlineUniformBlock << '\n';
8244	s << "\tdescriptorBindingInlineUniformBlockUpdateAfterBind = " << value.descriptorBindingInlineUniformBlockUpdateAfterBind << '\n';
8245	s << '}';
8246	return s;
8247}
8248
8249std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockProperties& value)
8250{
8251	s << "VkPhysicalDeviceInlineUniformBlockProperties = {\n";
8252	s << "\tsType = " << value.sType << '\n';
8253	s << "\tpNext = " << value.pNext << '\n';
8254	s << "\tmaxInlineUniformBlockSize = " << value.maxInlineUniformBlockSize << '\n';
8255	s << "\tmaxPerStageDescriptorInlineUniformBlocks = " << value.maxPerStageDescriptorInlineUniformBlocks << '\n';
8256	s << "\tmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = " << value.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks << '\n';
8257	s << "\tmaxDescriptorSetInlineUniformBlocks = " << value.maxDescriptorSetInlineUniformBlocks << '\n';
8258	s << "\tmaxDescriptorSetUpdateAfterBindInlineUniformBlocks = " << value.maxDescriptorSetUpdateAfterBindInlineUniformBlocks << '\n';
8259	s << '}';
8260	return s;
8261}
8262
8263std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetInlineUniformBlock& value)
8264{
8265	s << "VkWriteDescriptorSetInlineUniformBlock = {\n";
8266	s << "\tsType = " << value.sType << '\n';
8267	s << "\tpNext = " << value.pNext << '\n';
8268	s << "\tdataSize = " << value.dataSize << '\n';
8269	s << "\tpData = " << value.pData << '\n';
8270	s << '}';
8271	return s;
8272}
8273
8274std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolInlineUniformBlockCreateInfo& value)
8275{
8276	s << "VkDescriptorPoolInlineUniformBlockCreateInfo = {\n";
8277	s << "\tsType = " << value.sType << '\n';
8278	s << "\tpNext = " << value.pNext << '\n';
8279	s << "\tmaxInlineUniformBlockBindings = " << value.maxInlineUniformBlockBindings << '\n';
8280	s << '}';
8281	return s;
8282}
8283
8284std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTextureCompressionASTCHDRFeatures& value)
8285{
8286	s << "VkPhysicalDeviceTextureCompressionASTCHDRFeatures = {\n";
8287	s << "\tsType = " << value.sType << '\n';
8288	s << "\tpNext = " << value.pNext << '\n';
8289	s << "\ttextureCompressionASTC_HDR = " << value.textureCompressionASTC_HDR << '\n';
8290	s << '}';
8291	return s;
8292}
8293
8294std::ostream& operator<< (std::ostream& s, const VkRenderingAttachmentInfo& value)
8295{
8296	s << "VkRenderingAttachmentInfo = {\n";
8297	s << "\tsType = " << value.sType << '\n';
8298	s << "\tpNext = " << value.pNext << '\n';
8299	s << "\timageView = " << value.imageView << '\n';
8300	s << "\timageLayout = " << value.imageLayout << '\n';
8301	s << "\tresolveMode = " << value.resolveMode << '\n';
8302	s << "\tresolveImageView = " << value.resolveImageView << '\n';
8303	s << "\tresolveImageLayout = " << value.resolveImageLayout << '\n';
8304	s << "\tloadOp = " << value.loadOp << '\n';
8305	s << "\tstoreOp = " << value.storeOp << '\n';
8306	s << "\tclearValue = " << value.clearValue << '\n';
8307	s << '}';
8308	return s;
8309}
8310
8311std::ostream& operator<< (std::ostream& s, const VkRenderingInfo& value)
8312{
8313	s << "VkRenderingInfo = {\n";
8314	s << "\tsType = " << value.sType << '\n';
8315	s << "\tpNext = " << value.pNext << '\n';
8316	s << "\tflags = " << getRenderingFlagsStr(value.flags) << '\n';
8317	s << "\trenderArea = " << value.renderArea << '\n';
8318	s << "\tlayerCount = " << value.layerCount << '\n';
8319	s << "\tviewMask = " << value.viewMask << '\n';
8320	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
8321	s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
8322	s << "\tpDepthAttachment = " << value.pDepthAttachment << '\n';
8323	s << "\tpStencilAttachment = " << value.pStencilAttachment << '\n';
8324	s << '}';
8325	return s;
8326}
8327
8328std::ostream& operator<< (std::ostream& s, const VkPipelineRenderingCreateInfo& value)
8329{
8330	s << "VkPipelineRenderingCreateInfo = {\n";
8331	s << "\tsType = " << value.sType << '\n';
8332	s << "\tpNext = " << value.pNext << '\n';
8333	s << "\tviewMask = " << value.viewMask << '\n';
8334	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
8335	s << "\tpColorAttachmentFormats = " << value.pColorAttachmentFormats << '\n';
8336	s << "\tdepthAttachmentFormat = " << value.depthAttachmentFormat << '\n';
8337	s << "\tstencilAttachmentFormat = " << value.stencilAttachmentFormat << '\n';
8338	s << '}';
8339	return s;
8340}
8341
8342std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDynamicRenderingFeatures& value)
8343{
8344	s << "VkPhysicalDeviceDynamicRenderingFeatures = {\n";
8345	s << "\tsType = " << value.sType << '\n';
8346	s << "\tpNext = " << value.pNext << '\n';
8347	s << "\tdynamicRendering = " << value.dynamicRendering << '\n';
8348	s << '}';
8349	return s;
8350}
8351
8352std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceRenderingInfo& value)
8353{
8354	s << "VkCommandBufferInheritanceRenderingInfo = {\n";
8355	s << "\tsType = " << value.sType << '\n';
8356	s << "\tpNext = " << value.pNext << '\n';
8357	s << "\tflags = " << getRenderingFlagsStr(value.flags) << '\n';
8358	s << "\tviewMask = " << value.viewMask << '\n';
8359	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
8360	s << "\tpColorAttachmentFormats = " << value.pColorAttachmentFormats << '\n';
8361	s << "\tdepthAttachmentFormat = " << value.depthAttachmentFormat << '\n';
8362	s << "\tstencilAttachmentFormat = " << value.stencilAttachmentFormat << '\n';
8363	s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
8364	s << '}';
8365	return s;
8366}
8367
8368std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductFeatures& value)
8369{
8370	s << "VkPhysicalDeviceShaderIntegerDotProductFeatures = {\n";
8371	s << "\tsType = " << value.sType << '\n';
8372	s << "\tpNext = " << value.pNext << '\n';
8373	s << "\tshaderIntegerDotProduct = " << value.shaderIntegerDotProduct << '\n';
8374	s << '}';
8375	return s;
8376}
8377
8378std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductProperties& value)
8379{
8380	s << "VkPhysicalDeviceShaderIntegerDotProductProperties = {\n";
8381	s << "\tsType = " << value.sType << '\n';
8382	s << "\tpNext = " << value.pNext << '\n';
8383	s << "\tintegerDotProduct8BitUnsignedAccelerated = " << value.integerDotProduct8BitUnsignedAccelerated << '\n';
8384	s << "\tintegerDotProduct8BitSignedAccelerated = " << value.integerDotProduct8BitSignedAccelerated << '\n';
8385	s << "\tintegerDotProduct8BitMixedSignednessAccelerated = " << value.integerDotProduct8BitMixedSignednessAccelerated << '\n';
8386	s << "\tintegerDotProduct4x8BitPackedUnsignedAccelerated = " << value.integerDotProduct4x8BitPackedUnsignedAccelerated << '\n';
8387	s << "\tintegerDotProduct4x8BitPackedSignedAccelerated = " << value.integerDotProduct4x8BitPackedSignedAccelerated << '\n';
8388	s << "\tintegerDotProduct4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProduct4x8BitPackedMixedSignednessAccelerated << '\n';
8389	s << "\tintegerDotProduct16BitUnsignedAccelerated = " << value.integerDotProduct16BitUnsignedAccelerated << '\n';
8390	s << "\tintegerDotProduct16BitSignedAccelerated = " << value.integerDotProduct16BitSignedAccelerated << '\n';
8391	s << "\tintegerDotProduct16BitMixedSignednessAccelerated = " << value.integerDotProduct16BitMixedSignednessAccelerated << '\n';
8392	s << "\tintegerDotProduct32BitUnsignedAccelerated = " << value.integerDotProduct32BitUnsignedAccelerated << '\n';
8393	s << "\tintegerDotProduct32BitSignedAccelerated = " << value.integerDotProduct32BitSignedAccelerated << '\n';
8394	s << "\tintegerDotProduct32BitMixedSignednessAccelerated = " << value.integerDotProduct32BitMixedSignednessAccelerated << '\n';
8395	s << "\tintegerDotProduct64BitUnsignedAccelerated = " << value.integerDotProduct64BitUnsignedAccelerated << '\n';
8396	s << "\tintegerDotProduct64BitSignedAccelerated = " << value.integerDotProduct64BitSignedAccelerated << '\n';
8397	s << "\tintegerDotProduct64BitMixedSignednessAccelerated = " << value.integerDotProduct64BitMixedSignednessAccelerated << '\n';
8398	s << "\tintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated << '\n';
8399	s << "\tintegerDotProductAccumulatingSaturating8BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitSignedAccelerated << '\n';
8400	s << "\tintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated << '\n';
8401	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated << '\n';
8402	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated << '\n';
8403	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated << '\n';
8404	s << "\tintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated << '\n';
8405	s << "\tintegerDotProductAccumulatingSaturating16BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitSignedAccelerated << '\n';
8406	s << "\tintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated << '\n';
8407	s << "\tintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated << '\n';
8408	s << "\tintegerDotProductAccumulatingSaturating32BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitSignedAccelerated << '\n';
8409	s << "\tintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated << '\n';
8410	s << "\tintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated << '\n';
8411	s << "\tintegerDotProductAccumulatingSaturating64BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitSignedAccelerated << '\n';
8412	s << "\tintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated << '\n';
8413	s << '}';
8414	return s;
8415}
8416
8417std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentProperties& value)
8418{
8419	s << "VkPhysicalDeviceTexelBufferAlignmentProperties = {\n";
8420	s << "\tsType = " << value.sType << '\n';
8421	s << "\tpNext = " << value.pNext << '\n';
8422	s << "\tstorageTexelBufferOffsetAlignmentBytes = " << value.storageTexelBufferOffsetAlignmentBytes << '\n';
8423	s << "\tstorageTexelBufferOffsetSingleTexelAlignment = " << value.storageTexelBufferOffsetSingleTexelAlignment << '\n';
8424	s << "\tuniformTexelBufferOffsetAlignmentBytes = " << value.uniformTexelBufferOffsetAlignmentBytes << '\n';
8425	s << "\tuniformTexelBufferOffsetSingleTexelAlignment = " << value.uniformTexelBufferOffsetSingleTexelAlignment << '\n';
8426	s << '}';
8427	return s;
8428}
8429
8430std::ostream& operator<< (std::ostream& s, const VkFormatProperties3& value)
8431{
8432	s << "VkFormatProperties3 = {\n";
8433	s << "\tsType = " << value.sType << '\n';
8434	s << "\tpNext = " << value.pNext << '\n';
8435	s << "\tlinearTilingFeatures = " << value.linearTilingFeatures << '\n';
8436	s << "\toptimalTilingFeatures = " << value.optimalTilingFeatures << '\n';
8437	s << "\tbufferFeatures = " << value.bufferFeatures << '\n';
8438	s << '}';
8439	return s;
8440}
8441
8442std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance4Features& value)
8443{
8444	s << "VkPhysicalDeviceMaintenance4Features = {\n";
8445	s << "\tsType = " << value.sType << '\n';
8446	s << "\tpNext = " << value.pNext << '\n';
8447	s << "\tmaintenance4 = " << value.maintenance4 << '\n';
8448	s << '}';
8449	return s;
8450}
8451
8452std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance4Properties& value)
8453{
8454	s << "VkPhysicalDeviceMaintenance4Properties = {\n";
8455	s << "\tsType = " << value.sType << '\n';
8456	s << "\tpNext = " << value.pNext << '\n';
8457	s << "\tmaxBufferSize = " << value.maxBufferSize << '\n';
8458	s << '}';
8459	return s;
8460}
8461
8462std::ostream& operator<< (std::ostream& s, const VkDeviceBufferMemoryRequirements& value)
8463{
8464	s << "VkDeviceBufferMemoryRequirements = {\n";
8465	s << "\tsType = " << value.sType << '\n';
8466	s << "\tpNext = " << value.pNext << '\n';
8467	s << "\tpCreateInfo = " << value.pCreateInfo << '\n';
8468	s << '}';
8469	return s;
8470}
8471
8472std::ostream& operator<< (std::ostream& s, const VkDeviceImageMemoryRequirements& value)
8473{
8474	s << "VkDeviceImageMemoryRequirements = {\n";
8475	s << "\tsType = " << value.sType << '\n';
8476	s << "\tpNext = " << value.pNext << '\n';
8477	s << "\tpCreateInfo = " << value.pCreateInfo << '\n';
8478	s << "\tplaneAspect = " << value.planeAspect << '\n';
8479	s << '}';
8480	return s;
8481}
8482
8483std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesKHR& value)
8484{
8485	s << "VkSurfaceCapabilitiesKHR = {\n";
8486	s << "\tminImageCount = " << value.minImageCount << '\n';
8487	s << "\tmaxImageCount = " << value.maxImageCount << '\n';
8488	s << "\tcurrentExtent = " << value.currentExtent << '\n';
8489	s << "\tminImageExtent = " << value.minImageExtent << '\n';
8490	s << "\tmaxImageExtent = " << value.maxImageExtent << '\n';
8491	s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
8492	s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
8493	s << "\tcurrentTransform = " << value.currentTransform << '\n';
8494	s << "\tsupportedCompositeAlpha = " << getCompositeAlphaFlagsKHRStr(value.supportedCompositeAlpha) << '\n';
8495	s << "\tsupportedUsageFlags = " << getImageUsageFlagsStr(value.supportedUsageFlags) << '\n';
8496	s << '}';
8497	return s;
8498}
8499
8500std::ostream& operator<< (std::ostream& s, const VkSurfaceFormatKHR& value)
8501{
8502	s << "VkSurfaceFormatKHR = {\n";
8503	s << "\tformat = " << value.format << '\n';
8504	s << "\tcolorSpace = " << value.colorSpace << '\n';
8505	s << '}';
8506	return s;
8507}
8508
8509std::ostream& operator<< (std::ostream& s, const VkSwapchainCreateInfoKHR& value)
8510{
8511	s << "VkSwapchainCreateInfoKHR = {\n";
8512	s << "\tsType = " << value.sType << '\n';
8513	s << "\tpNext = " << value.pNext << '\n';
8514	s << "\tflags = " << getSwapchainCreateFlagsKHRStr(value.flags) << '\n';
8515	s << "\tsurface = " << value.surface << '\n';
8516	s << "\tminImageCount = " << value.minImageCount << '\n';
8517	s << "\timageFormat = " << value.imageFormat << '\n';
8518	s << "\timageColorSpace = " << value.imageColorSpace << '\n';
8519	s << "\timageExtent = " << value.imageExtent << '\n';
8520	s << "\timageArrayLayers = " << value.imageArrayLayers << '\n';
8521	s << "\timageUsage = " << getImageUsageFlagsStr(value.imageUsage) << '\n';
8522	s << "\timageSharingMode = " << value.imageSharingMode << '\n';
8523	s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
8524	s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
8525	s << "\tpreTransform = " << value.preTransform << '\n';
8526	s << "\tcompositeAlpha = " << value.compositeAlpha << '\n';
8527	s << "\tpresentMode = " << value.presentMode << '\n';
8528	s << "\tclipped = " << value.clipped << '\n';
8529	s << "\toldSwapchain = " << value.oldSwapchain << '\n';
8530	s << '}';
8531	return s;
8532}
8533
8534std::ostream& operator<< (std::ostream& s, const VkPresentInfoKHR& value)
8535{
8536	s << "VkPresentInfoKHR = {\n";
8537	s << "\tsType = " << value.sType << '\n';
8538	s << "\tpNext = " << value.pNext << '\n';
8539	s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
8540	s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
8541	s << "\tswapchainCount = " << value.swapchainCount << '\n';
8542	s << "\tpSwapchains = " << value.pSwapchains << '\n';
8543	s << "\tpImageIndices = " << value.pImageIndices << '\n';
8544	s << "\tpResults = " << value.pResults << '\n';
8545	s << '}';
8546	return s;
8547}
8548
8549std::ostream& operator<< (std::ostream& s, const VkImageSwapchainCreateInfoKHR& value)
8550{
8551	s << "VkImageSwapchainCreateInfoKHR = {\n";
8552	s << "\tsType = " << value.sType << '\n';
8553	s << "\tpNext = " << value.pNext << '\n';
8554	s << "\tswapchain = " << value.swapchain << '\n';
8555	s << '}';
8556	return s;
8557}
8558
8559std::ostream& operator<< (std::ostream& s, const VkBindImageMemorySwapchainInfoKHR& value)
8560{
8561	s << "VkBindImageMemorySwapchainInfoKHR = {\n";
8562	s << "\tsType = " << value.sType << '\n';
8563	s << "\tpNext = " << value.pNext << '\n';
8564	s << "\tswapchain = " << value.swapchain << '\n';
8565	s << "\timageIndex = " << value.imageIndex << '\n';
8566	s << '}';
8567	return s;
8568}
8569
8570std::ostream& operator<< (std::ostream& s, const VkAcquireNextImageInfoKHR& value)
8571{
8572	s << "VkAcquireNextImageInfoKHR = {\n";
8573	s << "\tsType = " << value.sType << '\n';
8574	s << "\tpNext = " << value.pNext << '\n';
8575	s << "\tswapchain = " << value.swapchain << '\n';
8576	s << "\ttimeout = " << value.timeout << '\n';
8577	s << "\tsemaphore = " << value.semaphore << '\n';
8578	s << "\tfence = " << value.fence << '\n';
8579	s << "\tdeviceMask = " << value.deviceMask << '\n';
8580	s << '}';
8581	return s;
8582}
8583
8584std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentCapabilitiesKHR& value)
8585{
8586	s << "VkDeviceGroupPresentCapabilitiesKHR = {\n";
8587	s << "\tsType = " << value.sType << '\n';
8588	s << "\tpNext = " << value.pNext << '\n';
8589	s << "\tpresentMask = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.presentMask), DE_ARRAY_END(value.presentMask)) << '\n';
8590	s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHRStr(value.modes) << '\n';
8591	s << '}';
8592	return s;
8593}
8594
8595std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentInfoKHR& value)
8596{
8597	s << "VkDeviceGroupPresentInfoKHR = {\n";
8598	s << "\tsType = " << value.sType << '\n';
8599	s << "\tpNext = " << value.pNext << '\n';
8600	s << "\tswapchainCount = " << value.swapchainCount << '\n';
8601	s << "\tpDeviceMasks = " << value.pDeviceMasks << '\n';
8602	s << "\tmode = " << value.mode << '\n';
8603	s << '}';
8604	return s;
8605}
8606
8607std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSwapchainCreateInfoKHR& value)
8608{
8609	s << "VkDeviceGroupSwapchainCreateInfoKHR = {\n";
8610	s << "\tsType = " << value.sType << '\n';
8611	s << "\tpNext = " << value.pNext << '\n';
8612	s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHRStr(value.modes) << '\n';
8613	s << '}';
8614	return s;
8615}
8616
8617std::ostream& operator<< (std::ostream& s, const VkDisplayModeParametersKHR& value)
8618{
8619	s << "VkDisplayModeParametersKHR = {\n";
8620	s << "\tvisibleRegion = " << value.visibleRegion << '\n';
8621	s << "\trefreshRate = " << value.refreshRate << '\n';
8622	s << '}';
8623	return s;
8624}
8625
8626std::ostream& operator<< (std::ostream& s, const VkDisplayModeCreateInfoKHR& value)
8627{
8628	s << "VkDisplayModeCreateInfoKHR = {\n";
8629	s << "\tsType = " << value.sType << '\n';
8630	s << "\tpNext = " << value.pNext << '\n';
8631	s << "\tflags = " << getDisplayModeCreateFlagsKHRStr(value.flags) << '\n';
8632	s << "\tparameters = " << value.parameters << '\n';
8633	s << '}';
8634	return s;
8635}
8636
8637std::ostream& operator<< (std::ostream& s, const VkDisplayModePropertiesKHR& value)
8638{
8639	s << "VkDisplayModePropertiesKHR = {\n";
8640	s << "\tdisplayMode = " << value.displayMode << '\n';
8641	s << "\tparameters = " << value.parameters << '\n';
8642	s << '}';
8643	return s;
8644}
8645
8646std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilitiesKHR& value)
8647{
8648	s << "VkDisplayPlaneCapabilitiesKHR = {\n";
8649	s << "\tsupportedAlpha = " << getDisplayPlaneAlphaFlagsKHRStr(value.supportedAlpha) << '\n';
8650	s << "\tminSrcPosition = " << value.minSrcPosition << '\n';
8651	s << "\tmaxSrcPosition = " << value.maxSrcPosition << '\n';
8652	s << "\tminSrcExtent = " << value.minSrcExtent << '\n';
8653	s << "\tmaxSrcExtent = " << value.maxSrcExtent << '\n';
8654	s << "\tminDstPosition = " << value.minDstPosition << '\n';
8655	s << "\tmaxDstPosition = " << value.maxDstPosition << '\n';
8656	s << "\tminDstExtent = " << value.minDstExtent << '\n';
8657	s << "\tmaxDstExtent = " << value.maxDstExtent << '\n';
8658	s << '}';
8659	return s;
8660}
8661
8662std::ostream& operator<< (std::ostream& s, const VkDisplayPlanePropertiesKHR& value)
8663{
8664	s << "VkDisplayPlanePropertiesKHR = {\n";
8665	s << "\tcurrentDisplay = " << value.currentDisplay << '\n';
8666	s << "\tcurrentStackIndex = " << value.currentStackIndex << '\n';
8667	s << '}';
8668	return s;
8669}
8670
8671std::ostream& operator<< (std::ostream& s, const VkDisplayPropertiesKHR& value)
8672{
8673	s << "VkDisplayPropertiesKHR = {\n";
8674	s << "\tdisplay = " << value.display << '\n';
8675	s << "\tdisplayName = " << getCharPtrStr(value.displayName) << '\n';
8676	s << "\tphysicalDimensions = " << value.physicalDimensions << '\n';
8677	s << "\tphysicalResolution = " << value.physicalResolution << '\n';
8678	s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
8679	s << "\tplaneReorderPossible = " << value.planeReorderPossible << '\n';
8680	s << "\tpersistentContent = " << value.persistentContent << '\n';
8681	s << '}';
8682	return s;
8683}
8684
8685std::ostream& operator<< (std::ostream& s, const VkDisplaySurfaceCreateInfoKHR& value)
8686{
8687	s << "VkDisplaySurfaceCreateInfoKHR = {\n";
8688	s << "\tsType = " << value.sType << '\n';
8689	s << "\tpNext = " << value.pNext << '\n';
8690	s << "\tflags = " << getDisplaySurfaceCreateFlagsKHRStr(value.flags) << '\n';
8691	s << "\tdisplayMode = " << value.displayMode << '\n';
8692	s << "\tplaneIndex = " << value.planeIndex << '\n';
8693	s << "\tplaneStackIndex = " << value.planeStackIndex << '\n';
8694	s << "\ttransform = " << value.transform << '\n';
8695	s << "\tglobalAlpha = " << value.globalAlpha << '\n';
8696	s << "\talphaMode = " << value.alphaMode << '\n';
8697	s << "\timageExtent = " << value.imageExtent << '\n';
8698	s << '}';
8699	return s;
8700}
8701
8702std::ostream& operator<< (std::ostream& s, const VkDisplayPresentInfoKHR& value)
8703{
8704	s << "VkDisplayPresentInfoKHR = {\n";
8705	s << "\tsType = " << value.sType << '\n';
8706	s << "\tpNext = " << value.pNext << '\n';
8707	s << "\tsrcRect = " << value.srcRect << '\n';
8708	s << "\tdstRect = " << value.dstRect << '\n';
8709	s << "\tpersistent = " << value.persistent << '\n';
8710	s << '}';
8711	return s;
8712}
8713
8714std::ostream& operator<< (std::ostream& s, const VkRenderingFragmentShadingRateAttachmentInfoKHR& value)
8715{
8716	s << "VkRenderingFragmentShadingRateAttachmentInfoKHR = {\n";
8717	s << "\tsType = " << value.sType << '\n';
8718	s << "\tpNext = " << value.pNext << '\n';
8719	s << "\timageView = " << value.imageView << '\n';
8720	s << "\timageLayout = " << value.imageLayout << '\n';
8721	s << "\tshadingRateAttachmentTexelSize = " << value.shadingRateAttachmentTexelSize << '\n';
8722	s << '}';
8723	return s;
8724}
8725
8726std::ostream& operator<< (std::ostream& s, const VkRenderingFragmentDensityMapAttachmentInfoEXT& value)
8727{
8728	s << "VkRenderingFragmentDensityMapAttachmentInfoEXT = {\n";
8729	s << "\tsType = " << value.sType << '\n';
8730	s << "\tpNext = " << value.pNext << '\n';
8731	s << "\timageView = " << value.imageView << '\n';
8732	s << "\timageLayout = " << value.imageLayout << '\n';
8733	s << '}';
8734	return s;
8735}
8736
8737std::ostream& operator<< (std::ostream& s, const VkAttachmentSampleCountInfoAMD& value)
8738{
8739	s << "VkAttachmentSampleCountInfoAMD = {\n";
8740	s << "\tsType = " << value.sType << '\n';
8741	s << "\tpNext = " << value.pNext << '\n';
8742	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
8743	s << "\tpColorAttachmentSamples = " << value.pColorAttachmentSamples << '\n';
8744	s << "\tdepthStencilAttachmentSamples = " << value.depthStencilAttachmentSamples << '\n';
8745	s << '}';
8746	return s;
8747}
8748
8749std::ostream& operator<< (std::ostream& s, const VkMultiviewPerViewAttributesInfoNVX& value)
8750{
8751	s << "VkMultiviewPerViewAttributesInfoNVX = {\n";
8752	s << "\tsType = " << value.sType << '\n';
8753	s << "\tpNext = " << value.pNext << '\n';
8754	s << "\tperViewAttributes = " << value.perViewAttributes << '\n';
8755	s << "\tperViewAttributesPositionXOnly = " << value.perViewAttributesPositionXOnly << '\n';
8756	s << '}';
8757	return s;
8758}
8759
8760std::ostream& operator<< (std::ostream& s, const VkImportMemoryFdInfoKHR& value)
8761{
8762	s << "VkImportMemoryFdInfoKHR = {\n";
8763	s << "\tsType = " << value.sType << '\n';
8764	s << "\tpNext = " << value.pNext << '\n';
8765	s << "\thandleType = " << value.handleType << '\n';
8766	s << "\tfd = " << value.fd << '\n';
8767	s << '}';
8768	return s;
8769}
8770
8771std::ostream& operator<< (std::ostream& s, const VkMemoryFdPropertiesKHR& value)
8772{
8773	s << "VkMemoryFdPropertiesKHR = {\n";
8774	s << "\tsType = " << value.sType << '\n';
8775	s << "\tpNext = " << value.pNext << '\n';
8776	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
8777	s << '}';
8778	return s;
8779}
8780
8781std::ostream& operator<< (std::ostream& s, const VkMemoryGetFdInfoKHR& value)
8782{
8783	s << "VkMemoryGetFdInfoKHR = {\n";
8784	s << "\tsType = " << value.sType << '\n';
8785	s << "\tpNext = " << value.pNext << '\n';
8786	s << "\tmemory = " << value.memory << '\n';
8787	s << "\thandleType = " << value.handleType << '\n';
8788	s << '}';
8789	return s;
8790}
8791
8792std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreFdInfoKHR& value)
8793{
8794	s << "VkImportSemaphoreFdInfoKHR = {\n";
8795	s << "\tsType = " << value.sType << '\n';
8796	s << "\tpNext = " << value.pNext << '\n';
8797	s << "\tsemaphore = " << value.semaphore << '\n';
8798	s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
8799	s << "\thandleType = " << value.handleType << '\n';
8800	s << "\tfd = " << value.fd << '\n';
8801	s << '}';
8802	return s;
8803}
8804
8805std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetFdInfoKHR& value)
8806{
8807	s << "VkSemaphoreGetFdInfoKHR = {\n";
8808	s << "\tsType = " << value.sType << '\n';
8809	s << "\tpNext = " << value.pNext << '\n';
8810	s << "\tsemaphore = " << value.semaphore << '\n';
8811	s << "\thandleType = " << value.handleType << '\n';
8812	s << '}';
8813	return s;
8814}
8815
8816std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePushDescriptorPropertiesKHR& value)
8817{
8818	s << "VkPhysicalDevicePushDescriptorPropertiesKHR = {\n";
8819	s << "\tsType = " << value.sType << '\n';
8820	s << "\tpNext = " << value.pNext << '\n';
8821	s << "\tmaxPushDescriptors = " << value.maxPushDescriptors << '\n';
8822	s << '}';
8823	return s;
8824}
8825
8826std::ostream& operator<< (std::ostream& s, const VkRectLayerKHR& value)
8827{
8828	s << "VkRectLayerKHR = {\n";
8829	s << "\toffset = " << value.offset << '\n';
8830	s << "\textent = " << value.extent << '\n';
8831	s << "\tlayer = " << value.layer << '\n';
8832	s << '}';
8833	return s;
8834}
8835
8836std::ostream& operator<< (std::ostream& s, const VkPresentRegionKHR& value)
8837{
8838	s << "VkPresentRegionKHR = {\n";
8839	s << "\trectangleCount = " << value.rectangleCount << '\n';
8840	s << "\tpRectangles = " << value.pRectangles << '\n';
8841	s << '}';
8842	return s;
8843}
8844
8845std::ostream& operator<< (std::ostream& s, const VkPresentRegionsKHR& value)
8846{
8847	s << "VkPresentRegionsKHR = {\n";
8848	s << "\tsType = " << value.sType << '\n';
8849	s << "\tpNext = " << value.pNext << '\n';
8850	s << "\tswapchainCount = " << value.swapchainCount << '\n';
8851	s << "\tpRegions = " << value.pRegions << '\n';
8852	s << '}';
8853	return s;
8854}
8855
8856std::ostream& operator<< (std::ostream& s, const VkSharedPresentSurfaceCapabilitiesKHR& value)
8857{
8858	s << "VkSharedPresentSurfaceCapabilitiesKHR = {\n";
8859	s << "\tsType = " << value.sType << '\n';
8860	s << "\tpNext = " << value.pNext << '\n';
8861	s << "\tsharedPresentSupportedUsageFlags = " << getImageUsageFlagsStr(value.sharedPresentSupportedUsageFlags) << '\n';
8862	s << '}';
8863	return s;
8864}
8865
8866std::ostream& operator<< (std::ostream& s, const VkImportFenceFdInfoKHR& value)
8867{
8868	s << "VkImportFenceFdInfoKHR = {\n";
8869	s << "\tsType = " << value.sType << '\n';
8870	s << "\tpNext = " << value.pNext << '\n';
8871	s << "\tfence = " << value.fence << '\n';
8872	s << "\tflags = " << getFenceImportFlagsStr(value.flags) << '\n';
8873	s << "\thandleType = " << value.handleType << '\n';
8874	s << "\tfd = " << value.fd << '\n';
8875	s << '}';
8876	return s;
8877}
8878
8879std::ostream& operator<< (std::ostream& s, const VkFenceGetFdInfoKHR& value)
8880{
8881	s << "VkFenceGetFdInfoKHR = {\n";
8882	s << "\tsType = " << value.sType << '\n';
8883	s << "\tpNext = " << value.pNext << '\n';
8884	s << "\tfence = " << value.fence << '\n';
8885	s << "\thandleType = " << value.handleType << '\n';
8886	s << '}';
8887	return s;
8888}
8889
8890std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceQueryFeaturesKHR& value)
8891{
8892	s << "VkPhysicalDevicePerformanceQueryFeaturesKHR = {\n";
8893	s << "\tsType = " << value.sType << '\n';
8894	s << "\tpNext = " << value.pNext << '\n';
8895	s << "\tperformanceCounterQueryPools = " << value.performanceCounterQueryPools << '\n';
8896	s << "\tperformanceCounterMultipleQueryPools = " << value.performanceCounterMultipleQueryPools << '\n';
8897	s << '}';
8898	return s;
8899}
8900
8901std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceQueryPropertiesKHR& value)
8902{
8903	s << "VkPhysicalDevicePerformanceQueryPropertiesKHR = {\n";
8904	s << "\tsType = " << value.sType << '\n';
8905	s << "\tpNext = " << value.pNext << '\n';
8906	s << "\tallowCommandBufferQueryCopies = " << value.allowCommandBufferQueryCopies << '\n';
8907	s << '}';
8908	return s;
8909}
8910
8911std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterKHR& value)
8912{
8913	s << "VkPerformanceCounterKHR = {\n";
8914	s << "\tsType = " << value.sType << '\n';
8915	s << "\tpNext = " << value.pNext << '\n';
8916	s << "\tunit = " << value.unit << '\n';
8917	s << "\tscope = " << value.scope << '\n';
8918	s << "\tstorage = " << value.storage << '\n';
8919	s << "\tuuid = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.uuid)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.uuid))) << '\n';
8920	s << '}';
8921	return s;
8922}
8923
8924std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterDescriptionKHR& value)
8925{
8926	s << "VkPerformanceCounterDescriptionKHR = {\n";
8927	s << "\tsType = " << value.sType << '\n';
8928	s << "\tpNext = " << value.pNext << '\n';
8929	s << "\tflags = " << getPerformanceCounterDescriptionFlagsKHRStr(value.flags) << '\n';
8930	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
8931	s << "\tcategory = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.category)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.category))) << '\n';
8932	s << "\tdescription = " << (const char*)value.description << '\n';
8933	s << '}';
8934	return s;
8935}
8936
8937std::ostream& operator<< (std::ostream& s, const VkQueryPoolPerformanceCreateInfoKHR& value)
8938{
8939	s << "VkQueryPoolPerformanceCreateInfoKHR = {\n";
8940	s << "\tsType = " << value.sType << '\n';
8941	s << "\tpNext = " << value.pNext << '\n';
8942	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
8943	s << "\tcounterIndexCount = " << value.counterIndexCount << '\n';
8944	s << "\tpCounterIndices = " << value.pCounterIndices << '\n';
8945	s << '}';
8946	return s;
8947}
8948
8949std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterResultKHR& value)
8950{
8951	s << "VkPerformanceCounterResultKHR = {\n";
8952	s << "\tint32 = " << value.int32 << '\n';
8953	s << "\tint64 = " << value.int64 << '\n';
8954	s << "\tuint32 = " << value.uint32 << '\n';
8955	s << "\tuint64 = " << value.uint64 << '\n';
8956	s << "\tfloat32 = " << value.float32 << '\n';
8957	s << "\tfloat64 = " << value.float64 << '\n';
8958	s << '}';
8959	return s;
8960}
8961
8962std::ostream& operator<< (std::ostream& s, const VkAcquireProfilingLockInfoKHR& value)
8963{
8964	s << "VkAcquireProfilingLockInfoKHR = {\n";
8965	s << "\tsType = " << value.sType << '\n';
8966	s << "\tpNext = " << value.pNext << '\n';
8967	s << "\tflags = " << getAcquireProfilingLockFlagsKHRStr(value.flags) << '\n';
8968	s << "\ttimeout = " << value.timeout << '\n';
8969	s << '}';
8970	return s;
8971}
8972
8973std::ostream& operator<< (std::ostream& s, const VkPerformanceQuerySubmitInfoKHR& value)
8974{
8975	s << "VkPerformanceQuerySubmitInfoKHR = {\n";
8976	s << "\tsType = " << value.sType << '\n';
8977	s << "\tpNext = " << value.pNext << '\n';
8978	s << "\tcounterPassIndex = " << value.counterPassIndex << '\n';
8979	s << '}';
8980	return s;
8981}
8982
8983std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSurfaceInfo2KHR& value)
8984{
8985	s << "VkPhysicalDeviceSurfaceInfo2KHR = {\n";
8986	s << "\tsType = " << value.sType << '\n';
8987	s << "\tpNext = " << value.pNext << '\n';
8988	s << "\tsurface = " << value.surface << '\n';
8989	s << '}';
8990	return s;
8991}
8992
8993std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2KHR& value)
8994{
8995	s << "VkSurfaceCapabilities2KHR = {\n";
8996	s << "\tsType = " << value.sType << '\n';
8997	s << "\tpNext = " << value.pNext << '\n';
8998	s << "\tsurfaceCapabilities = " << value.surfaceCapabilities << '\n';
8999	s << '}';
9000	return s;
9001}
9002
9003std::ostream& operator<< (std::ostream& s, const VkSurfaceFormat2KHR& value)
9004{
9005	s << "VkSurfaceFormat2KHR = {\n";
9006	s << "\tsType = " << value.sType << '\n';
9007	s << "\tpNext = " << value.pNext << '\n';
9008	s << "\tsurfaceFormat = " << value.surfaceFormat << '\n';
9009	s << '}';
9010	return s;
9011}
9012
9013std::ostream& operator<< (std::ostream& s, const VkDisplayProperties2KHR& value)
9014{
9015	s << "VkDisplayProperties2KHR = {\n";
9016	s << "\tsType = " << value.sType << '\n';
9017	s << "\tpNext = " << value.pNext << '\n';
9018	s << "\tdisplayProperties = " << value.displayProperties << '\n';
9019	s << '}';
9020	return s;
9021}
9022
9023std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneProperties2KHR& value)
9024{
9025	s << "VkDisplayPlaneProperties2KHR = {\n";
9026	s << "\tsType = " << value.sType << '\n';
9027	s << "\tpNext = " << value.pNext << '\n';
9028	s << "\tdisplayPlaneProperties = " << value.displayPlaneProperties << '\n';
9029	s << '}';
9030	return s;
9031}
9032
9033std::ostream& operator<< (std::ostream& s, const VkDisplayModeProperties2KHR& value)
9034{
9035	s << "VkDisplayModeProperties2KHR = {\n";
9036	s << "\tsType = " << value.sType << '\n';
9037	s << "\tpNext = " << value.pNext << '\n';
9038	s << "\tdisplayModeProperties = " << value.displayModeProperties << '\n';
9039	s << '}';
9040	return s;
9041}
9042
9043std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneInfo2KHR& value)
9044{
9045	s << "VkDisplayPlaneInfo2KHR = {\n";
9046	s << "\tsType = " << value.sType << '\n';
9047	s << "\tpNext = " << value.pNext << '\n';
9048	s << "\tmode = " << value.mode << '\n';
9049	s << "\tplaneIndex = " << value.planeIndex << '\n';
9050	s << '}';
9051	return s;
9052}
9053
9054std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilities2KHR& value)
9055{
9056	s << "VkDisplayPlaneCapabilities2KHR = {\n";
9057	s << "\tsType = " << value.sType << '\n';
9058	s << "\tpNext = " << value.pNext << '\n';
9059	s << "\tcapabilities = " << value.capabilities << '\n';
9060	s << '}';
9061	return s;
9062}
9063
9064std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderClockFeaturesKHR& value)
9065{
9066	s << "VkPhysicalDeviceShaderClockFeaturesKHR = {\n";
9067	s << "\tsType = " << value.sType << '\n';
9068	s << "\tpNext = " << value.pNext << '\n';
9069	s << "\tshaderSubgroupClock = " << value.shaderSubgroupClock << '\n';
9070	s << "\tshaderDeviceClock = " << value.shaderDeviceClock << '\n';
9071	s << '}';
9072	return s;
9073}
9074
9075std::ostream& operator<< (std::ostream& s, const VkDeviceQueueGlobalPriorityCreateInfoKHR& value)
9076{
9077	s << "VkDeviceQueueGlobalPriorityCreateInfoKHR = {\n";
9078	s << "\tsType = " << value.sType << '\n';
9079	s << "\tpNext = " << value.pNext << '\n';
9080	s << "\tglobalPriority = " << value.globalPriority << '\n';
9081	s << '}';
9082	return s;
9083}
9084
9085std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR& value)
9086{
9087	s << "VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR = {\n";
9088	s << "\tsType = " << value.sType << '\n';
9089	s << "\tpNext = " << value.pNext << '\n';
9090	s << "\tglobalPriorityQuery = " << value.globalPriorityQuery << '\n';
9091	s << '}';
9092	return s;
9093}
9094
9095std::ostream& operator<< (std::ostream& s, const VkQueueFamilyGlobalPriorityPropertiesKHR& value)
9096{
9097	s << "VkQueueFamilyGlobalPriorityPropertiesKHR = {\n";
9098	s << "\tsType = " << value.sType << '\n';
9099	s << "\tpNext = " << value.pNext << '\n';
9100	s << "\tpriorityCount = " << value.priorityCount << '\n';
9101	s << "\tpriorities = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.priorities), DE_ARRAY_END(value.priorities)) << '\n';
9102	s << '}';
9103	return s;
9104}
9105
9106std::ostream& operator<< (std::ostream& s, const VkFragmentShadingRateAttachmentInfoKHR& value)
9107{
9108	s << "VkFragmentShadingRateAttachmentInfoKHR = {\n";
9109	s << "\tsType = " << value.sType << '\n';
9110	s << "\tpNext = " << value.pNext << '\n';
9111	s << "\tpFragmentShadingRateAttachment = " << value.pFragmentShadingRateAttachment << '\n';
9112	s << "\tshadingRateAttachmentTexelSize = " << value.shadingRateAttachmentTexelSize << '\n';
9113	s << '}';
9114	return s;
9115}
9116
9117std::ostream& operator<< (std::ostream& s, const VkPipelineFragmentShadingRateStateCreateInfoKHR& value)
9118{
9119	s << "VkPipelineFragmentShadingRateStateCreateInfoKHR = {\n";
9120	s << "\tsType = " << value.sType << '\n';
9121	s << "\tpNext = " << value.pNext << '\n';
9122	s << "\tfragmentSize = " << value.fragmentSize << '\n';
9123	s << "\tcombinerOps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.combinerOps), DE_ARRAY_END(value.combinerOps)) << '\n';
9124	s << '}';
9125	return s;
9126}
9127
9128std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateFeaturesKHR& value)
9129{
9130	s << "VkPhysicalDeviceFragmentShadingRateFeaturesKHR = {\n";
9131	s << "\tsType = " << value.sType << '\n';
9132	s << "\tpNext = " << value.pNext << '\n';
9133	s << "\tpipelineFragmentShadingRate = " << value.pipelineFragmentShadingRate << '\n';
9134	s << "\tprimitiveFragmentShadingRate = " << value.primitiveFragmentShadingRate << '\n';
9135	s << "\tattachmentFragmentShadingRate = " << value.attachmentFragmentShadingRate << '\n';
9136	s << '}';
9137	return s;
9138}
9139
9140std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRatePropertiesKHR& value)
9141{
9142	s << "VkPhysicalDeviceFragmentShadingRatePropertiesKHR = {\n";
9143	s << "\tsType = " << value.sType << '\n';
9144	s << "\tpNext = " << value.pNext << '\n';
9145	s << "\tminFragmentShadingRateAttachmentTexelSize = " << value.minFragmentShadingRateAttachmentTexelSize << '\n';
9146	s << "\tmaxFragmentShadingRateAttachmentTexelSize = " << value.maxFragmentShadingRateAttachmentTexelSize << '\n';
9147	s << "\tmaxFragmentShadingRateAttachmentTexelSizeAspectRatio = " << value.maxFragmentShadingRateAttachmentTexelSizeAspectRatio << '\n';
9148	s << "\tprimitiveFragmentShadingRateWithMultipleViewports = " << value.primitiveFragmentShadingRateWithMultipleViewports << '\n';
9149	s << "\tlayeredShadingRateAttachments = " << value.layeredShadingRateAttachments << '\n';
9150	s << "\tfragmentShadingRateNonTrivialCombinerOps = " << value.fragmentShadingRateNonTrivialCombinerOps << '\n';
9151	s << "\tmaxFragmentSize = " << value.maxFragmentSize << '\n';
9152	s << "\tmaxFragmentSizeAspectRatio = " << value.maxFragmentSizeAspectRatio << '\n';
9153	s << "\tmaxFragmentShadingRateCoverageSamples = " << value.maxFragmentShadingRateCoverageSamples << '\n';
9154	s << "\tmaxFragmentShadingRateRasterizationSamples = " << value.maxFragmentShadingRateRasterizationSamples << '\n';
9155	s << "\tfragmentShadingRateWithShaderDepthStencilWrites = " << value.fragmentShadingRateWithShaderDepthStencilWrites << '\n';
9156	s << "\tfragmentShadingRateWithSampleMask = " << value.fragmentShadingRateWithSampleMask << '\n';
9157	s << "\tfragmentShadingRateWithShaderSampleMask = " << value.fragmentShadingRateWithShaderSampleMask << '\n';
9158	s << "\tfragmentShadingRateWithConservativeRasterization = " << value.fragmentShadingRateWithConservativeRasterization << '\n';
9159	s << "\tfragmentShadingRateWithFragmentShaderInterlock = " << value.fragmentShadingRateWithFragmentShaderInterlock << '\n';
9160	s << "\tfragmentShadingRateWithCustomSampleLocations = " << value.fragmentShadingRateWithCustomSampleLocations << '\n';
9161	s << "\tfragmentShadingRateStrictMultiplyCombiner = " << value.fragmentShadingRateStrictMultiplyCombiner << '\n';
9162	s << '}';
9163	return s;
9164}
9165
9166std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateKHR& value)
9167{
9168	s << "VkPhysicalDeviceFragmentShadingRateKHR = {\n";
9169	s << "\tsType = " << value.sType << '\n';
9170	s << "\tpNext = " << value.pNext << '\n';
9171	s << "\tsampleCounts = " << getSampleCountFlagsStr(value.sampleCounts) << '\n';
9172	s << "\tfragmentSize = " << value.fragmentSize << '\n';
9173	s << '}';
9174	return s;
9175}
9176
9177std::ostream& operator<< (std::ostream& s, const VkSurfaceProtectedCapabilitiesKHR& value)
9178{
9179	s << "VkSurfaceProtectedCapabilitiesKHR = {\n";
9180	s << "\tsType = " << value.sType << '\n';
9181	s << "\tpNext = " << value.pNext << '\n';
9182	s << "\tsupportsProtected = " << value.supportsProtected << '\n';
9183	s << '}';
9184	return s;
9185}
9186
9187std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentWaitFeaturesKHR& value)
9188{
9189	s << "VkPhysicalDevicePresentWaitFeaturesKHR = {\n";
9190	s << "\tsType = " << value.sType << '\n';
9191	s << "\tpNext = " << value.pNext << '\n';
9192	s << "\tpresentWait = " << value.presentWait << '\n';
9193	s << '}';
9194	return s;
9195}
9196
9197std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR& value)
9198{
9199	s << "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR = {\n";
9200	s << "\tsType = " << value.sType << '\n';
9201	s << "\tpNext = " << value.pNext << '\n';
9202	s << "\tpipelineExecutableInfo = " << value.pipelineExecutableInfo << '\n';
9203	s << '}';
9204	return s;
9205}
9206
9207std::ostream& operator<< (std::ostream& s, const VkPipelineInfoKHR& value)
9208{
9209	s << "VkPipelineInfoKHR = {\n";
9210	s << "\tsType = " << value.sType << '\n';
9211	s << "\tpNext = " << value.pNext << '\n';
9212	s << "\tpipeline = " << value.pipeline << '\n';
9213	s << '}';
9214	return s;
9215}
9216
9217std::ostream& operator<< (std::ostream& s, const VkPipelineExecutablePropertiesKHR& value)
9218{
9219	s << "VkPipelineExecutablePropertiesKHR = {\n";
9220	s << "\tsType = " << value.sType << '\n';
9221	s << "\tpNext = " << value.pNext << '\n';
9222	s << "\tstages = " << getShaderStageFlagsStr(value.stages) << '\n';
9223	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
9224	s << "\tdescription = " << (const char*)value.description << '\n';
9225	s << "\tsubgroupSize = " << value.subgroupSize << '\n';
9226	s << '}';
9227	return s;
9228}
9229
9230std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInfoKHR& value)
9231{
9232	s << "VkPipelineExecutableInfoKHR = {\n";
9233	s << "\tsType = " << value.sType << '\n';
9234	s << "\tpNext = " << value.pNext << '\n';
9235	s << "\tpipeline = " << value.pipeline << '\n';
9236	s << "\texecutableIndex = " << value.executableIndex << '\n';
9237	s << '}';
9238	return s;
9239}
9240
9241std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableStatisticValueKHR& value)
9242{
9243	s << "VkPipelineExecutableStatisticValueKHR = {\n";
9244	s << "\tb32 = " << value.b32 << '\n';
9245	s << "\ti64 = " << value.i64 << '\n';
9246	s << "\tu64 = " << value.u64 << '\n';
9247	s << "\tf64 = " << value.f64 << '\n';
9248	s << '}';
9249	return s;
9250}
9251
9252std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableStatisticKHR& value)
9253{
9254	s << "VkPipelineExecutableStatisticKHR = {\n";
9255	s << "\tsType = " << value.sType << '\n';
9256	s << "\tpNext = " << value.pNext << '\n';
9257	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
9258	s << "\tdescription = " << (const char*)value.description << '\n';
9259	s << "\tformat = " << value.format << '\n';
9260	s << "\tvalue = " << value.value << '\n';
9261	s << '}';
9262	return s;
9263}
9264
9265std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInternalRepresentationKHR& value)
9266{
9267	s << "VkPipelineExecutableInternalRepresentationKHR = {\n";
9268	s << "\tsType = " << value.sType << '\n';
9269	s << "\tpNext = " << value.pNext << '\n';
9270	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
9271	s << "\tdescription = " << (const char*)value.description << '\n';
9272	s << "\tisText = " << value.isText << '\n';
9273	s << "\tdataSize = " << value.dataSize << '\n';
9274	s << "\tpData = " << value.pData << '\n';
9275	s << '}';
9276	return s;
9277}
9278
9279std::ostream& operator<< (std::ostream& s, const VkPipelineLibraryCreateInfoKHR& value)
9280{
9281	s << "VkPipelineLibraryCreateInfoKHR = {\n";
9282	s << "\tsType = " << value.sType << '\n';
9283	s << "\tpNext = " << value.pNext << '\n';
9284	s << "\tlibraryCount = " << value.libraryCount << '\n';
9285	s << "\tpLibraries = " << value.pLibraries << '\n';
9286	s << '}';
9287	return s;
9288}
9289
9290std::ostream& operator<< (std::ostream& s, const VkPresentIdKHR& value)
9291{
9292	s << "VkPresentIdKHR = {\n";
9293	s << "\tsType = " << value.sType << '\n';
9294	s << "\tpNext = " << value.pNext << '\n';
9295	s << "\tswapchainCount = " << value.swapchainCount << '\n';
9296	s << "\tpPresentIds = " << value.pPresentIds << '\n';
9297	s << '}';
9298	return s;
9299}
9300
9301std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentIdFeaturesKHR& value)
9302{
9303	s << "VkPhysicalDevicePresentIdFeaturesKHR = {\n";
9304	s << "\tsType = " << value.sType << '\n';
9305	s << "\tpNext = " << value.pNext << '\n';
9306	s << "\tpresentId = " << value.presentId << '\n';
9307	s << '}';
9308	return s;
9309}
9310
9311std::ostream& operator<< (std::ostream& s, const VkQueueFamilyCheckpointProperties2NV& value)
9312{
9313	s << "VkQueueFamilyCheckpointProperties2NV = {\n";
9314	s << "\tsType = " << value.sType << '\n';
9315	s << "\tpNext = " << value.pNext << '\n';
9316	s << "\tcheckpointExecutionStageMask = " << value.checkpointExecutionStageMask << '\n';
9317	s << '}';
9318	return s;
9319}
9320
9321std::ostream& operator<< (std::ostream& s, const VkCheckpointData2NV& value)
9322{
9323	s << "VkCheckpointData2NV = {\n";
9324	s << "\tsType = " << value.sType << '\n';
9325	s << "\tpNext = " << value.pNext << '\n';
9326	s << "\tstage = " << value.stage << '\n';
9327	s << "\tpCheckpointMarker = " << value.pCheckpointMarker << '\n';
9328	s << '}';
9329	return s;
9330}
9331
9332std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR& value)
9333{
9334	s << "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = {\n";
9335	s << "\tsType = " << value.sType << '\n';
9336	s << "\tpNext = " << value.pNext << '\n';
9337	s << "\tshaderSubgroupUniformControlFlow = " << value.shaderSubgroupUniformControlFlow << '\n';
9338	s << '}';
9339	return s;
9340}
9341
9342std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR& value)
9343{
9344	s << "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = {\n";
9345	s << "\tsType = " << value.sType << '\n';
9346	s << "\tpNext = " << value.pNext << '\n';
9347	s << "\tworkgroupMemoryExplicitLayout = " << value.workgroupMemoryExplicitLayout << '\n';
9348	s << "\tworkgroupMemoryExplicitLayoutScalarBlockLayout = " << value.workgroupMemoryExplicitLayoutScalarBlockLayout << '\n';
9349	s << "\tworkgroupMemoryExplicitLayout8BitAccess = " << value.workgroupMemoryExplicitLayout8BitAccess << '\n';
9350	s << "\tworkgroupMemoryExplicitLayout16BitAccess = " << value.workgroupMemoryExplicitLayout16BitAccess << '\n';
9351	s << '}';
9352	return s;
9353}
9354
9355std::ostream& operator<< (std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& value)
9356{
9357	s << "VkDebugReportCallbackCreateInfoEXT = {\n";
9358	s << "\tsType = " << value.sType << '\n';
9359	s << "\tpNext = " << value.pNext << '\n';
9360	s << "\tflags = " << getDebugReportFlagsEXTStr(value.flags) << '\n';
9361	s << "\tpfnCallback = " << value.pfnCallback << '\n';
9362	s << "\tpUserData = " << value.pUserData << '\n';
9363	s << '}';
9364	return s;
9365}
9366
9367std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateRasterizationOrderAMD& value)
9368{
9369	s << "VkPipelineRasterizationStateRasterizationOrderAMD = {\n";
9370	s << "\tsType = " << value.sType << '\n';
9371	s << "\tpNext = " << value.pNext << '\n';
9372	s << "\trasterizationOrder = " << value.rasterizationOrder << '\n';
9373	s << '}';
9374	return s;
9375}
9376
9377std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectNameInfoEXT& value)
9378{
9379	s << "VkDebugMarkerObjectNameInfoEXT = {\n";
9380	s << "\tsType = " << value.sType << '\n';
9381	s << "\tpNext = " << value.pNext << '\n';
9382	s << "\tobjectType = " << value.objectType << '\n';
9383	s << "\tobject = " << value.object << '\n';
9384	s << "\tpObjectName = " << getCharPtrStr(value.pObjectName) << '\n';
9385	s << '}';
9386	return s;
9387}
9388
9389std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectTagInfoEXT& value)
9390{
9391	s << "VkDebugMarkerObjectTagInfoEXT = {\n";
9392	s << "\tsType = " << value.sType << '\n';
9393	s << "\tpNext = " << value.pNext << '\n';
9394	s << "\tobjectType = " << value.objectType << '\n';
9395	s << "\tobject = " << value.object << '\n';
9396	s << "\ttagName = " << value.tagName << '\n';
9397	s << "\ttagSize = " << value.tagSize << '\n';
9398	s << "\tpTag = " << value.pTag << '\n';
9399	s << '}';
9400	return s;
9401}
9402
9403std::ostream& operator<< (std::ostream& s, const VkDebugMarkerMarkerInfoEXT& value)
9404{
9405	s << "VkDebugMarkerMarkerInfoEXT = {\n";
9406	s << "\tsType = " << value.sType << '\n';
9407	s << "\tpNext = " << value.pNext << '\n';
9408	s << "\tpMarkerName = " << getCharPtrStr(value.pMarkerName) << '\n';
9409	s << "\tcolor = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.color), DE_ARRAY_END(value.color)) << '\n';
9410	s << '}';
9411	return s;
9412}
9413
9414std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationImageCreateInfoNV& value)
9415{
9416	s << "VkDedicatedAllocationImageCreateInfoNV = {\n";
9417	s << "\tsType = " << value.sType << '\n';
9418	s << "\tpNext = " << value.pNext << '\n';
9419	s << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
9420	s << '}';
9421	return s;
9422}
9423
9424std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationBufferCreateInfoNV& value)
9425{
9426	s << "VkDedicatedAllocationBufferCreateInfoNV = {\n";
9427	s << "\tsType = " << value.sType << '\n';
9428	s << "\tpNext = " << value.pNext << '\n';
9429	s << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
9430	s << '}';
9431	return s;
9432}
9433
9434std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationMemoryAllocateInfoNV& value)
9435{
9436	s << "VkDedicatedAllocationMemoryAllocateInfoNV = {\n";
9437	s << "\tsType = " << value.sType << '\n';
9438	s << "\tpNext = " << value.pNext << '\n';
9439	s << "\timage = " << value.image << '\n';
9440	s << "\tbuffer = " << value.buffer << '\n';
9441	s << '}';
9442	return s;
9443}
9444
9445std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackFeaturesEXT& value)
9446{
9447	s << "VkPhysicalDeviceTransformFeedbackFeaturesEXT = {\n";
9448	s << "\tsType = " << value.sType << '\n';
9449	s << "\tpNext = " << value.pNext << '\n';
9450	s << "\ttransformFeedback = " << value.transformFeedback << '\n';
9451	s << "\tgeometryStreams = " << value.geometryStreams << '\n';
9452	s << '}';
9453	return s;
9454}
9455
9456std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackPropertiesEXT& value)
9457{
9458	s << "VkPhysicalDeviceTransformFeedbackPropertiesEXT = {\n";
9459	s << "\tsType = " << value.sType << '\n';
9460	s << "\tpNext = " << value.pNext << '\n';
9461	s << "\tmaxTransformFeedbackStreams = " << value.maxTransformFeedbackStreams << '\n';
9462	s << "\tmaxTransformFeedbackBuffers = " << value.maxTransformFeedbackBuffers << '\n';
9463	s << "\tmaxTransformFeedbackBufferSize = " << value.maxTransformFeedbackBufferSize << '\n';
9464	s << "\tmaxTransformFeedbackStreamDataSize = " << value.maxTransformFeedbackStreamDataSize << '\n';
9465	s << "\tmaxTransformFeedbackBufferDataSize = " << value.maxTransformFeedbackBufferDataSize << '\n';
9466	s << "\tmaxTransformFeedbackBufferDataStride = " << value.maxTransformFeedbackBufferDataStride << '\n';
9467	s << "\ttransformFeedbackQueries = " << value.transformFeedbackQueries << '\n';
9468	s << "\ttransformFeedbackStreamsLinesTriangles = " << value.transformFeedbackStreamsLinesTriangles << '\n';
9469	s << "\ttransformFeedbackRasterizationStreamSelect = " << value.transformFeedbackRasterizationStreamSelect << '\n';
9470	s << "\ttransformFeedbackDraw = " << value.transformFeedbackDraw << '\n';
9471	s << '}';
9472	return s;
9473}
9474
9475std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateStreamCreateInfoEXT& value)
9476{
9477	s << "VkPipelineRasterizationStateStreamCreateInfoEXT = {\n";
9478	s << "\tsType = " << value.sType << '\n';
9479	s << "\tpNext = " << value.pNext << '\n';
9480	s << "\tflags = " << getPipelineRasterizationStateStreamCreateFlagsEXTStr(value.flags) << '\n';
9481	s << "\trasterizationStream = " << value.rasterizationStream << '\n';
9482	s << '}';
9483	return s;
9484}
9485
9486std::ostream& operator<< (std::ostream& s, const VkCuModuleCreateInfoNVX& value)
9487{
9488	s << "VkCuModuleCreateInfoNVX = {\n";
9489	s << "\tsType = " << value.sType << '\n';
9490	s << "\tpNext = " << value.pNext << '\n';
9491	s << "\tdataSize = " << value.dataSize << '\n';
9492	s << "\tpData = " << value.pData << '\n';
9493	s << '}';
9494	return s;
9495}
9496
9497std::ostream& operator<< (std::ostream& s, const VkCuFunctionCreateInfoNVX& value)
9498{
9499	s << "VkCuFunctionCreateInfoNVX = {\n";
9500	s << "\tsType = " << value.sType << '\n';
9501	s << "\tpNext = " << value.pNext << '\n';
9502	s << "\tmodule = " << value.module << '\n';
9503	s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
9504	s << '}';
9505	return s;
9506}
9507
9508std::ostream& operator<< (std::ostream& s, const VkCuLaunchInfoNVX& value)
9509{
9510	s << "VkCuLaunchInfoNVX = {\n";
9511	s << "\tsType = " << value.sType << '\n';
9512	s << "\tpNext = " << value.pNext << '\n';
9513	s << "\tfunction = " << value.function << '\n';
9514	s << "\tgridDimX = " << value.gridDimX << '\n';
9515	s << "\tgridDimY = " << value.gridDimY << '\n';
9516	s << "\tgridDimZ = " << value.gridDimZ << '\n';
9517	s << "\tblockDimX = " << value.blockDimX << '\n';
9518	s << "\tblockDimY = " << value.blockDimY << '\n';
9519	s << "\tblockDimZ = " << value.blockDimZ << '\n';
9520	s << "\tsharedMemBytes = " << value.sharedMemBytes << '\n';
9521	s << "\tparamCount = " << value.paramCount << '\n';
9522	s << "\tpParams = " << value.pParams << '\n';
9523	s << "\textraCount = " << value.extraCount << '\n';
9524	s << "\tpExtras = " << value.pExtras << '\n';
9525	s << '}';
9526	return s;
9527}
9528
9529std::ostream& operator<< (std::ostream& s, const VkImageViewHandleInfoNVX& value)
9530{
9531	s << "VkImageViewHandleInfoNVX = {\n";
9532	s << "\tsType = " << value.sType << '\n';
9533	s << "\tpNext = " << value.pNext << '\n';
9534	s << "\timageView = " << value.imageView << '\n';
9535	s << "\tdescriptorType = " << value.descriptorType << '\n';
9536	s << "\tsampler = " << value.sampler << '\n';
9537	s << '}';
9538	return s;
9539}
9540
9541std::ostream& operator<< (std::ostream& s, const VkImageViewAddressPropertiesNVX& value)
9542{
9543	s << "VkImageViewAddressPropertiesNVX = {\n";
9544	s << "\tsType = " << value.sType << '\n';
9545	s << "\tpNext = " << value.pNext << '\n';
9546	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
9547	s << "\tsize = " << value.size << '\n';
9548	s << '}';
9549	return s;
9550}
9551
9552std::ostream& operator<< (std::ostream& s, const VkTextureLODGatherFormatPropertiesAMD& value)
9553{
9554	s << "VkTextureLODGatherFormatPropertiesAMD = {\n";
9555	s << "\tsType = " << value.sType << '\n';
9556	s << "\tpNext = " << value.pNext << '\n';
9557	s << "\tsupportsTextureGatherLODBiasAMD = " << value.supportsTextureGatherLODBiasAMD << '\n';
9558	s << '}';
9559	return s;
9560}
9561
9562std::ostream& operator<< (std::ostream& s, const VkShaderResourceUsageAMD& value)
9563{
9564	s << "VkShaderResourceUsageAMD = {\n";
9565	s << "\tnumUsedVgprs = " << value.numUsedVgprs << '\n';
9566	s << "\tnumUsedSgprs = " << value.numUsedSgprs << '\n';
9567	s << "\tldsSizePerLocalWorkGroup = " << value.ldsSizePerLocalWorkGroup << '\n';
9568	s << "\tldsUsageSizeInBytes = " << value.ldsUsageSizeInBytes << '\n';
9569	s << "\tscratchMemUsageInBytes = " << value.scratchMemUsageInBytes << '\n';
9570	s << '}';
9571	return s;
9572}
9573
9574std::ostream& operator<< (std::ostream& s, const VkShaderStatisticsInfoAMD& value)
9575{
9576	s << "VkShaderStatisticsInfoAMD = {\n";
9577	s << "\tshaderStageMask = " << getShaderStageFlagsStr(value.shaderStageMask) << '\n';
9578	s << "\tresourceUsage = " << value.resourceUsage << '\n';
9579	s << "\tnumPhysicalVgprs = " << value.numPhysicalVgprs << '\n';
9580	s << "\tnumPhysicalSgprs = " << value.numPhysicalSgprs << '\n';
9581	s << "\tnumAvailableVgprs = " << value.numAvailableVgprs << '\n';
9582	s << "\tnumAvailableSgprs = " << value.numAvailableSgprs << '\n';
9583	s << "\tcomputeWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.computeWorkGroupSize), DE_ARRAY_END(value.computeWorkGroupSize)) << '\n';
9584	s << '}';
9585	return s;
9586}
9587
9588std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCornerSampledImageFeaturesNV& value)
9589{
9590	s << "VkPhysicalDeviceCornerSampledImageFeaturesNV = {\n";
9591	s << "\tsType = " << value.sType << '\n';
9592	s << "\tpNext = " << value.pNext << '\n';
9593	s << "\tcornerSampledImage = " << value.cornerSampledImage << '\n';
9594	s << '}';
9595	return s;
9596}
9597
9598std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatPropertiesNV& value)
9599{
9600	s << "VkExternalImageFormatPropertiesNV = {\n";
9601	s << "\timageFormatProperties = " << value.imageFormatProperties << '\n';
9602	s << "\texternalMemoryFeatures = " << getExternalMemoryFeatureFlagsNVStr(value.externalMemoryFeatures) << '\n';
9603	s << "\texportFromImportedHandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.exportFromImportedHandleTypes) << '\n';
9604	s << "\tcompatibleHandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.compatibleHandleTypes) << '\n';
9605	s << '}';
9606	return s;
9607}
9608
9609std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfoNV& value)
9610{
9611	s << "VkExternalMemoryImageCreateInfoNV = {\n";
9612	s << "\tsType = " << value.sType << '\n';
9613	s << "\tpNext = " << value.pNext << '\n';
9614	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
9615	s << '}';
9616	return s;
9617}
9618
9619std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfoNV& value)
9620{
9621	s << "VkExportMemoryAllocateInfoNV = {\n";
9622	s << "\tsType = " << value.sType << '\n';
9623	s << "\tpNext = " << value.pNext << '\n';
9624	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
9625	s << '}';
9626	return s;
9627}
9628
9629std::ostream& operator<< (std::ostream& s, const VkValidationFlagsEXT& value)
9630{
9631	s << "VkValidationFlagsEXT = {\n";
9632	s << "\tsType = " << value.sType << '\n';
9633	s << "\tpNext = " << value.pNext << '\n';
9634	s << "\tdisabledValidationCheckCount = " << value.disabledValidationCheckCount << '\n';
9635	s << "\tpDisabledValidationChecks = " << value.pDisabledValidationChecks << '\n';
9636	s << '}';
9637	return s;
9638}
9639
9640std::ostream& operator<< (std::ostream& s, const VkImageViewASTCDecodeModeEXT& value)
9641{
9642	s << "VkImageViewASTCDecodeModeEXT = {\n";
9643	s << "\tsType = " << value.sType << '\n';
9644	s << "\tpNext = " << value.pNext << '\n';
9645	s << "\tdecodeMode = " << value.decodeMode << '\n';
9646	s << '}';
9647	return s;
9648}
9649
9650std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceASTCDecodeFeaturesEXT& value)
9651{
9652	s << "VkPhysicalDeviceASTCDecodeFeaturesEXT = {\n";
9653	s << "\tsType = " << value.sType << '\n';
9654	s << "\tpNext = " << value.pNext << '\n';
9655	s << "\tdecodeModeSharedExponent = " << value.decodeModeSharedExponent << '\n';
9656	s << '}';
9657	return s;
9658}
9659
9660std::ostream& operator<< (std::ostream& s, const VkConditionalRenderingBeginInfoEXT& value)
9661{
9662	s << "VkConditionalRenderingBeginInfoEXT = {\n";
9663	s << "\tsType = " << value.sType << '\n';
9664	s << "\tpNext = " << value.pNext << '\n';
9665	s << "\tbuffer = " << value.buffer << '\n';
9666	s << "\toffset = " << value.offset << '\n';
9667	s << "\tflags = " << getConditionalRenderingFlagsEXTStr(value.flags) << '\n';
9668	s << '}';
9669	return s;
9670}
9671
9672std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceConditionalRenderingFeaturesEXT& value)
9673{
9674	s << "VkPhysicalDeviceConditionalRenderingFeaturesEXT = {\n";
9675	s << "\tsType = " << value.sType << '\n';
9676	s << "\tpNext = " << value.pNext << '\n';
9677	s << "\tconditionalRendering = " << value.conditionalRendering << '\n';
9678	s << "\tinheritedConditionalRendering = " << value.inheritedConditionalRendering << '\n';
9679	s << '}';
9680	return s;
9681}
9682
9683std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceConditionalRenderingInfoEXT& value)
9684{
9685	s << "VkCommandBufferInheritanceConditionalRenderingInfoEXT = {\n";
9686	s << "\tsType = " << value.sType << '\n';
9687	s << "\tpNext = " << value.pNext << '\n';
9688	s << "\tconditionalRenderingEnable = " << value.conditionalRenderingEnable << '\n';
9689	s << '}';
9690	return s;
9691}
9692
9693std::ostream& operator<< (std::ostream& s, const VkViewportWScalingNV& value)
9694{
9695	s << "VkViewportWScalingNV = {\n";
9696	s << "\txcoeff = " << value.xcoeff << '\n';
9697	s << "\tycoeff = " << value.ycoeff << '\n';
9698	s << '}';
9699	return s;
9700}
9701
9702std::ostream& operator<< (std::ostream& s, const VkPipelineViewportWScalingStateCreateInfoNV& value)
9703{
9704	s << "VkPipelineViewportWScalingStateCreateInfoNV = {\n";
9705	s << "\tsType = " << value.sType << '\n';
9706	s << "\tpNext = " << value.pNext << '\n';
9707	s << "\tviewportWScalingEnable = " << value.viewportWScalingEnable << '\n';
9708	s << "\tviewportCount = " << value.viewportCount << '\n';
9709	s << "\tpViewportWScalings = " << value.pViewportWScalings << '\n';
9710	s << '}';
9711	return s;
9712}
9713
9714std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2EXT& value)
9715{
9716	s << "VkSurfaceCapabilities2EXT = {\n";
9717	s << "\tsType = " << value.sType << '\n';
9718	s << "\tpNext = " << value.pNext << '\n';
9719	s << "\tminImageCount = " << value.minImageCount << '\n';
9720	s << "\tmaxImageCount = " << value.maxImageCount << '\n';
9721	s << "\tcurrentExtent = " << value.currentExtent << '\n';
9722	s << "\tminImageExtent = " << value.minImageExtent << '\n';
9723	s << "\tmaxImageExtent = " << value.maxImageExtent << '\n';
9724	s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
9725	s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
9726	s << "\tcurrentTransform = " << value.currentTransform << '\n';
9727	s << "\tsupportedCompositeAlpha = " << getCompositeAlphaFlagsKHRStr(value.supportedCompositeAlpha) << '\n';
9728	s << "\tsupportedUsageFlags = " << getImageUsageFlagsStr(value.supportedUsageFlags) << '\n';
9729	s << "\tsupportedSurfaceCounters = " << getSurfaceCounterFlagsEXTStr(value.supportedSurfaceCounters) << '\n';
9730	s << '}';
9731	return s;
9732}
9733
9734std::ostream& operator<< (std::ostream& s, const VkDisplayPowerInfoEXT& value)
9735{
9736	s << "VkDisplayPowerInfoEXT = {\n";
9737	s << "\tsType = " << value.sType << '\n';
9738	s << "\tpNext = " << value.pNext << '\n';
9739	s << "\tpowerState = " << value.powerState << '\n';
9740	s << '}';
9741	return s;
9742}
9743
9744std::ostream& operator<< (std::ostream& s, const VkDeviceEventInfoEXT& value)
9745{
9746	s << "VkDeviceEventInfoEXT = {\n";
9747	s << "\tsType = " << value.sType << '\n';
9748	s << "\tpNext = " << value.pNext << '\n';
9749	s << "\tdeviceEvent = " << value.deviceEvent << '\n';
9750	s << '}';
9751	return s;
9752}
9753
9754std::ostream& operator<< (std::ostream& s, const VkDisplayEventInfoEXT& value)
9755{
9756	s << "VkDisplayEventInfoEXT = {\n";
9757	s << "\tsType = " << value.sType << '\n';
9758	s << "\tpNext = " << value.pNext << '\n';
9759	s << "\tdisplayEvent = " << value.displayEvent << '\n';
9760	s << '}';
9761	return s;
9762}
9763
9764std::ostream& operator<< (std::ostream& s, const VkSwapchainCounterCreateInfoEXT& value)
9765{
9766	s << "VkSwapchainCounterCreateInfoEXT = {\n";
9767	s << "\tsType = " << value.sType << '\n';
9768	s << "\tpNext = " << value.pNext << '\n';
9769	s << "\tsurfaceCounters = " << getSurfaceCounterFlagsEXTStr(value.surfaceCounters) << '\n';
9770	s << '}';
9771	return s;
9772}
9773
9774std::ostream& operator<< (std::ostream& s, const VkRefreshCycleDurationGOOGLE& value)
9775{
9776	s << "VkRefreshCycleDurationGOOGLE = {\n";
9777	s << "\trefreshDuration = " << value.refreshDuration << '\n';
9778	s << '}';
9779	return s;
9780}
9781
9782std::ostream& operator<< (std::ostream& s, const VkPastPresentationTimingGOOGLE& value)
9783{
9784	s << "VkPastPresentationTimingGOOGLE = {\n";
9785	s << "\tpresentID = " << value.presentID << '\n';
9786	s << "\tdesiredPresentTime = " << value.desiredPresentTime << '\n';
9787	s << "\tactualPresentTime = " << value.actualPresentTime << '\n';
9788	s << "\tearliestPresentTime = " << value.earliestPresentTime << '\n';
9789	s << "\tpresentMargin = " << value.presentMargin << '\n';
9790	s << '}';
9791	return s;
9792}
9793
9794std::ostream& operator<< (std::ostream& s, const VkPresentTimeGOOGLE& value)
9795{
9796	s << "VkPresentTimeGOOGLE = {\n";
9797	s << "\tpresentID = " << value.presentID << '\n';
9798	s << "\tdesiredPresentTime = " << value.desiredPresentTime << '\n';
9799	s << '}';
9800	return s;
9801}
9802
9803std::ostream& operator<< (std::ostream& s, const VkPresentTimesInfoGOOGLE& value)
9804{
9805	s << "VkPresentTimesInfoGOOGLE = {\n";
9806	s << "\tsType = " << value.sType << '\n';
9807	s << "\tpNext = " << value.pNext << '\n';
9808	s << "\tswapchainCount = " << value.swapchainCount << '\n';
9809	s << "\tpTimes = " << value.pTimes << '\n';
9810	s << '}';
9811	return s;
9812}
9813
9814std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX& value)
9815{
9816	s << "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = {\n";
9817	s << "\tsType = " << value.sType << '\n';
9818	s << "\tpNext = " << value.pNext << '\n';
9819	s << "\tperViewPositionAllComponents = " << value.perViewPositionAllComponents << '\n';
9820	s << '}';
9821	return s;
9822}
9823
9824std::ostream& operator<< (std::ostream& s, const VkViewportSwizzleNV& value)
9825{
9826	s << "VkViewportSwizzleNV = {\n";
9827	s << "\tx = " << value.x << '\n';
9828	s << "\ty = " << value.y << '\n';
9829	s << "\tz = " << value.z << '\n';
9830	s << "\tw = " << value.w << '\n';
9831	s << '}';
9832	return s;
9833}
9834
9835std::ostream& operator<< (std::ostream& s, const VkPipelineViewportSwizzleStateCreateInfoNV& value)
9836{
9837	s << "VkPipelineViewportSwizzleStateCreateInfoNV = {\n";
9838	s << "\tsType = " << value.sType << '\n';
9839	s << "\tpNext = " << value.pNext << '\n';
9840	s << "\tflags = " << getPipelineViewportSwizzleStateCreateFlagsNVStr(value.flags) << '\n';
9841	s << "\tviewportCount = " << value.viewportCount << '\n';
9842	s << "\tpViewportSwizzles = " << value.pViewportSwizzles << '\n';
9843	s << '}';
9844	return s;
9845}
9846
9847std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiscardRectanglePropertiesEXT& value)
9848{
9849	s << "VkPhysicalDeviceDiscardRectanglePropertiesEXT = {\n";
9850	s << "\tsType = " << value.sType << '\n';
9851	s << "\tpNext = " << value.pNext << '\n';
9852	s << "\tmaxDiscardRectangles = " << value.maxDiscardRectangles << '\n';
9853	s << '}';
9854	return s;
9855}
9856
9857std::ostream& operator<< (std::ostream& s, const VkPipelineDiscardRectangleStateCreateInfoEXT& value)
9858{
9859	s << "VkPipelineDiscardRectangleStateCreateInfoEXT = {\n";
9860	s << "\tsType = " << value.sType << '\n';
9861	s << "\tpNext = " << value.pNext << '\n';
9862	s << "\tflags = " << getPipelineDiscardRectangleStateCreateFlagsEXTStr(value.flags) << '\n';
9863	s << "\tdiscardRectangleMode = " << value.discardRectangleMode << '\n';
9864	s << "\tdiscardRectangleCount = " << value.discardRectangleCount << '\n';
9865	s << "\tpDiscardRectangles = " << value.pDiscardRectangles << '\n';
9866	s << '}';
9867	return s;
9868}
9869
9870std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceConservativeRasterizationPropertiesEXT& value)
9871{
9872	s << "VkPhysicalDeviceConservativeRasterizationPropertiesEXT = {\n";
9873	s << "\tsType = " << value.sType << '\n';
9874	s << "\tpNext = " << value.pNext << '\n';
9875	s << "\tprimitiveOverestimationSize = " << value.primitiveOverestimationSize << '\n';
9876	s << "\tmaxExtraPrimitiveOverestimationSize = " << value.maxExtraPrimitiveOverestimationSize << '\n';
9877	s << "\textraPrimitiveOverestimationSizeGranularity = " << value.extraPrimitiveOverestimationSizeGranularity << '\n';
9878	s << "\tprimitiveUnderestimation = " << value.primitiveUnderestimation << '\n';
9879	s << "\tconservativePointAndLineRasterization = " << value.conservativePointAndLineRasterization << '\n';
9880	s << "\tdegenerateTrianglesRasterized = " << value.degenerateTrianglesRasterized << '\n';
9881	s << "\tdegenerateLinesRasterized = " << value.degenerateLinesRasterized << '\n';
9882	s << "\tfullyCoveredFragmentShaderInputVariable = " << value.fullyCoveredFragmentShaderInputVariable << '\n';
9883	s << "\tconservativeRasterizationPostDepthCoverage = " << value.conservativeRasterizationPostDepthCoverage << '\n';
9884	s << '}';
9885	return s;
9886}
9887
9888std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationConservativeStateCreateInfoEXT& value)
9889{
9890	s << "VkPipelineRasterizationConservativeStateCreateInfoEXT = {\n";
9891	s << "\tsType = " << value.sType << '\n';
9892	s << "\tpNext = " << value.pNext << '\n';
9893	s << "\tflags = " << getPipelineRasterizationConservativeStateCreateFlagsEXTStr(value.flags) << '\n';
9894	s << "\tconservativeRasterizationMode = " << value.conservativeRasterizationMode << '\n';
9895	s << "\textraPrimitiveOverestimationSize = " << value.extraPrimitiveOverestimationSize << '\n';
9896	s << '}';
9897	return s;
9898}
9899
9900std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClipEnableFeaturesEXT& value)
9901{
9902	s << "VkPhysicalDeviceDepthClipEnableFeaturesEXT = {\n";
9903	s << "\tsType = " << value.sType << '\n';
9904	s << "\tpNext = " << value.pNext << '\n';
9905	s << "\tdepthClipEnable = " << value.depthClipEnable << '\n';
9906	s << '}';
9907	return s;
9908}
9909
9910std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationDepthClipStateCreateInfoEXT& value)
9911{
9912	s << "VkPipelineRasterizationDepthClipStateCreateInfoEXT = {\n";
9913	s << "\tsType = " << value.sType << '\n';
9914	s << "\tpNext = " << value.pNext << '\n';
9915	s << "\tflags = " << getPipelineRasterizationDepthClipStateCreateFlagsEXTStr(value.flags) << '\n';
9916	s << "\tdepthClipEnable = " << value.depthClipEnable << '\n';
9917	s << '}';
9918	return s;
9919}
9920
9921std::ostream& operator<< (std::ostream& s, const VkXYColorEXT& value)
9922{
9923	s << "VkXYColorEXT = {\n";
9924	s << "\tx = " << value.x << '\n';
9925	s << "\ty = " << value.y << '\n';
9926	s << '}';
9927	return s;
9928}
9929
9930std::ostream& operator<< (std::ostream& s, const VkHdrMetadataEXT& value)
9931{
9932	s << "VkHdrMetadataEXT = {\n";
9933	s << "\tsType = " << value.sType << '\n';
9934	s << "\tpNext = " << value.pNext << '\n';
9935	s << "\tdisplayPrimaryRed = " << value.displayPrimaryRed << '\n';
9936	s << "\tdisplayPrimaryGreen = " << value.displayPrimaryGreen << '\n';
9937	s << "\tdisplayPrimaryBlue = " << value.displayPrimaryBlue << '\n';
9938	s << "\twhitePoint = " << value.whitePoint << '\n';
9939	s << "\tmaxLuminance = " << value.maxLuminance << '\n';
9940	s << "\tminLuminance = " << value.minLuminance << '\n';
9941	s << "\tmaxContentLightLevel = " << value.maxContentLightLevel << '\n';
9942	s << "\tmaxFrameAverageLightLevel = " << value.maxFrameAverageLightLevel << '\n';
9943	s << '}';
9944	return s;
9945}
9946
9947std::ostream& operator<< (std::ostream& s, const VkDebugUtilsLabelEXT& value)
9948{
9949	s << "VkDebugUtilsLabelEXT = {\n";
9950	s << "\tsType = " << value.sType << '\n';
9951	s << "\tpNext = " << value.pNext << '\n';
9952	s << "\tpLabelName = " << getCharPtrStr(value.pLabelName) << '\n';
9953	s << "\tcolor = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.color), DE_ARRAY_END(value.color)) << '\n';
9954	s << '}';
9955	return s;
9956}
9957
9958std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectNameInfoEXT& value)
9959{
9960	s << "VkDebugUtilsObjectNameInfoEXT = {\n";
9961	s << "\tsType = " << value.sType << '\n';
9962	s << "\tpNext = " << value.pNext << '\n';
9963	s << "\tobjectType = " << value.objectType << '\n';
9964	s << "\tobjectHandle = " << value.objectHandle << '\n';
9965	s << "\tpObjectName = " << getCharPtrStr(value.pObjectName) << '\n';
9966	s << '}';
9967	return s;
9968}
9969
9970std::ostream& operator<< (std::ostream& s, const VkDebugUtilsMessengerCallbackDataEXT& value)
9971{
9972	s << "VkDebugUtilsMessengerCallbackDataEXT = {\n";
9973	s << "\tsType = " << value.sType << '\n';
9974	s << "\tpNext = " << value.pNext << '\n';
9975	s << "\tflags = " << getDebugUtilsMessengerCallbackDataFlagsEXTStr(value.flags) << '\n';
9976	s << "\tpMessageIdName = " << getCharPtrStr(value.pMessageIdName) << '\n';
9977	s << "\tmessageIdNumber = " << value.messageIdNumber << '\n';
9978	s << "\tpMessage = " << getCharPtrStr(value.pMessage) << '\n';
9979	s << "\tqueueLabelCount = " << value.queueLabelCount << '\n';
9980	s << "\tpQueueLabels = " << value.pQueueLabels << '\n';
9981	s << "\tcmdBufLabelCount = " << value.cmdBufLabelCount << '\n';
9982	s << "\tpCmdBufLabels = " << value.pCmdBufLabels << '\n';
9983	s << "\tobjectCount = " << value.objectCount << '\n';
9984	s << "\tpObjects = " << value.pObjects << '\n';
9985	s << '}';
9986	return s;
9987}
9988
9989std::ostream& operator<< (std::ostream& s, const VkDebugUtilsMessengerCreateInfoEXT& value)
9990{
9991	s << "VkDebugUtilsMessengerCreateInfoEXT = {\n";
9992	s << "\tsType = " << value.sType << '\n';
9993	s << "\tpNext = " << value.pNext << '\n';
9994	s << "\tflags = " << getDebugUtilsMessengerCreateFlagsEXTStr(value.flags) << '\n';
9995	s << "\tmessageSeverity = " << getDebugUtilsMessageSeverityFlagsEXTStr(value.messageSeverity) << '\n';
9996	s << "\tmessageType = " << getDebugUtilsMessageTypeFlagsEXTStr(value.messageType) << '\n';
9997	s << "\tpfnUserCallback = " << value.pfnUserCallback << '\n';
9998	s << "\tpUserData = " << value.pUserData << '\n';
9999	s << '}';
10000	return s;
10001}
10002
10003std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectTagInfoEXT& value)
10004{
10005	s << "VkDebugUtilsObjectTagInfoEXT = {\n";
10006	s << "\tsType = " << value.sType << '\n';
10007	s << "\tpNext = " << value.pNext << '\n';
10008	s << "\tobjectType = " << value.objectType << '\n';
10009	s << "\tobjectHandle = " << value.objectHandle << '\n';
10010	s << "\ttagName = " << value.tagName << '\n';
10011	s << "\ttagSize = " << value.tagSize << '\n';
10012	s << "\tpTag = " << value.pTag << '\n';
10013	s << '}';
10014	return s;
10015}
10016
10017std::ostream& operator<< (std::ostream& s, const VkSampleLocationEXT& value)
10018{
10019	s << "VkSampleLocationEXT = {\n";
10020	s << "\tx = " << value.x << '\n';
10021	s << "\ty = " << value.y << '\n';
10022	s << '}';
10023	return s;
10024}
10025
10026std::ostream& operator<< (std::ostream& s, const VkSampleLocationsInfoEXT& value)
10027{
10028	s << "VkSampleLocationsInfoEXT = {\n";
10029	s << "\tsType = " << value.sType << '\n';
10030	s << "\tpNext = " << value.pNext << '\n';
10031	s << "\tsampleLocationsPerPixel = " << value.sampleLocationsPerPixel << '\n';
10032	s << "\tsampleLocationGridSize = " << value.sampleLocationGridSize << '\n';
10033	s << "\tsampleLocationsCount = " << value.sampleLocationsCount << '\n';
10034	s << "\tpSampleLocations = " << value.pSampleLocations << '\n';
10035	s << '}';
10036	return s;
10037}
10038
10039std::ostream& operator<< (std::ostream& s, const VkAttachmentSampleLocationsEXT& value)
10040{
10041	s << "VkAttachmentSampleLocationsEXT = {\n";
10042	s << "\tattachmentIndex = " << value.attachmentIndex << '\n';
10043	s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
10044	s << '}';
10045	return s;
10046}
10047
10048std::ostream& operator<< (std::ostream& s, const VkSubpassSampleLocationsEXT& value)
10049{
10050	s << "VkSubpassSampleLocationsEXT = {\n";
10051	s << "\tsubpassIndex = " << value.subpassIndex << '\n';
10052	s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
10053	s << '}';
10054	return s;
10055}
10056
10057std::ostream& operator<< (std::ostream& s, const VkRenderPassSampleLocationsBeginInfoEXT& value)
10058{
10059	s << "VkRenderPassSampleLocationsBeginInfoEXT = {\n";
10060	s << "\tsType = " << value.sType << '\n';
10061	s << "\tpNext = " << value.pNext << '\n';
10062	s << "\tattachmentInitialSampleLocationsCount = " << value.attachmentInitialSampleLocationsCount << '\n';
10063	s << "\tpAttachmentInitialSampleLocations = " << value.pAttachmentInitialSampleLocations << '\n';
10064	s << "\tpostSubpassSampleLocationsCount = " << value.postSubpassSampleLocationsCount << '\n';
10065	s << "\tpPostSubpassSampleLocations = " << value.pPostSubpassSampleLocations << '\n';
10066	s << '}';
10067	return s;
10068}
10069
10070std::ostream& operator<< (std::ostream& s, const VkPipelineSampleLocationsStateCreateInfoEXT& value)
10071{
10072	s << "VkPipelineSampleLocationsStateCreateInfoEXT = {\n";
10073	s << "\tsType = " << value.sType << '\n';
10074	s << "\tpNext = " << value.pNext << '\n';
10075	s << "\tsampleLocationsEnable = " << value.sampleLocationsEnable << '\n';
10076	s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
10077	s << '}';
10078	return s;
10079}
10080
10081std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSampleLocationsPropertiesEXT& value)
10082{
10083	s << "VkPhysicalDeviceSampleLocationsPropertiesEXT = {\n";
10084	s << "\tsType = " << value.sType << '\n';
10085	s << "\tpNext = " << value.pNext << '\n';
10086	s << "\tsampleLocationSampleCounts = " << getSampleCountFlagsStr(value.sampleLocationSampleCounts) << '\n';
10087	s << "\tmaxSampleLocationGridSize = " << value.maxSampleLocationGridSize << '\n';
10088	s << "\tsampleLocationCoordinateRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.sampleLocationCoordinateRange), DE_ARRAY_END(value.sampleLocationCoordinateRange)) << '\n';
10089	s << "\tsampleLocationSubPixelBits = " << value.sampleLocationSubPixelBits << '\n';
10090	s << "\tvariableSampleLocations = " << value.variableSampleLocations << '\n';
10091	s << '}';
10092	return s;
10093}
10094
10095std::ostream& operator<< (std::ostream& s, const VkMultisamplePropertiesEXT& value)
10096{
10097	s << "VkMultisamplePropertiesEXT = {\n";
10098	s << "\tsType = " << value.sType << '\n';
10099	s << "\tpNext = " << value.pNext << '\n';
10100	s << "\tmaxSampleLocationGridSize = " << value.maxSampleLocationGridSize << '\n';
10101	s << '}';
10102	return s;
10103}
10104
10105std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT& value)
10106{
10107	s << "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT = {\n";
10108	s << "\tsType = " << value.sType << '\n';
10109	s << "\tpNext = " << value.pNext << '\n';
10110	s << "\tadvancedBlendCoherentOperations = " << value.advancedBlendCoherentOperations << '\n';
10111	s << '}';
10112	return s;
10113}
10114
10115std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT& value)
10116{
10117	s << "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT = {\n";
10118	s << "\tsType = " << value.sType << '\n';
10119	s << "\tpNext = " << value.pNext << '\n';
10120	s << "\tadvancedBlendMaxColorAttachments = " << value.advancedBlendMaxColorAttachments << '\n';
10121	s << "\tadvancedBlendIndependentBlend = " << value.advancedBlendIndependentBlend << '\n';
10122	s << "\tadvancedBlendNonPremultipliedSrcColor = " << value.advancedBlendNonPremultipliedSrcColor << '\n';
10123	s << "\tadvancedBlendNonPremultipliedDstColor = " << value.advancedBlendNonPremultipliedDstColor << '\n';
10124	s << "\tadvancedBlendCorrelatedOverlap = " << value.advancedBlendCorrelatedOverlap << '\n';
10125	s << "\tadvancedBlendAllOperations = " << value.advancedBlendAllOperations << '\n';
10126	s << '}';
10127	return s;
10128}
10129
10130std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendAdvancedStateCreateInfoEXT& value)
10131{
10132	s << "VkPipelineColorBlendAdvancedStateCreateInfoEXT = {\n";
10133	s << "\tsType = " << value.sType << '\n';
10134	s << "\tpNext = " << value.pNext << '\n';
10135	s << "\tsrcPremultiplied = " << value.srcPremultiplied << '\n';
10136	s << "\tdstPremultiplied = " << value.dstPremultiplied << '\n';
10137	s << "\tblendOverlap = " << value.blendOverlap << '\n';
10138	s << '}';
10139	return s;
10140}
10141
10142std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageToColorStateCreateInfoNV& value)
10143{
10144	s << "VkPipelineCoverageToColorStateCreateInfoNV = {\n";
10145	s << "\tsType = " << value.sType << '\n';
10146	s << "\tpNext = " << value.pNext << '\n';
10147	s << "\tflags = " << getPipelineCoverageToColorStateCreateFlagsNVStr(value.flags) << '\n';
10148	s << "\tcoverageToColorEnable = " << value.coverageToColorEnable << '\n';
10149	s << "\tcoverageToColorLocation = " << value.coverageToColorLocation << '\n';
10150	s << '}';
10151	return s;
10152}
10153
10154std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageModulationStateCreateInfoNV& value)
10155{
10156	s << "VkPipelineCoverageModulationStateCreateInfoNV = {\n";
10157	s << "\tsType = " << value.sType << '\n';
10158	s << "\tpNext = " << value.pNext << '\n';
10159	s << "\tflags = " << getPipelineCoverageModulationStateCreateFlagsNVStr(value.flags) << '\n';
10160	s << "\tcoverageModulationMode = " << value.coverageModulationMode << '\n';
10161	s << "\tcoverageModulationTableEnable = " << value.coverageModulationTableEnable << '\n';
10162	s << "\tcoverageModulationTableCount = " << value.coverageModulationTableCount << '\n';
10163	s << "\tpCoverageModulationTable = " << value.pCoverageModulationTable << '\n';
10164	s << '}';
10165	return s;
10166}
10167
10168std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV& value)
10169{
10170	s << "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV = {\n";
10171	s << "\tsType = " << value.sType << '\n';
10172	s << "\tpNext = " << value.pNext << '\n';
10173	s << "\tshaderSMCount = " << value.shaderSMCount << '\n';
10174	s << "\tshaderWarpsPerSM = " << value.shaderWarpsPerSM << '\n';
10175	s << '}';
10176	return s;
10177}
10178
10179std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV& value)
10180{
10181	s << "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV = {\n";
10182	s << "\tsType = " << value.sType << '\n';
10183	s << "\tpNext = " << value.pNext << '\n';
10184	s << "\tshaderSMBuiltins = " << value.shaderSMBuiltins << '\n';
10185	s << '}';
10186	return s;
10187}
10188
10189std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesEXT& value)
10190{
10191	s << "VkDrmFormatModifierPropertiesEXT = {\n";
10192	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
10193	s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
10194	s << "\tdrmFormatModifierTilingFeatures = " << getFormatFeatureFlagsStr(value.drmFormatModifierTilingFeatures) << '\n';
10195	s << '}';
10196	return s;
10197}
10198
10199std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesListEXT& value)
10200{
10201	s << "VkDrmFormatModifierPropertiesListEXT = {\n";
10202	s << "\tsType = " << value.sType << '\n';
10203	s << "\tpNext = " << value.pNext << '\n';
10204	s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
10205	s << "\tpDrmFormatModifierProperties = " << value.pDrmFormatModifierProperties << '\n';
10206	s << '}';
10207	return s;
10208}
10209
10210std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageDrmFormatModifierInfoEXT& value)
10211{
10212	s << "VkPhysicalDeviceImageDrmFormatModifierInfoEXT = {\n";
10213	s << "\tsType = " << value.sType << '\n';
10214	s << "\tpNext = " << value.pNext << '\n';
10215	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
10216	s << "\tsharingMode = " << value.sharingMode << '\n';
10217	s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
10218	s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
10219	s << '}';
10220	return s;
10221}
10222
10223std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierListCreateInfoEXT& value)
10224{
10225	s << "VkImageDrmFormatModifierListCreateInfoEXT = {\n";
10226	s << "\tsType = " << value.sType << '\n';
10227	s << "\tpNext = " << value.pNext << '\n';
10228	s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
10229	s << "\tpDrmFormatModifiers = " << value.pDrmFormatModifiers << '\n';
10230	s << '}';
10231	return s;
10232}
10233
10234std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierExplicitCreateInfoEXT& value)
10235{
10236	s << "VkImageDrmFormatModifierExplicitCreateInfoEXT = {\n";
10237	s << "\tsType = " << value.sType << '\n';
10238	s << "\tpNext = " << value.pNext << '\n';
10239	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
10240	s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
10241	s << "\tpPlaneLayouts = " << value.pPlaneLayouts << '\n';
10242	s << '}';
10243	return s;
10244}
10245
10246std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierPropertiesEXT& value)
10247{
10248	s << "VkImageDrmFormatModifierPropertiesEXT = {\n";
10249	s << "\tsType = " << value.sType << '\n';
10250	s << "\tpNext = " << value.pNext << '\n';
10251	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
10252	s << '}';
10253	return s;
10254}
10255
10256std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierProperties2EXT& value)
10257{
10258	s << "VkDrmFormatModifierProperties2EXT = {\n";
10259	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
10260	s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
10261	s << "\tdrmFormatModifierTilingFeatures = " << value.drmFormatModifierTilingFeatures << '\n';
10262	s << '}';
10263	return s;
10264}
10265
10266std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesList2EXT& value)
10267{
10268	s << "VkDrmFormatModifierPropertiesList2EXT = {\n";
10269	s << "\tsType = " << value.sType << '\n';
10270	s << "\tpNext = " << value.pNext << '\n';
10271	s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
10272	s << "\tpDrmFormatModifierProperties = " << value.pDrmFormatModifierProperties << '\n';
10273	s << '}';
10274	return s;
10275}
10276
10277std::ostream& operator<< (std::ostream& s, const VkValidationCacheCreateInfoEXT& value)
10278{
10279	s << "VkValidationCacheCreateInfoEXT = {\n";
10280	s << "\tsType = " << value.sType << '\n';
10281	s << "\tpNext = " << value.pNext << '\n';
10282	s << "\tflags = " << getValidationCacheCreateFlagsEXTStr(value.flags) << '\n';
10283	s << "\tinitialDataSize = " << value.initialDataSize << '\n';
10284	s << "\tpInitialData = " << value.pInitialData << '\n';
10285	s << '}';
10286	return s;
10287}
10288
10289std::ostream& operator<< (std::ostream& s, const VkShaderModuleValidationCacheCreateInfoEXT& value)
10290{
10291	s << "VkShaderModuleValidationCacheCreateInfoEXT = {\n";
10292	s << "\tsType = " << value.sType << '\n';
10293	s << "\tpNext = " << value.pNext << '\n';
10294	s << "\tvalidationCache = " << value.validationCache << '\n';
10295	s << '}';
10296	return s;
10297}
10298
10299std::ostream& operator<< (std::ostream& s, const VkShadingRatePaletteNV& value)
10300{
10301	s << "VkShadingRatePaletteNV = {\n";
10302	s << "\tshadingRatePaletteEntryCount = " << value.shadingRatePaletteEntryCount << '\n';
10303	s << "\tpShadingRatePaletteEntries = " << value.pShadingRatePaletteEntries << '\n';
10304	s << '}';
10305	return s;
10306}
10307
10308std::ostream& operator<< (std::ostream& s, const VkPipelineViewportShadingRateImageStateCreateInfoNV& value)
10309{
10310	s << "VkPipelineViewportShadingRateImageStateCreateInfoNV = {\n";
10311	s << "\tsType = " << value.sType << '\n';
10312	s << "\tpNext = " << value.pNext << '\n';
10313	s << "\tshadingRateImageEnable = " << value.shadingRateImageEnable << '\n';
10314	s << "\tviewportCount = " << value.viewportCount << '\n';
10315	s << "\tpShadingRatePalettes = " << value.pShadingRatePalettes << '\n';
10316	s << '}';
10317	return s;
10318}
10319
10320std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShadingRateImageFeaturesNV& value)
10321{
10322	s << "VkPhysicalDeviceShadingRateImageFeaturesNV = {\n";
10323	s << "\tsType = " << value.sType << '\n';
10324	s << "\tpNext = " << value.pNext << '\n';
10325	s << "\tshadingRateImage = " << value.shadingRateImage << '\n';
10326	s << "\tshadingRateCoarseSampleOrder = " << value.shadingRateCoarseSampleOrder << '\n';
10327	s << '}';
10328	return s;
10329}
10330
10331std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShadingRateImagePropertiesNV& value)
10332{
10333	s << "VkPhysicalDeviceShadingRateImagePropertiesNV = {\n";
10334	s << "\tsType = " << value.sType << '\n';
10335	s << "\tpNext = " << value.pNext << '\n';
10336	s << "\tshadingRateTexelSize = " << value.shadingRateTexelSize << '\n';
10337	s << "\tshadingRatePaletteSize = " << value.shadingRatePaletteSize << '\n';
10338	s << "\tshadingRateMaxCoarseSamples = " << value.shadingRateMaxCoarseSamples << '\n';
10339	s << '}';
10340	return s;
10341}
10342
10343std::ostream& operator<< (std::ostream& s, const VkCoarseSampleLocationNV& value)
10344{
10345	s << "VkCoarseSampleLocationNV = {\n";
10346	s << "\tpixelX = " << value.pixelX << '\n';
10347	s << "\tpixelY = " << value.pixelY << '\n';
10348	s << "\tsample = " << value.sample << '\n';
10349	s << '}';
10350	return s;
10351}
10352
10353std::ostream& operator<< (std::ostream& s, const VkCoarseSampleOrderCustomNV& value)
10354{
10355	s << "VkCoarseSampleOrderCustomNV = {\n";
10356	s << "\tshadingRate = " << value.shadingRate << '\n';
10357	s << "\tsampleCount = " << value.sampleCount << '\n';
10358	s << "\tsampleLocationCount = " << value.sampleLocationCount << '\n';
10359	s << "\tpSampleLocations = " << value.pSampleLocations << '\n';
10360	s << '}';
10361	return s;
10362}
10363
10364std::ostream& operator<< (std::ostream& s, const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV& value)
10365{
10366	s << "VkPipelineViewportCoarseSampleOrderStateCreateInfoNV = {\n";
10367	s << "\tsType = " << value.sType << '\n';
10368	s << "\tpNext = " << value.pNext << '\n';
10369	s << "\tsampleOrderType = " << value.sampleOrderType << '\n';
10370	s << "\tcustomSampleOrderCount = " << value.customSampleOrderCount << '\n';
10371	s << "\tpCustomSampleOrders = " << value.pCustomSampleOrders << '\n';
10372	s << '}';
10373	return s;
10374}
10375
10376std::ostream& operator<< (std::ostream& s, const VkRayTracingShaderGroupCreateInfoNV& value)
10377{
10378	s << "VkRayTracingShaderGroupCreateInfoNV = {\n";
10379	s << "\tsType = " << value.sType << '\n';
10380	s << "\tpNext = " << value.pNext << '\n';
10381	s << "\ttype = " << value.type << '\n';
10382	s << "\tgeneralShader = " << value.generalShader << '\n';
10383	s << "\tclosestHitShader = " << value.closestHitShader << '\n';
10384	s << "\tanyHitShader = " << value.anyHitShader << '\n';
10385	s << "\tintersectionShader = " << value.intersectionShader << '\n';
10386	s << '}';
10387	return s;
10388}
10389
10390std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineCreateInfoNV& value)
10391{
10392	s << "VkRayTracingPipelineCreateInfoNV = {\n";
10393	s << "\tsType = " << value.sType << '\n';
10394	s << "\tpNext = " << value.pNext << '\n';
10395	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
10396	s << "\tstageCount = " << value.stageCount << '\n';
10397	s << "\tpStages = " << value.pStages << '\n';
10398	s << "\tgroupCount = " << value.groupCount << '\n';
10399	s << "\tpGroups = " << value.pGroups << '\n';
10400	s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
10401	s << "\tlayout = " << value.layout << '\n';
10402	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
10403	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
10404	s << '}';
10405	return s;
10406}
10407
10408std::ostream& operator<< (std::ostream& s, const VkGeometryTrianglesNV& value)
10409{
10410	s << "VkGeometryTrianglesNV = {\n";
10411	s << "\tsType = " << value.sType << '\n';
10412	s << "\tpNext = " << value.pNext << '\n';
10413	s << "\tvertexData = " << value.vertexData << '\n';
10414	s << "\tvertexOffset = " << value.vertexOffset << '\n';
10415	s << "\tvertexCount = " << value.vertexCount << '\n';
10416	s << "\tvertexStride = " << value.vertexStride << '\n';
10417	s << "\tvertexFormat = " << value.vertexFormat << '\n';
10418	s << "\tindexData = " << value.indexData << '\n';
10419	s << "\tindexOffset = " << value.indexOffset << '\n';
10420	s << "\tindexCount = " << value.indexCount << '\n';
10421	s << "\tindexType = " << value.indexType << '\n';
10422	s << "\ttransformData = " << value.transformData << '\n';
10423	s << "\ttransformOffset = " << value.transformOffset << '\n';
10424	s << '}';
10425	return s;
10426}
10427
10428std::ostream& operator<< (std::ostream& s, const VkGeometryAABBNV& value)
10429{
10430	s << "VkGeometryAABBNV = {\n";
10431	s << "\tsType = " << value.sType << '\n';
10432	s << "\tpNext = " << value.pNext << '\n';
10433	s << "\taabbData = " << value.aabbData << '\n';
10434	s << "\tnumAABBs = " << value.numAABBs << '\n';
10435	s << "\tstride = " << value.stride << '\n';
10436	s << "\toffset = " << value.offset << '\n';
10437	s << '}';
10438	return s;
10439}
10440
10441std::ostream& operator<< (std::ostream& s, const VkGeometryDataNV& value)
10442{
10443	s << "VkGeometryDataNV = {\n";
10444	s << "\ttriangles = " << value.triangles << '\n';
10445	s << "\taabbs = " << value.aabbs << '\n';
10446	s << '}';
10447	return s;
10448}
10449
10450std::ostream& operator<< (std::ostream& s, const VkGeometryNV& value)
10451{
10452	s << "VkGeometryNV = {\n";
10453	s << "\tsType = " << value.sType << '\n';
10454	s << "\tpNext = " << value.pNext << '\n';
10455	s << "\tgeometryType = " << value.geometryType << '\n';
10456	s << "\tgeometry = " << value.geometry << '\n';
10457	s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
10458	s << '}';
10459	return s;
10460}
10461
10462std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureInfoNV& value)
10463{
10464	s << "VkAccelerationStructureInfoNV = {\n";
10465	s << "\tsType = " << value.sType << '\n';
10466	s << "\tpNext = " << value.pNext << '\n';
10467	s << "\ttype = " << value.type << '\n';
10468	s << "\tflags = " << getBuildAccelerationStructureFlagsNVStr(value.flags) << '\n';
10469	s << "\tinstanceCount = " << value.instanceCount << '\n';
10470	s << "\tgeometryCount = " << value.geometryCount << '\n';
10471	s << "\tpGeometries = " << value.pGeometries << '\n';
10472	s << '}';
10473	return s;
10474}
10475
10476std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoNV& value)
10477{
10478	s << "VkAccelerationStructureCreateInfoNV = {\n";
10479	s << "\tsType = " << value.sType << '\n';
10480	s << "\tpNext = " << value.pNext << '\n';
10481	s << "\tcompactedSize = " << value.compactedSize << '\n';
10482	s << "\tinfo = " << value.info << '\n';
10483	s << '}';
10484	return s;
10485}
10486
10487std::ostream& operator<< (std::ostream& s, const VkBindAccelerationStructureMemoryInfoNV& value)
10488{
10489	s << "VkBindAccelerationStructureMemoryInfoNV = {\n";
10490	s << "\tsType = " << value.sType << '\n';
10491	s << "\tpNext = " << value.pNext << '\n';
10492	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
10493	s << "\tmemory = " << value.memory << '\n';
10494	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
10495	s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
10496	s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
10497	s << '}';
10498	return s;
10499}
10500
10501std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureNV& value)
10502{
10503	s << "VkWriteDescriptorSetAccelerationStructureNV = {\n";
10504	s << "\tsType = " << value.sType << '\n';
10505	s << "\tpNext = " << value.pNext << '\n';
10506	s << "\taccelerationStructureCount = " << value.accelerationStructureCount << '\n';
10507	s << "\tpAccelerationStructures = " << value.pAccelerationStructures << '\n';
10508	s << '}';
10509	return s;
10510}
10511
10512std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMemoryRequirementsInfoNV& value)
10513{
10514	s << "VkAccelerationStructureMemoryRequirementsInfoNV = {\n";
10515	s << "\tsType = " << value.sType << '\n';
10516	s << "\tpNext = " << value.pNext << '\n';
10517	s << "\ttype = " << value.type << '\n';
10518	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
10519	s << '}';
10520	return s;
10521}
10522
10523std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPropertiesNV& value)
10524{
10525	s << "VkPhysicalDeviceRayTracingPropertiesNV = {\n";
10526	s << "\tsType = " << value.sType << '\n';
10527	s << "\tpNext = " << value.pNext << '\n';
10528	s << "\tshaderGroupHandleSize = " << value.shaderGroupHandleSize << '\n';
10529	s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
10530	s << "\tmaxShaderGroupStride = " << value.maxShaderGroupStride << '\n';
10531	s << "\tshaderGroupBaseAlignment = " << value.shaderGroupBaseAlignment << '\n';
10532	s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
10533	s << "\tmaxInstanceCount = " << value.maxInstanceCount << '\n';
10534	s << "\tmaxTriangleCount = " << value.maxTriangleCount << '\n';
10535	s << "\tmaxDescriptorSetAccelerationStructures = " << value.maxDescriptorSetAccelerationStructures << '\n';
10536	s << '}';
10537	return s;
10538}
10539
10540std::ostream& operator<< (std::ostream& s, const VkTransformMatrixKHR& value)
10541{
10542	s << "VkTransformMatrixKHR = {\n";
10543	s << "\tmatrix = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.matrix), DE_ARRAY_END(value.matrix)) << '\n';
10544	s << '}';
10545	return s;
10546}
10547
10548std::ostream& operator<< (std::ostream& s, const VkAabbPositionsKHR& value)
10549{
10550	s << "VkAabbPositionsKHR = {\n";
10551	s << "\tminX = " << value.minX << '\n';
10552	s << "\tminY = " << value.minY << '\n';
10553	s << "\tminZ = " << value.minZ << '\n';
10554	s << "\tmaxX = " << value.maxX << '\n';
10555	s << "\tmaxY = " << value.maxY << '\n';
10556	s << "\tmaxZ = " << value.maxZ << '\n';
10557	s << '}';
10558	return s;
10559}
10560
10561std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureInstanceKHR& value)
10562{
10563	s << "VkAccelerationStructureInstanceKHR = {\n";
10564	s << "\ttransform = " << value.transform << '\n';
10565	s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
10566	s << "\tmask = " << value.mask << '\n';
10567	s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
10568	s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
10569	s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
10570	s << '}';
10571	return s;
10572}
10573
10574std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV& value)
10575{
10576	s << "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV = {\n";
10577	s << "\tsType = " << value.sType << '\n';
10578	s << "\tpNext = " << value.pNext << '\n';
10579	s << "\trepresentativeFragmentTest = " << value.representativeFragmentTest << '\n';
10580	s << '}';
10581	return s;
10582}
10583
10584std::ostream& operator<< (std::ostream& s, const VkPipelineRepresentativeFragmentTestStateCreateInfoNV& value)
10585{
10586	s << "VkPipelineRepresentativeFragmentTestStateCreateInfoNV = {\n";
10587	s << "\tsType = " << value.sType << '\n';
10588	s << "\tpNext = " << value.pNext << '\n';
10589	s << "\trepresentativeFragmentTestEnable = " << value.representativeFragmentTestEnable << '\n';
10590	s << '}';
10591	return s;
10592}
10593
10594std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageViewImageFormatInfoEXT& value)
10595{
10596	s << "VkPhysicalDeviceImageViewImageFormatInfoEXT = {\n";
10597	s << "\tsType = " << value.sType << '\n';
10598	s << "\tpNext = " << value.pNext << '\n';
10599	s << "\timageViewType = " << value.imageViewType << '\n';
10600	s << '}';
10601	return s;
10602}
10603
10604std::ostream& operator<< (std::ostream& s, const VkFilterCubicImageViewImageFormatPropertiesEXT& value)
10605{
10606	s << "VkFilterCubicImageViewImageFormatPropertiesEXT = {\n";
10607	s << "\tsType = " << value.sType << '\n';
10608	s << "\tpNext = " << value.pNext << '\n';
10609	s << "\tfilterCubic = " << value.filterCubic << '\n';
10610	s << "\tfilterCubicMinmax = " << value.filterCubicMinmax << '\n';
10611	s << '}';
10612	return s;
10613}
10614
10615std::ostream& operator<< (std::ostream& s, const VkImportMemoryHostPointerInfoEXT& value)
10616{
10617	s << "VkImportMemoryHostPointerInfoEXT = {\n";
10618	s << "\tsType = " << value.sType << '\n';
10619	s << "\tpNext = " << value.pNext << '\n';
10620	s << "\thandleType = " << value.handleType << '\n';
10621	s << "\tpHostPointer = " << value.pHostPointer << '\n';
10622	s << '}';
10623	return s;
10624}
10625
10626std::ostream& operator<< (std::ostream& s, const VkMemoryHostPointerPropertiesEXT& value)
10627{
10628	s << "VkMemoryHostPointerPropertiesEXT = {\n";
10629	s << "\tsType = " << value.sType << '\n';
10630	s << "\tpNext = " << value.pNext << '\n';
10631	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
10632	s << '}';
10633	return s;
10634}
10635
10636std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryHostPropertiesEXT& value)
10637{
10638	s << "VkPhysicalDeviceExternalMemoryHostPropertiesEXT = {\n";
10639	s << "\tsType = " << value.sType << '\n';
10640	s << "\tpNext = " << value.pNext << '\n';
10641	s << "\tminImportedHostPointerAlignment = " << value.minImportedHostPointerAlignment << '\n';
10642	s << '}';
10643	return s;
10644}
10645
10646std::ostream& operator<< (std::ostream& s, const VkPipelineCompilerControlCreateInfoAMD& value)
10647{
10648	s << "VkPipelineCompilerControlCreateInfoAMD = {\n";
10649	s << "\tsType = " << value.sType << '\n';
10650	s << "\tpNext = " << value.pNext << '\n';
10651	s << "\tcompilerControlFlags = " << getPipelineCompilerControlFlagsAMDStr(value.compilerControlFlags) << '\n';
10652	s << '}';
10653	return s;
10654}
10655
10656std::ostream& operator<< (std::ostream& s, const VkCalibratedTimestampInfoEXT& value)
10657{
10658	s << "VkCalibratedTimestampInfoEXT = {\n";
10659	s << "\tsType = " << value.sType << '\n';
10660	s << "\tpNext = " << value.pNext << '\n';
10661	s << "\ttimeDomain = " << value.timeDomain << '\n';
10662	s << '}';
10663	return s;
10664}
10665
10666std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCorePropertiesAMD& value)
10667{
10668	s << "VkPhysicalDeviceShaderCorePropertiesAMD = {\n";
10669	s << "\tsType = " << value.sType << '\n';
10670	s << "\tpNext = " << value.pNext << '\n';
10671	s << "\tshaderEngineCount = " << value.shaderEngineCount << '\n';
10672	s << "\tshaderArraysPerEngineCount = " << value.shaderArraysPerEngineCount << '\n';
10673	s << "\tcomputeUnitsPerShaderArray = " << value.computeUnitsPerShaderArray << '\n';
10674	s << "\tsimdPerComputeUnit = " << value.simdPerComputeUnit << '\n';
10675	s << "\twavefrontsPerSimd = " << value.wavefrontsPerSimd << '\n';
10676	s << "\twavefrontSize = " << value.wavefrontSize << '\n';
10677	s << "\tsgprsPerSimd = " << value.sgprsPerSimd << '\n';
10678	s << "\tminSgprAllocation = " << value.minSgprAllocation << '\n';
10679	s << "\tmaxSgprAllocation = " << value.maxSgprAllocation << '\n';
10680	s << "\tsgprAllocationGranularity = " << value.sgprAllocationGranularity << '\n';
10681	s << "\tvgprsPerSimd = " << value.vgprsPerSimd << '\n';
10682	s << "\tminVgprAllocation = " << value.minVgprAllocation << '\n';
10683	s << "\tmaxVgprAllocation = " << value.maxVgprAllocation << '\n';
10684	s << "\tvgprAllocationGranularity = " << value.vgprAllocationGranularity << '\n';
10685	s << '}';
10686	return s;
10687}
10688
10689std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryOverallocationCreateInfoAMD& value)
10690{
10691	s << "VkDeviceMemoryOverallocationCreateInfoAMD = {\n";
10692	s << "\tsType = " << value.sType << '\n';
10693	s << "\tpNext = " << value.pNext << '\n';
10694	s << "\toverallocationBehavior = " << value.overallocationBehavior << '\n';
10695	s << '}';
10696	return s;
10697}
10698
10699std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT& value)
10700{
10701	s << "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT = {\n";
10702	s << "\tsType = " << value.sType << '\n';
10703	s << "\tpNext = " << value.pNext << '\n';
10704	s << "\tmaxVertexAttribDivisor = " << value.maxVertexAttribDivisor << '\n';
10705	s << '}';
10706	return s;
10707}
10708
10709std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDivisorDescriptionEXT& value)
10710{
10711	s << "VkVertexInputBindingDivisorDescriptionEXT = {\n";
10712	s << "\tbinding = " << value.binding << '\n';
10713	s << "\tdivisor = " << value.divisor << '\n';
10714	s << '}';
10715	return s;
10716}
10717
10718std::ostream& operator<< (std::ostream& s, const VkPipelineVertexInputDivisorStateCreateInfoEXT& value)
10719{
10720	s << "VkPipelineVertexInputDivisorStateCreateInfoEXT = {\n";
10721	s << "\tsType = " << value.sType << '\n';
10722	s << "\tpNext = " << value.pNext << '\n';
10723	s << "\tvertexBindingDivisorCount = " << value.vertexBindingDivisorCount << '\n';
10724	s << "\tpVertexBindingDivisors = " << value.pVertexBindingDivisors << '\n';
10725	s << '}';
10726	return s;
10727}
10728
10729std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT& value)
10730{
10731	s << "VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT = {\n";
10732	s << "\tsType = " << value.sType << '\n';
10733	s << "\tpNext = " << value.pNext << '\n';
10734	s << "\tvertexAttributeInstanceRateDivisor = " << value.vertexAttributeInstanceRateDivisor << '\n';
10735	s << "\tvertexAttributeInstanceRateZeroDivisor = " << value.vertexAttributeInstanceRateZeroDivisor << '\n';
10736	s << '}';
10737	return s;
10738}
10739
10740std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV& value)
10741{
10742	s << "VkPhysicalDeviceComputeShaderDerivativesFeaturesNV = {\n";
10743	s << "\tsType = " << value.sType << '\n';
10744	s << "\tpNext = " << value.pNext << '\n';
10745	s << "\tcomputeDerivativeGroupQuads = " << value.computeDerivativeGroupQuads << '\n';
10746	s << "\tcomputeDerivativeGroupLinear = " << value.computeDerivativeGroupLinear << '\n';
10747	s << '}';
10748	return s;
10749}
10750
10751std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderFeaturesNV& value)
10752{
10753	s << "VkPhysicalDeviceMeshShaderFeaturesNV = {\n";
10754	s << "\tsType = " << value.sType << '\n';
10755	s << "\tpNext = " << value.pNext << '\n';
10756	s << "\ttaskShader = " << value.taskShader << '\n';
10757	s << "\tmeshShader = " << value.meshShader << '\n';
10758	s << '}';
10759	return s;
10760}
10761
10762std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderPropertiesNV& value)
10763{
10764	s << "VkPhysicalDeviceMeshShaderPropertiesNV = {\n";
10765	s << "\tsType = " << value.sType << '\n';
10766	s << "\tpNext = " << value.pNext << '\n';
10767	s << "\tmaxDrawMeshTasksCount = " << value.maxDrawMeshTasksCount << '\n';
10768	s << "\tmaxTaskWorkGroupInvocations = " << value.maxTaskWorkGroupInvocations << '\n';
10769	s << "\tmaxTaskWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxTaskWorkGroupSize), DE_ARRAY_END(value.maxTaskWorkGroupSize)) << '\n';
10770	s << "\tmaxTaskTotalMemorySize = " << value.maxTaskTotalMemorySize << '\n';
10771	s << "\tmaxTaskOutputCount = " << value.maxTaskOutputCount << '\n';
10772	s << "\tmaxMeshWorkGroupInvocations = " << value.maxMeshWorkGroupInvocations << '\n';
10773	s << "\tmaxMeshWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxMeshWorkGroupSize), DE_ARRAY_END(value.maxMeshWorkGroupSize)) << '\n';
10774	s << "\tmaxMeshTotalMemorySize = " << value.maxMeshTotalMemorySize << '\n';
10775	s << "\tmaxMeshOutputVertices = " << value.maxMeshOutputVertices << '\n';
10776	s << "\tmaxMeshOutputPrimitives = " << value.maxMeshOutputPrimitives << '\n';
10777	s << "\tmaxMeshMultiviewViewCount = " << value.maxMeshMultiviewViewCount << '\n';
10778	s << "\tmeshOutputPerVertexGranularity = " << value.meshOutputPerVertexGranularity << '\n';
10779	s << "\tmeshOutputPerPrimitiveGranularity = " << value.meshOutputPerPrimitiveGranularity << '\n';
10780	s << '}';
10781	return s;
10782}
10783
10784std::ostream& operator<< (std::ostream& s, const VkDrawMeshTasksIndirectCommandNV& value)
10785{
10786	s << "VkDrawMeshTasksIndirectCommandNV = {\n";
10787	s << "\ttaskCount = " << value.taskCount << '\n';
10788	s << "\tfirstTask = " << value.firstTask << '\n';
10789	s << '}';
10790	return s;
10791}
10792
10793std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV& value)
10794{
10795	s << "VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV = {\n";
10796	s << "\tsType = " << value.sType << '\n';
10797	s << "\tpNext = " << value.pNext << '\n';
10798	s << "\tfragmentShaderBarycentric = " << value.fragmentShaderBarycentric << '\n';
10799	s << '}';
10800	return s;
10801}
10802
10803std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderImageFootprintFeaturesNV& value)
10804{
10805	s << "VkPhysicalDeviceShaderImageFootprintFeaturesNV = {\n";
10806	s << "\tsType = " << value.sType << '\n';
10807	s << "\tpNext = " << value.pNext << '\n';
10808	s << "\timageFootprint = " << value.imageFootprint << '\n';
10809	s << '}';
10810	return s;
10811}
10812
10813std::ostream& operator<< (std::ostream& s, const VkPipelineViewportExclusiveScissorStateCreateInfoNV& value)
10814{
10815	s << "VkPipelineViewportExclusiveScissorStateCreateInfoNV = {\n";
10816	s << "\tsType = " << value.sType << '\n';
10817	s << "\tpNext = " << value.pNext << '\n';
10818	s << "\texclusiveScissorCount = " << value.exclusiveScissorCount << '\n';
10819	s << "\tpExclusiveScissors = " << value.pExclusiveScissors << '\n';
10820	s << '}';
10821	return s;
10822}
10823
10824std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExclusiveScissorFeaturesNV& value)
10825{
10826	s << "VkPhysicalDeviceExclusiveScissorFeaturesNV = {\n";
10827	s << "\tsType = " << value.sType << '\n';
10828	s << "\tpNext = " << value.pNext << '\n';
10829	s << "\texclusiveScissor = " << value.exclusiveScissor << '\n';
10830	s << '}';
10831	return s;
10832}
10833
10834std::ostream& operator<< (std::ostream& s, const VkQueueFamilyCheckpointPropertiesNV& value)
10835{
10836	s << "VkQueueFamilyCheckpointPropertiesNV = {\n";
10837	s << "\tsType = " << value.sType << '\n';
10838	s << "\tpNext = " << value.pNext << '\n';
10839	s << "\tcheckpointExecutionStageMask = " << getPipelineStageFlagsStr(value.checkpointExecutionStageMask) << '\n';
10840	s << '}';
10841	return s;
10842}
10843
10844std::ostream& operator<< (std::ostream& s, const VkCheckpointDataNV& value)
10845{
10846	s << "VkCheckpointDataNV = {\n";
10847	s << "\tsType = " << value.sType << '\n';
10848	s << "\tpNext = " << value.pNext << '\n';
10849	s << "\tstage = " << value.stage << '\n';
10850	s << "\tpCheckpointMarker = " << value.pCheckpointMarker << '\n';
10851	s << '}';
10852	return s;
10853}
10854
10855std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& value)
10856{
10857	s << "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = {\n";
10858	s << "\tsType = " << value.sType << '\n';
10859	s << "\tpNext = " << value.pNext << '\n';
10860	s << "\tshaderIntegerFunctions2 = " << value.shaderIntegerFunctions2 << '\n';
10861	s << '}';
10862	return s;
10863}
10864
10865std::ostream& operator<< (std::ostream& s, const VkPerformanceValueDataINTEL& value)
10866{
10867	s << "VkPerformanceValueDataINTEL = {\n";
10868	s << "\tvalue32 = " << value.value32 << '\n';
10869	s << "\tvalue64 = " << value.value64 << '\n';
10870	s << "\tvalueFloat = " << value.valueFloat << '\n';
10871	s << "\tvalueBool = " << value.valueBool << '\n';
10872	s << "\tvalueString = " << getCharPtrStr(value.valueString) << '\n';
10873	s << '}';
10874	return s;
10875}
10876
10877std::ostream& operator<< (std::ostream& s, const VkPerformanceValueINTEL& value)
10878{
10879	s << "VkPerformanceValueINTEL = {\n";
10880	s << "\ttype = " << value.type << '\n';
10881	s << "\tdata = " << value.data << '\n';
10882	s << '}';
10883	return s;
10884}
10885
10886std::ostream& operator<< (std::ostream& s, const VkInitializePerformanceApiInfoINTEL& value)
10887{
10888	s << "VkInitializePerformanceApiInfoINTEL = {\n";
10889	s << "\tsType = " << value.sType << '\n';
10890	s << "\tpNext = " << value.pNext << '\n';
10891	s << "\tpUserData = " << value.pUserData << '\n';
10892	s << '}';
10893	return s;
10894}
10895
10896std::ostream& operator<< (std::ostream& s, const VkQueryPoolPerformanceQueryCreateInfoINTEL& value)
10897{
10898	s << "VkQueryPoolPerformanceQueryCreateInfoINTEL = {\n";
10899	s << "\tsType = " << value.sType << '\n';
10900	s << "\tpNext = " << value.pNext << '\n';
10901	s << "\tperformanceCountersSampling = " << value.performanceCountersSampling << '\n';
10902	s << '}';
10903	return s;
10904}
10905
10906std::ostream& operator<< (std::ostream& s, const VkPerformanceMarkerInfoINTEL& value)
10907{
10908	s << "VkPerformanceMarkerInfoINTEL = {\n";
10909	s << "\tsType = " << value.sType << '\n';
10910	s << "\tpNext = " << value.pNext << '\n';
10911	s << "\tmarker = " << value.marker << '\n';
10912	s << '}';
10913	return s;
10914}
10915
10916std::ostream& operator<< (std::ostream& s, const VkPerformanceStreamMarkerInfoINTEL& value)
10917{
10918	s << "VkPerformanceStreamMarkerInfoINTEL = {\n";
10919	s << "\tsType = " << value.sType << '\n';
10920	s << "\tpNext = " << value.pNext << '\n';
10921	s << "\tmarker = " << value.marker << '\n';
10922	s << '}';
10923	return s;
10924}
10925
10926std::ostream& operator<< (std::ostream& s, const VkPerformanceOverrideInfoINTEL& value)
10927{
10928	s << "VkPerformanceOverrideInfoINTEL = {\n";
10929	s << "\tsType = " << value.sType << '\n';
10930	s << "\tpNext = " << value.pNext << '\n';
10931	s << "\ttype = " << value.type << '\n';
10932	s << "\tenable = " << value.enable << '\n';
10933	s << "\tparameter = " << value.parameter << '\n';
10934	s << '}';
10935	return s;
10936}
10937
10938std::ostream& operator<< (std::ostream& s, const VkPerformanceConfigurationAcquireInfoINTEL& value)
10939{
10940	s << "VkPerformanceConfigurationAcquireInfoINTEL = {\n";
10941	s << "\tsType = " << value.sType << '\n';
10942	s << "\tpNext = " << value.pNext << '\n';
10943	s << "\ttype = " << value.type << '\n';
10944	s << '}';
10945	return s;
10946}
10947
10948std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePCIBusInfoPropertiesEXT& value)
10949{
10950	s << "VkPhysicalDevicePCIBusInfoPropertiesEXT = {\n";
10951	s << "\tsType = " << value.sType << '\n';
10952	s << "\tpNext = " << value.pNext << '\n';
10953	s << "\tpciDomain = " << value.pciDomain << '\n';
10954	s << "\tpciBus = " << value.pciBus << '\n';
10955	s << "\tpciDevice = " << value.pciDevice << '\n';
10956	s << "\tpciFunction = " << value.pciFunction << '\n';
10957	s << '}';
10958	return s;
10959}
10960
10961std::ostream& operator<< (std::ostream& s, const VkDisplayNativeHdrSurfaceCapabilitiesAMD& value)
10962{
10963	s << "VkDisplayNativeHdrSurfaceCapabilitiesAMD = {\n";
10964	s << "\tsType = " << value.sType << '\n';
10965	s << "\tpNext = " << value.pNext << '\n';
10966	s << "\tlocalDimmingSupport = " << value.localDimmingSupport << '\n';
10967	s << '}';
10968	return s;
10969}
10970
10971std::ostream& operator<< (std::ostream& s, const VkSwapchainDisplayNativeHdrCreateInfoAMD& value)
10972{
10973	s << "VkSwapchainDisplayNativeHdrCreateInfoAMD = {\n";
10974	s << "\tsType = " << value.sType << '\n';
10975	s << "\tpNext = " << value.pNext << '\n';
10976	s << "\tlocalDimmingEnable = " << value.localDimmingEnable << '\n';
10977	s << '}';
10978	return s;
10979}
10980
10981std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapFeaturesEXT& value)
10982{
10983	s << "VkPhysicalDeviceFragmentDensityMapFeaturesEXT = {\n";
10984	s << "\tsType = " << value.sType << '\n';
10985	s << "\tpNext = " << value.pNext << '\n';
10986	s << "\tfragmentDensityMap = " << value.fragmentDensityMap << '\n';
10987	s << "\tfragmentDensityMapDynamic = " << value.fragmentDensityMapDynamic << '\n';
10988	s << "\tfragmentDensityMapNonSubsampledImages = " << value.fragmentDensityMapNonSubsampledImages << '\n';
10989	s << '}';
10990	return s;
10991}
10992
10993std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapPropertiesEXT& value)
10994{
10995	s << "VkPhysicalDeviceFragmentDensityMapPropertiesEXT = {\n";
10996	s << "\tsType = " << value.sType << '\n';
10997	s << "\tpNext = " << value.pNext << '\n';
10998	s << "\tminFragmentDensityTexelSize = " << value.minFragmentDensityTexelSize << '\n';
10999	s << "\tmaxFragmentDensityTexelSize = " << value.maxFragmentDensityTexelSize << '\n';
11000	s << "\tfragmentDensityInvocations = " << value.fragmentDensityInvocations << '\n';
11001	s << '}';
11002	return s;
11003}
11004
11005std::ostream& operator<< (std::ostream& s, const VkRenderPassFragmentDensityMapCreateInfoEXT& value)
11006{
11007	s << "VkRenderPassFragmentDensityMapCreateInfoEXT = {\n";
11008	s << "\tsType = " << value.sType << '\n';
11009	s << "\tpNext = " << value.pNext << '\n';
11010	s << "\tfragmentDensityMapAttachment = " << value.fragmentDensityMapAttachment << '\n';
11011	s << '}';
11012	return s;
11013}
11014
11015std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCoreProperties2AMD& value)
11016{
11017	s << "VkPhysicalDeviceShaderCoreProperties2AMD = {\n";
11018	s << "\tsType = " << value.sType << '\n';
11019	s << "\tpNext = " << value.pNext << '\n';
11020	s << "\tshaderCoreFeatures = " << getShaderCorePropertiesFlagsAMDStr(value.shaderCoreFeatures) << '\n';
11021	s << "\tactiveComputeUnitCount = " << value.activeComputeUnitCount << '\n';
11022	s << '}';
11023	return s;
11024}
11025
11026std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCoherentMemoryFeaturesAMD& value)
11027{
11028	s << "VkPhysicalDeviceCoherentMemoryFeaturesAMD = {\n";
11029	s << "\tsType = " << value.sType << '\n';
11030	s << "\tpNext = " << value.pNext << '\n';
11031	s << "\tdeviceCoherentMemory = " << value.deviceCoherentMemory << '\n';
11032	s << '}';
11033	return s;
11034}
11035
11036std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT& value)
11037{
11038	s << "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT = {\n";
11039	s << "\tsType = " << value.sType << '\n';
11040	s << "\tpNext = " << value.pNext << '\n';
11041	s << "\tshaderImageInt64Atomics = " << value.shaderImageInt64Atomics << '\n';
11042	s << "\tsparseImageInt64Atomics = " << value.sparseImageInt64Atomics << '\n';
11043	s << '}';
11044	return s;
11045}
11046
11047std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryBudgetPropertiesEXT& value)
11048{
11049	s << "VkPhysicalDeviceMemoryBudgetPropertiesEXT = {\n";
11050	s << "\tsType = " << value.sType << '\n';
11051	s << "\tpNext = " << value.pNext << '\n';
11052	s << "\theapBudget = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.heapBudget), DE_ARRAY_END(value.heapBudget)) << '\n';
11053	s << "\theapUsage = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.heapUsage), DE_ARRAY_END(value.heapUsage)) << '\n';
11054	s << '}';
11055	return s;
11056}
11057
11058std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryPriorityFeaturesEXT& value)
11059{
11060	s << "VkPhysicalDeviceMemoryPriorityFeaturesEXT = {\n";
11061	s << "\tsType = " << value.sType << '\n';
11062	s << "\tpNext = " << value.pNext << '\n';
11063	s << "\tmemoryPriority = " << value.memoryPriority << '\n';
11064	s << '}';
11065	return s;
11066}
11067
11068std::ostream& operator<< (std::ostream& s, const VkMemoryPriorityAllocateInfoEXT& value)
11069{
11070	s << "VkMemoryPriorityAllocateInfoEXT = {\n";
11071	s << "\tsType = " << value.sType << '\n';
11072	s << "\tpNext = " << value.pNext << '\n';
11073	s << "\tpriority = " << value.priority << '\n';
11074	s << '}';
11075	return s;
11076}
11077
11078std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& value)
11079{
11080	s << "VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = {\n";
11081	s << "\tsType = " << value.sType << '\n';
11082	s << "\tpNext = " << value.pNext << '\n';
11083	s << "\tdedicatedAllocationImageAliasing = " << value.dedicatedAllocationImageAliasing << '\n';
11084	s << '}';
11085	return s;
11086}
11087
11088std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT& value)
11089{
11090	s << "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT = {\n";
11091	s << "\tsType = " << value.sType << '\n';
11092	s << "\tpNext = " << value.pNext << '\n';
11093	s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
11094	s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
11095	s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
11096	s << '}';
11097	return s;
11098}
11099
11100std::ostream& operator<< (std::ostream& s, const VkBufferDeviceAddressCreateInfoEXT& value)
11101{
11102	s << "VkBufferDeviceAddressCreateInfoEXT = {\n";
11103	s << "\tsType = " << value.sType << '\n';
11104	s << "\tpNext = " << value.pNext << '\n';
11105	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
11106	s << '}';
11107	return s;
11108}
11109
11110std::ostream& operator<< (std::ostream& s, const VkValidationFeaturesEXT& value)
11111{
11112	s << "VkValidationFeaturesEXT = {\n";
11113	s << "\tsType = " << value.sType << '\n';
11114	s << "\tpNext = " << value.pNext << '\n';
11115	s << "\tenabledValidationFeatureCount = " << value.enabledValidationFeatureCount << '\n';
11116	s << "\tpEnabledValidationFeatures = " << value.pEnabledValidationFeatures << '\n';
11117	s << "\tdisabledValidationFeatureCount = " << value.disabledValidationFeatureCount << '\n';
11118	s << "\tpDisabledValidationFeatures = " << value.pDisabledValidationFeatures << '\n';
11119	s << '}';
11120	return s;
11121}
11122
11123std::ostream& operator<< (std::ostream& s, const VkCooperativeMatrixPropertiesNV& value)
11124{
11125	s << "VkCooperativeMatrixPropertiesNV = {\n";
11126	s << "\tsType = " << value.sType << '\n';
11127	s << "\tpNext = " << value.pNext << '\n';
11128	s << "\tMSize = " << value.MSize << '\n';
11129	s << "\tNSize = " << value.NSize << '\n';
11130	s << "\tKSize = " << value.KSize << '\n';
11131	s << "\tAType = " << value.AType << '\n';
11132	s << "\tBType = " << value.BType << '\n';
11133	s << "\tCType = " << value.CType << '\n';
11134	s << "\tDType = " << value.DType << '\n';
11135	s << "\tscope = " << value.scope << '\n';
11136	s << '}';
11137	return s;
11138}
11139
11140std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixFeaturesNV& value)
11141{
11142	s << "VkPhysicalDeviceCooperativeMatrixFeaturesNV = {\n";
11143	s << "\tsType = " << value.sType << '\n';
11144	s << "\tpNext = " << value.pNext << '\n';
11145	s << "\tcooperativeMatrix = " << value.cooperativeMatrix << '\n';
11146	s << "\tcooperativeMatrixRobustBufferAccess = " << value.cooperativeMatrixRobustBufferAccess << '\n';
11147	s << '}';
11148	return s;
11149}
11150
11151std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixPropertiesNV& value)
11152{
11153	s << "VkPhysicalDeviceCooperativeMatrixPropertiesNV = {\n";
11154	s << "\tsType = " << value.sType << '\n';
11155	s << "\tpNext = " << value.pNext << '\n';
11156	s << "\tcooperativeMatrixSupportedStages = " << getShaderStageFlagsStr(value.cooperativeMatrixSupportedStages) << '\n';
11157	s << '}';
11158	return s;
11159}
11160
11161std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCoverageReductionModeFeaturesNV& value)
11162{
11163	s << "VkPhysicalDeviceCoverageReductionModeFeaturesNV = {\n";
11164	s << "\tsType = " << value.sType << '\n';
11165	s << "\tpNext = " << value.pNext << '\n';
11166	s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
11167	s << '}';
11168	return s;
11169}
11170
11171std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageReductionStateCreateInfoNV& value)
11172{
11173	s << "VkPipelineCoverageReductionStateCreateInfoNV = {\n";
11174	s << "\tsType = " << value.sType << '\n';
11175	s << "\tpNext = " << value.pNext << '\n';
11176	s << "\tflags = " << getPipelineCoverageReductionStateCreateFlagsNVStr(value.flags) << '\n';
11177	s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
11178	s << '}';
11179	return s;
11180}
11181
11182std::ostream& operator<< (std::ostream& s, const VkFramebufferMixedSamplesCombinationNV& value)
11183{
11184	s << "VkFramebufferMixedSamplesCombinationNV = {\n";
11185	s << "\tsType = " << value.sType << '\n';
11186	s << "\tpNext = " << value.pNext << '\n';
11187	s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
11188	s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
11189	s << "\tdepthStencilSamples = " << getSampleCountFlagsStr(value.depthStencilSamples) << '\n';
11190	s << "\tcolorSamples = " << getSampleCountFlagsStr(value.colorSamples) << '\n';
11191	s << '}';
11192	return s;
11193}
11194
11195std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT& value)
11196{
11197	s << "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT = {\n";
11198	s << "\tsType = " << value.sType << '\n';
11199	s << "\tpNext = " << value.pNext << '\n';
11200	s << "\tfragmentShaderSampleInterlock = " << value.fragmentShaderSampleInterlock << '\n';
11201	s << "\tfragmentShaderPixelInterlock = " << value.fragmentShaderPixelInterlock << '\n';
11202	s << "\tfragmentShaderShadingRateInterlock = " << value.fragmentShaderShadingRateInterlock << '\n';
11203	s << '}';
11204	return s;
11205}
11206
11207std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT& value)
11208{
11209	s << "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT = {\n";
11210	s << "\tsType = " << value.sType << '\n';
11211	s << "\tpNext = " << value.pNext << '\n';
11212	s << "\tycbcrImageArrays = " << value.ycbcrImageArrays << '\n';
11213	s << '}';
11214	return s;
11215}
11216
11217std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProvokingVertexFeaturesEXT& value)
11218{
11219	s << "VkPhysicalDeviceProvokingVertexFeaturesEXT = {\n";
11220	s << "\tsType = " << value.sType << '\n';
11221	s << "\tpNext = " << value.pNext << '\n';
11222	s << "\tprovokingVertexLast = " << value.provokingVertexLast << '\n';
11223	s << "\ttransformFeedbackPreservesProvokingVertex = " << value.transformFeedbackPreservesProvokingVertex << '\n';
11224	s << '}';
11225	return s;
11226}
11227
11228std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProvokingVertexPropertiesEXT& value)
11229{
11230	s << "VkPhysicalDeviceProvokingVertexPropertiesEXT = {\n";
11231	s << "\tsType = " << value.sType << '\n';
11232	s << "\tpNext = " << value.pNext << '\n';
11233	s << "\tprovokingVertexModePerPipeline = " << value.provokingVertexModePerPipeline << '\n';
11234	s << "\ttransformFeedbackPreservesTriangleFanProvokingVertex = " << value.transformFeedbackPreservesTriangleFanProvokingVertex << '\n';
11235	s << '}';
11236	return s;
11237}
11238
11239std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT& value)
11240{
11241	s << "VkPipelineRasterizationProvokingVertexStateCreateInfoEXT = {\n";
11242	s << "\tsType = " << value.sType << '\n';
11243	s << "\tpNext = " << value.pNext << '\n';
11244	s << "\tprovokingVertexMode = " << value.provokingVertexMode << '\n';
11245	s << '}';
11246	return s;
11247}
11248
11249std::ostream& operator<< (std::ostream& s, const VkHeadlessSurfaceCreateInfoEXT& value)
11250{
11251	s << "VkHeadlessSurfaceCreateInfoEXT = {\n";
11252	s << "\tsType = " << value.sType << '\n';
11253	s << "\tpNext = " << value.pNext << '\n';
11254	s << "\tflags = " << getHeadlessSurfaceCreateFlagsEXTStr(value.flags) << '\n';
11255	s << '}';
11256	return s;
11257}
11258
11259std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLineRasterizationFeaturesEXT& value)
11260{
11261	s << "VkPhysicalDeviceLineRasterizationFeaturesEXT = {\n";
11262	s << "\tsType = " << value.sType << '\n';
11263	s << "\tpNext = " << value.pNext << '\n';
11264	s << "\trectangularLines = " << value.rectangularLines << '\n';
11265	s << "\tbresenhamLines = " << value.bresenhamLines << '\n';
11266	s << "\tsmoothLines = " << value.smoothLines << '\n';
11267	s << "\tstippledRectangularLines = " << value.stippledRectangularLines << '\n';
11268	s << "\tstippledBresenhamLines = " << value.stippledBresenhamLines << '\n';
11269	s << "\tstippledSmoothLines = " << value.stippledSmoothLines << '\n';
11270	s << '}';
11271	return s;
11272}
11273
11274std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLineRasterizationPropertiesEXT& value)
11275{
11276	s << "VkPhysicalDeviceLineRasterizationPropertiesEXT = {\n";
11277	s << "\tsType = " << value.sType << '\n';
11278	s << "\tpNext = " << value.pNext << '\n';
11279	s << "\tlineSubPixelPrecisionBits = " << value.lineSubPixelPrecisionBits << '\n';
11280	s << '}';
11281	return s;
11282}
11283
11284std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationLineStateCreateInfoEXT& value)
11285{
11286	s << "VkPipelineRasterizationLineStateCreateInfoEXT = {\n";
11287	s << "\tsType = " << value.sType << '\n';
11288	s << "\tpNext = " << value.pNext << '\n';
11289	s << "\tlineRasterizationMode = " << value.lineRasterizationMode << '\n';
11290	s << "\tstippledLineEnable = " << value.stippledLineEnable << '\n';
11291	s << "\tlineStippleFactor = " << value.lineStippleFactor << '\n';
11292	s << "\tlineStipplePattern = " << value.lineStipplePattern << '\n';
11293	s << '}';
11294	return s;
11295}
11296
11297std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT& value)
11298{
11299	s << "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT = {\n";
11300	s << "\tsType = " << value.sType << '\n';
11301	s << "\tpNext = " << value.pNext << '\n';
11302	s << "\tshaderBufferFloat32Atomics = " << value.shaderBufferFloat32Atomics << '\n';
11303	s << "\tshaderBufferFloat32AtomicAdd = " << value.shaderBufferFloat32AtomicAdd << '\n';
11304	s << "\tshaderBufferFloat64Atomics = " << value.shaderBufferFloat64Atomics << '\n';
11305	s << "\tshaderBufferFloat64AtomicAdd = " << value.shaderBufferFloat64AtomicAdd << '\n';
11306	s << "\tshaderSharedFloat32Atomics = " << value.shaderSharedFloat32Atomics << '\n';
11307	s << "\tshaderSharedFloat32AtomicAdd = " << value.shaderSharedFloat32AtomicAdd << '\n';
11308	s << "\tshaderSharedFloat64Atomics = " << value.shaderSharedFloat64Atomics << '\n';
11309	s << "\tshaderSharedFloat64AtomicAdd = " << value.shaderSharedFloat64AtomicAdd << '\n';
11310	s << "\tshaderImageFloat32Atomics = " << value.shaderImageFloat32Atomics << '\n';
11311	s << "\tshaderImageFloat32AtomicAdd = " << value.shaderImageFloat32AtomicAdd << '\n';
11312	s << "\tsparseImageFloat32Atomics = " << value.sparseImageFloat32Atomics << '\n';
11313	s << "\tsparseImageFloat32AtomicAdd = " << value.sparseImageFloat32AtomicAdd << '\n';
11314	s << '}';
11315	return s;
11316}
11317
11318std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIndexTypeUint8FeaturesEXT& value)
11319{
11320	s << "VkPhysicalDeviceIndexTypeUint8FeaturesEXT = {\n";
11321	s << "\tsType = " << value.sType << '\n';
11322	s << "\tpNext = " << value.pNext << '\n';
11323	s << "\tindexTypeUint8 = " << value.indexTypeUint8 << '\n';
11324	s << '}';
11325	return s;
11326}
11327
11328std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT& value)
11329{
11330	s << "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT = {\n";
11331	s << "\tsType = " << value.sType << '\n';
11332	s << "\tpNext = " << value.pNext << '\n';
11333	s << "\textendedDynamicState = " << value.extendedDynamicState << '\n';
11334	s << '}';
11335	return s;
11336}
11337
11338std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT& value)
11339{
11340	s << "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT = {\n";
11341	s << "\tsType = " << value.sType << '\n';
11342	s << "\tpNext = " << value.pNext << '\n';
11343	s << "\tshaderBufferFloat16Atomics = " << value.shaderBufferFloat16Atomics << '\n';
11344	s << "\tshaderBufferFloat16AtomicAdd = " << value.shaderBufferFloat16AtomicAdd << '\n';
11345	s << "\tshaderBufferFloat16AtomicMinMax = " << value.shaderBufferFloat16AtomicMinMax << '\n';
11346	s << "\tshaderBufferFloat32AtomicMinMax = " << value.shaderBufferFloat32AtomicMinMax << '\n';
11347	s << "\tshaderBufferFloat64AtomicMinMax = " << value.shaderBufferFloat64AtomicMinMax << '\n';
11348	s << "\tshaderSharedFloat16Atomics = " << value.shaderSharedFloat16Atomics << '\n';
11349	s << "\tshaderSharedFloat16AtomicAdd = " << value.shaderSharedFloat16AtomicAdd << '\n';
11350	s << "\tshaderSharedFloat16AtomicMinMax = " << value.shaderSharedFloat16AtomicMinMax << '\n';
11351	s << "\tshaderSharedFloat32AtomicMinMax = " << value.shaderSharedFloat32AtomicMinMax << '\n';
11352	s << "\tshaderSharedFloat64AtomicMinMax = " << value.shaderSharedFloat64AtomicMinMax << '\n';
11353	s << "\tshaderImageFloat32AtomicMinMax = " << value.shaderImageFloat32AtomicMinMax << '\n';
11354	s << "\tsparseImageFloat32AtomicMinMax = " << value.sparseImageFloat32AtomicMinMax << '\n';
11355	s << '}';
11356	return s;
11357}
11358
11359std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV& value)
11360{
11361	s << "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV = {\n";
11362	s << "\tsType = " << value.sType << '\n';
11363	s << "\tpNext = " << value.pNext << '\n';
11364	s << "\tmaxGraphicsShaderGroupCount = " << value.maxGraphicsShaderGroupCount << '\n';
11365	s << "\tmaxIndirectSequenceCount = " << value.maxIndirectSequenceCount << '\n';
11366	s << "\tmaxIndirectCommandsTokenCount = " << value.maxIndirectCommandsTokenCount << '\n';
11367	s << "\tmaxIndirectCommandsStreamCount = " << value.maxIndirectCommandsStreamCount << '\n';
11368	s << "\tmaxIndirectCommandsTokenOffset = " << value.maxIndirectCommandsTokenOffset << '\n';
11369	s << "\tmaxIndirectCommandsStreamStride = " << value.maxIndirectCommandsStreamStride << '\n';
11370	s << "\tminSequencesCountBufferOffsetAlignment = " << value.minSequencesCountBufferOffsetAlignment << '\n';
11371	s << "\tminSequencesIndexBufferOffsetAlignment = " << value.minSequencesIndexBufferOffsetAlignment << '\n';
11372	s << "\tminIndirectCommandsBufferOffsetAlignment = " << value.minIndirectCommandsBufferOffsetAlignment << '\n';
11373	s << '}';
11374	return s;
11375}
11376
11377std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV& value)
11378{
11379	s << "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV = {\n";
11380	s << "\tsType = " << value.sType << '\n';
11381	s << "\tpNext = " << value.pNext << '\n';
11382	s << "\tdeviceGeneratedCommands = " << value.deviceGeneratedCommands << '\n';
11383	s << '}';
11384	return s;
11385}
11386
11387std::ostream& operator<< (std::ostream& s, const VkGraphicsShaderGroupCreateInfoNV& value)
11388{
11389	s << "VkGraphicsShaderGroupCreateInfoNV = {\n";
11390	s << "\tsType = " << value.sType << '\n';
11391	s << "\tpNext = " << value.pNext << '\n';
11392	s << "\tstageCount = " << value.stageCount << '\n';
11393	s << "\tpStages = " << value.pStages << '\n';
11394	s << "\tpVertexInputState = " << value.pVertexInputState << '\n';
11395	s << "\tpTessellationState = " << value.pTessellationState << '\n';
11396	s << '}';
11397	return s;
11398}
11399
11400std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineShaderGroupsCreateInfoNV& value)
11401{
11402	s << "VkGraphicsPipelineShaderGroupsCreateInfoNV = {\n";
11403	s << "\tsType = " << value.sType << '\n';
11404	s << "\tpNext = " << value.pNext << '\n';
11405	s << "\tgroupCount = " << value.groupCount << '\n';
11406	s << "\tpGroups = " << value.pGroups << '\n';
11407	s << "\tpipelineCount = " << value.pipelineCount << '\n';
11408	s << "\tpPipelines = " << value.pPipelines << '\n';
11409	s << '}';
11410	return s;
11411}
11412
11413std::ostream& operator<< (std::ostream& s, const VkBindShaderGroupIndirectCommandNV& value)
11414{
11415	s << "VkBindShaderGroupIndirectCommandNV = {\n";
11416	s << "\tgroupIndex = " << value.groupIndex << '\n';
11417	s << '}';
11418	return s;
11419}
11420
11421std::ostream& operator<< (std::ostream& s, const VkBindIndexBufferIndirectCommandNV& value)
11422{
11423	s << "VkBindIndexBufferIndirectCommandNV = {\n";
11424	s << "\tbufferAddress = " << value.bufferAddress << '\n';
11425	s << "\tsize = " << value.size << '\n';
11426	s << "\tindexType = " << value.indexType << '\n';
11427	s << '}';
11428	return s;
11429}
11430
11431std::ostream& operator<< (std::ostream& s, const VkBindVertexBufferIndirectCommandNV& value)
11432{
11433	s << "VkBindVertexBufferIndirectCommandNV = {\n";
11434	s << "\tbufferAddress = " << value.bufferAddress << '\n';
11435	s << "\tsize = " << value.size << '\n';
11436	s << "\tstride = " << value.stride << '\n';
11437	s << '}';
11438	return s;
11439}
11440
11441std::ostream& operator<< (std::ostream& s, const VkSetStateFlagsIndirectCommandNV& value)
11442{
11443	s << "VkSetStateFlagsIndirectCommandNV = {\n";
11444	s << "\tdata = " << value.data << '\n';
11445	s << '}';
11446	return s;
11447}
11448
11449std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsStreamNV& value)
11450{
11451	s << "VkIndirectCommandsStreamNV = {\n";
11452	s << "\tbuffer = " << value.buffer << '\n';
11453	s << "\toffset = " << value.offset << '\n';
11454	s << '}';
11455	return s;
11456}
11457
11458std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutTokenNV& value)
11459{
11460	s << "VkIndirectCommandsLayoutTokenNV = {\n";
11461	s << "\tsType = " << value.sType << '\n';
11462	s << "\tpNext = " << value.pNext << '\n';
11463	s << "\ttokenType = " << value.tokenType << '\n';
11464	s << "\tstream = " << value.stream << '\n';
11465	s << "\toffset = " << value.offset << '\n';
11466	s << "\tvertexBindingUnit = " << value.vertexBindingUnit << '\n';
11467	s << "\tvertexDynamicStride = " << value.vertexDynamicStride << '\n';
11468	s << "\tpushconstantPipelineLayout = " << value.pushconstantPipelineLayout << '\n';
11469	s << "\tpushconstantShaderStageFlags = " << getShaderStageFlagsStr(value.pushconstantShaderStageFlags) << '\n';
11470	s << "\tpushconstantOffset = " << value.pushconstantOffset << '\n';
11471	s << "\tpushconstantSize = " << value.pushconstantSize << '\n';
11472	s << "\tindirectStateFlags = " << getIndirectStateFlagsNVStr(value.indirectStateFlags) << '\n';
11473	s << "\tindexTypeCount = " << value.indexTypeCount << '\n';
11474	s << "\tpIndexTypes = " << value.pIndexTypes << '\n';
11475	s << "\tpIndexTypeValues = " << value.pIndexTypeValues << '\n';
11476	s << '}';
11477	return s;
11478}
11479
11480std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutCreateInfoNV& value)
11481{
11482	s << "VkIndirectCommandsLayoutCreateInfoNV = {\n";
11483	s << "\tsType = " << value.sType << '\n';
11484	s << "\tpNext = " << value.pNext << '\n';
11485	s << "\tflags = " << getIndirectCommandsLayoutUsageFlagsNVStr(value.flags) << '\n';
11486	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
11487	s << "\ttokenCount = " << value.tokenCount << '\n';
11488	s << "\tpTokens = " << value.pTokens << '\n';
11489	s << "\tstreamCount = " << value.streamCount << '\n';
11490	s << "\tpStreamStrides = " << value.pStreamStrides << '\n';
11491	s << '}';
11492	return s;
11493}
11494
11495std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsInfoNV& value)
11496{
11497	s << "VkGeneratedCommandsInfoNV = {\n";
11498	s << "\tsType = " << value.sType << '\n';
11499	s << "\tpNext = " << value.pNext << '\n';
11500	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
11501	s << "\tpipeline = " << value.pipeline << '\n';
11502	s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
11503	s << "\tstreamCount = " << value.streamCount << '\n';
11504	s << "\tpStreams = " << value.pStreams << '\n';
11505	s << "\tsequencesCount = " << value.sequencesCount << '\n';
11506	s << "\tpreprocessBuffer = " << value.preprocessBuffer << '\n';
11507	s << "\tpreprocessOffset = " << value.preprocessOffset << '\n';
11508	s << "\tpreprocessSize = " << value.preprocessSize << '\n';
11509	s << "\tsequencesCountBuffer = " << value.sequencesCountBuffer << '\n';
11510	s << "\tsequencesCountOffset = " << value.sequencesCountOffset << '\n';
11511	s << "\tsequencesIndexBuffer = " << value.sequencesIndexBuffer << '\n';
11512	s << "\tsequencesIndexOffset = " << value.sequencesIndexOffset << '\n';
11513	s << '}';
11514	return s;
11515}
11516
11517std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsMemoryRequirementsInfoNV& value)
11518{
11519	s << "VkGeneratedCommandsMemoryRequirementsInfoNV = {\n";
11520	s << "\tsType = " << value.sType << '\n';
11521	s << "\tpNext = " << value.pNext << '\n';
11522	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
11523	s << "\tpipeline = " << value.pipeline << '\n';
11524	s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
11525	s << "\tmaxSequencesCount = " << value.maxSequencesCount << '\n';
11526	s << '}';
11527	return s;
11528}
11529
11530std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInheritedViewportScissorFeaturesNV& value)
11531{
11532	s << "VkPhysicalDeviceInheritedViewportScissorFeaturesNV = {\n";
11533	s << "\tsType = " << value.sType << '\n';
11534	s << "\tpNext = " << value.pNext << '\n';
11535	s << "\tinheritedViewportScissor2D = " << value.inheritedViewportScissor2D << '\n';
11536	s << '}';
11537	return s;
11538}
11539
11540std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceViewportScissorInfoNV& value)
11541{
11542	s << "VkCommandBufferInheritanceViewportScissorInfoNV = {\n";
11543	s << "\tsType = " << value.sType << '\n';
11544	s << "\tpNext = " << value.pNext << '\n';
11545	s << "\tviewportScissor2D = " << value.viewportScissor2D << '\n';
11546	s << "\tviewportDepthCount = " << value.viewportDepthCount << '\n';
11547	s << "\tpViewportDepths = " << value.pViewportDepths << '\n';
11548	s << '}';
11549	return s;
11550}
11551
11552std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT& value)
11553{
11554	s << "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT = {\n";
11555	s << "\tsType = " << value.sType << '\n';
11556	s << "\tpNext = " << value.pNext << '\n';
11557	s << "\ttexelBufferAlignment = " << value.texelBufferAlignment << '\n';
11558	s << '}';
11559	return s;
11560}
11561
11562std::ostream& operator<< (std::ostream& s, const VkRenderPassTransformBeginInfoQCOM& value)
11563{
11564	s << "VkRenderPassTransformBeginInfoQCOM = {\n";
11565	s << "\tsType = " << value.sType << '\n';
11566	s << "\tpNext = " << value.pNext << '\n';
11567	s << "\ttransform = " << value.transform << '\n';
11568	s << '}';
11569	return s;
11570}
11571
11572std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceRenderPassTransformInfoQCOM& value)
11573{
11574	s << "VkCommandBufferInheritanceRenderPassTransformInfoQCOM = {\n";
11575	s << "\tsType = " << value.sType << '\n';
11576	s << "\tpNext = " << value.pNext << '\n';
11577	s << "\ttransform = " << value.transform << '\n';
11578	s << "\trenderArea = " << value.renderArea << '\n';
11579	s << '}';
11580	return s;
11581}
11582
11583std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT& value)
11584{
11585	s << "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT = {\n";
11586	s << "\tsType = " << value.sType << '\n';
11587	s << "\tpNext = " << value.pNext << '\n';
11588	s << "\tdeviceMemoryReport = " << value.deviceMemoryReport << '\n';
11589	s << '}';
11590	return s;
11591}
11592
11593std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryReportCallbackDataEXT& value)
11594{
11595	s << "VkDeviceMemoryReportCallbackDataEXT = {\n";
11596	s << "\tsType = " << value.sType << '\n';
11597	s << "\tpNext = " << value.pNext << '\n';
11598	s << "\tflags = " << getDeviceMemoryReportFlagsEXTStr(value.flags) << '\n';
11599	s << "\ttype = " << value.type << '\n';
11600	s << "\tmemoryObjectId = " << value.memoryObjectId << '\n';
11601	s << "\tsize = " << value.size << '\n';
11602	s << "\tobjectType = " << value.objectType << '\n';
11603	s << "\tobjectHandle = " << value.objectHandle << '\n';
11604	s << "\theapIndex = " << value.heapIndex << '\n';
11605	s << '}';
11606	return s;
11607}
11608
11609std::ostream& operator<< (std::ostream& s, const VkDeviceDeviceMemoryReportCreateInfoEXT& value)
11610{
11611	s << "VkDeviceDeviceMemoryReportCreateInfoEXT = {\n";
11612	s << "\tsType = " << value.sType << '\n';
11613	s << "\tpNext = " << value.pNext << '\n';
11614	s << "\tflags = " << getDeviceMemoryReportFlagsEXTStr(value.flags) << '\n';
11615	s << "\tpfnUserCallback = " << value.pfnUserCallback << '\n';
11616	s << "\tpUserData = " << value.pUserData << '\n';
11617	s << '}';
11618	return s;
11619}
11620
11621std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2FeaturesEXT& value)
11622{
11623	s << "VkPhysicalDeviceRobustness2FeaturesEXT = {\n";
11624	s << "\tsType = " << value.sType << '\n';
11625	s << "\tpNext = " << value.pNext << '\n';
11626	s << "\trobustBufferAccess2 = " << value.robustBufferAccess2 << '\n';
11627	s << "\trobustImageAccess2 = " << value.robustImageAccess2 << '\n';
11628	s << "\tnullDescriptor = " << value.nullDescriptor << '\n';
11629	s << '}';
11630	return s;
11631}
11632
11633std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2PropertiesEXT& value)
11634{
11635	s << "VkPhysicalDeviceRobustness2PropertiesEXT = {\n";
11636	s << "\tsType = " << value.sType << '\n';
11637	s << "\tpNext = " << value.pNext << '\n';
11638	s << "\trobustStorageBufferAccessSizeAlignment = " << value.robustStorageBufferAccessSizeAlignment << '\n';
11639	s << "\trobustUniformBufferAccessSizeAlignment = " << value.robustUniformBufferAccessSizeAlignment << '\n';
11640	s << '}';
11641	return s;
11642}
11643
11644std::ostream& operator<< (std::ostream& s, const VkSamplerCustomBorderColorCreateInfoEXT& value)
11645{
11646	s << "VkSamplerCustomBorderColorCreateInfoEXT = {\n";
11647	s << "\tsType = " << value.sType << '\n';
11648	s << "\tpNext = " << value.pNext << '\n';
11649	s << "\tcustomBorderColor = " << value.customBorderColor << '\n';
11650	s << "\tformat = " << value.format << '\n';
11651	s << '}';
11652	return s;
11653}
11654
11655std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCustomBorderColorPropertiesEXT& value)
11656{
11657	s << "VkPhysicalDeviceCustomBorderColorPropertiesEXT = {\n";
11658	s << "\tsType = " << value.sType << '\n';
11659	s << "\tpNext = " << value.pNext << '\n';
11660	s << "\tmaxCustomBorderColorSamplers = " << value.maxCustomBorderColorSamplers << '\n';
11661	s << '}';
11662	return s;
11663}
11664
11665std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCustomBorderColorFeaturesEXT& value)
11666{
11667	s << "VkPhysicalDeviceCustomBorderColorFeaturesEXT = {\n";
11668	s << "\tsType = " << value.sType << '\n';
11669	s << "\tpNext = " << value.pNext << '\n';
11670	s << "\tcustomBorderColors = " << value.customBorderColors << '\n';
11671	s << "\tcustomBorderColorWithoutFormat = " << value.customBorderColorWithoutFormat << '\n';
11672	s << '}';
11673	return s;
11674}
11675
11676std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiagnosticsConfigFeaturesNV& value)
11677{
11678	s << "VkPhysicalDeviceDiagnosticsConfigFeaturesNV = {\n";
11679	s << "\tsType = " << value.sType << '\n';
11680	s << "\tpNext = " << value.pNext << '\n';
11681	s << "\tdiagnosticsConfig = " << value.diagnosticsConfig << '\n';
11682	s << '}';
11683	return s;
11684}
11685
11686std::ostream& operator<< (std::ostream& s, const VkDeviceDiagnosticsConfigCreateInfoNV& value)
11687{
11688	s << "VkDeviceDiagnosticsConfigCreateInfoNV = {\n";
11689	s << "\tsType = " << value.sType << '\n';
11690	s << "\tpNext = " << value.pNext << '\n';
11691	s << "\tflags = " << getDeviceDiagnosticsConfigFlagsNVStr(value.flags) << '\n';
11692	s << '}';
11693	return s;
11694}
11695
11696std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV& value)
11697{
11698	s << "VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV = {\n";
11699	s << "\tsType = " << value.sType << '\n';
11700	s << "\tpNext = " << value.pNext << '\n';
11701	s << "\tfragmentShadingRateEnums = " << value.fragmentShadingRateEnums << '\n';
11702	s << "\tsupersampleFragmentShadingRates = " << value.supersampleFragmentShadingRates << '\n';
11703	s << "\tnoInvocationFragmentShadingRates = " << value.noInvocationFragmentShadingRates << '\n';
11704	s << '}';
11705	return s;
11706}
11707
11708std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV& value)
11709{
11710	s << "VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV = {\n";
11711	s << "\tsType = " << value.sType << '\n';
11712	s << "\tpNext = " << value.pNext << '\n';
11713	s << "\tmaxFragmentShadingRateInvocationCount = " << value.maxFragmentShadingRateInvocationCount << '\n';
11714	s << '}';
11715	return s;
11716}
11717
11718std::ostream& operator<< (std::ostream& s, const VkPipelineFragmentShadingRateEnumStateCreateInfoNV& value)
11719{
11720	s << "VkPipelineFragmentShadingRateEnumStateCreateInfoNV = {\n";
11721	s << "\tsType = " << value.sType << '\n';
11722	s << "\tpNext = " << value.pNext << '\n';
11723	s << "\tshadingRateType = " << value.shadingRateType << '\n';
11724	s << "\tshadingRate = " << value.shadingRate << '\n';
11725	s << "\tcombinerOps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.combinerOps), DE_ARRAY_END(value.combinerOps)) << '\n';
11726	s << '}';
11727	return s;
11728}
11729
11730std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressConstKHR& value)
11731{
11732	s << "VkDeviceOrHostAddressConstKHR = {\n";
11733	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
11734	s << "\thostAddress = " << value.hostAddress << '\n';
11735	s << '}';
11736	return s;
11737}
11738
11739std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryMotionTrianglesDataNV& value)
11740{
11741	s << "VkAccelerationStructureGeometryMotionTrianglesDataNV = {\n";
11742	s << "\tsType = " << value.sType << '\n';
11743	s << "\tpNext = " << value.pNext << '\n';
11744	s << "\tvertexData = " << value.vertexData << '\n';
11745	s << '}';
11746	return s;
11747}
11748
11749std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInfoNV& value)
11750{
11751	s << "VkAccelerationStructureMotionInfoNV = {\n";
11752	s << "\tsType = " << value.sType << '\n';
11753	s << "\tpNext = " << value.pNext << '\n';
11754	s << "\tmaxInstances = " << value.maxInstances << '\n';
11755	s << "\tflags = " << getAccelerationStructureMotionInfoFlagsNVStr(value.flags) << '\n';
11756	s << '}';
11757	return s;
11758}
11759
11760std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMatrixMotionInstanceNV& value)
11761{
11762	s << "VkAccelerationStructureMatrixMotionInstanceNV = {\n";
11763	s << "\ttransformT0 = " << value.transformT0 << '\n';
11764	s << "\ttransformT1 = " << value.transformT1 << '\n';
11765	s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
11766	s << "\tmask = " << value.mask << '\n';
11767	s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
11768	s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
11769	s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
11770	s << '}';
11771	return s;
11772}
11773
11774std::ostream& operator<< (std::ostream& s, const VkSRTDataNV& value)
11775{
11776	s << "VkSRTDataNV = {\n";
11777	s << "\tsx = " << value.sx << '\n';
11778	s << "\ta = " << value.a << '\n';
11779	s << "\tb = " << value.b << '\n';
11780	s << "\tpvx = " << value.pvx << '\n';
11781	s << "\tsy = " << value.sy << '\n';
11782	s << "\tc = " << value.c << '\n';
11783	s << "\tpvy = " << value.pvy << '\n';
11784	s << "\tsz = " << value.sz << '\n';
11785	s << "\tpvz = " << value.pvz << '\n';
11786	s << "\tqx = " << value.qx << '\n';
11787	s << "\tqy = " << value.qy << '\n';
11788	s << "\tqz = " << value.qz << '\n';
11789	s << "\tqw = " << value.qw << '\n';
11790	s << "\ttx = " << value.tx << '\n';
11791	s << "\tty = " << value.ty << '\n';
11792	s << "\ttz = " << value.tz << '\n';
11793	s << '}';
11794	return s;
11795}
11796
11797std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureSRTMotionInstanceNV& value)
11798{
11799	s << "VkAccelerationStructureSRTMotionInstanceNV = {\n";
11800	s << "\ttransformT0 = " << value.transformT0 << '\n';
11801	s << "\ttransformT1 = " << value.transformT1 << '\n';
11802	s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
11803	s << "\tmask = " << value.mask << '\n';
11804	s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
11805	s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
11806	s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
11807	s << '}';
11808	return s;
11809}
11810
11811std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInstanceDataNV& value)
11812{
11813	s << "VkAccelerationStructureMotionInstanceDataNV = {\n";
11814	s << "\tstaticInstance = " << value.staticInstance << '\n';
11815	s << "\tmatrixMotionInstance = " << value.matrixMotionInstance << '\n';
11816	s << "\tsrtMotionInstance = " << value.srtMotionInstance << '\n';
11817	s << '}';
11818	return s;
11819}
11820
11821std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInstanceNV& value)
11822{
11823	s << "VkAccelerationStructureMotionInstanceNV = {\n";
11824	s << "\ttype = " << value.type << '\n';
11825	s << "\tflags = " << getAccelerationStructureMotionInstanceFlagsNVStr(value.flags) << '\n';
11826	s << "\tdata = " << value.data << '\n';
11827	s << '}';
11828	return s;
11829}
11830
11831std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV& value)
11832{
11833	s << "VkPhysicalDeviceRayTracingMotionBlurFeaturesNV = {\n";
11834	s << "\tsType = " << value.sType << '\n';
11835	s << "\tpNext = " << value.pNext << '\n';
11836	s << "\trayTracingMotionBlur = " << value.rayTracingMotionBlur << '\n';
11837	s << "\trayTracingMotionBlurPipelineTraceRaysIndirect = " << value.rayTracingMotionBlurPipelineTraceRaysIndirect << '\n';
11838	s << '}';
11839	return s;
11840}
11841
11842std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT& value)
11843{
11844	s << "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = {\n";
11845	s << "\tsType = " << value.sType << '\n';
11846	s << "\tpNext = " << value.pNext << '\n';
11847	s << "\tycbcr2plane444Formats = " << value.ycbcr2plane444Formats << '\n';
11848	s << '}';
11849	return s;
11850}
11851
11852std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT& value)
11853{
11854	s << "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT = {\n";
11855	s << "\tsType = " << value.sType << '\n';
11856	s << "\tpNext = " << value.pNext << '\n';
11857	s << "\tfragmentDensityMapDeferred = " << value.fragmentDensityMapDeferred << '\n';
11858	s << '}';
11859	return s;
11860}
11861
11862std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT& value)
11863{
11864	s << "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT = {\n";
11865	s << "\tsType = " << value.sType << '\n';
11866	s << "\tpNext = " << value.pNext << '\n';
11867	s << "\tsubsampledLoads = " << value.subsampledLoads << '\n';
11868	s << "\tsubsampledCoarseReconstructionEarlyAccess = " << value.subsampledCoarseReconstructionEarlyAccess << '\n';
11869	s << "\tmaxSubsampledArrayLayers = " << value.maxSubsampledArrayLayers << '\n';
11870	s << "\tmaxDescriptorSetSubsampledSamplers = " << value.maxDescriptorSetSubsampledSamplers << '\n';
11871	s << '}';
11872	return s;
11873}
11874
11875std::ostream& operator<< (std::ostream& s, const VkCopyCommandTransformInfoQCOM& value)
11876{
11877	s << "VkCopyCommandTransformInfoQCOM = {\n";
11878	s << "\tsType = " << value.sType << '\n';
11879	s << "\tpNext = " << value.pNext << '\n';
11880	s << "\ttransform = " << value.transform << '\n';
11881	s << '}';
11882	return s;
11883}
11884
11885std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice4444FormatsFeaturesEXT& value)
11886{
11887	s << "VkPhysicalDevice4444FormatsFeaturesEXT = {\n";
11888	s << "\tsType = " << value.sType << '\n';
11889	s << "\tpNext = " << value.pNext << '\n';
11890	s << "\tformatA4R4G4B4 = " << value.formatA4R4G4B4 << '\n';
11891	s << "\tformatA4B4G4R4 = " << value.formatA4B4G4R4 << '\n';
11892	s << '}';
11893	return s;
11894}
11895
11896std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM& value)
11897{
11898	s << "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = {\n";
11899	s << "\tsType = " << value.sType << '\n';
11900	s << "\tpNext = " << value.pNext << '\n';
11901	s << "\trasterizationOrderColorAttachmentAccess = " << value.rasterizationOrderColorAttachmentAccess << '\n';
11902	s << "\trasterizationOrderDepthAttachmentAccess = " << value.rasterizationOrderDepthAttachmentAccess << '\n';
11903	s << "\trasterizationOrderStencilAttachmentAccess = " << value.rasterizationOrderStencilAttachmentAccess << '\n';
11904	s << '}';
11905	return s;
11906}
11907
11908std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT& value)
11909{
11910	s << "VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT = {\n";
11911	s << "\tsType = " << value.sType << '\n';
11912	s << "\tpNext = " << value.pNext << '\n';
11913	s << "\tformatRgba10x6WithoutYCbCrSampler = " << value.formatRgba10x6WithoutYCbCrSampler << '\n';
11914	s << '}';
11915	return s;
11916}
11917
11918std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE& value)
11919{
11920	s << "VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = {\n";
11921	s << "\tsType = " << value.sType << '\n';
11922	s << "\tpNext = " << value.pNext << '\n';
11923	s << "\tmutableDescriptorType = " << value.mutableDescriptorType << '\n';
11924	s << '}';
11925	return s;
11926}
11927
11928std::ostream& operator<< (std::ostream& s, const VkMutableDescriptorTypeListVALVE& value)
11929{
11930	s << "VkMutableDescriptorTypeListVALVE = {\n";
11931	s << "\tdescriptorTypeCount = " << value.descriptorTypeCount << '\n';
11932	s << "\tpDescriptorTypes = " << value.pDescriptorTypes << '\n';
11933	s << '}';
11934	return s;
11935}
11936
11937std::ostream& operator<< (std::ostream& s, const VkMutableDescriptorTypeCreateInfoVALVE& value)
11938{
11939	s << "VkMutableDescriptorTypeCreateInfoVALVE = {\n";
11940	s << "\tsType = " << value.sType << '\n';
11941	s << "\tpNext = " << value.pNext << '\n';
11942	s << "\tmutableDescriptorTypeListCount = " << value.mutableDescriptorTypeListCount << '\n';
11943	s << "\tpMutableDescriptorTypeLists = " << value.pMutableDescriptorTypeLists << '\n';
11944	s << '}';
11945	return s;
11946}
11947
11948std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT& value)
11949{
11950	s << "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT = {\n";
11951	s << "\tsType = " << value.sType << '\n';
11952	s << "\tpNext = " << value.pNext << '\n';
11953	s << "\tvertexInputDynamicState = " << value.vertexInputDynamicState << '\n';
11954	s << '}';
11955	return s;
11956}
11957
11958std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDescription2EXT& value)
11959{
11960	s << "VkVertexInputBindingDescription2EXT = {\n";
11961	s << "\tsType = " << value.sType << '\n';
11962	s << "\tpNext = " << value.pNext << '\n';
11963	s << "\tbinding = " << value.binding << '\n';
11964	s << "\tstride = " << value.stride << '\n';
11965	s << "\tinputRate = " << value.inputRate << '\n';
11966	s << "\tdivisor = " << value.divisor << '\n';
11967	s << '}';
11968	return s;
11969}
11970
11971std::ostream& operator<< (std::ostream& s, const VkVertexInputAttributeDescription2EXT& value)
11972{
11973	s << "VkVertexInputAttributeDescription2EXT = {\n";
11974	s << "\tsType = " << value.sType << '\n';
11975	s << "\tpNext = " << value.pNext << '\n';
11976	s << "\tlocation = " << value.location << '\n';
11977	s << "\tbinding = " << value.binding << '\n';
11978	s << "\tformat = " << value.format << '\n';
11979	s << "\toffset = " << value.offset << '\n';
11980	s << '}';
11981	return s;
11982}
11983
11984std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDrmPropertiesEXT& value)
11985{
11986	s << "VkPhysicalDeviceDrmPropertiesEXT = {\n";
11987	s << "\tsType = " << value.sType << '\n';
11988	s << "\tpNext = " << value.pNext << '\n';
11989	s << "\thasPrimary = " << value.hasPrimary << '\n';
11990	s << "\thasRender = " << value.hasRender << '\n';
11991	s << "\tprimaryMajor = " << value.primaryMajor << '\n';
11992	s << "\tprimaryMinor = " << value.primaryMinor << '\n';
11993	s << "\trenderMajor = " << value.renderMajor << '\n';
11994	s << "\trenderMinor = " << value.renderMinor << '\n';
11995	s << '}';
11996	return s;
11997}
11998
11999std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClipControlFeaturesEXT& value)
12000{
12001	s << "VkPhysicalDeviceDepthClipControlFeaturesEXT = {\n";
12002	s << "\tsType = " << value.sType << '\n';
12003	s << "\tpNext = " << value.pNext << '\n';
12004	s << "\tdepthClipControl = " << value.depthClipControl << '\n';
12005	s << '}';
12006	return s;
12007}
12008
12009std::ostream& operator<< (std::ostream& s, const VkPipelineViewportDepthClipControlCreateInfoEXT& value)
12010{
12011	s << "VkPipelineViewportDepthClipControlCreateInfoEXT = {\n";
12012	s << "\tsType = " << value.sType << '\n';
12013	s << "\tpNext = " << value.pNext << '\n';
12014	s << "\tnegativeOneToOne = " << value.negativeOneToOne << '\n';
12015	s << '}';
12016	return s;
12017}
12018
12019std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT& value)
12020{
12021	s << "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = {\n";
12022	s << "\tsType = " << value.sType << '\n';
12023	s << "\tpNext = " << value.pNext << '\n';
12024	s << "\tprimitiveTopologyListRestart = " << value.primitiveTopologyListRestart << '\n';
12025	s << "\tprimitiveTopologyPatchListRestart = " << value.primitiveTopologyPatchListRestart << '\n';
12026	s << '}';
12027	return s;
12028}
12029
12030std::ostream& operator<< (std::ostream& s, const VkSubpassShadingPipelineCreateInfoHUAWEI& value)
12031{
12032	s << "VkSubpassShadingPipelineCreateInfoHUAWEI = {\n";
12033	s << "\tsType = " << value.sType << '\n';
12034	s << "\tpNext = " << value.pNext << '\n';
12035	s << "\trenderPass = " << value.renderPass << '\n';
12036	s << "\tsubpass = " << value.subpass << '\n';
12037	s << '}';
12038	return s;
12039}
12040
12041std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI& value)
12042{
12043	s << "VkPhysicalDeviceSubpassShadingFeaturesHUAWEI = {\n";
12044	s << "\tsType = " << value.sType << '\n';
12045	s << "\tpNext = " << value.pNext << '\n';
12046	s << "\tsubpassShading = " << value.subpassShading << '\n';
12047	s << '}';
12048	return s;
12049}
12050
12051std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI& value)
12052{
12053	s << "VkPhysicalDeviceSubpassShadingPropertiesHUAWEI = {\n";
12054	s << "\tsType = " << value.sType << '\n';
12055	s << "\tpNext = " << value.pNext << '\n';
12056	s << "\tmaxSubpassShadingWorkgroupSizeAspectRatio = " << value.maxSubpassShadingWorkgroupSizeAspectRatio << '\n';
12057	s << '}';
12058	return s;
12059}
12060
12061std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI& value)
12062{
12063	s << "VkPhysicalDeviceInvocationMaskFeaturesHUAWEI = {\n";
12064	s << "\tsType = " << value.sType << '\n';
12065	s << "\tpNext = " << value.pNext << '\n';
12066	s << "\tinvocationMask = " << value.invocationMask << '\n';
12067	s << '}';
12068	return s;
12069}
12070
12071std::ostream& operator<< (std::ostream& s, const VkMemoryGetRemoteAddressInfoNV& value)
12072{
12073	s << "VkMemoryGetRemoteAddressInfoNV = {\n";
12074	s << "\tsType = " << value.sType << '\n';
12075	s << "\tpNext = " << value.pNext << '\n';
12076	s << "\tmemory = " << value.memory << '\n';
12077	s << "\thandleType = " << value.handleType << '\n';
12078	s << '}';
12079	return s;
12080}
12081
12082std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV& value)
12083{
12084	s << "VkPhysicalDeviceExternalMemoryRDMAFeaturesNV = {\n";
12085	s << "\tsType = " << value.sType << '\n';
12086	s << "\tpNext = " << value.pNext << '\n';
12087	s << "\texternalMemoryRDMA = " << value.externalMemoryRDMA << '\n';
12088	s << '}';
12089	return s;
12090}
12091
12092std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT& value)
12093{
12094	s << "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT = {\n";
12095	s << "\tsType = " << value.sType << '\n';
12096	s << "\tpNext = " << value.pNext << '\n';
12097	s << "\textendedDynamicState2 = " << value.extendedDynamicState2 << '\n';
12098	s << "\textendedDynamicState2LogicOp = " << value.extendedDynamicState2LogicOp << '\n';
12099	s << "\textendedDynamicState2PatchControlPoints = " << value.extendedDynamicState2PatchControlPoints << '\n';
12100	s << '}';
12101	return s;
12102}
12103
12104std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceColorWriteEnableFeaturesEXT& value)
12105{
12106	s << "VkPhysicalDeviceColorWriteEnableFeaturesEXT = {\n";
12107	s << "\tsType = " << value.sType << '\n';
12108	s << "\tpNext = " << value.pNext << '\n';
12109	s << "\tcolorWriteEnable = " << value.colorWriteEnable << '\n';
12110	s << '}';
12111	return s;
12112}
12113
12114std::ostream& operator<< (std::ostream& s, const VkPipelineColorWriteCreateInfoEXT& value)
12115{
12116	s << "VkPipelineColorWriteCreateInfoEXT = {\n";
12117	s << "\tsType = " << value.sType << '\n';
12118	s << "\tpNext = " << value.pNext << '\n';
12119	s << "\tattachmentCount = " << value.attachmentCount << '\n';
12120	s << "\tpColorWriteEnables = " << value.pColorWriteEnables << '\n';
12121	s << '}';
12122	return s;
12123}
12124
12125std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageViewMinLodFeaturesEXT& value)
12126{
12127	s << "VkPhysicalDeviceImageViewMinLodFeaturesEXT = {\n";
12128	s << "\tsType = " << value.sType << '\n';
12129	s << "\tpNext = " << value.pNext << '\n';
12130	s << "\tminLod = " << value.minLod << '\n';
12131	s << '}';
12132	return s;
12133}
12134
12135std::ostream& operator<< (std::ostream& s, const VkImageViewMinLodCreateInfoEXT& value)
12136{
12137	s << "VkImageViewMinLodCreateInfoEXT = {\n";
12138	s << "\tsType = " << value.sType << '\n';
12139	s << "\tpNext = " << value.pNext << '\n';
12140	s << "\tminLod = " << value.minLod << '\n';
12141	s << '}';
12142	return s;
12143}
12144
12145std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiDrawFeaturesEXT& value)
12146{
12147	s << "VkPhysicalDeviceMultiDrawFeaturesEXT = {\n";
12148	s << "\tsType = " << value.sType << '\n';
12149	s << "\tpNext = " << value.pNext << '\n';
12150	s << "\tmultiDraw = " << value.multiDraw << '\n';
12151	s << '}';
12152	return s;
12153}
12154
12155std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiDrawPropertiesEXT& value)
12156{
12157	s << "VkPhysicalDeviceMultiDrawPropertiesEXT = {\n";
12158	s << "\tsType = " << value.sType << '\n';
12159	s << "\tpNext = " << value.pNext << '\n';
12160	s << "\tmaxMultiDrawCount = " << value.maxMultiDrawCount << '\n';
12161	s << '}';
12162	return s;
12163}
12164
12165std::ostream& operator<< (std::ostream& s, const VkMultiDrawInfoEXT& value)
12166{
12167	s << "VkMultiDrawInfoEXT = {\n";
12168	s << "\tfirstVertex = " << value.firstVertex << '\n';
12169	s << "\tvertexCount = " << value.vertexCount << '\n';
12170	s << '}';
12171	return s;
12172}
12173
12174std::ostream& operator<< (std::ostream& s, const VkMultiDrawIndexedInfoEXT& value)
12175{
12176	s << "VkMultiDrawIndexedInfoEXT = {\n";
12177	s << "\tfirstIndex = " << value.firstIndex << '\n';
12178	s << "\tindexCount = " << value.indexCount << '\n';
12179	s << "\tvertexOffset = " << value.vertexOffset << '\n';
12180	s << '}';
12181	return s;
12182}
12183
12184std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT& value)
12185{
12186	s << "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT = {\n";
12187	s << "\tsType = " << value.sType << '\n';
12188	s << "\tpNext = " << value.pNext << '\n';
12189	s << "\tborderColorSwizzle = " << value.borderColorSwizzle << '\n';
12190	s << "\tborderColorSwizzleFromImage = " << value.borderColorSwizzleFromImage << '\n';
12191	s << '}';
12192	return s;
12193}
12194
12195std::ostream& operator<< (std::ostream& s, const VkSamplerBorderColorComponentMappingCreateInfoEXT& value)
12196{
12197	s << "VkSamplerBorderColorComponentMappingCreateInfoEXT = {\n";
12198	s << "\tsType = " << value.sType << '\n';
12199	s << "\tpNext = " << value.pNext << '\n';
12200	s << "\tcomponents = " << value.components << '\n';
12201	s << "\tsrgb = " << value.srgb << '\n';
12202	s << '}';
12203	return s;
12204}
12205
12206std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT& value)
12207{
12208	s << "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT = {\n";
12209	s << "\tsType = " << value.sType << '\n';
12210	s << "\tpNext = " << value.pNext << '\n';
12211	s << "\tpageableDeviceLocalMemory = " << value.pageableDeviceLocalMemory << '\n';
12212	s << '}';
12213	return s;
12214}
12215
12216std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM& value)
12217{
12218	s << "VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM = {\n";
12219	s << "\tsType = " << value.sType << '\n';
12220	s << "\tpNext = " << value.pNext << '\n';
12221	s << "\tfragmentDensityMapOffset = " << value.fragmentDensityMapOffset << '\n';
12222	s << '}';
12223	return s;
12224}
12225
12226std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM& value)
12227{
12228	s << "VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM = {\n";
12229	s << "\tsType = " << value.sType << '\n';
12230	s << "\tpNext = " << value.pNext << '\n';
12231	s << "\tfragmentDensityOffsetGranularity = " << value.fragmentDensityOffsetGranularity << '\n';
12232	s << '}';
12233	return s;
12234}
12235
12236std::ostream& operator<< (std::ostream& s, const VkSubpassFragmentDensityMapOffsetEndInfoQCOM& value)
12237{
12238	s << "VkSubpassFragmentDensityMapOffsetEndInfoQCOM = {\n";
12239	s << "\tsType = " << value.sType << '\n';
12240	s << "\tpNext = " << value.pNext << '\n';
12241	s << "\tfragmentDensityOffsetCount = " << value.fragmentDensityOffsetCount << '\n';
12242	s << "\tpFragmentDensityOffsets = " << value.pFragmentDensityOffsets << '\n';
12243	s << '}';
12244	return s;
12245}
12246
12247std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLinearColorAttachmentFeaturesNV& value)
12248{
12249	s << "VkPhysicalDeviceLinearColorAttachmentFeaturesNV = {\n";
12250	s << "\tsType = " << value.sType << '\n';
12251	s << "\tpNext = " << value.pNext << '\n';
12252	s << "\tlinearColorAttachment = " << value.linearColorAttachment << '\n';
12253	s << '}';
12254	return s;
12255}
12256
12257std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressKHR& value)
12258{
12259	s << "VkDeviceOrHostAddressKHR = {\n";
12260	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
12261	s << "\thostAddress = " << value.hostAddress << '\n';
12262	s << '}';
12263	return s;
12264}
12265
12266std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildRangeInfoKHR& value)
12267{
12268	s << "VkAccelerationStructureBuildRangeInfoKHR = {\n";
12269	s << "\tprimitiveCount = " << value.primitiveCount << '\n';
12270	s << "\tprimitiveOffset = " << value.primitiveOffset << '\n';
12271	s << "\tfirstVertex = " << value.firstVertex << '\n';
12272	s << "\ttransformOffset = " << value.transformOffset << '\n';
12273	s << '}';
12274	return s;
12275}
12276
12277std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryTrianglesDataKHR& value)
12278{
12279	s << "VkAccelerationStructureGeometryTrianglesDataKHR = {\n";
12280	s << "\tsType = " << value.sType << '\n';
12281	s << "\tpNext = " << value.pNext << '\n';
12282	s << "\tvertexFormat = " << value.vertexFormat << '\n';
12283	s << "\tvertexData = " << value.vertexData << '\n';
12284	s << "\tvertexStride = " << value.vertexStride << '\n';
12285	s << "\tmaxVertex = " << value.maxVertex << '\n';
12286	s << "\tindexType = " << value.indexType << '\n';
12287	s << "\tindexData = " << value.indexData << '\n';
12288	s << "\ttransformData = " << value.transformData << '\n';
12289	s << '}';
12290	return s;
12291}
12292
12293std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryAabbsDataKHR& value)
12294{
12295	s << "VkAccelerationStructureGeometryAabbsDataKHR = {\n";
12296	s << "\tsType = " << value.sType << '\n';
12297	s << "\tpNext = " << value.pNext << '\n';
12298	s << "\tdata = " << value.data << '\n';
12299	s << "\tstride = " << value.stride << '\n';
12300	s << '}';
12301	return s;
12302}
12303
12304std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryInstancesDataKHR& value)
12305{
12306	s << "VkAccelerationStructureGeometryInstancesDataKHR = {\n";
12307	s << "\tsType = " << value.sType << '\n';
12308	s << "\tpNext = " << value.pNext << '\n';
12309	s << "\tarrayOfPointers = " << value.arrayOfPointers << '\n';
12310	s << "\tdata = " << value.data << '\n';
12311	s << '}';
12312	return s;
12313}
12314
12315std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryDataKHR& value)
12316{
12317	s << "VkAccelerationStructureGeometryDataKHR = {\n";
12318	s << "\ttriangles = " << value.triangles << '\n';
12319	s << "\taabbs = " << value.aabbs << '\n';
12320	s << "\tinstances = " << value.instances << '\n';
12321	s << '}';
12322	return s;
12323}
12324
12325std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryKHR& value)
12326{
12327	s << "VkAccelerationStructureGeometryKHR = {\n";
12328	s << "\tsType = " << value.sType << '\n';
12329	s << "\tpNext = " << value.pNext << '\n';
12330	s << "\tgeometryType = " << value.geometryType << '\n';
12331	s << "\tgeometry = " << value.geometry << '\n';
12332	s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
12333	s << '}';
12334	return s;
12335}
12336
12337std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildGeometryInfoKHR& value)
12338{
12339	s << "VkAccelerationStructureBuildGeometryInfoKHR = {\n";
12340	s << "\tsType = " << value.sType << '\n';
12341	s << "\tpNext = " << value.pNext << '\n';
12342	s << "\ttype = " << value.type << '\n';
12343	s << "\tflags = " << getBuildAccelerationStructureFlagsKHRStr(value.flags) << '\n';
12344	s << "\tmode = " << value.mode << '\n';
12345	s << "\tsrcAccelerationStructure = " << value.srcAccelerationStructure << '\n';
12346	s << "\tdstAccelerationStructure = " << value.dstAccelerationStructure << '\n';
12347	s << "\tgeometryCount = " << value.geometryCount << '\n';
12348	s << "\tpGeometries = " << value.pGeometries << '\n';
12349	s << "\tppGeometries = " << value.ppGeometries << '\n';
12350	s << "\tscratchData = " << value.scratchData << '\n';
12351	s << '}';
12352	return s;
12353}
12354
12355std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoKHR& value)
12356{
12357	s << "VkAccelerationStructureCreateInfoKHR = {\n";
12358	s << "\tsType = " << value.sType << '\n';
12359	s << "\tpNext = " << value.pNext << '\n';
12360	s << "\tcreateFlags = " << getAccelerationStructureCreateFlagsKHRStr(value.createFlags) << '\n';
12361	s << "\tbuffer = " << value.buffer << '\n';
12362	s << "\toffset = " << value.offset << '\n';
12363	s << "\tsize = " << value.size << '\n';
12364	s << "\ttype = " << value.type << '\n';
12365	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
12366	s << '}';
12367	return s;
12368}
12369
12370std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureKHR& value)
12371{
12372	s << "VkWriteDescriptorSetAccelerationStructureKHR = {\n";
12373	s << "\tsType = " << value.sType << '\n';
12374	s << "\tpNext = " << value.pNext << '\n';
12375	s << "\taccelerationStructureCount = " << value.accelerationStructureCount << '\n';
12376	s << "\tpAccelerationStructures = " << value.pAccelerationStructures << '\n';
12377	s << '}';
12378	return s;
12379}
12380
12381std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAccelerationStructureFeaturesKHR& value)
12382{
12383	s << "VkPhysicalDeviceAccelerationStructureFeaturesKHR = {\n";
12384	s << "\tsType = " << value.sType << '\n';
12385	s << "\tpNext = " << value.pNext << '\n';
12386	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
12387	s << "\taccelerationStructureCaptureReplay = " << value.accelerationStructureCaptureReplay << '\n';
12388	s << "\taccelerationStructureIndirectBuild = " << value.accelerationStructureIndirectBuild << '\n';
12389	s << "\taccelerationStructureHostCommands = " << value.accelerationStructureHostCommands << '\n';
12390	s << "\tdescriptorBindingAccelerationStructureUpdateAfterBind = " << value.descriptorBindingAccelerationStructureUpdateAfterBind << '\n';
12391	s << '}';
12392	return s;
12393}
12394
12395std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAccelerationStructurePropertiesKHR& value)
12396{
12397	s << "VkPhysicalDeviceAccelerationStructurePropertiesKHR = {\n";
12398	s << "\tsType = " << value.sType << '\n';
12399	s << "\tpNext = " << value.pNext << '\n';
12400	s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
12401	s << "\tmaxInstanceCount = " << value.maxInstanceCount << '\n';
12402	s << "\tmaxPrimitiveCount = " << value.maxPrimitiveCount << '\n';
12403	s << "\tmaxPerStageDescriptorAccelerationStructures = " << value.maxPerStageDescriptorAccelerationStructures << '\n';
12404	s << "\tmaxPerStageDescriptorUpdateAfterBindAccelerationStructures = " << value.maxPerStageDescriptorUpdateAfterBindAccelerationStructures << '\n';
12405	s << "\tmaxDescriptorSetAccelerationStructures = " << value.maxDescriptorSetAccelerationStructures << '\n';
12406	s << "\tmaxDescriptorSetUpdateAfterBindAccelerationStructures = " << value.maxDescriptorSetUpdateAfterBindAccelerationStructures << '\n';
12407	s << "\tminAccelerationStructureScratchOffsetAlignment = " << value.minAccelerationStructureScratchOffsetAlignment << '\n';
12408	s << '}';
12409	return s;
12410}
12411
12412std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureDeviceAddressInfoKHR& value)
12413{
12414	s << "VkAccelerationStructureDeviceAddressInfoKHR = {\n";
12415	s << "\tsType = " << value.sType << '\n';
12416	s << "\tpNext = " << value.pNext << '\n';
12417	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
12418	s << '}';
12419	return s;
12420}
12421
12422std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureVersionInfoKHR& value)
12423{
12424	s << "VkAccelerationStructureVersionInfoKHR = {\n";
12425	s << "\tsType = " << value.sType << '\n';
12426	s << "\tpNext = " << value.pNext << '\n';
12427	s << "\tpVersionData = " << value.pVersionData << '\n';
12428	s << '}';
12429	return s;
12430}
12431
12432std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureToMemoryInfoKHR& value)
12433{
12434	s << "VkCopyAccelerationStructureToMemoryInfoKHR = {\n";
12435	s << "\tsType = " << value.sType << '\n';
12436	s << "\tpNext = " << value.pNext << '\n';
12437	s << "\tsrc = " << value.src << '\n';
12438	s << "\tdst = " << value.dst << '\n';
12439	s << "\tmode = " << value.mode << '\n';
12440	s << '}';
12441	return s;
12442}
12443
12444std::ostream& operator<< (std::ostream& s, const VkCopyMemoryToAccelerationStructureInfoKHR& value)
12445{
12446	s << "VkCopyMemoryToAccelerationStructureInfoKHR = {\n";
12447	s << "\tsType = " << value.sType << '\n';
12448	s << "\tpNext = " << value.pNext << '\n';
12449	s << "\tsrc = " << value.src << '\n';
12450	s << "\tdst = " << value.dst << '\n';
12451	s << "\tmode = " << value.mode << '\n';
12452	s << '}';
12453	return s;
12454}
12455
12456std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureInfoKHR& value)
12457{
12458	s << "VkCopyAccelerationStructureInfoKHR = {\n";
12459	s << "\tsType = " << value.sType << '\n';
12460	s << "\tpNext = " << value.pNext << '\n';
12461	s << "\tsrc = " << value.src << '\n';
12462	s << "\tdst = " << value.dst << '\n';
12463	s << "\tmode = " << value.mode << '\n';
12464	s << '}';
12465	return s;
12466}
12467
12468std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildSizesInfoKHR& value)
12469{
12470	s << "VkAccelerationStructureBuildSizesInfoKHR = {\n";
12471	s << "\tsType = " << value.sType << '\n';
12472	s << "\tpNext = " << value.pNext << '\n';
12473	s << "\taccelerationStructureSize = " << value.accelerationStructureSize << '\n';
12474	s << "\tupdateScratchSize = " << value.updateScratchSize << '\n';
12475	s << "\tbuildScratchSize = " << value.buildScratchSize << '\n';
12476	s << '}';
12477	return s;
12478}
12479
12480std::ostream& operator<< (std::ostream& s, const VkRayTracingShaderGroupCreateInfoKHR& value)
12481{
12482	s << "VkRayTracingShaderGroupCreateInfoKHR = {\n";
12483	s << "\tsType = " << value.sType << '\n';
12484	s << "\tpNext = " << value.pNext << '\n';
12485	s << "\ttype = " << value.type << '\n';
12486	s << "\tgeneralShader = " << value.generalShader << '\n';
12487	s << "\tclosestHitShader = " << value.closestHitShader << '\n';
12488	s << "\tanyHitShader = " << value.anyHitShader << '\n';
12489	s << "\tintersectionShader = " << value.intersectionShader << '\n';
12490	s << "\tpShaderGroupCaptureReplayHandle = " << value.pShaderGroupCaptureReplayHandle << '\n';
12491	s << '}';
12492	return s;
12493}
12494
12495std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineInterfaceCreateInfoKHR& value)
12496{
12497	s << "VkRayTracingPipelineInterfaceCreateInfoKHR = {\n";
12498	s << "\tsType = " << value.sType << '\n';
12499	s << "\tpNext = " << value.pNext << '\n';
12500	s << "\tmaxPipelineRayPayloadSize = " << value.maxPipelineRayPayloadSize << '\n';
12501	s << "\tmaxPipelineRayHitAttributeSize = " << value.maxPipelineRayHitAttributeSize << '\n';
12502	s << '}';
12503	return s;
12504}
12505
12506std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineCreateInfoKHR& value)
12507{
12508	s << "VkRayTracingPipelineCreateInfoKHR = {\n";
12509	s << "\tsType = " << value.sType << '\n';
12510	s << "\tpNext = " << value.pNext << '\n';
12511	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
12512	s << "\tstageCount = " << value.stageCount << '\n';
12513	s << "\tpStages = " << value.pStages << '\n';
12514	s << "\tgroupCount = " << value.groupCount << '\n';
12515	s << "\tpGroups = " << value.pGroups << '\n';
12516	s << "\tmaxPipelineRayRecursionDepth = " << value.maxPipelineRayRecursionDepth << '\n';
12517	s << "\tpLibraryInfo = " << value.pLibraryInfo << '\n';
12518	s << "\tpLibraryInterface = " << value.pLibraryInterface << '\n';
12519	s << "\tpDynamicState = " << value.pDynamicState << '\n';
12520	s << "\tlayout = " << value.layout << '\n';
12521	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
12522	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
12523	s << '}';
12524	return s;
12525}
12526
12527std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPipelineFeaturesKHR& value)
12528{
12529	s << "VkPhysicalDeviceRayTracingPipelineFeaturesKHR = {\n";
12530	s << "\tsType = " << value.sType << '\n';
12531	s << "\tpNext = " << value.pNext << '\n';
12532	s << "\trayTracingPipeline = " << value.rayTracingPipeline << '\n';
12533	s << "\trayTracingPipelineShaderGroupHandleCaptureReplay = " << value.rayTracingPipelineShaderGroupHandleCaptureReplay << '\n';
12534	s << "\trayTracingPipelineShaderGroupHandleCaptureReplayMixed = " << value.rayTracingPipelineShaderGroupHandleCaptureReplayMixed << '\n';
12535	s << "\trayTracingPipelineTraceRaysIndirect = " << value.rayTracingPipelineTraceRaysIndirect << '\n';
12536	s << "\trayTraversalPrimitiveCulling = " << value.rayTraversalPrimitiveCulling << '\n';
12537	s << '}';
12538	return s;
12539}
12540
12541std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPipelinePropertiesKHR& value)
12542{
12543	s << "VkPhysicalDeviceRayTracingPipelinePropertiesKHR = {\n";
12544	s << "\tsType = " << value.sType << '\n';
12545	s << "\tpNext = " << value.pNext << '\n';
12546	s << "\tshaderGroupHandleSize = " << value.shaderGroupHandleSize << '\n';
12547	s << "\tmaxRayRecursionDepth = " << value.maxRayRecursionDepth << '\n';
12548	s << "\tmaxShaderGroupStride = " << value.maxShaderGroupStride << '\n';
12549	s << "\tshaderGroupBaseAlignment = " << value.shaderGroupBaseAlignment << '\n';
12550	s << "\tshaderGroupHandleCaptureReplaySize = " << value.shaderGroupHandleCaptureReplaySize << '\n';
12551	s << "\tmaxRayDispatchInvocationCount = " << value.maxRayDispatchInvocationCount << '\n';
12552	s << "\tshaderGroupHandleAlignment = " << value.shaderGroupHandleAlignment << '\n';
12553	s << "\tmaxRayHitAttributeSize = " << value.maxRayHitAttributeSize << '\n';
12554	s << '}';
12555	return s;
12556}
12557
12558std::ostream& operator<< (std::ostream& s, const VkStridedDeviceAddressRegionKHR& value)
12559{
12560	s << "VkStridedDeviceAddressRegionKHR = {\n";
12561	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
12562	s << "\tstride = " << value.stride << '\n';
12563	s << "\tsize = " << value.size << '\n';
12564	s << '}';
12565	return s;
12566}
12567
12568std::ostream& operator<< (std::ostream& s, const VkTraceRaysIndirectCommandKHR& value)
12569{
12570	s << "VkTraceRaysIndirectCommandKHR = {\n";
12571	s << "\twidth = " << value.width << '\n';
12572	s << "\theight = " << value.height << '\n';
12573	s << "\tdepth = " << value.depth << '\n';
12574	s << '}';
12575	return s;
12576}
12577
12578std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayQueryFeaturesKHR& value)
12579{
12580	s << "VkPhysicalDeviceRayQueryFeaturesKHR = {\n";
12581	s << "\tsType = " << value.sType << '\n';
12582	s << "\tpNext = " << value.pNext << '\n';
12583	s << "\trayQuery = " << value.rayQuery << '\n';
12584	s << '}';
12585	return s;
12586}
12587
12588std::ostream& operator<< (std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value)
12589{
12590	s << "VkAndroidSurfaceCreateInfoKHR = {\n";
12591	s << "\tsType = " << value.sType << '\n';
12592	s << "\tpNext = " << value.pNext << '\n';
12593	s << "\tflags = " << getAndroidSurfaceCreateFlagsKHRStr(value.flags) << '\n';
12594	s << "\twindow = " << value.window << '\n';
12595	s << '}';
12596	return s;
12597}
12598
12599std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferUsageANDROID& value)
12600{
12601	s << "VkAndroidHardwareBufferUsageANDROID = {\n";
12602	s << "\tsType = " << value.sType << '\n';
12603	s << "\tpNext = " << value.pNext << '\n';
12604	s << "\tandroidHardwareBufferUsage = " << value.androidHardwareBufferUsage << '\n';
12605	s << '}';
12606	return s;
12607}
12608
12609std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferPropertiesANDROID& value)
12610{
12611	s << "VkAndroidHardwareBufferPropertiesANDROID = {\n";
12612	s << "\tsType = " << value.sType << '\n';
12613	s << "\tpNext = " << value.pNext << '\n';
12614	s << "\tallocationSize = " << value.allocationSize << '\n';
12615	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
12616	s << '}';
12617	return s;
12618}
12619
12620std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferFormatPropertiesANDROID& value)
12621{
12622	s << "VkAndroidHardwareBufferFormatPropertiesANDROID = {\n";
12623	s << "\tsType = " << value.sType << '\n';
12624	s << "\tpNext = " << value.pNext << '\n';
12625	s << "\tformat = " << value.format << '\n';
12626	s << "\texternalFormat = " << value.externalFormat << '\n';
12627	s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
12628	s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
12629	s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
12630	s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
12631	s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
12632	s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
12633	s << '}';
12634	return s;
12635}
12636
12637std::ostream& operator<< (std::ostream& s, const VkImportAndroidHardwareBufferInfoANDROID& value)
12638{
12639	s << "VkImportAndroidHardwareBufferInfoANDROID = {\n";
12640	s << "\tsType = " << value.sType << '\n';
12641	s << "\tpNext = " << value.pNext << '\n';
12642	s << "\tbuffer = " << value.buffer << '\n';
12643	s << '}';
12644	return s;
12645}
12646
12647std::ostream& operator<< (std::ostream& s, const VkMemoryGetAndroidHardwareBufferInfoANDROID& value)
12648{
12649	s << "VkMemoryGetAndroidHardwareBufferInfoANDROID = {\n";
12650	s << "\tsType = " << value.sType << '\n';
12651	s << "\tpNext = " << value.pNext << '\n';
12652	s << "\tmemory = " << value.memory << '\n';
12653	s << '}';
12654	return s;
12655}
12656
12657std::ostream& operator<< (std::ostream& s, const VkExternalFormatANDROID& value)
12658{
12659	s << "VkExternalFormatANDROID = {\n";
12660	s << "\tsType = " << value.sType << '\n';
12661	s << "\tpNext = " << value.pNext << '\n';
12662	s << "\texternalFormat = " << value.externalFormat << '\n';
12663	s << '}';
12664	return s;
12665}
12666
12667std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferFormatProperties2ANDROID& value)
12668{
12669	s << "VkAndroidHardwareBufferFormatProperties2ANDROID = {\n";
12670	s << "\tsType = " << value.sType << '\n';
12671	s << "\tpNext = " << value.pNext << '\n';
12672	s << "\tformat = " << value.format << '\n';
12673	s << "\texternalFormat = " << value.externalFormat << '\n';
12674	s << "\tformatFeatures = " << value.formatFeatures << '\n';
12675	s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
12676	s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
12677	s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
12678	s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
12679	s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
12680	s << '}';
12681	return s;
12682}
12683
12684std::ostream& operator<< (std::ostream& s, const VkQueueFamilyQueryResultStatusProperties2KHR& value)
12685{
12686	s << "VkQueueFamilyQueryResultStatusProperties2KHR = {\n";
12687	s << "\tsType = " << value.sType << '\n';
12688	s << "\tpNext = " << value.pNext << '\n';
12689	s << "\tsupported = " << value.supported << '\n';
12690	s << '}';
12691	return s;
12692}
12693
12694std::ostream& operator<< (std::ostream& s, const VkVideoQueueFamilyProperties2KHR& value)
12695{
12696	s << "VkVideoQueueFamilyProperties2KHR = {\n";
12697	s << "\tsType = " << value.sType << '\n';
12698	s << "\tpNext = " << value.pNext << '\n';
12699	s << "\tvideoCodecOperations = " << getVideoCodecOperationFlagsKHRStr(value.videoCodecOperations) << '\n';
12700	s << '}';
12701	return s;
12702}
12703
12704std::ostream& operator<< (std::ostream& s, const VkVideoProfileKHR& value)
12705{
12706	s << "VkVideoProfileKHR = {\n";
12707	s << "\tsType = " << value.sType << '\n';
12708	s << "\tpNext = " << value.pNext << '\n';
12709	s << "\tvideoCodecOperation = " << value.videoCodecOperation << '\n';
12710	s << "\tchromaSubsampling = " << getVideoChromaSubsamplingFlagsKHRStr(value.chromaSubsampling) << '\n';
12711	s << "\tlumaBitDepth = " << getVideoComponentBitDepthFlagsKHRStr(value.lumaBitDepth) << '\n';
12712	s << "\tchromaBitDepth = " << getVideoComponentBitDepthFlagsKHRStr(value.chromaBitDepth) << '\n';
12713	s << '}';
12714	return s;
12715}
12716
12717std::ostream& operator<< (std::ostream& s, const VkVideoProfilesKHR& value)
12718{
12719	s << "VkVideoProfilesKHR = {\n";
12720	s << "\tsType = " << value.sType << '\n';
12721	s << "\tpNext = " << value.pNext << '\n';
12722	s << "\tprofileCount = " << value.profileCount << '\n';
12723	s << "\tpProfiles = " << value.pProfiles << '\n';
12724	s << '}';
12725	return s;
12726}
12727
12728std::ostream& operator<< (std::ostream& s, const VkVideoCapabilitiesKHR& value)
12729{
12730	s << "VkVideoCapabilitiesKHR = {\n";
12731	s << "\tsType = " << value.sType << '\n';
12732	s << "\tpNext = " << value.pNext << '\n';
12733	s << "\tcapabilityFlags = " << getVideoCapabilityFlagsKHRStr(value.capabilityFlags) << '\n';
12734	s << "\tminBitstreamBufferOffsetAlignment = " << value.minBitstreamBufferOffsetAlignment << '\n';
12735	s << "\tminBitstreamBufferSizeAlignment = " << value.minBitstreamBufferSizeAlignment << '\n';
12736	s << "\tvideoPictureExtentGranularity = " << value.videoPictureExtentGranularity << '\n';
12737	s << "\tminExtent = " << value.minExtent << '\n';
12738	s << "\tmaxExtent = " << value.maxExtent << '\n';
12739	s << "\tmaxReferencePicturesSlotsCount = " << value.maxReferencePicturesSlotsCount << '\n';
12740	s << "\tmaxReferencePicturesActiveCount = " << value.maxReferencePicturesActiveCount << '\n';
12741	s << '}';
12742	return s;
12743}
12744
12745std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVideoFormatInfoKHR& value)
12746{
12747	s << "VkPhysicalDeviceVideoFormatInfoKHR = {\n";
12748	s << "\tsType = " << value.sType << '\n';
12749	s << "\tpNext = " << value.pNext << '\n';
12750	s << "\timageUsage = " << getImageUsageFlagsStr(value.imageUsage) << '\n';
12751	s << "\tpVideoProfiles = " << value.pVideoProfiles << '\n';
12752	s << '}';
12753	return s;
12754}
12755
12756std::ostream& operator<< (std::ostream& s, const VkVideoFormatPropertiesKHR& value)
12757{
12758	s << "VkVideoFormatPropertiesKHR = {\n";
12759	s << "\tsType = " << value.sType << '\n';
12760	s << "\tpNext = " << value.pNext << '\n';
12761	s << "\tformat = " << value.format << '\n';
12762	s << '}';
12763	return s;
12764}
12765
12766std::ostream& operator<< (std::ostream& s, const VkVideoPictureResourceKHR& value)
12767{
12768	s << "VkVideoPictureResourceKHR = {\n";
12769	s << "\tsType = " << value.sType << '\n';
12770	s << "\tpNext = " << value.pNext << '\n';
12771	s << "\tcodedOffset = " << value.codedOffset << '\n';
12772	s << "\tcodedExtent = " << value.codedExtent << '\n';
12773	s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
12774	s << "\timageViewBinding = " << value.imageViewBinding << '\n';
12775	s << '}';
12776	return s;
12777}
12778
12779std::ostream& operator<< (std::ostream& s, const VkVideoReferenceSlotKHR& value)
12780{
12781	s << "VkVideoReferenceSlotKHR = {\n";
12782	s << "\tsType = " << value.sType << '\n';
12783	s << "\tpNext = " << value.pNext << '\n';
12784	s << "\tslotIndex = " << value.slotIndex << '\n';
12785	s << "\tpPictureResource = " << value.pPictureResource << '\n';
12786	s << '}';
12787	return s;
12788}
12789
12790std::ostream& operator<< (std::ostream& s, const VkVideoGetMemoryPropertiesKHR& value)
12791{
12792	s << "VkVideoGetMemoryPropertiesKHR = {\n";
12793	s << "\tsType = " << value.sType << '\n';
12794	s << "\tpNext = " << value.pNext << '\n';
12795	s << "\tmemoryBindIndex = " << value.memoryBindIndex << '\n';
12796	s << "\tpMemoryRequirements = " << value.pMemoryRequirements << '\n';
12797	s << '}';
12798	return s;
12799}
12800
12801std::ostream& operator<< (std::ostream& s, const VkVideoBindMemoryKHR& value)
12802{
12803	s << "VkVideoBindMemoryKHR = {\n";
12804	s << "\tsType = " << value.sType << '\n';
12805	s << "\tpNext = " << value.pNext << '\n';
12806	s << "\tmemoryBindIndex = " << value.memoryBindIndex << '\n';
12807	s << "\tmemory = " << value.memory << '\n';
12808	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
12809	s << "\tmemorySize = " << value.memorySize << '\n';
12810	s << '}';
12811	return s;
12812}
12813
12814std::ostream& operator<< (std::ostream& s, const VkVideoSessionCreateInfoKHR& value)
12815{
12816	s << "VkVideoSessionCreateInfoKHR = {\n";
12817	s << "\tsType = " << value.sType << '\n';
12818	s << "\tpNext = " << value.pNext << '\n';
12819	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
12820	s << "\tflags = " << getVideoSessionCreateFlagsKHRStr(value.flags) << '\n';
12821	s << "\tpVideoProfile = " << value.pVideoProfile << '\n';
12822	s << "\tpictureFormat = " << value.pictureFormat << '\n';
12823	s << "\tmaxCodedExtent = " << value.maxCodedExtent << '\n';
12824	s << "\treferencePicturesFormat = " << value.referencePicturesFormat << '\n';
12825	s << "\tmaxReferencePicturesSlotsCount = " << value.maxReferencePicturesSlotsCount << '\n';
12826	s << "\tmaxReferencePicturesActiveCount = " << value.maxReferencePicturesActiveCount << '\n';
12827	s << '}';
12828	return s;
12829}
12830
12831std::ostream& operator<< (std::ostream& s, const VkVideoSessionParametersCreateInfoKHR& value)
12832{
12833	s << "VkVideoSessionParametersCreateInfoKHR = {\n";
12834	s << "\tsType = " << value.sType << '\n';
12835	s << "\tpNext = " << value.pNext << '\n';
12836	s << "\tvideoSessionParametersTemplate = " << value.videoSessionParametersTemplate << '\n';
12837	s << "\tvideoSession = " << value.videoSession << '\n';
12838	s << '}';
12839	return s;
12840}
12841
12842std::ostream& operator<< (std::ostream& s, const VkVideoSessionParametersUpdateInfoKHR& value)
12843{
12844	s << "VkVideoSessionParametersUpdateInfoKHR = {\n";
12845	s << "\tsType = " << value.sType << '\n';
12846	s << "\tpNext = " << value.pNext << '\n';
12847	s << "\tupdateSequenceCount = " << value.updateSequenceCount << '\n';
12848	s << '}';
12849	return s;
12850}
12851
12852std::ostream& operator<< (std::ostream& s, const VkVideoBeginCodingInfoKHR& value)
12853{
12854	s << "VkVideoBeginCodingInfoKHR = {\n";
12855	s << "\tsType = " << value.sType << '\n';
12856	s << "\tpNext = " << value.pNext << '\n';
12857	s << "\tflags = " << getVideoBeginCodingFlagsKHRStr(value.flags) << '\n';
12858	s << "\tcodecQualityPreset = " << getVideoCodingQualityPresetFlagsKHRStr(value.codecQualityPreset) << '\n';
12859	s << "\tvideoSession = " << value.videoSession << '\n';
12860	s << "\tvideoSessionParameters = " << value.videoSessionParameters << '\n';
12861	s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
12862	s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
12863	s << '}';
12864	return s;
12865}
12866
12867std::ostream& operator<< (std::ostream& s, const VkVideoEndCodingInfoKHR& value)
12868{
12869	s << "VkVideoEndCodingInfoKHR = {\n";
12870	s << "\tsType = " << value.sType << '\n';
12871	s << "\tpNext = " << value.pNext << '\n';
12872	s << "\tflags = " << getVideoEndCodingFlagsKHRStr(value.flags) << '\n';
12873	s << '}';
12874	return s;
12875}
12876
12877std::ostream& operator<< (std::ostream& s, const VkVideoCodingControlInfoKHR& value)
12878{
12879	s << "VkVideoCodingControlInfoKHR = {\n";
12880	s << "\tsType = " << value.sType << '\n';
12881	s << "\tpNext = " << value.pNext << '\n';
12882	s << "\tflags = " << getVideoCodingControlFlagsKHRStr(value.flags) << '\n';
12883	s << '}';
12884	return s;
12885}
12886
12887std::ostream& operator<< (std::ostream& s, const VkVideoDecodeInfoKHR& value)
12888{
12889	s << "VkVideoDecodeInfoKHR = {\n";
12890	s << "\tsType = " << value.sType << '\n';
12891	s << "\tpNext = " << value.pNext << '\n';
12892	s << "\tflags = " << getVideoDecodeFlagsKHRStr(value.flags) << '\n';
12893	s << "\tcodedOffset = " << value.codedOffset << '\n';
12894	s << "\tcodedExtent = " << value.codedExtent << '\n';
12895	s << "\tsrcBuffer = " << value.srcBuffer << '\n';
12896	s << "\tsrcBufferOffset = " << value.srcBufferOffset << '\n';
12897	s << "\tsrcBufferRange = " << value.srcBufferRange << '\n';
12898	s << "\tdstPictureResource = " << value.dstPictureResource << '\n';
12899	s << "\tpSetupReferenceSlot = " << value.pSetupReferenceSlot << '\n';
12900	s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
12901	s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
12902	s << '}';
12903	return s;
12904}
12905
12906std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePortabilitySubsetFeaturesKHR& value)
12907{
12908	s << "VkPhysicalDevicePortabilitySubsetFeaturesKHR = {\n";
12909	s << "\tsType = " << value.sType << '\n';
12910	s << "\tpNext = " << value.pNext << '\n';
12911	s << "\tconstantAlphaColorBlendFactors = " << value.constantAlphaColorBlendFactors << '\n';
12912	s << "\tevents = " << value.events << '\n';
12913	s << "\timageViewFormatReinterpretation = " << value.imageViewFormatReinterpretation << '\n';
12914	s << "\timageViewFormatSwizzle = " << value.imageViewFormatSwizzle << '\n';
12915	s << "\timageView2DOn3DImage = " << value.imageView2DOn3DImage << '\n';
12916	s << "\tmultisampleArrayImage = " << value.multisampleArrayImage << '\n';
12917	s << "\tmutableComparisonSamplers = " << value.mutableComparisonSamplers << '\n';
12918	s << "\tpointPolygons = " << value.pointPolygons << '\n';
12919	s << "\tsamplerMipLodBias = " << value.samplerMipLodBias << '\n';
12920	s << "\tseparateStencilMaskRef = " << value.separateStencilMaskRef << '\n';
12921	s << "\tshaderSampleRateInterpolationFunctions = " << value.shaderSampleRateInterpolationFunctions << '\n';
12922	s << "\ttessellationIsolines = " << value.tessellationIsolines << '\n';
12923	s << "\ttessellationPointMode = " << value.tessellationPointMode << '\n';
12924	s << "\ttriangleFans = " << value.triangleFans << '\n';
12925	s << "\tvertexAttributeAccessBeyondStride = " << value.vertexAttributeAccessBeyondStride << '\n';
12926	s << '}';
12927	return s;
12928}
12929
12930std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePortabilitySubsetPropertiesKHR& value)
12931{
12932	s << "VkPhysicalDevicePortabilitySubsetPropertiesKHR = {\n";
12933	s << "\tsType = " << value.sType << '\n';
12934	s << "\tpNext = " << value.pNext << '\n';
12935	s << "\tminVertexInputBindingStrideAlignment = " << value.minVertexInputBindingStrideAlignment << '\n';
12936	s << '}';
12937	return s;
12938}
12939
12940std::ostream& operator<< (std::ostream& s, const VkVideoEncodeInfoKHR& value)
12941{
12942	s << "VkVideoEncodeInfoKHR = {\n";
12943	s << "\tsType = " << value.sType << '\n';
12944	s << "\tpNext = " << value.pNext << '\n';
12945	s << "\tflags = " << getVideoEncodeFlagsKHRStr(value.flags) << '\n';
12946	s << "\tqualityLevel = " << value.qualityLevel << '\n';
12947	s << "\tcodedExtent = " << value.codedExtent << '\n';
12948	s << "\tdstBitstreamBuffer = " << value.dstBitstreamBuffer << '\n';
12949	s << "\tdstBitstreamBufferOffset = " << value.dstBitstreamBufferOffset << '\n';
12950	s << "\tdstBitstreamBufferMaxRange = " << value.dstBitstreamBufferMaxRange << '\n';
12951	s << "\tsrcPictureResource = " << value.srcPictureResource << '\n';
12952	s << "\tpSetupReferenceSlot = " << value.pSetupReferenceSlot << '\n';
12953	s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
12954	s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
12955	s << "\tprecedingExternallyEncodedBytes = " << value.precedingExternallyEncodedBytes << '\n';
12956	s << '}';
12957	return s;
12958}
12959
12960std::ostream& operator<< (std::ostream& s, const VkVideoEncodeRateControlLayerInfoKHR& value)
12961{
12962	s << "VkVideoEncodeRateControlLayerInfoKHR = {\n";
12963	s << "\tsType = " << value.sType << '\n';
12964	s << "\tpNext = " << value.pNext << '\n';
12965	s << "\taverageBitrate = " << value.averageBitrate << '\n';
12966	s << "\tmaxBitrate = " << value.maxBitrate << '\n';
12967	s << "\tframeRateNumerator = " << value.frameRateNumerator << '\n';
12968	s << "\tframeRateDenominator = " << value.frameRateDenominator << '\n';
12969	s << "\tvirtualBufferSizeInMs = " << value.virtualBufferSizeInMs << '\n';
12970	s << "\tinitialVirtualBufferSizeInMs = " << value.initialVirtualBufferSizeInMs << '\n';
12971	s << '}';
12972	return s;
12973}
12974
12975std::ostream& operator<< (std::ostream& s, const VkVideoEncodeRateControlInfoKHR& value)
12976{
12977	s << "VkVideoEncodeRateControlInfoKHR = {\n";
12978	s << "\tsType = " << value.sType << '\n';
12979	s << "\tpNext = " << value.pNext << '\n';
12980	s << "\tflags = " << getVideoEncodeRateControlFlagsKHRStr(value.flags) << '\n';
12981	s << "\trateControlMode = " << value.rateControlMode << '\n';
12982	s << "\tlayerCount = " << value.layerCount << '\n';
12983	s << "\tpLayerConfigs = " << value.pLayerConfigs << '\n';
12984	s << '}';
12985	return s;
12986}
12987
12988std::ostream& operator<< (std::ostream& s, const StdVideoH264SpsVuiFlags& value)
12989{
12990	s << "StdVideoH264SpsVuiFlags = {\n";
12991	s << "\taspect_ratio_info_present_flag = " << value.aspect_ratio_info_present_flag << '\n';
12992	s << "\toverscan_info_present_flag = " << value.overscan_info_present_flag << '\n';
12993	s << "\toverscan_appropriate_flag = " << value.overscan_appropriate_flag << '\n';
12994	s << "\tvideo_signal_type_present_flag = " << value.video_signal_type_present_flag << '\n';
12995	s << "\tvideo_full_range_flag = " << value.video_full_range_flag << '\n';
12996	s << "\tcolor_description_present_flag = " << value.color_description_present_flag << '\n';
12997	s << "\tchroma_loc_info_present_flag = " << value.chroma_loc_info_present_flag << '\n';
12998	s << "\ttiming_info_present_flag = " << value.timing_info_present_flag << '\n';
12999	s << "\tfixed_frame_rate_flag = " << value.fixed_frame_rate_flag << '\n';
13000	s << "\tbitstream_restriction_flag = " << value.bitstream_restriction_flag << '\n';
13001	s << "\tnal_hrd_parameters_present_flag = " << value.nal_hrd_parameters_present_flag << '\n';
13002	s << "\tvcl_hrd_parameters_present_flag = " << value.vcl_hrd_parameters_present_flag << '\n';
13003	s << '}';
13004	return s;
13005}
13006
13007std::ostream& operator<< (std::ostream& s, const StdVideoH264HrdParameters& value)
13008{
13009	s << "StdVideoH264HrdParameters = {\n";
13010	s << "\tcpb_cnt_minus1 = " << value.cpb_cnt_minus1 << '\n';
13011	s << "\tbit_rate_scale = " << value.bit_rate_scale << '\n';
13012	s << "\tcpb_size_scale = " << value.cpb_size_scale << '\n';
13013	s << "\tbit_rate_value_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.bit_rate_value_minus1), DE_ARRAY_END(value.bit_rate_value_minus1)) << '\n';
13014	s << "\tcpb_size_value_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.cpb_size_value_minus1), DE_ARRAY_END(value.cpb_size_value_minus1)) << '\n';
13015	s << "\tcbr_flag = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.cbr_flag)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.cbr_flag))) << '\n';
13016	s << "\tinitial_cpb_removal_delay_length_minus1 = " << value.initial_cpb_removal_delay_length_minus1 << '\n';
13017	s << "\tcpb_removal_delay_length_minus1 = " << value.cpb_removal_delay_length_minus1 << '\n';
13018	s << "\tdpb_output_delay_length_minus1 = " << value.dpb_output_delay_length_minus1 << '\n';
13019	s << "\ttime_offset_length = " << value.time_offset_length << '\n';
13020	s << '}';
13021	return s;
13022}
13023
13024std::ostream& operator<< (std::ostream& s, const StdVideoH264SequenceParameterSetVui& value)
13025{
13026	s << "StdVideoH264SequenceParameterSetVui = {\n";
13027	s << "\taspect_ratio_idc = " << value.aspect_ratio_idc << '\n';
13028	s << "\tsar_width = " << value.sar_width << '\n';
13029	s << "\tsar_height = " << value.sar_height << '\n';
13030	s << "\tvideo_format = " << value.video_format << '\n';
13031	s << "\tcolor_primaries = " << value.color_primaries << '\n';
13032	s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
13033	s << "\tmatrix_coefficients = " << value.matrix_coefficients << '\n';
13034	s << "\tnum_units_in_tick = " << value.num_units_in_tick << '\n';
13035	s << "\ttime_scale = " << value.time_scale << '\n';
13036	s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
13037	s << "\tmax_num_reorder_frames = " << value.max_num_reorder_frames << '\n';
13038	s << "\tmax_dec_frame_buffering = " << value.max_dec_frame_buffering << '\n';
13039	s << "\tflags = " << value.flags << '\n';
13040	s << '}';
13041	return s;
13042}
13043
13044std::ostream& operator<< (std::ostream& s, const StdVideoH264SpsFlags& value)
13045{
13046	s << "StdVideoH264SpsFlags = {\n";
13047	s << "\tconstraint_set0_flag = " << value.constraint_set0_flag << '\n';
13048	s << "\tconstraint_set1_flag = " << value.constraint_set1_flag << '\n';
13049	s << "\tconstraint_set2_flag = " << value.constraint_set2_flag << '\n';
13050	s << "\tconstraint_set3_flag = " << value.constraint_set3_flag << '\n';
13051	s << "\tconstraint_set4_flag = " << value.constraint_set4_flag << '\n';
13052	s << "\tconstraint_set5_flag = " << value.constraint_set5_flag << '\n';
13053	s << "\tdirect_8x8_inference_flag = " << value.direct_8x8_inference_flag << '\n';
13054	s << "\tmb_adaptive_frame_field_flag = " << value.mb_adaptive_frame_field_flag << '\n';
13055	s << "\tframe_mbs_only_flag = " << value.frame_mbs_only_flag << '\n';
13056	s << "\tdelta_pic_order_always_zero_flag = " << value.delta_pic_order_always_zero_flag << '\n';
13057	s << "\tseparate_colour_plane_flag = " << value.separate_colour_plane_flag << '\n';
13058	s << "\tgaps_in_frame_num_value_allowed_flag = " << value.gaps_in_frame_num_value_allowed_flag << '\n';
13059	s << "\tqpprime_y_zero_transform_bypass_flag = " << value.qpprime_y_zero_transform_bypass_flag << '\n';
13060	s << "\tframe_cropping_flag = " << value.frame_cropping_flag << '\n';
13061	s << "\tseq_scaling_matrix_present_flag = " << value.seq_scaling_matrix_present_flag << '\n';
13062	s << "\tvui_parameters_present_flag = " << value.vui_parameters_present_flag << '\n';
13063	s << '}';
13064	return s;
13065}
13066
13067std::ostream& operator<< (std::ostream& s, const StdVideoH264ScalingLists& value)
13068{
13069	s << "StdVideoH264ScalingLists = {\n";
13070	s << "\tscaling_list_present_mask = " << value.scaling_list_present_mask << '\n';
13071	s << "\tuse_default_scaling_matrix_mask = " << value.use_default_scaling_matrix_mask << '\n';
13072	s << "\tScalingList4x4 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList4x4), DE_ARRAY_END(value.ScalingList4x4)) << '\n';
13073	s << "\tScalingList8x8 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList8x8), DE_ARRAY_END(value.ScalingList8x8)) << '\n';
13074	s << '}';
13075	return s;
13076}
13077
13078std::ostream& operator<< (std::ostream& s, const StdVideoH264SequenceParameterSet& value)
13079{
13080	s << "StdVideoH264SequenceParameterSet = {\n";
13081	s << "\tprofile_idc = " << value.profile_idc << '\n';
13082	s << "\tlevel_idc = " << value.level_idc << '\n';
13083	s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
13084	s << "\tchroma_format_idc = " << value.chroma_format_idc << '\n';
13085	s << "\tbit_depth_luma_minus8 = " << value.bit_depth_luma_minus8 << '\n';
13086	s << "\tbit_depth_chroma_minus8 = " << value.bit_depth_chroma_minus8 << '\n';
13087	s << "\tlog2_max_frame_num_minus4 = " << value.log2_max_frame_num_minus4 << '\n';
13088	s << "\tpic_order_cnt_type = " << value.pic_order_cnt_type << '\n';
13089	s << "\tlog2_max_pic_order_cnt_lsb_minus4 = " << value.log2_max_pic_order_cnt_lsb_minus4 << '\n';
13090	s << "\toffset_for_non_ref_pic = " << value.offset_for_non_ref_pic << '\n';
13091	s << "\toffset_for_top_to_bottom_field = " << value.offset_for_top_to_bottom_field << '\n';
13092	s << "\tnum_ref_frames_in_pic_order_cnt_cycle = " << value.num_ref_frames_in_pic_order_cnt_cycle << '\n';
13093	s << "\tmax_num_ref_frames = " << value.max_num_ref_frames << '\n';
13094	s << "\tpic_width_in_mbs_minus1 = " << value.pic_width_in_mbs_minus1 << '\n';
13095	s << "\tpic_height_in_map_units_minus1 = " << value.pic_height_in_map_units_minus1 << '\n';
13096	s << "\tframe_crop_left_offset = " << value.frame_crop_left_offset << '\n';
13097	s << "\tframe_crop_right_offset = " << value.frame_crop_right_offset << '\n';
13098	s << "\tframe_crop_top_offset = " << value.frame_crop_top_offset << '\n';
13099	s << "\tframe_crop_bottom_offset = " << value.frame_crop_bottom_offset << '\n';
13100	s << "\tflags = " << value.flags << '\n';
13101	s << "\tpOffsetForRefFrame = " << value.pOffsetForRefFrame << '\n';
13102	s << "\tpScalingLists = " << value.pScalingLists << '\n';
13103	s << "\tpSequenceParameterSetVui = " << value.pSequenceParameterSetVui << '\n';
13104	s << '}';
13105	return s;
13106}
13107
13108std::ostream& operator<< (std::ostream& s, const StdVideoH264PpsFlags& value)
13109{
13110	s << "StdVideoH264PpsFlags = {\n";
13111	s << "\ttransform_8x8_mode_flag = " << value.transform_8x8_mode_flag << '\n';
13112	s << "\tredundant_pic_cnt_present_flag = " << value.redundant_pic_cnt_present_flag << '\n';
13113	s << "\tconstrained_intra_pred_flag = " << value.constrained_intra_pred_flag << '\n';
13114	s << "\tdeblocking_filter_control_present_flag = " << value.deblocking_filter_control_present_flag << '\n';
13115	s << "\tweighted_bipred_idc_flag = " << value.weighted_bipred_idc_flag << '\n';
13116	s << "\tweighted_pred_flag = " << value.weighted_pred_flag << '\n';
13117	s << "\tpic_order_present_flag = " << value.pic_order_present_flag << '\n';
13118	s << "\tentropy_coding_mode_flag = " << value.entropy_coding_mode_flag << '\n';
13119	s << "\tpic_scaling_matrix_present_flag = " << value.pic_scaling_matrix_present_flag << '\n';
13120	s << '}';
13121	return s;
13122}
13123
13124std::ostream& operator<< (std::ostream& s, const StdVideoH264PictureParameterSet& value)
13125{
13126	s << "StdVideoH264PictureParameterSet = {\n";
13127	s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
13128	s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
13129	s << "\tnum_ref_idx_l0_default_active_minus1 = " << value.num_ref_idx_l0_default_active_minus1 << '\n';
13130	s << "\tnum_ref_idx_l1_default_active_minus1 = " << value.num_ref_idx_l1_default_active_minus1 << '\n';
13131	s << "\tweighted_bipred_idc = " << value.weighted_bipred_idc << '\n';
13132	s << "\tpic_init_qp_minus26 = " << value.pic_init_qp_minus26 << '\n';
13133	s << "\tpic_init_qs_minus26 = " << value.pic_init_qs_minus26 << '\n';
13134	s << "\tchroma_qp_index_offset = " << value.chroma_qp_index_offset << '\n';
13135	s << "\tsecond_chroma_qp_index_offset = " << value.second_chroma_qp_index_offset << '\n';
13136	s << "\tflags = " << value.flags << '\n';
13137	s << "\tpScalingLists = " << value.pScalingLists << '\n';
13138	s << '}';
13139	return s;
13140}
13141
13142std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264SliceHeaderFlags& value)
13143{
13144	s << "StdVideoEncodeH264SliceHeaderFlags = {\n";
13145	s << "\tidr_flag = " << value.idr_flag << '\n';
13146	s << "\tis_reference_flag = " << value.is_reference_flag << '\n';
13147	s << "\tnum_ref_idx_active_override_flag = " << value.num_ref_idx_active_override_flag << '\n';
13148	s << "\tno_output_of_prior_pics_flag = " << value.no_output_of_prior_pics_flag << '\n';
13149	s << "\tlong_term_reference_flag = " << value.long_term_reference_flag << '\n';
13150	s << "\tadaptive_ref_pic_marking_mode_flag = " << value.adaptive_ref_pic_marking_mode_flag << '\n';
13151	s << "\tno_prior_references_available_flag = " << value.no_prior_references_available_flag << '\n';
13152	s << '}';
13153	return s;
13154}
13155
13156std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264PictureInfoFlags& value)
13157{
13158	s << "StdVideoEncodeH264PictureInfoFlags = {\n";
13159	s << "\tidr_flag = " << value.idr_flag << '\n';
13160	s << "\tis_reference_flag = " << value.is_reference_flag << '\n';
13161	s << "\tlong_term_reference_flag = " << value.long_term_reference_flag << '\n';
13162	s << '}';
13163	return s;
13164}
13165
13166std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefMgmtFlags& value)
13167{
13168	s << "StdVideoEncodeH264RefMgmtFlags = {\n";
13169	s << "\tref_pic_list_modification_l0_flag = " << value.ref_pic_list_modification_l0_flag << '\n';
13170	s << "\tref_pic_list_modification_l1_flag = " << value.ref_pic_list_modification_l1_flag << '\n';
13171	s << '}';
13172	return s;
13173}
13174
13175std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefListModEntry& value)
13176{
13177	s << "StdVideoEncodeH264RefListModEntry = {\n";
13178	s << "\tmodification_of_pic_nums_idc = " << value.modification_of_pic_nums_idc << '\n';
13179	s << "\tabs_diff_pic_num_minus1 = " << value.abs_diff_pic_num_minus1 << '\n';
13180	s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
13181	s << '}';
13182	return s;
13183}
13184
13185std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefPicMarkingEntry& value)
13186{
13187	s << "StdVideoEncodeH264RefPicMarkingEntry = {\n";
13188	s << "\toperation = " << value.operation << '\n';
13189	s << "\tdifference_of_pic_nums_minus1 = " << value.difference_of_pic_nums_minus1 << '\n';
13190	s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
13191	s << "\tlong_term_frame_idx = " << value.long_term_frame_idx << '\n';
13192	s << "\tmax_long_term_frame_idx_plus1 = " << value.max_long_term_frame_idx_plus1 << '\n';
13193	s << '}';
13194	return s;
13195}
13196
13197std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefMemMgmtCtrlOperations& value)
13198{
13199	s << "StdVideoEncodeH264RefMemMgmtCtrlOperations = {\n";
13200	s << "\tflags = " << value.flags << '\n';
13201	s << "\trefList0ModOpCount = " << value.refList0ModOpCount << '\n';
13202	s << "\tpRefList0ModOperations = " << value.pRefList0ModOperations << '\n';
13203	s << "\trefList1ModOpCount = " << value.refList1ModOpCount << '\n';
13204	s << "\tpRefList1ModOperations = " << value.pRefList1ModOperations << '\n';
13205	s << "\trefPicMarkingOpCount = " << value.refPicMarkingOpCount << '\n';
13206	s << "\tpRefPicMarkingOperations = " << value.pRefPicMarkingOperations << '\n';
13207	s << '}';
13208	return s;
13209}
13210
13211std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264PictureInfo& value)
13212{
13213	s << "StdVideoEncodeH264PictureInfo = {\n";
13214	s << "\tflags = " << value.flags << '\n';
13215	s << "\tpictureType = " << value.pictureType << '\n';
13216	s << "\tframeNum = " << value.frameNum << '\n';
13217	s << "\tpictureOrderCount = " << value.pictureOrderCount << '\n';
13218	s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
13219	s << "\tlong_term_frame_idx = " << value.long_term_frame_idx << '\n';
13220	s << '}';
13221	return s;
13222}
13223
13224std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264SliceHeader& value)
13225{
13226	s << "StdVideoEncodeH264SliceHeader = {\n";
13227	s << "\tflags = " << value.flags << '\n';
13228	s << "\tslice_type = " << value.slice_type << '\n';
13229	s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
13230	s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
13231	s << "\tidr_pic_id = " << value.idr_pic_id << '\n';
13232	s << "\tnum_ref_idx_l0_active_minus1 = " << value.num_ref_idx_l0_active_minus1 << '\n';
13233	s << "\tnum_ref_idx_l1_active_minus1 = " << value.num_ref_idx_l1_active_minus1 << '\n';
13234	s << "\tcabac_init_idc = " << value.cabac_init_idc << '\n';
13235	s << "\tdisable_deblocking_filter_idc = " << value.disable_deblocking_filter_idc << '\n';
13236	s << "\tslice_alpha_c0_offset_div2 = " << value.slice_alpha_c0_offset_div2 << '\n';
13237	s << "\tslice_beta_offset_div2 = " << value.slice_beta_offset_div2 << '\n';
13238	s << "\tpMemMgmtCtrlOperations = " << value.pMemMgmtCtrlOperations << '\n';
13239	s << '}';
13240	return s;
13241}
13242
13243std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264CapabilitiesEXT& value)
13244{
13245	s << "VkVideoEncodeH264CapabilitiesEXT = {\n";
13246	s << "\tsType = " << value.sType << '\n';
13247	s << "\tpNext = " << value.pNext << '\n';
13248	s << "\tflags = " << getVideoEncodeH264CapabilityFlagsEXTStr(value.flags) << '\n';
13249	s << "\tinputModeFlags = " << getVideoEncodeH264InputModeFlagsEXTStr(value.inputModeFlags) << '\n';
13250	s << "\toutputModeFlags = " << getVideoEncodeH264OutputModeFlagsEXTStr(value.outputModeFlags) << '\n';
13251	s << "\tminPictureSizeInMbs = " << value.minPictureSizeInMbs << '\n';
13252	s << "\tmaxPictureSizeInMbs = " << value.maxPictureSizeInMbs << '\n';
13253	s << "\tinputImageDataAlignment = " << value.inputImageDataAlignment << '\n';
13254	s << "\tmaxNumL0ReferenceForP = " << value.maxNumL0ReferenceForP << '\n';
13255	s << "\tmaxNumL0ReferenceForB = " << value.maxNumL0ReferenceForB << '\n';
13256	s << "\tmaxNumL1Reference = " << value.maxNumL1Reference << '\n';
13257	s << "\tqualityLevelCount = " << value.qualityLevelCount << '\n';
13258	s << "\tstdExtensionVersion = " << value.stdExtensionVersion << '\n';
13259	s << '}';
13260	return s;
13261}
13262
13263std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionCreateInfoEXT& value)
13264{
13265	s << "VkVideoEncodeH264SessionCreateInfoEXT = {\n";
13266	s << "\tsType = " << value.sType << '\n';
13267	s << "\tpNext = " << value.pNext << '\n';
13268	s << "\tflags = " << getVideoEncodeH264CreateFlagsEXTStr(value.flags) << '\n';
13269	s << "\tmaxPictureSizeInMbs = " << value.maxPictureSizeInMbs << '\n';
13270	s << "\tpStdExtensionVersion = " << value.pStdExtensionVersion << '\n';
13271	s << '}';
13272	return s;
13273}
13274
13275std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersAddInfoEXT& value)
13276{
13277	s << "VkVideoEncodeH264SessionParametersAddInfoEXT = {\n";
13278	s << "\tsType = " << value.sType << '\n';
13279	s << "\tpNext = " << value.pNext << '\n';
13280	s << "\tspsStdCount = " << value.spsStdCount << '\n';
13281	s << "\tpSpsStd = " << value.pSpsStd << '\n';
13282	s << "\tppsStdCount = " << value.ppsStdCount << '\n';
13283	s << "\tpPpsStd = " << value.pPpsStd << '\n';
13284	s << '}';
13285	return s;
13286}
13287
13288std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersCreateInfoEXT& value)
13289{
13290	s << "VkVideoEncodeH264SessionParametersCreateInfoEXT = {\n";
13291	s << "\tsType = " << value.sType << '\n';
13292	s << "\tpNext = " << value.pNext << '\n';
13293	s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
13294	s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
13295	s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
13296	s << '}';
13297	return s;
13298}
13299
13300std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264DpbSlotInfoEXT& value)
13301{
13302	s << "VkVideoEncodeH264DpbSlotInfoEXT = {\n";
13303	s << "\tsType = " << value.sType << '\n';
13304	s << "\tpNext = " << value.pNext << '\n';
13305	s << "\tslotIndex = " << value.slotIndex << '\n';
13306	s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
13307	s << '}';
13308	return s;
13309}
13310
13311std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264NaluSliceEXT& value)
13312{
13313	s << "VkVideoEncodeH264NaluSliceEXT = {\n";
13314	s << "\tsType = " << value.sType << '\n';
13315	s << "\tpNext = " << value.pNext << '\n';
13316	s << "\tpSliceHeaderStd = " << value.pSliceHeaderStd << '\n';
13317	s << "\tmbCount = " << value.mbCount << '\n';
13318	s << "\trefFinalList0EntryCount = " << value.refFinalList0EntryCount << '\n';
13319	s << "\tpRefFinalList0Entries = " << value.pRefFinalList0Entries << '\n';
13320	s << "\trefFinalList1EntryCount = " << value.refFinalList1EntryCount << '\n';
13321	s << "\tpRefFinalList1Entries = " << value.pRefFinalList1Entries << '\n';
13322	s << '}';
13323	return s;
13324}
13325
13326std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264VclFrameInfoEXT& value)
13327{
13328	s << "VkVideoEncodeH264VclFrameInfoEXT = {\n";
13329	s << "\tsType = " << value.sType << '\n';
13330	s << "\tpNext = " << value.pNext << '\n';
13331	s << "\trefDefaultFinalList0EntryCount = " << value.refDefaultFinalList0EntryCount << '\n';
13332	s << "\tpRefDefaultFinalList0Entries = " << value.pRefDefaultFinalList0Entries << '\n';
13333	s << "\trefDefaultFinalList1EntryCount = " << value.refDefaultFinalList1EntryCount << '\n';
13334	s << "\tpRefDefaultFinalList1Entries = " << value.pRefDefaultFinalList1Entries << '\n';
13335	s << "\tnaluSliceEntryCount = " << value.naluSliceEntryCount << '\n';
13336	s << "\tpNaluSliceEntries = " << value.pNaluSliceEntries << '\n';
13337	s << "\tpCurrentPictureInfo = " << value.pCurrentPictureInfo << '\n';
13338	s << '}';
13339	return s;
13340}
13341
13342std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264EmitPictureParametersEXT& value)
13343{
13344	s << "VkVideoEncodeH264EmitPictureParametersEXT = {\n";
13345	s << "\tsType = " << value.sType << '\n';
13346	s << "\tpNext = " << value.pNext << '\n';
13347	s << "\tspsId = " << value.spsId << '\n';
13348	s << "\temitSpsEnable = " << value.emitSpsEnable << '\n';
13349	s << "\tppsIdEntryCount = " << value.ppsIdEntryCount << '\n';
13350	s << "\tppsIdEntries = " << value.ppsIdEntries << '\n';
13351	s << '}';
13352	return s;
13353}
13354
13355std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264ProfileEXT& value)
13356{
13357	s << "VkVideoEncodeH264ProfileEXT = {\n";
13358	s << "\tsType = " << value.sType << '\n';
13359	s << "\tpNext = " << value.pNext << '\n';
13360	s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
13361	s << '}';
13362	return s;
13363}
13364
13365std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264RateControlInfoEXT& value)
13366{
13367	s << "VkVideoEncodeH264RateControlInfoEXT = {\n";
13368	s << "\tsType = " << value.sType << '\n';
13369	s << "\tpNext = " << value.pNext << '\n';
13370	s << "\tgopFrameCount = " << value.gopFrameCount << '\n';
13371	s << "\tidrPeriod = " << value.idrPeriod << '\n';
13372	s << "\tconsecutiveBFrameCount = " << value.consecutiveBFrameCount << '\n';
13373	s << "\trateControlStructure = " << value.rateControlStructure << '\n';
13374	s << "\ttemporalLayerCount = " << value.temporalLayerCount << '\n';
13375	s << '}';
13376	return s;
13377}
13378
13379std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264QpEXT& value)
13380{
13381	s << "VkVideoEncodeH264QpEXT = {\n";
13382	s << "\tqpI = " << value.qpI << '\n';
13383	s << "\tqpP = " << value.qpP << '\n';
13384	s << "\tqpB = " << value.qpB << '\n';
13385	s << '}';
13386	return s;
13387}
13388
13389std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264FrameSizeEXT& value)
13390{
13391	s << "VkVideoEncodeH264FrameSizeEXT = {\n";
13392	s << "\tframeISize = " << value.frameISize << '\n';
13393	s << "\tframePSize = " << value.framePSize << '\n';
13394	s << "\tframeBSize = " << value.frameBSize << '\n';
13395	s << '}';
13396	return s;
13397}
13398
13399std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264RateControlLayerInfoEXT& value)
13400{
13401	s << "VkVideoEncodeH264RateControlLayerInfoEXT = {\n";
13402	s << "\tsType = " << value.sType << '\n';
13403	s << "\tpNext = " << value.pNext << '\n';
13404	s << "\ttemporalLayerId = " << value.temporalLayerId << '\n';
13405	s << "\tuseInitialRcQp = " << value.useInitialRcQp << '\n';
13406	s << "\tinitialRcQp = " << value.initialRcQp << '\n';
13407	s << "\tuseMinQp = " << value.useMinQp << '\n';
13408	s << "\tminQp = " << value.minQp << '\n';
13409	s << "\tuseMaxQp = " << value.useMaxQp << '\n';
13410	s << "\tmaxQp = " << value.maxQp << '\n';
13411	s << "\tuseMaxFrameSize = " << value.useMaxFrameSize << '\n';
13412	s << "\tmaxFrameSize = " << value.maxFrameSize << '\n';
13413	s << '}';
13414	return s;
13415}
13416
13417std::ostream& operator<< (std::ostream& s, const StdVideoH265DecPicBufMgr& value)
13418{
13419	s << "StdVideoH265DecPicBufMgr = {\n";
13420	s << "\tmax_latency_increase_plus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.max_latency_increase_plus1), DE_ARRAY_END(value.max_latency_increase_plus1)) << '\n';
13421	s << "\tmax_dec_pic_buffering_minus1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.max_dec_pic_buffering_minus1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.max_dec_pic_buffering_minus1))) << '\n';
13422	s << "\tmax_num_reorder_pics = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.max_num_reorder_pics)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.max_num_reorder_pics))) << '\n';
13423	s << '}';
13424	return s;
13425}
13426
13427std::ostream& operator<< (std::ostream& s, const StdVideoH265SubLayerHrdParameters& value)
13428{
13429	s << "StdVideoH265SubLayerHrdParameters = {\n";
13430	s << "\tbit_rate_value_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.bit_rate_value_minus1), DE_ARRAY_END(value.bit_rate_value_minus1)) << '\n';
13431	s << "\tcpb_size_value_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.cpb_size_value_minus1), DE_ARRAY_END(value.cpb_size_value_minus1)) << '\n';
13432	s << "\tcpb_size_du_value_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.cpb_size_du_value_minus1), DE_ARRAY_END(value.cpb_size_du_value_minus1)) << '\n';
13433	s << "\tbit_rate_du_value_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.bit_rate_du_value_minus1), DE_ARRAY_END(value.bit_rate_du_value_minus1)) << '\n';
13434	s << "\tcbr_flag = " << value.cbr_flag << '\n';
13435	s << '}';
13436	return s;
13437}
13438
13439std::ostream& operator<< (std::ostream& s, const StdVideoH265HrdFlags& value)
13440{
13441	s << "StdVideoH265HrdFlags = {\n";
13442	s << "\tnal_hrd_parameters_present_flag = " << value.nal_hrd_parameters_present_flag << '\n';
13443	s << "\tvcl_hrd_parameters_present_flag = " << value.vcl_hrd_parameters_present_flag << '\n';
13444	s << "\tsub_pic_hrd_params_present_flag = " << value.sub_pic_hrd_params_present_flag << '\n';
13445	s << "\tsub_pic_cpb_params_in_pic_timing_sei_flag = " << value.sub_pic_cpb_params_in_pic_timing_sei_flag << '\n';
13446	s << "\tfixed_pic_rate_general_flag = " << value.fixed_pic_rate_general_flag << '\n';
13447	s << "\tfixed_pic_rate_within_cvs_flag = " << value.fixed_pic_rate_within_cvs_flag << '\n';
13448	s << "\tlow_delay_hrd_flag = " << value.low_delay_hrd_flag << '\n';
13449	s << '}';
13450	return s;
13451}
13452
13453std::ostream& operator<< (std::ostream& s, const StdVideoH265HrdParameters& value)
13454{
13455	s << "StdVideoH265HrdParameters = {\n";
13456	s << "\ttick_divisor_minus2 = " << value.tick_divisor_minus2 << '\n';
13457	s << "\tdu_cpb_removal_delay_increment_length_minus1 = " << value.du_cpb_removal_delay_increment_length_minus1 << '\n';
13458	s << "\tdpb_output_delay_du_length_minus1 = " << value.dpb_output_delay_du_length_minus1 << '\n';
13459	s << "\tbit_rate_scale = " << value.bit_rate_scale << '\n';
13460	s << "\tcpb_size_scale = " << value.cpb_size_scale << '\n';
13461	s << "\tcpb_size_du_scale = " << value.cpb_size_du_scale << '\n';
13462	s << "\tinitial_cpb_removal_delay_length_minus1 = " << value.initial_cpb_removal_delay_length_minus1 << '\n';
13463	s << "\tau_cpb_removal_delay_length_minus1 = " << value.au_cpb_removal_delay_length_minus1 << '\n';
13464	s << "\tdpb_output_delay_length_minus1 = " << value.dpb_output_delay_length_minus1 << '\n';
13465	s << "\tcpb_cnt_minus1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.cpb_cnt_minus1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.cpb_cnt_minus1))) << '\n';
13466	s << "\telemental_duration_in_tc_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.elemental_duration_in_tc_minus1), DE_ARRAY_END(value.elemental_duration_in_tc_minus1)) << '\n';
13467	s << "\tpSubLayerHrdParametersNal = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.pSubLayerHrdParametersNal), DE_ARRAY_END(value.pSubLayerHrdParametersNal)) << '\n';
13468	s << "\tpSubLayerHrdParametersVcl = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.pSubLayerHrdParametersVcl), DE_ARRAY_END(value.pSubLayerHrdParametersVcl)) << '\n';
13469	s << "\tflags = " << value.flags << '\n';
13470	s << '}';
13471	return s;
13472}
13473
13474std::ostream& operator<< (std::ostream& s, const StdVideoH265VpsFlags& value)
13475{
13476	s << "StdVideoH265VpsFlags = {\n";
13477	s << "\tvps_temporal_id_nesting_flag = " << value.vps_temporal_id_nesting_flag << '\n';
13478	s << "\tvps_sub_layer_ordering_info_present_flag = " << value.vps_sub_layer_ordering_info_present_flag << '\n';
13479	s << "\tvps_timing_info_present_flag = " << value.vps_timing_info_present_flag << '\n';
13480	s << "\tvps_poc_proportional_to_timing_flag = " << value.vps_poc_proportional_to_timing_flag << '\n';
13481	s << '}';
13482	return s;
13483}
13484
13485std::ostream& operator<< (std::ostream& s, const StdVideoH265VideoParameterSet& value)
13486{
13487	s << "StdVideoH265VideoParameterSet = {\n";
13488	s << "\tvps_video_parameter_set_id = " << value.vps_video_parameter_set_id << '\n';
13489	s << "\tvps_max_sub_layers_minus1 = " << value.vps_max_sub_layers_minus1 << '\n';
13490	s << "\tvps_num_units_in_tick = " << value.vps_num_units_in_tick << '\n';
13491	s << "\tvps_time_scale = " << value.vps_time_scale << '\n';
13492	s << "\tvps_num_ticks_poc_diff_one_minus1 = " << value.vps_num_ticks_poc_diff_one_minus1 << '\n';
13493	s << "\tpDecPicBufMgr = " << value.pDecPicBufMgr << '\n';
13494	s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
13495	s << "\tflags = " << value.flags << '\n';
13496	s << '}';
13497	return s;
13498}
13499
13500std::ostream& operator<< (std::ostream& s, const StdVideoH265ScalingLists& value)
13501{
13502	s << "StdVideoH265ScalingLists = {\n";
13503	s << "\tScalingList4x4 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList4x4), DE_ARRAY_END(value.ScalingList4x4)) << '\n';
13504	s << "\tScalingList8x8 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList8x8), DE_ARRAY_END(value.ScalingList8x8)) << '\n';
13505	s << "\tScalingList16x16 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList16x16), DE_ARRAY_END(value.ScalingList16x16)) << '\n';
13506	s << "\tScalingList32x32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList32x32), DE_ARRAY_END(value.ScalingList32x32)) << '\n';
13507	s << "\tScalingListDCCoef16x16 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.ScalingListDCCoef16x16)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.ScalingListDCCoef16x16))) << '\n';
13508	s << "\tScalingListDCCoef32x32 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.ScalingListDCCoef32x32)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.ScalingListDCCoef32x32))) << '\n';
13509	s << '}';
13510	return s;
13511}
13512
13513std::ostream& operator<< (std::ostream& s, const StdVideoH265SpsVuiFlags& value)
13514{
13515	s << "StdVideoH265SpsVuiFlags = {\n";
13516	s << "\taspect_ratio_info_present_flag = " << value.aspect_ratio_info_present_flag << '\n';
13517	s << "\toverscan_info_present_flag = " << value.overscan_info_present_flag << '\n';
13518	s << "\toverscan_appropriate_flag = " << value.overscan_appropriate_flag << '\n';
13519	s << "\tvideo_signal_type_present_flag = " << value.video_signal_type_present_flag << '\n';
13520	s << "\tvideo_full_range_flag = " << value.video_full_range_flag << '\n';
13521	s << "\tcolour_description_present_flag = " << value.colour_description_present_flag << '\n';
13522	s << "\tchroma_loc_info_present_flag = " << value.chroma_loc_info_present_flag << '\n';
13523	s << "\tneutral_chroma_indication_flag = " << value.neutral_chroma_indication_flag << '\n';
13524	s << "\tfield_seq_flag = " << value.field_seq_flag << '\n';
13525	s << "\tframe_field_info_present_flag = " << value.frame_field_info_present_flag << '\n';
13526	s << "\tdefault_display_window_flag = " << value.default_display_window_flag << '\n';
13527	s << "\tvui_timing_info_present_flag = " << value.vui_timing_info_present_flag << '\n';
13528	s << "\tvui_poc_proportional_to_timing_flag = " << value.vui_poc_proportional_to_timing_flag << '\n';
13529	s << "\tvui_hrd_parameters_present_flag = " << value.vui_hrd_parameters_present_flag << '\n';
13530	s << "\tbitstream_restriction_flag = " << value.bitstream_restriction_flag << '\n';
13531	s << "\ttiles_fixed_structure_flag = " << value.tiles_fixed_structure_flag << '\n';
13532	s << "\tmotion_vectors_over_pic_boundaries_flag = " << value.motion_vectors_over_pic_boundaries_flag << '\n';
13533	s << "\trestricted_ref_pic_lists_flag = " << value.restricted_ref_pic_lists_flag << '\n';
13534	s << '}';
13535	return s;
13536}
13537
13538std::ostream& operator<< (std::ostream& s, const StdVideoH265SequenceParameterSetVui& value)
13539{
13540	s << "StdVideoH265SequenceParameterSetVui = {\n";
13541	s << "\taspect_ratio_idc = " << value.aspect_ratio_idc << '\n';
13542	s << "\tsar_width = " << value.sar_width << '\n';
13543	s << "\tsar_height = " << value.sar_height << '\n';
13544	s << "\tvideo_format = " << value.video_format << '\n';
13545	s << "\tcolour_primaries = " << value.colour_primaries << '\n';
13546	s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
13547	s << "\tmatrix_coeffs = " << value.matrix_coeffs << '\n';
13548	s << "\tchroma_sample_loc_type_top_field = " << value.chroma_sample_loc_type_top_field << '\n';
13549	s << "\tchroma_sample_loc_type_bottom_field = " << value.chroma_sample_loc_type_bottom_field << '\n';
13550	s << "\tdef_disp_win_left_offset = " << value.def_disp_win_left_offset << '\n';
13551	s << "\tdef_disp_win_right_offset = " << value.def_disp_win_right_offset << '\n';
13552	s << "\tdef_disp_win_top_offset = " << value.def_disp_win_top_offset << '\n';
13553	s << "\tdef_disp_win_bottom_offset = " << value.def_disp_win_bottom_offset << '\n';
13554	s << "\tvui_num_units_in_tick = " << value.vui_num_units_in_tick << '\n';
13555	s << "\tvui_time_scale = " << value.vui_time_scale << '\n';
13556	s << "\tvui_num_ticks_poc_diff_one_minus1 = " << value.vui_num_ticks_poc_diff_one_minus1 << '\n';
13557	s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
13558	s << "\tmin_spatial_segmentation_idc = " << value.min_spatial_segmentation_idc << '\n';
13559	s << "\tmax_bytes_per_pic_denom = " << value.max_bytes_per_pic_denom << '\n';
13560	s << "\tmax_bits_per_min_cu_denom = " << value.max_bits_per_min_cu_denom << '\n';
13561	s << "\tlog2_max_mv_length_horizontal = " << value.log2_max_mv_length_horizontal << '\n';
13562	s << "\tlog2_max_mv_length_vertical = " << value.log2_max_mv_length_vertical << '\n';
13563	s << "\tflags = " << value.flags << '\n';
13564	s << '}';
13565	return s;
13566}
13567
13568std::ostream& operator<< (std::ostream& s, const StdVideoH265PredictorPaletteEntries& value)
13569{
13570	s << "StdVideoH265PredictorPaletteEntries = {\n";
13571	s << "\tPredictorPaletteEntries = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PredictorPaletteEntries), DE_ARRAY_END(value.PredictorPaletteEntries)) << '\n';
13572	s << '}';
13573	return s;
13574}
13575
13576std::ostream& operator<< (std::ostream& s, const StdVideoH265SpsFlags& value)
13577{
13578	s << "StdVideoH265SpsFlags = {\n";
13579	s << "\tsps_temporal_id_nesting_flag = " << value.sps_temporal_id_nesting_flag << '\n';
13580	s << "\tseparate_colour_plane_flag = " << value.separate_colour_plane_flag << '\n';
13581	s << "\tscaling_list_enabled_flag = " << value.scaling_list_enabled_flag << '\n';
13582	s << "\tsps_scaling_list_data_present_flag = " << value.sps_scaling_list_data_present_flag << '\n';
13583	s << "\tamp_enabled_flag = " << value.amp_enabled_flag << '\n';
13584	s << "\tsample_adaptive_offset_enabled_flag = " << value.sample_adaptive_offset_enabled_flag << '\n';
13585	s << "\tpcm_enabled_flag = " << value.pcm_enabled_flag << '\n';
13586	s << "\tpcm_loop_filter_disabled_flag = " << value.pcm_loop_filter_disabled_flag << '\n';
13587	s << "\tlong_term_ref_pics_present_flag = " << value.long_term_ref_pics_present_flag << '\n';
13588	s << "\tsps_temporal_mvp_enabled_flag = " << value.sps_temporal_mvp_enabled_flag << '\n';
13589	s << "\tstrong_intra_smoothing_enabled_flag = " << value.strong_intra_smoothing_enabled_flag << '\n';
13590	s << "\tvui_parameters_present_flag = " << value.vui_parameters_present_flag << '\n';
13591	s << "\tsps_extension_present_flag = " << value.sps_extension_present_flag << '\n';
13592	s << "\tsps_range_extension_flag = " << value.sps_range_extension_flag << '\n';
13593	s << "\ttransform_skip_rotation_enabled_flag = " << value.transform_skip_rotation_enabled_flag << '\n';
13594	s << "\ttransform_skip_context_enabled_flag = " << value.transform_skip_context_enabled_flag << '\n';
13595	s << "\timplicit_rdpcm_enabled_flag = " << value.implicit_rdpcm_enabled_flag << '\n';
13596	s << "\texplicit_rdpcm_enabled_flag = " << value.explicit_rdpcm_enabled_flag << '\n';
13597	s << "\textended_precision_processing_flag = " << value.extended_precision_processing_flag << '\n';
13598	s << "\tintra_smoothing_disabled_flag = " << value.intra_smoothing_disabled_flag << '\n';
13599	s << "\thigh_precision_offsets_enabled_flag = " << value.high_precision_offsets_enabled_flag << '\n';
13600	s << "\tpersistent_rice_adaptation_enabled_flag = " << value.persistent_rice_adaptation_enabled_flag << '\n';
13601	s << "\tcabac_bypass_alignment_enabled_flag = " << value.cabac_bypass_alignment_enabled_flag << '\n';
13602	s << "\tsps_curr_pic_ref_enabled_flag = " << value.sps_curr_pic_ref_enabled_flag << '\n';
13603	s << "\tpalette_mode_enabled_flag = " << value.palette_mode_enabled_flag << '\n';
13604	s << "\tsps_palette_predictor_initializer_present_flag = " << value.sps_palette_predictor_initializer_present_flag << '\n';
13605	s << "\tintra_boundary_filtering_disabled_flag = " << value.intra_boundary_filtering_disabled_flag << '\n';
13606	s << '}';
13607	return s;
13608}
13609
13610std::ostream& operator<< (std::ostream& s, const StdVideoH265SequenceParameterSet& value)
13611{
13612	s << "StdVideoH265SequenceParameterSet = {\n";
13613	s << "\tprofile_idc = " << value.profile_idc << '\n';
13614	s << "\tlevel_idc = " << value.level_idc << '\n';
13615	s << "\tpic_width_in_luma_samples = " << value.pic_width_in_luma_samples << '\n';
13616	s << "\tpic_height_in_luma_samples = " << value.pic_height_in_luma_samples << '\n';
13617	s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
13618	s << "\tsps_max_sub_layers_minus1 = " << value.sps_max_sub_layers_minus1 << '\n';
13619	s << "\tsps_seq_parameter_set_id = " << value.sps_seq_parameter_set_id << '\n';
13620	s << "\tchroma_format_idc = " << value.chroma_format_idc << '\n';
13621	s << "\tbit_depth_luma_minus8 = " << value.bit_depth_luma_minus8 << '\n';
13622	s << "\tbit_depth_chroma_minus8 = " << value.bit_depth_chroma_minus8 << '\n';
13623	s << "\tlog2_max_pic_order_cnt_lsb_minus4 = " << value.log2_max_pic_order_cnt_lsb_minus4 << '\n';
13624	s << "\tsps_max_dec_pic_buffering_minus1 = " << value.sps_max_dec_pic_buffering_minus1 << '\n';
13625	s << "\tlog2_min_luma_coding_block_size_minus3 = " << value.log2_min_luma_coding_block_size_minus3 << '\n';
13626	s << "\tlog2_diff_max_min_luma_coding_block_size = " << value.log2_diff_max_min_luma_coding_block_size << '\n';
13627	s << "\tlog2_min_luma_transform_block_size_minus2 = " << value.log2_min_luma_transform_block_size_minus2 << '\n';
13628	s << "\tlog2_diff_max_min_luma_transform_block_size = " << value.log2_diff_max_min_luma_transform_block_size << '\n';
13629	s << "\tmax_transform_hierarchy_depth_inter = " << value.max_transform_hierarchy_depth_inter << '\n';
13630	s << "\tmax_transform_hierarchy_depth_intra = " << value.max_transform_hierarchy_depth_intra << '\n';
13631	s << "\tnum_short_term_ref_pic_sets = " << value.num_short_term_ref_pic_sets << '\n';
13632	s << "\tnum_long_term_ref_pics_sps = " << value.num_long_term_ref_pics_sps << '\n';
13633	s << "\tpcm_sample_bit_depth_luma_minus1 = " << value.pcm_sample_bit_depth_luma_minus1 << '\n';
13634	s << "\tpcm_sample_bit_depth_chroma_minus1 = " << value.pcm_sample_bit_depth_chroma_minus1 << '\n';
13635	s << "\tlog2_min_pcm_luma_coding_block_size_minus3 = " << value.log2_min_pcm_luma_coding_block_size_minus3 << '\n';
13636	s << "\tlog2_diff_max_min_pcm_luma_coding_block_size = " << value.log2_diff_max_min_pcm_luma_coding_block_size << '\n';
13637	s << "\tconf_win_left_offset = " << value.conf_win_left_offset << '\n';
13638	s << "\tconf_win_right_offset = " << value.conf_win_right_offset << '\n';
13639	s << "\tconf_win_top_offset = " << value.conf_win_top_offset << '\n';
13640	s << "\tconf_win_bottom_offset = " << value.conf_win_bottom_offset << '\n';
13641	s << "\tpDecPicBufMgr = " << value.pDecPicBufMgr << '\n';
13642	s << "\tflags = " << value.flags << '\n';
13643	s << "\tpScalingLists = " << value.pScalingLists << '\n';
13644	s << "\tpSequenceParameterSetVui = " << value.pSequenceParameterSetVui << '\n';
13645	s << "\tpalette_max_size = " << value.palette_max_size << '\n';
13646	s << "\tdelta_palette_max_predictor_size = " << value.delta_palette_max_predictor_size << '\n';
13647	s << "\tmotion_vector_resolution_control_idc = " << value.motion_vector_resolution_control_idc << '\n';
13648	s << "\tsps_num_palette_predictor_initializer_minus1 = " << value.sps_num_palette_predictor_initializer_minus1 << '\n';
13649	s << "\tpPredictorPaletteEntries = " << value.pPredictorPaletteEntries << '\n';
13650	s << '}';
13651	return s;
13652}
13653
13654std::ostream& operator<< (std::ostream& s, const StdVideoH265PpsFlags& value)
13655{
13656	s << "StdVideoH265PpsFlags = {\n";
13657	s << "\tdependent_slice_segments_enabled_flag = " << value.dependent_slice_segments_enabled_flag << '\n';
13658	s << "\toutput_flag_present_flag = " << value.output_flag_present_flag << '\n';
13659	s << "\tsign_data_hiding_enabled_flag = " << value.sign_data_hiding_enabled_flag << '\n';
13660	s << "\tcabac_init_present_flag = " << value.cabac_init_present_flag << '\n';
13661	s << "\tconstrained_intra_pred_flag = " << value.constrained_intra_pred_flag << '\n';
13662	s << "\ttransform_skip_enabled_flag = " << value.transform_skip_enabled_flag << '\n';
13663	s << "\tcu_qp_delta_enabled_flag = " << value.cu_qp_delta_enabled_flag << '\n';
13664	s << "\tpps_slice_chroma_qp_offsets_present_flag = " << value.pps_slice_chroma_qp_offsets_present_flag << '\n';
13665	s << "\tweighted_pred_flag = " << value.weighted_pred_flag << '\n';
13666	s << "\tweighted_bipred_flag = " << value.weighted_bipred_flag << '\n';
13667	s << "\ttransquant_bypass_enabled_flag = " << value.transquant_bypass_enabled_flag << '\n';
13668	s << "\ttiles_enabled_flag = " << value.tiles_enabled_flag << '\n';
13669	s << "\tentropy_coding_sync_enabled_flag = " << value.entropy_coding_sync_enabled_flag << '\n';
13670	s << "\tuniform_spacing_flag = " << value.uniform_spacing_flag << '\n';
13671	s << "\tloop_filter_across_tiles_enabled_flag = " << value.loop_filter_across_tiles_enabled_flag << '\n';
13672	s << "\tpps_loop_filter_across_slices_enabled_flag = " << value.pps_loop_filter_across_slices_enabled_flag << '\n';
13673	s << "\tdeblocking_filter_control_present_flag = " << value.deblocking_filter_control_present_flag << '\n';
13674	s << "\tdeblocking_filter_override_enabled_flag = " << value.deblocking_filter_override_enabled_flag << '\n';
13675	s << "\tpps_deblocking_filter_disabled_flag = " << value.pps_deblocking_filter_disabled_flag << '\n';
13676	s << "\tpps_scaling_list_data_present_flag = " << value.pps_scaling_list_data_present_flag << '\n';
13677	s << "\tlists_modification_present_flag = " << value.lists_modification_present_flag << '\n';
13678	s << "\tslice_segment_header_extension_present_flag = " << value.slice_segment_header_extension_present_flag << '\n';
13679	s << "\tpps_extension_present_flag = " << value.pps_extension_present_flag << '\n';
13680	s << "\tcross_component_prediction_enabled_flag = " << value.cross_component_prediction_enabled_flag << '\n';
13681	s << "\tchroma_qp_offset_list_enabled_flag = " << value.chroma_qp_offset_list_enabled_flag << '\n';
13682	s << "\tpps_curr_pic_ref_enabled_flag = " << value.pps_curr_pic_ref_enabled_flag << '\n';
13683	s << "\tresidual_adaptive_colour_transform_enabled_flag = " << value.residual_adaptive_colour_transform_enabled_flag << '\n';
13684	s << "\tpps_slice_act_qp_offsets_present_flag = " << value.pps_slice_act_qp_offsets_present_flag << '\n';
13685	s << "\tpps_palette_predictor_initializer_present_flag = " << value.pps_palette_predictor_initializer_present_flag << '\n';
13686	s << "\tmonochrome_palette_flag = " << value.monochrome_palette_flag << '\n';
13687	s << "\tpps_range_extension_flag = " << value.pps_range_extension_flag << '\n';
13688	s << '}';
13689	return s;
13690}
13691
13692std::ostream& operator<< (std::ostream& s, const StdVideoH265PictureParameterSet& value)
13693{
13694	s << "StdVideoH265PictureParameterSet = {\n";
13695	s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
13696	s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
13697	s << "\tnum_extra_slice_header_bits = " << value.num_extra_slice_header_bits << '\n';
13698	s << "\tnum_ref_idx_l0_default_active_minus1 = " << value.num_ref_idx_l0_default_active_minus1 << '\n';
13699	s << "\tnum_ref_idx_l1_default_active_minus1 = " << value.num_ref_idx_l1_default_active_minus1 << '\n';
13700	s << "\tinit_qp_minus26 = " << value.init_qp_minus26 << '\n';
13701	s << "\tdiff_cu_qp_delta_depth = " << value.diff_cu_qp_delta_depth << '\n';
13702	s << "\tpps_cb_qp_offset = " << value.pps_cb_qp_offset << '\n';
13703	s << "\tpps_cr_qp_offset = " << value.pps_cr_qp_offset << '\n';
13704	s << "\tnum_tile_columns_minus1 = " << value.num_tile_columns_minus1 << '\n';
13705	s << "\tnum_tile_rows_minus1 = " << value.num_tile_rows_minus1 << '\n';
13706	s << "\tcolumn_width_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.column_width_minus1), DE_ARRAY_END(value.column_width_minus1)) << '\n';
13707	s << "\trow_height_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.row_height_minus1), DE_ARRAY_END(value.row_height_minus1)) << '\n';
13708	s << "\tpps_beta_offset_div2 = " << value.pps_beta_offset_div2 << '\n';
13709	s << "\tpps_tc_offset_div2 = " << value.pps_tc_offset_div2 << '\n';
13710	s << "\tlog2_parallel_merge_level_minus2 = " << value.log2_parallel_merge_level_minus2 << '\n';
13711	s << "\tflags = " << value.flags << '\n';
13712	s << "\tpScalingLists = " << value.pScalingLists << '\n';
13713	s << "\tlog2_max_transform_skip_block_size_minus2 = " << value.log2_max_transform_skip_block_size_minus2 << '\n';
13714	s << "\tdiff_cu_chroma_qp_offset_depth = " << value.diff_cu_chroma_qp_offset_depth << '\n';
13715	s << "\tchroma_qp_offset_list_len_minus1 = " << value.chroma_qp_offset_list_len_minus1 << '\n';
13716	s << "\tcb_qp_offset_list = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.cb_qp_offset_list), DE_ARRAY_END(value.cb_qp_offset_list)) << '\n';
13717	s << "\tcr_qp_offset_list = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.cr_qp_offset_list), DE_ARRAY_END(value.cr_qp_offset_list)) << '\n';
13718	s << "\tlog2_sao_offset_scale_luma = " << value.log2_sao_offset_scale_luma << '\n';
13719	s << "\tlog2_sao_offset_scale_chroma = " << value.log2_sao_offset_scale_chroma << '\n';
13720	s << "\tpps_act_y_qp_offset_plus5 = " << value.pps_act_y_qp_offset_plus5 << '\n';
13721	s << "\tpps_act_cb_qp_offset_plus5 = " << value.pps_act_cb_qp_offset_plus5 << '\n';
13722	s << "\tpps_act_cr_qp_offset_plus5 = " << value.pps_act_cr_qp_offset_plus5 << '\n';
13723	s << "\tpps_num_palette_predictor_initializer = " << value.pps_num_palette_predictor_initializer << '\n';
13724	s << "\tluma_bit_depth_entry_minus8 = " << value.luma_bit_depth_entry_minus8 << '\n';
13725	s << "\tchroma_bit_depth_entry_minus8 = " << value.chroma_bit_depth_entry_minus8 << '\n';
13726	s << "\tpPredictorPaletteEntries = " << value.pPredictorPaletteEntries << '\n';
13727	s << '}';
13728	return s;
13729}
13730
13731std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265SliceHeaderFlags& value)
13732{
13733	s << "StdVideoEncodeH265SliceHeaderFlags = {\n";
13734	s << "\tfirst_slice_segment_in_pic_flag = " << value.first_slice_segment_in_pic_flag << '\n';
13735	s << "\tno_output_of_prior_pics_flag = " << value.no_output_of_prior_pics_flag << '\n';
13736	s << "\tdependent_slice_segment_flag = " << value.dependent_slice_segment_flag << '\n';
13737	s << "\tshort_term_ref_pic_set_sps_flag = " << value.short_term_ref_pic_set_sps_flag << '\n';
13738	s << "\tslice_temporal_mvp_enable_flag = " << value.slice_temporal_mvp_enable_flag << '\n';
13739	s << "\tslice_sao_luma_flag = " << value.slice_sao_luma_flag << '\n';
13740	s << "\tslice_sao_chroma_flag = " << value.slice_sao_chroma_flag << '\n';
13741	s << "\tnum_ref_idx_active_override_flag = " << value.num_ref_idx_active_override_flag << '\n';
13742	s << "\tmvd_l1_zero_flag = " << value.mvd_l1_zero_flag << '\n';
13743	s << "\tcabac_init_flag = " << value.cabac_init_flag << '\n';
13744	s << "\tslice_deblocking_filter_disable_flag = " << value.slice_deblocking_filter_disable_flag << '\n';
13745	s << "\tcollocated_from_l0_flag = " << value.collocated_from_l0_flag << '\n';
13746	s << "\tslice_loop_filter_across_slices_enabled_flag = " << value.slice_loop_filter_across_slices_enabled_flag << '\n';
13747	s << "\tbLastSliceInPic = " << value.bLastSliceInPic << '\n';
13748	s << "\treservedBits = " << value.reservedBits << '\n';
13749	s << "\tluma_weight_l0_flag = " << value.luma_weight_l0_flag << '\n';
13750	s << "\tchroma_weight_l0_flag = " << value.chroma_weight_l0_flag << '\n';
13751	s << "\tluma_weight_l1_flag = " << value.luma_weight_l1_flag << '\n';
13752	s << "\tchroma_weight_l1_flag = " << value.chroma_weight_l1_flag << '\n';
13753	s << '}';
13754	return s;
13755}
13756
13757std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265SliceHeader& value)
13758{
13759	s << "StdVideoEncodeH265SliceHeader = {\n";
13760	s << "\tslice_type = " << value.slice_type << '\n';
13761	s << "\tslice_pic_parameter_set_id = " << value.slice_pic_parameter_set_id << '\n';
13762	s << "\tnum_short_term_ref_pic_sets = " << value.num_short_term_ref_pic_sets << '\n';
13763	s << "\tslice_segment_address = " << value.slice_segment_address << '\n';
13764	s << "\tshort_term_ref_pic_set_idx = " << value.short_term_ref_pic_set_idx << '\n';
13765	s << "\tnum_long_term_sps = " << value.num_long_term_sps << '\n';
13766	s << "\tnum_long_term_pics = " << value.num_long_term_pics << '\n';
13767	s << "\tcollocated_ref_idx = " << value.collocated_ref_idx << '\n';
13768	s << "\tnum_ref_idx_l0_active_minus1 = " << value.num_ref_idx_l0_active_minus1 << '\n';
13769	s << "\tnum_ref_idx_l1_active_minus1 = " << value.num_ref_idx_l1_active_minus1 << '\n';
13770	s << "\tluma_log2_weight_denom = " << value.luma_log2_weight_denom << '\n';
13771	s << "\tdelta_chroma_log2_weight_denom = " << value.delta_chroma_log2_weight_denom << '\n';
13772	s << "\tdelta_luma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_luma_weight_l0), DE_ARRAY_END(value.delta_luma_weight_l0)) << '\n';
13773	s << "\tluma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l0), DE_ARRAY_END(value.luma_offset_l0)) << '\n';
13774	s << "\tdelta_chroma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_weight_l0), DE_ARRAY_END(value.delta_chroma_weight_l0)) << '\n';
13775	s << "\tdelta_chroma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_offset_l0), DE_ARRAY_END(value.delta_chroma_offset_l0)) << '\n';
13776	s << "\tdelta_luma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_luma_weight_l1), DE_ARRAY_END(value.delta_luma_weight_l1)) << '\n';
13777	s << "\tluma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l1), DE_ARRAY_END(value.luma_offset_l1)) << '\n';
13778	s << "\tdelta_chroma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_weight_l1), DE_ARRAY_END(value.delta_chroma_weight_l1)) << '\n';
13779	s << "\tdelta_chroma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_offset_l1), DE_ARRAY_END(value.delta_chroma_offset_l1)) << '\n';
13780	s << "\tMaxNumMergeCand = " << value.MaxNumMergeCand << '\n';
13781	s << "\tslice_qp_delta = " << value.slice_qp_delta << '\n';
13782	s << "\tslice_cb_qp_offset = " << value.slice_cb_qp_offset << '\n';
13783	s << "\tslice_cr_qp_offset = " << value.slice_cr_qp_offset << '\n';
13784	s << "\tslice_beta_offset_div2 = " << value.slice_beta_offset_div2 << '\n';
13785	s << "\tslice_tc_offset_div2 = " << value.slice_tc_offset_div2 << '\n';
13786	s << "\tslice_act_y_qp_offset = " << value.slice_act_y_qp_offset << '\n';
13787	s << "\tslice_act_cb_qp_offset = " << value.slice_act_cb_qp_offset << '\n';
13788	s << "\tslice_act_cr_qp_offset = " << value.slice_act_cr_qp_offset << '\n';
13789	s << "\tflags = " << value.flags << '\n';
13790	s << '}';
13791	return s;
13792}
13793
13794std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceModificationFlags& value)
13795{
13796	s << "StdVideoEncodeH265ReferenceModificationFlags = {\n";
13797	s << "\tref_pic_list_modification_flag_l0 = " << value.ref_pic_list_modification_flag_l0 << '\n';
13798	s << "\tref_pic_list_modification_flag_l1 = " << value.ref_pic_list_modification_flag_l1 << '\n';
13799	s << '}';
13800	return s;
13801}
13802
13803std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceModifications& value)
13804{
13805	s << "StdVideoEncodeH265ReferenceModifications = {\n";
13806	s << "\tflags = " << value.flags << '\n';
13807	s << "\treferenceList0ModificationsCount = " << value.referenceList0ModificationsCount << '\n';
13808	s << "\tpReferenceList0Modifications = " << value.pReferenceList0Modifications << '\n';
13809	s << "\treferenceList1ModificationsCount = " << value.referenceList1ModificationsCount << '\n';
13810	s << "\tpReferenceList1Modifications = " << value.pReferenceList1Modifications << '\n';
13811	s << '}';
13812	return s;
13813}
13814
13815std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265PictureInfoFlags& value)
13816{
13817	s << "StdVideoEncodeH265PictureInfoFlags = {\n";
13818	s << "\tis_reference_flag = " << value.is_reference_flag << '\n';
13819	s << "\tIrapPicFlag = " << value.IrapPicFlag << '\n';
13820	s << "\tlong_term_flag = " << value.long_term_flag << '\n';
13821	s << '}';
13822	return s;
13823}
13824
13825std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265PictureInfo& value)
13826{
13827	s << "StdVideoEncodeH265PictureInfo = {\n";
13828	s << "\tPictureType = " << value.PictureType << '\n';
13829	s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
13830	s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
13831	s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
13832	s << "\tTemporalId = " << value.TemporalId << '\n';
13833	s << "\tflags = " << value.flags << '\n';
13834	s << '}';
13835	return s;
13836}
13837
13838std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceInfoFlags& value)
13839{
13840	s << "StdVideoEncodeH265ReferenceInfoFlags = {\n";
13841	s << "\tis_long_term = " << value.is_long_term << '\n';
13842	s << "\tisUsedFlag = " << value.isUsedFlag << '\n';
13843	s << '}';
13844	return s;
13845}
13846
13847std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceInfo& value)
13848{
13849	s << "StdVideoEncodeH265ReferenceInfo = {\n";
13850	s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
13851	s << "\tTemporalId = " << value.TemporalId << '\n';
13852	s << "\tflags = " << value.flags << '\n';
13853	s << '}';
13854	return s;
13855}
13856
13857std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265CapabilitiesEXT& value)
13858{
13859	s << "VkVideoEncodeH265CapabilitiesEXT = {\n";
13860	s << "\tsType = " << value.sType << '\n';
13861	s << "\tpNext = " << value.pNext << '\n';
13862	s << "\tflags = " << getVideoEncodeH265CapabilityFlagsEXTStr(value.flags) << '\n';
13863	s << "\tinputModeFlags = " << getVideoEncodeH265InputModeFlagsEXTStr(value.inputModeFlags) << '\n';
13864	s << "\toutputModeFlags = " << getVideoEncodeH265OutputModeFlagsEXTStr(value.outputModeFlags) << '\n';
13865	s << "\tctbSizes = " << getVideoEncodeH265CtbSizeFlagsEXTStr(value.ctbSizes) << '\n';
13866	s << "\tinputImageDataAlignment = " << value.inputImageDataAlignment << '\n';
13867	s << "\tmaxNumL0ReferenceForP = " << value.maxNumL0ReferenceForP << '\n';
13868	s << "\tmaxNumL0ReferenceForB = " << value.maxNumL0ReferenceForB << '\n';
13869	s << "\tmaxNumL1Reference = " << value.maxNumL1Reference << '\n';
13870	s << "\tmaxNumSubLayers = " << value.maxNumSubLayers << '\n';
13871	s << "\tqualityLevelCount = " << value.qualityLevelCount << '\n';
13872	s << "\tstdExtensionVersion = " << value.stdExtensionVersion << '\n';
13873	s << '}';
13874	return s;
13875}
13876
13877std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionCreateInfoEXT& value)
13878{
13879	s << "VkVideoEncodeH265SessionCreateInfoEXT = {\n";
13880	s << "\tsType = " << value.sType << '\n';
13881	s << "\tpNext = " << value.pNext << '\n';
13882	s << "\tflags = " << getVideoEncodeH265CreateFlagsEXTStr(value.flags) << '\n';
13883	s << "\tpStdExtensionVersion = " << value.pStdExtensionVersion << '\n';
13884	s << '}';
13885	return s;
13886}
13887
13888std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionParametersAddInfoEXT& value)
13889{
13890	s << "VkVideoEncodeH265SessionParametersAddInfoEXT = {\n";
13891	s << "\tsType = " << value.sType << '\n';
13892	s << "\tpNext = " << value.pNext << '\n';
13893	s << "\tvpsStdCount = " << value.vpsStdCount << '\n';
13894	s << "\tpVpsStd = " << value.pVpsStd << '\n';
13895	s << "\tspsStdCount = " << value.spsStdCount << '\n';
13896	s << "\tpSpsStd = " << value.pSpsStd << '\n';
13897	s << "\tppsStdCount = " << value.ppsStdCount << '\n';
13898	s << "\tpPpsStd = " << value.pPpsStd << '\n';
13899	s << '}';
13900	return s;
13901}
13902
13903std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionParametersCreateInfoEXT& value)
13904{
13905	s << "VkVideoEncodeH265SessionParametersCreateInfoEXT = {\n";
13906	s << "\tsType = " << value.sType << '\n';
13907	s << "\tpNext = " << value.pNext << '\n';
13908	s << "\tmaxVpsStdCount = " << value.maxVpsStdCount << '\n';
13909	s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
13910	s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
13911	s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
13912	s << '}';
13913	return s;
13914}
13915
13916std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265DpbSlotInfoEXT& value)
13917{
13918	s << "VkVideoEncodeH265DpbSlotInfoEXT = {\n";
13919	s << "\tsType = " << value.sType << '\n';
13920	s << "\tpNext = " << value.pNext << '\n';
13921	s << "\tslotIndex = " << value.slotIndex << '\n';
13922	s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
13923	s << '}';
13924	return s;
13925}
13926
13927std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265ReferenceListsEXT& value)
13928{
13929	s << "VkVideoEncodeH265ReferenceListsEXT = {\n";
13930	s << "\tsType = " << value.sType << '\n';
13931	s << "\tpNext = " << value.pNext << '\n';
13932	s << "\treferenceList0EntryCount = " << value.referenceList0EntryCount << '\n';
13933	s << "\tpReferenceList0Entries = " << value.pReferenceList0Entries << '\n';
13934	s << "\treferenceList1EntryCount = " << value.referenceList1EntryCount << '\n';
13935	s << "\tpReferenceList1Entries = " << value.pReferenceList1Entries << '\n';
13936	s << "\tpReferenceModifications = " << value.pReferenceModifications << '\n';
13937	s << '}';
13938	return s;
13939}
13940
13941std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265NaluSliceEXT& value)
13942{
13943	s << "VkVideoEncodeH265NaluSliceEXT = {\n";
13944	s << "\tsType = " << value.sType << '\n';
13945	s << "\tpNext = " << value.pNext << '\n';
13946	s << "\tctbCount = " << value.ctbCount << '\n';
13947	s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
13948	s << "\tpSliceHeaderStd = " << value.pSliceHeaderStd << '\n';
13949	s << '}';
13950	return s;
13951}
13952
13953std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265VclFrameInfoEXT& value)
13954{
13955	s << "VkVideoEncodeH265VclFrameInfoEXT = {\n";
13956	s << "\tsType = " << value.sType << '\n';
13957	s << "\tpNext = " << value.pNext << '\n';
13958	s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
13959	s << "\tnaluSliceEntryCount = " << value.naluSliceEntryCount << '\n';
13960	s << "\tpNaluSliceEntries = " << value.pNaluSliceEntries << '\n';
13961	s << "\tpCurrentPictureInfo = " << value.pCurrentPictureInfo << '\n';
13962	s << '}';
13963	return s;
13964}
13965
13966std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265EmitPictureParametersEXT& value)
13967{
13968	s << "VkVideoEncodeH265EmitPictureParametersEXT = {\n";
13969	s << "\tsType = " << value.sType << '\n';
13970	s << "\tpNext = " << value.pNext << '\n';
13971	s << "\tvpsId = " << value.vpsId << '\n';
13972	s << "\tspsId = " << value.spsId << '\n';
13973	s << "\temitVpsEnable = " << value.emitVpsEnable << '\n';
13974	s << "\temitSpsEnable = " << value.emitSpsEnable << '\n';
13975	s << "\tppsIdEntryCount = " << value.ppsIdEntryCount << '\n';
13976	s << "\tppsIdEntries = " << value.ppsIdEntries << '\n';
13977	s << '}';
13978	return s;
13979}
13980
13981std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265ProfileEXT& value)
13982{
13983	s << "VkVideoEncodeH265ProfileEXT = {\n";
13984	s << "\tsType = " << value.sType << '\n';
13985	s << "\tpNext = " << value.pNext << '\n';
13986	s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
13987	s << '}';
13988	return s;
13989}
13990
13991std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265RateControlInfoEXT& value)
13992{
13993	s << "VkVideoEncodeH265RateControlInfoEXT = {\n";
13994	s << "\tsType = " << value.sType << '\n';
13995	s << "\tpNext = " << value.pNext << '\n';
13996	s << "\tgopFrameCount = " << value.gopFrameCount << '\n';
13997	s << "\tidrPeriod = " << value.idrPeriod << '\n';
13998	s << "\tconsecutiveBFrameCount = " << value.consecutiveBFrameCount << '\n';
13999	s << "\trateControlStructure = " << value.rateControlStructure << '\n';
14000	s << "\tsubLayerCount = " << value.subLayerCount << '\n';
14001	s << '}';
14002	return s;
14003}
14004
14005std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265QpEXT& value)
14006{
14007	s << "VkVideoEncodeH265QpEXT = {\n";
14008	s << "\tqpI = " << value.qpI << '\n';
14009	s << "\tqpP = " << value.qpP << '\n';
14010	s << "\tqpB = " << value.qpB << '\n';
14011	s << '}';
14012	return s;
14013}
14014
14015std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265FrameSizeEXT& value)
14016{
14017	s << "VkVideoEncodeH265FrameSizeEXT = {\n";
14018	s << "\tframeISize = " << value.frameISize << '\n';
14019	s << "\tframePSize = " << value.framePSize << '\n';
14020	s << "\tframeBSize = " << value.frameBSize << '\n';
14021	s << '}';
14022	return s;
14023}
14024
14025std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265RateControlLayerInfoEXT& value)
14026{
14027	s << "VkVideoEncodeH265RateControlLayerInfoEXT = {\n";
14028	s << "\tsType = " << value.sType << '\n';
14029	s << "\tpNext = " << value.pNext << '\n';
14030	s << "\ttemporalId = " << value.temporalId << '\n';
14031	s << "\tuseInitialRcQp = " << value.useInitialRcQp << '\n';
14032	s << "\tinitialRcQp = " << value.initialRcQp << '\n';
14033	s << "\tuseMinQp = " << value.useMinQp << '\n';
14034	s << "\tminQp = " << value.minQp << '\n';
14035	s << "\tuseMaxQp = " << value.useMaxQp << '\n';
14036	s << "\tmaxQp = " << value.maxQp << '\n';
14037	s << "\tuseMaxFrameSize = " << value.useMaxFrameSize << '\n';
14038	s << "\tmaxFrameSize = " << value.maxFrameSize << '\n';
14039	s << '}';
14040	return s;
14041}
14042
14043std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264PictureInfoFlags& value)
14044{
14045	s << "StdVideoDecodeH264PictureInfoFlags = {\n";
14046	s << "\tfield_pic_flag = " << value.field_pic_flag << '\n';
14047	s << "\tis_intra = " << value.is_intra << '\n';
14048	s << "\tIdrPicFlag = " << value.IdrPicFlag << '\n';
14049	s << "\tbottom_field_flag = " << value.bottom_field_flag << '\n';
14050	s << "\tis_reference = " << value.is_reference << '\n';
14051	s << "\tcomplementary_field_pair = " << value.complementary_field_pair << '\n';
14052	s << '}';
14053	return s;
14054}
14055
14056std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264PictureInfo& value)
14057{
14058	s << "StdVideoDecodeH264PictureInfo = {\n";
14059	s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
14060	s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
14061	s << "\treserved = " << value.reserved << '\n';
14062	s << "\tframe_num = " << value.frame_num << '\n';
14063	s << "\tidr_pic_id = " << value.idr_pic_id << '\n';
14064	s << "\tPicOrderCnt = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PicOrderCnt), DE_ARRAY_END(value.PicOrderCnt)) << '\n';
14065	s << "\tflags = " << value.flags << '\n';
14066	s << '}';
14067	return s;
14068}
14069
14070std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264ReferenceInfoFlags& value)
14071{
14072	s << "StdVideoDecodeH264ReferenceInfoFlags = {\n";
14073	s << "\ttop_field_flag = " << value.top_field_flag << '\n';
14074	s << "\tbottom_field_flag = " << value.bottom_field_flag << '\n';
14075	s << "\tis_long_term = " << value.is_long_term << '\n';
14076	s << "\tis_non_existing = " << value.is_non_existing << '\n';
14077	s << '}';
14078	return s;
14079}
14080
14081std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264ReferenceInfo& value)
14082{
14083	s << "StdVideoDecodeH264ReferenceInfo = {\n";
14084	s << "\tFrameNum = " << value.FrameNum << '\n';
14085	s << "\treserved = " << value.reserved << '\n';
14086	s << "\tPicOrderCnt = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PicOrderCnt), DE_ARRAY_END(value.PicOrderCnt)) << '\n';
14087	s << "\tflags = " << value.flags << '\n';
14088	s << '}';
14089	return s;
14090}
14091
14092std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264MvcElementFlags& value)
14093{
14094	s << "StdVideoDecodeH264MvcElementFlags = {\n";
14095	s << "\tnon_idr = " << value.non_idr << '\n';
14096	s << "\tanchor_pic = " << value.anchor_pic << '\n';
14097	s << "\tinter_view = " << value.inter_view << '\n';
14098	s << '}';
14099	return s;
14100}
14101
14102std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264MvcElement& value)
14103{
14104	s << "StdVideoDecodeH264MvcElement = {\n";
14105	s << "\tflags = " << value.flags << '\n';
14106	s << "\tviewOrderIndex = " << value.viewOrderIndex << '\n';
14107	s << "\tviewId = " << value.viewId << '\n';
14108	s << "\ttemporalId = " << value.temporalId << '\n';
14109	s << "\tpriorityId = " << value.priorityId << '\n';
14110	s << "\tnumOfAnchorRefsInL0 = " << value.numOfAnchorRefsInL0 << '\n';
14111	s << "\tviewIdOfAnchorRefsInL0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfAnchorRefsInL0), DE_ARRAY_END(value.viewIdOfAnchorRefsInL0)) << '\n';
14112	s << "\tnumOfAnchorRefsInL1 = " << value.numOfAnchorRefsInL1 << '\n';
14113	s << "\tviewIdOfAnchorRefsInL1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfAnchorRefsInL1), DE_ARRAY_END(value.viewIdOfAnchorRefsInL1)) << '\n';
14114	s << "\tnumOfNonAnchorRefsInL0 = " << value.numOfNonAnchorRefsInL0 << '\n';
14115	s << "\tviewIdOfNonAnchorRefsInL0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfNonAnchorRefsInL0), DE_ARRAY_END(value.viewIdOfNonAnchorRefsInL0)) << '\n';
14116	s << "\tnumOfNonAnchorRefsInL1 = " << value.numOfNonAnchorRefsInL1 << '\n';
14117	s << "\tviewIdOfNonAnchorRefsInL1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfNonAnchorRefsInL1), DE_ARRAY_END(value.viewIdOfNonAnchorRefsInL1)) << '\n';
14118	s << '}';
14119	return s;
14120}
14121
14122std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264Mvc& value)
14123{
14124	s << "StdVideoDecodeH264Mvc = {\n";
14125	s << "\tviewId0 = " << value.viewId0 << '\n';
14126	s << "\tmvcElementCount = " << value.mvcElementCount << '\n';
14127	s << "\tpMvcElements = " << value.pMvcElements << '\n';
14128	s << '}';
14129	return s;
14130}
14131
14132std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264ProfileEXT& value)
14133{
14134	s << "VkVideoDecodeH264ProfileEXT = {\n";
14135	s << "\tsType = " << value.sType << '\n';
14136	s << "\tpNext = " << value.pNext << '\n';
14137	s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
14138	s << "\tpictureLayout = " << getVideoDecodeH264PictureLayoutFlagsEXTStr(value.pictureLayout) << '\n';
14139	s << '}';
14140	return s;
14141}
14142
14143std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264CapabilitiesEXT& value)
14144{
14145	s << "VkVideoDecodeH264CapabilitiesEXT = {\n";
14146	s << "\tsType = " << value.sType << '\n';
14147	s << "\tpNext = " << value.pNext << '\n';
14148	s << "\tmaxLevel = " << value.maxLevel << '\n';
14149	s << "\tfieldOffsetGranularity = " << value.fieldOffsetGranularity << '\n';
14150	s << "\tstdExtensionVersion = " << value.stdExtensionVersion << '\n';
14151	s << '}';
14152	return s;
14153}
14154
14155std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionCreateInfoEXT& value)
14156{
14157	s << "VkVideoDecodeH264SessionCreateInfoEXT = {\n";
14158	s << "\tsType = " << value.sType << '\n';
14159	s << "\tpNext = " << value.pNext << '\n';
14160	s << "\tflags = " << getVideoDecodeH264CreateFlagsEXTStr(value.flags) << '\n';
14161	s << "\tpStdExtensionVersion = " << value.pStdExtensionVersion << '\n';
14162	s << '}';
14163	return s;
14164}
14165
14166std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionParametersAddInfoEXT& value)
14167{
14168	s << "VkVideoDecodeH264SessionParametersAddInfoEXT = {\n";
14169	s << "\tsType = " << value.sType << '\n';
14170	s << "\tpNext = " << value.pNext << '\n';
14171	s << "\tspsStdCount = " << value.spsStdCount << '\n';
14172	s << "\tpSpsStd = " << value.pSpsStd << '\n';
14173	s << "\tppsStdCount = " << value.ppsStdCount << '\n';
14174	s << "\tpPpsStd = " << value.pPpsStd << '\n';
14175	s << '}';
14176	return s;
14177}
14178
14179std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionParametersCreateInfoEXT& value)
14180{
14181	s << "VkVideoDecodeH264SessionParametersCreateInfoEXT = {\n";
14182	s << "\tsType = " << value.sType << '\n';
14183	s << "\tpNext = " << value.pNext << '\n';
14184	s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
14185	s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
14186	s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
14187	s << '}';
14188	return s;
14189}
14190
14191std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264PictureInfoEXT& value)
14192{
14193	s << "VkVideoDecodeH264PictureInfoEXT = {\n";
14194	s << "\tsType = " << value.sType << '\n';
14195	s << "\tpNext = " << value.pNext << '\n';
14196	s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
14197	s << "\tslicesCount = " << value.slicesCount << '\n';
14198	s << "\tpSlicesDataOffsets = " << value.pSlicesDataOffsets << '\n';
14199	s << '}';
14200	return s;
14201}
14202
14203std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264MvcEXT& value)
14204{
14205	s << "VkVideoDecodeH264MvcEXT = {\n";
14206	s << "\tsType = " << value.sType << '\n';
14207	s << "\tpNext = " << value.pNext << '\n';
14208	s << "\tpStdMvc = " << value.pStdMvc << '\n';
14209	s << '}';
14210	return s;
14211}
14212
14213std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264DpbSlotInfoEXT& value)
14214{
14215	s << "VkVideoDecodeH264DpbSlotInfoEXT = {\n";
14216	s << "\tsType = " << value.sType << '\n';
14217	s << "\tpNext = " << value.pNext << '\n';
14218	s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
14219	s << '}';
14220	return s;
14221}
14222
14223std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265PictureInfoFlags& value)
14224{
14225	s << "StdVideoDecodeH265PictureInfoFlags = {\n";
14226	s << "\tIrapPicFlag = " << value.IrapPicFlag << '\n';
14227	s << "\tIdrPicFlag = " << value.IdrPicFlag << '\n';
14228	s << "\tIsReference = " << value.IsReference << '\n';
14229	s << "\tshort_term_ref_pic_set_sps_flag = " << value.short_term_ref_pic_set_sps_flag << '\n';
14230	s << '}';
14231	return s;
14232}
14233
14234std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265PictureInfo& value)
14235{
14236	s << "StdVideoDecodeH265PictureInfo = {\n";
14237	s << "\tvps_video_parameter_set_id = " << value.vps_video_parameter_set_id << '\n';
14238	s << "\tsps_seq_parameter_set_id = " << value.sps_seq_parameter_set_id << '\n';
14239	s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
14240	s << "\tnum_short_term_ref_pic_sets = " << value.num_short_term_ref_pic_sets << '\n';
14241	s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
14242	s << "\tNumBitsForSTRefPicSetInSlice = " << value.NumBitsForSTRefPicSetInSlice << '\n';
14243	s << "\tNumDeltaPocsOfRefRpsIdx = " << value.NumDeltaPocsOfRefRpsIdx << '\n';
14244	s << "\tRefPicSetStCurrBefore = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.RefPicSetStCurrBefore)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.RefPicSetStCurrBefore))) << '\n';
14245	s << "\tRefPicSetStCurrAfter = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.RefPicSetStCurrAfter)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.RefPicSetStCurrAfter))) << '\n';
14246	s << "\tRefPicSetLtCurr = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.RefPicSetLtCurr)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.RefPicSetLtCurr))) << '\n';
14247	s << "\tflags = " << value.flags << '\n';
14248	s << '}';
14249	return s;
14250}
14251
14252std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265ReferenceInfoFlags& value)
14253{
14254	s << "StdVideoDecodeH265ReferenceInfoFlags = {\n";
14255	s << "\tis_long_term = " << value.is_long_term << '\n';
14256	s << "\tis_non_existing = " << value.is_non_existing << '\n';
14257	s << '}';
14258	return s;
14259}
14260
14261std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265ReferenceInfo& value)
14262{
14263	s << "StdVideoDecodeH265ReferenceInfo = {\n";
14264	s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
14265	s << "\tflags = " << value.flags << '\n';
14266	s << '}';
14267	return s;
14268}
14269
14270std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265ProfileEXT& value)
14271{
14272	s << "VkVideoDecodeH265ProfileEXT = {\n";
14273	s << "\tsType = " << value.sType << '\n';
14274	s << "\tpNext = " << value.pNext << '\n';
14275	s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
14276	s << '}';
14277	return s;
14278}
14279
14280std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265CapabilitiesEXT& value)
14281{
14282	s << "VkVideoDecodeH265CapabilitiesEXT = {\n";
14283	s << "\tsType = " << value.sType << '\n';
14284	s << "\tpNext = " << value.pNext << '\n';
14285	s << "\tmaxLevel = " << value.maxLevel << '\n';
14286	s << "\tstdExtensionVersion = " << value.stdExtensionVersion << '\n';
14287	s << '}';
14288	return s;
14289}
14290
14291std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionCreateInfoEXT& value)
14292{
14293	s << "VkVideoDecodeH265SessionCreateInfoEXT = {\n";
14294	s << "\tsType = " << value.sType << '\n';
14295	s << "\tpNext = " << value.pNext << '\n';
14296	s << "\tflags = " << getVideoDecodeH265CreateFlagsEXTStr(value.flags) << '\n';
14297	s << "\tpStdExtensionVersion = " << value.pStdExtensionVersion << '\n';
14298	s << '}';
14299	return s;
14300}
14301
14302std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionParametersAddInfoEXT& value)
14303{
14304	s << "VkVideoDecodeH265SessionParametersAddInfoEXT = {\n";
14305	s << "\tsType = " << value.sType << '\n';
14306	s << "\tpNext = " << value.pNext << '\n';
14307	s << "\tspsStdCount = " << value.spsStdCount << '\n';
14308	s << "\tpSpsStd = " << value.pSpsStd << '\n';
14309	s << "\tppsStdCount = " << value.ppsStdCount << '\n';
14310	s << "\tpPpsStd = " << value.pPpsStd << '\n';
14311	s << '}';
14312	return s;
14313}
14314
14315std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionParametersCreateInfoEXT& value)
14316{
14317	s << "VkVideoDecodeH265SessionParametersCreateInfoEXT = {\n";
14318	s << "\tsType = " << value.sType << '\n';
14319	s << "\tpNext = " << value.pNext << '\n';
14320	s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
14321	s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
14322	s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
14323	s << '}';
14324	return s;
14325}
14326
14327std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265PictureInfoEXT& value)
14328{
14329	s << "VkVideoDecodeH265PictureInfoEXT = {\n";
14330	s << "\tsType = " << value.sType << '\n';
14331	s << "\tpNext = " << value.pNext << '\n';
14332	s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
14333	s << "\tslicesCount = " << value.slicesCount << '\n';
14334	s << "\tpSlicesDataOffsets = " << value.pSlicesDataOffsets << '\n';
14335	s << '}';
14336	return s;
14337}
14338
14339std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265DpbSlotInfoEXT& value)
14340{
14341	s << "VkVideoDecodeH265DpbSlotInfoEXT = {\n";
14342	s << "\tsType = " << value.sType << '\n';
14343	s << "\tpNext = " << value.pNext << '\n';
14344	s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
14345	s << '}';
14346	return s;
14347}
14348
14349std::ostream& operator<< (std::ostream& s, const VkImagePipeSurfaceCreateInfoFUCHSIA& value)
14350{
14351	s << "VkImagePipeSurfaceCreateInfoFUCHSIA = {\n";
14352	s << "\tsType = " << value.sType << '\n';
14353	s << "\tpNext = " << value.pNext << '\n';
14354	s << "\tflags = " << getImagePipeSurfaceCreateFlagsFUCHSIAStr(value.flags) << '\n';
14355	s << "\timagePipeHandle = " << value.imagePipeHandle << '\n';
14356	s << '}';
14357	return s;
14358}
14359
14360std::ostream& operator<< (std::ostream& s, const VkImportMemoryZirconHandleInfoFUCHSIA& value)
14361{
14362	s << "VkImportMemoryZirconHandleInfoFUCHSIA = {\n";
14363	s << "\tsType = " << value.sType << '\n';
14364	s << "\tpNext = " << value.pNext << '\n';
14365	s << "\thandleType = " << value.handleType << '\n';
14366	s << "\thandle = " << value.handle << '\n';
14367	s << '}';
14368	return s;
14369}
14370
14371std::ostream& operator<< (std::ostream& s, const VkMemoryZirconHandlePropertiesFUCHSIA& value)
14372{
14373	s << "VkMemoryZirconHandlePropertiesFUCHSIA = {\n";
14374	s << "\tsType = " << value.sType << '\n';
14375	s << "\tpNext = " << value.pNext << '\n';
14376	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
14377	s << '}';
14378	return s;
14379}
14380
14381std::ostream& operator<< (std::ostream& s, const VkMemoryGetZirconHandleInfoFUCHSIA& value)
14382{
14383	s << "VkMemoryGetZirconHandleInfoFUCHSIA = {\n";
14384	s << "\tsType = " << value.sType << '\n';
14385	s << "\tpNext = " << value.pNext << '\n';
14386	s << "\tmemory = " << value.memory << '\n';
14387	s << "\thandleType = " << value.handleType << '\n';
14388	s << '}';
14389	return s;
14390}
14391
14392std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreZirconHandleInfoFUCHSIA& value)
14393{
14394	s << "VkImportSemaphoreZirconHandleInfoFUCHSIA = {\n";
14395	s << "\tsType = " << value.sType << '\n';
14396	s << "\tpNext = " << value.pNext << '\n';
14397	s << "\tsemaphore = " << value.semaphore << '\n';
14398	s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
14399	s << "\thandleType = " << value.handleType << '\n';
14400	s << "\tzirconHandle = " << value.zirconHandle << '\n';
14401	s << '}';
14402	return s;
14403}
14404
14405std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetZirconHandleInfoFUCHSIA& value)
14406{
14407	s << "VkSemaphoreGetZirconHandleInfoFUCHSIA = {\n";
14408	s << "\tsType = " << value.sType << '\n';
14409	s << "\tpNext = " << value.pNext << '\n';
14410	s << "\tsemaphore = " << value.semaphore << '\n';
14411	s << "\thandleType = " << value.handleType << '\n';
14412	s << '}';
14413	return s;
14414}
14415
14416std::ostream& operator<< (std::ostream& s, const VkBufferCollectionCreateInfoFUCHSIA& value)
14417{
14418	s << "VkBufferCollectionCreateInfoFUCHSIA = {\n";
14419	s << "\tsType = " << value.sType << '\n';
14420	s << "\tpNext = " << value.pNext << '\n';
14421	s << "\tcollectionToken = " << value.collectionToken << '\n';
14422	s << '}';
14423	return s;
14424}
14425
14426std::ostream& operator<< (std::ostream& s, const VkImportMemoryBufferCollectionFUCHSIA& value)
14427{
14428	s << "VkImportMemoryBufferCollectionFUCHSIA = {\n";
14429	s << "\tsType = " << value.sType << '\n';
14430	s << "\tpNext = " << value.pNext << '\n';
14431	s << "\tcollection = " << value.collection << '\n';
14432	s << "\tindex = " << value.index << '\n';
14433	s << '}';
14434	return s;
14435}
14436
14437std::ostream& operator<< (std::ostream& s, const VkBufferCollectionImageCreateInfoFUCHSIA& value)
14438{
14439	s << "VkBufferCollectionImageCreateInfoFUCHSIA = {\n";
14440	s << "\tsType = " << value.sType << '\n';
14441	s << "\tpNext = " << value.pNext << '\n';
14442	s << "\tcollection = " << value.collection << '\n';
14443	s << "\tindex = " << value.index << '\n';
14444	s << '}';
14445	return s;
14446}
14447
14448std::ostream& operator<< (std::ostream& s, const VkBufferCollectionConstraintsInfoFUCHSIA& value)
14449{
14450	s << "VkBufferCollectionConstraintsInfoFUCHSIA = {\n";
14451	s << "\tsType = " << value.sType << '\n';
14452	s << "\tpNext = " << value.pNext << '\n';
14453	s << "\tminBufferCount = " << value.minBufferCount << '\n';
14454	s << "\tmaxBufferCount = " << value.maxBufferCount << '\n';
14455	s << "\tminBufferCountForCamping = " << value.minBufferCountForCamping << '\n';
14456	s << "\tminBufferCountForDedicatedSlack = " << value.minBufferCountForDedicatedSlack << '\n';
14457	s << "\tminBufferCountForSharedSlack = " << value.minBufferCountForSharedSlack << '\n';
14458	s << '}';
14459	return s;
14460}
14461
14462std::ostream& operator<< (std::ostream& s, const VkBufferConstraintsInfoFUCHSIA& value)
14463{
14464	s << "VkBufferConstraintsInfoFUCHSIA = {\n";
14465	s << "\tsType = " << value.sType << '\n';
14466	s << "\tpNext = " << value.pNext << '\n';
14467	s << "\tcreateInfo = " << value.createInfo << '\n';
14468	s << "\trequiredFormatFeatures = " << getFormatFeatureFlagsStr(value.requiredFormatFeatures) << '\n';
14469	s << "\tbufferCollectionConstraints = " << value.bufferCollectionConstraints << '\n';
14470	s << '}';
14471	return s;
14472}
14473
14474std::ostream& operator<< (std::ostream& s, const VkBufferCollectionBufferCreateInfoFUCHSIA& value)
14475{
14476	s << "VkBufferCollectionBufferCreateInfoFUCHSIA = {\n";
14477	s << "\tsType = " << value.sType << '\n';
14478	s << "\tpNext = " << value.pNext << '\n';
14479	s << "\tcollection = " << value.collection << '\n';
14480	s << "\tindex = " << value.index << '\n';
14481	s << '}';
14482	return s;
14483}
14484
14485std::ostream& operator<< (std::ostream& s, const VkSysmemColorSpaceFUCHSIA& value)
14486{
14487	s << "VkSysmemColorSpaceFUCHSIA = {\n";
14488	s << "\tsType = " << value.sType << '\n';
14489	s << "\tpNext = " << value.pNext << '\n';
14490	s << "\tcolorSpace = " << value.colorSpace << '\n';
14491	s << '}';
14492	return s;
14493}
14494
14495std::ostream& operator<< (std::ostream& s, const VkBufferCollectionPropertiesFUCHSIA& value)
14496{
14497	s << "VkBufferCollectionPropertiesFUCHSIA = {\n";
14498	s << "\tsType = " << value.sType << '\n';
14499	s << "\tpNext = " << value.pNext << '\n';
14500	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
14501	s << "\tbufferCount = " << value.bufferCount << '\n';
14502	s << "\tcreateInfoIndex = " << value.createInfoIndex << '\n';
14503	s << "\tsysmemPixelFormat = " << value.sysmemPixelFormat << '\n';
14504	s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
14505	s << "\tsysmemColorSpaceIndex = " << value.sysmemColorSpaceIndex << '\n';
14506	s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
14507	s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
14508	s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
14509	s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
14510	s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
14511	s << '}';
14512	return s;
14513}
14514
14515std::ostream& operator<< (std::ostream& s, const VkImageFormatConstraintsInfoFUCHSIA& value)
14516{
14517	s << "VkImageFormatConstraintsInfoFUCHSIA = {\n";
14518	s << "\tsType = " << value.sType << '\n';
14519	s << "\tpNext = " << value.pNext << '\n';
14520	s << "\timageCreateInfo = " << value.imageCreateInfo << '\n';
14521	s << "\trequiredFormatFeatures = " << getFormatFeatureFlagsStr(value.requiredFormatFeatures) << '\n';
14522	s << "\tflags = " << getImageFormatConstraintsFlagsFUCHSIAStr(value.flags) << '\n';
14523	s << "\tsysmemPixelFormat = " << value.sysmemPixelFormat << '\n';
14524	s << "\tcolorSpaceCount = " << value.colorSpaceCount << '\n';
14525	s << "\tpColorSpaces = " << value.pColorSpaces << '\n';
14526	s << '}';
14527	return s;
14528}
14529
14530std::ostream& operator<< (std::ostream& s, const VkImageConstraintsInfoFUCHSIA& value)
14531{
14532	s << "VkImageConstraintsInfoFUCHSIA = {\n";
14533	s << "\tsType = " << value.sType << '\n';
14534	s << "\tpNext = " << value.pNext << '\n';
14535	s << "\tformatConstraintsCount = " << value.formatConstraintsCount << '\n';
14536	s << "\tpFormatConstraints = " << value.pFormatConstraints << '\n';
14537	s << "\tbufferCollectionConstraints = " << value.bufferCollectionConstraints << '\n';
14538	s << "\tflags = " << getImageConstraintsInfoFlagsFUCHSIAStr(value.flags) << '\n';
14539	s << '}';
14540	return s;
14541}
14542
14543std::ostream& operator<< (std::ostream& s, const VkStreamDescriptorSurfaceCreateInfoGGP& value)
14544{
14545	s << "VkStreamDescriptorSurfaceCreateInfoGGP = {\n";
14546	s << "\tsType = " << value.sType << '\n';
14547	s << "\tpNext = " << value.pNext << '\n';
14548	s << "\tflags = " << getStreamDescriptorSurfaceCreateFlagsGGPStr(value.flags) << '\n';
14549	s << "\tstreamDescriptor = " << value.streamDescriptor << '\n';
14550	s << '}';
14551	return s;
14552}
14553
14554std::ostream& operator<< (std::ostream& s, const VkPresentFrameTokenGGP& value)
14555{
14556	s << "VkPresentFrameTokenGGP = {\n";
14557	s << "\tsType = " << value.sType << '\n';
14558	s << "\tpNext = " << value.pNext << '\n';
14559	s << "\tframeToken = " << value.frameToken << '\n';
14560	s << '}';
14561	return s;
14562}
14563
14564std::ostream& operator<< (std::ostream& s, const VkIOSSurfaceCreateInfoMVK& value)
14565{
14566	s << "VkIOSSurfaceCreateInfoMVK = {\n";
14567	s << "\tsType = " << value.sType << '\n';
14568	s << "\tpNext = " << value.pNext << '\n';
14569	s << "\tflags = " << getIOSSurfaceCreateFlagsMVKStr(value.flags) << '\n';
14570	s << "\tpView = " << value.pView << '\n';
14571	s << '}';
14572	return s;
14573}
14574
14575std::ostream& operator<< (std::ostream& s, const VkMacOSSurfaceCreateInfoMVK& value)
14576{
14577	s << "VkMacOSSurfaceCreateInfoMVK = {\n";
14578	s << "\tsType = " << value.sType << '\n';
14579	s << "\tpNext = " << value.pNext << '\n';
14580	s << "\tflags = " << getMacOSSurfaceCreateFlagsMVKStr(value.flags) << '\n';
14581	s << "\tpView = " << value.pView << '\n';
14582	s << '}';
14583	return s;
14584}
14585
14586std::ostream& operator<< (std::ostream& s, const VkMetalSurfaceCreateInfoEXT& value)
14587{
14588	s << "VkMetalSurfaceCreateInfoEXT = {\n";
14589	s << "\tsType = " << value.sType << '\n';
14590	s << "\tpNext = " << value.pNext << '\n';
14591	s << "\tflags = " << getMetalSurfaceCreateFlagsEXTStr(value.flags) << '\n';
14592	s << "\tpLayer = " << value.pLayer << '\n';
14593	s << '}';
14594	return s;
14595}
14596
14597std::ostream& operator<< (std::ostream& s, const VkViSurfaceCreateInfoNN& value)
14598{
14599	s << "VkViSurfaceCreateInfoNN = {\n";
14600	s << "\tsType = " << value.sType << '\n';
14601	s << "\tpNext = " << value.pNext << '\n';
14602	s << "\tflags = " << getViSurfaceCreateFlagsNNStr(value.flags) << '\n';
14603	s << "\twindow = " << value.window << '\n';
14604	s << '}';
14605	return s;
14606}
14607
14608std::ostream& operator<< (std::ostream& s, const VkWaylandSurfaceCreateInfoKHR& value)
14609{
14610	s << "VkWaylandSurfaceCreateInfoKHR = {\n";
14611	s << "\tsType = " << value.sType << '\n';
14612	s << "\tpNext = " << value.pNext << '\n';
14613	s << "\tflags = " << getWaylandSurfaceCreateFlagsKHRStr(value.flags) << '\n';
14614	s << "\tdisplay = " << value.display << '\n';
14615	s << "\tsurface = " << value.surface << '\n';
14616	s << '}';
14617	return s;
14618}
14619
14620std::ostream& operator<< (std::ostream& s, const VkWin32SurfaceCreateInfoKHR& value)
14621{
14622	s << "VkWin32SurfaceCreateInfoKHR = {\n";
14623	s << "\tsType = " << value.sType << '\n';
14624	s << "\tpNext = " << value.pNext << '\n';
14625	s << "\tflags = " << getWin32SurfaceCreateFlagsKHRStr(value.flags) << '\n';
14626	s << "\thinstance = " << value.hinstance << '\n';
14627	s << "\thwnd = " << value.hwnd << '\n';
14628	s << '}';
14629	return s;
14630}
14631
14632std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoKHR& value)
14633{
14634	s << "VkImportMemoryWin32HandleInfoKHR = {\n";
14635	s << "\tsType = " << value.sType << '\n';
14636	s << "\tpNext = " << value.pNext << '\n';
14637	s << "\thandleType = " << value.handleType << '\n';
14638	s << "\thandle = " << value.handle << '\n';
14639	s << "\tname = " << getWStr(value.name) << '\n';
14640	s << '}';
14641	return s;
14642}
14643
14644std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoKHR& value)
14645{
14646	s << "VkExportMemoryWin32HandleInfoKHR = {\n";
14647	s << "\tsType = " << value.sType << '\n';
14648	s << "\tpNext = " << value.pNext << '\n';
14649	s << "\tpAttributes = " << value.pAttributes << '\n';
14650	s << "\tdwAccess = " << value.dwAccess << '\n';
14651	s << "\tname = " << getWStr(value.name) << '\n';
14652	s << '}';
14653	return s;
14654}
14655
14656std::ostream& operator<< (std::ostream& s, const VkMemoryWin32HandlePropertiesKHR& value)
14657{
14658	s << "VkMemoryWin32HandlePropertiesKHR = {\n";
14659	s << "\tsType = " << value.sType << '\n';
14660	s << "\tpNext = " << value.pNext << '\n';
14661	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
14662	s << '}';
14663	return s;
14664}
14665
14666std::ostream& operator<< (std::ostream& s, const VkMemoryGetWin32HandleInfoKHR& value)
14667{
14668	s << "VkMemoryGetWin32HandleInfoKHR = {\n";
14669	s << "\tsType = " << value.sType << '\n';
14670	s << "\tpNext = " << value.pNext << '\n';
14671	s << "\tmemory = " << value.memory << '\n';
14672	s << "\thandleType = " << value.handleType << '\n';
14673	s << '}';
14674	return s;
14675}
14676
14677std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoKHR& value)
14678{
14679	s << "VkWin32KeyedMutexAcquireReleaseInfoKHR = {\n";
14680	s << "\tsType = " << value.sType << '\n';
14681	s << "\tpNext = " << value.pNext << '\n';
14682	s << "\tacquireCount = " << value.acquireCount << '\n';
14683	s << "\tpAcquireSyncs = " << value.pAcquireSyncs << '\n';
14684	s << "\tpAcquireKeys = " << value.pAcquireKeys << '\n';
14685	s << "\tpAcquireTimeouts = " << value.pAcquireTimeouts << '\n';
14686	s << "\treleaseCount = " << value.releaseCount << '\n';
14687	s << "\tpReleaseSyncs = " << value.pReleaseSyncs << '\n';
14688	s << "\tpReleaseKeys = " << value.pReleaseKeys << '\n';
14689	s << '}';
14690	return s;
14691}
14692
14693std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreWin32HandleInfoKHR& value)
14694{
14695	s << "VkImportSemaphoreWin32HandleInfoKHR = {\n";
14696	s << "\tsType = " << value.sType << '\n';
14697	s << "\tpNext = " << value.pNext << '\n';
14698	s << "\tsemaphore = " << value.semaphore << '\n';
14699	s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
14700	s << "\thandleType = " << value.handleType << '\n';
14701	s << "\thandle = " << value.handle << '\n';
14702	s << "\tname = " << getWStr(value.name) << '\n';
14703	s << '}';
14704	return s;
14705}
14706
14707std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreWin32HandleInfoKHR& value)
14708{
14709	s << "VkExportSemaphoreWin32HandleInfoKHR = {\n";
14710	s << "\tsType = " << value.sType << '\n';
14711	s << "\tpNext = " << value.pNext << '\n';
14712	s << "\tpAttributes = " << value.pAttributes << '\n';
14713	s << "\tdwAccess = " << value.dwAccess << '\n';
14714	s << "\tname = " << getWStr(value.name) << '\n';
14715	s << '}';
14716	return s;
14717}
14718
14719std::ostream& operator<< (std::ostream& s, const VkD3D12FenceSubmitInfoKHR& value)
14720{
14721	s << "VkD3D12FenceSubmitInfoKHR = {\n";
14722	s << "\tsType = " << value.sType << '\n';
14723	s << "\tpNext = " << value.pNext << '\n';
14724	s << "\twaitSemaphoreValuesCount = " << value.waitSemaphoreValuesCount << '\n';
14725	s << "\tpWaitSemaphoreValues = " << value.pWaitSemaphoreValues << '\n';
14726	s << "\tsignalSemaphoreValuesCount = " << value.signalSemaphoreValuesCount << '\n';
14727	s << "\tpSignalSemaphoreValues = " << value.pSignalSemaphoreValues << '\n';
14728	s << '}';
14729	return s;
14730}
14731
14732std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetWin32HandleInfoKHR& value)
14733{
14734	s << "VkSemaphoreGetWin32HandleInfoKHR = {\n";
14735	s << "\tsType = " << value.sType << '\n';
14736	s << "\tpNext = " << value.pNext << '\n';
14737	s << "\tsemaphore = " << value.semaphore << '\n';
14738	s << "\thandleType = " << value.handleType << '\n';
14739	s << '}';
14740	return s;
14741}
14742
14743std::ostream& operator<< (std::ostream& s, const VkImportFenceWin32HandleInfoKHR& value)
14744{
14745	s << "VkImportFenceWin32HandleInfoKHR = {\n";
14746	s << "\tsType = " << value.sType << '\n';
14747	s << "\tpNext = " << value.pNext << '\n';
14748	s << "\tfence = " << value.fence << '\n';
14749	s << "\tflags = " << getFenceImportFlagsStr(value.flags) << '\n';
14750	s << "\thandleType = " << value.handleType << '\n';
14751	s << "\thandle = " << value.handle << '\n';
14752	s << "\tname = " << getWStr(value.name) << '\n';
14753	s << '}';
14754	return s;
14755}
14756
14757std::ostream& operator<< (std::ostream& s, const VkExportFenceWin32HandleInfoKHR& value)
14758{
14759	s << "VkExportFenceWin32HandleInfoKHR = {\n";
14760	s << "\tsType = " << value.sType << '\n';
14761	s << "\tpNext = " << value.pNext << '\n';
14762	s << "\tpAttributes = " << value.pAttributes << '\n';
14763	s << "\tdwAccess = " << value.dwAccess << '\n';
14764	s << "\tname = " << getWStr(value.name) << '\n';
14765	s << '}';
14766	return s;
14767}
14768
14769std::ostream& operator<< (std::ostream& s, const VkFenceGetWin32HandleInfoKHR& value)
14770{
14771	s << "VkFenceGetWin32HandleInfoKHR = {\n";
14772	s << "\tsType = " << value.sType << '\n';
14773	s << "\tpNext = " << value.pNext << '\n';
14774	s << "\tfence = " << value.fence << '\n';
14775	s << "\thandleType = " << value.handleType << '\n';
14776	s << '}';
14777	return s;
14778}
14779
14780std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoNV& value)
14781{
14782	s << "VkImportMemoryWin32HandleInfoNV = {\n";
14783	s << "\tsType = " << value.sType << '\n';
14784	s << "\tpNext = " << value.pNext << '\n';
14785	s << "\thandleType = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleType) << '\n';
14786	s << "\thandle = " << value.handle << '\n';
14787	s << '}';
14788	return s;
14789}
14790
14791std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoNV& value)
14792{
14793	s << "VkExportMemoryWin32HandleInfoNV = {\n";
14794	s << "\tsType = " << value.sType << '\n';
14795	s << "\tpNext = " << value.pNext << '\n';
14796	s << "\tpAttributes = " << value.pAttributes << '\n';
14797	s << "\tdwAccess = " << value.dwAccess << '\n';
14798	s << '}';
14799	return s;
14800}
14801
14802std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoNV& value)
14803{
14804	s << "VkWin32KeyedMutexAcquireReleaseInfoNV = {\n";
14805	s << "\tsType = " << value.sType << '\n';
14806	s << "\tpNext = " << value.pNext << '\n';
14807	s << "\tacquireCount = " << value.acquireCount << '\n';
14808	s << "\tpAcquireSyncs = " << value.pAcquireSyncs << '\n';
14809	s << "\tpAcquireKeys = " << value.pAcquireKeys << '\n';
14810	s << "\tpAcquireTimeoutMilliseconds = " << value.pAcquireTimeoutMilliseconds << '\n';
14811	s << "\treleaseCount = " << value.releaseCount << '\n';
14812	s << "\tpReleaseSyncs = " << value.pReleaseSyncs << '\n';
14813	s << "\tpReleaseKeys = " << value.pReleaseKeys << '\n';
14814	s << '}';
14815	return s;
14816}
14817
14818std::ostream& operator<< (std::ostream& s, const VkSurfaceFullScreenExclusiveInfoEXT& value)
14819{
14820	s << "VkSurfaceFullScreenExclusiveInfoEXT = {\n";
14821	s << "\tsType = " << value.sType << '\n';
14822	s << "\tpNext = " << value.pNext << '\n';
14823	s << "\tfullScreenExclusive = " << value.fullScreenExclusive << '\n';
14824	s << '}';
14825	return s;
14826}
14827
14828std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesFullScreenExclusiveEXT& value)
14829{
14830	s << "VkSurfaceCapabilitiesFullScreenExclusiveEXT = {\n";
14831	s << "\tsType = " << value.sType << '\n';
14832	s << "\tpNext = " << value.pNext << '\n';
14833	s << "\tfullScreenExclusiveSupported = " << value.fullScreenExclusiveSupported << '\n';
14834	s << '}';
14835	return s;
14836}
14837
14838std::ostream& operator<< (std::ostream& s, const VkSurfaceFullScreenExclusiveWin32InfoEXT& value)
14839{
14840	s << "VkSurfaceFullScreenExclusiveWin32InfoEXT = {\n";
14841	s << "\tsType = " << value.sType << '\n';
14842	s << "\tpNext = " << value.pNext << '\n';
14843	s << "\thmonitor = " << value.hmonitor << '\n';
14844	s << '}';
14845	return s;
14846}
14847
14848std::ostream& operator<< (std::ostream& s, const VkXcbSurfaceCreateInfoKHR& value)
14849{
14850	s << "VkXcbSurfaceCreateInfoKHR = {\n";
14851	s << "\tsType = " << value.sType << '\n';
14852	s << "\tpNext = " << value.pNext << '\n';
14853	s << "\tflags = " << getXcbSurfaceCreateFlagsKHRStr(value.flags) << '\n';
14854	s << "\tconnection = " << value.connection << '\n';
14855	s << "\twindow = " << value.window << '\n';
14856	s << '}';
14857	return s;
14858}
14859
14860std::ostream& operator<< (std::ostream& s, const VkXlibSurfaceCreateInfoKHR& value)
14861{
14862	s << "VkXlibSurfaceCreateInfoKHR = {\n";
14863	s << "\tsType = " << value.sType << '\n';
14864	s << "\tpNext = " << value.pNext << '\n';
14865	s << "\tflags = " << getXlibSurfaceCreateFlagsKHRStr(value.flags) << '\n';
14866	s << "\tdpy = " << value.dpy << '\n';
14867	s << "\twindow = " << value.window << '\n';
14868	s << '}';
14869	return s;
14870}
14871